Bladeren bron

“9.9”

zhaogongxue 2 jaren geleden
commit
2944701c0f
100 gewijzigde bestanden met toevoegingen van 10139 en 0 verwijderingen
  1. 17 0
      .hbuilderx/http.code-snippets
  2. 20 0
      .hbuilderx/launch.json
  3. 133 0
      App.vue
  4. 3 0
      common/api.js
  5. 66 0
      common/common.css
  6. 3 0
      common/config.js
  7. 45 0
      common/demo.scss
  8. 49 0
      common/http.interceptor.js
  9. 7 0
      common/mixin.js
  10. 2 0
      common/props.js
  11. 6 0
      common/url.js
  12. BIN
      components/lingdang-AddressPicker/.DS_Store
  13. 100 0
      components/lingdang-AddressPicker/AddressPicker.vue
  14. 20 0
      index.html
  15. 29 0
      main.js
  16. 73 0
      manifest.json
  17. 458 0
      pages.json
  18. 134 0
      pages/activity/activity.vue
  19. 469 0
      pages/activity/activityInfo.vue
  20. 178 0
      pages/activity/activityLIst.vue
  21. 463 0
      pages/auth/auth.vue
  22. 50 0
      pages/auth/dengjibiao.vue
  23. 336 0
      pages/forum/forum.vue
  24. 412 0
      pages/forum/forumInfo.vue
  25. 165 0
      pages/forum/publish.vue
  26. 31 0
      pages/index/contactour.vue
  27. 58 0
      pages/index/gonglue.vue
  28. 462 0
      pages/index/index.vue
  29. 198 0
      pages/index/indexjubao.vue
  30. 36 0
      pages/index/message.vue
  31. 148 0
      pages/index/pipei.vue
  32. 140 0
      pages/index/pipeizhong.vue
  33. 182 0
      pages/index/recommend.vue
  34. 146 0
      pages/index/registerVip.vue
  35. 60 0
      pages/index/renzhengVip.vue
  36. 32 0
      pages/index/talkInfo.vue
  37. 131 0
      pages/index/talkLove.vue
  38. 40 0
      pages/index/videoInfo.vue
  39. 115 0
      pages/index/videoList.vue
  40. 34 0
      pages/index/zixun.vue
  41. 142 0
      pages/profile/bangding.vue
  42. 190 0
      pages/profile/changephone.vue
  43. 84 0
      pages/profile/dianzan.vue
  44. 93 0
      pages/profile/fensi.vue
  45. 109 0
      pages/profile/ganxingqu.vue
  46. 94 0
      pages/profile/guanzhu.vue
  47. 181 0
      pages/profile/jubao.vue
  48. 120 0
      pages/profile/lifePhoto.vue
  49. 72 0
      pages/profile/login.vue
  50. 1028 0
      pages/profile/myPage.vue
  51. 298 0
      pages/profile/mydongtai.vue
  52. 126 0
      pages/profile/newphone.vue
  53. 955 0
      pages/profile/otherPage.vue
  54. 120 0
      pages/profile/personPhoto.vue
  55. 352 0
      pages/profile/personStatus.vue
  56. 308 0
      pages/profile/profile.vue
  57. 71 0
      pages/profile/reportInfo.vue
  58. 109 0
      pages/profile/reportList.vue
  59. 262 0
      pages/profile/set.vue
  60. 206 0
      pages/profile/suqiu.vue
  61. 102 0
      pages/profile/zhuxiao.vue
  62. 66 0
      pages/profile/zixunList.vue
  63. BIN
      static/activity/1.png
  64. BIN
      static/activity/2.png
  65. BIN
      static/activity/bmz@2x.png
  66. BIN
      static/activity/count@2x.png
  67. BIN
      static/activity/doing.png
  68. BIN
      static/activity/doing@2x.png
  69. BIN
      static/activity/end@2x.png
  70. BIN
      static/activity/fill@2x.png
  71. BIN
      static/activity/have.png
  72. BIN
      static/activity/history.png
  73. BIN
      static/activity/share@2x.png
  74. BIN
      static/activity/status@2x.png
  75. BIN
      static/activity/success.png
  76. BIN
      static/activity/weirenzheng.png
  77. BIN
      static/activity/yugao.png
  78. BIN
      static/auth/1@2x.png
  79. BIN
      static/auth/2@2x.png
  80. BIN
      static/auth/3@2x.png
  81. BIN
      static/auth/4@2x.png
  82. BIN
      static/auth/5@2x.png
  83. BIN
      static/auth/add.png
  84. BIN
      static/auth/error@2x.png
  85. BIN
      static/auth/shenhe@2x.png
  86. BIN
      static/auth/succes@2x.png
  87. BIN
      static/bg.png
  88. BIN
      static/forum/1@2x.png
  89. BIN
      static/forum/2@2x.png
  90. BIN
      static/forum/3@2x.png
  91. BIN
      static/forum/4@2x.png
  92. BIN
      static/forum/5@2x.png
  93. BIN
      static/forum/add.png
  94. BIN
      static/forum/more.png
  95. BIN
      static/forum/publish.png
  96. BIN
      static/forum/weirenzheng.png
  97. BIN
      static/icon/10@2x.png
  98. BIN
      static/icon/1@2x.png
  99. BIN
      static/icon/2@2x.png
  100. BIN
      static/icon/3@2x.png

+ 17 - 0
.hbuilderx/http.code-snippets

@@ -0,0 +1,17 @@
+{
+    // 注意:本文档仅支持单行注释,并且'//'前不能有任何非空字符!!!
+    
+    // 文档:https://hx.dcloud.net.cn/Tutorial/Language/Snippets?id=%e8%87%aa%e5%ae%9a%e4%b9%89%e4%bb%a3%e7%a0%81%e5%9d%97
+    // 例子:
+    // "console.log": {
+    //  "scope":"source.js",
+    //  "prefix": "logtwo",
+    //  "body": [
+    //      "console.log('$1');"
+    // 	],
+    // 	"triggerAssist": false,
+    // 	"description": "Log output to console"
+    // }
+	
+
+}

+ 20 - 0
.hbuilderx/launch.json

@@ -0,0 +1,20 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+  // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+    "version": "0.0",
+    "configurations": [{
+     	"app-plus" : 
+     	{
+     		"launchtype" : "local"
+     	},
+     	"default" : 
+     	{
+     		"launchtype" : "local"
+     	},
+     	"mp-weixin" : 
+     	{
+     		"launchtype" : "local"
+     	},
+     	"type" : "uniCloud"
+     }
+    ]
+}

+ 133 - 0
App.vue

@@ -0,0 +1,133 @@
+<script>
+	export default {
+		onLaunch: function() {
+			console.log('App Launch')
+		},
+		onShow: function() {
+			console.log('App Show')
+		},
+		onHide: function() {
+			console.log('App Hide')
+		}
+	}
+</script>
+
+<style lang="scss">
+	/*每个页面公共css */
+	.bg{
+		position: fixed;
+		width: 100vw;
+		height: 100vh;
+		z-index: -1;
+	}
+	@import "@/uni_modules/uview-ui/index.scss";
+	@import "common/demo.scss";
+	page {
+		background-color:#fff;
+	}
+	
+	/* 横向靠左 */
+	.all-row-start {
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		justify-content: flex-start;
+	}
+	
+	/* 横向靠右 */
+	.all-row-end {
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		justify-content: flex-end;
+	}
+	
+	/* 横向居中 */
+	.all-row-center {
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+	}
+	
+	/* 纵向靠上 */
+	.all-col-start {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: flex-start;
+	}
+	
+	/* 纵向靠下 */
+	.all-col-end {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: flex-end;
+	}
+	
+	/* 纵向居中 */
+	.all-col-center {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+	.u-flex {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+	}
+	.u-warp{
+		flex-wrap: wrap;
+	}
+	.u-flex-col {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: column;
+		align-items: center;
+	}
+	.u-flex-wrap {
+		flex-wrap: wrap;
+	}
+	
+	.u-flex-nowrap {
+		flex-wrap: nowrap;
+	}
+	
+	.u-col-center {
+		align-items: center;
+	}
+	
+	.u-col-top {
+		align-items: flex-start;
+	}
+	
+	.u-col-bottom {
+		align-items: flex-end;
+	}
+	
+	.u-row-center {
+		justify-content: center;
+	}
+	
+	.u-row-left {
+		justify-content: flex-start;
+	}
+	
+	.u-row-right {
+		justify-content: flex-end;
+	}
+	
+	.u-row-between {
+		justify-content: space-between;
+	}
+	
+	.u-row-around {
+		justify-content: space-around;
+	}
+
+</style>

+ 3 - 0
common/api.js

@@ -0,0 +1,3 @@
+const { http } = uni.$u
+// 获取菜单
+export const fetchMenu = (params, config = {}) => http.post('/ebapi/public_api/index', params, config)

+ 66 - 0
common/common.css

@@ -0,0 +1,66 @@
+body *,
+page view {
+  box-sizing: border-box;
+  flex-shrink: 0;
+}
+body {
+  font-family: PingFangSC-Regular, Roboto, Helvetica Neue, Helvetica, Tahoma,
+    Arial, PingFang SC-Light, Microsoft YaHei;
+  margin: 0;
+}
+button {
+  margin: 0;
+  padding: 0;
+  border: 1px solid transparent;
+  outline: none;
+  background-color: transparent;
+}
+
+button:active {
+  opacity: 0.6;
+}
+.flex-col {
+  display: flex;
+  flex-direction: column;
+}
+.flex-row {
+  display: flex;
+  flex-direction: row;
+}
+.justify-start {
+  display: flex;
+  justify-content: flex-start;
+}
+.justify-center {
+  display: flex;
+  justify-content: center;
+}
+
+.justify-end {
+  display: flex;
+  justify-content: flex-end;
+}
+.justify-evenly {
+  display: flex;
+  justify-content: space-evenly;
+}
+.justify-around {
+  display: flex;
+  justify-content: space-around;
+}
+.justify-between {
+  display: flex;
+  justify-content: space-between;
+}
+.align-start {
+  display: flex;
+  align-items: flex-start;
+}
+.align-center {
+  display: flex;
+  align-items: center;
+}
+.align-end {
+  display: flex;
+  align-items: flex-end;
+}

+ 3 - 0
common/config.js

@@ -0,0 +1,3 @@
+module.exports = {
+    baseUrl: 'http://xiangqin.zhousi.hdlkeji.com'
+}

+ 45 - 0
common/demo.scss

@@ -0,0 +1,45 @@
+.u-block{
+	padding: 14px;
+	&__section{
+		margin-bottom:10px;
+	}
+	&__title {
+		margin-top:10px;
+		font-size: 15px;
+		color: $u-content-color;
+		margin-bottom:10px;
+	}
+	&__flex{
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+	}
+}
+
+// 使用了cell组件的icon图片样式
+.u-cell-icon {
+	width: 36rpx;
+	height: 36rpx;
+	margin-right: 8rpx;
+}
+
+.u-page {
+	padding: 15px 15px 40px 15px;
+}
+
+.u-demo-block {
+	flex: 1;
+	margin-bottom: 23px;
+	
+	&__content {
+		@include flex(column);
+	}
+	
+	&__title {
+		font-size: 14px;
+		color: rgb(143, 156, 162);
+		margin-bottom: 8px;
+		@include flex;
+	}
+}
+

+ 49 - 0
common/http.interceptor.js

@@ -0,0 +1,49 @@
+// common/http.interceptor.js
+import url from "./url.js"
+// console.log(url);
+// 这里的Vue为Vue对象(非创建出来的实例),vm为main.js中“Vue.use(httpInterceptor, app)”这一句的第二个参数,
+// 为一个Vue的实例,也即每个页面的"this"
+// 如果需要了解这个install方法是什么,请移步:https://uviewui.com/components/vueUse.html
+const install = (Vue, vm) => {
+	// 此为自定义配置参数,具体参数见上方说明
+	Vue.prototype.$u.http.setConfig({
+		baseUrl: url,
+		loadingText: '努力加载中~',
+		loadingTime: 800,
+		// 设置自定义头部content-type
+		// header: {
+		// 	'content-type': 'application/x-www-form-urlencoded'
+		// }
+		// ......
+	});
+	// 请求拦截部分,如配置,每次请求前都会执行
+	Vue.prototype.$u.http.interceptor.request = (config) => {
+		// 引用token
+		// 方式一,存放在vuex的token,假设使用了uView封装的vuex方式
+		// 见:https://uviewui.com/components/globalVariable.html
+		// config.header.token = vm.token;
+
+		// 方式二,如果没有使用uView封装的vuex方法,那么需要使用$store.state获取
+		// config.header.token = vm.$store.state.token;
+
+		// 方式三,如果token放在了globalData,通过getApp().globalData获取
+		// config.header.token = getApp().globalData.username;
+
+		// 方式四,如果token放在了Storage本地存储中,拦截是每次请求都执行的
+		// 所以哪怕您重新登录修改了Storage,下一次的请求将会是最新值
+		
+		const token = uni.getStorageSync('token');
+		// console.log(config.data);
+		config.header.Authorization = token;
+		// 可以对某个url进行特别处理,此url参数为this.$u.get(url)中的url值
+		// if (config.url == '/user/login') config.header.noToken = true;
+		// 最后需要将config进行return
+		return config;
+		// 如果return一个false值,则会取消本次请求
+		// if(config.url == '/user/rest') return false; // 取消某次请求
+	}
+}
+
+export default {
+	install
+}

+ 7 - 0
common/mixin.js

@@ -0,0 +1,7 @@
+export default {
+    data() {
+        return {
+
+        }
+    }
+}

+ 2 - 0
common/props.js

@@ -0,0 +1,2 @@
+uni.$u.props.gap.bgColor = '#f3f4f6'
+uni.$u.props.gap.height = '10'

+ 6 - 0
common/url.js

@@ -0,0 +1,6 @@
+
+var url = 'http://xiangqin.zhousi.hdlkeji.com'
+export default {
+	url
+
+}

BIN
components/lingdang-AddressPicker/.DS_Store


+ 100 - 0
components/lingdang-AddressPicker/AddressPicker.vue

@@ -0,0 +1,100 @@
+<template>
+	<picker @change="pickerChange" @columnchange="columnchange" :range="array" range-key="name" :value="value" mode="multiSelector">
+		<slot></slot>
+	</picker>
+</template>
+
+<script>
+	// import AllAddress from './AddressData.js'
+	export default {
+		data() {
+			return{
+				value: [],
+				array: [],
+				index: 0,
+				AllAddress:[]
+			}
+		},
+		props:{
+			
+			level:{ //级数
+				type: Number,
+				default: 3
+			}
+		},
+		created() {
+			console.log('请求地址')
+			this.getAllAddress()
+		},
+		methods:{
+			getAllAddress(){
+				uni.$u.http.post('/api/Publics/area').then(res => {
+				this.AllAddress=res.data
+				this.init()
+				})
+			},
+			// 初始化地址选项
+			init() {
+				this.array = new Array(this.level);
+				for(let i = 0; i<this.array.length;i++){
+					if(i==0){
+						this.array[i] = this.AllAddress
+					} else {
+						this.array[i] = [];
+						if (this.array[i-1][0].children != null) {
+							this.array[i] = this.array[i-1][0].children;
+						}
+					}
+					
+				}
+				this.$forceUpdate()
+			},
+			// 地址控件改变控件
+			columnchange(e) {
+				
+				let aIndex = JSON.parse(JSON.stringify(e.detail.column+1));//第几组
+				let j = e.detail.value;//索引值
+				
+				// console.log('e.detail',e.detail)
+				// console.log('选择:第'+ aIndex +'组,索引值为第' +j +'个 值为'+this.array[aIndex-1][j].name);
+				for(let i=aIndex; i<this.array.length; i++){
+					//选的第几组 和索引值
+					//1、选第一组  children 默认第二组的第一个,第三组的值为第二组的第一个children
+					//2、选第二组  children 默认第三组的值为第二组的选中的children第一个值
+					this.array[i] = [];
+					console.log('this.array[i] ',i,)
+					 if(e.detail.column === 0 && i===2){
+						 if (this.array[i-1][0].children != null) {
+						 	this.array[i] = this.array[i-1][0].children;
+						 }
+					 }else{
+						 if (this.array[i-1][j].children != null) {
+						 	this.array[i] = this.array[i-1][j].children;
+						 }
+					 }
+					
+					// console.log('this.array[i] ',this.array[i] )
+				}
+				
+				this.$forceUpdate();
+			},
+			//点击确定 
+			pickerChange(e) {
+				var result =  [];
+				for(let i=0; i<this.array.length; i++){
+					result.push({
+						name: this.array[i][e.target.value[i]].name,
+						id: this.array[i][e.target.value[i]].id
+					})
+				};
+				this.$emit('change', {
+					data: result
+				})
+			}
+			
+		}
+	}
+</script>
+
+<style>
+</style>

+ 20 - 0
index.html

@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+        CSS.supports('top: constant(a)'))
+      document.write(
+        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+    </script>
+    <title></title>
+    <!--preload-links-->
+    <!--app-context-->
+  </head>
+  <body>
+    <div id="app"><!--app-html--></div>
+    <script type="module" src="/main.js"></script>
+  </body>
+</html>

+ 29 - 0
main.js

@@ -0,0 +1,29 @@
+import Vue from 'vue'
+import App from './App'
+
+
+// 引入全局uView
+import uView from '@/uni_modules/uview-ui'
+import config from '@/common/config'
+
+
+Vue.config.productionTip = false
+
+App.mpType = 'app'
+Vue.prototype.$url=config.baseUrl
+Vue.use(uView)
+
+// #ifdef MP
+// 引入uView对小程序分享的mixin封装
+const mpShare = require('@/uni_modules/uview-ui/libs/mixin/mpShare.js')
+Vue.mixin(mpShare)
+// #endif
+// http拦截器,此为需要加入的内容,如果不是写在common目录,请自行修改引入路径
+
+
+const app = new Vue({
+    ...App
+})
+// 引入请求封装
+require('./util/request/index')(app)
+app.$mount()

+ 73 - 0
manifest.json

@@ -0,0 +1,73 @@
+{
+    "name" : "love",
+    "appid" : "__UNI__D83F805",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "wx36e94e688b2db929",
+        "setting" : {
+            "urlCheck" : false,
+            "minified" : true
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "2"
+}

+ 458 - 0
pages.json

@@ -0,0 +1,458 @@
+{
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/index/index",
+			"style": {
+				"navigationBarTitleText": "uni-app",
+				"enablePullDownRefresh": true,
+				"navigationStyle": "custom"
+			}
+		}
+	    ,{
+            "path" : "pages/activity/activity",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": true,
+				"navigationStyle": "custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/auth/auth",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": true,
+				"navigationStyle": "custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/forum/forum",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": true,
+				"navigationStyle": "custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/profile",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": true,
+				"navigationStyle": "custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/forum/forumInfo",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "动态详情",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/forum/publish",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "发布动态",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/set",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "设置",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/suqiu",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "个人诉求",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/zhuxiao",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "账号注销",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/guanzhu",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "关注",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/fensi",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "粉丝",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/dianzan",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "点赞",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/ganxingqu",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "感兴趣",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/bangding",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/changephone",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/newphone",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/mydongtai",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "我的动态",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/activity/activityLIst",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "报名活动",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/reportList",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "我的举报",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/reportInfo",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "我的举报",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/personStatus",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "个人状态",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+       
+        ,{
+            "path" : "pages/profile/myPage",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "我的主页",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/personPhoto",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "个人照片",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/jubao",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "举报",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/activity/activityInfo",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "活动详情",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/registerVip",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "注册会员",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/pipei",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "智能匹配",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/pipeizhong",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "智能匹配",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/recommend",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "推荐分享",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/indexjubao",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "我要举报",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/gonglue",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "入会攻略",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/contactour",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "联系我们",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/videoList",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "精美视频",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/talkLove",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "谈情说爱",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/talkInfo",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "详情",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/videoInfo",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false,
+				"navigationStyle": "custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/otherPage",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "个人首页",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/renzhengVip",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "认证会员",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/lifePhoto",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "生活照片",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/login",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false,
+				"navigationStyle": "custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/auth/dengjibiao",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "会员登记表",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        
+        ,{
+            "path" : "pages/index/message",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "消息",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/zixun",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "情感咨询",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/profile/zixunList",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "情感咨询记录",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+    ],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarBackgroundColor": "#EAD9EF",
+		"backgroundColor": "#EAD9EF"
+	},
+	"tabBar": {
+		"selectedColor": "#9956FF",
+		"color": "#222222",
+		"backgroundColor": "#fff",
+		"list": [{
+				"pagePath": "pages/index/index",
+				"text": "首页",
+				"selectedIconPath": "./static/icon/10@2x.png",
+				"iconPath": "./static/icon/2@2x.png"
+			},
+			{
+				"pagePath": "pages/activity/activity",
+				"text": "活动",
+				"selectedIconPath": "./static/icon/8@2x.png",
+				"iconPath": "./static/icon/1@2x.png"
+			},
+			{
+				"pagePath": "pages/auth/auth",
+				"text": "认证",
+				"selectedIconPath": "./static/icon/3@2x.png",
+				"iconPath": "./static/icon/4@2x.png"
+			},
+			{
+				"pagePath": "pages/forum/forum",
+				"text": "论坛",
+				"selectedIconPath": "./static/icon/7@2x.png",
+				"iconPath": "./static/icon/5@2x.png"
+			},
+			{
+				"pagePath": "pages/profile/profile",
+				"text": "我的",
+				"selectedIconPath": "./static/icon/6@2x.png",
+				"iconPath": "./static/icon/9@2x.png"
+			}
+		]
+	},
+	"uniIdRouter": {}
+}

+ 134 - 0
pages/activity/activity.vue

@@ -0,0 +1,134 @@
+<template>
+	<view>
+		<image src="../../static/bg.png" mode="" class="bg"></image>
+		<view class="top u-flex">
+			<view class="item" v-for="(item,index) in tabList" @click="itemClick(index)" :key="index">
+				<text v-show="current!=index">{{item.name}}</text>
+				<image :style="{'width':current==0?'190rpx':'154rpx'}" v-show="current==index" :src="item.img" mode=""></image>
+			</view>
+		</view>
+		<view class="list">
+			<view class="applyItem u-flex u-flex-col" v-for="(item,index) in activityList" :key="index" @click="toinfo(item)">
+				<view class="tips">
+					<image src="../../static/activity/bmz@2x.png" mode="" v-show="item.status==2" style="width: 108rpx;height: 40rpx;"></image>
+					<image src="../../static/activity/doing@2x.png" mode=""  v-show="item.status==5" style="width: 108rpx;height: 40rpx;"></image>
+					<image src="../../static/activity/end@2x.png" mode=""  v-show="item.status==4" style="width: 128rpx;height: 40rpx;"></image>
+					<image src="../../static/activity/fill@2x.png" mode=""  v-show="item.status==3" style="width: 128rpx;height: 40rpx;"></image>
+					<image src="../../static/activity/1.png" mode=""  v-show="item.status==6" style="width: 128rpx;height: 40rpx;"></image>
+					<image src="../../static/activity/2.png" mode=""  v-show="item.status==1" style="width: 128rpx;height: 40rpx;"></image>
+				</view>
+				<image :src="item.show_image" mode=""></image>
+				<view class="applyItemInfo u-flex-col;">
+					<view class="">
+						{{item.title}}
+					</view>
+					<view class="applyTime">
+						报名时间:{{item.sig_statime}}-{{item.sig_endtime}}
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onPullDownRefresh() {
+				this.page=1
+				this.getList()
+				setTimeout(function () {
+					uni.stopPullDownRefresh();
+				}, 1000);
+			},
+		onLoad() {
+				this.getList()
+		},
+		onReachBottom() {
+			this.page++
+			this.getList()
+		},
+		data() {
+			return {
+				tabList:[{name:'活动进行中',img:'../../static/activity/doing.png'},{name:'活动预告',img:'../../static/activity/yugao.png'},{name:'历史活动',img:'../../static/activity/history.png'}],
+				current:0,
+				activityList:[],
+			}
+		},
+		methods: {
+			getList(){
+					uni.$u.http.post('/api/Activity/index',{page:this.page,type:this.current+1}).then(res => {
+						if(this.page==1){
+							this.activityList=res.data
+						}else{
+							this.activityList=[...this.activityList,...res.data]
+						}
+					})
+			},
+			itemClick(index){
+				if(this.current!=index){
+					this.current=index
+					this.page=1
+					this.getList()
+				}
+			},
+			toinfo(item){
+				uni.navigateTo({
+					url:'./activityInfo?id='+item.id
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.list{
+		margin: 24rpx 30rpx 0;
+		.applyItem{
+			margin-bottom: 20rpx;
+			position: relative;
+			width: 690rpx;
+			height: 420rpx;
+			background: #FFFFFF;
+			border-radius: 28rpx;
+			image{
+				width: 690rpx;
+				height: 280rpx;
+				background: #D8D8D8;
+				border-radius: 28rpx 28rpx 0px 0px;
+			}
+			.tips{
+				position: absolute;
+				top: 0;
+				left: 0;
+				z-index: 1;
+			}
+			.applyItemInfo{
+				width: 690rpx;
+				align-items: flex-start;
+				padding: 20rpx;
+				font-size: 32rpx;
+				color: #222222;
+				box-sizing: border-box;
+				font-weight: 600;
+				.applyTime{
+					font-weight: 400;
+					margin-top: 12rpx;
+					font-size: 24rpx;
+					color: #999999;
+				}
+			}
+		}
+	}
+.top{
+	padding-top: 60rpx;
+	.item{
+		margin-left: 30rpx;
+		font-size: 32rpx;
+		color: #777777;
+		image{
+			height: 58rpx;
+		}
+		
+	}
+}
+</style>

+ 469 - 0
pages/activity/activityInfo.vue

@@ -0,0 +1,469 @@
+<template>
+	<view>
+		<view class="swiperDom">
+			<swiper :autoplay="true" :interval="3000" :duration="1000">
+				<swiper-item>
+					<view class="swiper-item">
+						<image :src="info.show_image" mode=""></image>
+					</view>
+				</swiper-item>
+			</swiper>
+			<view class="u-flex u-row-between title">
+				<text>{{info.title}}</text>
+				<image src="../../static/activity/share@2x.png" mode="" @click="showShare=true"></image>
+			</view>
+			<view class="info">
+				<view class="u-flex  item">
+					<text class="left">报名时间</text>
+					<text class="right">{{info.sig_statime}}-{{info.sig_endtime}}</text>
+				</view>
+				<view class="u-flex  item">
+					<text class="left">活动时间</text>
+					<text class="right">{{info.av_statime}}-{{info.av_endtime}}</text>
+				</view>
+				<view class="u-flex  item">
+					<text class="left">活动地址</text>
+					<text class="right">{{info.av_address}}</text>
+				</view>
+				<view class="u-flex  item">
+					<text class="left">参与人数</text>
+					<text class="right">{{info.av_number}}</text>
+				</view>
+				<view class="u-flex  item">
+					<text class="left">参与单位</text>
+					<text class="right">{{info.in_company}}</text>
+				</view>
+				<view class="u-flex  item">
+					<text class="left">合作单位</text>
+					<text class="right">{{info.co_company}}</text>
+				</view>
+				<view class="u-flex  item">
+					<text class="left">活动门槛</text>
+					<text class="right">{{info.age}}/{{info.education}}/{{info.nature}}</text>
+				</view>
+				<view class="u-flex " v-if="info.status==6">
+					<text class="left">牵手人数</text>
+					<text class="right">{{info.qianshou}}</text>
+				</view>
+			</view>
+			<view class="content">
+				<view class="content_title">
+					活动内容
+				</view>
+				<view class="content_info">
+					<rich-text :nodes="info.content"></rich-text>
+				</view>
+				<view class="btn">
+					<u-button text="立即报名" shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"
+						@click="baoming" v-if="info.is_sing!=1&&info.status==2"></u-button>
+					<u-button :text="'已报名(报名号:'+info.sin_number+')'" shape="circle"
+						color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"  v-if="info.is_sing==1&&info.status!=6"></u-button>
+					<u-button text="报名结束" :disabled="true" shape="circle" color="black" v-if="info.status==4&&info.is_sing==2"></u-button>
+					<u-button text="报名已满" :disabled="true" shape="circle" color="black" v-if="info.status==3&&info.is_sing==2"></u-button>
+					<u-button text="活动未开始" :disabled="true" shape="circle" color="black" v-if="info.status==1&&info.is_sing==2"></u-button>
+					<u-button text="活动进行中" :disabled="true" shape="circle" color="black" v-if="info.status==5&&info.is_sing==2"></u-button>
+					<u-button text="活动已结束" :disabled="true" shape="circle" color="black" v-if="info.status==6"></u-button>
+				</view>
+			</view>
+		</view>
+		<u-popup :show="show1" @close="close" mode="center" :round="40">
+			<view style="width: 650rpx;
+height: 640rpx;
+background: #FFFFFF;
+border-radius: 20rpx;padding: 80rpx 86rpx;color: #222;box-sizing: border-box;" class="u-flex-col">
+				<image src="../../static/activity/success.png" mode="" style="width: 64rpx;height: 64rpx;"></image>
+				<text style="margin: 24rpx 0 32rpx 0;font-size: 44rpx;">报名成功</text>
+				<view class="" style="width: 310rpx;
+height: 64rpx;line-height: 64rpx;text-align: center;font-size: 26rpx;
+border-radius: 8rpx;
+border: 2rpx solid;
+border-image: linear-gradient(270deg, rgba(178, 148, 246, 1), rgba(248, 172, 182, 1)) 2 2;">
+					报名号 {{num}}
+				</view>
+				<text
+					style="font-size: 24rpx;color: #888888;margin: 24rpx 0 60rpx 0;">恭喜您,报名成功,可在个人中心-我的活动中查看具体详情</text>
+				<u-button text="我知道了" shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"
+					@click="closeShow"></u-button>
+			</view>
+		</u-popup>
+		<u-popup :show="showShare" @close="close" bgColor='transparent' mode="center" :round="40">
+			<view style="width: 650rpx;
+				height: 972rpx;
+				
+				border-radius: 28rpx;color: #222;box-sizing: border-box;overflow: hidden;" class="u-flex-col">
+				<view class="" style="width: 650rpx;height: 368rpx;">
+					<image :src="info.show_image" mode="" style="width: 650rpx;height: 368rpx;"></image>
+				</view>
+				<view class="" style="width: 650rpx;height: 432rpx;border-radius: 0 0 28rpx 28rpx;background-color: #fff;padding: 32rpx 40rpx;box-sizing: border-box;">
+					<view class="" style="font-size: 32rpx;color: #222;font-weight: 600;margin-bottom: 180rpx;">
+						{{info.title}}
+					</view>
+					<view class="u-flex u-row-between">
+						<image :src="userInfo.headimg" mode="" style="width: 96rpx;height: 96rpx;border-radius: 50%;"></image>
+						<view class="u-flex u-row-right">
+							<view class="" style="font-size: 20rpx;color: #666;margin-right: 20rpx;">
+								扫码参加<br> 遇见更多美好
+							</view>
+							<image :src="info.sing_img" mode="" style="width: 136rpx;height: 136rpx;"></image>
+							<!-- <image src="../../static/test.png" mode="" style="width: 136rpx;height: 136rpx;"></image> -->
+						</view>
+					</view>
+				</view>
+				<view class="u-flex u-row-between" style="margin-top: 80rpx;width: 100%;">
+					<view class="" style="width: 230rpx;">
+						<u-button text="保存图片" :plain="true" shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"
+							@click="storageImg"></u-button>
+					</view>
+					<view class=""  style="width: 390rpx;">
+						<u-button text="马上邀请好友" open-type="share" shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"
+							@click="showShare=false"></u-button>
+					</view>
+				</view>
+
+				
+			</view>
+		</u-popup>
+		<u-popup :show="showrenzheng" @close="close" mode="center" :round="40">
+					<view style="width: 650rpx;
+		height: 560rpx;
+		background: #FFFFFF;
+		border-radius: 20rpx;padding: 0 146rpx;color: #222;box-sizing: border-box;" class="u-flex-col">
+						<image src="../../static/activity/weirenzheng.png" mode="" style="width: 320rpx;height: 320rpx;margin-top: -90rpx;"></image>
+						<text style="margin: 24rpx 0 52rpx 0;font-size: 32rpx;font-weight: 600;">您还未认证成为正式会员 请先认证后再参与</text>
+						
+						
+						<u-button text="立即认证" @click="gorenzheng" shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"
+							></u-button>
+					</view>
+				</u-popup>
+				<u-popup :show="showmanzu" @close="close" mode="center" :round="40">
+							<view style="width: 650rpx;
+				height: 560rpx;
+				background: #FFFFFF;
+				border-radius: 20rpx;padding: 0 146rpx;color: #222;box-sizing: border-box;" class="u-flex-col">
+								<image src="../../static/activity/weirenzheng.png" mode="" style="width: 320rpx;height: 320rpx;margin-top: -90rpx;"></image>
+								<text style="margin: 24rpx 0 52rpx 0;font-size: 32rpx;font-weight: 600;">您未满足报名条件
+不可报名活动</text>
+								
+								
+								<u-button text="我知道了" shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"
+								@click="showmanzu=false"></u-button>
+							</view>
+						</u-popup>
+						<canvas canvas-id="shareCanvas" style="width: 650px;height: 800px;position: fixed;top: -1000px;left: 1000px;z-index: 99;"></canvas>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(option) {
+			uni.$u.mpShare.path='/pages/index/index'
+			this.id=option.id
+			this.getInfo(option.id)
+		},
+		data() {
+			return {
+				info:{},
+				id:'',
+				showrenzheng:false,
+				show1: false,
+				showShare: false,
+				showmanzu:false,
+				num:'',
+				userInfo:JSON.parse(uni.getStorageSync('userInfo')),
+				canvas: null,
+			}
+		},
+		methods: {
+			storageImg(){
+					
+					this.drawCanvas()
+			},
+			 // 封装的下载图片函数
+			    downLoadImage(url) {
+			      return new Promise((resolve, reject) => {
+			        wx.getImageInfo({
+			          src: url,
+			          success(res) {
+			            resolve(res.path)
+			          },
+			          fail(err) {
+			            reject(err)
+			          },
+			          complete() {
+			            console.log('complete')
+			          }
+			        })
+			      })
+			    },
+				drawCircular(ctx,width, height, x, y, url) {
+				  var avatarurl_width = width;
+				  var avatarurl_heigth = height;
+				  var avatarurl_x = x;
+				  var avatarurl_y = y;
+				  ctx.save();
+				  ctx.beginPath();
+				  ctx.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI * 2, false);
+				  ctx.clip();
+				  ctx.drawImage(url, avatarurl_x, avatarurl_y, avatarurl_width, avatarurl_heigth);
+				  ctx.restore();
+				},
+				//第一个参数:创建的画布对象
+				//第二个参数:矩形的宽
+				//第三个参数:矩形的高
+				//第四个参数:矩形左上角x轴坐标点,
+				//第五个参数:矩形左上角y轴坐标点,
+				//第六个参数:绘制的图片的URL
+			drawCanvas(){
+				uni.showLoading({
+					
+				})
+				var that=this
+					      let ctx = wx.createCanvasContext('shareCanvas', this)
+						  // let titleImage = this.downLoadImage('https://dhy.danheyou.com/image/main/haibaoy.png');
+						  // let productImage = this.downLoadImage('https://dhy.danheyou.com/image/main/haibaoy.png');
+						  // let erCodeImage = this.downLoadImage('https://dhy.danheyou.com/image/main/haibaoy.png');
+						  let titleImage = this.downLoadImage(this.userInfo.headimg);
+						  let productImage = this.downLoadImage(this.info.show_image);
+					      let erCodeImage = this.downLoadImage(this.info.sing_image);
+					      Promise.all([titleImage, productImage, erCodeImage]).then(imgs => {
+					        console.log('imgs', imgs)
+					        // 全部图片下载成功
+					        let bgWidth = 650;
+					        let bgHeight = 800;
+					        // 绘制白底背景
+					        ctx.setFillStyle('#fff')
+					        ctx.fillRect(0, 0, bgWidth, bgHeight)
+					        console.log('全部图片下载成功')
+					       
+					        // 绘制产品图片
+					        let productOffLeft = 0;
+					        let productOffTop = 0;
+					        let productWidth = 650;
+					        let productHeight = 368;
+					        ctx.drawImage(imgs[1], productOffLeft, productOffTop, productWidth, productHeight)
+					        
+					        console.log('imgs', imgs[2])
+					        ctx.drawImage(imgs[2], 474 , 616, 136, 136)
+							ctx.setFillStyle('#333')
+							ctx.setFontSize(32)
+							ctx.fillText(this.info.title, 40, 420)
+							ctx.setFillStyle('#666')
+							ctx.setFontSize(20)
+							ctx.fillText('扫码参加', 352, 732)
+							ctx.fillText('遇见更多美好', 315, 752)
+							// ctx.drawImage(imgs[0], 40 , 656, 96, 96)
+							that.drawCircular(ctx,96, 96,40 , 656,imgs[0])
+					        ctx.draw(true, () => {
+					          wx.hideLoading();
+					          // wx.showLoading({
+					          //   title: '保存中',
+					          //   icon: 'none'
+					          // })
+					          let _this = this;
+					          wx.canvasToTempFilePath({
+					            x: 0,
+					            y: 0,
+					            canvasId: 'shareCanvas',
+					            quality: 1.0,
+					            fileType: 'jpg',
+					            success(res) {
+					              console.log('生成图片成功')
+					              console.log('res', res.tempFilePath)
+								  that.saveImage(res.tempFilePath)
+					              wx.hideLoading()
+					            },
+					            fail(err) {
+					              console.log('err', err)
+					              wx.showToast({
+					                title: '图片生成失败',
+					                icon: 'none',
+					              })
+					            },
+					            complete() {
+					              
+					            }
+					          }, _this)
+					        })
+					      }).catch(err => {
+					        console.log(err)
+					      })
+					    },
+					    
+					    // 保存图片
+					    saveImage(url) {
+					      let _this = this;
+					      // let tempFilePath = this.data.tempFilePath;
+					      if (!url) {
+					        wx.showToast({
+					          title: '图片生成失败',
+					          icon: 'none',
+					        })
+					        return;
+					      }
+					      wx.saveImageToPhotosAlbum({
+					        filePath: url,
+					        success() {
+								_this.showShare=false
+					          wx.showToast({
+					            title: '已保存到相册,您可将图片分享到朋友圈',
+					            icon: 'none'
+					          })
+					        },
+					        fail() {
+					          wx.showToast({
+					            title: '图片保存失败',
+					            icon: 'none',
+					          })
+					        },
+					        complete() {
+					          // wx.hideLoading();
+					        }
+					      })
+			},
+			closeShow(){
+					this.show1=false
+			},
+			gorenzheng(){
+					uni.switchTab({
+						url:'../auth/auth'
+					})
+			},
+			getInfo(id){
+				uni.$u.http.post('/api/Activity/activity',{id:id}).then(res => {
+					this.info=res.data
+				})
+			},
+			baoming() {
+				if(this.userInfo.vip_level==0){
+					this.$u.toast('您暂未认证')
+					return
+				}
+				if(this.userInfo.vip_level==2){
+					this.$u.toast('经用户反馈,您账户存在违规行为,暂不支持使用该功能')
+					return
+				}
+				if(this.userInfo.vip_level==3){
+									this.$u.toast('您的账户已注销,暂不支持使用该功能')
+									return
+								}
+				uni.$u.http.post('/api/Activity/sign_up',{aid:this.info.id}).then(res => {
+					if(res.code==1){
+						if(res.data.status==3){
+							this.num=res.data.number
+							this.show1=true
+							this.getInfo(this.id)
+						}
+						else if(res.data.status==2){
+							this.showmanzu=true
+						}else if(res.data.status==1){
+							this.showrenzheng=true
+						}
+					}
+				})
+				// this.showmanzu = true
+			},
+			close() {
+				this.show1 = false
+				this.showShare = false
+				this.showrenzheng = false
+				this.showmanzu = false
+				// console.log('close');
+			},
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	.btn {
+		width: 650rpx;
+		position: fixed;
+		bottom: 58rpx;
+	}
+
+	.content {
+		padding: 30rpx;
+		background-color: #fff;
+
+		.content_title {
+			font-size: 28rpx;
+			color: #222222;
+			font-weight: 600;
+		}
+
+		.content_info {
+			margin-top: 24rpx;
+			font-size: 24rpx;
+			font-family: PingFangSC-Regular, PingFang SC;
+			font-weight: 400;
+			color: #666666;
+			line-height: 34rpx;
+			padding-bottom: 200rpx;
+		}
+	}
+
+	.item {
+		margin-bottom: 36rpx;
+	}
+
+	.item:nth-child(8) {
+		margin-bottom: 0;
+	}
+
+	.info {
+		background-color: #fff;
+		padding: 30rpx;
+		margin: 20rpx 0;
+
+		.left {
+			font-size: 24rpx;
+			color: #888888;
+			margin-right: 52rpx;
+		}
+
+		.right {
+			font-size: 24rpx;
+			color: #222;
+		}
+	}
+
+	.title {
+		background-color: #fff;
+		height: 108rpx;
+		line-height: 108rpx;
+		padding: 0 30rpx;
+
+		text {
+			font-size: 32rpx;
+			color: #222222;
+			font-weight: 600;
+		}
+
+		image {
+			width: 44rpx;
+			height: 72rpx;
+			vertical-align: middle;
+		}
+	}
+
+	page {
+		background-color: #F6F2FD;
+	}
+
+	swiper {
+		width: 750rpx;
+		height: 400rpx;
+	}
+
+	.swiper-item {
+		overflow: hidden;
+		width: 750rpx;
+		height: 400rpx;
+
+		image {
+			width: 750rpx;
+			height: 400rpx;
+		}
+	}
+</style>

+ 178 - 0
pages/activity/activityLIst.vue

@@ -0,0 +1,178 @@
+<template>
+	<view>
+		<u-sticky bgColor="#fff">
+			<u-tabs :current='current' :scrollable='false' lineColor='#A890FE' itemStyle="width: 125px;padding-bottom:10px" :activeStyle="{
+            color: '#303133',
+            fontWeight: 'bold',
+            transform: 'scale(1.05)'
+        }" :list="list" @change="change"></u-tabs>
+		</u-sticky>
+		<view class="" v-if="activityList.length!=0">
+			<view class="item" v-for="(item,index) in activityList" :key="index" @click="toinfo(item)">
+				<view class="top">
+					<image src="../../static/activity/status@2x.png" mode="" class="status"></image>
+					<image src="../../static/activity/count@2x.png" mode="" class="count"></image>
+					<text v-if="item.status==1">距活动开始 <u-count-down @end="toback()"
+							bg-color="rgba(62, 62, 62, 0)" separator-color="#fff" color="#fff" fontSize="20" :timestamp="time(item)"></u-count-down></text>
+							<text v-if="item.status==2">活动报名中</text>
+							<text v-if="item.status==3">报名已满</text>
+							<text v-if="item.status==4">报名结束</text>
+							<text v-if="item.status==5">活动进行中</text>
+							<text v-if="item.status==6">活动结束</text>
+				</view>
+				<view class="bottom u-flex">
+					<image :src="item.show_image" mode=""></image>
+					<view class="">
+						<view class="title">
+							{{item.title}}
+						</view>
+						<view class="time">
+							<text>活动时间</text> {{item.av_statime}}-{{item.av_endtime}}
+						</view>
+						<view class="num">
+							<text>报名号</text> {{item.number}}
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+				this.getList()
+		},
+		onReachBottom() {
+			this.page++
+			this.getList()
+		},
+		data() {
+			return {
+				activityList:[],
+				page:1,
+				current:0,
+				list: [{
+					name: '待开始',
+				}, {
+					name: '已开始',
+				}, {
+					name: '已结束'
+				}]
+			}
+		},
+		computed:{
+			
+		},
+		methods: {
+			toinfo(item){
+				uni.navigateTo({
+					url:'./activityInfo?id='+item.id
+				})
+			},
+			time(item){
+				var time = new Date(item.av_statime.replace(/-/g, "/")).getTime()
+				var time1 = new Date().getTime()
+				time = (time - time1) / 1000
+				return time
+			},
+			getList(){
+					uni.$u.http.post('/api/user/myactivity',{page:this.page,type:this.current+1}).then(res => {
+						if(this.page==1){
+							this.activityList=res.data
+						}else{
+							this.activityList=[...this.activityList,...res.data]
+						}
+					})
+			},
+			change(e){
+				if(this.current!=e.index){
+					this.current=e.index
+					this.page=1
+					this.getList()
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.bottom{
+		padding: 28rpx 20rpx;
+		image{
+			width: 160rpx;
+			height: 160rpx;
+			border-radius: 20rpx;
+			margin-right: 20rpx;
+		}
+		.title{
+			font-size: 28rpx;
+			font-weight: 600;
+		}
+		.time{
+			margin: 24rpx 0 12rpx;
+			font-size: 20rpx;
+			text{
+				color: #888888;
+				margin-right: 12rpx;
+			}
+		}
+		.num{
+			font-size: 20rpx;
+			text{
+				color: #888888;
+				margin-right: 31rpx;
+			}
+		}
+	}
+	.item{
+		position: relative;
+		font-size: 26rpx;
+		margin: 24rpx auto 0;
+		width: 690rpx;
+		background: #FFFFFF;
+		border-radius: 28rpx;
+		.have{
+			width: 120rpx;
+			height: 120rpx;
+			position: absolute;
+			top: 0;
+			right: 0;
+			z-index: 1;
+		}
+		.top{
+			padding-left: 28rpx;
+			position: relative;
+			width: 690rpx;
+			height: 60rpx;
+			line-height: 60rpx;
+			.status{
+				position: absolute;
+				top: 0;
+				right: 0;
+				left: 0;
+				bottom: 0;
+				width: 690rpx;
+				height: 60rpx;
+				z-index: 0;
+			}
+			.count{
+				
+				width: 40rpx;
+				height: 40rpx;
+				vertical-align: middle;
+				margin-right: 8rpx;
+				margin-bottom: 4rpx;
+				position: relative;
+			}
+			text{
+				position: relative;
+				font-weight:600;
+			}
+		}
+	}
+page{
+	background-color: #F3F3F3;
+}
+</style>

+ 463 - 0
pages/auth/auth.vue

@@ -0,0 +1,463 @@
+<template>
+	<view>
+		<image src="../../static/bg.png" mode="" class="bg"></image>
+		<view class="top">
+			<image src="../../static/auth/5@2x.png" mode=""></image>
+		</view>
+		<view class="form" v-if="type==1">
+			<view class="">
+				<view class="item u-flex u-row-between">
+					<text style="white-space: nowrap;">姓名</text>
+					<input type="text" v-model="name" placeholder="请输入姓名">
+				</view>
+				<view class="item u-flex u-row-between">
+					<text style="white-space: nowrap;">手机号</text>
+					<input type="number" v-model="phone" placeholder="请输入手机号">
+				</view>
+				<view class="item u-flex u-row-between" @click="show=true">
+					<text style="white-space: nowrap;">工会</text>
+					<view class="u-flex" style="text-align: right;justify-content: flex-end;flex: 1;">
+						<text style="color: #FF5B5B;">{{current!=null?current.name:'请选择工会'}}</text>
+						<u-icon name="arrow-right" color="#FF5B5B"></u-icon>
+					</view>
+				</view>
+				<view class="item u-flex u-row-between">
+					<text style="white-space: nowrap;">会员号</text>
+					<input v-model="uuid" type="text" placeholder="请填写会员号">
+				</view>
+				<view class="upload">
+					<view class="title">
+						<text>*</text>上传单位证明
+					</view>
+					<view class="uploadContent" @click="uploadImg">
+						<image :src="workImg" mode="" style="position: absolute;top: 0;right: 0;bottom: 40rpx;left: 0;z-index: 999;width: 100%;height: 400rpx;" v-show="workImg"></image>
+						<view class="contentTop">
+							<image src="../../static/auth/1@2x.png" mode="" class="bigImg"></image>
+							<image src="../../static/auth/2@2x.png" mode="" class="smallImg"></image>
+						</view>
+						<view class="contentBottom" >
+							拍摄单位证明
+						</view>
+					</view>
+					<view class="lookvip" @click="toVip">
+						<image src="../../static/auth/3@2x.png" mode=""
+							style="width: 28rpx;height: 28rpx;vertical-align: middle;"></image>
+						<text>查看会员登记表</text>
+						<image src="../../static/auth/4@2x.png" mode=""
+							style="width: 12rpx;height: 12rpx;vertical-align: middle;"></image>
+					</view>
+				</view>
+				<view class="upload">
+					<view class="title" style="margin-bottom: 18rpx;">
+						<text>*</text>上传个人照片<text style="font-size: 20rpx;color: #D2D2D2;">(至少上传一张照片)</text>
+					</view>
+					<u-upload :fileList="fileList1"  @afterRead="afterRead" @delete="deletePic" name="1" :multiple='false'
+						:maxCount="3">
+						
+						</u-upload>
+				</view>
+				<u-button text="立即认证" @click="gorenzheng" shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"
+					></u-button>
+			</view>
+		</view>
+		<view class="error u-flex-col u-col-center" v-if="type==3">
+			<image src="../../static/auth/error@2x.png" mode=""></image>
+			<text style="font-size: 40rpx;font-weight: 600;margin: 48rpx 0 16rpx;">认证失败</text>
+			<text>您的实名认证审核没有通过</text>
+			<view class="reason">
+				{{reason}}
+			</view>
+			<view class="u-flex u-row-around btnlist">
+				<view class="btn1" @click="reset">
+					重新认证
+				</view>
+				<view class="btn" style="color: #fff;"  @click="reset">
+					暂不认证
+				</view>
+			</view>
+		</view>
+		<view class="error success u-flex-col u-col-center" v-if="type==2">
+			<image src="../../static/auth/succes@2x.png" mode=""></image>
+			<text style="font-size: 40rpx;font-weight: 600;margin: 48rpx 0 16rpx;">恭喜您认证成功</text>
+			<view class="info">
+				<view class="infoitem u-flex u-row-between">
+					<text>真实姓名</text>
+					<input type="text" v-model="name" :disabled="true"  style="text-align: right;flex: 1;">
+				</view>
+				<view class="infoitem u-flex u-row-between">
+					<text>手机号</text>
+					<input type="text" v-model="phone" :disabled="true" style="text-align: right;flex: 1;">
+				</view>
+				<view class="infoitem u-flex u-row-between">
+					<text>工会单位</text>
+					<input type="text" v-model="unit" :disabled="true"  style="text-align: right;flex: 1;">
+				</view>
+			</view>
+		</view>
+		<view class="error u-flex-col u-col-center" v-if="type==4">
+			<image src="../../static/auth/shenhe@2x.png" mode=""></image>
+			<text style="font-size: 40rpx;font-weight: 600;margin: 48rpx 0 16rpx;">管理员审核中</text>
+			<text>请耐心等待审核结果哦~</text>
+			
+		</view>
+		<u-picker :show="show" :columns="columns" keyName="name" @confirm='change' @cancel='cancel' :closeOnClickOverlay='true'>
+		</u-picker>
+	</view>
+</template>
+
+<script>
+	export default {
+		onPullDownRefresh() {
+				
+				setTimeout(function () {
+					uni.stopPullDownRefresh();
+				}, 1000);
+			},
+		onLoad() {
+				this.getWorking()
+		},
+		onShow() {
+				this.getType()
+		},
+		data() {
+			return {
+				working:{},
+				fileList1: [],
+				show: false,
+				columns: [
+					[]
+				],
+				current: null,
+				name:'',
+				phone:'',
+				unit:'',
+				workImg:'',
+				type:'',
+				reason:'',
+				uuid:''
+			}
+		},
+		methods: {
+			toVip(){
+					uni.navigateTo({
+						url:'./dengjibiao'
+					})
+			},
+			reset(){
+				uni.$u.http.post('/api/Authentication/new_authentication').then(res => {
+									this.getType()
+								})
+			},
+			getType(){
+				uni.$u.http.post('/api/Authentication/show').then(res => {
+									this.type=res.data.type
+									if(res.data.type==2){
+										this.name=res.data.data.username
+										this.phone=res.data.data.phone
+										this.unit=res.data.data.name
+									}
+									if(res.data.type==3){
+										this.reason=res.data.data.reason
+									}
+								})
+			},
+			gorenzheng(){
+				if(!this.name){
+					this.$u.toast('请输入姓名')
+					return
+				}
+				if(!this.phone){
+					this.$u.toast('请输入手机号')
+					return
+				}
+				if(!this.uuid){
+					this.$u.toast('请输入会员号')
+					return
+				}
+				if(!this.workImg){
+					this.$u.toast('上传单位证明')
+					return
+				}
+				if(this.fileList1.length==0){
+					this.$u.toast('上传个人照片')
+					return
+				}
+				var arr=[]
+				this.fileList1.forEach(item=>{
+					arr.push(item.url)
+				})
+				let data={
+					name:this.name,
+					phone:this.phone,
+					c_id:this.current.id,
+					uuid:this.uuid,
+					c_image:this.workImg,
+					m_images:arr.toString()
+					
+					
+				}
+				uni.$u.http.post('/api/Authentication/authentication',data).then(res => {
+					if(res.code==1){
+						this.getType()
+					}
+				})
+			},
+			uploadImg(){
+				var that=this
+				uni.chooseImage({
+					success: (chooseImageRes) => {
+						const tempFilePaths = chooseImageRes.tempFilePaths;
+						uni.uploadFile({
+							url: this.$url+'/api/Publics/uploadLocality', //仅为示例,非真实的接口地址
+							filePath: tempFilePaths[0],
+							name: 'file',
+							
+							success: (uploadFileRes) => {
+								that.workImg=JSON.parse(uploadFileRes.data).data.url
+							}
+						});
+					}
+				});
+			},
+			getWorking(){
+				uni.$u.http.post('/api/Publics/working').then(res => {
+					this.columns=[res.data]
+				})
+			},
+			change(e) {
+				this.current = e.value[0]
+				// console.log(this.columns[0][this.current])
+				this.show = false
+			},
+			cancel() {
+				this.show = false
+			},
+			// 删除图片
+			deletePic(event) {
+				this[`fileList${event.name}`].splice(event.index, 1)
+			},
+			// 新增图片
+			async afterRead(event) {
+				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url)
+					let item = this[`fileList${event.name}`][fileListLen]
+					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					}))
+					fileListLen++
+				}
+			},
+			uploadFilePromise(url) {
+				return new Promise((resolve, reject) => {
+					let a = uni.uploadFile({
+						url: this.$url+'/api/Publics/uploadLocality', // 仅为示例,非真实的接口地址
+						filePath: url,
+						name: 'file',
+						formData: {
+							user: 'test'
+						},
+						success: (res) => {
+							setTimeout(() => {
+								resolve(JSON.parse(res.data).data.url)
+							}, 1000)
+						}
+					});
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.success{
+		box-sizing: border-box;
+		padding: 0 40rpx;
+		height: auto;
+	}
+	.info{
+		padding: 40rpx 40rpx 0;
+		width: 100%;
+		margin-top: 80rpx;
+		border-top: 2rpx solid #F3F3F3;
+		.infoitem{
+			line-height: 100rpx;
+			width: 100%;
+			font-size: 30rpx;
+			color: #222222;
+		}
+	}
+	.btnlist{
+		width: 100%;
+	}
+	.btn1{
+		font-weight: 500;
+		color: #FFFFFF;
+		line-height: 50px;
+		background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+		-webkit-background-clip: text;
+		-webkit-text-fill-color: transparent;
+		width: 270rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		text-align: center;
+		font-size: 36rpx;
+		border-radius: 48rpx;
+		border: 4rpx solid #E6CDE6;
+		// border-image: linear-gradient(270deg, rgba(171, 145, 252, 1), rgba(251, 173, 177, 1)) 2 2;
+	}
+	.btn{
+		width: 270rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		text-align: center;
+		background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+		border-radius: 48rpx;
+		font-size: 36rpx;
+	}
+	.error{
+		padding-top: 96rpx;
+		padding-bottom: 94rpx;
+		margin: 56rpx auto 0;
+		width: 690rpx;
+		// height: 888rpx;
+		background: #FFFFFF;
+		border-radius: 40rpx;
+		font-size: 24rpx;
+		color: #222222;
+		image{
+			width: 140rpx;
+			height: 140rpx;
+		}
+		.reason{
+			padding: 24rpx 20rpx;
+			margin: 52rpx auto 64rpx;
+			width: 610rpx;
+			height: 200rpx;
+			background: #F4F4F4;
+			border-radius: 20rpx;
+		}
+	}
+	.lookvip {
+		font-weight: 500;
+		margin-top: 24rpx;
+		font-size: 24rpx;
+		color: #555555;
+		text-align: center;
+
+		text {
+			margin: 0 8rpx;
+		}
+	}
+
+	.uploadContent {
+		position: relative;
+		margin-top: 32rpx;
+		width: 650rpx;
+		height: 472rpx;
+		font-size: 28rpx;
+		color: #fff;
+		font-weight: 600;
+		background: #F3F4F6;
+		border-radius: 20rpx;
+
+		.contentTop {
+			height: 400rpx;
+			background-color: #F3F4F6;
+			position: relative;
+
+			.bigImg {
+				position: absolute;
+				top: 50%;
+				left: 50%;
+				transform: translate(-50%, -50%);
+				width: 510rpx;
+				height: 320rpx;
+			}
+
+			.smallImg {
+				position: absolute;
+				top: 50%;
+				left: 50%;
+				transform: translate(-50%, -50%);
+				width: 116rpx;
+				height: 116rpx;
+				z-index: 1;
+			}
+		}
+
+		.contentBottom {
+			width: 650rpx;
+			height: 72rpx;
+			line-height: 72rpx;
+			text-align: center;
+			background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+			border-radius: 0px 0px 20rpx 20rpx;
+		}
+	}
+
+	.upload {
+		margin: 20rpx auto;
+		width: 690rpx;
+		// height: 652rpx;
+		padding: 24rpx 20rpx;
+		background: #FDFCFE;
+		box-shadow: 0px 0px 16rpx 0px rgba(0, 0, 0, 0.0400);
+		border-radius: 24rpx;
+		box-sizing: border-box;
+
+		.title {
+			font-weight: 500;
+			font-size: 30rpx;
+			color: #222222;
+
+			text {
+				color: #FF5B5B;
+			}
+		}
+	}
+
+	.form {
+		padding: 0 30rpx;
+		margin-top: 36rpx;
+		background-color: #fff;
+		border-radius: 40rpx 40rpx 0px 0px;
+		background: linear-gradient(180deg, #FFFFFF 0%, #F6F2FD 100%);
+
+		.item {
+			height: 94rpx;
+			line-height: 94rpx;
+			border-bottom: 2rpx solid #F5F5F5;
+
+			text {
+				font-size: 30rpx;
+				color: #222222;
+			}
+
+			input {
+				text-align: right;
+			}
+		}
+	}
+
+	.top {
+		padding-top: 44rpx;
+		padding-left: 30rpx;
+
+		image {
+			width: 102rpx;
+			height: 60rpx;
+		}
+	}
+</style>

+ 50 - 0
pages/auth/dengjibiao.vue

@@ -0,0 +1,50 @@
+<template>
+	<view>
+	<view style="text-align: center;">
+		<image :src="registration" mode="widthFix" style="width: 690rpx;"></image>
+	</view>
+	<view class="" style="width: 270rpx;
+height: 72rpx;
+background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);border-radius: 40rpx;font-size: 30rpx;color: #fff;line-height: 72rpx;text-align: center;margin: 42rpx auto 0;" @click="copy(link)">
+		复制链接
+	</view>
+	<view class="" style="text-align: center;font-size: 24rpx;color: #8B8B8B;">
+		复制链接后请至浏览器中下载会员登记表
+	</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+				this.getInfo()
+		},
+		data() {
+			return {
+				registration:'',
+				link:''
+			}
+		},
+		methods: {
+			copy(str) {
+				uni.setClipboardData({
+					data: str
+				})
+			},
+			getInfo(){
+				uni.$u.http.post('/api/Publics/config_info').then(res => {
+					if(res.code==1){
+						this.registration=res.data.registration
+						this.link=res.data.regist_file
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+page{
+	padding: 30rpx 0;
+}
+</style>

+ 336 - 0
pages/forum/forum.vue

@@ -0,0 +1,336 @@
+<template>
+	<view>
+		<image src="../../static/bg.png" mode="" class="bg"></image>
+		<view class="top">
+			<image src="../../static/forum/1@2x.png" mode=""></image>
+		</view>
+		<view class="content">
+			<view class="item" v-for="(item,index) in list" :key="index">
+				<view class="top1 u-flex u-row-between">
+					<view class="topleft u-flex">
+						<image :src="item.headimg" mode="" @click="headclick(item)"></image>
+						<view class="">
+							<view class="name">
+								{{item.nickame}}
+								<image src="../../static/index/1@2x.png" mode="" v-show="item.sex==2"></image>
+								<image src="../../static/index/2@2x.png" mode="" v-show="item.sex==1"></image>
+							</view>
+							<view class="area">
+								{{item.city}}·{{item.age}}岁
+							</view>
+						</view>
+					</view>
+					<view class="topright" @click="toguanzhu(item,index)">
+						{{item.guanzhu==1?'已关注':'未关注'}}
+					</view>
+				</view>
+				<view class="iteminfo">
+					{{item.content}}
+				</view>
+				<view class="imaglist u-flex" v-if="item.suffix=='png'||item.suffix=='jpg'">
+					<view class="imgbox" v-for="(ite,ind) in item.show_images" :key="ind">
+						<image :src="ite" mode=""  @click="lookImage(ite)"></image>
+					</view>
+				</view>
+				<video :src="item.show_images[0]" class="video" v-if="item.suffix=='mp4'"></video>
+				<view class="bottom u-flex u-row-right">
+					<view class="zan" :class="{'zan1':item.is_give==1}" @click="dianzan(item,index)">
+						<image src="../../static/forum/2@2x.png" mode="" v-show="item.is_give==1"></image>
+						<image src="../../static/forum/5@2x.png" mode="" v-show="item.is_give==0"></image>
+						<text>{{item.give}}</text>
+					</view>
+					<view class="talk" @click="itemClick(item)">
+						<image src="../../static/forum/3@2x.png" mode=""></image>
+						<text>{{item.comment}}</text>
+					</view>
+				</view>
+			</view>
+		</view>
+		<image src="../../static/forum/4@2x.png" mode="" @click="publish" class="fa"></image>
+		<image src="../../static/forum/weirenzheng.png" mode="" class="norenzheng" v-show="show"></image>
+	</view>
+</template>
+
+<script>
+	export default {
+		onShow() {
+			this.page=1
+			this.getList()
+			this.getUserInfo()
+		},
+		onPullDownRefresh() {
+				this.page=1
+				this.getList()
+				this.getUserInfo()
+				setTimeout(function () {
+					uni.stopPullDownRefresh();
+				}, 1000);
+			},
+		onReachBottom() {
+			this.page++
+			this.getList()
+		},
+		data() {
+			return {
+				info:{},
+				show: false,
+				page: 1,
+				list: []
+			}
+		},
+		methods: {
+			getUserInfo(){
+					uni.$u.http.post('/api/user/userinfo').then(res => {
+						if(res.code==1){
+							this.info=res.data
+						}
+					})
+			},
+			headclick(item){
+				var id=uni.setStorageSync('userId')
+				if(id&&id==item.m_id){
+					uni.navigateTo({
+						url:'../profile/myPage'
+					})
+				}else{
+					uni.navigateTo({
+						url:'/pages/profile/otherPage?id='+item.m_id
+					})
+				}
+					
+			},
+			toguanzhu(item,index){
+				uni.$u.http.post('/api/user/user_follow',{mid:item.m_id}).then(res => {
+					if(res.code==1){
+						if(item.guanzhu==1){
+							this.list[index].guanzhu=0;
+						}else{
+							this.list[index].guanzhu=1;
+						}
+						this.$u.toast(res.msg)
+					}
+				})
+			},
+			dianzan(item,index){
+				uni.$u.http.post('/api/forum/forum_give',{fid:item.id}).then(res => {
+					if(res.code==1){
+						if(item.is_give==1){
+							this.list[index].is_give=0;
+							this.list[index].give=this.list[index].give-1;
+						}else{
+							this.list[index].is_give=1;
+							this.list[index].give=this.list[index].give+1;
+						}
+						this.$u.toast(res.msg)
+					}
+				})
+			},
+			//查看图片
+			lookImage(ite) {
+				let imgsArray = [];
+				imgsArray[0] = ite;
+				uni.previewImage({
+					current: 0,
+					urls: imgsArray,
+
+				});
+			},
+			getList() {
+				uni.$u.http.post('/api/forum/index', {
+					page: this.page
+				}).then(res => {
+					if(this.page==1){
+						this.list = res.data
+					}else{
+						this.list = [...this.list, ...res.data]
+					}
+				})
+			},
+			itemClick(item) {
+				uni.navigateTo({
+					url: './forumInfo?id='+item.id
+				});
+			},
+			publish() {
+				if(this.info.vip_level==0){
+					if(!this.show){
+						this.show=true
+						setTimeout(()=>{
+							this.show=false
+						},2000)
+					}
+					return
+				}
+				if(this.info.vip_level==2){
+					this.$u.toast('经用户反馈,您账户存在违规行为,暂不支持使用该功能')
+					return
+				}
+				if(this.info.vip_level==3){
+									this.$u.toast('您的账户已注销,暂不支持使用该功能')
+									return
+								}
+				// if(!this.show){
+				// 	this.show=true
+				// 	setTimeout(()=>{
+				// 		this.show=false
+				// 	},2000)
+				// }
+				uni.navigateTo({
+					url: './publish'
+				});
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.norenzheng {
+		width: 160rpx;
+		height: 44rpx;
+		position: fixed;
+		bottom: 10rpx;
+		left: 50%;
+		transform: translateX(-50%);
+	}
+
+	.fa {
+		width: 100rpx;
+		height: 102rpx;
+		position: fixed;
+		bottom: 26rpx;
+		right: 30rpx;
+	}
+
+	.bottom {
+		color: #999999;
+		font-size: 24rpx;
+
+		.zan {
+			margin-right: 40rpx;
+			font-weight: 400;
+
+			// background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+			// -webkit-background-clip: text;
+			// -webkit-text-fill-color: transparent;
+			image {
+				vertical-align: middle;
+				width: 36rpx;
+				height: 36rpx;
+				margin-right: 4rpx;
+			}
+		}
+
+		.zan1 {
+			background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+			-webkit-background-clip: text;
+			-webkit-text-fill-color: transparent;
+		}
+
+		.talk {
+			image {
+				vertical-align: middle;
+				width: 36rpx;
+				height: 36rpx;
+				margin-right: 4rpx;
+			}
+		}
+	}
+
+	.imaglist {
+		flex-wrap: wrap;
+
+		.imgbox {
+
+			margin-right: 15rpx;
+			max-width: 220rpx;
+			max-height: 220rpx;
+			margin-bottom: 20rpx;
+
+			image {
+				max-width: 220rpx;
+				max-height: 220rpx;
+				border-radius: 20px;
+			}
+
+		}
+
+		.imgbox:nth-child(3n+3) {
+			margin-right: 0;
+		}
+
+	}
+
+	.iteminfo {
+		margin: 22rpx 0 20rpx;
+		font-size: 28rpx;
+		color: #222222;
+	}
+
+	.content {
+		width: 750rpx;
+		background: #FFFFFF;
+		border-radius: 40rpx;
+
+		.item {
+			padding: 36rpx 30rpx;
+			border-bottom: 2rpx solid #F2F2F2;
+
+			.video {
+				margin-bottom: 42rpx;
+				width: 690rpx;
+				height: 320rpx;
+				border-radius: 20rpx;
+			}
+
+			.topleft {
+				image {
+					width: 76rpx;
+					height: 76rpx;
+					border-radius: 50%;
+					margin-right: 20rpx;
+				}
+
+				.name {
+					font-size: 28rpx;
+					color: #222222;
+					font-weight: 600;
+
+					image {
+						margin-left: 8rpx;
+						width: 28rpx;
+						height: 28rpx;
+					}
+				}
+
+				.area {
+					font-size: 20rpx;
+					color: #999999;
+				}
+			}
+
+			.topright {
+				width: 108rpx;
+				height: 56rpx;
+				text-align: center;
+				line-height: 56rpx;
+				border-radius: 28rpx;
+				border: 3rpx solid #C7A6CE;
+				font-weight: 400;
+				color: #999999;
+				background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+				-webkit-background-clip: text;
+				-webkit-text-fill-color: transparent;
+			}
+		}
+	}
+
+	.top {
+		padding-top: 44rpx;
+		padding-left: 30rpx;
+
+		image {
+			width: 102rpx;
+			height: 60rpx;
+		}
+	}
+</style>

+ 412 - 0
pages/forum/forumInfo.vue

@@ -0,0 +1,412 @@
+<template>
+	<view class="index">
+		<view class="item">
+			<view class="top1 u-flex u-row-between">
+				<view class="topleft u-flex">
+					<image :src="info.headimg" mode="" @click="headclick"></image>
+					<view class="">
+						<view class="name">
+							{{info.nickame}} 
+							<!-- <image src="../../static/index/1@2x.png" mode=""></image> -->
+						</view>
+						<view class="area">
+							{{info.city}}·{{info.age}}岁
+						</view>
+					</view>
+				</view>
+				<!-- <view class="topright">
+					关注
+				</view> -->
+			</view>
+			<view class="iteminfo">
+				{{info.content}}
+			</view>
+			<view class="imaglist u-flex"  v-if="info.suffix!='mp4'">
+				<view class="imgbox" v-for="(ite,ind) in info.show_images" :key="ind" @click="lookImage(ite)">
+					<image :src="ite" mode="" ></image>
+				</view>
+			</view>
+			<video :src="info.show_images[0]" class="video" v-if="item.suffix=='mp4'"></video>
+			<view class="bottom u-flex u-row-between">
+				<view class="u-flex u-row-left">
+					<view class="zan">
+						<!-- <image src="../../static/forum/2@2x.png" mode="" v-show="info.is_give==1"></image> -->
+						<image src="../../static/forum/5@2x.png" mode=""></image>
+						<text>{{info.give.length||0}}</text>
+					</view>
+					<view class="talk">
+						<image src="../../static/forum/3@2x.png" mode=""></image>
+						<text>{{info.comment.length||0}}</text>
+					</view>
+				</view>
+				<!-- <image src="../../static/forum/more.png" mode="" style="width: 36rpx;height: 36rpx;"></image> -->
+			</view>
+		</view>
+		<view class="tab u-flex">
+			<view class="" :class="{'select':current==index}" v-for="(item,index) in list" :key="index" @click="itemClick(index)">
+				{{item}}
+			</view>
+		</view>
+		<view class="" v-show="current==0">
+			<view class="topleft u-flex u-row-between" style="margin-top: 40rpx;padding-left: 30rpx;"v-for="(item,index) in info.give">
+				<view class="u-flex ">
+					<image :src="item.headimg" mode=""></image>
+					<view class="">
+						<view class="name">
+							{{item.nickname}}
+						</view>
+						<view class="area">
+							{{item.shortname}}·{{item.age}}岁
+						</view>
+					</view>
+				</view>
+				<view class="topright" @click="toguanzhu(item,index)">
+					{{item.guanzhu==1?'已关注':'关注'}}
+				</view>
+			</view>
+		</view>
+		<view class=""  v-show="current==1">
+			<view class="pinglunitem" v-for="(item,index) in info.comment" :key="index">
+				<view class="topleft u-flex u-row-between" style="margin-top: 40rpx;padding-left: 30rpx;">
+					<view class="u-flex ">
+						<image :src="item.headimg" mode=""></image>
+						<view class="">
+							<view class="name">
+								{{item.nickname}} 
+							</view>
+							<view class="area">
+								{{item.shortname}}·{{item.age}}岁
+							</view>
+						</view>
+					</view>
+					<view class="topright" @click="toguanzhu(item,index)">
+						{{item.guanzhu==1?'已关注':'关注'}}
+					</view>
+				</view>
+				<view class="content">
+					{{item.comment}}
+				</view>
+				<view class="pinglun">
+					{{item.create_at}}
+				</view>
+			</view>
+		</view>
+		<view class="bottomBox u-flex">
+			<u--input type="text" v-model="content" :clearable="true"@confirm='confirm'  :border="false" placeholder="说点什么吧"></u--input>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(option) {
+			this.id=option.id
+			this.getInfo(option.id)
+		},
+		data() {
+			return {
+				list:['赞','评论'],
+				current:0,
+				info:{},
+				content:'',
+				id:'',
+				userInfo:JSON.parse(uni.getStorageSync('userInfo'))
+			}
+		},
+		methods: {
+			toguanzhu(item,index){
+				uni.$u.http.post('/api/user/user_follow',{mid:item.id}).then(res => {
+					if(res.code==1){
+						if(item.guanzhu==1){
+							item.guanzhu=0;
+						}else{
+							item.guanzhu=1;
+						}
+						this.getInfo(this.id)
+						this.$u.toast(res.msg)
+					}
+				})
+			},
+			headclick(){
+				var id=uni.setStorageSync('userId')
+				if(id&&id==this.info.m_id){
+					uni.navigateTo({
+						url:'../profile/myPage'
+					})
+				}else{
+					uni.navigateTo({
+						url:'/pages/profile/otherPage?id='+this.info.m_id
+					})
+				}
+					
+			},
+			confirm(e){
+				if(this.userInfo.vip_level==0){
+					this.$u.toast('您暂未认证')
+					return
+				}
+				if(this.userInfo.vip_level==2){
+					this.$u.toast('经用户反馈,您账户存在违规行为,暂不支持使用该功能')
+					return
+				}
+				if(this.userInfo.vip_level==3){
+									this.$u.toast('您的账户已注销,暂不支持使用该功能')
+									return
+								}
+				
+					if(!this.content){
+						this.$u.toast('请输入要评论的内容')
+						return
+					}
+					uni.$u.http.post('/api/forum/forum_comment',{fid:this.info.id,comment:this.content}).then(res => {
+						if(res.code==1){
+							this.$u.toast(res.msg)
+							this.content=''
+							this.getInfo(this.id)
+						}
+					})
+			},
+			dianzan(item,index){
+				uni.$u.http.post('/api/forum/forum_give',{fid:this.info.id}).then(res => {
+					if(res.code==1){
+						if(this.info.is_give==1){
+							this.info.is_give=0;
+							this.info.give=this.info.give-1;
+						}else{
+							this.info.is_give=1;
+							this.info.give=this.info.give+1;
+						}
+						this.$u.toast(res.msg)
+					}
+				})
+			},
+			lookImage(ite) {
+				let imgsArray = [];
+				imgsArray[0] = ite;
+				uni.previewImage({
+					current: 0,
+					urls: imgsArray,
+			
+				});
+			},
+			getInfo(id){
+				uni.$u.http.post('/api/forum/forumdetails', {
+					id: id
+				}).then(res => {
+					this.info=res.data
+				})
+			},
+			itemClick(index){
+				if(this.current!=index){
+					this.current=index
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.topright {
+		margin-right: 20rpx;
+		width: 108rpx;
+		height: 56rpx;
+		text-align: center;
+		line-height: 56rpx;
+		border-radius: 28rpx;
+		border: 3rpx solid #C7A6CE;
+		font-weight: 400;
+		color: #999999;
+		background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+		-webkit-background-clip: text;
+		-webkit-text-fill-color: transparent;
+	}
+	.bottom{
+		color: #999999;
+		font-size: 24rpx;
+		.zan{
+			margin-right: 40rpx;
+			// font-weight: 400;
+			// background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+			// -webkit-background-clip: text;
+			// -webkit-text-fill-color: transparent;
+			image{
+				vertical-align: middle;
+				width: 36rpx;
+				height: 36rpx;
+				margin-right: 4rpx;
+			}
+		}
+		.zan1 {
+			background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+			-webkit-background-clip: text;
+			-webkit-text-fill-color: transparent;
+		}
+		.talk{
+			image{
+				vertical-align: middle;
+				width: 36rpx;
+				height: 36rpx;
+				margin-right: 4rpx;
+			}
+		}
+	}
+	.pinglunitem{
+		padding-bottom: 28rpx;
+		border-bottom: 2rpx solid #F2F2F2;
+	}
+	.pinglun{
+		padding-left: 118rpx;
+color: #999999;
+font-size: 20rpx;
+	}
+	.content{
+		margin: 12rpx 32rpx 12rpx 118rpx;
+		font-size: 24rpx;
+		color: #222222;
+line-height: 34rpx;
+	}
+	.bottomBox{
+		box-sizing: border-box;
+		padding-top: 16rpx;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		width: 750rpx;
+		height: 166rpx;
+		background: #FFFFFF;
+		box-shadow: 0px 0px 8rpx 0px rgba(0,0,0,0.1000);
+		input{
+			padding-left: 32rpx;
+			width: 690rpx;
+			height: 72rpx;
+			background: #F3F3F3;
+			border-radius: 40rpx;
+			margin: 0 auto;
+		}
+	}
+	.index{
+		padding-bottom: 170rpx;
+	}
+	.topleft{
+		image{
+			width: 76rpx;
+			height: 76rpx;
+			border-radius: 50%;
+			margin-right: 20rpx;
+		}
+		.name{
+			font-size: 28rpx;
+			color: #222222;
+			font-weight: 600;
+			image{
+				margin-left: 8rpx;
+				width: 28rpx;
+				height: 28rpx;
+			}
+		}
+		.area{
+			font-size: 20rpx;
+			color: #999999;
+		}
+	}
+	.tab{
+		margin-top: 20rpx;
+		padding-left: 30rpx;
+		font-size: 30rpx;
+		color: #999999;
+		font-weight: 600;
+		view{
+			padding-bottom: 10rpx;
+			margin-right: 40rpx;
+		}
+	}
+	.select{
+		color: #222222;
+		position: relative;
+	}
+	.select::before{
+		content: '';
+		position: absolute;
+		bottom: 0;
+		left: 50%;
+		transform: translateX(-50%);
+		width: 20rpx;
+		height: 4rpx;
+		background: #222222;
+		border-radius: 2rpx;
+	}
+	.bottom{
+		color: #999999;
+		font-size: 24rpx;
+		.zan{
+			margin-right: 40rpx;
+			// font-weight: 400;
+			// background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+			// -webkit-background-clip: text;
+			// -webkit-text-fill-color: transparent;
+			image{
+				vertical-align: middle;
+				width: 36rpx;
+				height: 36rpx;
+				margin-right: 4rpx;
+			}
+		}
+		.talk{
+			image{
+				vertical-align: middle;
+				width: 36rpx;
+				height: 36rpx;
+				margin-right: 4rpx;
+			}
+		}
+	}
+	.imaglist{
+		flex-wrap: wrap;
+		.imgbox{
+			margin-right: 15rpx;
+			max-width: 220rpx;
+			max-height: 220rpx;
+			margin-bottom: 20rpx;
+			image{
+				max-width: 220rpx;
+				max-height: 220rpx;
+				border-radius: 20px;
+			}
+		}
+		.imgbox:nth-child(3n+3) {
+			margin-right: 0;
+		}
+		
+		
+	}
+	.iteminfo{
+		margin: 22rpx 0 20rpx;
+		font-size: 28rpx;
+		color: #222222;
+	}
+.item{
+			padding: 36rpx 30rpx;
+			border-bottom: 2rpx solid #F2F2F2;
+			.video{
+				margin-bottom: 42rpx;
+				width: 690rpx;
+				height: 320rpx;
+				border-radius: 20rpx;
+			}
+			
+			.topright{
+				width: 108rpx;
+				height: 56rpx;
+				text-align: center;
+				line-height:  56rpx;
+				border-radius: 28rpx;
+				border: 3rpx solid #C7A6CE;
+				font-weight: 400;
+				color: #999999;
+				background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+				-webkit-background-clip: text;
+				-webkit-text-fill-color: transparent;
+			}
+		}
+</style>

+ 165 - 0
pages/forum/publish.vue

@@ -0,0 +1,165 @@
+<template>
+	<view>
+		<view class="textBox">
+			<textarea name="" v-model="content" maxlength="100" id="" cols="30" rows="10" placeholder="用照片展示自我,分享生活,会获得更多的关注"></textarea>
+			<view class="upload">
+							<u-upload :fileList="fileList1" :accept="accept" @afterRead="afterRead" @delete="deletePic" name="1" :multiple='false'
+								:maxCount="num">
+								<image src="../../static/forum/add.png" 
+									mode="widthFix" style="width: 160rpx;height:160rpx;"></image>
+								</u-upload>
+						</view>
+		</view>
+		<!-- <view class="publish">
+			<image src="../../static/forum/publish.png" mode=""></image>
+			发布动态
+		</view> -->
+		<view class="publish select"  @click="publish">
+			<image src="../../static/forum/publish.png" mode=""></image>
+			发布动态
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(option) {
+			if(option.item){
+				this.item=JSON.parse(option.item)
+				if(this.item.show_images.length!=0){
+					this.item.show_images.forEach(it=>{
+						this.fileList1.push({url:it})
+					})
+				}
+				
+				this.content=this.item.content
+				if(this.item.suffix=='mp4'){
+					this.num=1
+				}else{
+					this.accept='image'
+				}
+			}
+		},
+		data() {
+			return {
+				item:'',
+				fileList1:[],
+				content:'',
+				num:9,
+				accept:'media'
+			}
+		},
+		methods: {
+			publish(){
+				if(!this.content&&this.fileList1.length==0){
+					this.$u.toast('暂无要发布的内容')
+					return
+				}else{
+					var arr=[]
+					this.fileList1.forEach(item=>{
+						arr.push(item.url)
+					})
+					if(this.item){
+						uni.$u.http.post('/api/user/editdynamic',{image:arr.toString(),content:this.content,id:this.item?this.item.id:''}).then(res => {
+							if(res.code==1){
+								this.$u.toast(res.msg)
+								this.content=''
+								this.fileList1=[]
+							}
+						})
+					}else{
+						uni.$u.http.post('/api/forum/releaseforum',{image:arr.toString(),content:this.content}).then(res => {
+							if(res.code==1){
+								this.$u.toast(res.msg)
+								this.content=''
+								this.fileList1=[]
+							}
+						})
+					}
+					
+				}
+			},
+			// 删除图片
+						deletePic(event) {
+							this[`fileList${event.name}`].splice(event.index, 1)
+						},
+						// 新增图片
+						async afterRead(event) {
+							console.log(event)
+							// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+							if(event.file.type&&event.file.type=='video'){
+								this.num=1
+							}else{
+								this.accept='image'
+							}
+							let lists = [].concat(event.file)
+							let fileListLen = this[`fileList${event.name}`].length
+							lists.map((item) => {
+								this[`fileList${event.name}`].push({
+									...item,
+									status: 'uploading',
+									message: '上传中'
+								})
+							})
+							for (let i = 0; i < lists.length; i++) {
+								const result = await this.uploadFilePromise(lists[i].url)
+								let item = this[`fileList${event.name}`][fileListLen]
+								this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+									status: 'success',
+									message: '',
+									url: result
+								}))
+								fileListLen++
+							}
+						},
+						uploadFilePromise(url) {
+							return new Promise((resolve, reject) => {
+								let a = uni.uploadFile({
+									url: this.$url+'/api/Publics/uploadLocality', // 仅为示例,非真实的接口地址
+									filePath: url,
+									name: 'file',
+									success: (res) => {
+										setTimeout(() => {
+											resolve(JSON.parse(res.data).data.url)
+										}, 1000)
+									}
+								});
+							})
+						},
+		}
+	}
+</script>
+
+<style lang="scss">
+.textBox{
+	padding: 0 20rpx;
+	textarea{
+		width: 100%;
+		height: 200rpx;
+	}
+}
+.publish{
+	position: fixed;
+	bottom: 84rpx;
+	left: 50rpx;
+	right: 50rpx;
+	margin: 0 auto;
+	width: 650rpx;
+	height: 104rpx;
+	line-height: 104rpx;
+	text-align: center;
+	background: #D8D8D8;
+	border-radius: 52rpx;
+	font-size: 36rpx;
+	color: #fff;
+	image{
+		width: 64rpx;
+		height: 64rpx;
+		margin-bottom: 5rpx;
+		vertical-align: middle;
+	}
+}
+.select{
+	background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+}
+</style>

+ 31 - 0
pages/index/contactour.vue

@@ -0,0 +1,31 @@
+<template>
+	<view>
+		<rich-text :nodes="about_us"></rich-text>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+				this.getInfo()
+		},
+		data() {
+			return {
+				about_us:''
+			}
+		},
+		methods: {
+			getInfo(){
+				uni.$u.http.post('/api/Publics/config_info').then(res => {
+					if(res.code==1){
+						this.about_us=res.data.about_us
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 58 - 0
pages/index/gonglue.vue

@@ -0,0 +1,58 @@
+<template>
+	<view class="index">
+		<image src="https://xiangqin.zhousi.hdlkeji.com/main/gonglue.png" mode="" style="width: 750rpx;height: 1624rpx;position: absolute;top: 0;left: 0;right: 0;z-index: -1;"></image>
+	<view class="title">
+		入会攻略
+	</view>
+	<view class="content">
+		<rich-text :nodes="introduction_to"></rich-text>
+	</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+				this.getInfo()
+		},
+		data() {
+			return {
+				introduction_to:''
+			}
+		},
+		methods: {
+			getInfo(){
+				uni.$u.http.post('/api/Publics/config_info').then(res => {
+					if(res.code==1){
+						this.introduction_to=res.data.introduction_to
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+.index{
+	position: relative;
+	.title{
+		padding-left: 70rpx;
+		font-weight: 600;
+		font-size: 80rpx;
+		font-family: hzgb;
+		color: #555555;
+		line-height: 68px;
+		background: linear-gradient(270deg, #B093F7 0%, #EFA9BE 100%);
+		-webkit-background-clip: text;
+		-webkit-text-fill-color: transparent;
+	}
+	.content{
+		padding: 20rpx;
+		margin: 40rpx auto 0;
+		width: 690rpx;
+		height: 1228rpx;
+		background: #FFFFFF;
+		border-radius: 40rpx;
+	}
+}
+</style>

+ 462 - 0
pages/index/index.vue

@@ -0,0 +1,462 @@
+<template>
+	<view class="index">
+		<!-- <image src="../../static/bg.png" mode="" class="bg"></image> -->
+		<view class="top">
+			<image src="../../static/index/15@2x.png" mode=""></image>
+		</view>
+		<view class="home">
+			<view class="swiperDom">
+				<swiper :autoplay="true" :interval="3000" :duration="1000">
+					<swiper-item v-for="(item,index) in banner" :key="index">
+						<view class="swiper-item">
+							<image :src="item.show_image" mode=""></image>
+						</view>
+					</swiper-item>
+				</swiper>
+			</view>
+			<view class=""
+				style="border-radius: 20rpx;box-shadow: 0px 2px 12px 4px rgba(0,0,0,0.04);overflow: hidden;margin: 0 0 20rpx 0;width: 690rpx;">
+				<u-notice-bar :text="notice.title" color="#777777" bgColor="#fff" url="/pages/auth/auth"></u-notice-bar>
+			</view>
+			<view class="list u-flex u-row-between u-warp">
+				<view class="u-flex-col u-col-center" style="flex: 25%;" v-for="(item,index) in list"
+					@click="toitem(item)" :key="index">
+					<image :src="item.img" mode=""></image>
+					<text>{{item.name}}</text>
+				</view>
+			</view>
+			<view class="recommend">
+				<view class="recommendImg">
+					<image src="../../static/index/14@2x.png" mode=""></image>
+				</view>
+				<view class="recommendContent u-flex">
+					<view class="recommendItem u-flex-col" v-for="(item,index) in member" :key="index"
+						@click="torecommendinfo(item)">
+						<image :src="item.headimg" mode=""></image>
+						<view class="name">
+							<text>{{item.nickname}}</text>
+							<image src="../../static/index/1@2x.png" mode="" v-show="item.sex==2"></image>
+							<image src="../../static/index/2@2x.png" mode="" v-show="item.sex==1"></image>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="videoModule">
+				<view class="videoTitle u-flex u-row-between">
+					<image src="../../static/index/12@2x.png" mode=""></image>
+					<view class="lookMore u-flex" @click="tolist">
+						<text>查看更多</text>
+						<u-icon name="arrow-right" color="#666666"></u-icon>
+					</view>
+				</view>
+				<view class="videoContent u-flex u-row-between">
+					<view class="videoItem u-flex-col" v-for="(item,index) in video" :key="index"
+						@click="toVideoInfo(item)">
+						<view class="time">{{item.video_time}}</view>
+						<image :src="item.show_image" mode=""></image>
+						<view class="name">
+							{{item.title}}
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="videoModule">
+				<view class="videoTitle u-flex u-row-between">
+					<image src="../../static/index/13@2x.png" mode=""></image>
+					<view class="lookMore u-flex" @click="tomore">
+						<text>查看更多</text>
+						<u-icon name="arrow-right" color="#666666"></u-icon>
+					</view>
+				</view>
+				<view class="talkList">
+					<view class="talkItem u-flex u-row-between" v-for="(item,index) in article" :key="index"
+						@click="toinfo(item)">
+						<image :src="item.show_image" mode=""></image>
+						<view class="talkRight">
+							<view class="talkTitle">
+								{{item.title}}
+							</view>
+							<view class="talkInfo">
+								{{item.subtitle}}
+
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				info: {},
+				banner: [],
+				notice: {},
+				video: [],
+				member: [],
+				article: [],
+				list: [{
+						img: '/static/index/4@2x.png',
+						name: '注册会员',
+						path: '/pages/index/registerVip',
+						isWhite: true
+					},
+					{
+						img: '/static/index/5@2x.png',
+						name: '认证会员',
+						path: '/pages/index/renzhengVip',
+						isWhite: true
+					},
+					{
+						img: '/static/index/6@2x.png',
+						name: '智能匹配',
+						path: '/pages/index/pipei',
+						isWhite: false
+					},
+					{
+						img: '/static/index/7@2x.png',
+						name: '推荐分享',
+						path: '/pages/index/recommend',
+						isWhite: true
+					},
+					{
+						img: '/static/index/9@2x.png',
+						name: '消息中心',
+						path: '/pages/index/message',
+						isWhite: false
+					},
+					{
+						img: '/static/index/8@2x.png',
+						name: '我要举报',
+						path: '/pages/index/indexjubao',
+						isWhite: false
+					},
+					{
+						img: '/static/index/10@2x.png',
+						name: '入会攻略',
+						path: '/pages/index/gonglue',
+						isWhite: true
+					},
+					{
+						img: '/static/index/11@2x.png',
+						name: '情感咨询',
+						path: '/pages/index/zixun',
+						isWhite: true
+					}
+				]
+			}
+		},
+		onPullDownRefresh() {
+			this.getInfo()
+			this.getNotice()
+			this.getBanner()
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+		onLoad() {
+			this.getNotice()
+			this.getBanner()
+		},
+		onShow() {
+			if (!uni.getStorageSync('token')) {
+				uni.reLaunch({
+					url: '../profile/login'
+				})
+			} else {
+				this.getInfo()
+			}
+		},
+		methods: {
+			getBanner() {
+				uni.$u.http.post('/api/index/banner').then(res => {
+					if (res.code == 1) {
+						this.banner = res.data
+					}
+				})
+			},
+			getInfo() {
+				uni.$u.http.post('/api/user/userinfo').then(res => {
+					if (res.code == 1) {
+						this.info = res.data
+						uni.setStorageSync('userId', res.data.id)
+						uni.setStorageSync('userInfo', JSON.stringify(res.data))
+					}
+				})
+			},
+			torecommendinfo(item) {
+				uni.navigateTo({
+					url: '../profile/otherPage?id=' + item.id
+				})
+			},
+			toVideoInfo(item) {
+				uni.navigateTo({
+					url: './videoInfo?item=' + JSON.stringify(item)
+				})
+			},
+			getNotice() {
+				uni.$u.http.post('/api/Index/notice').then(res => {
+					this.notice = res.data.notice
+					this.video = res.data.video
+					this.member = res.data.member
+					this.article = res.data.article
+				})
+			},
+			toinfo(item) {
+				uni.navigateTo({
+					url: './talkInfo?id=' + item.id
+				})
+			},
+			tomore() {
+				uni.navigateTo({
+					url: './talkLove'
+				})
+			},
+			tolist() {
+				uni.navigateTo({
+					url: './videoList'
+				})
+			},
+			toitem(item) {
+
+				if (item.isWhite) {
+					uni.navigateTo({
+						url: item.path
+					})
+				} else {
+					if (this.info.vip_level == 0) {
+						this.$u.toast('您暂未认证')
+						return
+					}
+					if (this.info.vip_level == 2) {
+						this.$u.toast('经用户反馈,您账户存在违规行为,暂不支持使用该功能')
+						return
+					}
+					if (this.info.vip_level == 3) {
+						this.$u.toast('您的账户已注销,暂不支持使用该功能')
+						return
+					}
+					uni.navigateTo({
+						url: item.path
+					})
+				}
+
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.home {
+		padding: 0 30rpx 20rpx;
+	}
+
+	.videoModule {
+		width: 690rpx;
+		margin: 28rpx 0;
+
+		.talkList {
+			box-sizing: border-box;
+			margin: 18rpx auto 0;
+			width: 690rpx;
+			background: #FFFFFF;
+			border-radius: 28rpx;
+			padding: 0 20rpx;
+
+			.talkItem {
+				padding: 20rpx 0;
+				border-bottom: 2rpx solid #F3F3F3;
+
+				image {
+					width: 220rpx;
+					height: 148rpx;
+					border-radius: 16rpx;
+				}
+
+				.talkRight {
+					width: 402rpx;
+					margin-left: 20rpx;
+
+					.talkTitle {
+						color: #222222;
+						font-size: 32rpx;
+					}
+
+					.talkInfo {
+						overflow: hidden;
+						white-space: nowrap;
+						text-overflow: ellipsis;
+						margin-top: 10rpx;
+						color: #666666;
+						font-size: 24rpx;
+					}
+				}
+
+			}
+		}
+
+		.videoTitle {
+			width: 690rpx;
+
+			image {
+				width: 134rpx;
+				height: 50rpx;
+			}
+
+			.lookMore {
+				font-size: 28rpx;
+				color: #666666;
+			}
+		}
+
+		.videoContent {
+			margin-top: 22rpx;
+
+			.videoItem {
+				position: relative;
+				width: 220rpx;
+				// height: 280rpx;
+				background: #FFFFFF;
+				border-radius: 16rpx;
+
+				image {
+					border-radius: 16rpx;
+					width: 220rpx;
+					height: 180rpx;
+				}
+
+				.name {
+					height: 92rpx;
+					box-sizing: border-box;
+					width: 220rpx;
+					padding: 10rpx 14rpx 18rpx 14rpx;
+					text-align: left;
+					font-size: 24rpx;
+					color: #222222;
+					font-weight: 400;
+
+				}
+
+				.time {
+					position: absolute;
+					top: 140rpx;
+					right: 12rpx;
+					color: #fff;
+					width: 64rpx;
+					height: 28rpx;
+					line-height: 28rpx;
+					text-align: center;
+					font-size: 20rpx;
+					background: rgba(0, 0, 0, 0.4000);
+					border-radius: 16rpx;
+					z-index: 1;
+				}
+			}
+		}
+	}
+
+	.recommend {
+		width: 690rpx;
+		margin: 28rpx 0;
+
+		.recommendImg {
+			margin-bottom: 22rpx;
+
+			image {
+				width: 134rpx;
+				height: 50rpx;
+			}
+		}
+
+		.recommendContent {
+			flex-wrap: wrap;
+
+			.recommendItem {
+				margin-right: 15rpx;
+				width: 220rpx;
+				height: 304rpx;
+				background: #FFFFFF;
+				border-radius: 16rpx;
+
+				image {
+					border-radius: 16rpx;
+					width: 220rpx;
+					height: 240rpx;
+				}
+
+				.name {
+					width: 100%;
+					padding-left: 50rpx;
+					text-align: left;
+					line-height: 64rpx;
+					font-size: 26rpx;
+					color: #222222;
+					font-weight: 600;
+					margin-right: 8rpx;
+
+					image {
+						margin-bottom: 7rpx;
+						margin-left: 8rpx;
+						width: 28rpx;
+						height: 28rpx;
+						vertical-align: middle;
+					}
+				}
+
+			}
+
+			.recommendItem:nth-child(3n) {
+				margin-right: 0;
+			}
+		}
+	}
+
+	.list {
+		margin: 0 0 28rpx;
+		width: 690rpx;
+		height: 372rpx;
+		background: #FFFFFF;
+		border-radius: 28rpx;
+		font-size: 24rpx;
+		color: #000000;
+
+		image {
+			margin-bottom: 16rpx;
+			width: 80rpx;
+			height: 80rpx;
+		}
+	}
+
+	.swiper-item {
+		border-radius: 28rpx;
+		overflow: hidden;
+		width: 690rpx;
+		height: 280rpx;
+
+		image {
+			width: 690rpx;
+			height: 280rpx;
+		}
+	}
+
+	.swiperDom {
+		margin: 40rpx 0 20rpx;
+	}
+
+	page {
+		// background-color: #F6F2FD;
+	}
+
+	.top {
+		padding-top: 44rpx;
+		padding-left: 30rpx;
+
+		image {
+			width: 102rpx;
+			height: 60rpx;
+		}
+	}
+</style>

+ 198 - 0
pages/index/indexjubao.vue

@@ -0,0 +1,198 @@
+<template>
+	<view class="index">
+		<view class="" v-if="!success">
+			<view class="" style="width: 690rpx;
+background: #FFFFFF;
+border-radius: 20rpx;padding: 20rpx;box-sizing: border-box;">
+				<view class="u-flex u-row-between" style="font-size: 28rpx;padding: 20rpx 0;" @click="show=true">
+					<text style="white-space: nowrap;">举报类型</text>
+					<view class="u-flex">
+						<text>{{select!=null?select.title:'请选择举报类型'}}</text>
+						<u-icon name="arrow-right"></u-icon>
+					</view>
+				</view>
+				<view class="u-flex u-row-between" style="font-size: 28rpx;padding: 20rpx 0;" >
+					<text style="white-space: nowrap;">举报人ID</text>
+					<view class="u-flex">
+						<input type="text" v-model="uuid" placeholder="请填写被举报人ID" style="text-align: right;">
+					</view>
+				</view>
+			</view>
+			<view class=""  style="width: 690rpx;
+background: #FFFFFF;
+border-radius: 20rpx;padding: 20rpx;box-sizing: border-box;margin-top: 20rpx;">
+				
+			<view class="" style="font-size: 32rpx;color: #222;font-weight: 600;margin:20rpx 0">
+				<text style="color: #FF2929;">*</text>具体情况
+			</view>
+			<textarea name="" id="" cols="30" rows="10" class="area" placeholder="请详细描述所遇到的问题…" maxlength="100" style="width: 650rpx;" v-model="content"></textarea>
+			<view class="" style="font-size: 32rpx;color: #222;font-weight: 600;margin: 20rpx 0;">
+				<text style="color: #FF2929;">*</text>证据截图(最多6张)
+			</view>
+			<view class="" style="font-size: 24rpx;color: #999999;margin-bottom: 20rpx;">
+				直观的截图是非常有利的证据
+			</view>
+			<u-upload
+				:fileList="fileList"
+				@afterRead="afterRead"
+				@delete="deletePic"
+				name="3"
+				:multiple='false'
+				:maxCount="6"
+				:previewFullImage="true"
+				
+			></u-upload>
+			</view>
+			<view class="" style="margin-top: 78rpx;">
+				<u-button text="提交"  shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)" @click="submit"></u-button>
+			</view>
+			<u-picker :show="show" title="举报原因" keyName="title" :columns="columns" @confirm='change' @cancel='cancel' :closeOnClickOverlay='true'>
+			</u-picker>
+		</view>
+		<view class="u-flex-col" style="padding-top: 162rpx;"  v-else>
+			<image src="../../static/profile/success.png" mode="" style="width: 112rpx;height: 112rpx;"></image>
+			<text style="font-size: 36rpx;color: #000;font-weight: 600;margin: 40rpx;">提交成功</text>
+			<text style="font-size: 24rpx;color: #888888;margin-bottom: 182rpx;">您的举报我们已经收到,请耐心等待处理结果</text>
+			<u-button text="返回会员主页"  shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)" @click="back"></u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+			this.getReason()
+		},
+		data() {
+			return {
+				success:false,
+				content:'',
+				uuid:'',
+				show: false,
+				columns: [
+					[]
+				],
+				select:null,
+				fileList: [],
+			}
+		},
+		methods: {
+			submit(){
+				if(!this.select){
+					this.$u.toast('请选择举报类型')
+					return
+				}
+				if(!this.uuid){
+					this.$u.toast('请填写被举报人')
+					return
+				}
+				if(!this.content){
+					this.$u.toast('请填写举报原因')
+					return
+				}
+				var arr=[]
+				this.fileList.forEach(item=>{
+					arr.push(item.url)
+				})
+				uni.$u.http.post('/api/index/report',{uuid:this.uuid,type:this.select.id,content:this.content,r_images:arr.toString()}).then(res => {
+				if(res.code==1){
+					this.success=true
+				}
+				
+				})
+			},
+			getReason(){
+				uni.$u.http.post('/api/index/report_problem').then(res => {
+				this.columns=[res.data]
+				
+				})
+			},
+			back(){
+					uni.navigateBack({
+						
+					})
+			},
+			change(e) {
+				this.select = e.value[0]
+				// // console.log(this.columns[0][this.current])
+				this.show = false
+			},
+			cancel() {
+				this.show = false
+			},
+			// 删除图片
+							deletePic(event) {
+								var that=this
+								uni.showModal({
+									title: '',
+									content: '是否删除这张图片',
+									confirmColor:'#FF3D3D',
+									confirmText:'删除',
+									success: function (res) {
+										if (res.confirm) {
+											that.fileList.splice(event.index, 1)
+										} else if (res.cancel) {
+											console.log('用户点击取消');
+										}
+									}
+								});
+			
+							},
+							// 新增图片
+							async afterRead(event) {
+								// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+								let lists = [].concat(event.file)
+								let fileListLen = this.fileList.length
+								lists.map((item) => {
+									this.fileList.push({
+										...item,
+										status: 'uploading',
+										message: '上传中'
+									})
+								})
+								for (let i = 0; i < lists.length; i++) {
+									const result = await this.uploadFilePromise(lists[i].url)
+									let item = this.fileList[fileListLen]
+									this.fileList.splice(fileListLen, 1, Object.assign(item, {
+										status: 'success',
+										message: '',
+										url: result
+									}))
+									fileListLen++
+								}
+							},
+							uploadFilePromise(url) {
+								return new Promise((resolve, reject) => {
+									let a = uni.uploadFile({
+										url: this.$url+'/api/Publics/uploadLocality', // 仅为示例,非真实的接口地址
+										filePath: url,
+										name: 'file',
+										success: (res) => {
+											setTimeout(() => {
+												resolve(JSON.parse(res.data).data.url)
+											}, 1000)
+										}
+									});
+								})
+							},
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background-color: #F6F2FD;
+	}
+	.area{
+		box-sizing: border-box;
+		padding: 20rpx;
+		margin: 0 auto;
+		width: 690rpx;
+		height: 280rpx;
+		background: #F3F3F3;
+		border-radius: 20rpx;
+	}
+.index{
+	padding: 30rpx;
+}
+</style>

+ 36 - 0
pages/index/message.vue

@@ -0,0 +1,36 @@
+<template>
+	<view>
+		<web-view :src="http"></web-view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(option) {
+				this.id=uni.getStorageSync('userId')
+				console.log('wx',option)
+				if(option.otherid){
+					this.otherid=option.otherid,
+					this.http=`https://xiangqinim.zhousi.hdlkeji.com/h5?id=${this.id}&&otherid=${this.otherid}`
+					// this.http=`http://192.168.10.63:8082/h5?id=${this.id}&&otherid=${option.otherid}`
+					}else{
+						this.http=`https://xiangqinim.zhousi.hdlkeji.com/h5?id=${this.id}`
+						// this.http=`http://192.168.10.63:8082/h5?id=${this.id}`
+					}
+		},
+		data() {
+			return {
+				id:'',
+				http:'',
+				otherid:''
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 148 - 0
pages/index/pipei.vue

@@ -0,0 +1,148 @@
+<template>
+	<view>
+		<view class="">
+			<view class="" style="font-size: 32rpx;">
+				年龄
+			</view>
+			<view class="u-flex" style="width: 630rpx;
+			height: 120rpx;
+			background: #F1F1F1;
+			border-radius: 28rpx;margin: 24rpx 0;box-sizing: border-box;padding: 0 32rpx;" @click="showage=true">
+				<input type="text" :disabled="true" placeholder="你期望他的年龄" style="flex: 1;" v-model="age[0]+'-'+age[1]">
+				<u-icon name="arrow-down"></u-icon>
+			</view>
+			<view class="" style="font-size: 32rpx;">
+				学历
+			</view>
+			<view class="u-flex" style="width: 630rpx;
+					height: 120rpx;
+					background: #F1F1F1;
+					border-radius: 28rpx;margin: 24rpx 0;box-sizing: border-box;padding: 0 32rpx;" @click="showEducation=true">
+				<input type="text" :disabled="true" placeholder="你期望他的学历" style="flex: 1;" v-model="education">
+				<u-icon name="arrow-down"></u-icon>
+			</view>
+			<view class="" style="font-size: 32rpx;">
+				工作性质
+			</view>
+			<view class="u-flex" style="width: 630rpx;
+							height: 120rpx;
+							background: #F1F1F1;
+							border-radius: 28rpx;margin: 24rpx 0;box-sizing: border-box;padding: 0 32rpx;"  @click="showwork=true">
+				<input type="text" :disabled="true" placeholder="你期望他的工作性质" style="flex: 1;" v-model="work.name">
+				<u-icon name="arrow-down"></u-icon>
+			</view>
+			<image src="../../static/index/start.png" mode=""
+				style="position: fixed;bottom: 184rpx;left: 50%;transform: translateX(-50%);width: 296rpx;height: 296rpx;" @click="start">
+			</image>
+		</view>
+		<u-picker :show="showage" @cancel='showage=false' title="年龄" ref="uPicker" :columns="columns" @confirm="confirm" @change="changeHandler">
+		</u-picker>
+		<u-picker :show="showEducation" @cancel='showEducation=false' title="学历" ref="uPicker" :columns="columns2" @confirm="confirmEducation">
+		</u-picker>
+		<u-picker :show="showwork" @cancel='showwork=false' title="工作性质" @confirm='confirmWork' keyName="name"  :columns="columns1"></u-picker>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+				this.getWork()
+				var list=this.columns[0] 
+				var list1=this.columns[1] 
+				for( let i=1;i<66;i++){
+					if(list[list.length-1]<65){
+						list.push(list[0]+i)
+						list1.push(list1[0]+i)
+					}
+				}
+				
+				
+		},
+		data() {
+			return {
+				work:{},
+				age:[18,36],
+				showEducation:false,
+				showage: false,
+				showwork:false,
+				education:'',
+				columns1:[],
+				columns: [
+					[18],
+					[18]
+				],
+				columns2:[['高中','大专','本科','硕士','博士']]
+				
+			}
+		},
+		methods: {
+			confirmEducation(e){
+				this.education=e.value[0]
+				this.showEducation=false
+			},
+			confirmWork(e){
+				this.work=e.value[0]
+				this.showwork=false
+			},
+			getWork(){
+				uni.$u.http.post('/api/index/WorkNature').then(res => {
+				this.columns1=[res.data]
+				})
+			},
+			start(){
+				if(!this.education){
+					this.$u.toast('请选择学历')
+					return
+				}
+				if(Object.keys(this.work).length==0){
+					this.$u.toast('请选择工作性质')
+					return
+				}
+				var data={
+					age_min:this.age[0],
+					age_max:this.age[1],
+					nature:this.work.id,
+					education:this.education,
+				}
+					uni.navigateTo({
+						url:'./pipeizhong?info='+JSON.stringify(data)
+					})
+			},
+			changeHandler(e) {
+				console.log(11,e)
+				const {
+					columnIndex,
+					value,
+					values, // values为当前变化列的数组内容
+					index,
+					// 微信小程序无法将picker实例传出来,只能通过ref操作
+					picker = this.$refs.uPicker
+				} = e
+				// 当第一列值发生变化时,变化第二列(后一列)对应的选项
+				if (columnIndex === 0) {
+					this.columns[1]=[...this.columns[0]]
+					
+					console.log(123,this.columns[1])
+					// picker为选择器this实例,变化第二列对应的选项
+					// picker.setColumnValues(1, this.columnData[index])
+					this.columns[1].splice(0,index)
+					this.$set(this.columns,1,this.columns[1])
+					
+					console.log(456,this.columns[1])
+					
+				}
+			},
+			// 回调参数为包含columnIndex、value、values
+			confirm(e) {
+				this.age=e.value
+				this.showage = false
+			}
+		}
+	}
+</script>
+
+<style>
+	page {
+		padding: 40rpx 60rpx;
+	}
+</style>

+ 140 - 0
pages/index/pipeizhong.vue

@@ -0,0 +1,140 @@
+<template>
+	<view>
+		<view class="index">
+			<view class="pipei" v-if="isSearch">
+				<view class="bg">
+					<image src="../../static/index/pipeibg.png" mode="" :style="{'transform':'scale('+count+')'}"></image>
+					<view class="avatar">
+						<image :src="userInfo.headimg" mode=""></image>
+					</view>
+				</view>
+				<view class="" style="margin-top: 60rpx;text-align: center;font-size: 28rpx;">
+					正在根据你的择偶要求<br> 搜寻匹配的人
+				</view>
+			</view>
+			<view class="list u-flex u-row-between" v-if="!isSearch">
+				<view class="item" v-for="(item,index) in list" :key="index" @click="torecommendinfo(item)">
+					<view class="">
+						<image :src="item.headimg" mode=""></image>
+					</view>
+					<view class="" style="font-size: 32rpx;padding: 16rpx 0 8rpx 20rpx;">
+						{{item.nickname}} <image src="../../static/index/2@2x.png" mode="" style="width: 32rpx;height: 32rpx;margin:0 20rpx;vertical-align: middle;" v-show="itm.sex==1"></image> <image src="../../static/index/1@2x.png" mode="" style="width: 32rpx;height: 32rpx;margin:0 20rpx;vertical-align: middle;"  v-show="itm.sex==2"></image> 
+					</view>
+					<view class="u-flex u-row-between"  style="font-size: 24rpx;padding: 8rpx 0 34rpx 20rpx;color: #888888;">
+						<text>{{item.province_id?item.province_id:''}}{{item.age?'·'+item.age+'岁·':''}}{{item.height?item.height+'cm':''}}</text>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				isSearch:true,
+				count:0,
+				timer:null,
+				list:[],
+				userInfo:{}
+			}
+		},
+		onLoad(option) {
+			this.userInfo=JSON.parse(uni.getStorageSync('userInfo'))
+			this.getList(JSON.parse(option.info))
+		},
+		onShow() {
+			if(this.isSearch){
+				this.timer=setInterval(()=>{
+					console.log(1)
+					if(this.count<1){
+						this.count+=0.1
+					}
+					if(this.count>=1){
+						this.count=0
+					}
+				},200)
+			}
+		},
+		onUnload() {
+			clearInterval(this.timer)
+		},
+		methods: {
+			torecommendinfo(item){
+				uni.navigateTo({
+					url:'../profile/otherPage?id='+item.id
+				})
+			},
+			getList(data){
+				uni.$u.http.post('/api/Index/Intelligent',data).then(res => {
+				this.list=res.data
+				setTimeout(()=>{
+					if(this.list.length==0){
+						this.$u.toast('暂未找到合适的伴侣')
+						setTimeout(()=>{
+							uni.navigateBack({
+								
+							})
+						},1000)
+					}else{
+						this.isSearch=false
+					}
+					
+				},3000)
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.list{
+		flex-wrap: wrap;
+		padding: 20rpx 30rpx;
+		.item{
+			
+border-radius: 28rpx;
+			background-color: #fff;
+			margin-bottom: 20rpx;
+			image{
+				width: 330rpx;
+				height: 320rpx;
+				background: #FFFFFF;
+				border-radius: 28rpx;
+			}
+		}
+	}
+	.pipei{
+		position: absolute;
+		top: 132rpx;
+		left: 50%;
+		transform: translateX(-50%);
+		.bg{
+			margin: 0 auto;
+			width: 610rpx;
+			height: 610rpx;
+			position: relative;
+			text-align: center;
+			image{
+				width: 610rpx;
+				height: 610rpx;
+			}
+			.avatar{
+				position: absolute;
+				top: 50%;
+				left: 50%;
+				transform: translate(-50%,-50%);
+				image{
+					width: 172rpx;
+					height: 172rpx;
+					border-radius: 50%;
+					border: 8rpx solid #FFFFFF;
+				}
+			}
+		}
+	}
+page{
+	background-color: #F6F2FD;
+}
+</style>

+ 182 - 0
pages/index/recommend.vue

@@ -0,0 +1,182 @@
+<template>
+	<view>
+		<image src="../../static/bg.png" mode="" class="bg"></image>
+		 <view class="" style="padding: 30rpx;position: relative;">
+		 	<image :src="poster"  style="width: 690rpx;height: 920rpx"></image>
+			<image :src="qrcode" mode="" style="width: 120rpx;height: 120rpx;position: absolute;right: 40rpx;bottom: 56rpx;"></image>
+		 </view>
+		 <view class="" style="margin: 30rpx auto 40rpx;width: 610rpx;" @click="storageImg">
+		 	<u-button text="保存图片"  shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"></u-button>
+		 </view>
+		 <view class="" style="margin:0 auto;width: 610rpx;">
+			 <u-button type="error" :plain="true" openType="share" shape="circle" text="马上邀请好友"></u-button>
+		 	
+		 </view>
+		 <canvas canvas-id="shareCanvas" style="width: 690px;height: 920px;position: fixed;top: -1000px;left: 1000px;z-index: 99;"></canvas>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+				this.getInfo()
+		},
+		data() {
+			return {
+				poster:'',
+				qrcode:'',
+				canvas: null,
+			}
+		},
+		methods: {
+			storageImg(){
+					
+					this.drawCanvas()
+			},
+			// 封装的下载图片函数
+			    downLoadImage(url) {
+			      return new Promise((resolve, reject) => {
+			        wx.getImageInfo({
+			          src: url,
+			          success(res) {
+			            resolve(res.path)
+			          },
+			          fail(err) {
+			            reject(err)
+			          },
+			          complete() {
+			            console.log('complete')
+			          }
+			        })
+			      })
+			    },
+				drawCircular(ctx,width, height, x, y, url) {
+				  var avatarurl_width = width;
+				  var avatarurl_heigth = height;
+				  var avatarurl_x = x;
+				  var avatarurl_y = y;
+				  ctx.save();
+				  ctx.beginPath();
+				  ctx.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI * 2, false);
+				  ctx.clip();
+				  ctx.drawImage(url, avatarurl_x, avatarurl_y, avatarurl_width, avatarurl_heigth);
+				  ctx.restore();
+				},
+				//第一个参数:创建的画布对象
+				//第二个参数:矩形的宽
+				//第三个参数:矩形的高
+				//第四个参数:矩形左上角x轴坐标点,
+				//第五个参数:矩形左上角y轴坐标点,
+				//第六个参数:绘制的图片的URL
+			drawCanvas(){
+				uni.showLoading({
+					
+				})
+				var that=this
+					      let ctx = wx.createCanvasContext('shareCanvas', this)
+						  let productImage = this.downLoadImage(this.poster);
+						  let erCodeImage = this.downLoadImage(this.qrcode);
+					      Promise.all([productImage, erCodeImage]).then(imgs => {
+					        console.log('imgs', imgs)
+					        // 全部图片下载成功
+					        let bgWidth = 690;
+					        let bgHeight = 920;
+					        // 绘制白底背景
+					        ctx.setFillStyle('#fff')
+					        ctx.fillRect(0, 0, bgWidth, bgHeight)
+					        console.log('全部图片下载成功')
+					       
+					        // 绘制产品图片
+					        let productOffLeft = 0;
+					        let productOffTop = 0;
+					        let productWidth = 690;
+					        let productHeight = 920;
+					        ctx.drawImage(imgs[0], productOffLeft, productOffTop, productWidth, productHeight)
+					        
+					        console.log('imgs', imgs[2])
+					        ctx.drawImage(imgs[1], 530 , 780, 120, 120),
+							
+					        ctx.draw(true, () => {
+					          wx.hideLoading();
+					          // wx.showLoading({
+					          //   title: '保存中',
+					          //   icon: 'none'
+					          // })
+					          let _this = this;
+					          wx.canvasToTempFilePath({
+					            x: 0,
+					            y: 0,
+					            canvasId: 'shareCanvas',
+					            quality: 1.0,
+					            fileType: 'jpg',
+					            success(res) {
+					              console.log('生成图片成功')
+					              console.log('res', res.tempFilePath)
+								  that.saveImage(res.tempFilePath)
+					              wx.hideLoading()
+					            },
+					            fail(err) {
+					              console.log('err', err)
+					              wx.showToast({
+					                title: '图片生成失败',
+					                icon: 'none',
+					              })
+					            },
+					            complete() {
+					              
+					            }
+					          }, _this)
+					        })
+					      }).catch(err => {
+					        console.log(err)
+					      })
+					    },
+					    
+					    // 保存图片
+					    saveImage(url) {
+					      let _this = this;
+					      // let tempFilePath = this.data.tempFilePath;
+					      if (!url) {
+					        wx.showToast({
+					          title: '图片生成失败',
+					          icon: 'none',
+					        })
+					        return;
+					      }
+					      wx.saveImageToPhotosAlbum({
+					        filePath: url,
+					        success() {
+								_this.showShare=false
+					          wx.showToast({
+					            title: '已保存到相册,您可将图片分享到朋友圈',
+					            icon: 'none'
+					          })
+					        },
+					        fail() {
+					          wx.showToast({
+					            title: '图片保存失败',
+					            icon: 'none',
+					          })
+					        },
+					        complete() {
+					          // wx.hideLoading();
+					        }
+					      })
+			},
+			getInfo(){
+				uni.$u.http.post('/api/Publics/config_info').then(res => {
+					if(res.code==1){
+						this.poster=res.data.poster
+						this.qrcode=res.data.applet_code
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+page{
+	padding-bottom: 50rpx;
+}
+</style>

+ 146 - 0
pages/index/registerVip.vue

@@ -0,0 +1,146 @@
+<template>
+	<view>
+		<view class="u-flex u-row-between" style="height: 80rpx;background-color: #fff;position:fixed;top:0;width: 750rpx;line-height: 80rpx;padding: 0 30rpx;box-sizing: border-box;color: #666666;font-size: 26rpx;">
+			<view class="u-flex"  >
+				<view class="u-flex" @click="showsex=true">
+					性别 <u-icon name="arrow-down-fill" size="10" color="#000"></u-icon>
+				</view>
+				<view class="u-flex" style="margin-left: 30rpx;" @click="showage=true">
+					年龄 <u-icon name="arrow-down-fill"  size="10" color="#000"></u-icon>
+				</view>
+			</view>
+			<view class="u-flex">
+				筛选 <u-icon name="hourglass"  size="20" color="#000"></u-icon>
+			</view>
+		</view>
+		<view class="" style="background-color: #fff;width: 690rpx;margin:0 30rpx 20rpx;border-radius: 40rpx;" v-for="(item,index) in list" :key="index" @click="toinfo(item)">
+			<view class="">
+				<image :src="item.headimg" mode="" style="width: 690rpx;
+				height: 640rpx;
+				border-radius: 40rpx;"></image>
+			</view>
+	<view class="" style="font-size: 40rpx;padding: 20rpx;">
+		{{item.nickname}} <image src="../../static/index/2@2x.png" mode="" style="width: 36rpx;height: 36rpx;margin:0 20rpx" v-show="item.sex==1"></image> <image src="../../static/profile/8@2x.png" mode="" style="width: 104rpx;height: 36rpx;"  v-show="item.sex==2"></image>
+	</view>
+	<view class="u-flex u-row-between"  style="font-size: 28rpx;padding: 20rpx;color: #888888;">
+		<text>{{item.province_id?item.province_id+'·':''}}{{item.age?item.age+'·':''}}{{item.height?item.height:''}}</text>
+		<image src="../../static/index/dazhaohu.png" mode="" style="width: 190rpx;height: 68rpx;vertical-align: middle;" @click.stop="tomessage(item)"></image>
+	</view>
+		</view>
+		<u-picker :show="showsex" :columns="sexcolumns" keyName="name" @confirm='changesex' @cancel='showsex=false' :closeOnClickOverlay='true'>
+		</u-picker>
+		<u-picker :show="showage" @cancel='showage=false' title="年龄" ref="uPicker" :columns="columns" @confirm="confirm"  @change="changeage">
+		</u-picker>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+			var list=this.columns[0]
+			var list1=this.columns[1] 
+			for( let i=1;i<66;i++){
+				if(list[list.length-1]<65){
+					list.push(list[0]+i)
+					list1.push(list1[0]+i)
+				}
+			}
+			this.getInfo()
+				this.getList()
+		},
+		data() {
+			return {
+				columns1:[],
+				columns: [
+					[18],
+					[18]
+				],
+				sexcolumns: [
+					['男','女']
+				],
+				showsex:false,
+				showage:false,
+				list:[],
+				page:1,
+				info:{},
+				sex:''
+			}
+		},
+		onReachBottom() {
+			this.page++
+			this.getList()
+		},
+		methods: {
+			changeage(e) {
+				console.log(11,e)
+				const {
+					columnIndex,
+					value,
+					values, // values为当前变化列的数组内容
+					index,
+					// 微信小程序无法将picker实例传出来,只能通过ref操作
+					picker = this.$refs.uPicker
+				} = e
+				// 当第一列值发生变化时,变化第二列(后一列)对应的选项
+				if (columnIndex === 0) {
+					this.columns[1]=[...this.columns[0]]
+					
+					console.log(123,this.columns[1])
+					// picker为选择器this实例,变化第二列对应的选项
+					// picker.setColumnValues(1, this.columnData[index])
+					this.columns[1].splice(0,index)
+					this.$set(this.columns,1,this.columns[1])
+					
+					console.log(456,this.columns[1])
+					
+				}
+			},
+			changesex(e){
+					  this.sex=e.indexs[0]*1+1
+					  this.showsex=false
+			},
+			getInfo(){
+				uni.$u.http.post('/api/user/userinfo').then(res => {
+					if(res.code==1){
+						this.info=res.data
+						
+					}
+				})
+			},
+			tomessage(item){
+				if(this.info.vip_level==0){
+					this.$u.toast('您暂未认证')
+					return
+				}
+				if(this.info.vip_level==2){
+					this.$u.toast('经用户反馈,您账户存在违规行为,暂不支持使用该功能')
+					return
+				}
+				if(this.info.vip_level==3){
+									this.$u.toast('您的账户已注销,暂不支持使用该功能')
+									return
+								}
+				uni.navigateTo({
+					url:'./message?otherid='+item.im_id
+				})
+			},
+			toinfo(item){
+				uni.navigateTo({
+					url:'../profile/otherPage?id='+item.id
+				})
+			},
+			getList(){
+				uni.$u.http.post('/api/Index/registered_user',{page:this.page}).then(res => {
+				this.list=[...this.list,...res.data]
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+page{
+	padding: 80rpx 0;
+	background-color: #F6F2FD;
+}
+</style>

+ 60 - 0
pages/index/renzhengVip.vue

@@ -0,0 +1,60 @@
+<template>
+	<view>
+		<view class="" style="background-color: #fff;width: 690rpx;margin-bottom: 20rpx;border-radius: 40rpx;" v-for="(item,index) in list" :key="index" @click="toinfo(item)">
+			<view class="">
+				<image :src="item.headimg" mode="" style="width: 690rpx;
+				height: 640rpx;
+				border-radius: 40rpx;"></image>
+			</view>
+	<view class="" style="font-size: 40rpx;padding: 20rpx;">
+		{{item.nickname}} <image src="../../static/index/2@2x.png" mode="" style="width: 36rpx;height: 36rpx;margin:0 20rpx" v-show="item.sex==1"></image> <image src="../../static/index/1@2x.png" mode="" style="width: 36rpx;height: 36rpx;margin:0 20rpx"  v-show="item.sex==2"></image>
+	</view>
+	<view class="u-flex u-row-between"  style="font-size: 28rpx;padding: 20rpx;color: #888888;">
+		<text>{{item.province_id?item.province_id+'·':''}}{{item.age?item.age+'·':''}}{{item.height?item.height:''}}</text>
+		<image src="../../static/index/dazhaohu.png" mode="" style="width: 190rpx;height: 68rpx;vertical-align: middle;" @click.stop="tomessage(item)"></image>
+	</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+				this.getList()
+		},
+		data() {
+			return {
+				list:[],
+				page:1
+			}
+		},
+		onReachBottom() {
+			this.page++
+			this.getList()
+		},
+		methods: {
+			tomessage(item){
+				uni.navigateTo({
+					url:'./message?otherid='+item.im_id
+				})
+			},
+			toinfo(item){
+				uni.navigateTo({
+					url:'../profile/otherPage?id='+item.id
+				})
+			},
+			getList(){
+				uni.$u.http.post('/api/Index/certified_user',{page:this.page}).then(res => {
+				this.list=[...this.list,...res.data]
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+page{
+	padding: 20rpx 30rpx;
+	background-color: #F6F2FD;
+}
+</style>

+ 32 - 0
pages/index/talkInfo.vue

@@ -0,0 +1,32 @@
+<template>
+	<view style="padding: 0 30rpx;">
+		<view class="" style="font-size: 40rpx;text-align: center;">
+			{{info.title}}
+		</view>
+		<rich-text :nodes="info.content"></rich-text>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(option) {
+			this.getinfo(option.id)
+		},
+		data() {
+			return {
+				info:{}
+			}
+		},
+		methods: {
+			getinfo(id){
+				uni.$u.http.post('/api/index/articlederail',{id:id}).then(res => {
+				this.info=res.data
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 131 - 0
pages/index/talkLove.vue

@@ -0,0 +1,131 @@
+<template>
+	<view>
+		<view class="" style="padding: 20rpx 30rpx;">
+			<u--input
+			    placeholder="输入关键词查询"
+			    border="surround"
+			    v-model="value"
+			    @change="change"
+				@confirm="confirm"
+				confirm-type="search"
+				clearable
+				shape="circle"
+				prefixIcon="search"
+					    prefixIconStyle="font-size: 22px;color: #909399"
+			  ></u--input>
+		</view>
+	<!-- 	<u-tabs :current='current' :scrollable='false' lineColor='#A890FE' itemStyle="width: 125px;padding-bottom:10px" :activeStyle="{
+		    color: '#303133',
+		    fontWeight: 'bold',
+		    transform: 'scale(1.05)'
+		}" :list="list" @change="change1"></u-tabs> -->
+		<view class="talkList">
+			<view class="talkItem u-flex u-row-between" v-for="(item,index) in article" :key="index" @click="toinfo(item)">
+				<image :src="item.show_image" mode=""></image>
+				<view class="talkRight">
+					<view class="talkTitle">
+						{{item.subtitle}}
+					</view>
+					<view class="talkInfo u-flex  u-row-between">
+						<!-- <text>小小小柚子</text> -->
+						<text>{{item.create_at}}</text>
+					
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title:'',
+				article:[],
+				value: '',
+				current:0,
+				page:1,
+				list: [{
+					name: '全部',
+				}, {
+					name: '推荐',
+				}]
+			}
+		},
+		onReachBottom() {
+			this.page++
+			this.getList()
+		},
+		onLoad() {
+		this.getList()	
+		},
+		methods: {
+			getList(){
+				uni.$u.http.post('/api/Index/articlelist',{page:this.page,title:this.title}).then(res => {
+				if(this.page==1){
+					this.article=res.data.data
+				}else{
+					this.article=[...this.video,...res.data.data]
+				}
+				})
+			},
+			toinfo(item){
+					uni.navigateTo({
+						url:'./talkInfo?id='+item.id
+					})
+			},
+			change1(e){
+				if(this.current!=e.index){
+					this.current=e.index
+				}
+			},
+			confirm(e){
+				this.page=1
+				this.title=e
+				this.getList()
+			},
+			 change(e) {
+			          console.log('change', e);
+			        }
+		}
+	}
+</script>
+
+<style lang="scss">
+.talkList{
+			box-sizing: border-box;
+			margin: 18rpx auto 0;
+			width: 690rpx;
+			background: #FFFFFF;
+			border-radius: 28rpx;
+			padding: 0 20rpx;
+			.talkItem{
+				padding: 20rpx 0;
+				border-bottom: 2rpx solid #F3F3F3;
+				image{
+					width: 220rpx;
+					height: 148rpx;
+					border-radius: 16rpx;
+				}
+				.talkRight{
+					width: 402rpx;
+					margin-left: 20rpx;
+					.talkTitle{
+						margin-bottom: 16rpx;
+						color: #222222;
+						font-size: 32rpx;
+					}
+					.talkInfo{
+						overflow: hidden;
+						white-space: nowrap;
+						text-overflow: ellipsis;
+						margin-top: 10rpx;
+						color: #999999;
+						font-size: 20rpx;
+					}
+				}
+				
+			}
+		}
+</style>

+ 40 - 0
pages/index/videoInfo.vue

@@ -0,0 +1,40 @@
+<template>
+	<view>
+		<view class="" style="padding-left: 30rpx;">
+			<image src="../../static/index/back.png" mode="" style="width: 64rpx;height: 64rpx;" @click="back"></image>
+		</view>
+		<view class="" style="position: absolute;top: 50%;transform: translateY(-50%);">
+			<video :src="info.video_url" style="width: 750rpx;height: 440rpx;" :controls="true" ></video>
+		</view>
+		<view class="" style="position: fixed;bottom: 240rpx;left:30rpx;right: 30rpx;color: #fff;font-size: 30rpx;">
+			{{info.title}}
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(option) {
+			this.info=JSON.parse(option.item)
+		},
+		data() {
+			return {
+				info:{}
+			}
+		},
+		methods: {
+			back(){
+				uni.navigateBack({
+					
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+page{
+	padding-top: 100rpx;
+	background-color: #000000;
+}
+</style>

+ 115 - 0
pages/index/videoList.vue

@@ -0,0 +1,115 @@
+<template>
+	<view>
+		<view class="" style="padding: 20rpx 30rpx;">
+			<u--input
+			    placeholder="输入关键词查询"
+			    border="surround"
+			    v-model="value"
+				@confirm="confirm"
+				confirm-type="search"
+				clearable
+				shape="circle"
+				prefixIcon="search"
+					    prefixIconStyle="font-size: 22px;color: #909399"
+			  ></u--input>
+		</view>
+		<view class="videoContent">
+			<view class="videoItem u-flex" v-for="(item,index) in video" :key="index" @click="toinfo(item)">
+				<view class="time">{{item.video_time}}</view>
+				<image :src="item.show_image" mode=""></image>
+				<view class="">
+					<view class="name">
+						{{item.title}}
+					</view>
+					<view class="" style="font-size: 20rpx;color: #999999;margin-top: 40rpx;">
+						{{item.create_at}}
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+				this.getList()
+		},
+		onReachBottom() {
+			this.page++
+			this.getList()
+		},
+		data() {
+			return {
+				title:'',
+				value: '',
+				page:1,
+				video:[]
+			}
+		},
+		methods: {
+			toinfo(item){
+					uni.navigateTo({
+						url:'./videoInfo?item='+JSON.stringify(item)
+					})
+			},
+			getList(){
+				uni.$u.http.post('/api/Index/videolist',{page:this.page,title:this.title}).then(res => {
+				if(this.page==1){
+					this.video=res.data.data
+				}else{
+					this.video=[...this.video,...res.data.data]
+				}
+				})
+			},
+			confirm(e){
+				this.page=1
+				this.title=e
+				this.getList()
+			},
+			 
+		}
+	}
+</script>
+
+<style lang="scss">
+.videoContent{
+		padding: 0 30rpx;
+			margin-top: 22rpx;
+			.videoItem{
+				position: relative;
+				padding-bottom: 24rpx;
+				border-bottom: 2rpx solid #F3F3F3;
+				// height: 280rpx;
+				background: #FFFFFF;
+				border-radius: 16rpx;
+				image{
+					border-radius: 16rpx;
+					width: 304rpx;
+					height: 172rpx;
+					margin-right: 20rpx;
+				}
+				.name{
+					box-sizing: border-box;
+					font-size: 30rpx;
+					color: #222222;
+					font-weight: 400;
+					
+				}
+				.time{
+					position: absolute;
+					top: 124rpx;
+					left: 220rpx;
+					color: #fff;
+					width: 64rpx;
+					height: 28rpx;
+					line-height: 28rpx;
+					text-align: center;
+					font-size: 20rpx;
+					background: rgba(0,0,0,0.4000);
+					border-radius: 16rpx;
+					z-index: 1;
+				}
+			}
+		}
+</style>

+ 34 - 0
pages/index/zixun.vue

@@ -0,0 +1,34 @@
+<template>
+	<view>
+		<textarea placeholder="请详细描述您需要咨询的内容(具体情况、时间长久、用药情况等)。" maxlength="500" name="" id="" rows="20"  style="margin: 0 auto;width: 690rpx;height: calc( 100vh - 200rpx );" v-model="content"></textarea>
+	<view class="" style="width: 650rpx;
+	height: 88rpx;
+	background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+	border-radius: 46rpx;line-height: 80rpx;text-align: center;font-size: 36rpx;color: #fff;margin: 20rpx auto;" @click="submit">
+			立即咨询
+		</view>
+	</view>
+	
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				content:''
+			}
+		},
+		methods: {
+			submit(){
+				if(!this.content){
+					this.$u.toast('请输入要咨询的内容')
+					return
+				}
+			}
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 142 - 0
pages/profile/bangding.vue

@@ -0,0 +1,142 @@
+<template>
+	<view class="index">
+		<view class="title">
+			绑定手机号
+		</view>
+		<view class="phone u-flex">
+			<input type="number" placeholder="请输入手机号" v-model="tel">
+		</view>
+		<view class="phone u-flex">
+			<input type="number" placeholder="请输入短信验证码" v-model="code">
+			<text class="code" @click="send">{{tips}}</text>
+		</view>
+		<view class="publish" @click="submit">
+			绑定
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				code:'',
+				tel:'',
+				tips:'获取验证码',
+				s: 60,
+				time: null,
+			}
+		},
+		methods: {
+			submit(){
+				if (!this.tel) {
+					this.$u.toast('请输入手机号')
+					return 
+				}
+				if (!this.tel) {
+					this.$u.toast('请输入验证码')
+					return 
+				}
+				uni.$u.http.post('/api/user/binding_phone',{phone:this.tel,code:this.code}).then(res => {
+					if(res.code==1){
+						this.$u.toast(res.msg)
+						setTimeout(()=>{
+							uni.navigateBack({
+								
+							})
+						},2000)
+				
+					}
+				})
+			},
+			send() {
+				if (this.s == 60) {
+					if (!this.tel) {
+						uni.showToast({
+							title: "请输入手机号",
+							duration: 2000,
+							icon: "none",
+						});
+						return false;
+					}
+					
+					uni.showLoading({
+						mask: true,
+						title: "请稍后"
+					})
+					var result = {}
+					result.phone = this.tel
+					result.event = 'register'
+					this.$u.post('/api/Sms/send', result).then((res) => {
+						uni.hideLoading()
+						uni.showToast({
+							title: res.msg,
+							duration: 2000,
+							icon: "none",
+						});
+						if (res.code == 1) {
+							this.time = setInterval(() => {
+								this.s--
+								this.tips = `${this.s}s`
+								if (this.s == 0) {
+									this.s = 60
+									this.tips = '重新发送'
+									clearInterval(this.time)
+								}
+							}, 1000)
+						}
+					});
+				} else {
+					uni.showToast({
+						title: "请稍后再试",
+						duration: 2000,
+						icon: "none",
+					});
+					return false;
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.publish{
+		
+		margin: 128rpx auto;
+		width: 650rpx;
+		height: 104rpx;
+		line-height: 104rpx;
+		text-align: center;
+		background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+		border-radius: 52rpx;
+		font-size: 36rpx;
+		color: #fff;
+		
+	}
+.index{
+	padding: 70rpx 60rpx 0;
+	color: #222222;
+	.title{
+		font-size: 44rpx;
+		font-weight: 600;
+		margin-bottom: 50rpx;
+	}
+	.phone{
+		height: 128rpx;
+		line-height: 128rpx;
+		border-bottom: 2rpx solid #F2F2F2;
+		input{
+			flex: 1;
+		}
+		.code{
+			font-size: 32rpx;
+			font-family: PingFangSC-Regular, PingFang SC;
+			font-weight: 400;
+			color: #999999;
+			background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+			-webkit-background-clip: text;
+			-webkit-text-fill-color: transparent;
+		}
+	}
+}
+</style>

+ 190 - 0
pages/profile/changephone.vue

@@ -0,0 +1,190 @@
+<template>
+	<view class="index">
+		<view class="" v-if="isStart">
+			<view class="title">
+				更换手机号
+			</view>
+			<view class="phone u-flex">
+				<input type="number" placeholder="请输入手机号" v-model="oldPhone">
+			</view>
+			<view class="phone u-flex">
+				<input type="number" placeholder="请输入短信验证码" v-model="oldCode">
+				<text class="code" @click="send">{{tips}}</text>
+			</view>
+			<view class="publish" @click="next">
+				下一步
+			</view>
+		</view>
+		<view class="" v-else>
+			<view class="title">
+				新手机号
+			</view>
+			<view class="phone u-flex">
+				<input type="number" placeholder="请输入手机号" v-model="newPhone">
+			</view>
+			<view class="phone u-flex">
+				<input type="number" placeholder="请输入短信验证码" v-model="newCode">
+				<text class="code" @click="send">{{tips}}</text>
+			</view>
+			<view class="publish" @click="submit">
+				提交
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				tips:'获取验证码',
+				s: 60,
+				time: null,
+				isStart:true,
+				oldPhone:'',
+				oldCode:'',
+				newPhone:'',
+				newCode:'',
+			}
+		},
+		methods: {
+			submit(){
+				if (!this.newPhone) {
+					this.$u.toast('请输入新手机号')
+					return 
+				}
+				if (!this.newCode) {
+					this.$u.toast('请输入新手机号验证码')
+					return 
+				}	
+				uni.$u.http.post('/api/user/eidt_phone',{phone:this.oldPhone,code:this.oldCode,new_phone:this.newPhone,new_code:this.newCode}).then(res => {
+					if(res.code==1){
+						this.$u.toast(res.msg)
+						setTimeout(()=>{
+							uni.navigateBack({
+								
+							})
+						},2000)
+				
+					}
+				})
+			},
+			next(){
+				if (!this.oldPhone) {
+					this.$u.toast('请输入旧手机号')
+					return 
+				}
+				if (!this.oldCode) {
+					this.$u.toast('请输入旧手机号验证码')
+					return 
+				}
+				this.s=60
+				this.tips='获取验证码'
+			// uni.navigateTo({
+			// 	url:'newphone'
+			// })	
+			this.isStart=false
+			},
+			send() {
+				if (this.s == 60) {
+					if(this.isStart){
+						if (!this.oldPhone) {
+							uni.showToast({
+								title: "请输入旧手机号",
+								duration: 2000,
+								icon: "none",
+							});
+							return false;
+						}
+					}else{
+						if (!this.newPhone) {
+							uni.showToast({
+								title: "请输入新手机号",
+								duration: 2000,
+								icon: "none",
+							});
+							return false;
+						}
+					}
+					
+					
+					uni.showLoading({
+						mask: true,
+						title: "请稍后"
+					})
+					var result = {}
+					result.phone = this.tel
+					result.event = 'register'
+					this.$u.post('/api/Sms/send', result).then((res) => {
+						uni.hideLoading()
+						uni.showToast({
+							title: res.msg,
+							duration: 2000,
+							icon: "none",
+						});
+						if (res.code == 1) {
+							this.time = setInterval(() => {
+								this.s--
+								this.tips = `${this.s}s`
+								if (this.s == 0) {
+									this.s = 60
+									this.tips = '重新发送'
+									clearInterval(this.time)
+								}
+							}, 1000)
+						}
+					});
+				} else {
+					uni.showToast({
+						title: "请稍后再试",
+						duration: 2000,
+						icon: "none",
+					});
+					return false;
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.publish{
+		
+		margin: 128rpx auto;
+		width: 650rpx;
+		height: 104rpx;
+		line-height: 104rpx;
+		text-align: center;
+		background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+		border-radius: 52rpx;
+		font-size: 36rpx;
+		color: #fff;
+		
+	}
+.index{
+	padding: 70rpx 60rpx 0;
+	color: #222222;
+	.title{
+		font-size: 44rpx;
+		font-weight: 600;
+		margin-bottom: 50rpx;
+	}
+	.phone{
+		height: 128rpx;
+		line-height: 128rpx;
+		border-bottom: 2rpx solid #F2F2F2;
+		input{
+			flex: 1;
+		}
+		.code{
+			font-size: 32rpx;
+			font-family: PingFangSC-Regular, PingFang SC;
+			font-weight: 400;
+			color: #999999;
+			background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+			-webkit-background-clip: text;
+			-webkit-text-fill-color: transparent;
+		}
+	}
+}
+</style>

+ 84 - 0
pages/profile/dianzan.vue

@@ -0,0 +1,84 @@
+<template>
+	<view>
+		<view class="top1 u-flex u-row-between" v-for="(item,index) in list" :key="index">
+			<view class="topleft u-flex">
+				<image :src="item.headimg" mode=""></image>
+				<view class="">
+					<view class="name">
+						{{item.nickname}}
+					</view>
+					<view class="area">
+						点赞了你的动态
+					</view>
+					<view class="area">
+					{{item.create_at}}
+					</view>
+				</view>
+			</view>
+			<view class="topright">
+				<image :src="item.show_images[0]" mode=""></image>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+			this.getList()
+		},
+		data() {
+			return {
+				list:[]
+			}
+		},
+		methods: {
+			getList(){
+				uni.$u.http.post('/api/user/fabulous').then(res => {
+					this.list=res.data
+				})
+			},
+		}
+	}
+</script>
+
+<style  lang="scss">
+page{
+	background-color: #F3F3F3;
+}
+.top1{
+		padding: 10rpx 30rpx;
+		background-color: #fff;
+		border-bottom: 2rpx solid #F3F3F3;
+		// margin-bottom: 20rpx;
+	}
+.topleft{
+				image{
+					width: 76rpx;
+					height: 76rpx;
+					border-radius: 50%;
+					margin-right: 20rpx;
+				}
+				.name{
+					font-size: 28rpx;
+					color: #222222;
+					font-weight: 600;
+					image{
+						margin-left: 8rpx;
+						width: 28rpx;
+						height: 28rpx;
+					}
+				}
+				.area{
+					font-size: 20rpx;
+					color: #999999;
+				}
+			}
+			.topright{
+				image{
+					width: 112rpx;
+					height: 112rpx;
+					border-radius: 20rpx;
+				}
+			}
+</style>

+ 93 - 0
pages/profile/fensi.vue

@@ -0,0 +1,93 @@
+<template>
+	<view>
+		<view class="top1 u-flex u-row-between" v-for="(item,index) in list" :key="index" >
+			<view class="topleft u-flex">
+				<image :src="item.headimg" mode=""></image>
+				<view class="">
+					<view class="name">
+						{{item.nickname}}
+					</view>
+					<view class="area">
+						{{item.shortname}}·{{item.age}}岁
+					</view>
+				</view>
+			</view>
+			<view class="topright" @click="itemClick(item)">
+				{{item.is_hui==1?'互相关注':'回关'}}
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+			this.getList()
+		},
+		data() {
+			return {
+				list:[]
+			}
+		},
+		methods: {
+			itemClick(item){
+				uni.$u.http.post('/api/user/user_follow',{mid:item.mid}).then(res => {
+					this.$u.toast(res.msg)
+					this.getList()
+				})
+			},
+			getList(){
+				uni.$u.http.post('/api/user/fans').then(res => {
+					this.list=res.data
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background-color: #F3F3F3;
+	}
+	.top1{
+		padding: 10rpx 30rpx;
+		background-color: #fff;
+		// margin-bottom: 20rpx;
+	}
+.topleft{
+				image{
+					width: 76rpx;
+					height: 76rpx;
+					border-radius: 50%;
+					margin-right: 20rpx;
+				}
+				.name{
+					font-size: 28rpx;
+					color: #222222;
+					font-weight: 600;
+					image{
+						margin-left: 8rpx;
+						width: 28rpx;
+						height: 28rpx;
+					}
+				}
+				.area{
+					font-size: 20rpx;
+					color: #999999;
+				}
+			}
+			.topright{
+				font-size: 24rpx;
+				width: 136rpx;
+				height: 56rpx;
+				text-align: center;
+				line-height:  56rpx;
+				border-radius: 28rpx;
+				border: 3rpx solid #C7A6CE;
+				font-weight: 400;
+				color: #999999;
+				background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+				-webkit-background-clip: text;
+				-webkit-text-fill-color: transparent;
+			}
+</style>

+ 109 - 0
pages/profile/ganxingqu.vue

@@ -0,0 +1,109 @@
+<template>
+	<view>
+		<view class="" style="margin-bottom: 20rpx;
+padding: 20rpx 30rpx;background-color: #fff;">
+			<u-subsection bgColor="#F3F3F3" button-color="#222222" activeColor="#222222" @change="sectionChange" inactiveColor="#888888" :list="tabslist" :current="current"></u-subsection>
+		</view>
+		<view class="top1 u-flex u-row-between" v-for="(item,index) in list" :key="index">
+			<view class="topleft u-flex">
+				<image :src="item.headimg" mode=""></image>
+				<view class="">
+					<view class="name">
+						{{item.nickname}} 
+					</view>
+					<view class="area">
+						{{item.shortname}}·{{item.age}}岁
+					</view>
+				</view>
+			</view>
+			<view class="topright" v-if="item.is_hui==0"   @click="itemClick(item)">
+				感兴趣
+			</view>
+			<view class="topright" v-else   @click="itemClick(item)">
+				取消感兴趣
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+			this.getList()
+		},
+		data() {
+			return {
+				list:[],
+				current:0,
+				tabslist: ['互相感兴趣', '我感兴趣的', '对我感兴趣的'],
+			}
+		},
+		methods: {
+			itemClick(item){
+				uni.$u.http.post('/api/user/user_interested',{mid:item.mid?item.mid:item.i_id}).then(res => {
+					this.$u.toast(res.msg)
+					this.getList()
+				})
+			},
+			getList(){
+				uni.$u.http.post('/api/user/interested',{type:this.current+1}).then(res => {
+					this.list=res.data
+				})
+			},
+			sectionChange(index) {
+					
+				if(this.current!=index){
+					this.current = index;
+					this.getList()
+				}
+						}
+		}
+	}
+</script>
+
+<style lang="scss">
+page{
+	background-color: #F3F3F3;
+}
+.top1{
+		padding: 10rpx 30rpx;
+		background-color: #fff;
+		// margin-bottom: 20rpx;
+	}
+.topleft{
+				image{
+					width: 76rpx;
+					height: 76rpx;
+					border-radius: 50%;
+					margin-right: 20rpx;
+				}
+				.name{
+					font-size: 28rpx;
+					color: #222222;
+					font-weight: 600;
+					image{
+						margin-left: 8rpx;
+						width: 28rpx;
+						height: 28rpx;
+					}
+				}
+				.area{
+					font-size: 20rpx;
+					color: #999999;
+				}
+			}
+			.topright{
+				font-size: 24rpx;
+				width: 136rpx;
+				height: 56rpx;
+				text-align: center;
+				line-height:  56rpx;
+				border-radius: 28rpx;
+				border: 3rpx solid #C7A6CE;
+				font-weight: 400;
+				color: #999999;
+				background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+				-webkit-background-clip: text;
+				-webkit-text-fill-color: transparent;
+			}
+</style>

+ 94 - 0
pages/profile/guanzhu.vue

@@ -0,0 +1,94 @@
+<template>
+	<view>
+		<view class="top1 u-flex u-row-between" v-for="(item,index) in list" :key="index">
+			<view class="topleft u-flex">
+				<image :src="item.headimg" mode=""></image>
+				<view class="">
+					<view class="name">
+						{{item.nickname}}
+					</view>
+					<view class="area">
+						{{item.shortname}}·{{item.age}}岁
+					</view>
+				</view>
+			</view>
+			<view class="topright"  @click="itemClick(item)">
+				取消关注
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+			this.getList()
+		},
+		data() {
+			return {
+				list:[]
+			}
+		},
+		methods: {
+			itemClick(item){
+				uni.$u.http.post('/api/user/user_follow',{mid:item.fid}).then(res => {
+					this.$u.toast(res.msg)
+					this.getList()
+				})
+			},
+			
+			getList(){
+				uni.$u.http.post('/api/user/follow').then(res => {
+					this.list=res.data
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background-color: #F3F3F3;
+	}
+	.top1{
+		padding: 10rpx 30rpx;
+		background-color: #fff;
+		// margin-bottom: 20rpx;
+	}
+.topleft{
+				image{
+					width: 76rpx;
+					height: 76rpx;
+					border-radius: 50%;
+					margin-right: 20rpx;
+				}
+				.name{
+					font-size: 28rpx;
+					color: #222222;
+					font-weight: 600;
+					image{
+						margin-left: 8rpx;
+						width: 28rpx;
+						height: 28rpx;
+					}
+				}
+				.area{
+					font-size: 20rpx;
+					color: #999999;
+				}
+			}
+			.topright{
+				font-size: 24rpx;
+				width: 136rpx;
+				height: 56rpx;
+				text-align: center;
+				line-height:  56rpx;
+				border-radius: 28rpx;
+				border: 3rpx solid #C7A6CE;
+				font-weight: 400;
+				color: #999999;
+				background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+				-webkit-background-clip: text;
+				-webkit-text-fill-color: transparent;
+			}
+</style>

+ 181 - 0
pages/profile/jubao.vue

@@ -0,0 +1,181 @@
+<template>
+	<view class="index">
+		<view class="" v-if="!success">
+			<view class="" style="font-size: 32rpx;color: #222;font-weight: 600;">
+				<text style="color: #FF2929;">*</text>举报原因
+			</view>
+			<view class="u-flex u-row-between" style="font-size: 24rpx;border-bottom: 2rpx solid #F3F3F3;padding: 20rpx 0;" @click="show=true">
+				<text>{{select!=null?select.title:'请选择举报类型'}}</text>
+				<u-icon name="arrow-right"></u-icon>
+			</view>
+			<view class="" style="font-size: 32rpx;color: #222;font-weight: 600;margin:20rpx 0">
+				<text style="color: #FF2929;">*</text>具体情况
+			</view>
+			<textarea name="" id="" cols="30" v-model="content" rows="10" class="area" placeholder="请详细描述所遇到的问题…" maxlength="100"></textarea>
+			<view class="" style="font-size: 32rpx;color: #222;font-weight: 600;margin: 20rpx 0;">
+				<text style="color: #FF2929;">*</text>证据截图(最多6张)
+			</view>
+			<view class="" style="font-size: 24rpx;color: #999999;margin-bottom: 20rpx;">
+				直观的截图是非常有利的证据
+			</view>
+			<u-upload
+				:fileList="fileList"
+				@afterRead="afterRead"
+				@delete="deletePic"
+				name="3"
+				:multiple='false'
+				:maxCount="6"
+				:previewFullImage="true"
+				width="100"
+					height="100"
+			></u-upload>
+			<view class="" style="margin-top: 78rpx;">
+				<u-button text="提交"  @click="submit" shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"></u-button>
+			</view>
+			<u-picker  :show="show" title="举报原因" keyName="title" :columns="columns" @confirm='change' @cancel='cancel' :closeOnClickOverlay='true'>
+			</u-picker>
+		</view>
+		<view class="u-flex-col" style="padding-top: 162rpx;"  v-else>
+			<image src="../../static/profile/success.png" mode="" style="width: 112rpx;height: 112rpx;"></image>
+			<text style="font-size: 36rpx;color: #000;font-weight: 600;margin: 40rpx;">提交成功</text>
+			<text style="font-size: 24rpx;color: #888888;margin-bottom: 182rpx;">您的举报我们已经收到,请耐心等待处理结果</text>
+			<u-button text="返回会员主页"  shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)" @click="back"></u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(option) {
+			this.id=option.id
+			this.getReason()
+		},
+		data() {
+			return {
+				id:'',
+				success:false,
+				content:'',
+				show: false,
+				columns: [
+					[]
+				],
+				select:null,
+				fileList: [],
+			}
+		},
+		methods: {
+			submit(){
+				if(!this.select){
+					this.$u.toast('请选择举报类型')
+					return
+				}
+				if(!this.content){
+					this.$u.toast('请填写举报原因')
+					return
+				}
+				var arr=[]
+				this.fileList.forEach(item=>{
+					arr.push(item.url)
+				})
+				uni.$u.http.post('/api/index/user_report',{r_id:this.id,type:this.select.id,content:this.content,r_images:arr.toString()}).then(res => {
+				if(res.code==1){
+					this.success=true
+				}
+				
+				})
+			},
+			back(){
+					uni.navigateBack({
+						
+					})
+			},
+			change(e) {
+				this.select = e.value[0]
+				// console.log(this.columns[0][this.current])
+				this.show = false
+			},
+			cancel() {
+				this.show = false
+			},
+			getReason(){
+				uni.$u.http.post('/api/index/report_problem').then(res => {
+				this.columns=[res.data]
+				
+				})
+			},
+			// 删除图片
+							deletePic(event) {
+								var that=this
+								uni.showModal({
+									title: '',
+									content: '是否删除这张图片',
+									confirmColor:'#FF3D3D',
+									confirmText:'删除',
+									success: function (res) {
+										if (res.confirm) {
+											that.fileList.splice(event.index, 1)
+										} else if (res.cancel) {
+											console.log('用户点击取消');
+										}
+									}
+								});
+			
+							},
+							// 新增图片
+							async afterRead(event) {
+								// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+								let lists = [].concat(event.file)
+								let fileListLen = this.fileList.length
+								lists.map((item) => {
+									this.fileList.push({
+										...item,
+										status: 'uploading',
+										message: '上传中'
+									})
+								})
+								for (let i = 0; i < lists.length; i++) {
+									const result = await this.uploadFilePromise(lists[i].url)
+									let item = this.fileList[fileListLen]
+									this.fileList.splice(fileListLen, 1, Object.assign(item, {
+										status: 'success',
+										message: '',
+										url: result
+									}))
+									fileListLen++
+								}
+							},
+							uploadFilePromise(url) {
+								return new Promise((resolve, reject) => {
+									let a = uni.uploadFile({
+										url: this.$url+'/api/Publics/uploadLocality', // 仅为示例,非真实的接口地址
+										filePath: url,
+										name: 'file',
+										formData: {
+											user: 'test'
+										},
+										success: (res) => {
+											setTimeout(() => {
+												resolve(JSON.parse(res.data).data.url)
+											}, 1000)
+										}
+									});
+								})
+							},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.area{
+		box-sizing: border-box;
+		padding: 20rpx;
+		margin: 0 auto;
+		width: 690rpx;
+		height: 280rpx;
+		background: #F3F3F3;
+		border-radius: 20rpx;
+	}
+.index{
+	padding: 30rpx;
+}
+</style>

+ 120 - 0
pages/profile/lifePhoto.vue

@@ -0,0 +1,120 @@
+<template>
+	<view>
+		<u-upload
+			:fileList="fileList"
+			@afterRead="afterRead"
+			@delete="deletePic"
+			name="3"
+			:multiple='false'
+			:maxCount="maxCount"
+			:previewFullImage="true"
+			width="110"
+				height="110"
+				:deletable="id==''"
+		></u-upload>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(option) {
+			if(option.id){
+				this.id=option.id
+			}
+			this.getpersonPhoto()
+		},
+		data() {
+			return {
+				fileList: [],
+				id:'',
+				maxCount:10
+			}
+		},
+		methods: {
+			getpersonPhoto(){
+				uni.$u.http.post('/api/user/life_album',{id:this.id?this.id:uni.getStorageSync('userId')}).then(res => {
+					if(res.code==1){
+						this.fileList=res.data
+						if(this.id){
+							this.maxCount=res.data.length
+						}
+					}
+				})
+			},
+			// 删除图片
+						deletePic(event) {
+							console.log(event)
+							var that=this
+							uni.showModal({
+								title: '',
+								content: '是否删除这张图片',
+								confirmColor:'#FF3D3D',
+								confirmText:'删除',
+								success: function (res) {
+									if (res.confirm) {
+										uni.$u.http.post('/api/user/del_album',{id:event.file.id}).then(res => {
+											if(res.code==1){
+												that.getpersonPhoto()
+											}
+										})
+									} else if (res.cancel) {
+										console.log('用户点击取消');
+									}
+								}
+							});
+
+						},
+						// 新增图片
+						async afterRead(event) {
+							// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+							let lists = [].concat(event.file)
+							let fileListLen = this.fileList.length
+							lists.map((item) => {
+								this.fileList.push({
+									...item,
+									status: 'uploading',
+									message: '上传中'
+								})
+							})
+							for (let i = 0; i < lists.length; i++) {
+								const result = await this.uploadFilePromise(lists[i].url)
+								uni.$u.http.post('/api/user/upload_album',{image:result,type:2}).then(res => {
+									if(res.code==1){
+										this.getpersonPhoto()
+									}
+								})
+								// let item = this.fileList[fileListLen]
+								// this.fileList.splice(fileListLen, 1, Object.assign(item, {
+								// 	status: 'success',
+								// 	message: '',
+								// 	url: result
+								// }))
+								// fileListLen++
+							}
+						},
+						uploadFilePromise(url) {
+							return new Promise((resolve, reject) => {
+								let a = uni.uploadFile({
+									url: this.$url+'/api/Publics/uploadLocality', // 仅为示例,非真实的接口地址
+									filePath: url,
+									name: 'file',
+									formData: {
+										user: 'test'
+									},
+									success: (res) => {
+										setTimeout(() => {
+											resolve(JSON.parse(res.data).data.url)
+										}, 1000)
+									}
+								});
+							})
+						},
+		}
+	}
+</script>
+
+<style>
+page{
+	padding: 30rpx;
+}
+</style>

+ 72 - 0
pages/profile/login.vue

@@ -0,0 +1,72 @@
+<template>
+	<view>
+		<image src="../../static/bg.png" mode="" class="bg"></image>
+		<!-- <button   @click="getUserProfile">登录</button> -->
+		<view class="" style="margin: 72rpx auto 40rpx;width: 610rpx;padding-top: 300rpx;">
+			<u-button @click="getUserProfile" text="授权登录"  shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"></u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+			this.gologin()
+		},
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			gologin(){
+							uni.login({
+								provider: 'weixin',
+								success: (res) => {
+									
+								},
+								fail: () => {
+									uni.showToast({
+										title: "微信登录授权失败",
+										icon: "none"
+									});
+								}
+							})
+			},
+			getUserProfile(){
+				var that=this
+				uni.getUserProfile({
+					desc:'获取微信用户的昵称与头像',
+					success:function(resp){
+						// that.authorization=false
+						// that.userInfo=resp.userInfo
+						uni.login({
+							success(re) {
+								uni.$u.http.post('/api/login/wechat_login',{code:re.code,rawData:resp.rawData}).then(res => {
+									uni.setStorageSync('token',res.data.token)
+									if(res.data.vip_level==1){
+										uni.switchTab({
+											url:'../index/index'
+										})
+									}else{
+										uni.switchTab({
+											url:'../auth/auth'
+										})
+									}
+									
+								})
+								
+							}
+						})
+					}								
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+page{
+	
+}
+</style>

+ 1028 - 0
pages/profile/myPage.vue

@@ -0,0 +1,1028 @@
+<template>
+  <view class="page flex-col">
+    <view class="group_1 flex-col justify-between">
+      <view class="box_37 flex-col">
+		  
+       
+        <view class="box_3 flex-col">
+          <view class="text-wrapper_25 flex-row">
+            <text class="text_29">{{info.fans}}</text>
+            <text class="text_30">粉丝</text>
+            <text class="text_31">{{info.follow}}</text>
+            <text class="text_32">关注</text>
+          </view>
+          <view class="box_38 flex-row">
+            <view class="image-text_45 flex-row">
+              <text class="text_4">{{info.nickname}}</text>
+              <view class="box_20 flex-row u-row-around" style="align-items: center;">
+                <view class="image-text_46 flex-row justify-between">
+                 <!-- <view class="box_21 flex-col"></view>
+                  <text class="text-group_20">已认证</text> -->
+				  <image src="../../static/profile/8@2x.png" mode="" style="width: 96rpx;height: 32rpx" v-show="info.vip_level==0"></image>
+                </view>
+                <!-- <view class="image-text_47 flex-row justify-between">
+                  <view class="box_21 flex-col"></view>
+                  <text class="text-group_20">已认证</text>
+                </view> -->
+				<!-- <image src="../../static/profile/ganxingqu@2x.png" mode="" style="width: 152rpx;height: 52rpx;"></image> -->
+              </view>
+            </view>
+          </view>
+          <image
+            class="image_1"
+            referrerpolicy="no-referrer"
+            :src="info.headimg"
+          />
+        </view>
+      </view>
+      <view class="box_22 flex-col">
+        <view class="text-wrapper_26 flex-row justify-between">
+          <text class="text_33" @click="itemclick(index)" :class="{'select':current==index}" :key="index" v-for="(item,index) in list">{{item}}</text>
+         <!-- <text class="text_34">工作职业</text>
+          <text class="text_35">家庭情况</text>
+          <text class="text_36">相册</text> -->
+        </view>
+      
+       <view class="" v-show="current==0">
+       	<view class="group_50 flex-row  justify-between">
+       	  <text class="text_49">性别</text>
+       	  <view class="flex-row" @click="showsex=true">
+       	  	<text class="text_50" >{{info.sex==1?'男':'女'}}</text>
+       	  	<u-icon name="arrow-right"></u-icon>
+       	  </view>
+       	</view>
+		<view class="group_50 flex-row  justify-between">
+		  <text class="text_49">年龄</text>
+		  <view class="flex-row">
+					 <input type="text" placeholder="请输入年龄" v-model='info.age' style="text-align: right;">
+		  	<!-- <text class="text_50">岁</text> -->
+		  </view>
+		</view>
+       <view class="group_50 flex-row  justify-between">
+         <text class="text_49">星座</text>
+         <view class="flex-row">
+			 <input type="text" placeholder="请输入星座" v-model='info.constellation' style="text-align: right;">
+         </view>
+       </view>
+	   <view class="group_50 flex-row  justify-between">
+	     <text class="text_49">身高</text>
+	     <view class="flex-row">
+			 <input type="text" placeholder="请输入身高(cm)" v-model='info.height' style="text-align: right;">
+	     	<!-- <text class="text_50">cm</text> -->
+	     </view>
+	   </view>
+	   <view class="group_50 flex-row  justify-between">
+	     <text class="text_49">体重</text>
+	     <view class="flex-row">
+			 <input type="text" placeholder="请输入体重{kg}" v-model='info.weight' style="text-align: right;">
+	     	<!-- <text class="text_50">kg</text> -->
+	     </view>
+	   </view>
+	   <view class="group_50 flex-row  justify-between">
+	     <text class="text_49">学历</text>
+	     <view class="flex-row" @click="showEducation=true">
+	     	<text class="text_50">{{info.education||'请选择学历'}}</text>
+	     	<u-icon name="arrow-right"></u-icon>
+	     </view>
+	   </view>
+	   
+	   <view class="group_50 flex-row  justify-between">
+	     <text class="text_49">毕业院校</text>
+	     <view class="flex-row">
+			 <input type="text" placeholder="请输入毕业院校" v-model='info.graduation_school' style="text-align: right;">
+	     </view>
+	   </view>
+	   <view class="group_50 flex-row  justify-between">
+	     <text class="text_49">所在城市</text>
+	     <view class="flex-row">
+			 <AddressPicker  @change="change" :level="3">{{info.address||'请选择所在城市'}} </AddressPicker>
+	     	<!-- <text class="text_50">广东省深圳市</text> -->
+	     	<u-icon name="arrow-right"></u-icon>
+	     </view>
+	   </view>
+       </view>
+	   <view class="" v-show="current==1">
+	   		<view class="group_50 flex-row  justify-between">
+	   		  <text class="text_49">工作机构</text>
+	   		  <view class="flex-row" @click="showunit=true">
+	   		  	<text class="text_50">{{info.danwei||'请选择工作机构'}}</text>
+	   		  	<u-icon name="arrow-right"></u-icon>
+	   		  </view>
+	   		</view>
+			<view class="group_50 flex-row  justify-between">
+				     <text class="text_49">工作性质</text>
+				     <view class="flex-row"  @click="shownature=true">
+				     	<text class="text_50">{{info.xingzhi||'请选择工作性质'}}</text>
+				     	<u-icon name="arrow-right"></u-icon>
+				     </view>
+				   </view>
+				   <view class="group_50 flex-row  justify-between">
+				   	     <text class="text_49">职位</text>
+				   	     <view class="flex-row">
+							 <input type="text" placeholder="请输入职位" v-model='info.position' style="text-align: right;">
+				   	     </view>
+				   	   </view>
+	   </view>
+	   <view class="" v-show="current==2">
+	   		<view class="group_50 flex-row  justify-between">
+	   		  <text class="text_49">兄弟姐妹</text>
+	   		  <view class="flex-row">
+	   		  <u-switch v-model="info.is_du" :activeValue="2" :inactiveValue="1"  size="18"></u-switch>
+	   		  </view>
+	   		</view>
+	   			<view class="group_50 flex-row  justify-between">
+	   				     <text class="text_49">父亲工作</text>
+	   				     <view class="flex-row">
+							 <input type="text" placeholder="请输入父亲工作职位" v-model='info.fa_work' style="text-align: right;">
+	   				     </view>
+	   				   </view>
+	   				   <view class="group_50 flex-row  justify-between">
+	   				   	     <text class="text_49">母亲工作</text>
+	   				   	     <view class="flex-row">
+	   				   	     	<input type="text" placeholder="请输入母亲工作职位" v-model='info.ma_work' style="text-align: right;">
+	   				   	     </view>
+	   				   	   </view>
+						   <view class="group_50 flex-row  justify-between">
+						   	     <text class="text_49">现在与谁居住</text>
+						   	     <view class="flex-row">
+									 <input type="text" placeholder="请输入" v-model='info.home' style="text-align: right;">
+						   	     </view>
+						   	   </view>
+	   </view>
+	   <view class="" v-show="current==3">
+	   	<view class="person" @click="toPerson">
+			<image :src="personPhoto[0].url" mode="aspectFill" v-if="personPhoto.length!=0" style="position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1;width: 690rpx;height: 400rpx;"></image>
+	   		<view class="bag">
+	   			个人照片
+	   		</view>
+			<view class="u-flex-col" style="margin-top: 98rpx;" v-show="personPhoto.length==0">
+				<image src="../../static/auth/2@2x.png" mode="" style="width: 55rpx;height: 55rpx;"></image>
+				<text style="font-size: 20rpx;color: #666666;margin-top: 28rpx;">还未上传照片,去上传</text>
+			</view>
+	   	</view>
+		<view class="person"  @click="toLife">
+			<image :src="lifePhoto[0].url" mode="aspectFill" v-if="lifePhoto.length!=0" style="position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1;width: 690rpx;height: 400rpx;"></image>
+			<view class="bag">
+				生活照片
+			</view>
+			<view class="u-flex-col" style="margin-top: 98rpx;"  v-show="lifePhoto.length==0"> 
+				<image src="../../static/auth/2@2x.png" mode="" style="width: 55rpx;height: 55rpx;"></image>
+				<text style="font-size: 20rpx;color: #666666;margin-top: 28rpx;">还未上传照片,去上传</text>
+			</view>
+		</view>
+	   </view>
+       <view class="text-wrapper_13 flex-col" v-show="current!=3" @click="storage">
+          <text class="text_46" >保存修改</text>
+        </view>
+	<!-- 	<view  v-show="current!=3" style="position: fixed;bottom: 84rpx;width: 690rpx;left: 50%;transform: translateX(-50%);" class="u-flex u-row-between">
+		  <image @click="tojubao" src="../../static/profile/jubao@2x.png" mode="" style="width: 210rpx;height: 100rpx;"></image>
+		  <image src="../../static/profile/dazhaohu@2x.png" mode="" style="width: 450rpx;height: 100rpx;"></image>
+		</view> -->
+      </view>
+    </view>
+	<u-picker :show="showsex" :columns="sexcolumns" keyName="name" @confirm='changesex' @cancel='showsex=false' :closeOnClickOverlay='true'>
+	</u-picker>
+	<u-picker :show="showEducation" @cancel='showEducation=false' title="学历" ref="uPicker" :columns="educationcolumns" @confirm="confirmEducation">
+	</u-picker>
+	<u-picker :show="showunit" :columns="unitcolumns" keyName="name" @confirm='changeunit' @cancel='showunit=false' :closeOnClickOverlay='true'>
+	</u-picker>
+	<u-picker :show="shownature" @cancel='shownature=false' title="工作性质" @confirm='confirmWork' keyName="name"  :columns="naturecolumns"></u-picker>
+  </view>
+</template>
+<script>
+	import AddressPicker from "@/components/lingdang-AddressPicker/AddressPicker.vue"
+export default {
+	components: {
+		AddressPicker
+	},
+  data() {
+    return {
+		shownature:false,
+		showunit:false,
+		showEducation:false,
+		showsex:false,
+      list: ['个人档案','工作职业','家庭情况','相册'],
+	  current:0,
+	  value:false,
+	  info:{},
+	  personPhoto:[],
+	  lifePhoto:[],
+	  sexcolumns: [
+	  	['男','女']
+	  ],
+	  educationcolumns:[['高中','大专','本科','硕士','博士']],
+	  unitcolumns: [
+	  	[]
+	  ],
+	  naturecolumns: [
+	  	[]
+	  ],
+    };
+  },
+  onLoad() {
+  	this.getWorking()
+  	this.getWork()
+  },
+  onShow() {
+  	this.getInfo()
+	this.getpersonPhoto()
+	this.getlifePhoto()
+  },
+  methods: {
+	  storage(){
+		  uni.showLoading({
+		  	
+		  })
+		  let data1={
+			 sex:this.info.sex,
+			 constellation:this.info.constellation,
+			 height:this.info.height,
+			 age:this.info.age,
+			 weight:this.info.weight,
+			 education:this.info.education,
+			 graduation_school:this.info.graduation_school,
+			 province_id:this.info.province_id,
+			 city_id:this.info.city_id,
+			 area_id:this.info.area_id
+			 
+		  }
+		  
+		  let data2={
+			  working:this.info.working,
+			  nature:this.info.nature,
+			  position:this.info.position
+		  }
+		  let data3={
+		  			  is_du:this.info.is_du,
+		  			  fa_work:this.info.fa_work,
+		  			  ma_work:this.info.ma_work,
+		  			  home:this.info.home,
+		  }
+		uni.$u.http.post('/api/user/user_info',data1).then(res => {
+		if(res.code==1){
+			uni.$u.http.post('/api/user/user_work',data2).then(res => {
+			if(res.code==1){
+				uni.$u.http.post('/api/user/user_home',data3).then(res => {
+					uni.hideLoading()
+					this.$u.toast('个人信息已更新')
+			})
+			}
+			})
+		}
+		})
+	  },
+	  confirmWork(e){
+		  console.log(e)
+		  this.info.xingzhi=e.value[0].name
+		  this.info.nature=e.value[0].id
+	  	this.shownature=false
+	  },
+	  getWork(){
+	  	uni.$u.http.post('/api/index/WorkNature').then(res => {
+	  	this.naturecolumns=[res.data]
+	  	})
+	  },
+	  getWorking(){
+	  	uni.$u.http.post('/api/Publics/working').then(res => {
+	  		this.unitcolumns=[res.data]
+	  	})
+	  },
+	  changeunit(e) {
+	  	// this.current = e.value[0]
+		this.info.danwei=e.value[0].name
+		this.info.working=e.value[0].id
+	  	this.showunit = false
+	  },
+	  change(result) {
+		this.info.province_id=result.data[0].id
+		this.info.city_id=result.data[1].id
+		this.info.area_id=result.data[2].id
+	  	this.info.address = '';
+	  	result.data.forEach((item, index) => {
+	  		if (index === 0) {
+	  			this.info.address += item.name
+	  		} else {
+	  			this.info.address += '-' + item.name
+	  		}
+	  	});
+	  	let arr = this.info.address.split('-');
+	  },
+	  confirmEducation(e){
+	  	this.info.education=e.value[0]
+	  	this.showEducation=false
+	  },
+	  changesex(e){
+		  this.info.sex=e.indexs[0]*1+1
+		  this.showsex=false
+	  },
+	  getpersonPhoto(){
+	  	uni.$u.http.post('/api/user/personal_album',{id:uni.getStorageSync('userId')}).then(res => {
+	  		if(res.code==1){
+	  			this.personPhoto=res.data
+	  		}
+	  	})
+	  },
+	  getlifePhoto(){
+	  	uni.$u.http.post('/api/user/life_album',{id:uni.getStorageSync('userId')}).then(res => {
+	  		if(res.code==1){
+	  			this.lifePhoto=res.data
+	  		}
+	  	})
+	  },
+	  getInfo(){
+	  	uni.$u.http.post('/api/user/userinfo').then(res => {
+	  		if(res.code==1){
+	  			this.info=res.data
+	  		}
+	  	})
+	  },
+	  itemclick(index){
+	  		  if(this.current!=index){
+	  			  this.current=index
+	  		  }
+	  },
+	  tojubao(){
+		  uni.navigateTo({
+		  	url:'./jubao'
+		  })
+	  },
+	  toPerson(){
+		  uni.navigateTo({
+		  	url:'./personPhoto'
+		  })
+	  },
+	  toLife(){
+		  uni.navigateTo({
+		  	url:'./lifePhoto'
+		  })
+	  }
+  },
+};
+</script>
+<style lang="scss">
+@import '@/common/common.css';
+page{
+	
+}
+.person{
+	position: relative;
+	padding: 26rpx 20rpx;
+	margin: 0 auto 20rpx;
+	width: 690rpx;
+	height: 400rpx;
+	background: #F3F4F6;
+	border-radius: 20rpx;
+	.bag{
+		position: relative;
+		z-index: 11;
+		text-align: center;
+		width: 140rpx;
+		height: 52rpx;
+		line-height: 52rpx;
+		background: #000000;
+		border-radius: 26rpx;
+		font-size: 24rpx;
+		color: #fff;
+	}
+}
+.page {
+  background-color: #FBF8FD;
+  position: relative;
+  width: 750rpx;
+  overflow: hidden;
+}
+
+.group_1 {
+  width: 750rpx;
+  /* height: 1624rpx; */
+  
+}
+
+.box_37 {
+  width: 750rpx;
+  /* height: 514rpx; */
+}
+
+.group_45 {
+  width: 680rpx;
+  height: 34rpx;
+  margin: 30rpx 0 0 42rpx;
+}
+
+.text-wrapper_24 {
+  width: 108rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  font-size: 0;
+  letter-spacing: -0.2800000011920929px;
+  font-family: Helvetica;
+  text-align: center;
+  white-space: nowrap;
+  line-height: 34rpx;
+}
+
+.text_56 {
+  width: 108rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  color: rgba(0, 0, 0, 1);
+  font-size: 28rpx;
+  font-family: Helvetica;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 34rpx;
+}
+
+.text_57 {
+  width: 108rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  color: rgba(0, 0, 0, 1);
+  font-size: 28rpx;
+  font-family: Helvetica;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 34rpx;
+}
+
+.group_46 {
+  width: 34rpx;
+  height: 22rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png) -2rpx -2rpx
+    no-repeat;
+  background-size: 36rpx 24rpx;
+  margin: 6rpx 0 0 438rpx;
+}
+
+.group_47 {
+  width: 30rpx;
+  height: 22rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png) -2rpx
+    0rpx no-repeat;
+  background-size: 32rpx 24rpx;
+  margin: 4rpx 0 0 10rpx;
+}
+
+.group_48 {
+  width: 50rpx;
+  height: 24rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin: 4rpx 0 0 10rpx;
+}
+
+.group_49 {
+  width: 706rpx;
+  height: 74rpx;
+  margin: 24rpx 0 0 30rpx;
+}
+
+.section_4 {
+  width: 64rpx;
+  height: 64rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+}
+
+.text_3 {
+  width: 146rpx;
+  height: 50rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 36rpx;
+  letter-spacing: 0.2266666740179062px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 50rpx;
+  margin: 22rpx 0 0 208rpx;
+}
+
+.section_33 {
+  width: 168rpx;
+  height: 60rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin: 14rpx 0 0 120rpx;
+}
+
+.box_3 {
+  background-color: rgba(255, 255, 255, 1);
+  border-radius: 14px 14px 0px 0px;
+  height: 232rpx;
+  width: 750rpx;
+  position: relative;
+  margin: 98rpx 0 22rpx 0;
+}
+
+.text-wrapper_25 {
+  width: 318rpx;
+  height: 60rpx;
+  margin: 48rpx 0 0 336rpx;
+}
+
+.text_29 {
+  width: 54rpx;
+  height: 60rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 52rpx;
+  letter-spacing: 0.7607405185699463px;
+  font-family: DINAlternate-Bold;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 60rpx;
+}
+
+.text_30 {
+  width: 50rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 24rpx;
+  letter-spacing: 0.3511109948158264px;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 34rpx;
+  margin: 20rpx 0 0 8rpx;
+}
+
+.text_31 {
+  width: 28rpx;
+  height: 60rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 52rpx;
+  letter-spacing: 0.7607405185699463px;
+  font-family: DINAlternate-Bold;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 60rpx;
+  margin-left: 120rpx;
+}
+
+.text_32 {
+  width: 50rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 24rpx;
+  letter-spacing: 0.3511109948158264px;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 34rpx;
+  margin: 20rpx 0 0 8rpx;
+}
+
+.box_38 {
+  width: 100%;
+  height: 44rpx;
+  margin: 50rpx 0 30rpx 40rpx;
+}
+
+.image-text_45 {
+  width: 100%;
+  height: 44rpx;
+}
+
+.text_4 {
+  height: 44rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 32rpx;
+  letter-spacing: 0.46814799308776855px;
+  font-family: PingFangSC-Medium;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 44rpx;
+}
+
+.box_20 {
+  position: relative;
+  height: 32rpx;
+  background-size: 100% 100%;
+  margin-top: 6rpx;
+}
+
+.image-text_46 {
+  width: 86rpx;
+  height: 28rpx;
+  margin-left: 4rpx;
+}
+
+.box_21 {
+  width: 24rpx;
+  height: 24rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin-top: 4rpx;
+}
+
+.text-group_20 {
+  width: 62rpx;
+  height: 28rpx;
+  overflow-wrap: break-word;
+  color: rgba(255, 255, 255, 1);
+  font-size: 20rpx;
+  letter-spacing: 0.29259249567985535px;
+  font-family: PingFangSC-Medium;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 28rpx;
+}
+
+.image-text_47 {
+  position: absolute;
+  left: 4rpx;
+  top: 0;
+  width: 86rpx;
+  height: 28rpx;
+}
+
+.image_1 {
+	border-radius: 50%;
+  position: absolute;
+  left: 40rpx;
+  top: -60rpx;
+  width: 200rpx;
+  height: 200rpx;
+}
+
+.box_22 {
+  background-color: rgba(255, 255, 255, 1);
+  width: 750rpx;
+  margin-top: -2rpx;
+}
+
+.text-wrapper_26 {
+  width: 690rpx;
+  height: 44rpx;
+  margin: 36rpx 0 28rpx 30rpx;
+}
+
+.text_33 {
+	position: relative;
+  width: 130rpx;
+  height: 44rpx;
+  overflow-wrap: break-word;
+  color: #999999;
+  font-size: 32rpx;
+  letter-spacing: 0.20148147642612457px;
+  font-family: PingFangSC-Medium;
+  text-align: center;
+  white-space: nowrap;
+  line-height: 44rpx;
+  padding-bottom: 12rpx;
+}
+.select{
+	position: relative;
+	color: #222222;
+}
+.select::before{
+	content: '';
+	position: absolute;
+	left: 50%;
+	transform: translateX(-50%);
+	bottom: 0;
+	width: 40rpx;
+	height: 8rpx;
+	background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+	border-radius: 4rpx;
+}
+.text_34 {
+  width: 122rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(153, 153, 153, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  font-family: PingFangSC-Medium;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin: 2rpx 0 0 84rpx;
+}
+
+.text_35 {
+  width: 122rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(153, 153, 153, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  font-family: PingFangSC-Medium;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin: 2rpx 0 0 86rpx;
+}
+
+.text_36 {
+  width: 62rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(153, 153, 153, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  font-family: PingFangSC-Medium;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin: 2rpx 0 0 84rpx;
+}
+
+.box_23 {
+  width: 40rpx;
+  height: 8rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin: 2rpx 0 0 76rpx;
+}
+
+.box_24 {
+  background-color: rgba(242, 242, 242, 1);
+  width: 690rpx;
+  height: 2rpx;
+  margin: 28rpx 0 0 30rpx;
+}
+
+.group_50 {
+  width: 690rpx;
+  height: 42rpx;
+  margin: 20rpx 0 0 30rpx;
+}
+
+.text_49 {
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text_50 {
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.section_32 {
+  width: 28rpx;
+  height: 28rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin: 8rpx 0 0 4rpx;
+}
+
+.group_51 {
+  width: 690rpx;
+  height: 112rpx;
+  margin: 36rpx 0 0 30rpx;
+}
+
+.text-group_32 {
+  width: 62rpx;
+  height: 112rpx;
+}
+
+.text_44 {
+  width: 62rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text_38 {
+  width: 62rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin-top: 28rpx;
+}
+
+.text-group_33 {
+  width: 92rpx;
+  height: 112rpx;
+}
+
+.text_45 {
+  width: 92rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text-group_21 {
+  width: 92rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin-top: 28rpx;
+}
+
+.text-wrapper_27 {
+  width: 690rpx;
+  height: 42rpx;
+  margin: 36rpx 0 0 30rpx;
+}
+
+.text_39 {
+  width: 62rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text-group_22 {
+  width: 72rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.group_52 {
+  width: 690rpx;
+  height: 42rpx;
+  margin: 36rpx 0 0 30rpx;
+}
+
+.text_41 {
+  width: 62rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text-group_24 {
+  width: 92rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin-left: 504rpx;
+}
+
+.group_39 {
+  width: 28rpx;
+  height: 28rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin: 8rpx 0 0 4rpx;
+}
+
+.text-wrapper_28 {
+  width: 690rpx;
+  height: 42rpx;
+  margin: 36rpx 0 0 30rpx;
+}
+
+.text_51 {
+  width: 122rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text_52 {
+  width: 122rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.group_53 {
+  width: 690rpx;
+  height: 42rpx;
+  margin: 36rpx 0 0 30rpx;
+}
+
+.text_53 {
+  width: 122rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.image-text_48 {
+  width: 216rpx;
+  height: 42rpx;
+}
+
+.text-group_29 {
+  width: 184rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.group_41 {
+  width: 28rpx;
+  height: 28rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin-top: 8rpx;
+}
+
+.text-wrapper_13 {
+	position: fixed;
+	bottom: 84rpx;
+	left: 50%;
+	transform: translateX(-50%);
+  height: 92rpx;
+  
+border-radius: 46rpx;
+background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+  background-size: 100% 100%;
+  width: 650rpx;
+}
+
+.text_46 {
+  width: 146rpx;
+  height: 50rpx;
+  overflow-wrap: break-word;
+  color: rgba(255, 255, 255, 1);
+  font-size: 36rpx;
+  letter-spacing: 0.2266666740179062px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 50rpx;
+  margin: 22rpx 0 0 252rpx;
+}
+
+</style>

+ 298 - 0
pages/profile/mydongtai.vue

@@ -0,0 +1,298 @@
+<template>
+	<view>
+		<image src="../../static/bg.png" mode="" class="bg"></image>
+		<view class="nodongtai u-flex-col u-col-center" v-if="dongtaiList.length==0">
+			<image src="../../static/profile/nodongtai.png" mode=""></image>
+			<text class="tips">暂无动态,快去发一条吧!</text>
+			<view class="publish" @click="tofabu">
+				发布动态
+			</view>
+		</view>
+		<view class="content" v-else>
+			<view class="item" v-for="(item,index) in dongtaiList" :key="index" @click="itemClick(item)" >
+				<view class="top1 u-flex u-row-between">
+					<view class="topleft u-flex">
+						<image :src="info.headimg" mode=""></image>
+						<view class="">
+							<view class="name">
+								{{item.nickame}}
+							</view>
+							<view class="area">
+								{{item.city?item.city+'·':''}}{{item.age?item.age+'岁':''}}
+							</view>
+						</view>
+					</view>
+					<view class="" style="color: #FFB422;font-size: 24rpx;" v-if="item.status==1">
+						审核中
+					</view>
+					<view class="" style="color: #FF7676;font-size: 24rpx;" v-if="item.status==3">
+						审核失败
+					</view>
+					<view class="" style="color: #6BC159;font-size: 24rpx;" v-if="item.status==2">
+						已通过
+					</view>
+				</view>
+				<view class="iteminfo">
+					{{item.content}}
+				</view>
+				<view class="imaglist u-flex" v-if="item.suffix=='png'||item.suffix=='jpg'">
+					<view class="imgbox" v-for="(ite,ind) in item.show_images" :key="ind" >
+						<image :src="ite" mode=""  @click="lookImage(ite)"></image>
+					</view>
+				</view>
+				<video :src="item.show_images[0]" objectFit="fill" class="video" v-if="item.suffix=='mp4'"></video>
+				<view class="bottom u-flex u-row-right" v-if="item.status!=2">
+					<view class="" @click.stop="edit(item)" style="padding: 4rpx 20rpx;border-radius: 4px;border: 1px solid #979797;font-size: 28rpx;margin-right: 24rpx;">
+						编辑
+					</view>
+					<view class="" @click.stop="delectItem(item,index)"  style="padding: 4rpx 20rpx;border-radius: 4px;border: 1px solid #FF7676;font-size: 28rpx;color: #FF2828;">
+						删除
+					</view>
+					<!-- <view class="u-flex u-row-left">
+						<view class="zan">
+							<image src="../../static/forum/5@2x.png" mode=""></image>
+							<text>{{item.give}}</text>
+						</view>
+						<view class="talk">
+							<image src="../../static/forum/3@2x.png" mode=""></image>
+							<text>{{item.comment}}</text>
+						</view>
+					</view>
+					<image src="../../static/forum/more.png" mode="" style="width: 36rpx;height: 36rpx;" @click.stop="delectItem(index)"></image> -->
+				</view>
+			</view>
+		</view>
+		<image src="../../static/forum/4@2x.png" mode="" @click="tofabu" class="fa"></image>
+		<u-action-sheet :actions="list" cancelText='取消' @close='close' @select='select' round='20'  :show="show"></u-action-sheet>
+	</view>
+</template>
+
+<script>
+	export default {
+		onShow() {
+				this.getList()
+		},
+		data() {
+			return {
+				info:JSON.parse(uni.getStorageSync('userInfo')),
+				page:1,
+				dongtaiList:[],
+				current:null,
+				show:false,
+				list: [
+								{
+									name:'删除',
+									color:'#FF2F2F',
+									fontSize:'20'
+								},
+								]
+			}
+		},
+		methods: {
+			edit(item){
+					uni.navigateTo({
+						url:'/pages/forum/publish?item='+JSON.stringify(item)
+					})
+			},
+			getList(){
+				uni.$u.http.post('/api/user/dynamic',{page:this.page}).then(res => {
+					if(this.page==1){
+						this.dongtaiList=res.data
+					}else{
+						this.dongtaiList=[...this.dongtaiList,...res.data]
+					}
+				})
+			},
+			delectItem(item,index){
+					// this.current=index
+					// this.show=true
+					var that=this
+					uni.showModal({
+						title: '提示',
+						content: '确定要删除该动态吗',
+						success: function (res) {
+							if (res.confirm) {
+								uni.$u.http.post('/api/user/deldynbamic',{id:item.id}).then(res => {
+									if(res.code==1){
+										that.dongtaiList.splice(index,1)
+									}
+								})
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
+						}
+					});
+
+					
+			},
+			close(){
+				this.show=false
+			},
+			select(e){
+				// console.log(e)
+				this.show=false
+			},
+			itemClick(item){
+					// uni.navigateTo({
+					// 	url: '../forum/forumInfo'
+					// });
+					if(item.status==2){
+						uni.navigateTo({
+							url: '../forum/forumInfo?id='+item.id
+						});
+					}
+					
+			},
+			tofabu(){
+				uni.navigateTo({
+					url:'../forum/publish'
+				})
+			},
+			lookImage(ite) {
+				let imgsArray = [];
+				imgsArray[0] = ite;
+				uni.previewImage({
+					current: 0,
+					urls: imgsArray,
+			
+				});
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.fa{
+		width: 100rpx;
+		height: 102rpx;
+		position: fixed;
+		bottom: 100rpx;
+		right: 30rpx;
+	}
+	.bottom{
+		color: #999999;
+		font-size: 24rpx;
+		.zan{
+			margin-right: 40rpx;
+			// font-weight: 400;
+			// background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+			// -webkit-background-clip: text;
+			// -webkit-text-fill-color: transparent;
+			image{
+				vertical-align: middle;
+				width: 36rpx;
+				height: 36rpx;
+				margin-right: 4rpx;
+			}
+		}
+		.talk{
+			image{
+				vertical-align: middle;
+				width: 36rpx;
+				height: 36rpx;
+				margin-right: 4rpx;
+			}
+		}
+	}
+	.imaglist{
+		flex-wrap: wrap;
+		.imgbox{
+			margin-right: 15rpx;
+			max-width: 220rpx;
+			max-height: 220rpx;
+			margin-bottom: 20rpx;
+			image{
+				max-width: 220rpx;
+				max-height: 220rpx;
+				border-radius: 20px;
+			}
+		}
+		.imgbox:nth-child(3n+3) {
+			margin-right: 0;
+		}
+		
+		
+	}
+	.iteminfo{
+		margin: 22rpx 0 20rpx;
+		font-size: 28rpx;
+		color: #222222;
+	}
+	.content{
+		width: 750rpx;
+		background: #FFFFFF;
+		border-radius: 40rpx;
+		.item{
+			padding: 36rpx 30rpx;
+			border-bottom: 2rpx solid #F2F2F2;
+			.video{
+				margin-bottom: 42rpx;
+				width: 690rpx;
+				height: 320rpx;
+				border-radius: 20rpx;
+			}
+			.topleft{
+				image{
+					width: 76rpx;
+					height: 76rpx;
+					border-radius: 50%;
+					margin-right: 20rpx;
+				}
+				.name{
+					font-size: 28rpx;
+					color: #222222;
+					font-weight: 600;
+					image{
+						margin-left: 8rpx;
+						width: 28rpx;
+						height: 28rpx;
+					}
+				}
+				.area{
+					font-size: 20rpx;
+					color: #999999;
+				}
+			}
+			.topright{
+				width: 108rpx;
+				height: 56rpx;
+				text-align: center;
+				line-height:  56rpx;
+				border-radius: 28rpx;
+				border: 3rpx solid #C7A6CE;
+				font-weight: 400;
+				color: #999999;
+				background: linear-gradient(180deg, #FFAEAE 0%, #A890FE 100%);
+				-webkit-background-clip: text;
+				-webkit-text-fill-color: transparent;
+			}
+		}
+	}
+	.publish{
+		
+		margin:0 auto;
+		width: 550rpx;
+		height: 96rpx;
+		line-height: 96rpx;
+		text-align: center;
+		background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+		border-radius: 52rpx;
+		font-size: 36rpx;
+		color: #fff;
+		
+	}
+.nodongtai{
+	position: fixed;
+	top: 244rpx;
+	left: 50%;
+	transform: translateX(-50%);
+	image{
+		width: 370rpx;
+		height: 260rpx;
+	}
+	.tips{
+		font-size: 28rpx;
+		margin: 148rpx 0 108rpx;
+	}
+}
+</style>

+ 126 - 0
pages/profile/newphone.vue

@@ -0,0 +1,126 @@
+<template>
+	<view class="index">
+		<view class="">
+			<view class="title">
+				新手机号
+			</view>
+			<view class="phone u-flex">
+				<input type="number" placeholder="请输入手机号">
+			</view>
+			<view class="phone u-flex">
+				<input type="number" placeholder="请输入短信验证码">
+				<text class="code" @click="send">{{tips}}</text>
+			</view>
+			<view class="publish" @click="next">
+				提交
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				tips:'获取验证码',
+				s: 60,
+				time: null,
+			}
+		},
+		methods: {
+			next(){
+			uni.navigateTo({
+				url:'newphone'
+			})	
+			},
+			send() {
+				if (this.s == 60) {
+					if (!this.tel) {
+						uni.showToast({
+							title: "请输入手机号",
+							duration: 2000,
+							icon: "none",
+						});
+						return false;
+					}
+					
+					uni.showLoading({
+						mask: true,
+						title: "请稍后"
+					})
+					var result = {}
+					result.phone = this.tel
+					result.event = 'register'
+					this.$u.post('/api/Sms/send', result).then((res) => {
+						uni.hideLoading()
+						uni.showToast({
+							title: res.msg,
+							duration: 2000,
+							icon: "none",
+						});
+						if (res.code == 1) {
+							this.time = setInterval(() => {
+								this.s--
+								this.tips = `${this.s}s`
+								if (this.s == 0) {
+									this.s = 60
+									this.tips = '重新发送'
+									clearInterval(this.time)
+								}
+							}, 1000)
+						}
+					});
+				} else {
+					uni.showToast({
+						title: "请稍后再试",
+						duration: 2000,
+						icon: "none",
+					});
+					return false;
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.publish{
+		
+		margin: 128rpx auto;
+		width: 650rpx;
+		height: 104rpx;
+		line-height: 104rpx;
+		text-align: center;
+		background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+		border-radius: 52rpx;
+		font-size: 36rpx;
+		color: #fff;
+		
+	}
+.index{
+	padding: 70rpx 60rpx 0;
+	color: #222222;
+	.title{
+		font-size: 44rpx;
+		font-weight: 600;
+		margin-bottom: 50rpx;
+	}
+	.phone{
+		height: 128rpx;
+		line-height: 128rpx;
+		border-bottom: 2rpx solid #F2F2F2;
+		input{
+			flex: 1;
+		}
+		.code{
+			font-size: 32rpx;
+			font-family: PingFangSC-Regular, PingFang SC;
+			font-weight: 400;
+			color: #999999;
+			background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+			-webkit-background-clip: text;
+			-webkit-text-fill-color: transparent;
+		}
+	}
+}
+</style>

+ 955 - 0
pages/profile/otherPage.vue

@@ -0,0 +1,955 @@
+<template>
+  <view class="page flex-col">
+    <view class="group_1 flex-col justify-between">
+      <view class="box_37 flex-col">
+		  
+       
+        <view class="box_3 flex-col">
+          <view class="text-wrapper_25 flex-row">
+            <text class="text_29">{{info.fans}}</text>
+            <text class="text_30">粉丝</text>
+            <text class="text_31">{{info.follow}}</text>
+            <text class="text_32">关注</text>
+          </view>
+          <view class="box_38">
+            <view class="image-text_45 flex-row u-flex u-row-between">
+             <view class="u-flex">
+             	<text class="text_4">{{info.nickname}}</text>
+				<text style="font-size: 24rpx;" v-if="info.username">(真实姓名·{{info.username}})</text>
+             	<view class="image-text_46 flex-row justify-between">
+             	 <!-- <view class="box_21 flex-col"></view>
+             	  <text class="text-group_20">已认证</text> -->
+             	  <image src="../../static/profile/8@2x.png" mode="" style="width: 96rpx;height: 32rpx" v-show="info.vip_level==0"></image>
+             	</view>
+             </view>
+              <view class="box_20 flex-row u-row-between" style="align-items: center;">
+               
+                <!-- <view class="image-text_47 flex-row justify-between">
+                  <view class="box_21 flex-col"></view>
+                  <text class="text-group_20">已认证</text>
+                </view> -->
+				<image src="../../static/profile/ganxingqu@2x.png" mode="" style="width: 152rpx;height: 52rpx;margin-right: 30rpx;" v-show="info.is_interested==0" @click="getInter"></image>
+              </view>
+            </view>
+			<view class="" style="font-size: 24rpx;color: #999999;" v-if="info.sex&&info.constellation">
+				{{info.sex==1?'男·':'女·'}}{{info.constellation}}
+			</view>
+          </view>
+          <image
+            class="image_1"
+            referrerpolicy="no-referrer"
+            :src="info.headimg"
+          />
+        </view>
+      </view>
+	  
+      <view class="box_22 flex-col">
+        <view class="text-wrapper_26 flex-row justify-between">
+          <text class="text_33" @click="itemclick(index)" :class="{'select':current==index}" :key="index" v-for="(item,index) in list">{{item}}</text>
+         <!-- <text class="text_34">工作职业</text>
+          <text class="text_35">家庭情况</text>
+          <text class="text_36">相册</text> -->
+        </view>
+      
+       <view class="" v-show="current==0">
+       	<view class="group_50 flex-row  justify-between">
+       	  <text class="text_49">性别</text>
+       	  <view class="flex-row">
+       	  	<text class="text_50">{{info.sex==1?'男':'女'}}</text>
+       	  </view>
+       	</view>
+       <view class="group_50 flex-row  justify-between">
+         <text class="text_49">星座</text>
+         <view class="flex-row">
+         	<text class="text_50">{{info.constellation||'暂无'}}</text>
+         </view>
+       </view>
+	   <view class="group_50 flex-row  justify-between">
+	     <text class="text_49">身高</text>
+	     <view class="flex-row">
+	     	<text class="text_50">{{info.height?info.height+'cm':'暂无'}}</text>
+	     </view>
+	   </view>
+	   <view class="group_50 flex-row  justify-between">
+	     <text class="text_49">体重</text>
+	     <view class="flex-row">
+	     	<text class="text_50">{{info.weight?info.weight+'kg':'暂无'}}</text>
+	     </view>
+	   </view>
+	   <view class="group_50 flex-row  justify-between">
+	     <text class="text_49">学历</text>
+	     <view class="flex-row">
+	     	<text class="text_50">{{info.education||'暂无'}}</text>
+	     </view>
+	   </view>
+	   
+	   <view class="group_50 flex-row  justify-between">
+	     <text class="text_49">毕业院校</text>
+	     <view class="flex-row">
+	     	<text class="text_50">{{info.graduation_school||'暂无'}}</text>
+	     </view>
+	   </view>
+	   <view class="group_50 flex-row  justify-between">
+	     <text class="text_49">所在城市</text>
+	     <view class="flex-row">
+	     	<text class="text_50">{{info.address||'暂无'}}</text>
+	     </view>
+	   </view>
+       </view>
+	   <view class="" v-show="current==1">
+	   		<view class="group_50 flex-row  justify-between">
+	   		  <text class="text_49">工作机构</text>
+	   		  <view class="flex-row">
+	   		  	<text class="text_50">{{info.danwei||'暂无'}}</text>
+	   		  </view>
+	   		</view>
+			<view class="group_50 flex-row  justify-between">
+				     <text class="text_49">工作性质</text>
+				     <view class="flex-row">
+				     	<text class="text_50">{{info.xingzhi||'暂无'}}</text>
+				     </view>
+				   </view>
+				   <view class="group_50 flex-row  justify-between">
+				   	     <text class="text_49">职位</text>
+				   	     <view class="flex-row">
+				   	     	<text class="text_50">{{info.position||'暂无'}}</text>
+				   	     </view>
+				   	   </view>
+	   </view>
+	   <view class="" v-show="current==2">
+	   		<view class="group_50 flex-row  justify-between">
+	   		  <text class="text_49">兄弟姐妹</text>
+	   		  <view class="flex-row">
+	   		  <u-switch v-model="info.is_du==2" :disabled="true" size="18"></u-switch>
+	   		  </view>
+	   		</view>
+	   			<view class="group_50 flex-row  justify-between">
+	   				     <text class="text_49">父亲工作</text>
+	   				     <view class="flex-row">
+	   				     	<text class="text_50">{{info.fa_work||'暂无'}}</text>
+	   				     </view>
+	   				   </view>
+	   				   <view class="group_50 flex-row  justify-between">
+	   				   	     <text class="text_49">母亲工作</text>
+	   				   	     <view class="flex-row">
+								 <text class="text_50">{{info.ma_work||'暂无'}}</text>
+	   				   	     </view>
+	   				   	   </view>
+						   <view class="group_50 flex-row  justify-between">
+						   	     <text class="text_49">现在与谁居住</text>
+						   	     <view class="flex-row">
+						   	     	<text class="text_50">{{info.home||'暂无'}}</text>
+						   	     </view>
+						   	   </view>
+	   </view>
+	   <view class="" v-show="current==3">
+	   	<view class="person" @click="toPerson">
+			<image :src="personPhoto[0].url" mode="aspectFill" v-if="personPhoto.length!=0" style="position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1;width: 690rpx;height: 400rpx;"></image>
+	   		<view class="bag">
+	   			个人照片
+	   		</view>
+			<view class="u-flex-col" style="margin-top: 98rpx;">
+				<image src="../../static/auth/2@2x.png" mode="" style="width: 55rpx;height: 55rpx;"></image>
+				<text style="font-size: 20rpx;color: #666666;margin-top: 28rpx;">暂无照片</text>
+			</view>
+	   	</view>
+		<view class="person" @click="toLife">
+			<image :src="lifePhoto[0].url" mode="aspectFill" v-if="lifePhoto.length!=0" style="position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1;width: 690rpx;height: 400rpx;"></image>
+			<view class="bag">
+				生活照片
+			</view>
+			<view class="u-flex-col" style="margin-top: 98rpx;" v-show="lifePhoto.length==0">
+				<image src="../../static/auth/2@2x.png" mode="" style="width: 55rpx;height: 55rpx;"></image>
+				<text style="font-size: 20rpx;color: #666666;margin-top: 28rpx;">暂无照片</text>
+			</view>
+		</view>
+	   </view>
+	   <view class="" style="text-align: center;font-size: 28rpx;color: #999999;position: fixed;bottom: 240rpx;width: 100%;" v-show="current!=3">
+	   	用户ID:{{info.vip_number}}
+	   </view>
+       <!-- <view class="text-wrapper_13 flex-col" v-show="current!=3">
+          <text class="text_46">保存修改</text>
+        </view> -->
+		<view  v-show="current!=3" style="position: fixed;bottom: 84rpx;width: 690rpx;left: 50%;transform: translateX(-50%);" class="u-flex u-row-between">
+		  <image @click="tojubao" src="../../static/profile/jubao@2x.png" mode="" style="width: 210rpx;height: 100rpx;"></image>
+		  <image src="../../static/profile/dazhaohu@2x.png" mode="" style="width: 450rpx;height: 100rpx;" @click="tomessage()"></image>
+		</view>
+      </view>
+    </view>
+  </view>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      list: ['个人档案','工作职业','家庭情况','相册'],
+	  current:0,
+	  value:false,
+	  id:'',
+	  info:{},
+	  userInfo:JSON.parse(uni.getStorageSync('userInfo')),
+	  personPhoto:[],
+	  lifePhoto:[],
+    };
+  },
+  onLoad(option) {
+  	this.id=option.id
+	this.getInfo(option.id)
+  },
+  onShow() {
+  	this.getpersonPhoto()
+  	this.getlifePhoto()
+  },
+  methods: {
+	  tomessage(){
+		  if(this.userInfo.vip_level==0){
+		  	this.$u.toast('您暂未认证')
+		  	return
+		  }
+		  if(this.userInfo.vip_level==2){
+		  	this.$u.toast('经用户反馈,您账户存在违规行为,暂不支持使用该功能')
+		  	return
+		  }
+		  if(this.userInfo.vip_level==3){
+		  					this.$u.toast('您的账户已注销,暂不支持使用该功能')
+		  					return
+		  				}
+	  	uni.navigateTo({
+	  		url:'/pages/index/message?otherid='+this.info.im_id
+	  	})
+	  },
+	  getpersonPhoto(){
+	  	uni.$u.http.post('/api/user/personal_album',{id:this.info.id}).then(res => {
+	  		if(res.code==1){
+	  			this.personPhoto=res.data
+	  		}
+	  	})
+	  },
+	  getlifePhoto(){
+	  	uni.$u.http.post('/api/user/life_album',{id:this.info.id}).then(res => {
+	  		if(res.code==1){
+	  			this.lifePhoto=res.data
+	  		}
+	  	})
+	  },
+	  getInter(){
+		  uni.$u.http.post('/api/user/user_interested',{mid:this.info.id}).then(res => {
+		  	this.$u.toast(res.msg)
+		  	this.getInfo(this.id)
+		  })
+	  },
+	  getInfo(id){
+		  uni.$u.http.post('/api/user/appointuserinfo',{m_id:id}).then(res => {
+		  this.info=res.data
+		  this.getpersonPhoto()
+		  this.getlifePhoto()
+		  })
+	  },
+	  itemclick(index){
+	  		  if(this.current!=index){
+	  			  this.current=index
+	  		  }
+	  },
+	  tojubao(){
+		  if(this.userInfo.vip_level==0){
+		  	this.$u.toast('您暂未认证')
+		  	return
+		  }
+		  if(this.userInfo.vip_level==2){
+		  	this.$u.toast('经用户反馈,您账户存在违规行为,暂不支持使用该功能')
+		  	return
+		  }
+		  if(this.userInfo.vip_level==3){
+		  					this.$u.toast('您的账户已注销,暂不支持使用该功能')
+		  					return
+		  				}
+		  uni.navigateTo({
+		  	url:'./jubao?id='+this.info.id
+		  })
+	  },
+	  toPerson(){
+		  if(this.personPhoto.length==0){
+			  return
+		  }
+		  uni.navigateTo({
+		  	url:'./personPhoto?id='+this.info.id
+		  })
+	  },
+	  toLife(){
+		  if(this.lifePhoto.length==0){
+		  			  return
+		  }
+	  		  uni.navigateTo({
+	  		  	url:'./lifePhoto?id='+this.info.id
+	  		  })
+	  }
+  },
+};
+</script>
+<style lang="scss">
+@import '@/common/common.css';
+page{
+	
+}
+.person{
+	position: relative;
+	padding: 26rpx 20rpx;
+	margin: 0 auto 20rpx;
+	width: 690rpx;
+	height: 400rpx;
+	background: #F3F4F6;
+	border-radius: 20rpx;
+	.bag{
+		position: relative;
+		z-index: 11;
+		text-align: center;
+		width: 140rpx;
+		height: 52rpx;
+		line-height: 52rpx;
+		background: #000000;
+		border-radius: 26rpx;
+		font-size: 24rpx;
+		color: #fff;
+	}
+}
+.page {
+  background-color: #FBF8FD;
+  position: relative;
+  width: 750rpx;
+  overflow: hidden;
+}
+
+.group_1 {
+  width: 750rpx;
+  /* height: 1624rpx; */
+  
+}
+
+.box_37 {
+  width: 750rpx;
+  /* height: 514rpx; */
+}
+
+.group_45 {
+  width: 680rpx;
+  height: 34rpx;
+  margin: 30rpx 0 0 42rpx;
+}
+
+.text-wrapper_24 {
+  width: 108rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  font-size: 0;
+  letter-spacing: -0.2800000011920929px;
+  font-family: Helvetica;
+  text-align: center;
+  white-space: nowrap;
+  line-height: 34rpx;
+}
+
+.text_56 {
+  width: 108rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  color: rgba(0, 0, 0, 1);
+  font-size: 28rpx;
+  font-family: Helvetica;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 34rpx;
+}
+
+.text_57 {
+  width: 108rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  color: rgba(0, 0, 0, 1);
+  font-size: 28rpx;
+  font-family: Helvetica;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 34rpx;
+}
+
+.group_46 {
+  width: 34rpx;
+  height: 22rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png) -2rpx -2rpx
+    no-repeat;
+  background-size: 36rpx 24rpx;
+  margin: 6rpx 0 0 438rpx;
+}
+
+.group_47 {
+  width: 30rpx;
+  height: 22rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png) -2rpx
+    0rpx no-repeat;
+  background-size: 32rpx 24rpx;
+  margin: 4rpx 0 0 10rpx;
+}
+
+.group_48 {
+  width: 50rpx;
+  height: 24rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin: 4rpx 0 0 10rpx;
+}
+
+.group_49 {
+  width: 706rpx;
+  height: 74rpx;
+  margin: 24rpx 0 0 30rpx;
+}
+
+.section_4 {
+  width: 64rpx;
+  height: 64rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+}
+
+.text_3 {
+  width: 146rpx;
+  height: 50rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 36rpx;
+  letter-spacing: 0.2266666740179062px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 50rpx;
+  margin: 22rpx 0 0 208rpx;
+}
+
+.section_33 {
+  width: 168rpx;
+  height: 60rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin: 14rpx 0 0 120rpx;
+}
+
+.box_3 {
+  background-color: rgba(255, 255, 255, 1);
+  border-radius: 14px 14px 0px 0px;
+  height: 232rpx;
+  width: 750rpx;
+  position: relative;
+  margin: 98rpx 0 22rpx 0;
+}
+
+.text-wrapper_25 {
+  width: 318rpx;
+  height: 60rpx;
+  margin: 48rpx 0 0 336rpx;
+}
+
+.text_29 {
+  width: 54rpx;
+  height: 60rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 52rpx;
+  letter-spacing: 0.7607405185699463px;
+  font-family: DINAlternate-Bold;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 60rpx;
+}
+
+.text_30 {
+  width: 50rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 24rpx;
+  letter-spacing: 0.3511109948158264px;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 34rpx;
+  margin: 20rpx 0 0 8rpx;
+}
+
+.text_31 {
+  width: 28rpx;
+  height: 60rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 52rpx;
+  letter-spacing: 0.7607405185699463px;
+  font-family: DINAlternate-Bold;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 60rpx;
+  margin-left: 120rpx;
+}
+
+.text_32 {
+  width: 50rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 24rpx;
+  letter-spacing: 0.3511109948158264px;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 34rpx;
+  margin: 20rpx 0 0 8rpx;
+}
+
+.box_38 {
+  // width: 100%;
+  height: 44rpx;
+  margin: 50rpx 0 30rpx 40rpx;
+}
+
+.image-text_45 {
+  width: 100%;
+  height: 44rpx;
+}
+
+.text_4 {
+  height: 44rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 32rpx;
+  letter-spacing: 0.46814799308776855px;
+  font-family: PingFangSC-Medium;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 44rpx;
+}
+
+.box_20 {
+  position: relative;
+  height: 32rpx;
+  background-size: 100% 100%;
+  margin-top: 6rpx;
+}
+
+.image-text_46 {
+  width: 86rpx;
+  height: 28rpx;
+  margin-left: 4rpx;
+}
+
+.box_21 {
+  width: 24rpx;
+  height: 24rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin-top: 4rpx;
+}
+
+.text-group_20 {
+  width: 62rpx;
+  height: 28rpx;
+  overflow-wrap: break-word;
+  color: rgba(255, 255, 255, 1);
+  font-size: 20rpx;
+  letter-spacing: 0.29259249567985535px;
+  font-family: PingFangSC-Medium;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 28rpx;
+}
+
+.image-text_47 {
+  position: absolute;
+  left: 4rpx;
+  top: 0;
+  width: 86rpx;
+  height: 28rpx;
+}
+
+.image_1 {
+	border-radius: 50%;
+  position: absolute;
+  left: 40rpx;
+  top: -60rpx;
+  width: 200rpx;
+  height: 200rpx;
+}
+
+.box_22 {
+  background-color: rgba(255, 255, 255, 1);
+  width: 750rpx;
+  margin-top: -2rpx;
+}
+
+.text-wrapper_26 {
+  width: 690rpx;
+  height: 44rpx;
+  margin: 36rpx 0 28rpx 30rpx;
+}
+
+.text_33 {
+	position: relative;
+  width: 130rpx;
+  height: 44rpx;
+  overflow-wrap: break-word;
+  color: #999999;
+  font-size: 32rpx;
+  letter-spacing: 0.20148147642612457px;
+  font-family: PingFangSC-Medium;
+  text-align: center;
+  white-space: nowrap;
+  line-height: 44rpx;
+  padding-bottom: 12rpx;
+}
+.select{
+	position: relative;
+	color: #222222;
+}
+.select::before{
+	content: '';
+	position: absolute;
+	left: 50%;
+	transform: translateX(-50%);
+	bottom: 0;
+	width: 40rpx;
+	height: 8rpx;
+	background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+	border-radius: 4rpx;
+}
+.text_34 {
+  width: 122rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(153, 153, 153, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  font-family: PingFangSC-Medium;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin: 2rpx 0 0 84rpx;
+}
+
+.text_35 {
+  width: 122rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(153, 153, 153, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  font-family: PingFangSC-Medium;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin: 2rpx 0 0 86rpx;
+}
+
+.text_36 {
+  width: 62rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(153, 153, 153, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  font-family: PingFangSC-Medium;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin: 2rpx 0 0 84rpx;
+}
+
+.box_23 {
+  width: 40rpx;
+  height: 8rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin: 2rpx 0 0 76rpx;
+}
+
+.box_24 {
+  background-color: rgba(242, 242, 242, 1);
+  width: 690rpx;
+  height: 2rpx;
+  margin: 28rpx 0 0 30rpx;
+}
+
+.group_50 {
+  width: 690rpx;
+  height: 42rpx;
+  margin: 20rpx 0 0 30rpx;
+}
+
+.text_49 {
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text_50 {
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.section_32 {
+  width: 28rpx;
+  height: 28rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin: 8rpx 0 0 4rpx;
+}
+
+.group_51 {
+  width: 690rpx;
+  height: 112rpx;
+  margin: 36rpx 0 0 30rpx;
+}
+
+.text-group_32 {
+  width: 62rpx;
+  height: 112rpx;
+}
+
+.text_44 {
+  width: 62rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text_38 {
+  width: 62rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin-top: 28rpx;
+}
+
+.text-group_33 {
+  width: 92rpx;
+  height: 112rpx;
+}
+
+.text_45 {
+  width: 92rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text-group_21 {
+  width: 92rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin-top: 28rpx;
+}
+
+.text-wrapper_27 {
+  width: 690rpx;
+  height: 42rpx;
+  margin: 36rpx 0 0 30rpx;
+}
+
+.text_39 {
+  width: 62rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text-group_22 {
+  width: 72rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.group_52 {
+  width: 690rpx;
+  height: 42rpx;
+  margin: 36rpx 0 0 30rpx;
+}
+
+.text_41 {
+  width: 62rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text-group_24 {
+  width: 92rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+  margin-left: 504rpx;
+}
+
+.group_39 {
+  width: 28rpx;
+  height: 28rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin: 8rpx 0 0 4rpx;
+}
+
+.text-wrapper_28 {
+  width: 690rpx;
+  height: 42rpx;
+  margin: 36rpx 0 0 30rpx;
+}
+
+.text_51 {
+  width: 122rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.text_52 {
+  width: 122rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.group_53 {
+  width: 690rpx;
+  height: 42rpx;
+  margin: 36rpx 0 0 30rpx;
+}
+
+.text_53 {
+  width: 122rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(136, 136, 136, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.image-text_48 {
+  width: 216rpx;
+  height: 42rpx;
+}
+
+.text-group_29 {
+  width: 184rpx;
+  height: 42rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 30rpx;
+  letter-spacing: 0.18888889253139496px;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 42rpx;
+}
+
+.group_41 {
+  width: 28rpx;
+  height: 28rpx;
+  background: url(https://oss.wdmeta.art/a7835b5dd05ecd99/011781dfdfb589a0.png)
+    100% no-repeat;
+  background-size: 100% 100%;
+  margin-top: 8rpx;
+}
+
+.text-wrapper_13 {
+	position: fixed;
+	bottom: 84rpx;
+	left: 50%;
+	transform: translateX(-50%);
+  height: 92rpx;
+  
+border-radius: 46rpx;
+background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+  background-size: 100% 100%;
+  width: 650rpx;
+}
+
+.text_46 {
+  width: 146rpx;
+  height: 50rpx;
+  overflow-wrap: break-word;
+  color: rgba(255, 255, 255, 1);
+  font-size: 36rpx;
+  letter-spacing: 0.2266666740179062px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 50rpx;
+  margin: 22rpx 0 0 252rpx;
+}
+
+</style>

+ 120 - 0
pages/profile/personPhoto.vue

@@ -0,0 +1,120 @@
+<template>
+	<view>
+		<u-upload
+			:fileList="fileList"
+			@afterRead="afterRead"
+			@delete="deletePic"
+			name="3"
+			:multiple='false'
+			:maxCount="maxCount"
+			:previewFullImage="true"
+			width="110"
+				height="110"
+				:deletable="id==''"
+		></u-upload>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(option) {
+			if(option.id){
+				this.id=option.id
+			}
+			this.getpersonPhoto()
+		},
+		data() {
+			return {
+				fileList: [],
+				id:'',
+				maxCount:10
+			}
+		},
+		methods: {
+			getpersonPhoto(){
+				uni.$u.http.post('/api/user/personal_album',{id:this.id?this.id:uni.getStorageSync('userId')}).then(res => {
+					if(res.code==1){
+						this.fileList=res.data
+						if(this.id){
+							this.maxCount=res.data.length
+						}
+					}
+				})
+			},
+			// 删除图片
+						deletePic(event) {
+							console.log(event)
+							var that=this
+							uni.showModal({
+								title: '',
+								content: '是否删除这张图片',
+								confirmColor:'#FF3D3D',
+								confirmText:'删除',
+								success: function (res) {
+									if (res.confirm) {
+										uni.$u.http.post('/api/user/del_album',{id:event.file.id}).then(res => {
+											if(res.code==1){
+												that.getpersonPhoto()
+											}
+										})
+									} else if (res.cancel) {
+										console.log('用户点击取消');
+									}
+								}
+							});
+
+						},
+						// 新增图片
+						async afterRead(event) {
+							// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+							let lists = [].concat(event.file)
+							let fileListLen = this.fileList.length
+							lists.map((item) => {
+								this.fileList.push({
+									...item,
+									status: 'uploading',
+									message: '上传中'
+								})
+							})
+							for (let i = 0; i < lists.length; i++) {
+								const result = await this.uploadFilePromise(lists[i].url)
+								uni.$u.http.post('/api/user/upload_album',{image:result,type:1}).then(res => {
+									if(res.code==1){
+										this.getpersonPhoto()
+									}
+								})
+								// let item = this.fileList[fileListLen]
+								// this.fileList.splice(fileListLen, 1, Object.assign(item, {
+								// 	status: 'success',
+								// 	message: '',
+								// 	url: result
+								// }))
+								// fileListLen++
+							}
+						},
+						uploadFilePromise(url) {
+							return new Promise((resolve, reject) => {
+								let a = uni.uploadFile({
+									url: this.$url+'/api/Publics/uploadLocality', // 仅为示例,非真实的接口地址
+									filePath: url,
+									name: 'file',
+									formData: {
+										user: 'test'
+									},
+									success: (res) => {
+										setTimeout(() => {
+											resolve(JSON.parse(res.data).data.url)
+										}, 1000)
+									}
+								});
+							})
+						},
+		}
+	}
+</script>
+
+<style>
+page{
+	padding: 30rpx;
+}
+</style>

+ 352 - 0
pages/profile/personStatus.vue

@@ -0,0 +1,352 @@
+<template>
+  <view class="page flex-col">
+    <view class="group_1 flex-col">
+		<image src="../../static/bg.png" mode="" style="width: 100%;height: 100%;"></image>
+      
+      <view class="box_3 flex-col">
+        <text class="text_4">当前状态:{{list[info.status*1-1]||'暂无'}}</text>
+        <view class="group_5 flex-col"></view>
+        <view class="text-wrapper_3 flex-col" v-for="(item,index) in list" @click="itemclick(index)" :class="{'select':current==index}" :key="index" >
+          <text class="text_6">{{item}}</text>
+        </view>
+       <!-- <view class="text-wrapper_3 flex-col">
+          <text class="text_6">已婚</text>
+        </view>
+        <view class="text-wrapper_4 flex-col">
+          <text class="text_7">离异</text>
+        </view>
+        <view class="text-wrapper_5 flex-col">
+          <text class="text_8">丧偶</text>
+        </view> -->
+        <view class="text-wrapper_6 flex-col" @click="confirm">
+          <text class="text_9" >确认</text>
+        </view>
+        <view class="group_6 flex-col">
+			<view class="avatar">
+				<image :src="info.headimg" mode=""></image>
+			</view>
+		</view>
+      </view>
+    </view>
+  </view>
+</template>
+<script>
+export default {
+	onLoad() {
+			this.info=JSON.parse(uni.getStorageSync('userInfo'))
+			this.current=this.info.status*1-1
+	},
+  data() {
+    return {
+      list:['未婚','已婚','离异','丧偶'],
+	  current:0,
+	  info:{}
+    };
+  },
+  methods: {
+	  confirm(){
+		  uni.$u.http.post('/api/user/user_status',{status:this.current*1+1}).then(res => {
+		  		if(res.code==1){
+					this.$u.toast(res.msg)
+					this.getUserInfo()
+				}
+		  })
+	  },
+	  getUserInfo(){
+		  uni.$u.http.post('/api/user/userinfo').then(res => {
+		  	if(res.code==1){
+				this.info=res.data
+		  		uni.setStorageSync('userInfo',JSON.stringify(res.data))
+		  	}
+		  })
+	  },
+	  itemclick(index){
+		  if(this.current!=index){
+			  this.current=index
+		  }
+	  }
+  },
+};
+</script>
+<style lang="scss">
+@import '@/common/common.css';
+.select{
+background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+text{
+	color: #fff;
+}
+}
+.avatar{
+	position: relative;
+	z-index: 999;
+	margin: 0 auto;
+	image{
+		width: 172rpx;
+		height: 172rpx;
+		border-radius: 50%;
+		border: 4rpx solid #FFFFFF;
+	}
+}
+.page {
+  background-color: rgba(255, 255, 255, 1);
+  position: relative;
+  width: 750rpx;
+  overflow: hidden;
+}
+
+.group_1 {
+	position: relative;
+  height: 100vh;
+  width: 750rpx;
+}
+
+.group_10 {
+  width: 750rpx;
+  height: 290rpx;
+}
+
+.box_5 {
+  width: 680rpx;
+  height: 34rpx;
+  margin: 30rpx 0 0 42rpx;
+}
+
+.text-wrapper_8 {
+  width: 108rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  font-size: 0;
+  letter-spacing: -0.2800000011920929px;
+  font-family: Helvetica;
+  text-align: center;
+  white-space: nowrap;
+  line-height: 34rpx;
+}
+
+.text_12 {
+  width: 108rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  color: rgba(0, 0, 0, 1);
+  font-size: 28rpx;
+  font-family: Helvetica;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 34rpx;
+}
+
+.text_13 {
+  width: 108rpx;
+  height: 34rpx;
+  overflow-wrap: break-word;
+  color: rgba(0, 0, 0, 1);
+  font-size: 28rpx;
+  font-family: Helvetica;
+  text-align: left;
+  white-space: nowrap;
+  line-height: 34rpx;
+}
+
+.group_11 {
+  width: 34rpx;
+  height: 22rpx;
+  background-size: 36rpx 24rpx;
+  margin: 6rpx 0 0 438rpx;
+}
+
+.group_12 {
+  width: 30rpx;
+  height: 22rpx;
+  background-size: 32rpx 24rpx;
+  margin: 4rpx 0 0 10rpx;
+}
+
+.group_13 {
+  width: 50rpx;
+  height: 24rpx;
+  margin: 4rpx 0 0 10rpx;
+}
+
+.box_6 {
+  width: 706rpx;
+  height: 74rpx;
+  margin: 24rpx 0 128rpx 30rpx;
+}
+
+.box_2 {
+  width: 64rpx;
+  height: 64rpx;
+}
+
+.text_3 {
+  width: 146rpx;
+  height: 50rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 36rpx;
+  letter-spacing: 0.2266666740179062px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 50rpx;
+  margin: 22rpx 0 0 208rpx;
+}
+
+.group_14 {
+  width: 168rpx;
+  height: 60rpx;
+  margin: 14rpx 0 0 120rpx;
+}
+
+.box_3 {
+  background-color: rgba(255, 255, 255, 1);
+  border-radius: 20px 20px 0px 0px;
+  position: absolute;
+  left: 0;
+  top: 151rpx;
+  width: 750rpx;
+  height: 1336rpx;
+}
+
+.text_4 {
+  width: 228rpx;
+  height: 44rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 32rpx;
+  letter-spacing: 0.20148147642612457px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 44rpx;
+  margin: 136rpx 0 0 262rpx;
+}
+
+.group_5 {
+  background-color: rgba(242, 242, 242, 1);
+  width: 690rpx;
+  height: 2rpx;
+  margin: 40rpx 0 0 30rpx;
+}
+
+.text-wrapper_2 {
+  height: 100rpx;
+  width: 610rpx;
+  margin: 64rpx 0 0 70rpx;
+}
+
+.text_5 {
+  width: 66rpx;
+  height: 44rpx;
+  overflow-wrap: break-word;
+  color: rgba(255, 255, 255, 1);
+  font-size: 32rpx;
+  letter-spacing: 0.20148147642612457px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 44rpx;
+  margin: 28rpx 0 0 272rpx;
+}
+
+.text-wrapper_3 {
+  background-color: rgba(243, 244, 246, 1);
+  border-radius: 10px;
+  height: 100rpx;
+  width: 610rpx;
+  margin: 40rpx 0 0 70rpx;
+}
+
+.text_6 {
+  width: 66rpx;
+  height: 44rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 32rpx;
+  letter-spacing: 0.20148147642612457px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 44rpx;
+  margin: 28rpx 0 0 272rpx;
+}
+
+.text-wrapper_4 {
+  background-color: rgba(243, 244, 246, 1);
+  border-radius: 10px;
+  height: 100rpx;
+  width: 610rpx;
+  margin: 40rpx 0 0 70rpx;
+}
+
+.text_7 {
+  width: 66rpx;
+  height: 44rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 32rpx;
+  letter-spacing: 0.20148147642612457px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 44rpx;
+  margin: 28rpx 0 0 272rpx;
+}
+
+.text-wrapper_5 {
+  background-color: rgba(243, 244, 246, 1);
+  border-radius: 10px;
+  height: 100rpx;
+  width: 610rpx;
+  margin: 40rpx 0 0 70rpx;
+}
+
+.text_8 {
+  width: 66rpx;
+  height: 44rpx;
+  overflow-wrap: break-word;
+  color: rgba(34, 34, 34, 1);
+  font-size: 32rpx;
+  letter-spacing: 0.20148147642612457px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 44rpx;
+  margin: 28rpx 0 0 272rpx;
+}
+
+.text-wrapper_6 {
+	position: fixed;
+	bottom: 84rpx;
+	left: 50%;
+	transform: translateX(-50%);
+background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+  height: 92rpx;
+  width: 650rpx;
+  
+border-radius: 52rpx;
+}
+
+.text_9 {
+  width: 74rpx;
+  height: 50rpx;
+  overflow-wrap: break-word;
+  color: rgba(255, 255, 255, 1);
+  font-size: 36rpx;
+  letter-spacing: 0.2266666740179062px;
+  font-family: PingFangSC-Medium;
+  text-align: right;
+  white-space: nowrap;
+  line-height: 50rpx;
+  margin: 22rpx 0 0 288rpx;
+}
+
+.group_6 {
+  position: absolute;
+  left: 290rpx;
+  top: -72rpx;
+  width: 172rpx;
+  height: 172rpx;
+}
+
+</style>

+ 308 - 0
pages/profile/profile.vue

@@ -0,0 +1,308 @@
+<template>
+	<view>
+		<image src="../../static/bg.png" mode="" class="bg"></image>
+		<view class="top u-flex u-row-between">
+			<view class="u-flex leftBox">
+				<image :src="info.headimg" mode="" class="avatar"></image>
+				<view class="">
+					<view class="name">
+						{{info.nickname}} <image src="../../static/profile/8@2x.png" mode="" v-show="info.vip_level==0"></image>
+					</view>
+					<view class="info" >
+						资料完成度{{info.progress}}% <text class="wanshan" v-show="info.progress!=100" @click="toPage">去完善></text>
+					</view>
+					<template>
+						<u-line-progress :percentage="info.progress" :showText="false" activeColor="#A890FE" height="8"></u-line-progress>
+					</template>
+				</view>
+			</view>
+			<image src="../../static/profile/7@2x.png" mode="" class="set" @click="toset"></image>
+		</view>
+		<view class="user u-flex u-row-between">
+			<view class="u-flex-col u-col-center userItem"  @click="tofensi"> 
+				<text class="num">{{info.fans}}</text>
+				<text class="itemName">粉丝</text>
+			</view>
+			<view class="u-flex-col u-col-center userItem" @click="toguanzhu">
+				<text class="num">{{info.follow}}</text>
+				<text class="itemName">关注</text>
+			</view>
+			<view class="u-flex-col u-col-center userItem" @click="todianzan">
+				<text class="num">{{info.fabulous}}</text>
+				<text class="itemName">点赞</text>
+			</view>
+			<view class="u-flex-col u-col-center userItem" @click="toxingqu">
+				<text class="num">{{info.interested}}</text>
+				<text class="itemName">感兴趣</text>
+			</view>
+		</view>
+		<view class="center u-flex u-row-around">
+			<view class="u-flex-col u-col-center" @click="todongtai">
+				<image src="../../static/profile/2@2x.png" mode=""></image>
+				<text>我的动态</text>
+			</view>
+			<view class="u-flex-col u-col-center" @click="toliaotian">
+				<image src="../../static/profile/3@2x.png" mode=""></image>
+				<text>聊天记录</text>
+			</view>
+			<view class="u-flex-col u-col-center"  @click="toactivity">
+				<image src="../../static/profile/4@2x.png" mode=""></image>
+				<text>报名活动</text>
+			</view>
+			<view class="u-flex-col u-col-center"  @click="toreport">
+				<image src="../../static/profile/1@2x.png" mode=""></image>
+				<text>举报记录</text>
+			</view>
+		</view>
+		<view class="bottom">
+			<view class="u-flex u-row-between" @click="tostatus">
+				<view class="item">
+					<image src="../../static/profile/5@2x.png" mode=""></image>
+					<text>个人状态</text>
+				</view>
+				<u-icon name="arrow-right"></u-icon>
+			</view>
+			<view class="u-flex u-row-between" style="margin-top: 54rpx;"  @click="toPage">
+				<view class="item">
+					<image src="../../static/profile/6@2x.png" mode=""></image>
+					<text>个人主页</text>
+				</view>
+				<u-icon name="arrow-right"></u-icon>
+			</view>
+			<view class="u-flex u-row-between" style="margin-top: 54rpx;"  @click="tozixun">
+				<view class="item">
+					<image src="../../static/profile/qinggai@2x.png" mode=""></image>
+					<text>情感咨询记录</text>
+				</view>
+				<u-icon name="arrow-right"></u-icon>
+			</view>
+			<view class="u-flex u-row-between" style="margin-top: 54rpx;"  @click="contact">
+				<view class="item">
+					<image src="../../static/profile/lianxi@2x.png" mode=""></image>
+					<text>联系我们</text>
+				</view>
+				<u-icon name="arrow-right"></u-icon>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				info:{}
+			}
+		},
+		onPullDownRefresh() {
+				this.getInfo()
+				setTimeout(function () {
+					uni.stopPullDownRefresh();
+				}, 1000);
+			},
+		onShow() {
+				this.getInfo()
+		},
+		methods: {
+			tozixun(){
+					uni.navigateTo({
+						url:'./zixunList'
+					})
+			},
+			contact(){
+				uni.navigateTo({
+					url:'/pages/index/contactour'
+				})
+			},
+			toliaotian(){
+				
+				if(this.info.vip_level==0){
+					this.$u.toast('您暂未认证')
+					return
+				}
+				if(this.info.vip_level==2){
+					this.$u.toast('经用户反馈,您账户存在违规行为,暂不支持使用该功能')
+					return
+				}
+				if(this.info.vip_level==3){
+									this.$u.toast('您的账户已注销,暂不支持使用该功能')
+									return
+								}
+				uni.navigateTo({
+					url:'/pages/index/message'
+				})
+			},
+			getInfo(){
+				uni.$u.http.post('/api/user/userinfo').then(res => {
+					if(res.code==1){
+						this.info=res.data
+						uni.setStorageSync('userId',res.data.id)
+						uni.setStorageSync('userInfo',JSON.stringify(res.data))
+					}
+				})
+			},
+			toPage(){
+				uni.navigateTo({
+					url:'./myPage'
+				})
+			},
+			tostatus(){
+				uni.navigateTo({
+					url:'./personStatus'
+				})
+			},
+			toreport(){
+				uni.navigateTo({
+					url:'./reportList'
+				})
+			},
+			toactivity(){
+				if(this.info.vip_level==0){
+					this.$u.toast('您暂未认证')
+					return
+				}
+				if(this.info.vip_level==2){
+					this.$u.toast('经用户反馈,您账户存在违规行为,暂不支持使用该功能')
+					return
+				}
+				if(this.info.vip_level==3){
+									this.$u.toast('您的账户已注销,暂不支持使用该功能')
+									return
+								}
+				uni.navigateTo({
+					url:'../activity/activityLIst'
+				})
+			},
+			todongtai(){
+				if(this.info.vip_level==0){
+					this.$u.toast('您暂未认证')
+					return
+				}
+				if(this.info.vip_level==2){
+					this.$u.toast('经用户反馈,您账户存在违规行为,暂不支持使用该功能')
+					return
+				}
+				if(this.info.vip_level==3){
+									this.$u.toast('您的账户已注销,暂不支持使用该功能')
+									return
+								}
+				uni.navigateTo({
+					url:'./mydongtai'
+				})
+			},
+			toxingqu(){
+				uni.navigateTo({
+					url:'./ganxingqu'
+				})
+			},
+			todianzan(){
+				uni.navigateTo({
+					url:'./dianzan'
+				})
+			},
+			tofensi(){
+				uni.navigateTo({
+					url:'./fensi'
+				})
+			},
+			toguanzhu(){
+				uni.navigateTo({
+					url:'./guanzhu'
+				})
+			},
+			toset(){
+				uni.navigateTo({
+					url:'./set'
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.bottom{
+		box-sizing: border-box;
+		padding: 36rpx 20rpx;
+		margin: 0 auto;
+		width: 690rpx;
+		background: #FFFFFF;
+		border-radius: 28rpx;
+		font-size: 28rpx;
+		color: #222;
+		.item{
+			image{
+				width: 44rpx;
+				height: 44rpx;
+				vertical-align: middle;
+				margin-right: 20rpx;
+			}
+		}
+	}
+	.center{
+		font-size: 24rpx;
+		margin: 0 auto 24rpx;
+		width: 690rpx;
+		height: 228rpx;
+		background: #FFFFFF;
+		border-radius: 28rpx;
+		image{
+			width: 76rpx;
+			height: 76rpx;
+			margin-bottom: 16rpx;
+		}
+	}
+	.user{
+		margin: 52rpx 0 40rpx;
+		padding: 0 30rpx;
+	}
+	.userItem{
+		color: #222222;
+		font-size: 24rpx;
+		.num{
+			font-size: 52rpx;
+			font-weight: 600;
+			margin-bottom: 10rpx;
+		}
+	}
+	page{
+		
+	}
+	.top{
+		padding: 196rpx 30rpx 0;
+	}
+	.set{
+		width: 40rpx;
+		height: 40rpx;
+	}
+
+.leftBox{
+	.avatar{
+		margin-right: 20rpx;
+		width: 132rpx;
+		height: 132rpx;
+		border-radius: 50%;
+		border: 4rpx solid #FFFFFF;
+	}
+	.name{
+		font-size: 32rpx;
+		color: #222222;
+		image{
+			width: 96rpx;
+			height: 32rpx;
+			margin-left: 12rpx;
+			vertical-align: middle;
+		}
+	}
+	.info{
+		margin: 14rpx 0 4rpx;
+		font-size: 16rpx;
+		color: #222222;
+		.wanshan{
+			color: #9887FF;
+			background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+			-webkit-background-clip: text;
+			-webkit-text-fill-color: transparent;
+		}
+	}
+}
+</style>

+ 71 - 0
pages/profile/reportInfo.vue

@@ -0,0 +1,71 @@
+<template>
+	<view class="index">
+		<view class="left">
+			<image :src="info.headimg" mode=""></image>({{info.nickname}})
+		</view>
+		<view class="reason">
+			举报理由:{{info.title}}
+		</view>
+		<view class="info">
+			{{info.r_content}}
+		</view>
+		<view class="reason">
+			举报时间:{{info.create_at}}
+		</view>
+		<view class="reason" style="margin-top: 32rpx;">
+			审核结果:{{info.status==1?'审核中':info.status==2?'已通过':'已驳回'}}
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(option) {
+			this.getInfo(option.id)
+		},
+		data() {
+			return {
+				info:{}
+			}
+		},
+		methods: {
+			getInfo(id){
+				uni.$u.http.post('/api/user/details_report',{rid:id}).then(res => {
+						this.info=res.data
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+.index{
+	padding: 36rpx 30rpx;
+	.left{
+		padding-bottom: 20rpx;
+		border-bottom: 2rpx solid #F5F4F5;
+		image{
+			vertical-align: middle;
+			width: 64rpx;
+			height: 64rpx;
+			border-radius: 50%;
+			margin-right: 12rpx;
+		}
+	}
+	.reason{
+		font-size: 24rpx;
+		font-weight: 600;
+	}
+	.info{
+		box-sizing: border-box;
+		font-size: 24rpx;
+		color: #666666;
+		padding: 20rpx;
+		margin: 24rpx auto 32rpx;
+		width: 690rpx;
+		height: 280rpx;
+		background: #F3F3F3;
+		border-radius: 20rpx;
+	}
+}
+</style>

+ 109 - 0
pages/profile/reportList.vue

@@ -0,0 +1,109 @@
+<template>
+	<view>
+		<view class="item" v-for="(item,index) in list" :key="index">
+			<view class="top u-flex u-row-between">
+				<view class="left">
+					<image :src="item.headimg" mode=""></image>({{item.nickname}})
+				</view>
+				<image src="../../static/profile/sheneh@2x.png" mode="" v-if="item.status==1"></image>
+				<image src="../../static/profile/tongguo@2x.png" mode="" v-if="item.status==2"></image>
+				<image src="../../static/profile/bohui@2x.png" mode="" v-if="item.status==3"></image>
+			</view>
+			<view class="bottom u-flex u-row-between">
+				<view class="reason">
+					举报理由:{{item.title}}
+				</view>
+				<view class="button u-flex u-row-right">
+					<view class="" style="margin-right: 10rpx;">
+						<u-button shape='circle' size="small" text="查看详情" @click="lookInfo(item)"></u-button>
+					</view>
+					<u-button shape='circle' v-if="item.status==1" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);" size="small" text="取消举报" @click="canclejubao(item)"></u-button>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+				this.getList()
+		},
+		onReachBottom() {
+			this.page++
+			this.getList()
+		},
+		data() {
+			return {
+				page:1,
+				list:[]
+			}
+		},
+		methods: {
+			canclejubao(item){
+				uni.$u.http.post('/api/user/cancel_report',{rid:item.id}).then(res => {
+					if(res.code==1){
+						this.$u.toast(res.msg)
+						this.page=1
+						this.getList()
+					}
+				})
+			},
+			lookInfo(item){
+				uni.navigateTo({
+					url:'./reportInfo?id='+item.id
+				})
+			},
+			getList(){
+					uni.$u.http.post('/api/user/my_report',{page:this.page}).then(res => {
+						if(this.page==1){
+							this.list=res.data.data
+						}else{
+							this.list=[...this.activityList,...res.data.data]
+						}
+					})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background-color: #F3F3F3;
+		padding-top: 20rpx;
+	}
+	.bottom{
+		padding: 20rpx 0;
+		.reason{
+			font-size: 24rpx;
+			font-weight: 600;
+		}
+		
+	}
+	.top{
+		padding-bottom: 20rpx;
+		border-bottom: 2rpx solid #F5F4F5;
+		image{
+			width: 96rpx;
+			height: 36rpx;
+		}
+	}
+.item{
+	font-size: 20rpx;
+	color: #222222;
+	margin: 0 auto 20rpx;
+	padding: 20rpx;
+	width: 690rpx;
+	background: #FFFFFF;
+	border-radius: 28rpx;
+	.left{
+		image{
+			vertical-align: middle;
+			width: 64rpx;
+			height: 64rpx;
+			border-radius: 50%;
+			margin-right: 12rpx;
+		}
+	}
+}
+</style>

+ 262 - 0
pages/profile/set.vue

@@ -0,0 +1,262 @@
+<template>
+	<view class="userinfo">
+		<view class="item-box u-flex u-col-center u-row-between">
+			<text class="text1">头像</text>
+			<view class="" >
+				<image :src="userInfo.headimg" mode="" @tap="changeHeadImg"></image>
+			</view>
+		</view>
+		<view class="item-box u-flex u-col-center u-row-between">
+			<text class="text1" style="flex: 1;">昵称</text>
+			<view class=" u-flex" @click="show=true">
+				{{userInfo.nickname}}<u-icon name="arrow-right"></u-icon>
+			</view>
+		</view>
+		<view class="item-box u-flex u-col-center u-row-between"  >
+			<text class="text1" style="flex: 1;">会员号</text>
+			<view class=" u-flex">
+				{{userInfo.vip_number}}
+			</view>
+		</view>
+		<!-- <view class="item-box u-flex u-col-center u-row-between" @click="tobangding" v-show="!userInfo.phone">
+			<text class="text1" style="flex: 1;">手机号</text>
+			<view class=" u-flex">
+				去绑定<u-icon name="arrow-right"></u-icon>
+			</view>
+		</view> -->
+		<!-- <view class="item-box u-flex u-col-center u-row-between"  @click="tochange" v-show="userInfo.phone">
+			<text class="text1" style="flex: 1;">手机号</text>
+			<view class=" u-flex" style="color: #888888;">
+				{{userInfo.phone}}<u-icon name="arrow-right"></u-icon>
+			</view>
+		</view> -->
+		<view class="item-box u-flex u-col-center u-row-between" @click="tosuqiu">
+			<text class="text1" style="flex: 1;">个人诉求</text>
+			<u-icon name="arrow-right"></u-icon>
+		</view>
+		<view class="item-box u-flex u-col-center u-row-between">
+			<text class="text1" style="flex: 1;" @click="tozhuxiao">账号注销</text>
+			<u-icon name="arrow-right"></u-icon>
+		</view>
+		<u-popup :show="show" @close="show=false" mode="center" :round="40">
+					<view style="width: 650rpx;
+		background: #FFFFFF;
+		border-radius: 20rpx;padding: 80rpx 86rpx;color: #222;box-sizing: border-box;" class="u-flex-col">
+						
+						<view class="" style="margin: 0 auto 50rpx;border-radius: 5rpx;border: 2rpx solid #A890FE;padding: 10rpx 20rpx;">
+							<input type="text" placeholder="请输入新昵称" v-model="newName">
+						</view>
+						<u-button text="确认修改" shape="circle" color="linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%)"
+							@click="submit"></u-button>
+					</view>
+				</u-popup>
+		<!-- <view class="save" @tap="storage">
+			保存
+		</view> -->
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				newName:'',
+				show:false,
+				userInfo: {},
+				ossdata: {}
+			}
+		},
+		onLoad(option) {
+			// this.getOssData()
+		},
+		onShow() {
+			this.getInfo()
+		},
+		methods: {
+			submit(){
+				if(!this.newName){
+					this.$u.toast('请输入新昵称')
+					return
+				}
+				uni.$u.http.post('/api/user/user_nickname',{nickname:this.newName}).then(res => {
+					if(res.code==1){
+						this.$u.toast(res.msg)
+						this.newName=''
+						this.show=false
+						this.getInfo()
+				
+					}
+				})
+			},
+			getInfo(){
+				uni.$u.http.post('/api/user/userinfo').then(res => {
+					if(res.code==1){
+						this.userInfo=res.data
+
+					}
+				})
+			},
+			tochange(){
+				uni.navigateTo({
+					url:'./changephone'
+				})
+			},
+			tobangding(){
+				uni.navigateTo({
+					url:'./bangding'
+				})
+			},
+			tozhuxiao(){
+				uni.navigateTo({
+					url:'./zhuxiao'
+				})
+			},
+			tosuqiu(){
+				uni.navigateTo({
+					url:'./suqiu'
+				})
+			},
+			storage(){
+				this.request({
+					url:'/api/Member/edit_member_info',
+					methods:'POST',
+					data:{
+						headimg:this.userInfo.headImg,
+						name:this.userInfo.nickName,
+						phone:this.userInfo.phone
+					}
+				}).then(res=>{
+					if(res.code==1){
+						this.$u.toast(res.msg)
+						setTimeout(()=>{
+							uni.navigateBack()
+						},1000)
+					}
+				})
+			},
+			changeHeadImg() {
+				var that=this
+				uni.chooseImage({
+					success: (chooseImageRes) => {
+						const tempFilePaths = chooseImageRes.tempFilePaths;
+						uni.uploadFile({
+							url: this.$url+'/api/Publics/uploadLocality', //仅为示例,非真实的接口地址
+							filePath: tempFilePaths[0],
+							name: 'file',
+							
+							success: (uploadFileRes) => {
+								var url=JSON.parse(uploadFileRes.data).data.url
+								uni.$u.http.post('/api/user/user_headimg',{headimg:url}).then(res => {
+									if(res.code==1){
+										this.getInfo()
+								
+									}
+								})
+							}
+						});
+					}
+				});
+				// uni.chooseImage({
+
+				// 	count: 1,
+
+				// 	success: (img) => {
+
+				// 		var key = "image/" + new Date().getTime() + Math.floor(Math.random() * 150) + '.png'
+
+				// 		uni.uploadFile({
+
+				// 			url: this.ossdata.host, //输入你的bucketname.endpoint
+
+				// 			filePath: img.tempFilePaths[0],
+
+				// 			name: 'file',
+
+				// 			formData: {
+
+				// 				key: key,
+
+				// 				policy: this.ossdata.policy, // 输入你获取的的policy
+
+				// 				OSSAccessKeyId: this.ossdata.OSSAccessKeyId, // 输入你的AccessKeyId
+
+				// 				success_action_status: '200', // 让服务端返回200,不然,默认会返回204
+
+				// 				signature: this.ossdata.Signature, // 输入你获取的的signature
+
+				// 			},
+
+				// 			success: (res) => {
+				// 				if (res.statusCode == 200) {
+				// 					this.userInfo.headImg = this.ossdata.host + '/' + key
+				// 				}
+
+				// 			},
+
+				// 			fail: (err) => {
+
+				// 				console.log(err);
+
+				// 			}
+
+				// 		})
+
+				// 	}
+
+				// })
+			},
+			getOssData() {
+				this.request({
+					url: '/api/Upload/getSignedUrl'
+				}).then(res => {
+					this.ossdata = res.data
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.userinfo {
+		min-height: 100vh;
+		background-color: rgba(248, 248, 248, 1);
+
+		.save {
+			width: 660rpx;
+			height: 96rpx;
+			background: #D85340;
+			opacity: 1;
+			border-radius: 16rpx;
+			margin: 108rpx auto;
+			text-align: center;
+			line-height: 96rpx;
+			font-size: 34rpx;
+			font-family: SF Pro;
+			font-weight: 500;
+			color: #FFFFFF;
+		}
+
+		.item-box {
+			background-color: #fff;
+			padding: 30rpx 36rpx;
+
+			.text1 {
+				font-size: 28rpx;
+				font-family: SF Pro;
+				font-weight: 500;
+				color: #333333;
+			}
+
+			image {
+				width: 116rpx;
+				height: 116rpx;
+				border-radius: 100rpx;
+			}
+
+			input {
+				flex: 1;
+				text-align: right;
+			}
+		}
+	}
+</style>

+ 206 - 0
pages/profile/suqiu.vue

@@ -0,0 +1,206 @@
+<template>
+	<view>
+		<view class="title">
+			基本条件
+		</view>
+		<view class="item-box u-flex u-col-center u-row-between">
+			<text class="text1" style="flex: 1;">年龄</text>
+			<view class=" u-flex"  @click="showage=true">
+				{{info.age_min?info.age_min+'-':'请选择年龄'}}{{info.age_max?info.age_max:''}}<u-icon name="arrow-right"></u-icon>
+			</view>
+		</view>
+		<view class="item-box u-flex u-col-center u-row-between">
+			<text class="text1" style="flex: 1;">身高</text>
+			<view class=" u-flex">
+				<input type="text" v-model='info.height' style="text-align: right;">
+				<text class="text_50">cm</text>
+				<!-- {{info.height}}cm<u-icon name="arrow-right"></u-icon> -->
+			</view>
+		</view>
+		<view class="item-box u-flex u-col-center u-row-between">
+			<text class="text1" style="flex: 1;">体重</text>
+			<view class=" u-flex">
+				<input type="text" v-model='info.weight' style="text-align: right;">
+				<text class="text_50">kg</text>
+			</view>
+		</view>
+		<view class="item-box u-flex u-col-center u-row-between">
+			<text class="text1" style="flex: 1;">学历</text>
+			<view class=" u-flex"  @click="showEducation=true">
+				<text class="text_50">{{info.education}}</text>
+				<u-icon name="arrow-right"></u-icon>
+				</view>
+		</view>
+		<view class="item-box u-flex u-col-center u-row-between">
+			<text class="text1" style="flex: 1;">月收入</text>
+			<view class=" u-flex">
+				<input type="text" v-model='info.income' style="text-align: right;">
+			</view>
+		</view>
+		<view class="item-box u-flex u-col-center u-row-between">
+			<text class="text1" style="flex: 1;">工作地区</text>
+			<view class=" u-flex">
+				<AddressPicker  @change="change" :level="3">{{info.address}} </AddressPicker>
+				<u-icon name="arrow-right"></u-icon>
+				
+			</view>
+		</view>
+		<view class="publish" @click="storage">
+			保存
+		</view>
+		<u-picker :show="showEducation" @cancel='showEducation=false' title="学历" ref="uPicker" :columns="educationcolumns" @confirm="confirmEducation">
+		</u-picker>
+		<u-picker :show="showage" @cancel='showage=false' title="年龄" ref="uPicker" :columns="columns" @confirm="confirm" @change="changeHandler">
+		</u-picker>
+	</view>
+</template>
+
+<script>
+	import AddressPicker from "@/components/lingdang-AddressPicker/AddressPicker.vue"
+	export default {
+		components: {
+			AddressPicker
+		},
+		onLoad() {
+			this.getInfo()
+			var list=this.columns[0]
+			var list1=this.columns[1] 
+			for( let i=1;i<66;i++){
+				if(list[list.length-1]<65){
+					list.push(list[0]+i)
+					list1.push(list1[0]+i)
+				}
+			}
+		},
+		data() {
+			return {
+				showage:false,
+				info:{},
+				showEducation:false,
+				educationcolumns:[['高中','大专','本科','硕士','博士']],
+				columns: [
+					[18],
+					[18]
+				],
+			}
+		},
+		methods: {
+			storage(){
+				var data={
+					age_min:this.info.age_min,
+					age_max:this.info.age_max,
+					height:this.info.height,
+					weight:this.info.weight,
+					income:this.info.income,
+					province_id:this.info.province_id,
+					city_id:this.info.city_id,
+					area_id:this.info.area_id,
+					education:this.info.education
+				}
+				uni.$u.http.post('/api/user/appeals',data).then(res => {
+					if(res.code==1){
+						this.$u.toast(res.msg)
+					}
+				})
+			},
+			confirm(e) {
+				this.info.age_min=e.value[0]
+				this.info.age_max=e.value[1]
+				this.showage = false
+			},
+			changeHandler(e) {
+				const {
+					columnIndex,
+					value,
+					values, // values为当前变化列的数组内容
+					index,
+					// 微信小程序无法将picker实例传出来,只能通过ref操作
+					picker = this.$refs.uPicker
+				} = e
+				// 当第一列值发生变化时,变化第二列(后一列)对应的选项
+				if (columnIndex === 0) {
+					this.columns[1]=[...this.columns[0]]
+					
+					// picker为选择器this实例,变化第二列对应的选项
+					// picker.setColumnValues(1, this.columnData[index])
+					this.columns[1].splice(0,index)
+					this.$set(this.columns,1,this.columns[1])
+					
+					
+				}
+			},
+			change(result) {
+					this.info.province_id=result.data[0].id
+					this.info.city_id=result.data[1].id
+					this.info.area_id=result.data[2].id
+				this.info.address = '';
+				result.data.forEach((item, index) => {
+					if (index === 0) {
+						this.info.address += item.name
+					} else {
+						this.info.address += '-' + item.name
+					}
+				});
+				let arr = this.info.address.split('-');
+			},
+			confirmEducation(e){
+				this.info.education=e.value[0]
+				this.showEducation=false
+			},
+			getInfo(){
+				uni.$u.http.post('/api/user/show_appeals').then(res => {
+					if(res.code==1){
+						this.info=res.data
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.publish{
+		position: fixed;
+		bottom: 84rpx;
+		left: 50rpx;
+		right: 50rpx;
+		margin: 0 auto;
+		width: 650rpx;
+		height: 104rpx;
+		line-height: 104rpx;
+		text-align: center;
+		background: linear-gradient(270deg, #A890FE 0%, #FFAEAE 100%);
+		border-radius: 52rpx;
+		font-size: 36rpx;
+		color: #fff;
+		
+	}
+	.item-box {
+		background-color: #fff;
+		padding: 30rpx 36rpx;
+	
+		.text1 {
+			white-space: nowrap;
+			font-size: 28rpx;
+			font-family: SF Pro;
+			font-weight: 500;
+			color: #333333;
+		}
+	
+		image {
+			width: 116rpx;
+			height: 116rpx;
+			border-radius: 100rpx;
+		}
+	
+		input {
+			flex: 1;
+			text-align: right;
+		}
+	}
+.title{
+	font-size: 30rpx;
+	color: #222222;
+	font-weight: 600;
+}
+</style>

+ 102 - 0
pages/profile/zhuxiao.vue

@@ -0,0 +1,102 @@
+<template>
+	<view>
+		 <view class="info">
+		 	<view class="title">
+		 		请告诉我们注销账号的原因
+		 	</view>
+			<view class="item-box u-flex u-col-center u-row-between" @click="zhuxiao">
+				<text class="text1" style="flex: 1;">重新注册/换绑手机号</text>
+				<u-icon name="arrow-right"></u-icon>
+			</view>
+			<view class="item-box u-flex u-col-center u-row-between"  @click="zhuxiao">
+				<text class="text1" style="flex: 1;">找到伴侣不再使用了</text>
+				<u-icon name="arrow-right"></u-icon>
+			</view>
+			<view class="item-box u-flex u-col-center u-row-between"  @click="zhuxiao">
+				<text class="text1" style="flex: 1;">其他原因</text>
+				<u-icon name="arrow-right"></u-icon>
+			</view>
+		 </view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			zhuxiao(){
+				var that=this
+				uni.showModal({
+					title: '账号注销提醒',
+					content: '账号注销无法恢复,请谨慎操作',
+					cancelColor:'#B1B1B1',
+					cancelText:'确定注销',
+					confirmColor:'#A890FE',
+					confirmText:'我再想想',
+					success: function (res) {
+						if (res.confirm) {
+							console.log('用户点击取消');
+						} else if (res.cancel) {
+							uni.$u.http.post('/api/user/user_cancellation').then(res => {
+								if(res.code==1){
+									that.$u.toast(res.msg)
+									setTimeout(()=>{
+										uni.clearStorageSync();
+										uni.navigateTo({
+											url:'./login'
+										})
+									},2000)
+							
+								}
+							})
+						}
+					}
+				});
+
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.item-box {
+		background-color: #fff;
+		padding: 30rpx 36rpx;
+	
+		.text1 {
+			font-size: 28rpx;
+			font-family: SF Pro;
+			font-weight: 500;
+			color: #444;
+		}
+	
+		image {
+			width: 116rpx;
+			height: 116rpx;
+			border-radius: 100rpx;
+		}
+	
+		input {
+			flex: 1;
+			text-align: right;
+		}
+	}
+	page{
+		background-color: #F3F3F3;
+	}
+.info{
+	background-color: #fff;
+	padding: 0 50rpx;
+	.title{
+		font-size: 20rpx;
+		color: #888888;
+		height: 72rpx;
+		line-height: 72rpx;
+		border-bottom: 2rpx solid #F2F2F2;
+	}
+}
+</style>

+ 66 - 0
pages/profile/zixunList.vue

@@ -0,0 +1,66 @@
+<template>
+	<view>
+		<view class="" style="width: 690rpx;
+height: 248rpx;
+background: #FFFFFF;
+border-radius: 28rpx;margin: 0 auto 20rpx;padding: 24rpx 20rpx;box-sizing: border-box;">
+		<view class="content" style="max-height: 130rpx;">
+			我和对象到了谈婚论嫁的地步,但是因为彩礼谈崩了分手,之前我也找了其他的,都是我在学习后没太大作用,当时也没抱太大希望,就试试看的…
+		</view>
+		<view class="u-flex u-row-between" style="margin-top: 20rpx;">
+			<text style="font-size: 24rpx;color: #888888;">2022-08-12</text>
+			<view class="" style="width: 144rpx;
+height: 52rpx;
+border-radius: 26rpx;
+border: 1px solid #979797;line-height: 52rpx;text-align: center;" @click="delectItem">
+				删除
+			</view>
+		</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			delectItem(){
+				uni.showModal({
+					title: '提示',
+					content: '确定要删除吗',
+					success: function (res) {
+						if (res.confirm) {
+							console.log('用户点击确定');
+						} else if (res.cancel) {
+							console.log('用户点击取消');
+						}
+					}
+				});
+
+			}
+		}
+	}
+</script>
+
+<style>
+page{
+background: #F3F3F3;
+}
+.content{
+	                 /* height: 100px; 如果设置了高度,且高度超过文本显示行数,在第三行会正常出现省略号,但是三行之后的仍然正常显示*/
+	                 /* 设置高度是行高的倍数,防止文本露出一半 */
+	                 /* 旧版弹性盒 */
+	                 display: -webkit-box;
+	                 /* 弹性盒子元素垂直排列 */
+	                 -webkit-box-orient: vertical;
+	                 /* 控制要显示的行数 */
+	                 -webkit-line-clamp: 3;
+	                 overflow: hidden;
+
+}
+
+</style>

BIN
static/activity/1.png


BIN
static/activity/2.png


BIN
static/activity/bmz@2x.png


BIN
static/activity/count@2x.png


BIN
static/activity/doing.png


BIN
static/activity/doing@2x.png


BIN
static/activity/end@2x.png


BIN
static/activity/fill@2x.png


BIN
static/activity/have.png


BIN
static/activity/history.png


BIN
static/activity/share@2x.png


BIN
static/activity/status@2x.png


BIN
static/activity/success.png


BIN
static/activity/weirenzheng.png


BIN
static/activity/yugao.png


BIN
static/auth/1@2x.png


BIN
static/auth/2@2x.png


BIN
static/auth/3@2x.png


BIN
static/auth/4@2x.png


BIN
static/auth/5@2x.png


BIN
static/auth/add.png


BIN
static/auth/error@2x.png


BIN
static/auth/shenhe@2x.png


BIN
static/auth/succes@2x.png


BIN
static/bg.png


BIN
static/forum/1@2x.png


BIN
static/forum/2@2x.png


BIN
static/forum/3@2x.png


BIN
static/forum/4@2x.png


BIN
static/forum/5@2x.png


BIN
static/forum/add.png


BIN
static/forum/more.png


BIN
static/forum/publish.png


BIN
static/forum/weirenzheng.png


BIN
static/icon/10@2x.png


BIN
static/icon/1@2x.png


BIN
static/icon/2@2x.png


BIN
static/icon/3@2x.png


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