unknown 2 years ago
parent
commit
53730cea61

+ 385 - 0
pages/login/login.vue

@@ -0,0 +1,385 @@
+<template>
+	<view class="container">
+		<view class="head">
+			<view class="head-image">
+				<image :src="defaultavatarUrl" mode="" style="border-radius: 50%; width: 100%;height: 100%;"></image>
+			</view>
+			<view class="head-text">
+				<p style="font-weight:bold;font-size: 35rpx;padding-bottom: 20rpx;">样叽</p>
+				<p style="font-weight:bold;font-size: 35rpx;">YounGee</p>
+			</view>
+		</view>
+		<view class="body">
+			<button class="login-btn" @click="toggle('bottom')">微信授权</button>
+			<button class="exit-btn" @click="exit()">取消登录</button>
+			<view class="xieyi">
+				<uni-data-checkbox multiple class="xieyi-btn" v-model="value" :localdata="range" @change="select">
+				</uni-data-checkbox>
+				<p class="xieyi-read">阅读并同意</p>
+				<a class="xieyi-content" src="">《用户协议及隐私政策》</a>
+			</view>
+		</view>
+		<view>
+			<!-- 底部普通弹窗 -->
+			<uni-popup ref="popup" background-color="#fff" @change="change" style="border-radius: 20rpx;">
+				<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }"
+					style="    ">
+					<view class=""
+						style="width: 90%; margin: 0 auto; margin-top: 10% !important;margin-bottom: 10% !important;">
+						<view class="Tasktext">
+							<image :src="picture.task15" mode=""></image>
+							<span>YoungGee申请使用</span>
+						</view>
+						<view class="">
+							<h5>你的微信头像、昵称、地区及性别信息</h5>
+						</view>
+						<!-- 黑线 -->
+						<view class="" style="border-bottom: 2rpx solid #C0C0C0;margin-top: 3%;margin-bottom: 3%;">
+						</view>
+						<view class="" style="display: flex;justify-content:space-around;">
+
+							<image :src="picture.jpg7" mode="" style="width: 84rpx;height: 84rpx;border-radius: 10rpx;">
+							</image>
+							<view class="" style="width: 70%;">
+								<p style='color: #000000; font-size: 28rpx;'>昵称</p>
+								<p style='color: #999999; font-size: 24rpx;margin-top: 2%;'>微信个人信息</p>
+							</view>
+							<view class="" style="margin-top: 3%;">
+								<image :src="picture.png6" mode="" style="width: 32rpx;height: 22rpx;"></image>
+							</view>
+						</view>
+
+						<!-- 黑线 -->
+						<view class="" style="border-bottom: 2rpx solid #C0C0C0;margin-top: 3%;margin-bottom: 3%;">
+						</view>
+						<view class="butto" style="margin-top: 3%;">
+							<button class="mini-btn" size="mini" @tap="Reset"
+								style="background-color: #F2F2F2;color:#20AC19 ; margin-right: 5%;">拒绝</button>
+							<button class="mini-btn" size="mini" @tap="determine"
+								style="background-color: #20AC19;color:#F2F2F2 ;margin-left: 5%;">允许</button>
+						</view>
+					</view>
+				</view>
+			</uni-popup>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				value: 0,
+				range: [{
+					"value": 1,
+					"text": ""
+				}],
+				defaultavatarUrl: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/logoxin01.png',
+				picture: {
+					home8: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home8.png',
+					deng5: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/deng5.png',
+					deng1: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/deng1.png',
+					task15: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/task15.png',
+					jpg7: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/7.jpg',
+					png6: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/6.png'
+				},
+				type: 'center',
+				nickname: '',
+				gender: '',
+			};
+		},
+		onLoad() {},
+		methods: {
+
+			select() {
+				console.log(this.value)
+			},
+			//swiper滑动事件
+			swiperChange: function(e) {
+				this.swiper.index = e.detail.current;
+			},
+			//底部弹出层
+			change(e) {
+				console.log('当前模式:' + e.type + ',状态:' + e.show);
+			},
+
+			exit() {
+				uni.navigateBack()
+			},
+			toggle(type) {
+				//新版登录方式
+				if (this.value.length !== 1) {
+					uni.showToast({
+						title: '请先阅读并同意协议',
+						icon: 'none',
+						duration: 2000
+					});
+					return;
+				}
+				uni.getUserProfile({
+					desc: '登录',
+					success: (res) => {
+						//console.log(res);
+						console.log(res)
+						this.nickname = res.userInfo.nickName
+
+						this.gender = res.userInfo.gender
+						uni.setStorageSync('nickName', res.userInfo.nickName);
+						uni.setStorageSync('avatarUrl', res.userInfo.avatarUrl);
+						try {
+							this.login();
+
+						} catch (e) {}
+					},
+					fail: (res) => {
+						console.log(res)
+					}
+				});
+			},
+			// 获取手机号
+			onGetPhoneNumber(e) {
+				if (e.detail.errMsg == "getPhoneNumber:fail user deny") { //用户决绝授权  
+					//拒绝授权后弹出一些提示  
+				} else {
+					//允许授权  
+					console.log(e)
+					this.$refs.popup.open('bottom')
+					e.detail.encryptedData //加密的用户信息  
+					e.detail.iv //加密算法的初始向量  时要用到  
+				}
+			},
+			//登录
+			login() {
+				let _this = this;
+				// 获取登录用户code
+				uni.login({
+					provider: 'weixin',
+					onlyAuthorize: true,
+					success: function(res) {
+						// console.log(res);
+						if (res.code) {
+
+							let code = res.code;
+							_this.$https.post('/youngee/c/p/login', {
+									code: res.code, //wx.login 登录成功后的code 
+									gender: _this.gender,
+									nickname: _this.nickname
+								})
+								.then(res => {
+									if (res.data.code == -6) {
+										uni.showToast({
+											title: '您已被拉黑,请联系客服',
+											icon: 'none',
+											duration: 2000
+										});
+									} else {
+										console.log(res)
+										uni.setStorageSync('token', res.data.data.token);
+										uni.setStorageSync('cookie', res.header['Set-Cookie']);
+										uni.navigateBack()
+									}
+								})
+							// uni.request({
+							// 	url: 'http://localhost:8199/youngee/c/p/login', //演示地址,请以你的后端接口为准  
+							// 	method: 'POST',
+							// 	data: {
+							// 		code: res.code, //wx.login 登录成功后的code 
+							// 		gender: _this.gender,
+							// 		nickname: _this.nickname
+							// 	},
+							// 	success: (cts) => {
+							// 		if (cts.data.code == -6) {
+							// 			uni.showToast({
+							// 				title: '您已被拉黑,请联系客服',
+							// 				icon: 'none',
+							// 				duration: 2000
+							// 			});
+							// 		} else {
+
+							// 			console.log(cts)
+							// 			uni.setStorageSync('token', cts.data.data.token);
+							// 			uni.setStorageSync('cookie', cts.header['Set-Cookie']);
+							// 			uni.navigateBack()
+							// 		}
+							// 	}
+							// });
+						} else {
+							uni.showToast({
+								title: '登录失败!',
+								duration: 2000
+							});
+							console.log('登录失败!' + res.errMsg)
+						}
+					}
+				});
+			},
+			determine() {
+				uni.showToast({
+					title: "登录成功",
+					duration: 1000,
+				});
+				this.$refs.popup.close()
+			},
+			xieyi() {
+				console.log('进入协议')
+			},
+		}
+	}
+</script>
+<style>
+	.content {
+		border-radius: 20rpx 20rpx 0 0 !important;
+	}
+</style>
+<style lang="scss" scoped>
+	.head {
+		display: flex;
+		align-items: center;
+		/* 垂直居中 */
+		height: 200rpx;
+		margin-top: 30%;
+		margin-bottom: 20%;
+	}
+
+	.head-image {
+		display: inline-block;
+		margin: 0 50rpx 0 150rpx;
+		width: 160rpx;
+		height: 160rpx;
+		background-color: #F0D232;
+		border-radius: 50%;
+	}
+
+	.login-btn {
+		margin: 30rpx;
+		font-size: 35rpx;
+		background-color: #F0D232;
+		border: none;
+		border-radius: 0;
+	}
+
+	.exit-btn {
+		margin: 30rpx;
+		font-size: 35rpx;
+		border: 1rpx solid #000000;
+		border-radius: 0;
+	}
+
+	.xieyi {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.xieyi-btn {
+		width: 40rpx;
+		display: inline-block;
+		font-size: 25rpx;
+	}
+
+	.xieyi-content {
+		display: inline-block;
+		font-size: 25rpx;
+	}
+
+	.xieyi-read {
+		display: inline-block;
+		font-size: 25rpx;
+	}
+
+	/deep/ .content {
+		border-radius: 20rpx 20rpx 0 0 !important;
+	}
+
+	.Tasktext {
+		// padding-top: 5%;
+		padding: 0 0 0 1%;
+		height: 80rpx;
+	}
+
+	.Tasktext span {
+		color: #333333;
+		font-size: 40%;
+		font-weight: 550;
+		text-indent: 2em;
+
+	}
+
+	.TitleText1 p {
+		color: #333333;
+		font-size: 50%;
+
+	}
+
+	.Tasktext {
+		// height: 70rpx;
+	}
+
+	.Tasktext image {
+		vertical-align: middle;
+		width: 50rpx;
+		height: 50rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.butto {
+		text-align: center;
+	}
+
+	.mini-btn {
+		height: 55rpx;
+		width: 150rpx;
+		line-height: 55rpx;
+		margin: 30rpx;
+	}
+
+	.diagram {
+		padding-top: 30%;
+	}
+
+	.but {
+		width: 80%;
+		height: 60rpx;
+		background-color: #FFD700;
+		border-radius: 30rpx;
+		border: 6rpx solid #0C0A03;
+		text-align: center;
+		line-height: 60rpx;
+		margin: 0 auto;
+		position: relative;
+		font-size: 30rpx;
+		font-weight: 550;
+		letter-spacing: 7px;
+	}
+
+	.but span {
+		font-size: 30rpx;
+		font-weight: 550;
+		letter-spacing: 7px;
+	}
+
+	.bei {
+		// position: relative;
+	}
+
+	.mark {
+		position: absolute;
+		width: 8rpx;
+		height: 8rpx;
+		border: 2rpx solid #0C0A03;
+		border-radius: 20px;
+		background-color: #1E90FF;
+
+	}
+
+	.butt {
+		text-align: center;
+		padding-top: 10rpx;
+	}
+
+	.butt span {
+		font-size: 24rpx;
+		color: #969696;
+	}
+</style>

+ 841 - 0
pages/mycenter/addlocation.vue

@@ -0,0 +1,841 @@
+<template>
+	<view style="position: relative;">
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view style="height: 180rpx;width: 100%; position: fixed;background-color: #FFFFFF;top: 0;z-index: 8;">
+		</view>
+		<view class="menu">
+			<view class="menu-item" @click="topersoninfo()">
+				<p>个人资料</p>
+			</view>
+			<view class="menu-item">
+				<p class='lor'>收货地址</p>
+			</view>
+			<view class="menu-item" @click="tomyaccount()">
+				<p>社媒账号</p>
+			</view>
+			<view class="menu-item" @click="tomybank()">
+				<p>提现绑定</p>
+			</view>
+		</view>
+		<view style="padding-top: 260rpx;width: 97%;">
+			<!-- 修改个人信息完善 -->
+			<view style="margin: 0 20rpx;">
+				<uni-forms :rules="rules" :modelValue="formData" ref="form" validate-trigger="bind"
+					err-show-type="undertext">
+					<uni-forms-item name="name" required label="收件人">
+						<uni-easyinput type="text" :inputBorder="true" v-model="formData.name" placeholder="请输入收件人">
+						</uni-easyinput>
+					</uni-forms-item>
+					<uni-forms-item name="phone" required label="联系电话">
+						<uni-easyinput type="number" maxlength="11" :inputBorder="true" v-model="formData.phone"
+							placeholder="请输入联系电话">
+						</uni-easyinput>
+					</uni-forms-item>
+
+					<uni-forms-item name="fregion" required label="所在地区">
+						<picker class="picker" mode="multiSelector" :range="region" range-key="name"
+							:value="regionIndex" @change="pickerChange" @columnchange="pickerColumnchange">
+							<view class="pbox" :class="{'pbox_hover':regionStr != '请选择省市区'}">
+								<view>{{regionStr}}</view>
+								<text class="iconfont icon-you"></text>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item name="detailregion" required label="详细地址">
+						<uni-easyinput type="text" :inputBorder="true" v-model="formData.detailregion"
+							placeholder="请输入详细地址(省/市/县/镇/)">
+						</uni-easyinput>
+					</uni-forms-item>
+					<uni-forms-item name="mail_code" required label="邮政编码">
+						<uni-easyinput type="text" :inputBorder="true" v-model="formData.mail_code" placeholder="邮政编码">
+						</uni-easyinput>
+					</uni-forms-item>
+					</uni-group>
+				</uni-forms>
+				<view class="setdeault" v-if="ismodify == '0'">
+					<view class="setdeault-text">设为默认收货地址</view>
+					<switch style='zoom:.8;' @change="setDefault" />
+				</view>
+				<button class="btn1" @click="submitForm('form')">保存</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import region from '@/components/pca-code.json';
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	export default {
+		components: {
+			mvBar,
+		},
+		data() {
+			return {
+				ismodify: '',
+				// 地区原数组
+				oldRegion: region,
+				// 处理后的数组
+				region: [
+					[],
+					[],
+					[]
+				],
+				// 选择省市区的下标Index  传则默认选中传递的
+				regionIndex: [0, 0, 0],
+				regionStr: '请选择省市区',
+
+				mysNavConfig: {
+					/* 开启单页显示首页图标 */
+					isHome: true,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "我的信息",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "normal", // 100 - 700
+					},
+					btnType: "type2",
+					onLeftClick: '',
+					/* type2 按钮 */
+					type2Config: {
+						// 左图标
+						leftPath: "/static/img/png2.png",
+						// 右图标
+						rightPath: "/static/img/png4.png",
+						// 圆角
+						radius: "40rpx",
+					},
+				},
+				formData: {
+					name: '',
+					phone: '',
+					detailregion: '',
+					fregion: '',
+					mail_code: '',
+					setdefault: false,
+				},
+				index: 0,
+				index1: 0,
+				data: {},
+				show: false,
+				rules: {
+					mail_code: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入邮政编码'
+						}, ]
+					},
+					detailregion: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入详细地址'
+						}, ]
+					},
+					name: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入收件人'
+						}, ]
+					},
+					phone: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入联系电话',
+						}, ]
+					},
+					fregion: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择所在地区'
+						}, ]
+					},
+				},
+				address_id: '',
+			};
+		},
+		onLoad() {
+			uni.showLoading()
+			setTimeout(() => {
+				this.formData = {
+					name: '',
+					phone: '',
+					detailregion: '',
+					fregion: '',
+				}
+				uni.hideLoading()
+			}, 500)
+		},
+		onReady() {
+			this.$refs.form.setRules(this.rules)
+		},
+		onShow() {
+			if (this.ismodify == '1')
+				this.getDetailAddress()
+		},
+		onLoad(options) {
+			console.log(options)
+			this.ismodify = options.ismodify
+			// 传过来的id
+			if (this.ismodify == '1')
+				this.address_id = options.address_id
+		},
+		methods: {
+			tomybank() {
+				uni.navigateTo({
+					url: './mybank'
+				});
+			},
+			topersoninfo() {
+				uni.navigateTo({
+					url: './personinfo'
+				});
+			},
+			tomyaccount() {
+				uni.navigateTo({
+					url: './myaccount'
+				});
+			},
+			setDefault(e) {
+				console.log(e.detail.value)
+				if (e.detail.value)
+					this.formData.setdefault = 1
+				else
+					this.formData.setdefault = 0
+			},
+			getDetailAddress() {
+				this.$https.get('/youngee/c/t/g/get-single-address' +
+						"?" +
+						"address_id" +
+						"=" +
+						this.address_id)
+					.then(res => {
+						console.log(res)
+						this.formData.name = res.data.data.receiver_name
+						this.formData.phone = res.data.data.phone_number
+						this.formData.detailregion = res.data.data.detail_addr
+						this.formData.fregion = res.data.data.region_code
+						this.formData.mail_code = res.data.data.mail_code
+						let a = res.data.data.region_code.toString().slice(0, 2)
+						let b = res.data.data.region_code.toString().slice(0, 4)
+						let c = 0
+						for (var i = 0; i < region.length; i++) {
+							if (region[i].code == a) {
+								a = region[i].name
+								for (var j = 0; j < region[i].children.length; j++) {
+									if (region[i].children[j].code == b) {
+										b = region[i].children[j].name
+										for (var o = 0; o < region[i].children[j].children.length; o++) {
+											if (region[i].children[j].children[o].code == res.data.data.region_code) {
+												c = region[i].children[j].children[o].name
+											}
+										}
+									}
+
+								}
+							}
+						}
+						this.regionStr = a + ' ' + b + ' ' + c
+					})
+			},
+
+			/**
+			 * 手动提交
+			 * @param {Object} form
+			 */
+			submitForm(form) {
+				// console.log(this.formData);
+				this.$refs.form.validate().then(res => {
+
+					const iphoneReg1 = /^1[0-9]{10}$/
+					const mailReg = /\d{6}/
+					if (!iphoneReg1.test(this.formData.phone)) {
+						uni.showToast({
+							title: '电话号码格式不正确',
+							icon: 'none'
+						})
+						return
+					}
+					if (!mailReg.test(this.formData.mail_code)) {
+						uni.showToast({
+							title: '邮政编码格式不正确',
+							icon: 'none'
+						})
+						return
+					}
+					uni.showToast({
+						title: '提交成功'
+					})
+					if (this.ismodify == '1') {
+						this.$https.post('/youngee/c/t/p/update-talent-address', {
+								address_id: this.address_id,
+								region_code: this.formData.fregion,
+								detail_addr: this.formData.detailregion,
+								phone_number: this.formData.phone,
+								receiver_name: this.formData.name,
+								mail_code: this.formData.mail_code,
+							})
+							.then(res => {
+								console.log(res)
+								uni.navigateBack()
+							})
+					} else {
+						this.$https.post('/youngee/c/t/p/add-talent-address', {
+								region_code: this.formData.fregion,
+								detail_addr: this.formData.detailregion,
+								phone_number: this.formData.phone,
+								receiver_name: this.formData.name,
+								mail_code: this.formData.mail_code,
+								default_tag: this.formData.setdefault
+							})
+							.then(res => {
+								console.log(res)
+								uni.navigateBack()
+							})
+					}
+				}).catch(err => {
+					console.error('验证失败:', errors)
+					uni.showToast({
+						title: '请填写所有信息',
+						icon: 'none'
+					})
+				})
+			},
+			//城市选择
+			pickerChange(e) {
+				// console.log(e, '1');
+				this.regionIndex = e.detail.value;
+				this.regionStr = this.region[0][this.regionIndex[0]].name + ' ' + this.region[1][this.regionIndex[1]]
+					.name + ' ' +
+					this.region[2][this.regionIndex[2]].name;
+
+				// 组件传值
+				this.$emit('region', [this.region[0][this.regionIndex[0]].code, this.region[1][this.regionIndex[1]].code,
+					this.region[
+						2][this.regionIndex[2]].code
+				]);
+				this.formData.fregion = this.region[2][this.regionIndex[2]].code;
+				console.log(this.formData.fregion)
+			},
+			pickerColumnchange(e) {
+				if (e.detail.column === 0) {
+					// 声明城市数组
+					let cityArr = [];
+					let countyArr = [];
+					// 设置下标
+					this.regionIndex = [e.detail.value, 0, 0];
+					// 改变城市列表
+					this.region[1] = this.oldRegion[e.detail.value].children.map(item => {
+						cityArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 1, cityArr);
+					// 改变县区列表
+					this.oldRegion[e.detail.value].children[0].children.map(item => {
+						countyArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 2, countyArr);
+				}
+				if (e.detail.column === 1) {
+					this.regionIndex[1] = e.detail.value;
+					this.regionIndex[2] = 0;
+					let countyArr = [];
+					this.oldRegion[this.regionIndex[0]].children[this.regionIndex[1]].children.map(item => {
+						countyArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 2, countyArr);
+				}
+				if (e.detail.column === 2) {
+					this.regionIndex[2] = e.detail.value;
+				}
+			}
+		},
+		created() {
+			let provinceArr = [];
+			let cityArr = [];
+			this.oldRegion.map((item, index) => {
+				this.region[0].push({
+					name: item.name,
+					code: item.code
+				});
+				if (this.previnceId == item.code) {
+					provinceArr = item.children;
+					this.regionIndex[0] = index;
+				}
+			})
+			// console.log(provinceArr);
+			provinceArr.map((item, index) => {
+				this.region[1].push({
+					name: item.name,
+					code: item.code
+				});
+				if (this.cityId == item.code) {
+					cityArr = item.children;
+					this.regionIndex[1] = index;
+				}
+			})
+			cityArr.map((item, index) => {
+				this.region[2].push({
+					name: item.name,
+					code: item.code
+				});
+				if (this.countyId == item.code)
+					this.regionIndex[2] = index;
+			})
+			if (this.isRevise)
+				this.regionStr = this.region[0][this.regionIndex[0]].name + ' ' + this.region[1][this.regionIndex[1]]
+				.name + ' ' + this.region[2][this.regionIndex[2]].name;
+			else
+				this.regionStr = '请选择省市区';
+		}
+	};
+</script>
+<style>
+	picker {
+		position: relative;
+		display: block;
+		cursor: pointer;
+		padding-left: 20rpx !important;
+		padding-top: 14rpx !important;
+		color: grey !important;
+	}
+
+	/deep/.uni-forms-item__inner {
+		border-bottom: none !important;
+		margin-bottom: 0 !important;
+	}
+</style>
+<style lang="scss" scoped>
+	@charset "UTF-8";
+
+	/* 头条小程序组件内不能引入字体 */
+	/* #ifdef MP-TOUTIAO */
+	@font-face {
+		font-family: uniicons;
+		font-weight: normal;
+		font-style: normal;
+		src: url("~@/static/uni.ttf") format("truetype");
+	}
+
+	/* #endif */
+	/* #ifndef APP-NVUE */
+
+	page {
+		display: flex;
+		flex-direction: column;
+		box-sizing: border-box;
+		background-color: #FFFFFF;
+		min-height: 100%;
+		height: auto;
+	}
+
+	view {
+		font-size: 14px;
+		line-height: inherit;
+	}
+
+
+	.menu {
+		position: fixed;
+		top: 180rpx;
+		background-color: #FFFFFF;
+		justify-content: space-around;
+		height: 5%;
+		width: 100%;
+		display: flex;
+		z-index: 10;
+		margin-bottom: 10rpx;
+	}
+
+	.menu-item p {
+		font-weight: 600;
+		font-size: 90%;
+
+		&.lor {
+			border-bottom: 5rpx solid #F0D232;
+			color: #F0D232;
+			padding-bottom: 15rpx;
+		}
+	}
+
+	.setdeault {
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.btn1 {
+		margin: 30rpx;
+		font-size: 35rpx;
+		color: #FFFFFF;
+		background-color: #F0D232;
+		border: none;
+		border-radius: 0;
+	}
+
+
+
+	.example {
+		padding: 0 15px 15px;
+	}
+
+	.example-info {
+		padding: 15px;
+		color: #3b4144;
+		background: #ffffff;
+	}
+
+	.example-body {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		flex-wrap: wrap;
+		justify-content: center;
+		padding: 0;
+		font-size: 14px;
+		background-color: #ffffff;
+	}
+
+	/* #endif */
+	.example {
+		padding: 0 15px;
+	}
+
+	.example-info {
+		/* #ifndef APP-NVUE */
+		display: block;
+		/* #endif */
+		padding: 15px;
+		color: #3b4144;
+		background-color: #ffffff;
+		font-size: 14px;
+		line-height: 20px;
+	}
+
+	.example-info-text {
+		font-size: 14px;
+		line-height: 20px;
+		color: #3b4144;
+	}
+
+	.example-body {
+		flex-direction: column;
+		padding: 15px;
+		background-color: #ffffff;
+	}
+
+	.word-btn-white {
+		font-size: 18px;
+		color: #FFFFFF;
+	}
+
+	.word-btn {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		border-radius: 6px;
+		height: 48px;
+		margin: 15px;
+		background-color: #007AFF;
+	}
+
+	.word-btn--hover {
+		background-color: #4ca2ff;
+	}
+
+	.example {
+		padding: 0 10px 10px;
+	}
+
+	.uni-input-border,
+	.uni-textarea-border {
+		flex: 1;
+		font-size: 14px;
+		color: #666;
+		border: 1px #FFFFFF solid;
+		border-radius: 5px;
+		/* #ifndef APP-NVUE */
+		box-sizing: border-box;
+		/* #endif */
+	}
+
+	.uni-input-border {
+		padding: 0 10px;
+		height: 35px;
+	}
+
+	.uni-textarea-border {
+		padding: 10px;
+		height: 80px;
+	}
+
+	.label-box {
+		margin-right: 10px;
+	}
+
+	.transform-scale {
+		transform: scale(0.7);
+	}
+
+	.butto {
+		text-align: center;
+	}
+
+	.option {
+		padding: 20rpx;
+	}
+
+	.uni-margin-wrap {
+		width: 690rpx;
+		width: 100%;
+		;
+	}
+
+	.swiper {
+		height: 300rpx;
+	}
+
+	.swiper-item {
+		display: block;
+		height: 300rpx;
+		line-height: 300rpx;
+		text-align: center;
+	}
+
+	.swiper-list {
+		margin-top: 40rpx;
+		margin-bottom: 0;
+	}
+
+	.uni-common-mt {
+		margin-top: 60rpx;
+		position: relative;
+	}
+
+	.info {
+		position: absolute;
+		right: 20rpx;
+	}
+
+	.uni-padding-wrap {
+		width: 550rpx;
+		padding: 0 100rpx;
+	}
+
+	.signup {
+		box-shadow: 0rpx 5rpx 40rpx #ccc;
+		width: 100%;
+		position: fixed;
+		bottom: 0rpx;
+		display: flex;
+		height: 90rpx;
+		padding-top: 2%;
+		background-color: #FFFFFF;
+		justify-content: space-around;
+	}
+
+	.signuptext {
+		text-align: center;
+		margin-top: 2%;
+
+	}
+
+	.signuptext p {
+		font-size: 60%;
+		color: #333333;
+	}
+
+	.signupbut {
+		text-align: center;
+		margin-top: 2%;
+	}
+
+	.but1 {
+		width: 120%;
+		text-align: center;
+		background-color: #FCCF41;
+		border-radius: 10rpx;
+		color: #464100;
+		font-size: 28rpx;
+		line-height: 156%;
+
+		font-weight: 500;
+		height: 65%;
+	}
+
+	/deep/.uni-searchbar__box {
+		border-color: #267CFF !important;
+		border-width: 2rpx !important;
+	}
+
+	/deep/.uni-searchbar__box {
+		background-color: #FFFFFF !important;
+	}
+
+	/deep/.uni-searchbar__text-placeholder {
+		font-size: 30rpx !important;
+	}
+
+	/deep/.segmented-control__text {
+		font-size: 34rpx !important;
+	}
+
+	/deep/.uni-data-checklist {
+		padding-left: 20upx;
+	}
+
+	uni-picker {
+		position: relative;
+		display: block;
+		cursor: pointer;
+		padding-left: 20rpx !important;
+		padding-top: 14rpx !important;
+		color: grey !important;
+	}
+
+	/deep/.uni-date-x--border {
+		border: 0px solid #dcdfe6 !important;
+	}
+
+	/deep/.is-input-border {
+		border: 0px solid #c8c7cc !important;
+	}
+
+	/deep/.uni-progress-info {
+		font-size: 25rpx !important;
+	}
+
+	/deep/.uni-error-message {
+		position: absolute;
+		bottom: -20rpx !important;
+		left: 20rpx !important;
+		text-align: left;
+	}
+
+	/deep/.uni-forms-item__inner {
+		padding-bottom: 0rpx !important;
+		margin-bottom: 30rpx !important;
+		border-bottom: 0.5rpx solid #CCCCCC;
+	}
+
+	/deep/.uni-group__title {
+		background-color: #FFFFFF !important;
+	}
+
+	/deep/.uni-list-item__content-title {
+		font-size: 30rpx !important;
+		color: #111111 !important;
+	}
+
+	/deep/.uni-progress-bar {
+		border-radius: 10rpx !important;
+	}
+
+	/deep/.uni-progress-inner-bar {
+		border-radius: 10rpx !important;
+	}
+
+
+	/deep/.is-input-border {
+		border-radius: 20px !important;
+		background-color: #fff;
+	}
+
+	.uni-easyinput__content-input {
+		font-size: 30upx !important;
+	}
+
+	.content-clear-icon {
+		font-size: 40upx !important;
+	}
+
+	/deep/.input-box {
+		padding: 50upx;
+		font-size: 30upx;
+
+		.input-item {
+			display: flex;
+
+			border: 1upx solid #F8F8F8;
+			line-height: 90upx;
+			height: 90upx;
+			margin-top: 20upx;
+			background: #F8F8F8;
+			border-radius: 48upx;
+
+			.input-label {
+				width: 150upx;
+				text-align: center;
+			}
+
+			.input-body {
+				position: relative;
+				height: 100upx;
+				width: calc(100% - 150upx);
+
+				.input {
+					line-height: 90upx;
+					height: 90upx;
+					position: relative;
+					font-size: 28upx;
+				}
+
+				.eye {
+					position: absolute;
+					height: 50upx;
+					width: 50upx;
+					right: 20upx;
+					top: 50%;
+					transform: translateY(-50%);
+				}
+
+				.btn-code {
+					position: absolute;
+					right: 0upx;
+					top: 50%;
+					transform: translateY(-50%);
+					background: none;
+					color: #205592;
+					width: 160upx;
+					font-size: 24upx;
+					box-sizing: border-box;
+					text-align: center;
+					padding: 0;
+					height: 100upx;
+					line-height: 100upx;
+				}
+			}
+		}
+
+		.select {
+			// padding-top: 40upx;
+			display: flex;
+			justify-content: space-between;
+			color: #003B67;
+		}
+	}
+
+	/deep/.title-left {
+		width: 3px;
+		height: 16px;
+		background: #267CFF;
+		display: inline-block;
+		border-radius: 3px;
+		margin-top: 3px;
+		vertical-align: top;
+		margin-right: 10px;
+	}
+</style>

+ 468 - 0
pages/mycenter/bindaccount.vue

@@ -0,0 +1,468 @@
+<template>
+	<view style="position: relative;">
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view class="home">
+			<view class="card">
+				<view class="head">
+					<image :src="platform.platform_icon" mode=""></image>
+					<span>{{platform.platform_name}}账号绑定</span>
+				</view>
+
+				<view class="body">
+					<view>
+						<uni-forms :rules="rules" :modelValue="formData" ref="form" validate-trigger="bind"
+							err-show-type="undertext">
+							<uni-forms-item name="name" required label="昵称">
+								<uni-easyinput type="text" v-model="formData.platform_nickname" placeholder="请填写账号昵称">
+								</uni-easyinput>
+							</uni-forms-item>
+							<uni-forms-item name="numberfans" required label="粉丝数">
+								<uni-easyinput type="number" v-model="formData.fans_count" placeholder="请填写粉丝数量">
+								</uni-easyinput>
+							</uni-forms-item>
+							<uni-forms-item name="home_link" required label=" " label-width='10'>
+								<uni-easyinput class="home-link" type="text" v-model="formData.home_page_url"
+									placeholder="请填写个人主页链接">
+								</uni-easyinput>
+							</uni-forms-item>
+							<view style="margin-top: 40rpx;">
+								<uni-forms-item name="home_img" required label="主页截图">
+									<htz-image-upload :max="1" mediaType="image" name="file" :chooseNum="1"
+										v-model="imageData" @chooseSuccess="ceshiChooseSuccess">
+									</htz-image-upload>
+								</uni-forms-item>
+
+							</view>
+						</uni-forms>
+						<view class="heng-line"></view>
+						<view style="display: flex;justify-content: space-around;align-items: center;">
+							<view class="signupbtn">
+								<button type="default" class="exit-btn" @click="exit()">取消</button>
+							</view>
+							<view class="signupbtn">
+								<button type="default" class="main-btn" @click="submitForm('form')">
+									提交绑定
+								</button>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	import htzImageUpload from '@/components/htz-image-upload/htz-image-upload.vue';
+	import getPolicyEncode from '@/components/obs/getPolicy.js';
+	import getSignature from '@/components/obs/GetSignature.js';
+	export default {
+		components: {
+			mvBar,
+			htzImageUpload,
+		},
+		data() {
+			return {
+				accountId: '',
+				platform: {
+					platform_id: '',
+					platform_name: '',
+					platform_icon: '',
+				},
+				isBind: true,
+				imageData: [],
+				formData: {
+					platform_nickname: '',
+					fans_count: '',
+					home_page_url: '',
+				},
+				rules: {
+					name: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入'
+						}, ]
+					},
+					numberfans: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入'
+						}, ]
+					},
+					home_link: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入'
+						}, ]
+					},
+					home_img: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入'
+						}, ]
+					},
+				},
+				mysNavConfig: {
+					/* 开启单页显示首页图标 */
+					isHome: true,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "我的信息",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "normal", // 100 - 700
+					},
+					btnType: "type2",
+					onLeftClick: '',
+					/* type2 按钮 */
+					type2Config: {
+						// 左图标
+						leftPath: "/static/img/png2.png",
+						// 右图标
+						rightPath: "/static/img/png4.png",
+						// 圆角
+						radius: "40rpx",
+					},
+				},
+
+			}
+		},
+		onReady() {
+			// this.$refs.form.setRules(this.rules)
+		},
+		onShow() {},
+		onLoad() {},
+		onLoad(options) {
+			this.platform.platform_id = parseInt(options.platform_id)
+			if (options.account_id) {
+				this.accountId = parseInt(options.account_id)
+				this.isBind = false
+			}
+			this.getinfo()
+		},
+		methods: {
+			// 默认信息表,获取平台logo
+			getinfo() {
+				this.$https.get('/youngee/c/g/get-info-tables')
+					.then(res => {
+						let list = res.data.data.ThirdPlatform
+						for (var i = 0; i < list.length; ++i) {
+							if (list[i].id == this.platform.platform_id) {
+								this.platform.platform_icon = list[i].platform_icon
+								this.platform.platform_name = list[i].platform_name
+							}
+						}
+						this.getaccount()
+					})
+			},
+
+			getaccount() {
+				console.log(this.isBind)
+				if (!this.isBind) {
+					this.$https.get('/youngee/c/t/g/get-talent-account')
+						.then(res => {
+							console.log(res)
+							if (res.data.code !== -3) {
+								this.account = res.data.data
+								for (var i = 0; i < this.account.length; i++) {
+									if (this.platform.platform_id == this.account[i].platform_id) {
+										this.formData.platform_nickname = this.account[i].platform_nickname
+										this.formData.fans_count = this.account[i].fans_count
+										this.formData.home_page_url = this.account[i].home_page_url
+										this.imageData.push(this.account[i].home_page_capture_url);
+									}
+								}
+							}
+						})
+				}
+			},
+			/**
+			 * 手动提交
+			 * @param {Object} form
+			 */
+			submitForm(form) {
+				const urlReg =
+					/(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&amp;%$#_]*)?/
+				if (!urlReg.test(this.formData.home_page_url)) {
+					uni.showToast({
+						title: '主页链接格式不正确',
+						icon: 'none'
+					})
+					return
+				}
+				let that = this
+				uni.showModal({
+					title: '提示',
+					content: '请保证账号信息的准确性和真实性',
+					success: function(res) {
+						if (res.confirm) {
+							that.$refs[form]
+								.submit()
+								.then(res => {
+									console.log('表单的值:', res)
+									that.formData.home_page_capture_url = that.imageData[0]
+									if (that.isBind) {
+										that.$https.post('/youngee/c/t/p/add-talent-account', {
+												platform_id: that.platform.platform_id,
+												platform_nickname: that.formData.platform_nickname,
+												home_page_url: that.formData.home_page_url,
+												fans_count: that.formData.fans_count,
+												home_page_capture_url: that.formData
+													.home_page_capture_url,
+											})
+											.then(res => {
+												console.log(res)
+												if (res.data.code == 0) {
+													uni.navigateBack()
+												} else {
+													let msg = res.data.msg
+													uni.showToast({
+														title: msg,
+														icon: 'none',
+														duration: 2000
+													});
+												}
+											})
+									} else {
+										that.$https.post('/youngee/c/t/p/update-talent-account', {
+												account_id: that.accountId,
+												platform_id: that.platform.platform_id,
+												platform_nickname: that.formData.platform_nickname,
+												home_page_url: that.formData.home_page_url,
+												fans_count: that.formData.fans_count,
+												home_page_capture_url: that.formData
+													.home_page_capture_url,
+											})
+											.then(res => {
+												console.log(res)
+												if (res.data.code == 0) {
+													uni.navigateBack()
+												} else {
+													let msg = res.data.msg
+													uni.showToast({
+														title: msg,
+														icon: 'none',
+														duration: 2000
+													});
+												}
+											})
+
+									}
+								})
+								.catch(errors => {
+									console.error('验证失败:', errors)
+									uni.showToast({
+										title: '请填写所有信息',
+										icon: 'none'
+									})
+								})
+						} else if (res.cancel) {
+							console.log('用户点击取消');
+						}
+					}
+				});
+			},
+			exit() {
+				uni.navigateBack()
+			},
+			ceshiChooseSuccess(tempFilePaths, e) { //选择图片返回
+				console.log('ceshiChooseSuccess', tempFilePaths, e);
+				if (e == 0) {
+					this.store = 'talent_upload/' + this.guid() + '.png'
+				} else if (e == 1) {
+					this.store = 'talent_upload/' + this.guid() + '.mp4'
+				}
+				/****************
+				以下代码是自定义上传逻辑,仅供参考
+				***************/
+				this.imgUpload(tempFilePaths);
+				/*******************************/
+				console.log("imgdata" + this.imageData)
+			},
+			imgUpload(tempFilePaths) {
+				let that = this
+				console.log('imgUpload', tempFilePaths)
+				let config = {
+					AccessKeyId: 'IVW21DTGIIUBBAGXKK0Y', //AK
+					SecretKey: 'Y01nEQNcLOATMw7uJwrk3yOdQZ2fqLhSnXcOKVDE', //SK
+					EndPoint: 'https://horastar.obs.cn-east-3.myhuaweicloud.com', //上传文件的路径
+				};
+				let fileName = this.store; //指定上传到OBS桶中的对象名
+				// let fileName = "talent_upload/icon-arrow-right.png"
+				let OBSPolicy = { //设定policy内容
+					"expiration": "2089-12-31T12:00:00.000Z",
+					"conditions": [{
+							"bucket": "horastar"
+						}, //Bucket name
+						// {"bucket": "goin"}, 
+						{
+							'key': fileName
+						}
+					]
+				}
+
+				let policyEncoded = getPolicyEncode(OBSPolicy); //计算policy编码值
+				let signature = getSignature(policyEncoded, config.SecretKey); //计算signature 
+				uni.uploadFile({
+					//url: config.EndPoint,
+					url: config.EndPoint,
+					filePath: tempFilePaths[0],
+					name: 'file',
+
+					formData: {
+						'AccessKeyID': config.AccessKeyId,
+						'policy': policyEncoded,
+						'signature': signature,
+						'key': fileName,
+					},
+
+					success: function(res) {
+						console.log(res.statusCode); //打印响应状态码
+						if (res.statusCode == '204') {
+							that.imageData.push(config.EndPoint + '/' + fileName);
+							console.log('上传图片成功', res)
+							let obs_url = config.EndPoint + '/' + fileName; //用你自己的 bucket 名替换星号
+							console.log(obs_url)
+							that.formData.home_img = obs_url
+							uni.showToast({
+								title: '上传成功',
+								icon: '成功'
+							});
+						} else {
+							console.log('上传图片失败', res)
+							uni.showToast({
+								title: '上传失败',
+								icon: '失败'
+							});
+						}
+					},
+					fail: function(e) {
+						console.log(e);
+						uni.showToast({
+							title: '上传失败22222',
+							icon: '失败'
+						});
+					}
+				})
+			},
+			guid() {
+				return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+					var r = Math.random() * 16 | 0,
+						v = c == 'x' ? r : (r & 0x3 | 0x8);
+
+					return v.toString(16);
+				});
+			},
+		},
+	}
+</script>
+
+<style>
+	.uni-easyinput__content-input {
+		font-size: 24rpx !important;
+	}
+
+	/deep/.uni-forms-item__inner {
+		border-bottom: none !important;
+		margin-bottom: 0 !important;
+	}
+
+	.uni-forms-item__label {
+		font-size: 30rpx;
+		display: flex;
+		flex-shrink: 0;
+		box-sizing: border-box;
+		flex-direction: row;
+		align-items: center;
+		width: 65px;
+		padding: 5px 0;
+		/* height: 36px; */
+	}
+</style>
+<style lang="scss" scoped>
+	.card {
+		padding: 24rpx;
+		margin-top: 30rpx;
+		border: 1rpx solid #F0D232;
+		background-color: #ffffff;
+		margin: 0 10rpx;
+	}
+
+	.head {
+		padding-top: 5%;
+		padding: 0 0 0 1%;
+		height: 80rpx;
+		margin-top: 2%;
+	}
+
+	.head span {
+		color: #333333;
+		font-size: 80%;
+		font-weight: 550;
+		text-indent: 2em;
+
+	}
+
+	.head image {
+		vertical-align: middle;
+		width: 50rpx;
+		height: 50rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.home-link {
+		/deep/.uni-easyinput__content-input {
+			background-color: #EBEBEB;
+			border-radius: 15rpx;
+		}
+	}
+
+
+	.heng-line {
+		margin-top: 60rpx;
+		margin-bottom: 50rpx;
+		border: 1rpx solid #DCDCDC;
+
+	}
+
+	.signupbtn p {
+		font-size: 30rpx;
+	}
+
+	.exit-btn {
+		width: 120%;
+		text-align: center;
+		background-color: #C0C0C0;
+		border-radius: 10rpx;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		line-height: 180%;
+	}
+
+	.main-btn {
+		width: 300rpx;
+		text-align: center;
+		background-color: #FCCF41;
+		border-radius: 10rpx;
+		color: #000000;
+		font-size: 30rpx;
+		line-height: 180%;
+	}
+
+	.uni-input-placeholder {
+		font-size: 24rpx !important;
+	}
+
+	/deep/.uni-date-x--border {
+		border: 0px solid #dcdfe6 !important;
+	}
+
+	/deep/.is-input-border {
+		border: 0px solid #c8c7cc !important;
+	}
+</style>

+ 239 - 0
pages/mycenter/myaccount.vue

@@ -0,0 +1,239 @@
+<template>
+	<view style="position: relative;">
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view style="height: 180rpx;width: 100%; position: fixed;background-color: #FFFFFF;top: 0;z-index: 8;">
+		</view>
+		<view class="menu">
+			<view class="menu-item" @click="topersoninfo()">
+				<p>个人资料</p>
+			</view>
+			<view class="menu-item" @click="tomylocation()">
+				<p>收货地址</p>
+			</view>
+			<view class="menu-item">
+				<p class='lor'>社媒账号</p>
+			</view>
+			<view class="menu-item" @click="tomybank()">
+				<p>提现绑定</p>
+			</view>
+		</view>
+		<view style="padding-top: 260rpx;width: 97%;">
+			<!-- 已经绑定的账号-->
+			<view class="card" style="margin-top: 2%;" v-for="item in account">
+				<view class="Tasktext"  @click="accountdetail(item)">
+					<image :src="item.platform_icon" mode=""></image>
+					<span>{{item.platform_nickname}}</span>
+				</view>
+				<view class="dou">
+					<p style="padding-right: 20rpx;color:#A8A8A8;">粉丝数</p>
+					<p>{{item.fans_count}}</p>
+				</view>
+				<view class="clickkk" @click="accountdetail(item)">
+					<image :src="togoimg" mode="" style="width: 16rpx;height: 30rpx;"></image>
+				</view>
+			</view>
+			<!-- 未绑定的 -->
+			<view class="card" style="margin-top: 2%;" v-for="item in list1">
+				<view class="Tasktext" @click="bindaccount(item)">
+					<image :src="item.platform_icon" mode=""></image>
+					<span>绑定{{item.platform_name}}账号</span>
+				</view>
+				<view class="dou"></view>
+				<view class="clickkk" @click="bindaccount(item)">
+					<image :src="togoimg" mode="" style="width: 16rpx;height: 30rpx;"></image>
+				</view>
+			</view>
+
+		</view>
+
+		<view class="" style="width: 100%;height: 200rpx;">
+
+		</view>
+	</view>
+</template>
+
+<script>
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	export default {
+		components: {
+			mvBar,
+		},
+		data() {
+			return {
+				togoimg: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/task16.png',
+				list1: [],
+				account: [],
+				mysNavConfig: {
+					/* 开启单页显示首页图标 */
+					isHome: true,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "我的信息",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "normal", // 100 - 700
+					},
+					btnType: "type2",
+					onLeftClick: '/pages/mycenter/mycenter',
+					/* type2 按钮 */
+					type2Config: {
+						// 左图标
+						leftPath: "/static/img/png2.png",
+						// 右图标
+						rightPath: "/static/img/png4.png",
+						// 圆角
+						radius: "40rpx",
+					},
+				},
+			}
+		},
+		onShow() {
+			this.getlist1()
+			uni.showLoading()
+			setTimeout(() => {
+				uni.hideLoading()
+			}, 500)
+		},
+		onLoad() {
+		},
+		methods: {
+			tomylocation() {
+				uni.navigateTo({
+					url: './mylocation'
+				});
+			},
+			topersoninfo() {
+				uni.navigateTo({
+					url: './personinfo'
+				});
+			},
+			tomybank() {
+				uni.navigateTo({
+					url: './mybank'
+				});
+			},
+			// 信息表
+			getlist() {
+				this.$https.get('/youngee/c/t/g/get-talent-account')
+					.then(res => {
+						console.log(res)
+						if (res.data.code !== -3) {
+							this.account = res.data.data
+							for (var i = 0; i < this.account.length; i++) {
+								for (var j = 0; j < this.list1.length; j++) {
+									if (this.list1[j].id == this.account[i].platform_id) {
+										this.account[i].platform_icon = this.list1[j].platform_icon
+										this.list1.splice(j, 1)
+									}
+								}
+							}
+						}
+					})
+			},
+			// 默认信息表
+			getlist1() {
+				this.$https.get('/youngee/c/g/get-info-tables')
+					.then(res => {
+						console.log(res)
+						this.list1 = res.data.data.ThirdPlatform
+						this.getlist()
+					})
+			},
+			// 前往绑定账号
+			bindaccount(item) {
+				uni.navigateTo({
+					url: '/pages/mycenter/bindaccount?platform_id=' + item.id
+				});
+			},
+			// 前往账号详情
+			accountdetail(item) {
+				uni.navigateTo({
+					url: '/pages/mycenter/bindaccount?platform_id=' + item.platform_id + '&account_id=' + item
+						.account_id
+				});
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	view {
+		font-size: 14px;
+		line-height: inherit;
+	}
+
+	.menu {
+		position: fixed;
+		top: 180rpx;
+		border-bottom: #FCCF41;
+		background-color: #FFFFFF;
+		justify-content: space-around;
+		height: 5%;
+		width: 100%;
+		display: flex;
+		z-index: 10;
+	}
+
+	.menu-item p {
+		font-weight: 600;
+
+		&.lor {
+			border-bottom: 5rpx solid #F0D232;
+			color: #F0D232;
+			padding-bottom: 15rpx;
+		}
+	}
+
+	.card {
+		display: flex;
+		align-items: center;
+		// justify-content: space-between;
+		width: 88%;
+		padding: 24rpx;
+		margin-top: 30rpx;
+		border-radius: 10rpx;
+		background-color: #ffffff;
+		margin: 0 auto;
+		box-shadow: 0px 0px 10rpx 2rpx #F4F4F4;
+	}
+
+	.Tasktext {
+		display: inline-block;
+		padding: 0 0 0 1%;
+		width: 400rpx;
+	}
+
+	.Tasktext span {
+		color: #333333;
+		font-weight: 550;
+		text-indent: 2em;
+	}
+
+	.Tasktext image {
+		vertical-align: middle;
+		width: 50rpx;
+		height: 50rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.dou {
+		display: flex;
+		width: 250rpx;
+	}
+
+	.dou p {
+		display: inline-block;
+		font-size: 26rpx;
+		color: #333333;
+		font-weight: 550;
+	}
+
+	.dou span {
+		font-size: 24rpx;
+		color: #666666;
+	}
+</style>

+ 106 - 0
pages/mycenter/mybank.vue

@@ -0,0 +1,106 @@
+<template>
+	<view style="position: relative;">
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view style="height: 180rpx;width: 100%; position: fixed;background-color: #FFFFFF;top: 0;z-index: 8;">
+		</view>
+		<view class="menu">
+			<view class="menu-item" @click="topersoninfo()">
+				<p>个人资料</p>
+			</view>
+			<view class="menu-item" @click="tomylocation()">
+				<p>收货地址</p>
+			</view>
+			<view class="menu-item" @click="tomyaccount()">
+				<p>社媒账号</p>
+			</view>
+			<view class="menu-item">
+				<p class='lor'>提现绑定</p>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	export default {
+		components: {
+			mvBar,
+		},
+		data() {
+			return {
+
+				mysNavConfig: {
+					/* 开启单页显示首页图标 */
+					isHome: true,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "我的信息",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "normal", // 100 - 700
+					},
+					btnType: "type2",
+					onLeftClick: '/pages/mycenter/mycenter',
+					/* type2 按钮 */
+					type2Config: {
+						// 左图标
+						leftPath: "/static/img/png2.png",
+						// 右图标
+						rightPath: "/static/img/png4.png",
+						// 圆角
+						radius: "40rpx",
+					},
+				},
+			}
+		},
+		methods: {
+			tomylocation() {
+				uni.navigateTo({
+					url: './mylocation'
+				});
+			},
+			topersoninfo() {
+				uni.navigateTo({
+					url: './personinfo'
+				});
+			},
+			tomyaccount() {
+				uni.navigateTo({
+					url: './myaccount'
+				});
+			},
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	view {
+		font-size: 14px;
+		line-height: inherit;
+	}
+	.menu {
+		position: fixed;
+		top: 180rpx;
+		border-bottom: #FCCF41;
+		background-color: #FFFFFF;
+		justify-content: space-around;
+		height: 5%;
+		width: 100%;
+		display: flex;
+		z-index: 10;
+	}
+
+	.menu-item p {
+		font-weight: 600;
+
+		&.lor {
+			border-bottom: 5rpx solid #F0D232;
+			color: #F0D232;
+			padding-bottom: 15rpx;
+		}
+	}
+</style>

+ 722 - 0
pages/mycenter/mycenter.vue

@@ -0,0 +1,722 @@
+<template>
+	<view>
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view class="home">
+			<view class="head" v-if="token">
+				<view class="head-avator">
+					<image :src="avatarUrl" mode="" style="border-radius: 50%; width: 100%;height: 100%;">
+					</image>
+				</view>
+				<view>
+					<p style="padding-bottom: 20rpx;font-size: 35rpx;">{{information.talent_wx_nickname}}</p>
+					<p style="font-size: 25rpx;">ID:{{information.id}}</p>
+				</view>
+				<image class="head-message" :src="picture.icon_message"></image>
+			</view>
+			<view class="head" v-if="!token">
+				<view class="head-avator">
+					<image :src="picture.defaultavatarUrl" mode="" @tap="login"
+						style="border-radius: 50%; width: 100%;height: 100%;"></image>
+				</view>
+				<view class="head-text">
+					<p @tap="login" style="font-size: 35rpx;padding-bottom: 10rpx;">未登录</p>
+					<p @tap="login" style="font-size: 30rpx;">点击登录账号</p>
+				</view>
+			</view>
+			<view class="show-income1">
+				<view class="show-income1-text">
+					<p>我获得的收益总数</p>
+					<p style="font-size: 40rpx;font-weight:bold;color: #F0D232;" @click="toincome('all')">
+						{{information.income?information.income:0}}
+					</p>
+				</view>
+				<view class="show-income1-text2">
+					<button class="show-income1-btn" type="default" @click="withdraw()">提现</button>
+				</view>
+			</view>
+			<view class="show-income2">
+				<view class="show-income2-text" @click="toincome('can')">
+					<p style="padding-bottom: 20rpx;color: #807F7A;">可提现</p>
+					<p>{{information.canwithdraw?information.canwithdraw:0}}</p>
+				</view>
+				<view class="show-income2-text" @click="toincome('ed')">
+					<p style="padding-bottom: 20rpx;color: #807F7A;">已提现</p>
+					<p>{{information.withdrawed?information.withdrawed:0}}</p>
+				</view>
+				<view class="show-income2-text" @click="toincome('ing')">
+					<p style="padding-bottom: 20rpx;color: #807F7A;">提现中</p>
+					<p>{{information.withdrawing?information.withdrawing:0}}</p>
+				</view>
+			</view>
+			<view class="show-body">
+				<view class="show-body1">
+					<view class="show-body1-text1">
+						<p>我的任务</p>
+					</view>
+					<view class="show-body1-text2">
+						<image class="show-body1-icon" :src="picture.icon_right"></image>
+					</view>
+				</view>
+				<view class="show-body2">
+					<view class="show-body2-text" style="padding-left: 30rpx;" @click="tomytask('all')">
+						<p class="task-num-p">{{information.task_all?information.task_all:0}}</p>
+						<p padding>全部任务</p>
+					</view>
+					<view class="shu-line"></view>
+					<view class="show-body2-text" @click="tomytask('apply')">
+						<p class="task-num-p">{{information.task_apply?information.task_apply:0}}
+						<p>
+						<p>已报名</p>
+					</view>
+					<view class="shu-line"></view>
+					<view class="show-body2-text" @click="tomytask('execute')">
+						<p class="task-num-p">{{information.task_execute?information.task_execute:0}}</p>
+						<p>执行中</p>
+					</view>
+					<view class="shu-line"></view>
+					<view class="show-body2-text" @click="tomytask('end')">
+						<p class="task-num-p">{{ information.task_end ? information.task_end:0}}</p>
+						<p>已结束</p>
+					</view>
+				</view>
+			</view>
+
+			<view class="show-body">
+				<view class="show-body1">
+					<view class="show-body1-text1">
+						<p>我的信息</p>
+					</view>
+					<view class="show-body1-text2">
+						<image class="show-body1-icon" :src="picture.icon_right"></image>
+					</view>
+				</view>
+				<view class="show-info">
+					<view class="show-info-text" @click="personinfo()">
+						<image class="show-info-icon" :src="picture.icon_person"></image>
+						<p>个人资料</p>
+					</view>
+					<view class="show-info-text" @click="mylocation()">
+						<image class="show-info-icon" :src="picture.icon_location"></image>
+						<p>收货地址</p>
+					</view>
+					<view class="show-info-text" @click="myaccount()">
+						<image class="show-info-icon" :src="picture.icon_account"></image>
+						<p>社媒账号</p>
+					</view>
+					<view class="show-info-text" @click="mybank()">
+						<image class="show-info-icon" :src="picture.icon_rmb"></image>
+						<p>提现绑定</p>
+					</view>
+				</view>
+			</view>
+
+
+			<!-- 普通弹窗  公众号-->
+			<uni-popup ref="popup2" class="share" background-color="#fff" @change="change">
+				<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
+					<view class="sharepage">
+						<view class="Tasktext1">
+							<image :src="picture.task15" mode=""></image>
+							<span>YoungGee</span>
+						</view>
+						<view class="" style="margin-top: 5%;">
+							<p style='color: #333333;font-size: 28rpx;text-align: center;'>不错过任何上新</p>
+						</view>
+						<view class="" style="margin-top: 5%;">
+							<p style='color: #333333;font-size: 24rpx;'>公众号:</p>
+						</view>
+
+						<view class="sharemap">
+							<image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/gzh.png" mode="">
+							</image>
+						</view>
+					</view>
+				</view>
+			</uni-popup>
+
+			<!-- 普通弹窗  商务合作-->
+			<uni-popup ref="popup3" class="share" background-color="#fff" @change="change">
+				<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
+					<view class="sharepage">
+						<view class="Tasktext1">
+							<image :src="picture.task15" mode=""></image>
+							<span>YoungGee</span>
+						</view>
+						<view class="" style="margin-top: 5%;">
+							<p style='color: #333333;font-size: 28rpx;text-align: center;'>商务合作请联系我们</p>
+						</view>
+						<view class="" style="margin-top: 5%;">
+							<p style='color: #333333;font-size: 24rpx;'>电话:010-53355656</p>
+							<p style='color: #333333;font-size: 24rpx;'>商务:</p>
+						</view>
+
+						<view class="sharemap" style="margin-bottom: 5%;margin-top: 5%;">
+							<image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/shangwu.png" mode="">
+							</image>
+						</view>
+					</view>
+				</view>
+			</uni-popup>
+
+			<!-- 普通弹窗  客服-->
+			<uni-popup ref="popup4" class="share" background-color="#fff" @change="change">
+				<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
+					<view class="sharepage">
+						<view class="Tasktext1">
+							<image :src="picture.task15" mode=""></image>
+							<span>YoungGee</span>
+						</view>
+						<view class="" style="margin-top: 5%;">
+							<p style='color: #333333;font-size: 28rpx;text-align: center;'>扫码联系</p>
+						</view>
+						<view class="sharemap">
+							<image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/kefu.png" mode="">
+							</image>
+						</view>
+					</view>
+				</view>
+			</uni-popup>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	export default {
+		components: {
+			mvBar,
+		},
+		data() {
+			return {
+				picture: {
+					icon_person: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/youngee/talent_upload/icon-person.png',
+					icon_location: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/youngee/talent_upload/icon-location.png',
+					icon_account: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/youngee/talent_upload/icon-account.png',
+					icon_rmb: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/youngee/talent_upload/icon-rmb.png',
+					icon_message: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/youngee/talent_upload/icon-message.png',
+					icon_right: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent_upload/icon-arrow-right.png',
+					defaultavatarUrl: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/logoxin01.png',
+				},
+				token: '',
+				nickName: '',
+				avatarUrl: '',
+				type: 'center',
+				type2: 'center',
+				type3: 'center',
+				type4: 'center',
+				mysNavConfig: {
+					/* 开启单页显示首页图标 */
+					isHome: true,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "我的",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "normal", // 100 - 700
+					},
+				},
+				codeImg: '',
+				information: {
+
+				},
+			};
+		},
+		onShow() {
+			this.nickName = uni.getStorageSync('nickName')
+			this.avatarUrl = uni.getStorageSync('avatarUrl')
+			this.token = uni.getStorageSync('token')
+			console.log(this.token)
+			if (this.token !== '')
+				this.gettalentinfo()
+		},
+		onLoad() {
+
+		},
+		methods: {
+			gettalentinfo() {
+				this.$https.get('/youngee/c/t/g/get-talent-info')
+					.then(res => {
+						console.log(res)
+						this.information = res.data.data
+					})
+			},
+			// 进入登录页面
+			login() {
+				uni.navigateTo({
+					url: '../login/login'
+				});
+			},
+			// 进入个人资料
+			personinfo() {
+				if (this.token !== '')
+					uni.navigateTo({
+						url: '/pages/mycenter/personinfo'
+					});
+				else
+					this.login()
+			},
+			// 进入收货地址
+			mylocation() {
+				if (this.token !== '')
+					uni.navigateTo({
+						url: '/pages/mycenter/mylocation'
+					});
+				else
+					this.login()
+			},
+			// 进入社媒账号
+			myaccount() {
+				if (this.token !== '')
+					uni.navigateTo({
+						url: '/pages/mycenter/myaccount'
+					});
+				else
+					this.login()
+			},
+			// 进入个人账号页面
+			mybank() {
+				if (this.token !== '')
+					uni.navigateTo({
+						url: '/pages/mycenter/mybank'
+					});
+				else
+					this.login()
+			},
+			// 提现
+			withdraw() {
+				console.log("提现")
+			},
+			// 进入收益页面
+			toincome(tab) {
+				console.log(tab)
+			},
+			// 进入我的任务页面
+			tomytask(tab) {
+				console.log(tab)
+			}
+		},
+		// 保留两位小数点
+		toDecimal(x) {
+			var f = parseFloat(x);
+			if (isNaN(f)) {
+				return;
+			}
+			f = Math.round(x * 100) / 100;
+			return f;
+		},
+		//弹出层
+		change(e) {
+			console.log('当前模式:' + e.type + ',状态:' + e.show);
+		},
+		togo2(type) {
+			this.type2 = type
+			// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+			this.$refs.popup2.open(type)
+			// this.$refs.popup1.close()
+		},
+		togo3(type) {
+			this.type3 = type
+			// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+			this.$refs.popup3.open(type)
+			// this.$refs.popup1.close()
+		},
+		togo4(type) {
+			this.type4 = type
+			// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+			this.$refs.popup4.open(type)
+			// this.$refs.popup1.close()
+		},
+		// 进入关于样叽
+		about() {
+			uni.navigateTo({
+				url: '/pages/my/aboutyg'
+			});
+		},
+		// 进入个人信息
+		personal() {
+			uni.navigateTo({
+				url: '/pages/my/personal'
+			});
+		},
+		// 进入收货地址
+		receiving() {
+			uni.navigateTo({
+				url: '/pages/my/receiving'
+			});
+		},
+		// 进入卜卜币页面
+		ppcurrency() {
+			uni.navigateTo({
+				url: '/pages/ppcurrency/ppcurrency'
+			});
+		},
+		// 进入个人账号页面
+		gameplayer() {
+			uni.navigateTo({
+				url: '/pages/gameplayer/gameplayer'
+			});
+		},
+		// 进入任务列表页面
+
+		mymission(typee) {
+			if (this.token !== '') {
+				uni.navigateTo({
+					url: '/pages/mymission/mymission?typee=' + typee
+				});
+			} else {
+				uni.showToast({
+					title: '请先登录',
+					icon: 'none',
+					duration: 2000
+				});
+			}
+
+		},
+	};
+</script>
+<style>
+	/deep/ .share .uni-popup .uni-popup__wrapper {
+		width: 70% !important;
+		border-radius: 15rpx !important;
+	}
+</style>
+<style lang="scss" scoped>
+	p {
+		font-size: 30rpx;
+	}
+
+	.head {
+		display: flex;
+		/* 垂直居中 */
+		align-items: center;
+		height: 200rpx;
+		position: relative;
+		margin: 2% 3% 3%;
+		border: 1rpx solid #BCBCBC;
+		border-radius: 10rpx;
+	}
+
+	.head-avator {
+		display: inline-block;
+		margin: 0 25rpx;
+		width: 120rpx;
+		height: 120rpx;
+		background-color: #F0D232;
+		border-radius: 50%;
+	}
+
+	.head-text {
+		display: inline-block;
+
+	}
+
+	.head-message {
+		margin: 10rpx 20rpx 10rpx 100rpx;
+		width: 60rpx;
+		height: 60rpx;
+	}
+
+	.show-income1 {
+		display: flex;
+		align-items: center;
+		height: 120rpx;
+		margin: 0 3%;
+		border: 1rpx solid #BCBCBC;
+		border-radius: 10rpx;
+	}
+
+	.show-income1-text {
+		margin-left: 20rpx;
+		margin-right: 200rpx;
+	}
+
+	.show-income1-text2 {
+		flex: 1;
+		display: flex;
+	}
+
+	.show-income1-btn {
+		width: 200rpx;
+		text-align: center;
+		background-color: #F0D232;
+		border: 1rpx solid #BCBCBC;
+		border-radius: 15rpx;
+		font-size: 35rpx;
+		line-height: 180%;
+	}
+
+	.show-income2 {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		height: 150rpx;
+		margin: 0 3% 3%;
+		border: 1rpx solid #BCBCBC;
+		border-radius: 10rpx;
+		background-color: #F0D232;
+	}
+
+	.show-income2-text {
+		padding: 0 50rpx;
+		text-align: center;
+	}
+
+	.show-body {
+		height: 250rpx;
+		margin: 0 3% 3%;
+		border: 1rpx solid #BCBCBC;
+		border-radius: 10rpx;
+	}
+
+	.show-body1 {
+		display: flex;
+		align-items: center;
+		height: 80rpx;
+	}
+
+	.show-body1-text1 {
+		display: flex;
+		justify-content: flex-start; 
+		margin-left: 20rpx;
+		// margin-right: 480rpx;
+	}
+
+	.show-body1-text2 {
+		display: flex;
+		justify-content: flex-end; 
+		margin-right: 20rpx;
+		flex: 1;
+		// display: flex;
+	}
+
+	.show-body1-icon {
+		width: 30rpx;
+		height: 30rpx;
+	}
+
+	.show-body2 {
+		display: flex;
+		align-items: center;
+		// justify-content: space-between;
+	}
+
+	.show-body2-text {
+		width: 150rpx;
+		text-align: center;
+	}
+
+	.task-num-p {
+		padding-bottom: 40rpx;
+		font-size: 35rpx;
+		font-weight: bold;
+		color: #F0D232;
+	}
+
+	.shu-line {
+		border: 1rpx solid #BCBCBC;
+		float: left;
+		height: 70rpx;
+		margin: 0 10rpx;
+		margin-bottom: 30rpx;
+	}
+
+	.show-info {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		padding: 0 40rpx;
+	}
+
+	.show-info-text {
+		text-align: center;
+	}
+
+	.show-info-icon {
+		width: 50rpx;
+		height: 50rpx;
+	}
+
+	.butto {
+		text-align: center;
+	}
+
+	.option {
+		padding: 20rpx;
+	}
+
+	.uni-margin-wrap {
+		width: 690rpx;
+		width: 100%;
+		;
+	}
+
+	.swiper {
+		height: 300rpx;
+	}
+
+	.swiper-item {
+		display: block;
+		height: 300rpx;
+		line-height: 300rpx;
+		text-align: center;
+	}
+
+	.swiper-list {
+		margin-top: 40rpx;
+		margin-bottom: 0;
+	}
+
+	.uni-common-mt {
+		margin-top: 60rpx;
+		position: relative;
+	}
+
+	.info {
+		position: absolute;
+		right: 20rpx;
+	}
+
+	.uni-padding-wrap {
+		width: 550rpx;
+		padding: 0 100rpx;
+	}
+
+	.card {
+		width: 88%;
+		// height: 200rpx;
+		padding: 24rpx;
+		margin-top: 30rpx;
+		border-radius: 15rpx;
+		background-color: #ffffff;
+		margin: 0 auto;
+		box-shadow: 0px 0px 10rpx 2rpx #ffffff;
+	}
+
+	.iimmg {
+		width: 80rpx;
+		height: 80rpx;
+		background-color: #FFFFFF;
+		border-radius: 15%;
+	}
+
+	.iimmg image {
+		width: 60%;
+		height: 60%;
+		padding: 20%;
+	}
+
+	.ppan {
+		font-size: 60%;
+		margin-top: 1%;
+	}
+
+	.headportrait {
+		margin: 0 auto;
+		width: 180rpx;
+		height: 180rpx;
+		background-color: #FEE58E;
+		border-radius: 50%;
+	}
+
+	.task22 {
+		width: 80%;
+		height: 80%;
+		padding: 10%;
+	}
+
+	.but1 {
+		// width: 120%;
+		text-align: center;
+		background-color: #1890FF;
+		color: #FFFFFF;
+		border-radius: 10rpx;
+		font-size: 34rpx;
+		line-height: 150%;
+		font-weight: 500;
+		height: 60%;
+	}
+
+	.dou p {
+		font-size: 26rpx;
+		color: #333333;
+		font-weight: 550;
+		text-align: center;
+	}
+
+	.dou span {
+		font-size: 24rpx;
+		color: #666666;
+		text-align: center;
+	}
+
+	.title-left {
+		width: 4rpx;
+		height: 80rpx;
+		background: #E2E2E2;
+		display: inline-block;
+		border-radius: 1rpx;
+		margin-top: 4rpx;
+		vertical-align: top;
+
+	}
+
+	//弹窗
+	.sharepage {
+		width: 90%;
+		margin: 0 auto;
+		// position: relative;
+	}
+
+	/deep/ .share.uni-popup .uni-popup__wrapper {
+		width: 70%;
+		border-radius: 15rpx;
+	}
+
+	.Tasktext1 {
+		// padding-top: 5%;
+		padding: 0 0 0 1%;
+		height: 80rpx;
+		margin-top: 7%;
+		text-align: center;
+	}
+
+	.Tasktext1 span {
+		color: #333333;
+		font-size: 100%;
+		font-weight: 550;
+		text-indent: 2em;
+
+	}
+
+	.Tasktext1 image {
+		vertical-align: middle;
+		width: 80rpx;
+		height: 80rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.sharemap {
+		margin: 0 auto;
+		text-align: center;
+		margin-top: 15%;
+		margin-bottom: 15%;
+	}
+
+	.sharemap image {
+		width: 400rpx;
+		height: 400rpx;
+
+	}
+
+	.butmin {
+		height: 48rpx;
+		background-color: #3397FA;
+		color: #FFFFFF;
+		line-height: 48rpx;
+	}
+</style>

+ 476 - 0
pages/mycenter/mylocation.vue

@@ -0,0 +1,476 @@
+<template>
+	<view style="position: relative;">
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view style="height: 180rpx;width: 100%; position: fixed;background-color: #FFFFFF;top: 0;z-index: 8;">
+		</view>
+		<view class="menu">
+			<view class="menu-item" @click="topersoninfo()">
+				<p>个人资料</p>
+			</view>
+			<view class="menu-item">
+				<p class='lor'>收货地址</p>
+			</view>
+			<view class="menu-item" @click="tomyaccount()">
+				<p>社媒账号</p>
+			</view>
+			<view class="menu-item" @click="tomybank()">
+				<p>提现绑定</p>
+			</view>
+		</view>
+		<view style="padding-top: 260rpx;width: 97%;">
+			<!-- 收货地址 -->
+			<view class="card" style="margin-top: 6%;" v-for="item in list">
+				<view class="">
+					<view class="" style="display: flex;justify-content:space-around;align-items: center;">
+						<view class="">
+							<image class="head-img" :src="picture.icon_loc" mode="">
+							</image>
+						</view>
+						<view class="" style="padding-left: 3%;padding-right: 3%;width: 80%;">
+							<view style="display: flex;">
+								<p class='ipon' style="padding-right: 200rpx;">{{item.receiver_name}}</p>
+								<p class='ipon'>{{item.phone_number}}</p>
+							</view>
+							<p class='ipon'>{{item.detail_addr}}</p>
+						</view>
+					</view>
+
+					<view class="" style="border-bottom: 2rpx solid #C0C0C0;margin-top: 3%;margin-bottom: 3%;"> </view>
+					<view class="" style="display: flex;justify-content:space-between ;">
+						<view class="Tasktext">
+							<label>
+								<radio color="#F0D232" :value="item.default_tag" :checked="item.default_tag" style="transform:scale(0.7);
+		font-size: 30rpx;" @click="setdefault(item)" name="radio" />
+								默认地址
+							</label>
+						</view>
+						<view class="func">
+							<view class="func-btn" @click="edit(item)">
+								<image :src="picture.icon_edit" mode="">
+								</image>
+								<span>编辑</span>
+							</view>
+							<view class="func-btn" @click="del(item)">
+								<image :src="picture.icon_del" mode="" style="width: 33rpx;height: 33rpx;">
+								</image>
+								<span>删除</span>
+
+							</view>
+
+						</view>
+					</view>
+				</view>
+			</view>
+
+		</view>
+		<view class="" style="width: 100%;height: 150rpx;">
+
+		</view>
+		<view class="signup">
+
+			<view class="signupbtn">
+				<button type="default" class="manu-btn" @click="addreceipt()">手动添加</button>
+			</view>
+
+			<view class="signupbtn">
+				<button type="default" class="auto-btn" @click="chooseAddr()">
+					<image class="weixinlogo" :src="weixinimage">
+					</image>
+					<p class="auto-text">
+						自动获取</p>
+				</button>
+			</view>
+
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	export default {
+		components: {
+			mvBar,
+		},
+		data() {
+			return {
+				weixinimage: "../../static/img/icon-weixin.png",
+				picture: {
+					icon_edit:'https://horastar.obs.cn-east-3.myhuaweicloud.com/youngee/talent_upload/icon-edit.png',
+					icon_del:'https://horastar.obs.cn-east-3.myhuaweicloud.com/youngee/talent_upload/icon-del.png',
+					icon_loc:'https://horastar.obs.cn-east-3.myhuaweicloud.com/youngee/talent_upload/icon-loc.png',
+					home8: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home8.png',
+					home10: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home10.png',
+					home11: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home11.png',
+				},
+				list: [],
+
+				mysNavConfig: {
+					/* 开启单页显示首页图标 */
+					isHome: true,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "我的信息",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "normal", // 100 - 700
+					},
+					btnType: "type2",
+					onLeftClick: "/pages/mycenter/mycenter",
+					/* type2 按钮 */
+					type2Config: {
+						// 左图标
+						leftPath: "/static/img/png2.png",
+						// 右图标
+						rightPath: "/static/img/png4.png",
+						// 圆角
+						radius: "40rpx",
+					},
+				},
+			};
+		},
+		onShow() {
+			this.getlist()
+		},
+		onLoad() {
+		},
+		methods: {
+			tomybank() {
+				uni.navigateTo({
+					url: './mybank'
+				});
+			},
+			topersoninfo() {
+				uni.navigateTo({
+					url: './personinfo'
+				});
+			},
+			tomyaccount() {
+				uni.navigateTo({
+					url: './myaccount'
+				});
+			},
+			// 列表
+			getlist() {
+				this.$https.get('/youngee/c/t/g/get-talent-address')
+					.then(res => {
+						console.log(res)
+						this.list = res.data.data
+						if (this.list.length == 0)
+							uni.navigateTo({
+								url: '/pages/mycenter/addlocation?ismodify=0'
+							});
+					})
+			},
+			// 进入添加收货地址
+			addreceipt() {
+				uni.navigateTo({
+					url: '/pages/mycenter/addlocation?ismodify=0'
+				});
+			},
+			chooseAddr() {
+				const that = this
+				uni.chooseAddress({
+					success(res) {
+						console.log(res)
+						console.log(res.userName)
+						console.log(res.postalCode)
+						console.log(res.provinceName)
+						console.log(res.cityName)
+						console.log(res.countyName)
+						console.log(res.detailInfo)
+						console.log(res.nationalCode)
+						console.log(res.telNumber)
+
+						that.$https.post('/youngee/c/t/p/add-talent-address', {
+								region_code: res.nationalCode,
+								detail_addr: res.provinceName + res.cityName + res.countyName + res.detailInfo,
+								phone_number: res.telNumber,
+								receiver_name: res.userName,
+								mail_code: res.postalCode,
+								default_tag: 1
+							})
+							.then(res => {
+								console.log(res)
+								that.getlist()
+							})
+					}
+				})
+			},
+			// 改变默认地址
+			setdefault(item) {
+				console.log(item.default_tag)
+				if (item.default_tag === 1)
+					return
+				this.$https.post('/youngee/c/t/p/change-default-delivery-addr', {
+						address_id: item.address_id,
+					})
+					.then(res => {
+						console.log(res)
+						this.getlist()
+						uni.showToast({
+							title: '修改成功'
+						})
+					})
+				// var that = this;
+				// uni.showModal({
+				// 	title: '提示',
+				// 	content: '确认修改默认地址',
+				// 	success: function(res) {
+
+				// 		if (res.confirm) {
+				// 			that.$https.post('/youngee/c/t/p/change-default-delivery-addr', {
+				// 					address_id: item.address_id,
+				// 				})
+				// 				.then(res => {
+				// 					console.log(res)
+				// 					that.getlist()
+				// 					uni.showToast({
+				// 						title: '修改成功'
+				// 					})
+				// 				})
+				// 		} else if (res.cancel) {
+				// 			console.log('用户点击取消');
+				// 		}
+				// 	},
+				// })
+			},
+			// 编辑地址				
+			edit(item) {
+				console.log(item.receiver_name)
+				uni.navigateTo({
+					url: '/pages/mycenter/addlocation?address_id=' + item.address_id + '&ismodify=1'
+				});
+			},
+			// 删除地址
+			del(item) {
+				let that = this
+				uni.showModal({
+					title: '提示',
+					content: '确认删除',
+					success: function(res) {
+						if (res.confirm) {
+							// console.log(item)
+							that.$https.post('/youngee/c/t/p/delete-talent-address', {
+									address_id: item.address_id,
+									default_tag: item.default_tag,
+								})
+								.then(res => {
+									console.log(res)
+									that.getlist()
+									uni.showToast({
+										title: '删除成功'
+									})
+								})
+						} else if (res.cancel) {
+							console.log('用户点击取消');
+						}
+					},
+				})
+			},
+		}
+	};
+</script>
+<style>
+
+</style>
+<style lang="scss" scoped>
+	view {
+		font-size: 14px;
+		// line-height: inherit;
+	}
+
+	.menu {
+		position: fixed;
+		top: 180rpx;
+		border-bottom: #FCCF41;
+		background-color: #FFFFFF;
+		justify-content: space-around;
+		height: 5%;
+		width: 100%;
+		display: flex;
+		z-index: 10;
+	}
+
+	.menu-item p {
+		font-weight: 600;
+
+		&.lor {
+			border-bottom: 5rpx solid #F0D232;
+			color: #F0D232;
+			padding-bottom: 15rpx;
+		}
+	}
+
+	.signup {
+		box-shadow: 0rpx 5rpx 40rpx #ccc;
+		width: 100%;
+		position: fixed;
+		bottom: 0rpx;
+		display: flex;
+		height: 90rpx;
+		background-color: #FFFFFF;
+		justify-content: space-around;
+		;
+		/* 垂直居中 */
+		align-items: center;
+	}
+
+	.signupbtn p {
+		font-size: 28rpx;
+	}
+
+	.manu-btn {
+		width: 120%;
+		text-align: center;
+		border: 1rpx solid #FCCF41;
+		background-color: #FFFFFF;
+		border-radius: 10rpx;
+		color: #000000;
+		font-size: 28rpx;
+		line-height: 180%;
+		margin-left: 10%;
+	}
+
+	.auto-btn {
+		width: 300rpx;
+		text-align: center;
+		background-color: #FCCF41;
+		border-radius: 10rpx;
+		color: #FFFFFF;
+		font-size: 28rpx;
+		line-height: 180%;
+		margin-right: 10%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.auto-text {
+		display: inline-block;
+	}
+
+	.weixinlogo {
+		display: inline-block;
+		padding-right: 5rpx;
+		width: 35rpx;
+		height: 35rpx;
+	}
+
+	.radio {
+		color: #F0D232;
+	}
+
+	.taskimg {
+		width: 30rpx;
+		height: 30rpx;
+		background-image: url(../../static/home/home12.png);
+		background-size: 30rpx;
+		background-repeat: no-repeat;
+		box-sizing: border-box;
+		display: inline-block;
+		vertical-align: middle;
+
+		&.on {
+			background-image: url(../../static/home/home13.png);
+
+		}
+	}
+
+	.func {
+		display: flex;
+		padding: 0 0 0 1%;
+	}
+
+	.func-btn {
+		padding-left: 20rpx;
+	}
+
+	.func-btn span {
+		color: #333333;
+		font-size: 30rpx;
+		font-weight: 500;
+		text-indent: 2em;
+	}
+
+	.func-btn image {
+		vertical-align: middle;
+		width: 30rpx;
+		height: 30rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.head-img {
+		vertical-align: middle;
+		width: 50rpx;
+		height: 50rpx;
+		display: inline-block;
+		padding-right: 30rpx;
+	}
+
+	.ipon {
+		color: #333333;
+		font-size: 30rpx;
+		font-weight: 500;
+		margin-bottom: 10rpx;
+	}
+
+	.card {
+		width: 88%;
+		padding: 24rpx;
+		margin-top: 30rpx;
+		border-radius: 10rpx;
+		background-color: #ffffff;
+		margin: 0 auto;
+		box-shadow: 0px 0px 10rpx 2rpx #CCCCCC;
+	}
+
+	.butto {
+		text-align: center;
+	}
+
+	.option {
+		padding: 20rpx;
+	}
+
+	.uni-margin-wrap {
+		width: 690rpx;
+		width: 100%;
+		;
+	}
+
+	.swiper {
+		height: 300rpx;
+	}
+
+	.swiper-item {
+		display: block;
+		height: 300rpx;
+		line-height: 300rpx;
+		text-align: center;
+	}
+
+	.swiper-list {
+		margin-top: 40rpx;
+		margin-bottom: 0;
+	}
+
+	.uni-common-mt {
+		margin-top: 60rpx;
+		position: relative;
+	}
+
+	.info {
+		position: absolute;
+		right: 20rpx;
+	}
+
+	.uni-padding-wrap {
+		width: 550rpx;
+		padding: 0 100rpx;
+	}
+</style>

+ 818 - 0
pages/mycenter/personinfo.vue

@@ -0,0 +1,818 @@
+<template>
+	<view style="position: relative;">
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view style="height: 180rpx;width: 100%; position: fixed;background-color: #FFFFFF;top: 0;z-index: 8;">
+		</view>
+		<view class="menu">
+			<view class="menu-item">
+				<p class='lor'>个人资料</p>
+			</view>
+			<view class="menu-item" @click="tomylocation()">
+				<p>收货地址</p>
+			</view>
+			<view class="menu-item" @click="tomyaccount()">
+				<p>社媒账号</p>
+			</view>
+			<view class="menu-item" @click="tomybank()">
+				<p>提现绑定</p>
+			</view>
+		</view>
+		<view style="padding-top: 260rpx;width: 97%;">
+			<!-- 个人信息完善 -->
+			<view style="margin: 0 20rpx;">
+				<uni-forms :rules="rules" :value="formData" ref="form" validate-trigger="bind"
+					err-show-type="undertext">
+
+					<uni-forms-item name="age" label="年龄区间">
+						<picker @change="bindPickerChange" :value="index" :range="array"
+							range-key="age_bracket_discribe">
+							<view>{{ Xage }}</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item name="skintype" label="国籍">
+						<picker @change="bindPickerChange1" :value="index1" :range="array1" range-key="name">
+							<view>{{ array1[index1].name }}</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item name="vregion" label="探店地区">
+						<picker class="picker" mode="multiSelector" :range="region" range-key="name"
+							:value="regionIndex" @change="pickerChange" @columnchange="pickerColumnchange">
+							<view class="pbox" :class="{'pbox_hover':regionStr != '请选择省市区'}">
+								<view>{{regionStr}}</view>
+								<text class="iconfont icon-you"></text>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item name="sex" required label="性别">
+						<uni-data-checkbox v-model="formData.sex" :localdata="sex1"></uni-data-checkbox>
+					</uni-forms-item>
+					<uni-forms-item name="phone" required label="联系电话">
+						<uni-easyinput type="number" maxlength="11" :inputBorder="true" v-model="formData.phone"
+							placeholder="请输入联系电话">
+						</uni-easyinput>
+					</uni-forms-item>
+					<uni-forms-item name="wechat" required label="微信号">
+						<uni-easyinput type="text" :inputBorder="true" v-model="formData.wechat" placeholder="请输入微信号">
+						</uni-easyinput>
+					</uni-forms-item>
+					</uni-group>
+				</uni-forms>
+				<button class="btn1" @click="submitForm('form')">保存</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import region from '@/components/pca-code.json';
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	export default {
+		components: {
+			mvBar,
+		},
+		data() {
+			return {
+				// 原数组
+				oldRegion: region,
+				// 处理后的数组
+				region: [
+					[],
+					[],
+					[]
+				],
+				// 选择省市区的下标Index  传则默认选中传递的
+				regionIndex: [0, 0, 0],
+				// 省市区字符串
+				regionStr: '请选择省市区',
+				formData: {
+					wechat: '',
+					age: '',
+					nationality: '',
+					phone: '',
+					sex: '',
+					visitStoreRegion: '',
+				},
+				index: 0,
+				index1: 0,
+				Xage: '请选择',
+				sex1: [{
+					text: '男',
+					value: 1
+				}, {
+					text: '女',
+					value: 2
+				}],
+				array: [{
+					age_bracket_discribe: '请选择',
+					age_aid: 0
+				}, {
+					age_bracket_discribe: '0~18',
+					age_aid: 1
+				}, {
+					age_bracket_discribe: '18~25',
+					age_aid: 2
+				}, {
+					age_bracket_discribe: '26~30',
+					age_aid: 3
+				}, {
+					age_bracket_discribe: '30~40',
+					age_aid: 4
+				}, {
+					age_bracket_discribe: '40+',
+					age_aid: 5
+				}],
+				array1: [{
+					name: '请选择',
+					id: 0
+				}, {
+					name: '中国',
+					id: 1
+				}, {
+					name: '外国',
+					id: 2
+				}],
+				data: {},
+				show: false,
+				rules: {
+					wechat: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入微信号'
+						}, ]
+					},
+					sex: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择性别'
+						}, ]
+					},
+					phone: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入联系电话'
+							},
+						]
+					},
+				},
+				mysNavConfig: {
+					/* 开启单页显示首页图标 */
+					isHome: true,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "我的信息",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "normal", // 100 - 700
+					},
+					btnType: "type2",
+					onLeftClick: '/pages/mycenter/mycenter',
+					/* type2 按钮 */
+					type2Config: {
+						// 左图标
+						leftPath: "/static/img/png2.png",
+						// 右图标
+						rightPath: "/static/img/png4.png",
+						// 圆角
+						radius: "40rpx",
+					},
+				},
+			};
+		},
+		onLoad() {
+			uni.showLoading()
+			// this.formData 应该包含所有需要校验的表单
+			// 模拟异步请求数据
+			setTimeout(() => {
+				// 	this.formData = {
+				// 		wechat: '',
+				// 		age: '',
+				// skintype: '',
+				// 	}
+				uni.hideLoading()
+			}, 500)
+		},
+		onReady() {
+			this.$refs.form.setRules(this.rules)
+		},
+		onShow() {
+			console.log(this.array)
+			console.log(this.array1)
+			this.getlist()
+			this.getlist1()
+		},
+
+		methods: {
+			// 进入收货地址填写页面
+			tomylocation() {
+				uni.navigateTo({
+					url: './mylocation'
+				});
+			},
+			// 进入社媒账号绑定页面
+			tomyaccount() {
+				uni.navigateTo({
+					url: './myaccount'
+				});
+			},
+			// 进入提现绑定页面
+			tomybank() {
+				uni.navigateTo({
+					url: './mybank'
+				});
+			},
+			// 信息表
+			getlist() {
+				this.$https.get('/youngee/c/g/get-info-tables')
+					.then(res => {
+						console.log(res)
+						this.array = res.data.data.AgeBracket
+					})
+			},
+			// 达人详细信息表
+			getlist1() {
+				this.$https.get('/youngee/c/t/g/get-talent-info')
+					.then(res => {
+						console.log(res)
+						if (res.data.data.talent_wx_number !== null) {
+							if (res.data.data.talent_age_bracket !== 0) {
+								for (var i = 0; i < this.array.length; i++) {
+									if (this.array[i].age_aid == res.data.data.talent_age_bracket) {
+										this.Xage = this.array[i].age_bracket_discribe
+									}
+									this.formData.age = res.data.data.talent_age_bracket
+								}
+							}
+							if (res.data.data.talent_nationality !== 0) {
+								this.index1 = res.data.data.talent_nationality
+								this.formData.nationality = res.data.data.talent_nationality
+							}
+							if (res.data.data.visit_store_region !== 0) {
+
+								let a = res.data.data.visit_store_region.toString().slice(0, 2)
+								let b = res.data.data.visit_store_region.toString().slice(0, 4)
+								let c = 0
+								for (var i = 0; i < region.length; i++) {
+									if (region[i].code == a) {
+										a = region[i].name
+										for (var j = 0; j < region[i].children.length; j++) {
+											if (region[i].children[j].code == b) {
+												b = region[i].children[j].name
+												for (var o = 0; o < region[i].children[j].children
+													.length; o++) {
+													if (region[i].children[j].children[o].code == res.data.data
+														.visit_store_region) {
+														c = region[i].children[j].children[o].name
+													}
+												}
+											}
+
+										}
+									}
+								}
+								this.regionStr = a + ' ' + b + ' ' + c
+								this.formData.visitStoreRegion = res.data.data.visit_store_region
+							}
+							this.formData.sex = res.data.data.talent_gender
+							this.formData.phone = res.data.data.talent_phone_number
+							this.formData.wechat = res.data.data.talent_wx_number
+						}
+					})
+			},
+			// 年龄选择的
+			bindPickerChange: function(e) {
+				this.index = e.detail.value;
+				this.formData.age = this.array[this.index].age_aid
+				this.Xage = this.array[this.index].age_bracket_discribe
+				console.log(this.formData.age)
+			},
+			//国籍选择
+			bindPickerChange1: function(e) {
+				console.log(e)
+				this.index1 = e.detail.value;
+				this.formData.nationality = this.array1[this.index1].id
+				console.log(this.formData.nationality)
+			},
+
+			/**
+			 * 手动提交
+			 * @param {Object} form
+			 */
+			submitForm(form) {
+
+				// console.log(this.formData);
+				this.$refs[form]
+					.submit()
+					.then(res => {
+
+						console.log('表单的值:', res)
+						console.log(this.formData)
+						
+						const iphoneReg1 = /^1[0-9]{10}$/
+						if (!iphoneReg1.test(this.formData.phone)) {
+							uni.showToast({
+								title: '电话号码格式不正确',
+								icon: 'none'
+							})
+							return
+						}
+						this.$https.post('/youngee/c/t/p/talent-info', {
+								talent_age_bracket: this.formData.age,
+								talent_nationality: this.formData.nationality,
+								visit_store_region: this.formData.visitStoreRegion,
+								talent_gender: this.formData.sex,
+								talent_wx_number: this.formData.wechat,
+								talent_phone_number: this.formData.phone,
+							})
+							.then(res => {
+								if (res.data.code == 0) {
+									console.log(res)
+									uni.navigateTo({
+										url: './mylocation'
+									});
+								} else {
+									uni.showToast({
+										title: res.data.msg,
+										icon: 'none',
+										duration: 2000
+									});
+								}
+
+							})
+
+					})
+					.catch(errors => {
+						console.error('验证失败:', errors)
+						uni.showToast({
+							title: '请填写所有信息',
+							icon: 'none'
+						})
+					})
+			},
+			//城市选择
+			pickerChange(e) {
+				// console.log(e, '1');
+				this.regionIndex = e.detail.value;
+				this.regionStr = this.region[0][this.regionIndex[0]].name + ' ' + this.region[1][this.regionIndex[
+						1]]
+					.name + ' ' +
+					this.region[2][this.regionIndex[2]].name;
+
+				// 组件传值
+				this.$emit('region', [this.region[0][this.regionIndex[0]].code, this.region[1][this.regionIndex[1]]
+					.code,
+					this.region[
+						2][this.regionIndex[2]].code
+				]);
+				this.formData.visitStoreRegion = this.region[2][this.regionIndex[2]].code;
+
+			},
+			pickerColumnchange(e) {
+				// console.log(e);
+				// 第几列滑动
+				// console.log(e.detail.column);
+				// 第几列滑动的下标
+				// console.log(e.detail.value)
+
+				if (e.detail.column === 0) {
+					// 声明城市数组
+					let cityArr = [];
+					let countyArr = [];
+					// 设置下标
+					this.regionIndex = [e.detail.value, 0, 0];
+					// 改变城市列表
+					this.region[1] = this.oldRegion[e.detail.value].children.map(item => {
+						cityArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 1, cityArr);
+					// 改变县区列表
+					this.oldRegion[e.detail.value].children[0].children.map(item => {
+						countyArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 2, countyArr);
+				}
+				if (e.detail.column === 1) {
+					this.regionIndex[1] = e.detail.value;
+					this.regionIndex[2] = 0;
+					let countyArr = [];
+					this.oldRegion[this.regionIndex[0]].children[this.regionIndex[1]].children.map(item => {
+						countyArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 2, countyArr);
+				}
+				if (e.detail.column === 2) {
+					this.regionIndex[2] = e.detail.value;
+				}
+			}
+		},
+		created() {
+			let provinceArr = [];
+			let cityArr = [];
+
+			this.oldRegion.map((item, index) => {
+				this.region[0].push({
+					name: item.name,
+					code: item.code
+				});
+				if (this.previnceId == item.code) {
+					provinceArr = item.children;
+					this.regionIndex[0] = index;
+				}
+			})
+			// console.log(provinceArr);
+			provinceArr.map((item, index) => {
+				this.region[1].push({
+					name: item.name,
+					code: item.code
+				});
+				if (this.cityId == item.code) {
+					cityArr = item.children;
+					this.regionIndex[1] = index;
+				}
+			})
+			cityArr.map((item, index) => {
+				this.region[2].push({
+					name: item.name,
+					code: item.code
+				});
+				if (this.countyId == item.code) {
+					this.regionIndex[2] = index;
+				}
+			})
+			if (this.isRevise) {
+				this.regionStr = this.region[0][this.regionIndex[0]].name + ' ' + this.region[1][this.regionIndex[
+						1]]
+					.name + ' ' +
+					this.region[2][this.regionIndex[2]].name;
+			} else {
+				this.regionStr = '请选择省市区';
+			}
+		}
+	};
+</script>
+<style>
+	picker {
+		position: relative;
+		display: block;
+		cursor: pointer;
+		padding-left: 20rpx !important;
+		padding-top: 20rpx !important;
+		color: grey !important;
+	}
+
+	/deep/.uni-forms-item__inner {
+		border-bottom: none !important;
+		margin-bottom: 0 !important;
+	}
+</style>
+<style lang="scss" scoped>
+	@charset "UTF-8";
+
+	/* 头条小程序组件内不能引入字体 */
+	/* #ifdef MP-TOUTIAO */
+	@font-face {
+		font-family: uniicons;
+		font-weight: normal;
+		font-style: normal;
+		src: url("~@/static/uni.ttf") format("truetype");
+	}
+
+	/* #endif */
+	/* #ifndef APP-NVUE */
+
+	page {
+		display: flex;
+		flex-direction: column;
+		box-sizing: border-box;
+		background-color: #FFFFFF;
+		min-height: 100%;
+		height: auto;
+	}
+
+	view {
+		font-size: 14px;
+		// line-height: inherit;
+	}
+
+	.menu {
+		position: fixed;
+		top: 180rpx;
+		background-color: #FFFFFF;
+		justify-content: space-around;
+		height: 80rpx;
+		// height: 5%;
+		width: 100%;
+		display: flex;
+		z-index: 10;
+		margin-bottom: 10rpx;
+	}
+
+	.menu-item p {
+		font-weight: 600;
+
+		&.lor {
+			border-bottom: 5rpx solid #F0D232;
+			color: #F0D232;
+			padding-bottom: 15rpx;
+		}
+	}
+
+	.btn1 {
+		margin: 30rpx;
+		font-size: 35rpx;
+		color: #FFFFFF;
+		background-color: #F0D232;
+		border: none;
+		border-radius: 0;
+	}
+
+	.uni-input-border,
+	.uni-textarea-border {
+		flex: 1;
+		font-size: 14px;
+		color: #666;
+		border: 1px #FFFFFF solid;
+		border-radius: 5px;
+		/* #ifndef APP-NVUE */
+		box-sizing: border-box;
+		/* #endif */
+	}
+
+	.uni-input-border {
+		padding: 0 10px;
+		height: 35px;
+	}
+
+	.uni-textarea-border {
+		padding: 10px;
+		height: 80px;
+	}
+
+	.label-box {
+		margin-right: 10px;
+	}
+
+	.transform-scale {
+		transform: scale(0.7);
+	}
+
+	.butto {
+		text-align: center;
+	}
+
+	.option {
+		padding: 20rpx;
+	}
+
+	.uni-margin-wrap {
+		width: 690rpx;
+		width: 100%;
+		;
+	}
+
+	.swiper {
+		height: 300rpx;
+	}
+
+	.swiper-item {
+		display: block;
+		height: 300rpx;
+		line-height: 300rpx;
+		text-align: center;
+	}
+
+	.swiper-list {
+		margin-top: 40rpx;
+		margin-bottom: 0;
+	}
+
+	.uni-common-mt {
+		margin-top: 60rpx;
+		position: relative;
+	}
+
+	.info {
+		position: absolute;
+		right: 20rpx;
+	}
+
+	.uni-padding-wrap {
+		width: 550rpx;
+		padding: 0 100rpx;
+	}
+
+	.signup {
+		box-shadow: 0rpx 5rpx 40rpx #ccc;
+		width: 100%;
+		position: fixed;
+		bottom: 0rpx;
+		display: flex;
+		height: 90rpx;
+		padding-top: 2%;
+		background-color: #FFFFFF;
+		justify-content: space-around;
+	}
+
+	.signuptext {
+		text-align: center;
+		margin-top: 2%;
+
+	}
+
+	.signuptext p {
+		font-size: 60%;
+		color: #333333;
+	}
+
+	.signupbut {
+		text-align: center;
+		margin-top: 2%;
+	}
+
+	.but1 {
+		width: 120%;
+		text-align: center;
+		background-color: #FCCF41;
+		border-radius: 10rpx;
+		color: #464100;
+		font-size: 28rpx;
+		line-height: 156%;
+
+		font-weight: 500;
+		height: 65%;
+	}
+
+	/deep/.uni-searchbar__box {
+		border-color: #267CFF !important;
+		border-width: 2rpx !important;
+	}
+
+	/deep/.uni-searchbar__box {
+		background-color: #FFFFFF !important;
+	}
+
+	/deep/.uni-searchbar__text-placeholder {
+		font-size: 30rpx !important;
+	}
+
+	/deep/.segmented-control__text {
+		font-size: 34rpx !important;
+	}
+
+	/deep/.uni-data-checklist {
+		padding-left: 20upx;
+	}
+
+	uni-picker {
+		position: relative;
+		display: block;
+		cursor: pointer;
+		padding-left: 20rpx !important;
+		padding-top: 14rpx !important;
+		color: grey !important;
+	}
+
+	/deep/.uni-date-x--border {
+		border: 0px solid #dcdfe6 !important;
+	}
+
+	/deep/.is-input-border {
+		border: 0px solid #c8c7cc !important;
+	}
+
+	/deep/.uni-progress-info {
+		font-size: 25rpx !important;
+	}
+
+	/deep/.uni-error-message {
+		position: absolute;
+		bottom: -20rpx !important;
+		left: 20rpx !important;
+		text-align: left;
+	}
+
+	/deep/.uni-forms-item__inner {
+		padding-bottom: 0rpx !important;
+		margin-bottom: 30rpx !important;
+		border-bottom: 0.5rpx solid #CCCCCC;
+	}
+
+	/deep/.uni-group__title {
+		background-color: #FFFFFF !important;
+	}
+
+	/deep/.uni-list-item__content-title {
+		font-size: 30rpx !important;
+		color: #111111 !important;
+	}
+
+	/deep/.uni-progress-bar {
+		border-radius: 10rpx !important;
+	}
+
+	/deep/.uni-progress-inner-bar {
+		border-radius: 10rpx !important;
+	}
+
+
+	/deep/.is-input-border {
+		border-radius: 20px !important;
+		background-color: #fff;
+	}
+
+	.uni-easyinput__content-input {
+		font-size: 30upx !important;
+	}
+
+	.content-clear-icon {
+		font-size: 40upx !important;
+	}
+
+	/deep/.input-box {
+		padding: 50upx;
+		font-size: 30upx;
+
+		.input-item {
+			display: flex;
+
+			border: 1upx solid #F8F8F8;
+			line-height: 90upx;
+			height: 90upx;
+			margin-top: 20upx;
+			background: #F8F8F8;
+			border-radius: 48upx;
+
+			.input-label {
+				width: 150upx;
+				text-align: center;
+			}
+
+			.input-body {
+				position: relative;
+				height: 100upx;
+				width: calc(100% - 150upx);
+
+				.input {
+					line-height: 90upx;
+					height: 90upx;
+					position: relative;
+					font-size: 28upx;
+				}
+
+				.eye {
+					position: absolute;
+					height: 50upx;
+					width: 50upx;
+					right: 20upx;
+					top: 50%;
+					transform: translateY(-50%);
+				}
+
+				.btn-code {
+					position: absolute;
+					right: 0upx;
+					top: 50%;
+					transform: translateY(-50%);
+					background: none;
+					color: #205592;
+					width: 160upx;
+					font-size: 24upx;
+					box-sizing: border-box;
+					text-align: center;
+					padding: 0;
+					height: 100upx;
+					line-height: 100upx;
+				}
+			}
+		}
+
+		.select {
+			// padding-top: 40upx;
+			display: flex;
+			justify-content: space-between;
+			color: #003B67;
+		}
+	}
+
+	/deep/.title-left {
+		width: 3px;
+		height: 16px;
+		background: #267CFF;
+		display: inline-block;
+		border-radius: 3px;
+		margin-top: 3px;
+		vertical-align: top;
+		margin-right: 10px;
+	}
+</style>

+ 1342 - 0
pages/tasksquare/bindinfo.vue

@@ -0,0 +1,1342 @@
+<template>
+	<view style="position: relative;">
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view class="home" style="padding-top: 180rpx;">
+			<view style="margin: 0 20rpx;">
+				<uni-forms :rules="rules" :value="formData" ref="form" validate-trigger="bind"
+					err-show-type="undertext">
+					<view class="title">
+						<p>个人资料</p>
+					</view>
+					<uni-forms-item name="age" label="年龄区间">
+						<picker @change="bindPickerChange" :value="index" :range="array"
+							range-key="age_bracket_discribe">
+							<view>{{ Xage }}</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item name="skintype" label="国籍">
+						<picker @change="bindPickerChange1" :value="index1" :range="array1" range-key="name">
+							<view>{{ array1[index1].name }}</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item name="vregion" label="探店地区">
+						<picker class="picker" mode="multiSelector" :range="region" range-key="name"
+							:value="regionIndex" @change="pickerChange" @columnchange="pickerColumnchange">
+							<view class="pbox" :class="{'pbox_hover':regionStr != '请选择省市区'}">
+								<view>{{regionStr}}</view>
+								<text class="iconfont icon-you"></text>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item name="sex" required label="性别">
+						<uni-data-checkbox v-model="formData.sex" :localdata="sex1"></uni-data-checkbox>
+					</uni-forms-item>
+					<uni-forms-item name="phone" required label="联系电话">
+						<uni-easyinput type="number" maxlength="11" :inputBorder="true" v-model="formData.phone"
+							placeholder="请输入联系电话">
+						</uni-easyinput>
+					</uni-forms-item>
+					<uni-forms-item name="wechat" required label="微信号">
+						<uni-easyinput type="text" :inputBorder="true" v-model="formData.wechat" placeholder="请输入微信号">
+						</uni-easyinput>
+					</uni-forms-item>
+
+					<view class="title">
+						<p>收货地址</p>
+					</view>
+
+					<uni-forms-item name="name" required label="收件人">
+						<uni-easyinput type="text" :inputBorder="true" v-model="formData.name" placeholder="请输入收件人">
+						</uni-easyinput>
+					</uni-forms-item>
+					<uni-forms-item name="tel" required label="联系电话">
+						<uni-easyinput type="number" maxlength="11" :inputBorder="true" v-model="formData.tel"
+							placeholder="请输入联系电话">
+						</uni-easyinput>
+					</uni-forms-item>
+					<uni-forms-item name="fregion" required label="所在地区">
+						<picker class="picker" mode="multiSelector" :range="region" range-key="name"
+							:value="regionIndex1" @change="pickerChange1" @columnchange="pickerColumnchange1">
+							<view class="pbox" :class="{'pbox_hover':regionStr1 != '请选择省市区'}">
+								<view>{{regionStr1}}</view>
+								<text class="iconfont icon-you"></text>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item name="detailregion" required label="详细地址">
+						<uni-easyinput type="text" :inputBorder="true" v-model="formData.detailregion"
+							placeholder="请输入详细地址(省/市/县/镇/)">
+						</uni-easyinput>
+					</uni-forms-item>
+					<uni-forms-item name="mail_code" required label="邮政编码">
+						<uni-easyinput type="text" :inputBorder="true" v-model="formData.mail_code" placeholder="邮政编码">
+						</uni-easyinput>
+					</uni-forms-item>
+					<view class="setdeault">
+						<view class="setdeault-text">设为默认收货地址</view>
+						<switch style='zoom:.8;' @change="setDefault" />
+					</view>
+
+					<view class="title">
+						<p>{{platform.platform_name}}账号</p>
+					</view>
+
+					<uni-forms-item name="nickname" required label="昵称">
+						<uni-easyinput type="text" v-model="formData.platform_nickname" placeholder="请填写账号昵称">
+						</uni-easyinput>
+					</uni-forms-item>
+					<uni-forms-item name="numberfans" required label="粉丝数">
+						<uni-easyinput type="number" v-model="formData.fans_count" placeholder="请填写粉丝数量">
+						</uni-easyinput>
+					</uni-forms-item>
+					<uni-forms-item name="home_link" required label=" " label-width='10'>
+						<uni-easyinput class="home-link" type="text" v-model="formData.home_page_url"
+							placeholder="请填写个人主页链接">
+						</uni-easyinput>
+					</uni-forms-item>
+					<view style="margin-top: 40rpx;">
+						<uni-forms-item name="home_img" required label="主页截图">
+							<htz-image-upload :max="1" mediaType="image" name="file" :chooseNum="1" v-model="imageData"
+								@chooseSuccess="ceshiChooseSuccess">
+							</htz-image-upload>
+						</uni-forms-item>
+					</view>
+				</uni-forms>
+				<button class="btn1" @click="submitForm('form')">保存</button>
+			</view>
+
+
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import region from '@/components/pca-code.json';
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	import htzImageUpload from '@/components/htz-image-upload/htz-image-upload.vue';
+	import getPolicyEncode from '@/components/obs/getPolicy.js';
+	import getSignature from '@/components/obs/GetSignature.js';
+	export default {
+		components: {
+			mvBar,
+			htzImageUpload,
+		},
+		data() {
+			return {
+				accountId: '',
+				platform: {
+					platform_id: '',
+					platform_name: '',
+					platform_icon: '',
+				},
+				isBind: true,
+				imageData: [],
+				ismodify: '',
+				// 原数组
+				oldRegion: region,
+				// 处理后的数组
+				region: [
+					[],
+					[],
+					[]
+				],
+				// 选择省市区的下标Index  传则默认选中传递的
+				regionIndex: [0, 0, 0],
+				regionIndex1: [0, 0, 0],
+				// 省市区字符串
+				regionStr: '请选择省市区',
+				regionStr1: '请选择省市区',
+				formData: {
+					wechat: '',
+					age: '',
+					nationality: '',
+					phone: '',
+					sex: '',
+					visitStoreRegion: '',
+					name: '',
+					tel: '',
+					detailregion: '',
+					fregion: '',
+					mail_code: '',
+					setdefault: false,
+					platform_nickname: '',
+					fans_count: '',
+					home_page_url: '',
+				},
+				index: 0,
+				index1: 0,
+				Xage: '请选择',
+				Xskintype: '请选择',
+				sex1: [{
+					text: '男',
+					value: 1
+				}, {
+					text: '女',
+					value: 2
+				}],
+				array: [{
+					age_bracket_discribe: '请选择',
+					age_aid: 0
+				}, {
+					age_bracket_discribe: '0~18',
+					age_aid: 1
+				}, {
+					age_bracket_discribe: '18~25',
+					age_aid: 2
+				}, {
+					age_bracket_discribe: '26~30',
+					age_aid: 3
+				}, {
+					age_bracket_discribe: '30~40',
+					age_aid: 4
+				}, {
+					age_bracket_discribe: '40+',
+					age_aid: 5
+				}],
+				array1: [{
+					name: '请选择',
+					id: 0
+				}, {
+					name: '中国',
+					id: 1
+				}, {
+					name: '外国',
+					id: 2
+				}],
+				data: {},
+				show: false,
+				rules: {
+					wechat: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入微信号'
+						}, ]
+					},
+					sex: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择性别'
+						}, ]
+					},
+					phone: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入联系电话'
+						}, ]
+					},
+					mail_code: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入邮政编码'
+						}, ]
+					},
+					detailregion: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入详细地址'
+						}, ]
+					},
+					name: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入收件人'
+						}, ]
+					},
+					tel: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入联系电话',
+						}, ]
+					},
+					fregion: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择所在地区'
+						}, ]
+					},
+					nickname: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入昵称'
+						}, ]
+					},
+					numberfans: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入粉丝数'
+						}, ]
+					},
+					home_link: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入主页链接'
+						}, ]
+					},
+					home_img: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择主页截图'
+						}, ]
+					},
+				},
+
+				mysNavConfig: {
+					/* 开启单页显示首页图标 */
+					isHome: true,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "我的信息",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "normal", // 100 - 700
+					},
+					btnType: "type2",
+					onLeftClick: '',
+					/* type2 按钮 */
+					type2Config: {
+						// 左图标
+						leftPath: "/static/img/png2.png",
+						// 右图标
+						rightPath: "/static/img/png4.png",
+						// 圆角
+						radius: "40rpx",
+					},
+				},
+
+			}
+		},
+		onReady() {
+			this.$refs.form.setRules(this.rules)
+		},
+		onShow() {
+			this.getlist()
+		},
+		onLoad(options) {
+			this.platform.platform_id = parseInt(options.platform_id)
+			if (options.account_id) {
+				this.accountId = parseInt(options.account_id)
+				this.isBind = false
+			}
+		},
+		methods: {
+
+			// 信息表
+			getlist() {
+				this.$https.get('/youngee/c/g/get-info-tables')
+					.then(res => {
+						console.log(res)
+						this.array = res.data.data.AgeBracket
+
+						let list = res.data.data.ThirdPlatform
+						for (var i = 0; i < list.length; ++i) {
+							if (list[i].id == this.platform.platform_id) {
+								this.platform.platform_icon = list[i].platform_icon
+								this.platform.platform_name = list[i].platform_name
+							}
+						}
+						this.getlist1()
+						this.getaccount()
+					})
+			},
+			// 达人详细信息表
+			getlist1() {
+				this.$https.get('/youngee/c/t/g/get-talent-info')
+					.then(res => {
+						console.log(res)
+						if (res.data.data.talent_wx_number !== null) {
+							if (res.data.data.talent_age_bracket !== 0) {
+								for (var i = 0; i < this.array.length; i++) {
+									if (this.array[i].age_aid == res.data.data.talent_age_bracket) {
+										this.Xage = this.array[i].age_bracket_discribe
+									}
+									this.formData.age = res.data.data.talent_age_bracket
+								}
+							}
+							if (res.data.data.talent_nationality !== 0) {
+								this.index1 = res.data.data.talent_nationality
+								this.formData.nationality = res.data.data.talent_nationality
+							}
+							if (res.data.data.visit_store_region !== 0) {
+
+								let a = res.data.data.visit_store_region.toString().slice(0, 2)
+								let b = res.data.data.visit_store_region.toString().slice(0, 4)
+								let c = 0
+								for (var i = 0; i < region.length; i++) {
+									if (region[i].code == a) {
+										a = region[i].name
+										for (var j = 0; j < region[i].children.length; j++) {
+											if (region[i].children[j].code == b) {
+												b = region[i].children[j].name
+												for (var o = 0; o < region[i].children[j].children
+													.length; o++) {
+													if (region[i].children[j].children[o].code == res.data.data
+														.visit_store_region) {
+														c = region[i].children[j].children[o].name
+													}
+												}
+											}
+
+										}
+									}
+								}
+								this.regionStr = a + ' ' + b + ' ' + c
+								this.formData.visitStoreRegion = res.data.data.visit_store_region
+							}
+							this.formData.sex = res.data.data.talent_gender
+							this.formData.phone = res.data.data.talent_phone_number
+							this.formData.wechat = res.data.data.talent_wx_number
+						}
+					})
+			},
+			getaccount() {
+				console.log(this.isBind)
+				if (!this.isBind) {
+					this.$https.get('/youngee/c/t/g/get-talent-account')
+						.then(res => {
+							console.log(res)
+							if (res.data.code !== -3) {
+								this.account = res.data.data
+								for (var i = 0; i < this.account.length; i++) {
+									if (this.platform.platform_id == this.account[i].platform_id) {
+										this.formData.platform_nickname = this.account[i].platform_nickname
+										this.formData.fans_count = this.account[i].fans_count
+										this.formData.home_page_url = this.account[i].home_page_url
+										this.imageData.push(this.account[i].home_page_capture_url);
+									}
+								}
+							}
+						})
+				}
+			},
+			setDefault(e) {
+				console.log(e.detail.value)
+				if (e.detail.value)
+					this.formData.setdefault = 1
+				else
+					this.formData.setdefault = 0
+			},
+
+			/**
+			 * 手动提交
+			 * @param {Object} form
+			 */
+			submitForm(form) {
+				// console.log(this.formData);
+				this.$refs.form.validate().then(res => {
+
+					const iphoneReg1 = /^1[0-9]{10}$/
+					const mailReg = /\d{6}/
+					const urlReg =
+						/(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&amp;%$#_]*)?/
+
+					if (!iphoneReg1.test(this.formData.phone)) {
+						uni.showToast({
+							title: '电话号码格式不正确',
+							icon: 'none'
+						})
+						return
+					}
+					if (!mailReg.test(this.formData.mail_code)) {
+						uni.showToast({
+							title: '邮政编码格式不正确',
+							icon: 'none'
+						})
+						return
+					}
+					if (!urlReg.test(this.formData.home_page_url)) {
+						uni.showToast({
+							title: '主页链接格式不正确',
+							icon: 'none'
+						})
+						return
+					}
+					uni.showToast({
+						title: '提交成功'
+					})
+
+					this.$https.post('/youngee/c/t/p/talent-info', {
+							talent_age_bracket: this.formData.age,
+							talent_nationality: this.formData.nationality,
+							visit_store_region: this.formData.visitStoreRegion,
+							talent_gender: this.formData.sex,
+							talent_wx_number: this.formData.wechat,
+							talent_phone_number: this.formData.phone,
+						})
+						.then(res => {
+							console.log(res)
+						})
+
+					this.$https.post('/youngee/c/t/p/add-talent-address', {
+							region_code: this.formData.fregion,
+							detail_addr: this.formData.detailregion,
+							phone_number: this.formData.phone,
+							receiver_name: this.formData.name,
+							mail_code: this.formData.mail_code,
+							default_tag: this.formData.setdefault
+						})
+						.then(res => {
+							console.log(res)
+						})
+
+					this.formData.home_page_capture_url = this.imageData[0]
+					if (this.isBind) {
+						this.$https.post('/youngee/c/t/p/add-talent-account', {
+								platform_id: this.platform.platform_id,
+								platform_nickname: this.formData.platform_nickname,
+								home_page_url: this.formData.home_page_url,
+								fans_count: this.formData.fans_count,
+								home_page_capture_url: this.formData
+									.home_page_capture_url,
+							})
+							.then(res => {
+								console.log(res)
+							})
+					} else {
+						this.$https.post('/youngee/c/t/p/update-talent-account', {
+								account_id: this.accountId,
+								platform_id: this.platform.platform_id,
+								platform_nickname: this.formData.platform_nickname,
+								home_page_url: this.formData.home_page_url,
+								fans_count: this.formData.fans_count,
+								home_page_capture_url: this.formData
+									.home_page_capture_url,
+							})
+							.then(res => {
+								console.log(res)
+							})
+					}
+
+					uni.showToast({
+						title: '修改成功'
+					})
+					uni.navigateBack()
+				}).catch(err => {
+					console.error('验证失败:', errors)
+					uni.showToast({
+						title: '请填写所有信息',
+						icon: 'none'
+					})
+				})
+			},
+			ceshiChooseSuccess(tempFilePaths, e) { //选择图片返回
+				console.log('ceshiChooseSuccess', tempFilePaths, e);
+				if (e == 0) {
+					this.store = 'talent_upload/' + this.guid() + '.png'
+				} else if (e == 1) {
+					this.store = 'talent_upload/' + this.guid() + '.mp4'
+				}
+				/****************
+				以下代码是自定义上传逻辑,仅供参考
+				***************/
+				this.imgUpload(tempFilePaths);
+				/*******************************/
+				console.log("imgdata" + this.imageData)
+			},
+			imgUpload(tempFilePaths) {
+				let that = this
+				console.log('imgUpload', tempFilePaths)
+				let config = {
+					AccessKeyId: 'IVW21DTGIIUBBAGXKK0Y', //AK
+					SecretKey: 'Y01nEQNcLOATMw7uJwrk3yOdQZ2fqLhSnXcOKVDE', //SK
+					EndPoint: 'https://horastar.obs.cn-east-3.myhuaweicloud.com', //上传文件的路径
+				};
+				let fileName = this.store; //指定上传到OBS桶中的对象名
+				// let fileName = "talent_upload/icon-arrow-right.png"
+				let OBSPolicy = { //设定policy内容
+					"expiration": "2089-12-31T12:00:00.000Z",
+					"conditions": [{
+							"bucket": "horastar"
+						}, //Bucket name
+						// {"bucket": "goin"}, 
+						{
+							'key': fileName
+						}
+					]
+				}
+
+				let policyEncoded = getPolicyEncode(OBSPolicy); //计算policy编码值
+				let signature = getSignature(policyEncoded, config.SecretKey); //计算signature 
+				uni.uploadFile({
+					//url: config.EndPoint,
+					url: config.EndPoint,
+					filePath: tempFilePaths[0],
+					name: 'file',
+
+					formData: {
+						'AccessKeyID': config.AccessKeyId,
+						'policy': policyEncoded,
+						'signature': signature,
+						'key': fileName,
+					},
+
+					success: function(res) {
+						console.log(res.statusCode); //打印响应状态码
+						if (res.statusCode == '204') {
+							that.imageData.push(config.EndPoint + '/' + fileName);
+							console.log('上传图片成功', res)
+							let obs_url = config.EndPoint + '/' + fileName; //用你自己的 bucket 名替换星号
+							console.log(obs_url)
+							that.formData.home_img = obs_url
+							uni.showToast({
+								title: '上传成功',
+								icon: '成功'
+							});
+						} else {
+							console.log('上传图片失败', res)
+							uni.showToast({
+								title: '上传失败',
+								icon: '失败'
+							});
+						}
+					},
+					fail: function(e) {
+						console.log(e);
+					}
+				})
+			},
+			guid() {
+				return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+					var r = Math.random() * 16 | 0,
+						v = c == 'x' ? r : (r & 0x3 | 0x8);
+
+					return v.toString(16);
+				});
+			},
+			// 年龄选择的
+			bindPickerChange: function(e) {
+				this.index = e.detail.value;
+				this.formData.age = this.array[this.index].age_aid
+				this.Xage = this.array[this.index].age_bracket_discribe
+				console.log(this.formData.age)
+			},
+			//国籍选择
+			bindPickerChange1: function(e) {
+				console.log(e)
+				this.index1 = e.detail.value;
+				this.formData.nationality = this.array1[this.index1].id
+				console.log(this.formData.nationality)
+			},
+			//城市选择
+			pickerChange(e) {
+				// console.log(e, '1');
+				this.regionIndex = e.detail.value;
+				this.regionStr = this.region[0][this.regionIndex[0]].name + ' ' + this.region[1][this.regionIndex[
+						1]]
+					.name + ' ' +
+					this.region[2][this.regionIndex[2]].name;
+
+				// 组件传值
+				this.$emit('region', [this.region[0][this.regionIndex[0]].code, this.region[1][this.regionIndex[1]]
+					.code,
+					this.region[
+						2][this.regionIndex[2]].code
+				]);
+				this.formData.visitStoreRegion = this.region[2][this.regionIndex[2]].code;
+
+			},
+			pickerColumnchange(e) {
+				// console.log(e);
+				// 第几列滑动
+				// console.log(e.detail.column);
+				// 第几列滑动的下标
+				// console.log(e.detail.value)
+
+				if (e.detail.column === 0) {
+					// 声明城市数组
+					let cityArr = [];
+					let countyArr = [];
+					// 设置下标
+					this.regionIndex = [e.detail.value, 0, 0];
+					// 改变城市列表
+					this.region[1] = this.oldRegion[e.detail.value].children.map(item => {
+						cityArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 1, cityArr);
+					// 改变县区列表
+					this.oldRegion[e.detail.value].children[0].children.map(item => {
+						countyArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 2, countyArr);
+				}
+				if (e.detail.column === 1) {
+					this.regionIndex[1] = e.detail.value;
+					this.regionIndex[2] = 0;
+					let countyArr = [];
+					this.oldRegion[this.regionIndex[0]].children[this.regionIndex[1]].children.map(item => {
+						countyArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 2, countyArr);
+				}
+				if (e.detail.column === 2) {
+					this.regionIndex[2] = e.detail.value;
+				}
+			},
+			//城市选择
+			pickerChange(e) {
+				// console.log(e, '1');
+				this.regionIndex = e.detail.value;
+				this.regionStr = this.region[0][this.regionIndex[0]].name + ' ' + this.region[1][this.regionIndex[
+						1]]
+					.name + ' ' +
+					this.region[2][this.regionIndex[2]].name;
+
+				// 组件传值
+				this.$emit('region', [this.region[0][this.regionIndex[0]].code, this.region[1][this.regionIndex[1]]
+					.code,
+					this.region[
+						2][this.regionIndex[2]].code
+				]);
+				this.formData.visitStoreRegion = this.region[2][this.regionIndex[2]].code;
+
+			},
+			pickerColumnchange(e) {
+				// console.log(e);
+				// 第几列滑动
+				// console.log(e.detail.column);
+				// 第几列滑动的下标
+				// console.log(e.detail.value)
+
+				if (e.detail.column === 0) {
+					// 声明城市数组
+					let cityArr = [];
+					let countyArr = [];
+					// 设置下标
+					this.regionIndex = [e.detail.value, 0, 0];
+					// 改变城市列表
+					this.region[1] = this.oldRegion[e.detail.value].children.map(item => {
+						cityArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 1, cityArr);
+					// 改变县区列表
+					this.oldRegion[e.detail.value].children[0].children.map(item => {
+						countyArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 2, countyArr);
+				}
+				if (e.detail.column === 1) {
+					this.regionIndex[1] = e.detail.value;
+					this.regionIndex[2] = 0;
+					let countyArr = [];
+					this.oldRegion[this.regionIndex[0]].children[this.regionIndex[1]].children.map(item => {
+						countyArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 2, countyArr);
+				}
+				if (e.detail.column === 2) {
+					this.regionIndex[2] = e.detail.value;
+				}
+			},
+			//城市选择
+			pickerChange1(e) {
+				// console.log(e, '1');
+				this.regionIndex1 = e.detail.value;
+				this.regionStr1 = this.region[0][this.regionIndex1[0]].name + ' ' + this.region[1][this.regionIndex1[
+						1]]
+					.name + ' ' +
+					this.region[2][this.regionIndex1[2]].name;
+
+				// 组件传值
+				this.$emit('region', [this.region[0][this.regionIndex1[0]].code, this.region[1][this.regionIndex1[1]]
+					.code,
+					this.region[
+						2][this.regionIndex1[2]].code
+				]);
+				this.formData.fregion = this.region[2][this.regionIndex1[2]].code;
+				console.log(this.formData.fregion)
+
+			},
+			pickerColumnchange1(e) {
+				if (e.detail.column === 0) {
+					// 声明城市数组
+					let cityArr = [];
+					let countyArr = [];
+					// 设置下标
+					this.regionIndex1 = [e.detail.value, 0, 0];
+					// 改变城市列表
+					this.region[1] = this.oldRegion[e.detail.value].children.map(item => {
+						cityArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 1, cityArr);
+					// 改变县区列表
+					this.oldRegion[e.detail.value].children[0].children.map(item => {
+						countyArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 2, countyArr);
+				}
+				if (e.detail.column === 1) {
+					this.regionIndex1[1] = e.detail.value;
+					this.regionIndex1[2] = 0;
+					let countyArr = [];
+					this.oldRegion[this.regionIndex1[0]].children[this.regionIndex1[1]].children.map(item => {
+						countyArr.push({
+							name: item.name,
+							code: item.code
+						});
+					})
+					this.$set(this.region, 2, countyArr);
+				}
+				if (e.detail.column === 2) {
+					this.regionIndex1[2] = e.detail.value;
+				}
+			},
+		},
+		created() {
+			let provinceArr = [];
+			let cityArr = [];
+			this.oldRegion.map((item, index) => {
+				this.region[0].push({
+					name: item.name,
+					code: item.code
+				});
+			})
+			// console.log(provinceArr);
+			provinceArr.map((item, index) => {
+				this.region[1].push({
+					name: item.name,
+					code: item.code
+				});
+			})
+			cityArr.map((item, index) => {
+				this.region[2].push({
+					name: item.name,
+					code: item.code
+				});
+			})
+			this.regionStr = '请选择省市区';
+		}
+	};
+</script>
+<style>
+	picker {
+		position: relative;
+		display: block;
+		cursor: pointer;
+		padding-left: 20rpx !important;
+		padding-top: 20rpx !important;
+		color: grey !important;
+	}
+
+	/deep/.uni-forms-item__inner {
+		border-bottom: none !important;
+		margin-bottom: 0 !important;
+	}
+</style>
+<style lang="scss" scoped>
+	@charset "UTF-8";
+
+	/* 头条小程序组件内不能引入字体 */
+	/* #ifdef MP-TOUTIAO */
+	@font-face {
+		font-family: uniicons;
+		font-weight: normal;
+		font-style: normal;
+		src: url("~@/static/uni.ttf") format("truetype");
+	}
+
+	/* #endif */
+	/* #ifndef APP-NVUE */
+
+	page {
+		display: flex;
+		flex-direction: column;
+		box-sizing: border-box;
+		background-color: #FFFFFF;
+		min-height: 100%;
+		height: auto;
+	}
+
+	view {
+		font-size: 14px;
+		// line-height: inherit;
+	}
+
+	.title {
+		background-color: #EEEEEE;
+		height: 80rpx;
+		display: flex;
+		align-items: center;
+	}
+
+	.title p {
+		padding-left: 10rpx;
+	}
+
+	.menu {
+		position: fixed;
+		top: 180rpx;
+		background-color: #FFFFFF;
+		justify-content: space-around;
+		height: 80rpx;
+		// height: 5%;
+		width: 100%;
+		display: flex;
+		z-index: 10;
+		margin-bottom: 10rpx;
+	}
+
+	.menu-item p {
+		font-weight: 600;
+
+		&.lor {
+			border-bottom: 5rpx solid #F0D232;
+			color: #F0D232;
+			padding-bottom: 15rpx;
+		}
+	}
+
+	.setdeault {
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.btn1 {
+		margin: 30rpx;
+		font-size: 35rpx;
+		color: #FFFFFF;
+		background-color: #F0D232;
+		border: none;
+		border-radius: 0;
+	}
+
+	.uni-input-border,
+	.uni-textarea-border {
+		flex: 1;
+		font-size: 14px;
+		color: #666;
+		border: 1px #FFFFFF solid;
+		border-radius: 5px;
+		/* #ifndef APP-NVUE */
+		box-sizing: border-box;
+		/* #endif */
+	}
+
+	.uni-input-border {
+		padding: 0 10px;
+		height: 35px;
+	}
+
+	.uni-textarea-border {
+		padding: 10px;
+		height: 80px;
+	}
+
+	.label-box {
+		margin-right: 10px;
+	}
+
+	.transform-scale {
+		transform: scale(0.7);
+	}
+
+	.butto {
+		text-align: center;
+	}
+
+	.option {
+		padding: 20rpx;
+	}
+
+	.uni-margin-wrap {
+		width: 690rpx;
+		width: 100%;
+		;
+	}
+
+	.swiper {
+		height: 300rpx;
+	}
+
+	.swiper-item {
+		display: block;
+		height: 300rpx;
+		line-height: 300rpx;
+		text-align: center;
+	}
+
+	.swiper-list {
+		margin-top: 40rpx;
+		margin-bottom: 0;
+	}
+
+	.uni-common-mt {
+		margin-top: 60rpx;
+		position: relative;
+	}
+
+	.info {
+		position: absolute;
+		right: 20rpx;
+	}
+
+	.uni-padding-wrap {
+		width: 550rpx;
+		padding: 0 100rpx;
+	}
+
+	.signup {
+		box-shadow: 0rpx 5rpx 40rpx #ccc;
+		width: 100%;
+		position: fixed;
+		bottom: 0rpx;
+		display: flex;
+		height: 90rpx;
+		padding-top: 2%;
+		background-color: #FFFFFF;
+		justify-content: space-around;
+	}
+
+	.signuptext {
+		text-align: center;
+		margin-top: 2%;
+
+	}
+
+	.signuptext p {
+		font-size: 60%;
+		color: #333333;
+	}
+
+	.signupbut {
+		text-align: center;
+		margin-top: 2%;
+	}
+
+	.but1 {
+		width: 120%;
+		text-align: center;
+		background-color: #FCCF41;
+		border-radius: 10rpx;
+		color: #464100;
+		font-size: 28rpx;
+		line-height: 156%;
+
+		font-weight: 500;
+		height: 65%;
+	}
+
+	/deep/.uni-searchbar__box {
+		border-color: #267CFF !important;
+		border-width: 2rpx !important;
+	}
+
+	/deep/.uni-searchbar__box {
+		background-color: #FFFFFF !important;
+	}
+
+	/deep/.uni-searchbar__text-placeholder {
+		font-size: 30rpx !important;
+	}
+
+	/deep/.segmented-control__text {
+		font-size: 34rpx !important;
+	}
+
+	/deep/.uni-data-checklist {
+		padding-left: 20upx;
+	}
+
+	uni-picker {
+		position: relative;
+		display: block;
+		cursor: pointer;
+		padding-left: 20rpx !important;
+		padding-top: 14rpx !important;
+		color: grey !important;
+	}
+
+	/deep/.uni-date-x--border {
+		border: 0px solid #dcdfe6 !important;
+	}
+
+	/deep/.is-input-border {
+		border: 0px solid #c8c7cc !important;
+	}
+
+	/deep/.uni-progress-info {
+		font-size: 25rpx !important;
+	}
+
+	/deep/.uni-error-message {
+		position: absolute;
+		bottom: -20rpx !important;
+		left: 20rpx !important;
+		text-align: left;
+	}
+
+	/deep/.uni-forms-item__inner {
+		padding-bottom: 0rpx !important;
+		margin-bottom: 30rpx !important;
+		border-bottom: 0.5rpx solid #CCCCCC;
+	}
+
+	/deep/.uni-group__title {
+		background-color: #FFFFFF !important;
+	}
+
+	/deep/.uni-list-item__content-title {
+		font-size: 30rpx !important;
+		color: #111111 !important;
+	}
+
+	/deep/.uni-progress-bar {
+		border-radius: 10rpx !important;
+	}
+
+	/deep/.uni-progress-inner-bar {
+		border-radius: 10rpx !important;
+	}
+
+
+	/deep/.is-input-border {
+		border-radius: 20px !important;
+		background-color: #fff;
+	}
+
+	.uni-easyinput__content-input {
+		font-size: 30upx !important;
+	}
+
+	.content-clear-icon {
+		font-size: 40upx !important;
+	}
+
+	/deep/.input-box {
+		padding: 50upx;
+		font-size: 30upx;
+
+		.input-item {
+			display: flex;
+
+			border: 1upx solid #F8F8F8;
+			line-height: 90upx;
+			height: 90upx;
+			margin-top: 20upx;
+			background: #F8F8F8;
+			border-radius: 48upx;
+
+			.input-label {
+				width: 150upx;
+				text-align: center;
+			}
+
+			.input-body {
+				position: relative;
+				height: 100upx;
+				width: calc(100% - 150upx);
+
+				.input {
+					line-height: 90upx;
+					height: 90upx;
+					position: relative;
+					font-size: 28upx;
+				}
+
+				.eye {
+					position: absolute;
+					height: 50upx;
+					width: 50upx;
+					right: 20upx;
+					top: 50%;
+					transform: translateY(-50%);
+				}
+
+				.btn-code {
+					position: absolute;
+					right: 0upx;
+					top: 50%;
+					transform: translateY(-50%);
+					background: none;
+					color: #205592;
+					width: 160upx;
+					font-size: 24upx;
+					box-sizing: border-box;
+					text-align: center;
+					padding: 0;
+					height: 100upx;
+					line-height: 100upx;
+				}
+			}
+		}
+
+		.select {
+			// padding-top: 40upx;
+			display: flex;
+			justify-content: space-between;
+			color: #003B67;
+		}
+	}
+
+	/deep/.title-left {
+		width: 3px;
+		height: 16px;
+		background: #267CFF;
+		display: inline-block;
+		border-radius: 3px;
+		margin-top: 3px;
+		vertical-align: top;
+		margin-right: 10px;
+	}
+
+
+	.card {
+		padding: 24rpx;
+		margin-top: 30rpx;
+		border: 1rpx solid #F0D232;
+		background-color: #ffffff;
+		margin: 0 10rpx;
+	}
+
+	.head {
+		padding-top: 5%;
+		padding: 0 0 0 1%;
+		height: 80rpx;
+		margin-top: 2%;
+	}
+
+	.head span {
+		color: #333333;
+		font-size: 80%;
+		font-weight: 550;
+		text-indent: 2em;
+
+	}
+
+	.head image {
+		vertical-align: middle;
+		width: 50rpx;
+		height: 50rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.home-link {
+		/deep/.uni-easyinput__content-input {
+			background-color: #EBEBEB;
+			border-radius: 15rpx;
+		}
+	}
+
+
+	.heng-line {
+		margin-top: 60rpx;
+		margin-bottom: 50rpx;
+		border: 1rpx solid #DCDCDC;
+
+	}
+
+	.signupbtn p {
+		font-size: 30rpx;
+	}
+
+	.exit-btn {
+		width: 120%;
+		text-align: center;
+		background-color: #C0C0C0;
+		border-radius: 10rpx;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		line-height: 180%;
+	}
+
+	.main-btn {
+		width: 300rpx;
+		text-align: center;
+		background-color: #FCCF41;
+		border-radius: 10rpx;
+		color: #000000;
+		font-size: 30rpx;
+		line-height: 180%;
+	}
+
+	.uni-input-placeholder {
+		font-size: 24rpx !important;
+	}
+
+	/deep/.uni-date-x--border {
+		border: 0px solid #dcdfe6 !important;
+	}
+
+	/deep/.is-input-border {
+		border: 0px solid #c8c7cc !important;
+	}
+
+
+
+	.example {
+		padding: 0 15px 15px;
+	}
+
+	.example-info {
+		padding: 15px;
+		color: #3b4144;
+		background: #ffffff;
+	}
+
+	.example-body {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		flex-wrap: wrap;
+		justify-content: center;
+		padding: 0;
+		font-size: 14px;
+		background-color: #ffffff;
+	}
+
+	/* #endif */
+	.example {
+		padding: 0 15px;
+	}
+
+	.example-info {
+		/* #ifndef APP-NVUE */
+		display: block;
+		/* #endif */
+		padding: 15px;
+		color: #3b4144;
+		background-color: #ffffff;
+		font-size: 14px;
+		line-height: 20px;
+	}
+
+	.example-info-text {
+		font-size: 14px;
+		line-height: 20px;
+		color: #3b4144;
+	}
+
+	.example-body {
+		flex-direction: column;
+		padding: 15px;
+		background-color: #ffffff;
+	}
+</style>

+ 110 - 0
pages/tasksquare/cooperation.vue

@@ -0,0 +1,110 @@
+<template>
+	<view>
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view class="home">
+			<!-- 我是品牌合作页面 -->
+			<image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/h8.png" style="width: 100%;"
+				mode="widthFix"></image>
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	export default {
+		components: {
+			mvBar,
+		},
+		data() {
+			return {
+
+
+				mysNavConfig: {
+					/* 占位开启  */
+					// navPadding: true,
+					/* 背景 */
+					// bgColor: "#f8f8f8",
+					/* 开启单页显示首页图标 */
+					isHome: true,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "YoungGee",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "", // 100 - 700
+					},
+					btnType: "type2",
+					onLeftClick: '',
+					/* type2 按钮 */
+					type2Config: {
+						// 左图标
+						leftPath: "/static/img/png2.png",
+						// 右图标
+						rightPath: "/static/img/png4.png",
+						// 圆角
+						radius: "40rpx",
+					},
+					/* 定义右侧图标 */
+					// rightIconPath: "/static/s.png",
+				},
+			};
+		},
+		methods: {
+
+		}
+	};
+</script>
+<style>
+
+</style>
+<style lang="scss" scoped>
+	.butto {
+		text-align: center;
+	}
+
+	.option {
+		padding: 20rpx;
+	}
+
+	.uni-margin-wrap {
+		width: 690rpx;
+		width: 100%;
+		;
+	}
+
+	.swiper {
+		height: 300rpx;
+	}
+
+	.swiper-item {
+		display: block;
+		height: 300rpx;
+		line-height: 300rpx;
+		text-align: center;
+	}
+
+	.swiper-list {
+		margin-top: 40rpx;
+		margin-bottom: 0;
+	}
+
+	.uni-common-mt {
+		margin-top: 60rpx;
+		position: relative;
+	}
+
+	.info {
+		position: absolute;
+		right: 20rpx;
+	}
+
+	.uni-padding-wrap {
+		width: 550rpx;
+		padding: 0 100rpx;
+	}
+</style>

+ 111 - 0
pages/tasksquare/guide.vue

@@ -0,0 +1,111 @@
+<template>
+	<view>
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view class="home">
+			<!-- 我是新人指南页面 -->
+			<image :src="picture.h5" style="width: 100%;" mode="widthFix"></image>
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	export default {
+		components: {
+			mvBar,
+		},
+		data() {
+			return {
+				picture: {
+					h5: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/h5.png'
+				},
+
+				mysNavConfig: {
+					/* 占位开启  */
+					// navPadding: true,
+					/* 背景 */
+					// bgColor: "#f8f8f8",
+					/* 开启单页显示首页图标 */
+					isHome: true,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "新人指南",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "", // 100 - 700
+					},
+					btnType: "type2",
+					onLeftClick: '',
+					/* type2 按钮 */
+					type2Config: {
+						// 左图标
+						leftPath: "/static/img/png2.png",
+						// 右图标
+						rightPath: "/static/img/png4.png",
+						// 圆角
+						radius: "40rpx",
+					},
+					/* 定义右侧图标 */
+					// rightIconPath: "/static/s.png",
+				},
+			};
+		},
+		methods: {
+
+		}
+	};
+</script>
+<style>
+
+</style>
+<style lang="scss" scoped>
+	.butto {
+		text-align: center;
+	}
+
+	.option {
+		padding: 20rpx;
+	}
+
+	.uni-margin-wrap {
+		width: 690rpx;
+		width: 100%;
+		;
+	}
+
+	.swiper {
+		height: 300rpx;
+	}
+
+	.swiper-item {
+		display: block;
+		height: 300rpx;
+		line-height: 300rpx;
+		text-align: center;
+	}
+
+	.swiper-list {
+		margin-top: 40rpx;
+		margin-bottom: 0;
+	}
+
+	.uni-common-mt {
+		margin-top: 60rpx;
+		position: relative;
+	}
+
+	.info {
+		position: absolute;
+		right: 20rpx;
+	}
+
+	.uni-padding-wrap {
+		width: 550rpx;
+		padding: 0 100rpx;
+	}
+</style>

+ 1671 - 0
pages/tasksquare/taskdetail.vue

@@ -0,0 +1,1671 @@
+<template>
+	<view style="position: relative;" v-if="!tyy">
+		<!-- 胶囊 -->
+		<mvBar :mysNavConfig="mysNavConfig"></mvBar>
+		<view class="" id="wrap0">
+
+			<view class="home" style="padding-top: 180rpx;">
+
+				<view class="uni-margin-wrap">
+					<swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="3000"
+						:duration="1000">
+						<swiper-item v-for="item in carousel_images">
+							<image :src="item" mode="" style="width: 100% ;height: 100% ;"></image>
+						</swiper-item>
+					</swiper>
+
+
+					<view class="">
+						<view class="Tasktext">
+							<image :src="information.PlatformInfo.platform_icon" mode=""></image>
+							<span>{{information.project_name}}</span>
+						</view>
+						<view class="introduction">
+							<view class="rleft">
+								<p>商品价值:{{information.Product.product_price}}元</p>
+							</view>
+							<view class="rright">
+								<p>申请截止时间:{{information.recruit_ddl}}</p>
+							</view>
+						</view>
+						<view class="tasks">
+							<view class="tasksleft">
+								<p><span style="color: #FDD442;font-size: 120% ;">{{information.taskNum}}</span>
+								</p>
+								<p>任务数量</p>
+							</view>
+							<view class="title-left"></view>
+							<view class="tasksright">
+								<p><span style="color: #FDD442;font-size: 120% ;">{{information.apply_num}}</span>
+								</p>
+								<p>报名人数</p>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<!-- <view class="interval"></view> -->
+			<view class="home" style="padding-top: 0;">
+				<view class="">
+					<view class="circularmark">
+						<p>任务奖励</p>
+					</view>
+					<view class="markcontent">
+						<view style="display: flex;margin: 5rpx 0;">
+							<p>商品价值:</p>
+							<p class="wvp" style="padding: 0 30rpx;">{{information.Product.product_price}}元</p>
+						</view>
+						<view style="display: flex;margin: 5rpx 0;">
+							<p v-if="information.Product.product_url !== ''">商品链接:</p>
+							<p class="wvp">{{information.Product.product_url}}</p>
+						</view>
+						<p>合作佣金:点击报名后显示</p>
+					</view>
+				</view>
+				<view class="">
+					<view class="circularmark">
+						<p>账号要求</p>
+					</view>
+					<view class="markcontent">
+						<view style="display: flex;margin: 5rpx 0;">
+							<p>社媒平台:</p>
+							<p class="wvp">{{information.PlatformInfo.platform_name}}</p>
+							<p style="padding-left: 50rpx;">任务形式:</p>
+							<p class="wvp">{{information.project_form}}</p>
+						</view>
+						<view style="display: flex;margin: 5rpx 0;">
+							<p>创作者类型: </p>
+							<p class="wvp" v-for="(item,index) in information.talent_type">{{item}}</p>
+						</view>
+						<view style="display: flex;margin: 5rpx 0;">
+							<p>粉丝数要求: </p>
+							<p class="wvp" v-for="(item,index) in information.Numfensi">{{item}}</p>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="" id="wrap1">
+				<view class="home" style="padding-top: 0;">
+					<view class="">
+
+						<view class="circularmark">
+							<p>任务要求</p>
+						</view>
+						<view class="markcontent">
+							<view style="display: flex;margin: 5rpx 0;">
+								<p>内容形式:</p>
+								<p class="wvp">{{information.content}}</p>
+							</view>
+							<p style="margin: 5rpx 0;">商品描述:</p>
+							<p class="wvp" style="margin: 0;padding: 10rpx 0;"> {{information.Product.product_detail}}
+							</p>
+							<p style="margin: 5rpx 0;">任务详情:</p>
+							<p class="wvp" style="margin: 0;padding: 10rpx 0;"> {{information.project_detail}} </p>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="" id="wrap2">
+
+				<view class="home" style="padding-top: 0;">
+					<view class="">
+						<view class="circularmark">
+							<p>任务详情图</p>
+						</view>
+						<view class="markcontent1">
+							<view class="diagram" v-for="item in information.ProjectPhoto">
+								<image :src="item.photo_url" mode="widthFix"></image>
+							</view>
+						</view>
+					</view>
+					<view class="">
+						<view class="circularmark">
+							<p>商品详情图</p>
+						</view>
+						<view class="markcontent1">
+							<view class="diagram" v-for="item in product_detail_images">
+								<image :src="item" mode="widthFix"></image>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="interval2"></view>
+			</view>
+
+			<view class="signup">
+				<button type="default" class="but1" :disabled="tyy" :class="{'on':item.title == '1',}"
+					@click="toggle('bottom')" v-if="Registered==0"> 立即报名</button>
+				<button type="default" class="but1" disabled v-if="Registered==1"> 已报名 </button>
+				<button type="default" class="but2" @click="toggle1('bottom')">
+					<image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/task8.png" mode=""></image>
+					分享
+				</button>
+			</view>
+			<view>
+				<!-- 底部普通弹窗 -->
+				<uni-popup ref="popup" background-color="#fff" @change="change" style="border-radius: 20rpx;">
+					<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
+						<view class="">
+							<view class="sampledrawing">
+								<image :src="img" style="width: 250rpx;height: 235rpx;margin-top: -9% ;" mode="">
+								</image>
+								<view class="samplecharacter">
+									<p style='color: #666666;font-size: 80% ;'>
+										{{ information.IsBuySamples.buy_samples_type==1?'样叽拍单返款':'不拍单'}}<span
+											style='font-size: 120% ;color: #FCA641;margin-right: 3% ;'
+											v-if="information.IsBuySamples.buy_samples_type==1">¥{{information.IsBuySamples.buySamplesRefund}}</span>
+									</p>
+									<p style='color: #999999;font-size: 60% ;'>品牌合作,作品合格返还。不合格,筛选后返还。</p>
+								</view>
+							</view>
+							<!-- 黑线 -->
+							<view class=""
+								style="border-bottom: 2rpx solid #C0C0C0;margin-top: 3% ;margin-bottom: 3% ;">
+							</view>
+							<view class="" style="margin-left: 3% ;">
+								<h3>产品规格</h3>
+								<view class="">
+									<uni-data-checkbox mode="tag" v-model="value" :localdata="sex">
+									</uni-data-checkbox>
+								</view>
+							</view>
+							<view class="" style="margin-left: 3% ; ">
+								<h3>合作选择(平台账号不达标不能选择)</h3>
+								<view class="" style="display: flex;">
+									<view class="buu">
+										<uni-data-checkbox mode="tag" v-model="value1" :localdata="coop_choice">
+										</uni-data-checkbox>
+									</view>
+
+
+								</view>
+
+							</view>
+							<!-- 黑线 -->
+							<view class=""
+								style="border-bottom: 2rpx solid #C0C0C0;margin-top: 3% ;margin-bottom: 3% ;">
+							</view>
+							<view class="butto">
+								<!-- <button class="mini-btn"  size="mini" @tap="Reset" style="background-color: #FFFFFF;">更新账号</button> -->
+								<button class="mini-btn" size="mini" @tap="determine"
+									style="background-color: #FCCF41;">立即报名</button>
+							</view>
+						</view>
+					</view>
+				</uni-popup>
+			</view>
+			<view>
+				<!-- 底部普通弹窗 -->
+				<uni-popup ref="popup1" background-color="#fff" @change="change" style="border-radius: 20rpx;">
+					<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
+						<view
+							style="display: flex; justify-content: space-around; margin-top: 10% ;margin-bottom: 3% ;">
+							<view>
+								<button class="tii2" data-name="shareBtn" open-type="share">
+									<view class="circular" style="margin-top: 10% ;">
+										<image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/taskw.png"
+											mode=""></image>
+									</view>
+									<p class="tii">发送给朋友</p>
+								</button>
+							</view>
+							<view>
+								<button class="tii2" @click="toggle2('center')">
+									<view class="circular" style="margin-top: 10% ;">
+										<image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/taske.png"
+											mode=""></image>
+									</view>
+									<p class="tii">生成分享码</p>
+								</button>
+							</view>
+						</view>
+
+						<button type="default" class="errar" @click="cancel()">取消</button>
+					</view>
+				</uni-popup>
+			</view>
+			<canvas class="my-canvas" canvas-id="myCanvas" id="myCanvas"
+				:style="{'width': `${poster.width}px`, 'height': `${poster.height}px`}" />
+			<uni-popup ref="popup2" class="share1" background-color="#fff" @change="change">
+				<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
+
+					<view>
+						<image :src="posterImg" style="width: 100% ;border-radius: 10rpx;" mode="widthFix" />
+					</view>
+
+					<view class="" style="text-align: center;margin-bottom: 5% ;">
+						<button class="butmin" size="mini" @tap="saveImage">保存</button>
+					</view>
+				</view>
+			</uni-popup>
+			<view>
+			</view>
+		</view>
+	</view>
+	</view>
+</template>
+
+<script>
+	import mvBar from "@/components/mys_navBar/mysNavBar";
+	import zSwiper from '@/components/z-swiper/index.vue'
+	import {
+		saveImageToPhotosAlbum,
+		showToast,
+		downloadFile
+	} from '@/uni_modules/sakura-canvas/js_sdk/util'
+	import Draw from '@/uni_modules/sakura-canvas/js_sdk/draw'
+	let draw = null
+	export default {
+		components: {
+			mvBar,
+			zSwiper
+		},
+		data() {
+			return {
+				share: {
+					title: "",
+					path: '',
+					imageUrl: '',
+					desc: '',
+					content: ''
+				},
+				poster: {},
+				posterImg: '',
+				canvasId: 'myCanvas',
+				img: '',
+				task_type_info: ["实体商品寄拍", "虚拟产品测评", "线下探店打卡", "素材微原创"],
+				talent_type_info: ["美妆", "美食", "生活", "时尚", "测评", "旅行", "汽车", "萌宠", "游戏", "音乐", "舞蹈", "房产", "情感", "三农",
+					"园艺", "随拍", "图文控", "二次元", "母婴亲子", "颜值达人", "剧情搞笑", "运动健身", "家居家装", "科技数码", "教育培训", "才艺技能", "艺术文化",
+					"财经投资",
+				],
+				title: '[东鑫记港式茶餐厅]南京东路|魔都新晋爆款茶餐厅来袭!99元抢门',
+				price: '',
+				tips: '识别二维码\n立即申请任务',
+				head: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/task15.png',
+				big: '',
+				tyy: true,
+				tabBarStyle: {},
+				activeTab: 0,
+				hei: '',
+				hei1: '',
+				topp0: '',
+				topp1: '',
+				topp2: '',
+				scrollTop: '',
+				activeColor: '#FCCF41',
+				value: '',
+				value1: '',
+				sex: [],
+				coop_choice: [],
+				type: 'center',
+				type1: 'center',
+				type2: 'center',
+				item: {
+					title: '0'
+				},
+				// 视频轮播
+				fullScreen: true,
+				topFloat: true,
+				fotterFloat: true,
+				// 指示器样式
+				mode: 'circle',
+				indicatorPos: 'bottomCenter',
+				list1: [{
+						type: 'video',
+						poster: 'https://img2.baidu.com/it/u=2141851239,1037607188&fm=26&fmt=auto&gp=0.jpg',
+						src: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/a876efc0-4f35-11eb-97b7-0dc4655d6e68.mp4',
+					},
+					{
+						type: 'image',
+						src: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home1.png'
+					},
+
+					{
+						type: 'video',
+						poster: 'https://img1.baidu.com/it/u=1297253752,1185196455&fm=26&fmt=auto&gp=0.jpg',
+						src: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/a876efc0-4f35-11eb-97b7-0dc4655d6e68.mp4',
+					},
+					{
+						type: 'image',
+						src: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home1.png'
+					},
+
+				],
+				carousel_images: ['https://img2.baidu.com/it/u=2141851239,1037607188&fm=26&fmt=auto&gp=0.jpg',
+					'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home1.png',
+				],
+				dotIndex: 0, //指示器索引
+				dotFloatIndex: 0, //位置指示器索引
+				//轮播图
+
+				swiper: {
+					margin: "150rpx",
+					index: 0,
+					list: [
+
+					]
+				},
+
+				tar: false,
+				mysNavConfig: {
+					/* 占位开启  */
+					// navPadding: true,
+					/* 背景 */
+					// bgColor: "#f8f8f8",
+					/* 开启单页显示首页图标 */
+					isHome: false,
+					/* 固定导航  */
+					navFixed: true,
+					/* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
+					navTitle: {
+						text: "任务详情",
+						color: "",
+						fontSize: "32rpx", // px upx rpx
+						fontWeight: "", // 100 - 700
+					},
+					btnType: "type2",
+					onLeftClick: '',
+					/* type2 按钮 */
+					type2Config: {
+						// 左图标
+						leftPath: "https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/png2.png",
+						// 右图标
+						rightPath: "https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/png4.png",
+						// 圆角
+						radius: "40rpx",
+					},
+				},
+				projectid: '',
+				talent: {},
+				account: [],
+				information: {},
+				token: '',
+				fensishu: '',
+				Registered: '0',
+				zhanghaocode: '',
+				product_detail_images: [],
+				codeImg: '',
+				queryAll: '',
+			};
+		},
+		async created() {},
+		onShow() {
+			this.fensishu = ''
+			this.token = uni.getStorageSync('token')
+			this.getProjectDetail()
+			console.log(this.token)
+			// this.value=''
+			// this.value1=''
+		},
+		onLoad(options) {
+			// 传过来的id
+			// console.log(options)
+			this.projectid = options.id
+			const scene = decodeURIComponent(options.scene);
+			if (scene != "undefined") {
+				this.projectid = scene;
+			}
+
+			this.share.path = '/pages/tasksquare/taskdetail?id=' + this.projectid
+			this.postlist()
+
+		},
+		onReady() { // 注意:想要拿到元素实例,需要在实例已经挂载到页面上才可以
+
+		},
+		methods: {
+
+			postlist() {
+				this.$http.post('/youngee/c/p/get-qrcode', {
+						scene: this.projectid,
+						page: 'pages/tasksquare/taskdetails',
+					})
+					.then(res => {
+						console.log(res)
+						this.head = 'data:image/png;base64,' + res.data.data;
+					})
+			},
+			getProjectDetail() {
+				this.$http.get('/youngee/c/t/g/get-project-detail' +
+					"?" +
+					"projectid" +
+					"=" +
+					this.projectid
+				).then(res => {
+					console.log(res)
+					this.information = res.data.data
+
+					// 分享图里的
+					for (let i = 0; i < this.information.Product.ProductPhoto.length; i++) {
+
+						if (this.information.Product.ProductPhoto[i].symbol === 1) {
+							this.img = this.information.Product.ProductPhoto[i].photo_url
+							this.share.imageUrl = this.information.Product.ProductPhoto[i].photo_url
+						}
+					}
+					this.title = this.information.project_name
+					this.share.title = this.information.project_name
+
+					// 轮播图、详情图
+					this.carousel_images = []
+					this.product_detail_images = []
+					for (let i = 0; i < this.information.Product.ProductPhoto.length; i++) {
+						if (this.information.Product.ProductPhoto[i].symbol !== 3) {
+							this.carousel_images.push(this.information.Product.ProductPhoto[i].photo_url)
+							if (this.information.Product.ProductPhoto[i].symbol !== 1)
+								this.product_detail_images.push(this.information.Product.ProductPhoto[i].photo_url)
+						}
+					}
+					// 钱数除100
+					// if (this.information.IsBuySamples) {
+					// 	if (this.information.IsBuySamples.buySamplesCost) {
+					// 		this.information.IsBuySamples.buySamplesCost = Number(this.information.IsBuySamples
+					// 			.buySamplesCost) * 0.01
+					// 	}
+					// 	if (this.information.IsBuySamples.buySamplesRefund) {
+					// 		this.information.IsBuySamples.buySamplesRefund = Number(this.information.IsBuySamples
+					// 			.buySamplesRefund) * 0.01
+					// 	}
+					// }
+
+					// if (this.information.Product.product_price) {
+					// 	this.information.Product.product_price = Number(this.information.Product
+					// 		.product_price) * 0.01
+					// }
+
+					// 任务数量
+					this.information.taskNum = 0
+					for (let j = 0; j < this.information.RecruitStrategy.length; j++) {
+						this.information.taskNum = Number(this.information.taskNum) + Number(this.information
+							.RecruitStrategy[j]
+							.recruit_number)
+					}
+
+					// 任务类型
+					this.information.project_form = this.task_type_info[this.information.project_form - 1]
+
+					// 创作者类型
+					let arr = JSON.parse(this.information.talent_type)
+					this.information.talent_type = []
+					if (arr.length == 0) this.information.talent_type.push("不限")
+					for (var j = 0; j < arr.length; ++j) {
+						this.information.talent_type.push(this.talent_type_info[arr[j] - 1])
+					}
+
+					// 粉丝数要求
+					this.information.Numfensi = []
+					for (let i = 0; i < this.information.RecruitStrategy.length; ++i) {
+						let fensi = this.information.RecruitStrategy[i].followers_low + ' - ' + this.information
+							.RecruitStrategy[i].followers_up
+						this.information.Numfensi.push(fensi)
+					}
+
+					// 任务形式
+					if (this.information.content_type == 1) this.information.content = "图文"
+					else if (this.information.content_type == 2) this.information.content = "视频"
+
+					// 报名截止日期
+					this.information.recruit_ddl = this.information.recruit_ddl.substr(0, 10);
+
+					// 合作选择
+					var arr1 = [];
+					for (let i = 0; i < this.information.RecruitStrategy.length; ++i) {
+						let fee_form = this.information.RecruitStrategy[i].fee_form
+						let str1 = '粉丝量' + this.information.RecruitStrategy[i].followers_low + ' - ' + this
+							.information
+							.RecruitStrategy[i].followers_up + '   稿费:'
+						let str2 = fee_form == 1 ? '产品置换' : (fee_form == 2 ? '稿费' : '创作者自报价')
+						let str3 = fee_form == 2 ? '' + this.information.RecruitStrategy[i].offer + '元/人' : ''
+						let str = str1 + str2 + str3
+						let choice = {
+							value: this.information.RecruitStrategy[i].strategy_id,
+							fee_form: fee_form,
+							text: str
+						}
+						arr1.push(choice)
+					}
+					this.coop_choice = arr1
+
+					this.getlist2()
+					this.getlist3()
+
+					this.tyy = false
+
+				})
+			},
+			//达人信息
+			getlist2() {
+				this.$https.get('/youngee/c/t/g/get-talent-info')
+					.then(res => {
+						console.log("talent")
+						console.log(res.data.data)
+						this.talent = res.data.data
+					})
+			},
+			//账号信息
+			getlist3() {
+				this.$https.get('/youngee/c/t/g/get-talent-account')
+					.then(res => {
+						console.log("account")
+						console.log(res.data.data)
+						var accounts = res.data.data
+						if (res.data.code !== -3) {
+							for (var i = 0; i < accounts.length; i++) {
+								if (this.information.project_platform == accounts[i].platform_id) {
+									this.account.push(accounts[i])
+								}
+							}
+						}
+					})
+			},
+			// 位运算方法
+			contentFormToString(val) {
+				let result = ""
+
+				let broadcast = 128
+				let broadcastType = val & broadcast
+				if (broadcastType > 0) {
+					result += "直播"
+				} else {
+					let imgMask = 15
+					let articleMask = 48
+					let liveMask = 64
+					let originImgVal = 1
+					let zhidingImgVal = 2
+					let originVideo = 4
+					let zhidingVidel = 8
+					let origArticle = 16
+					let zhidingArticle = 32
+
+					let imgAVal = val & imgMask
+					if (imgAVal == originImgVal) {
+						result += "原创图片"
+					} else if (imgAVal == zhidingImgVal) {
+						result += "指定图片"
+					} else if (imgAVal == originVideo) {
+						result += "原创视频"
+					} else if (imgAVal == zhidingVidel) {
+						result += "指定视频"
+					}
+
+					let articleType = val & articleMask
+
+
+					if (articleType == origArticle) {
+						result += "+ 原创文案"
+					} else if (articleType == zhidingArticle) {
+						result += "+ 指定文案"
+					}
+				}
+				return result
+			},
+			// 滑动
+			anniu() {
+				uni.pageScrollTo({
+					scrollTop: this.topp0
+
+				})
+				this.activeTab = 0
+			},
+			anniu1() {
+				uni.pageScrollTo({
+					scrollTop: this.topp1 - this.hei1 + this.hei + this.hei
+				})
+				this.activeTab = 1
+			},
+			anniu2() {
+				uni.pageScrollTo({
+					scrollTop: this.topp2 - this.hei
+				})
+				this.activeTab = 2
+			},
+			//scroll滚动
+			// async tabScoll(e){
+			// 	let scrollTop = e.detail.scrollTop;
+			// 	console.log(scrollTop)
+
+			// },
+			onPageScroll(res) {
+				uni.$emit('onPageScroll', res.scrollTop);
+				this.scrollTop = res.scrollTop;
+				// console.log(res.scrollTop);
+				if (res.scrollTop <= this.topp1 - this.hei1) {
+					// console.log(0)
+					this.activeTab = 0
+				}
+				if (res.scrollTop > this.topp1 - this.hei1 && res.scrollTop < this.topp2 - this.hei1) {
+					// console.log(1)
+					this.activeTab = 1
+				}
+				if (res.scrollTop > this.topp2 - this.hei1) {
+					// console.log(2)
+					this.activeTab = 2
+				}
+			},
+
+
+			//获取节点离顶部高度
+			getInfo() {
+
+				const query = uni.createSelectorQuery().in(this);
+
+				query.select('#wrap0').boundingClientRect(data => {
+
+					this.topp0 = data.top
+				}).exec();
+				query.select('#wrap1').boundingClientRect(data => {
+
+					this.topp1 = data.top
+				}).exec();
+				query.select('#wrap2').boundingClientRect(data => {
+					this.topp2 = data.top
+					// console.log(this.topp2)
+				}).exec();
+				query.select('#wap').boundingClientRect(data => {
+
+					// console.log(data)
+					this.hei = data.height
+					this.tabBarStyle = {
+
+						height: data.height + data.height + 'px',
+						width: '100% ',
+					}
+				}).exec();
+				query.select('#wa').boundingClientRect(data => {
+
+					// console.log(data)
+					this.hei1 = data.height
+
+				}).exec();
+
+			},
+			//视频轮播
+			effect3dMarginMethed() {
+				this.effect3dMargin++
+			},
+			//swiper滑动事件
+			swiperChange: function(e) {
+				this.swiper.index = e.detail.current;
+			},
+			//底部弹出层
+			change(e) {
+				console.log('当前模式:' + e.type + ',状态:' + e.show);
+			},
+			toggle(type) {
+				let that = this
+				if (that.talent.is_bind_info == 0 || that.talent.is_bind_location == 0 || that.account.length == 0) {
+					// 前往个人信息绑定三合一界面
+					uni.showModal({
+						content: '请先绑定个人信息',
+						success: function(res) {
+							if (res.confirm) {
+								console.log(that.talent)
+								console.log("in")
+
+								if (that.account.length == 0) {
+									uni.navigateTo({
+										url: '/pages/tasksquare/bindinfo?platform_id=' + that
+											.information.project_platform
+									})
+
+								} else {
+									uni.navigateTo({
+										url: '/pages/tasksquare/bindinfo?platform_id=' + that
+											.information
+											.project_platform + '&account_id=' + that.account[0]
+											.account_id
+									})
+								};
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
+						}
+					});
+				} else {
+					that.type = type
+					// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+					that.$refs.popup.open(type)
+				}
+			},
+			// 生成分享图
+			async createdPoster() {
+				let {
+					canvasId,
+					img,
+					title,
+					price,
+					head,
+					tips
+				} = this
+				draw = new Draw({
+					width: 375,
+					height: 580,
+					canvasId,
+					_this: this,
+					background: {
+						type: 'color',
+						color: 'white',
+						w: 375,
+						h: 580,
+					},
+				})
+				let res = await draw.createdSharePoster(({
+					bgObj
+				}) => {
+					let {
+						width,
+						height
+					} = bgObj
+					this.poster = bgObj
+					// 绘制内容
+					return [
+						// 大图
+						{
+							type: 'image',
+							x: 0,
+							y: 0,
+							src: img,
+							w: width,
+							h: width
+						},
+						// 标题
+						{
+							type: 'text',
+							w: width - (20 * 2),
+							text: title,
+							color: '#333333',
+							font: {
+								size: 22,
+								weight: 600
+							},
+							line: {
+								num: 1
+							},
+							callBack: (before) => {
+								let {
+									sx,
+									ex,
+									sy,
+									ey
+								} = before
+								return {
+									x: sx + 20,
+									y: ey + 20,
+								}
+							}
+						},
+						// 价格
+						{
+							type: 'text',
+							text: price,
+							color: '#333333',
+							font: {
+								size: 16
+							},
+							callBack: (before) => {
+								let {
+									sx,
+									ex,
+									sy,
+									ey
+								} = before
+								return {
+									x: sx,
+									w: width - (sx * 2),
+									y: ey + 15,
+								}
+							}
+						},
+						// 虚线
+						// {
+						//     type: 'line',
+						//     x: 0,
+						//     w: width,
+						//     color: '#ff875f',
+						//     lineType: 'dashed',
+						//     callBack: (before) => {
+						//         let { sx, ex, sy, ey } = before
+						//         return {
+						//             y: ey + 10,
+						//         }
+						//     }
+						// },
+						// 二维码
+						{
+							type: 'qrcode',
+							x: 20,
+							size: 110,
+							text: '',
+							image: {
+								src: head,
+								size: 110,
+								r: 10,
+								borderWidth: 7,
+								borderColor: '#ffffff'
+							},
+							callBack: (before) => {
+								let {
+									sx,
+									ex,
+									sy,
+									ey
+								} = before
+								return {
+									y: ey + 15,
+								}
+							}
+						},
+						{
+							type: 'text',
+							w: 200,
+							text: tips,
+							color: '#333333',
+							font: {
+								size: 17,
+							},
+							line: {
+								height: 22
+							},
+							callBack: (before, all) => {
+								let {
+									sx,
+									ex,
+									sy,
+									ey,
+									w
+								} = before
+								return {
+									x: sx + w + 50,
+									y: sy + 50,
+								}
+							}
+						}
+					]
+				})
+				console.log('res', res)
+				if (!res.success) return
+				this.posterImg = res.data
+				this.isShow = true
+			},
+			// 保存图片
+			async saveImage() {
+				let {
+					posterImg
+				} = this
+				let res = await saveImageToPhotosAlbum(posterImg)
+				if (!res.success) return
+				showToast('保存成功')
+				this.isShow = false
+				this.$refs.popup2.close()
+			},
+			toggle1(type) {
+				this.type1 = type
+				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+				this.$refs.popup1.open(type)
+
+			},
+			toggle2(type) {
+				if (this.posterImg !== '') {
+					uni.hideLoading();
+					this.type2 = type
+					// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+					this.$refs.popup2.open(type)
+					this.$refs.popup1.close()
+				} else {
+					this.createdPoster()
+					uni.hideLoading();
+					this.type2 = type
+					// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+					this.$refs.popup2.open(type)
+					this.$refs.popup1.close()
+				}
+
+
+
+			},
+			preservation() {
+				uni.showToast({
+					title: "保存成功",
+					duration: 1000,
+				});
+			},
+			cancel() {
+				this.$refs.popup1.close()
+			},
+			// 更新账号
+			Reset() {
+				uni.showToast({
+					title: '更新成功',
+					duration: 1000
+				});
+			},
+			//进入信息确认页面
+			determine() {
+				if (this.value === '' || this.value1 === '') {
+					uni.showToast({
+						title: '请选择产品规格和合作选择',
+						icon: 'none',
+						duration: 2000
+					});
+				} else {
+					this.$refs.popup.close()
+					var data = {
+							projectid: this.projectid,
+							guige: this.value,
+							dengji: this.value1,
+						},
+						data = JSON.stringify(data)
+					uni.navigateTo({
+						url: '/pages/task/information?textObj=' + data
+					});
+				}
+
+
+			},
+		}
+	};
+</script>
+<style>
+	/* 	 /deep/uni-button:after{
+				  border: 1rpx solid #FFFFFF !important;
+	} */
+	/deep/ .share1 .uni-popup .uni-popup__wrapper {
+		width: 85% !important;
+		border-radius: 15rpx !important;
+	}
+
+	/deep/ .share.uni-popup .uni-popup__wrapper {
+		width: 70%;
+		border-radius: 15rpx;
+	}
+</style>
+<style lang="scss" scoped>
+	.wvp {
+		background-color: #FFFFFF;
+		padding: 0 20rpx;
+		border: 1rpx solid #AAAAAA;
+		border-radius: 10rpx;
+		margin: 0 5rpx;
+	}
+
+	.my-canvas {
+		position: fixed;
+		top: -99999999999rpx;
+		left: -99999999999rpx;
+		z-index: -99999999999;
+		opacity: 0;
+	}
+
+	.poster {
+		width: 100vw;
+		height: 80vh;
+		display: flex;
+		flex-flow: column nowrap;
+		justify-content: center;
+		overflow: hidden;
+	}
+
+	.container {
+		padding: 40rpx;
+		font-size: 28rpx;
+		line-height: 48rpx;
+	}
+
+	.butmin {
+		height: 48rpx;
+		background-color: #3397FA;
+		color: #FFFFFF;
+		line-height: 48rpx;
+	}
+
+	//视频轮播
+	.full {
+		position: relative;
+
+		.btns {
+			position: absolute;
+			background-color: rgba(255, 255, 255, 0.5);
+			z-index: 1;
+			left: 100rpx;
+			top: 50rpx;
+			right: 100rpx;
+			display: flex;
+			justify-content: space-around;
+			flex-wrap: wrap;
+
+			>view {
+				height: 60rpx;
+				line-height: 60rpx;
+				text-align: center;
+				padding: 0 20rpx;
+			}
+
+			&.full {
+				position: relative;
+				left: 0;
+				right: 0;
+
+				>view {
+					height: 60rpx;
+					line-height: 60rpx;
+					text-align: center;
+					padding: 0 20rpx;
+					background-color: rgba(0, 0, 0, 0.1);
+					margin-bottom: 10rpx;
+				}
+			}
+		}
+	}
+
+	//轮播图
+	page {
+		background-color: #fff;
+	}
+
+	.top-swiper {
+		margin-bottom: 30rpx;
+
+		.bg {
+			padding-top: var(--status-bar-height);
+			box-sizing: content-box;
+			width: 100%;
+			position: relative;
+
+
+
+			.image {
+				box-sizing: content-box;
+				position: absolute;
+				z-index: 1;
+				top: 0;
+				left: 0;
+				width: 100%;
+				height: 100%;
+				overflow: hidden;
+
+				&::after {
+					content: '';
+					position: absolute;
+					width: 100%;
+					height: 100%;
+					z-index: 1;
+					bottom: 0;
+					left: 0;
+					height: 65%;
+					background-image: linear-gradient(to bottom, transparent, #FFF);
+				}
+
+				>image {
+					position: absolute;
+					box-sizing: content-box;
+					padding: 60px;
+					top: 0;
+					left: 0;
+					width: 100%;
+					height: 80%;
+					top: -60px;
+					left: -60px;
+					filter: blur(50px);
+				}
+			}
+		}
+
+		.box {
+			padding-top: var(--status-bar-height);
+			box-sizing: content-box;
+			// position: absolute;
+			z-index: 5;
+			top: 0;
+			left: 0;
+			width: 100%;
+			height: auto;
+		}
+
+		.swiper {
+			height: 450rpx;
+			margin: 0 20rpx;
+
+			.le-img {
+				width: 100%;
+				height: 100%;
+				display: block;
+				transform: scale(0.8);
+				transition: transform 0.3s ease-in-out 0s;
+				border-radius: 4px;
+
+				&.le-active {
+					transform: scale(1);
+				}
+			}
+
+		}
+	}
+
+	//其他的
+	/deep/ .uni-data-checklist .checklist-group .checklist-box {
+		border-radius: 20rpx !important;
+		padding: 8rpx 30rpx !important;
+		border: 0 !important;
+	}
+
+	/deep/ .uni-data-checklist .checklist-group .checklist-box .checklist-content .checklist-text {
+		font-size: 24rpx;
+		color: #333333;
+	}
+
+	/deep/ .mini-btn {
+		height: 45rpx;
+		width: 150rpx;
+		line-height: 45rpx;
+		margin: 30rpx;
+	}
+
+	.butto {
+		text-align: center;
+	}
+
+	.option {
+		padding: 20rpx;
+	}
+
+	//轮播图
+
+	.uni-margin-wrap {
+		width: 690rpx;
+		width: 100%;
+		;
+	}
+
+	.swiper {
+		height: 750rpx;
+	}
+
+	.swiper-item {
+		display: block;
+		height: 400rpx;
+		line-height: 400rpx;
+		text-align: center;
+	}
+
+	.swiper-list {
+		margin-bottom: 0;
+	}
+
+	.uni-common-mt {
+		margin-top: 60rpx;
+		position: relative;
+	}
+
+	.info {
+		position: absolute;
+		right: 20rpx;
+	}
+
+	.uni-padding-wrap {
+		width: 550rpx;
+		padding: 0 100rpx;
+	}
+
+	.Tasktext {
+		// padding-top: 5% ;
+		padding: 0 0 0 1%;
+		// height: 80rpx;
+		margin-top: 2%;
+	}
+
+	.Tasktext span {
+		color: #333333;
+		font-size: 100%;
+		font-weight: 550;
+		text-indent: 2em;
+
+	}
+
+	.Tasktext image {
+		vertical-align: middle;
+		width: 50rpx;
+		height: 50rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.TitleText {
+		height: 30rpx;
+		background-color: #FDD442;
+		border-radius: 20rpx;
+		display: inline-block;
+		padding: 0rpx 20rpx 0rpx 20rpx;
+		line-height: 30rpx;
+		margin-right: 20rpx;
+		margin-top: 6%;
+	}
+
+	.TitleText p {
+		color: #C49A0A;
+		font-size: 50%;
+
+	}
+
+	.introduction {
+		width: 100%;
+		margin: 0 auto;
+		display: flex;
+		justify-content: space-around;
+		margin-top: 2%;
+	}
+
+	.rleft p {
+		font-size: 24rpx;
+		color: #999999;
+	}
+
+	.rright p {
+		font-size: 24rpx;
+		color: #999999;
+	}
+
+	.tasks {
+		width: 100%;
+		margin: 0 auto;
+		display: flex;
+		justify-content: space-around;
+		margin-top: 5%;
+	}
+
+	.title-left {
+		width: 6rpx;
+		height: 80rpx;
+		background: #E2E2E2;
+		display: inline-block;
+		border-radius: 1rpx;
+		margin-top: 4rpx;
+		vertical-align: top;
+
+	}
+
+	.tasksleft p {
+		font-size: 90%;
+		color: #999999;
+		text-align: center;
+	}
+
+	.tasksright p {
+		font-size: 90%;
+		color: #999999;
+		text-align: center;
+	}
+
+	.interval {
+		width: 100%;
+		height: 40rpx;
+		background-color: #E4E4E4;
+		margin-top: 5%;
+	}
+
+	.circularmark {
+		margin: 2% auto;
+		width: 26%;
+		padding: 10rpx;
+		background-color: #FCCF41;
+		border-radius: 30rpx;
+		position: relative;
+	}
+
+	.circularmark p {
+		font-size: 85%;
+		text-align: center;
+		font-weight: 800;
+	}
+
+	.circularmark image {
+		width: 60rpx;
+		height: 68rpx;
+		position: absolute;
+		top: -30%;
+		left: -10%;
+	}
+
+	.btnn {
+		background-color: #3296FA;
+		border-radius: 20rpx;
+		font-size: 25rpx;
+		line-height: 34rpx;
+	}
+
+	.markcontent {
+		width: 100%;
+		background-color: #E4E4E4;
+		border-radius: 20rpx;
+		padding-top: 2%;
+		padding-bottom: 2%;
+
+	}
+
+	.markcontent p {
+		font-size: 24rpx;
+		color: #333333;
+		// margin: 3% ;
+	}
+
+	.markcontent span {
+		font-size: 24rpx;
+		color: #333333;
+		// margin: 3% ;
+	}
+
+	.interval2 {
+		width: 100%;
+		height: 100rpx;
+		background-color: #E4E4E4;
+		margin-top: 5%;
+	}
+
+	.markcontent1 {
+		width: 100%;
+		border-radius: 20rpx;
+		padding-top: 2%;
+		padding-bottom: 2%;
+	}
+
+	.markcontent1 p {
+		font-size: 24rpx;
+		color: #333333;
+		// margin: 3% ;
+		text-indent: 2em;
+	}
+
+	.trademark {
+		width: 120rpx;
+		height: 120rpx;
+		border-radius: 50%;
+		background-color: #FCCF41;
+		margin: 0 auto;
+	}
+
+	.trademark image {
+		width: 100%;
+		height: 100%;
+	}
+
+	.diagram {
+		width: 100%;
+		// height: 1000rpx;
+	}
+
+	.diagram image {
+		width: 100%;
+		// height: 100% ;
+	}
+
+	.but1 {
+		width: 60%;
+		background-color: #FCCF41;
+		border-radius: 20rpx;
+		font-size: 36rpx;
+		line-height: 200%;
+		letter-spacing: 10rpx;
+		font-weight: 500;
+		height: 80%;
+
+		&.on {
+			background-color: #C0C0C0;
+
+		}
+
+	}
+
+	.but2 {
+		width: 25%;
+		background-color: #FFFFFF;
+		border: 2rpx solid #FCCF41;
+		border-radius: 20rpx;
+		font-size: 36rpx;
+		line-height: 180%;
+		letter-spacing: 10rpx;
+		font-weight: 500;
+		position: relative;
+		text-indent: 0.5em;
+		height: 80%;
+	}
+
+	.but2 image {
+		width: 19%;
+		height: 56%;
+		position: absolute;
+		left: 9%;
+		top: 21%;
+	}
+
+	.signup {
+		box-shadow: 0rpx 5rpx 40rpx #ccc;
+		width: 100%;
+		position: fixed;
+		bottom: 0rpx;
+		display: flex;
+		height: 90rpx;
+		padding-top: 2%;
+		background-color: #FFFFFF;
+	}
+
+	.pick {
+		width: 50rpx;
+		height: 50rpx;
+		vertical-align: middle;
+	}
+
+	.nex {
+		width: 100rpx;
+		height: 20rpx;
+		vertical-align: middle;
+	}
+
+	.sampledrawing {
+		display: flex;
+		width: 96%;
+		margin: 0 auto;
+
+	}
+
+	.samplecharacter {
+		flex: 1;
+		margin-top: 2%;
+	}
+
+	.samplecharacter p {
+		padding: 1%;
+	}
+
+
+	/deep/.uni-popup__content {
+		background-color: #4CD964;
+		border-radius: 20rpx !important;
+	}
+
+	/deep/.uni-popup__mask {
+		background: rgba(0, 0, 0, 0.5) !important;
+	}
+
+	.butto {
+		text-align: center;
+	}
+
+	/deep/ .mini-btn {
+		height: 70rpx;
+		width: 300rpx;
+		line-height: 70rpx;
+		margin: 10rpx;
+		font-size: 80%;
+		box-shadow: 0rpx 0rpx 0rpx 5rpx #FCCF41;
+		border: 0rpx solid #FCCF41 !important;
+	}
+
+	/deep/ .uni-data-checklist .checklist-group .checklist-box.is--tag {
+		background-color: #FFFFFF !important;
+		box-shadow: 0rpx 0rpx 6rpx 0rpx #464100;
+		border-radius: 10rpx !important;
+	}
+
+	/deep/ .uni-data-checklist .checklist-group .checklist-box.is--tag.is-checked {
+		background-color: #FCCF41 !important;
+	}
+
+	/deep/.uni-data-checklist .checklist-group .checklist-box.is--tag.is-checked .checklist-text {
+		color: #333333 !important;
+	}
+
+	/deep/.buu .uni-data-checklist .checklist-group {
+		flex-direction: column !important;
+	}
+
+
+	.surplus p {
+		margin-bottom: 17%;
+		margin-top: 8%;
+		font-size: 80%;
+
+	}
+
+	.circular {
+		width: 120rpx;
+		height: 120rpx;
+		border-radius: 50%;
+		background-color: #28EA71;
+		margin: 0 auto;
+	}
+
+	.circular image {
+		width: 60%;
+		height: 60%;
+		padding: 20%;
+	}
+
+	.tii {
+		text-align: center;
+		font-size: 26rpx;
+		margin-top: 2%;
+	}
+
+	.tii2 {
+		text-align: center;
+		font-size: 26rpx;
+		margin-top: 2%;
+		background-color: #FFFFFF;
+
+	}
+
+	.errar {
+		background-color: #FFFFFF;
+
+	}
+
+	.sharepage {
+		width: 90%;
+		margin: 0 auto;
+		position: relative;
+	}
+
+	/deep/ .share1.uni-popup .uni-popup__wrapper {
+		width: 85%;
+		border-radius: 15rpx;
+	}
+
+	.Tasktext1 {
+		// padding-top: 5% ;
+		padding: 0 0 0 1%;
+		height: 80rpx;
+		margin-top: 7%;
+		text-align: center;
+	}
+
+	.Tasktext1 span {
+		color: #333333;
+		font-size: 100%;
+		font-weight: 550;
+		text-indent: 2em;
+
+	}
+
+	.Tasktext1 image {
+		vertical-align: middle;
+		width: 80rpx;
+		height: 80rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.sharemap {
+		margin: 0 auto;
+		text-align: center;
+		margin-top: 5%;
+	}
+
+	.sharemap image {
+		width: 400rpx;
+		height: 400rpx;
+
+	}
+
+	.Tasktext2 {
+		// padding-top: 5% ;
+		padding: 0 0 0 1%;
+		// height: 80rpx;
+		margin-top: 2%;
+		// text-align: center;
+	}
+
+	.Tasktext2 span {
+		color: #333333;
+		font-size: 88%;
+		font-weight: 600;
+		text-indent: 2em;
+
+	}
+
+	.Tasktext2 image {
+		vertical-align: middle;
+		width: 30rpx;
+		height: 30rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.textti p {
+		font-size: 60%;
+		color: #999999;
+		text-align: center;
+	}
+
+	.immg image {
+		width: 200rpx;
+		height: 200rpx;
+	}
+
+	.immg {
+		line-height: 150%;
+	}
+
+	.immg p {
+		color: #333333;
+		font-size: 90%;
+		font-weight: 600;
+
+	}
+
+	.butmin {
+		height: 48rpx;
+		background-color: #3397FA;
+		color: #FFFFFF;
+		line-height: 48rpx;
+
+	}
+
+	.warr p {
+		font-weight: 500;
+		font-size: 90%;
+
+		&.lor {
+			border-bottom: 2rpx solid #FCCF41;
+
+		}
+	}
+</style>

+ 1403 - 0
pages/tasksquare/tasksquare.vue

@@ -0,0 +1,1403 @@
+<template>
+	<view class="nav">
+		<view class="bg_box" style="background-color: #FFFFFF;" :style="{
+      backgroundImage: mysNavConfig.bgImage,
+      paddingTop: navBarTop,
+      height: navBarHeight,
+      opacity: opacity,
+    }" :class="{ fixed: mysNavConfig.navFixed }"></view>
+		<view class="mys_navBar" :style="{
+    paddingTop: navBarTop,
+    height: navBarHeight,
+    paddingRight: navBarRight,
+   }" :class="{ fixed: mysNavConfig.navFixed }">
+			<!-- 左slot -->
+			<view class="my_left_custom" :style="{ height: btnHeight }">
+				<slot name="left"></slot>
+			</view>
+			<view class="btn_type" :style="{ height: btnHeight }">
+				<view class="btn_box nav_btn_t1" :style="{
+          width: btnWidth,
+          height: btnHeight,
+          marginLeft: navBarLeft,
+          borderRadius: mysNavConfig.type2Config.radius,
+        }">
+					<view class="btn_back" @tap="onLeftClick">
+						<image class="nv_icon" :src="mysNavConfig.type2Config.leftPath"
+							:style="{ height: btnHeight, width: iconW }" mode="aspectFit" />
+					</view>
+					<view class="line"></view>
+					<view class="btn_home" @tap="onLeftHome('top')">
+						<image class="nv_icon" :src="mysNavConfig.type2Config.rightPath"
+							:style="{ height: btnHeight, width: iconW }" mode="aspectFit" />
+					</view>
+				</view>
+				<!-- 标题 -->
+				<view class="title_container" v-if="!mysNavConfig.searchConfig"
+					:style="{ top: navBarTop, height: btnHeight }">
+					<text class="title_text" v-if="!!mysNavConfig.navTitle" :style="{
+          color: mysNavConfig.navTitle.color,
+          fontSize: mysNavConfig.navTitle.fontSize,
+          fontWeight: mysNavConfig.navTitle.fontWeight,
+        }">{{ mysNavConfig.navTitle.text }}</text>
+					<slot name="center2"></slot>
+				</view>
+			</view>
+		</view>
+		<view class="home" style="padding-top: 180rpx;">
+			<view>
+				<!-- 普通弹窗 -->
+				<uni-popup ref="popup" background-color="#fff" @change="change">
+					<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
+						<view class="option" style="margin-top: 20%;">
+							<h3>社媒平台</h3>
+							<uni-data-checkbox mode="tag" multiple v-model="formData.hobby" :localdata="hobby">
+							</uni-data-checkbox>
+						</view>
+						<view class="option">
+							<h3>稿费形式</h3>
+							<uni-data-checkbox mode="tag" multiple v-model="formData.hobby1" :localdata="hobby1">
+							</uni-data-checkbox>
+						</view>
+						<view class="option">
+							<h3>任务形式</h3>
+							<uni-data-checkbox mode="tag" multiple v-model="formData.hobby2" :localdata="hobby2">
+							</uni-data-checkbox>
+						</view>
+						<view class="butto">
+							<button class="mini-btn" size="mini" @tap="Reset"
+								style="background-color: #D9D9D9;">重置</button>
+							<button class="mini-btn1" size="mini" @tap="determine"
+								style="background-color: #FCCF41;">确定</button>
+						</view>
+					</view>
+				</uni-popup>
+			</view>
+			<!-- 	<view class="imge">
+				<image src="../../static/home/home1.png" mode=""></image>
+			</view> -->
+			<view class="uni-margin-wrap">
+				<swiper class="swiper" circular :indicator-dots="indicatorDots" :autoplay="autoplay"
+					:interval="interval" :duration="duration">
+					<swiper-item v-for="item in list1" @click="pick(item)">
+						<image :src="item.img" mode="scaleToFill" style="width: 100%;height: 100%;"></image>
+					</swiper-item>
+				</swiper>
+			</view>
+
+			<view class="commodity" style="margin-top: 3%;">
+				<view class="project" v-for="(item,index) in projectList" :key="index" @tap="project(item)">
+					<view class="projectdiagram" :style="{backgroundImage:`url(${item.coverphoto})`}">
+						<view class="Mask" v-if="item.deadlinetype==0">
+							<image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home4.png" mode="">
+							</image>
+						</view>
+						<view style="padding-left: 4%;padding-top: 2%;">
+						</view>
+					</view>
+					<view class="projecttext">
+						<image :src="item.project_imgper" mode=""></image>
+						<span>{{item.project_name|ellipsis}}</span>
+					</view>
+					<view style="padding-left: 1%;">
+						<view class="TitleText" v-if="item.isself===1">
+							<p>自报价</p>
+						</view>
+						<view class="TitleText" v-if="item.isfixedfee===1">
+							<p>固定稿费</p>
+						</view>
+						<view class="TitleText" v-if="item.project_form===3">
+							<p>线下探店</p>
+						</view>
+					</view>
+
+					<view class="introduction">
+						<view class="rleft" style="">
+							<p>商品价值: <span
+									style="color: red;font-weight: 600;">¥{{item.ProductInfo.product_price}}</span></p>
+						</view>
+						<view class="rright" style="display: flex;justify-content:space-between;">
+							<p>招募人数: <span style="color: balck;font-weight: 600;">{{item.taskNum}}</span></p>
+							<p>报名人数: <span style="color: balck;font-weight: 600;">{{item.apply_num}}</span>
+							</p>
+						</view>
+
+					</view>
+				</view>
+			</view>
+		</view>
+		<!-- 普通弹窗  公众号-->
+		<uni-popup ref="popup4" class="share" background-color="#fff" @change="change">
+			<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
+				<view class="sharepage">
+					<view class="projecttext1">
+						<image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/project15.png"
+							style="width: 80rpx; height: 80rpx;" mode=""></image>
+						<span>YoungGee</span>
+					</view>
+					<view class="" style="margin-top: 5%;">
+						<p style='color: #333333;font-size: 28rpx;text-align: center;'>扫码联系</p>
+					</view>
+					<view class="sharemap">
+						<image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/kefu.png"
+							style="width: 400rpx;height: 400rpx;" mode=""></image>
+					</view>
+				</view>
+
+			</view>
+		</uni-popup>
+		<view class="contact" @click="toggle4('center')">
+			<view class="contt">
+				<!-- <image class="img2" src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home2.png" mode=""></image> -->
+				<image class="img1"
+					src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/kefu_20211124192542.png" mode="">
+				</image>
+
+			</view>
+
+		</view>
+	</view>
+</template>
+<script>
+	import request from '@/components/request.js'
+	/* 默认首页路径 */
+	const homePath = "/pages/pupu/pupudao";
+	/* 默认首页图标路径 */
+	const homeIconPath = "/static/img/png4.png";
+	/* 默认返回图标路径 */
+	const backIconPath = "/static/img/png2.png";
+	export default {
+		props: {
+			mysNavConfig: {
+				type: Object,
+				default () {
+					return {
+						/* 固定导航 */
+						navFixed: true,
+						/* 开启单页显示首页图标 */
+						isHome: true,
+						/* 占位开启 */
+						navPadding: true,
+						/* 背景 */
+						bgColor: "#f8f8f8",
+						/* 渐变色 */
+						opacity: 1,
+						/* 渐变开启 */
+						isOpacity: false,
+						/* 渐变延时效果 */
+						opacityTime: 100,
+						/* 左侧按钮样式 可选 type1 type2 (type2根据小程序胶囊位置调整) */
+						btnType: "type1",
+						/* type1 左侧文字配置 */
+						leftText: {
+							text: "",
+							color: "",
+							fontSize: "16px", // px upx rpx
+							fontWeight: "", // blod
+						},
+						/* 标题 */
+						navTitle: {
+							text: "首页",
+							color: "",
+							fontSize: "32rpx", // px upx rpx
+							fontWeight: "normal", // blod
+						},
+						/* type2 按钮 */
+						type2Config: {
+							// 左图标
+							leftPath: "https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/png3.png",
+							// 右图标
+							rightPath: "https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/png1.png",
+							// 圆角
+							radius: "40rpx",
+						},
+					};
+				},
+			},
+			scrollTop: {
+				type: Number,
+				default: function() {
+					return 0;
+				},
+			},
+		},
+		filters: {
+			ellipsis(value) {
+				if (!value) return "";
+				if (value.length > 20) {
+					return value.slice(0, 20) + "...";
+				}
+				return value;
+			},
+
+		},
+		components: {
+
+		},
+		data() {
+			return {
+				token: '',
+				per: 0,
+				type4: 'center',
+				//轮播图
+				img: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home1.png',
+				background: ['color1', 'color2', 'color3'],
+				indicatorDots: true,
+				autoplay: true,
+				interval: 3000,
+				duration: 1000,
+				list1: [{
+						img: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home1.png',
+						name: '/pages/tasksquare/guide'
+					},
+					{
+						img: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home7.png',
+						name: '/pages/tasksquare/cooperation'
+					}
+				],
+				//弹窗
+				type: 'center',
+				formData: {
+					hobby: [],
+					hobby1: [],
+					hobby2: [],
+				},
+				hobby: [{
+					text: '小红书',
+					value: 1
+				}, {
+					text: '抖音',
+					value: 2
+				}, {
+					text: '微博',
+					value: 3
+				}, {
+					text: '快手',
+					value: 4
+				}, {
+					text: 'B站',
+					value: 5
+				}, {
+					text: '大众点评',
+					value: 6
+				}, {
+					text: '知乎',
+					value: 7
+				}],
+				hobby1: [{
+					text: '产品置换',
+					value: 1
+				}, {
+					text: '固定稿费',
+					value: 2
+				}, {
+					text: '自报价',
+					value: 3
+				}],
+				hobby2: [{
+					text: '线下探店',
+					value: 1
+				}, {
+					text: '实体商品',
+					value: 2
+				}, {
+					text: '虚拟商品',
+					value: 3
+				}, {
+					text: '素材微原创',
+					value: 4
+				}],
+
+				iconW: undefined,
+				iconH: undefined,
+				btnWidth: undefined,
+				btnHeight: undefined,
+				navBarTop: undefined,
+				navBarHeight: undefined,
+				navBarLeft: undefined,
+				navBarRight: undefined,
+				inputHeight: undefined,
+				opacity: 0,
+				isHome: false,
+				homeIconPath: homeIconPath,
+				backIconPath: backIconPath,
+				img: '../../static/home/home.png',
+				// 最多显示页数
+				max_page: '',
+				tupian: {
+					wen: '原创图片',
+					lin: 1,
+				},
+				projectList: [],
+				img456: '../../static/home/home.png',
+				listsrc: [],
+				filtCondition: '',
+			};
+		},
+		computed: {
+			isSharePage() {},
+		},
+		watch: {
+			scrollTop(val) {
+				if (!this.mysNavConfig.isOpacity) {
+					return;
+				}
+				this.setOpacity(val, this.mysNavConfig.opacityTime);
+			},
+		},
+		onShow() {
+			this.isLogin()
+		},
+		onLoad() {
+			this.getInfoList()
+			this.getProjectList()
+		},
+		//下拉刷新
+		onPullDownRefresh() {
+			this.getProjectList()
+			console.log(123)
+			//停止下拉刷新
+			uni.stopPullDownRefresh()
+		},
+		// 下拉懒加载
+		onReachBottom: function() {
+			++this.per;
+			new Promise((resolve, reject) => {
+				uni.showLoading({
+					title: '加载中'
+				})
+				// 用延迟代替 请求,模拟异步获取数据的状态
+				this.requestTimeout = setTimeout(() => {
+					let data = {}
+					resolve(data);
+				}, 1000);
+			}).then((res) => {
+				uni.hideLoading();
+				if (this.per >= this.max_page) {
+					uni.showToast({
+						title: "已加载全部"
+					})
+				} else {
+					this.$http.get('/youngee/c/g/get-project-list' +
+						"?" +
+						"idx" +
+						"=" +
+						this.per +
+						"&cnt" +
+						"=" +
+						20 + this.filtCondition
+					).then(res => {
+						console.log(res)
+						this.max_page = res.data.data.max_page
+						for (var i = 0; i < res.data.data.ProjectInfos.length; i++) {
+							// 封面图片
+							res.data.data.ProjectInfos[i].coverphoto = res.data.data.ProjectInfos[i]
+								.ProductInfo
+								.ProductCovers.photo_url
+							// 获取平台图片
+							for (var j = 0; j < this.listsrc.length; j++) {
+								if (res.data.data.ProjectInfos[i].project_platform == this.listsrc[j]
+									.id) {
+									res.data.data.ProjectInfos[i].project_imgper = this.listsrc[j]
+										.platform_icon
+								}
+							}
+							this.listsrc
+
+							// 价值除100
+							// res.data.data.ProjectInfos[i].ProductInfo.product_price = Number(res.data.data
+							// 	.ProjectInfos[i]
+							// 	.ProductInfo.product_price) * 0.01
+
+							// 任务数量&稿费形式
+							res.data.data.ProjectInfos[i].taskNum = 0
+							for (var j = 0; j < res.data.data.ProjectInfos[i].RecruitStrategys
+								.length; j++) {
+								res.data.data.ProjectInfos[i].taskNum = Number(res.data.data
+									.ProjectInfos[i]
+									.taskNum) + Number(res.data.data.ProjectInfos[i]
+									.RecruitStrategys[j]
+									.recruit_number)
+
+								res.data.data.ProjectInfos[i].isfixedfee = 0
+								if (res.data.data.ProjectInfos[i].RecruitStrategys[j].fee_form === 2) {
+									res.data.data.ProjectInfos[i].isfixedfee = 1
+								}
+
+								res.data.data.ProjectInfos[i].isself = 0
+								if (res.data.data.ProjectInfos[i].RecruitStrategys[j].fee_form === 3) {
+									res.data.data.ProjectInfos[i].isself = 1
+								}
+							}
+							//结束时间
+							var newdate = new Date()
+							// console.log(newdate)
+							var endTime = new Date(res.data.data.ProjectInfos[i].recruit_ddl.replace(
+								/-/g, "/"));
+							// console.log(beginTime)
+							if (endTime - newdate < 0) {
+								res.data.data.ProjectInfos[i].deadlinetype = 0
+							} else {
+								res.data.data.ProjectInfos[i].deadlinetype = 1
+							}
+							res.data.data.ProjectInfos[i].recruit_ddl = this.thistime(res.data.data
+								.ProjectInfos[i]
+								.recruit_ddl)
+
+						}
+						this.projectList = res.data.data.ProjectInfos
+						console.log(this.projectList)
+					})
+				}
+			})
+		},
+		methods: {
+			// 判断登陆是否过期
+			isLogin() {
+				if (this.token !== '') {
+					this.$https.get('/youngee/c/t/g/is-login')
+						.then(res => {
+							console.log(res)
+							if (res.data.code == 403) {
+								uni.clearStorage();
+							}
+						})
+				} else {
+					this.token = uni.getStorageSync('token')
+					console.log(this.token)
+				}
+			},
+			// 信息表
+			getInfoList() {
+				this.$http.get('/youngee/c/g/get-info-tables')
+					.then(res => {
+						this.hobby = []
+						console.log(res)
+						this.listsrc = res.data.data.ThirdPlatform
+
+						for (var i = 0; i < this.listsrc.length; i++) {
+							var obj = {}
+							obj.text = this.listsrc[i].platform_name
+							obj.value = this.listsrc[i].id
+							this.hobby.push(obj)
+						}
+					})
+			},
+			guid() {
+				return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+					var r = Math.random() * 16 | 0,
+						v = c == 'x' ? r : (r & 0x3 | 0x8);
+
+					return v.toString(16);
+				});
+			},
+			getProjectList() {
+				this.per = 0
+				this.$http.get('/youngee/c/g/get-project-list' +
+					"?" +
+					"idx" +
+					"=" +
+					this.per +
+					"&cnt" +
+					"=" +
+					20 + this.filtCondition
+				).then(res => {
+					console.log(res)
+					this.max_page = res.data.data.max_page
+					for (var i = 0; i < res.data.data.ProjectInfos.length; i++) {
+						// 封面图片
+						res.data.data.ProjectInfos[i].coverphoto = res.data.data.ProjectInfos[i].ProductInfo
+							.ProductCovers.photo_url
+						// 获取平台图片
+						for (var j = 0; j < this.listsrc.length; j++) {
+							if (res.data.data.ProjectInfos[i].project_platform == this.listsrc[j].id) {
+								res.data.data.ProjectInfos[i].project_imgper = this.listsrc[j].platform_icon
+							}
+						}
+						this.listsrc
+
+						// 价值除100
+						// res.data.data.ProjectInfos[i].ProductInfo.product_price = Number(res.data.data
+						// 	.ProjectInfos[i]
+						// 	.ProductInfo.product_price) * 0.01
+
+						// 任务数量&稿费形式
+						res.data.data.ProjectInfos[i].taskNum = 0
+						for (var j = 0; j < res.data.data.ProjectInfos[i].RecruitStrategys.length; j++) {
+							res.data.data.ProjectInfos[i].taskNum = Number(res.data.data.ProjectInfos[i]
+								.taskNum) + Number(res.data.data.ProjectInfos[i].RecruitStrategys[j]
+								.recruit_number)
+
+							res.data.data.ProjectInfos[i].isfixedfee = 0
+							if (res.data.data.ProjectInfos[i].RecruitStrategys[j].fee_form === 2) {
+								res.data.data.ProjectInfos[i].isfixedfee = 1
+							}
+
+							res.data.data.ProjectInfos[i].isself = 0
+							if (res.data.data.ProjectInfos[i].RecruitStrategys[j].fee_form === 3) {
+								res.data.data.ProjectInfos[i].isself = 1
+							}
+						}
+						//结束时间
+						var newdate = new Date()
+						// console.log(newdate)
+						var endTime = new Date(res.data.data.ProjectInfos[i].recruit_ddl.replace(/-/g, "/"));
+						// console.log(beginTime)
+						if (endTime - newdate < 0) {
+							res.data.data.ProjectInfos[i].deadlinetype = 0
+						} else {
+							res.data.data.ProjectInfos[i].deadlinetype = 1
+						}
+						res.data.data.ProjectInfos[i].recruit_ddl = this.thistime(res.data.data.ProjectInfos[i]
+							.recruit_ddl)
+
+					}
+					this.projectList = res.data.data.ProjectInfos
+					console.log(this.projectList)
+
+				})
+			},
+			// 计算结束时间
+			thistime(val) {
+				// 转换格式
+				var beginTime = new Date(val.replace(/-/g, "/"));
+				// 当前时间
+				var thisTime = new Date();
+				// 相减
+				var dateMiss = beginTime.getTime() - thisTime.getTime();
+				// 天数
+				var day = Math.floor(dateMiss / (24 * 3600 * 1000));
+				// 减去天数剩下的毫秒数
+				var backOne = dateMiss % (24 * 3600 * 1000);
+				// 小时数
+				var hours = Math.floor(backOne / (3600 * 1000));
+				var deadline_time = '',
+					deadline_time = day + '天' + hours + '时结束'
+				return deadline_time
+			},
+			// 位运算方法
+			contentFormToString(val) {
+				let result = ""
+
+				let broadcast = 128
+				let broadcastType = val & broadcast
+				if (broadcastType > 0) {
+					result += "直播"
+				} else {
+					let imgMask = 15
+					let articleMask = 48
+					let liveMask = 64
+					let originImgVal = 1
+					let zhidingImgVal = 2
+					let originVideo = 4
+					let zhidingVidel = 8
+					let origArticle = 16
+					let zhidingArticle = 32
+
+					let imgAVal = val & imgMask
+					if (imgAVal == originImgVal) {
+						result += "原创图片"
+					} else if (imgAVal == zhidingImgVal) {
+						result += "指定图片"
+					} else if (imgAVal == originVideo) {
+						result += "原创视频"
+					} else if (imgAVal == zhidingVidel) {
+						result += "指定视频"
+					}
+
+					let articleType = val & articleMask
+
+
+					if (articleType == origArticle) {
+						result += "+ 原创文案"
+					} else if (articleType == zhidingArticle) {
+						result += "+ 指定文案"
+					}
+				}
+				return result
+			},
+
+			// 登录页面
+			deng() {
+				uni.navigateTo({
+					url: '../index/login'
+
+				});
+			},
+			pick(item) {
+				// console.log(item)
+				uni.navigateTo({
+					url: item.name
+				});
+			},
+			//弹出层
+			change(e) {
+				console.log('当前模式:' + e.type + ',状态:' + e.show);
+			},
+			determine() {
+				this.$refs.popup.close()
+				uni.showLoading({
+					title: '加载中'
+				});
+				console.log(this.formData.hobby)
+				console.log(this.formData.hobby1)
+				var filtCondition = ''
+				for (var i = 0; i < this.formData.hobby.length; i++) {
+					filtCondition += "&platform[]" + "=" + this.formData.hobby[i]
+				}
+
+				for (var j = 0; j < this.formData.hobby1.length; j++) {
+					filtCondition += "&feeform[]" + "=" + this.formData.hobby1[j]
+				}
+
+				for (var j = 0; j < this.formData.hobby2.length; j++) {
+					filtCondition += "&projectform[]" + "=" + this.formData.hobby2[j]
+				}
+				console.log(filtCondition)
+				this.filtCondition = filtCondition
+				this.getProjectList()
+				uni.hideLoading();
+			},
+			Reset() {
+				this.$refs.popup.close()
+				uni.showLoading({
+					title: '加载中'
+				});
+				console.log('重置')
+				this.formData.hobby = [],
+					this.formData.hobby1 = [],
+					this.filtCondition = '',
+					this.getProjectList()
+				uni.hideLoading();
+			},
+			toggle4(type) {
+				this.type4 = type
+				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+				this.$refs.popup4.open(type)
+				// this.$refs.popup1.close()
+			},
+			xieyi() {
+				console.log('进入联系我们')
+			},
+			go(url) {
+				uni.navigateTo({
+					url: url,
+				});
+			},
+			init() {
+				if (this.mysNavConfig.isHome) {
+					let pages = getCurrentPages().length;
+					/* 单页显示home图标 */
+					pages == 1 ? (this.isHome = true) : (this.isHome = false);
+				}
+				// 开启渐变 强制fixed
+				this.navBarTop = uni.getSystemInfoSync().statusBarHeight + "px";
+				if (!this.mysNavConfig.opacity) {
+					this.opacity = 1;
+					!this.mysNavConfig.isOpacity ? (this.opacity = 1) : ((this.mysNavConfig.navFixed = true), (this
+						.opacity = 0));
+				} else {
+					this.opacity = this.mysNavConfig.opacity;
+					!this.mysNavConfig.isOpacity ? "" : ((this.mysNavConfig.navFixed = true), (this.opacity = 0));
+				}
+
+				// #ifdef MP
+				this.initMP();
+				// #endif
+				// #ifdef APP-PLUS-NVUE
+				this.navBarHeight = 44 + uni.getSystemInfoSync().statusBarHeight + "px";
+				// #endif
+			},
+			/* 小程序初始化位置 */
+			initMP() {
+				// getSystemInfoSync用于获取系统信息同步接口
+				let gS = uni.getSystemInfoSync();
+				// getMenuButtonBoundingClientRect用于获取胶囊按钮位置布局信息
+				let rect = uni.getMenuButtonBoundingClientRect();
+
+				let rectHeight = rect.height;
+				this.btnWidth = rect.width + "px";
+				this.btnHeight = rectHeight + "px";
+				this.iconW = Math.floor(rect.width / 4 - 5) + "px";
+				this.iconH = rectHeight / 2 + "px";
+				this.inputHeight = rectHeight - 3 + "px";
+				this.navBarTop = rect.top + "px";
+				this.navBarLeft = gS.screenWidth - rect.right + "px";
+				this.navBarRight = gS.screenWidth - rect.right + rect.width + "px";
+				this.navBarHeight = gS.statusBarHeight + rectHeight + (rect.top - gS.statusBarHeight) * 2 + "px";
+			},
+			/* 点击左侧 */
+			onLeftClick() {
+				uni.navigateTo({
+					url: '/pages/pupu/search'
+				});
+			},
+			// 进入任务详情
+			project(item) {
+				console.log(item.project_id)
+				if (item.deadlinetype == 0) {
+					uni.showToast({
+						title: '此任务已结束',
+						icon: 'none',
+						duration: 2000
+					});
+				} else {
+					if (this.token == '') {
+						uni.showModal({
+							content: '请先登录',
+							success: function(res) {
+								if (res.confirm) {
+									uni.navigateTo({
+										url: '/pages/login/login'
+									});
+								} else if (res.cancel) {
+									console.log('用户点击取消');
+								}
+							}
+						});
+					} else {
+						uni.navigateTo({
+							url: '/pages/tasksquare/taskdetail?id=' + item.project_id
+						});
+					}
+				}
+			},
+			/* type2 点击分类 */
+			onLeftHome(type) {
+				this.type = type
+				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+				this.$refs.popup.open(type)
+			},
+
+			/* 点击右侧 */
+			onRightClick() {
+				console.log("onRightClick");
+				uni.showToast({
+					title: "onRightClick",
+					duration: 1000,
+				});
+				this.$emit("onRightClick");
+			},
+			/**
+			 * @param scrollTop 页面顶部距离
+			 * @param down 滑动显示效果延时
+			 */
+			setOpacity(scrollTop, down = 60) {
+				if (scrollTop > 0) {
+					if (scrollTop < down) {
+						this.opacity = scrollTop / down;
+					}
+					if (scrollTop > down) {
+						this.opacity = 1;
+					}
+				} else {
+					this.opacity = 0;
+				}
+			},
+			/* 搜索框改变值 */
+			changeInput(e) {
+				this.$emit("changeInput", e);
+			},
+			/* 搜索框提交 */
+			submitInput(e) {
+				this.$emit("submitInput", e);
+			},
+			/* 清空搜索 */
+			clearInput() {
+				this.$emit("clearInput");
+			},
+			/* 禁用状态下点击搜索框 */
+			clickInput() {
+				this.$emit("clickInput");
+			},
+		},
+		created() {
+			this.init();
+		},
+		onReady() {
+			// setTimeout(() => {
+			//   // 改变手机状态栏颜色
+			//   uni.setNavigationBarColor({
+			//     frontColor: "#000000",
+			//     backgroundColor: "#FF4258",
+			//   });
+			// }, 10);
+		},
+	};
+</script>
+<style>
+	/deep/ .share .uni-popup .uni-popup__wrapper {
+		width: 70% !important;
+		border-radius: 15rpx !important;
+	}
+</style>
+<style lang="scss" scoped>
+	//弹窗
+	.sharepage {
+		width: 90%;
+		margin: 0 auto;
+		// position: relative;
+	}
+
+	/deep/ .share.uni-popup .uni-popup__wrapper {
+		width: 70%;
+
+		border-radius: 15rpx;
+	}
+
+	.projecttext1 {
+		// padding-top: 5%;
+		padding: 0 0 0 1%;
+		height: 80rpx;
+		margin-top: 7%;
+		text-align: center;
+	}
+
+	.projecttext1 span {
+		color: #333333;
+		font-size: 100%;
+		font-weight: 550;
+		text-indent: 2em;
+
+	}
+
+	.projecttext1 image {
+		vertical-align: middle;
+		width: 80rpx;
+		height: 80rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.sharemap {
+		margin: 0 auto;
+		text-align: center;
+		margin-top: 15%;
+		margin-bottom: 15%;
+	}
+
+	.sharemap image {
+		width: 400rpx;
+		height: 400rpx;
+
+	}
+
+	.butmin {
+		height: 48rpx;
+		background-color: #3397FA;
+		color: #FFFFFF;
+		line-height: 48rpx;
+	}
+
+	//弹出层
+	/deep/ .uni-data-checklist .checklist-group .checklist-box {
+		border-radius: 20rpx !important;
+		padding: 8rpx 30rpx !important;
+		border: 0 !important;
+	}
+
+	/deep/ .uni-data-checklist .checklist-group .checklist-box .checklist-content .checklist-text {
+		font-size: 24rpx;
+		color: #333333;
+	}
+
+	/deep/ .mini-btn {
+		height: 55rpx;
+		width: 150rpx;
+		line-height: 55rpx;
+		margin: 30rpx;
+		letter-spacing: 4rpx
+	}
+
+	/deep/ .mini-btn1 {
+		height: 55rpx;
+		width: 350rpx;
+		line-height: 55rpx;
+		margin: 30rpx;
+		letter-spacing: 4rpx
+	}
+
+	/deep/ .uni-data-checklist .checklist-group .checklist-box.is--tag.is-checked {
+		background-color: #FCCF41 !important;
+	}
+
+	.butto {
+		text-align: center;
+	}
+
+	.option {
+		padding: 5rpx 18rpx;
+	}
+
+	//其他
+	.nav {
+		position: relative;
+	}
+
+	.nv_padding {
+		height: 88upx;
+		background-color: transparent;
+	}
+
+	/* 图标默认大小 */
+	.nv_icon {
+		width: 16px;
+		height: 16px;
+	}
+
+	.bg_box {
+		position: absolute;
+		width: 750upx;
+		height: 88upx;
+
+		z-index: 10;
+		top: 0;
+		background-color: transparent;
+		/* #ifdef MP */
+		box-sizing: border-box;
+		/* #endif */
+		/* #ifndef APP-PLUS-NVUE */
+		background-size: cover;
+		background-repeat: no-repeat;
+		background-position: center center;
+		/* #endif */
+	}
+
+	.mys_navBar {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		height: 88upx;
+		/* #endif */
+		// #ifdef MP
+		box-sizing: border-box;
+		// #endif
+		width: 750upx;
+		flex-direction: row;
+		background-color: transparent;
+		position: absolute;
+		z-index: 10;
+		top: 0;
+	}
+
+	.fixed {
+		position: fixed;
+	}
+
+	/*
+ left 按钮
+*/
+	.btn_type {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		/* #ifdef APP-PLUS-NVUE */
+		margin-left: 16upx;
+		/* #endif */
+		// #ifndef MP
+		align-items: center;
+		// #endif
+		flex: 1;
+		flex-direction: row;
+		// background-color: #fff;
+	}
+
+	.btn_box {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		margin-left: 16upx;
+		/* #endif */
+		flex-direction: row;
+		// #ifndef MP
+		align-items: center;
+		// #endif
+	}
+
+	.btn_back,
+	.btn_home {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		/* #ifndef APP-PLUS-NVUE */
+		height: 100%;
+		/* #endif */
+		/* #ifdef APP-PLUS-NVUE */
+		width: 76upx;
+		height: 62upx;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		flex: 1;
+	}
+
+	/* 按钮类型1 */
+	.nav_btn_t1 {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		// #ifdef MP
+		box-sizing: border-box;
+		// #endif
+		flex-direction: row;
+		align-items: center;
+		border-style: solid;
+		border-width: 1px;
+		border-color: #C0C0C0;
+		// background-color: rgba(0, 0, 0, 0.2);
+		background-color: #FFFFFF;
+		width: 130upx;
+		height: 45upx;
+	}
+
+	.line {
+		width: 1upx;
+		height: 60%;
+		/* #ifdef APP-PLUS-NVUE */
+		height: 30upx;
+		/* #endif */
+		background-color: #C0C0C0;
+	}
+
+	/*
+标题
+ */
+	.title_container {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		position: absolute;
+		left: 375upx;
+		bottom: 0;
+		transform: translateX(-50%);
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.title_text {
+		// flex: 1;
+		text-overflow: ellipsis;
+		/* #ifndef APP-PLUS-NVUE */
+		white-space: nowrap;
+		overflow: hidden;
+		font-weight: 550;
+
+		/* #endif */
+		/* #ifdef APP-PLUS-NVUE */
+		lines: 1;
+		/* #endif */
+	}
+
+	/* 
+左边自定义
+ */
+	.my_left_box {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+	}
+
+	.my_left_icon {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		/* #ifndef MP */
+		margin-left: 18upx;
+		/* #endif */
+	}
+
+	.my_left_custom {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		// justify-content: center;
+	}
+
+	/* 文字 */
+	.leftText {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		padding-left: 4upx;
+		font-size: 15px;
+	}
+
+	/* 
+中间
+ */
+	.my_custom_box {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		flex: 1;
+	}
+
+	/*
+搜索框 
+ */
+	.nv_search_box {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		flex: 1;
+
+		/* #ifndef MP */
+		height: 60upx;
+		/* #endif */
+		background-color: #f8f8f8;
+		padding-right: 20upx;
+		padding-left: 20upx;
+		border-radius: 60upx;
+		margin-right: 15upx;
+		margin-left: 15upx;
+	}
+
+	.nv_input {
+		flex: 1;
+		padding-left: 16upx;
+		font-size: 13px;
+	}
+
+	.close {
+		width: 50upx;
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		/* #ifndef MP */
+		height: 62upx;
+		/* #endif */
+	}
+
+	/* 
+右边 自定义
+ */
+	.my_right_icon {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		/* #ifndef MP */
+		// min-width: 70upx;
+		/* #endif */
+		padding-left: 6px;
+		padding-right: 10px;
+	}
+
+	.imge image {
+		width: 100%;
+		height: 260rpx;
+	}
+
+	.commodity {
+		margin-top: 10rpx;
+		display: flex;
+		flex-wrap: wrap;
+		justify-content: space-between;
+	}
+
+	.share {
+		text-align: center;
+		line-height: 10rpx;
+		margin-top: 10rpx;
+	}
+
+	.share image {
+		vertical-align: middle;
+		width: 25rpx;
+		height: 25rpx;
+		display: inline-block
+	}
+
+	.share p {
+		display: inline-block;
+		font-size: 24rpx;
+		color: #333333;
+	}
+
+	.project {
+		width: 49%;
+		height: 550rpx;
+		// background-color: #ccc;
+		border-radius: 20rpx;
+		// box-shadow: 0rpx 5rpx 5rpx #ccc;
+		margin-bottom: 0%;
+	}
+
+	.projectdiagram {
+		width: 100%;
+		height: 61%;
+		background-size: 100% 100%;
+		position: relative;
+		border-radius: 10rpx;
+		;
+	}
+
+	.TitleText1 {
+		height: 30rpx;
+		background-color: #FDD442;
+		border-radius: 10rpx;
+		display: inline-block;
+		padding: 0rpx 20rpx 0rpx 20rpx;
+		line-height: 30rpx;
+	}
+
+	.TitleText2 {
+		opacity: 0.8;
+		height: 30rpx;
+		background-color: #FFFFFF;
+		border-radius: 20rpx;
+		display: inline-block;
+		padding: 0rpx 20rpx 0rpx 20rpx;
+		line-height: 30rpx;
+	}
+
+	.TitleText2 p {
+		color: #464100;
+		font-size: 24rpx;
+
+	}
+
+	.projecttext {
+		// padding-top: 5%;
+		padding: 0 0 0 1%;
+		// height: 80rpx;
+	}
+
+	.projecttext span {
+		color: #333333;
+		font-size: 25rpx;
+		font-weight: 550;
+		text-indent: 2em;
+
+	}
+
+	.TitleText1 p {
+		color: #333333;
+		font-size: 18rpx;
+
+	}
+
+	.projecttext {
+		// height: 70rpx;
+	}
+
+	.projecttext image {
+		vertical-align: middle;
+		width: 30rpx;
+		height: 30rpx;
+		display: inline-block;
+		padding-right: 14rpx;
+	}
+
+	.TitleText {
+		// height: 30rpx;
+		background-color: #FDD442;
+		border-radius: 10rpx;
+		display: inline-block;
+		padding: 0rpx 20rpx 0rpx 20rpx;
+		line-height: 30rpx;
+		margin-top: 0%;
+	}
+
+	.TitleText p {
+		color: black;
+		font-size: 18rpx;
+	}
+
+	.introduction {
+		width: 100%;
+		margin: 10rpx auto 0;
+
+
+	}
+
+	.rleft p {
+		font-size: 18rpx;
+
+		color: #999999;
+	}
+
+	.rright p {
+		font-size: 18rpx;
+		color: #999999;
+
+	}
+
+	.Mask {
+		position: absolute;
+		background-color: #000000;
+		opacity: 0.6;
+		width: 100%;
+		height: 100%;
+		// z-index: 999;
+		text-align: center;
+		border-radius: 20rpx;
+	}
+
+	.Mask image {
+		width: 50%;
+		height: 52%;
+		padding-top: 25%;
+	}
+
+	.contt {
+		position: relative;
+	}
+
+	.contact {
+		position: fixed;
+		top: 80%;
+		right: 13%;
+	}
+
+	.img1 {
+		width: 84rpx;
+		height: 124rpx;
+		position: absolute;
+
+	}
+
+	.img2 {
+		width: 114rpx;
+		height: 40rpx;
+		position: absolute;
+		top: 130rpx;
+		left: -12rpx;
+	}
+
+	.swiper {
+		height: 300rpx;
+	}
+
+	.swiper-item {
+		display: block;
+		height: 300rpx;
+		line-height: 300rpx;
+		text-align: center;
+	}
+
+	.swiper-list {
+		margin-top: 40rpx;
+		margin-bottom: 0;
+	}
+</style>

+ 22 - 0
pages/test/test.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/worksapce/worksapce.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>