From d23c25ffba52e073fbf120c45b511fc8ab683b0f Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期一, 23 九月 2024 14:45:37 +0800
Subject: [PATCH] 1.合伙人-个人资料修改

---
 pages/home/supplier-home.vue                             |   23 ++
 sub_pages/partner/partner-info/partner-info-personal.vue |  328 ++++++++++++++++++++++++++++++++++++++++++++++
 pages/user/supplier-user.vue                             |   21 ++
 3 files changed, 364 insertions(+), 8 deletions(-)

diff --git a/pages/home/supplier-home.vue b/pages/home/supplier-home.vue
index 595d984..e673783 100644
--- a/pages/home/supplier-home.vue
+++ b/pages/home/supplier-home.vue
@@ -13,11 +13,28 @@
 
 			</view>
 			<view class="flex user-info" v-if="currentInfo&&(currentInfo.id)">
-				<!-- 头像 -->
-				<image class="user-icon" v-if="!currentInfo.picture"
+				
+				<image class="user-icon" v-if="
+					(currentInfo.customerDTO&&currentInfo.customerDTO.cover)
+					||(currentInfo.supplierDTO&&currentInfo.supplierDTO.cover)
+					||(currentInfo.partnerDTO&&currentInfo.partnerDTO.cover)
+					|| currentInfo.picture
+					" :src="
+					(currentInfo.customerDTO&&currentInfo.customerDTO.cover)
+					||(currentInfo.supplierDTO&&currentInfo.supplierDTO.cover)
+					||(currentInfo.partnerDTO&&currentInfo.partnerDTO.cover)
+					|| currentInfo.picture
+					" mode="aspectFit"></image>
+					
+				<image class="user-icon" v-else
 					src='https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png'
 					mode="aspectFit"></image>
-				<image class="user-icon" v-if="currentInfo.picture" :src="currentInfo.picture" mode="aspectFit"></image>
+					
+				<!-- 头像 -->
+			<!-- 	<image class="user-icon" v-if="!currentInfo.picture"
+					src='https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png'
+					mode="aspectFit"></image>
+				<image class="user-icon" v-if="currentInfo.picture" :src="currentInfo.picture" mode="aspectFit"></image> -->
 
 				<view class="name">
 					<view class="t1">
diff --git a/pages/user/supplier-user.vue b/pages/user/supplier-user.vue
index 330a7d5..889aac1 100644
--- a/pages/user/supplier-user.vue
+++ b/pages/user/supplier-user.vue
@@ -16,16 +16,20 @@
 			<!-- v-if="currentInfo&&(currentInfo.id)" -->
 			<view class="flex user-info">
 				<!-- 头像 -->
-
 				<image class="user-icon" v-if="
-					currentInfo.customerDTO&&currentInfo.customerDTO.cover
-					||currentInfo.supplierDTO&&currentInfo.supplierDTO.cover
+					(currentInfo.customerDTO&&currentInfo.customerDTO.cover)
+					||(currentInfo.supplierDTO&&currentInfo.supplierDTO.cover)
+					||(currentInfo.partnerDTO&&currentInfo.partnerDTO.cover)
 					|| currentInfo.picture
 					" :src="
-					currentInfo.customerDTO&&currentInfo.customerDTO.cover
-					||currentInfo.supplierDTO&&currentInfo.supplierDTO.cover
+					(currentInfo.customerDTO&&currentInfo.customerDTO.cover)
+					||(currentInfo.supplierDTO&&currentInfo.supplierDTO.cover)
+					||(currentInfo.partnerDTO&&currentInfo.partnerDTO.cover)
 					|| currentInfo.picture
 					" mode="scaleToFill"></image>
+					
+					
+					
 				<image class="user-icon" v-else
 					src='https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png'
 					mode="scaleToFill"></image>
@@ -275,6 +279,13 @@
 					<uni-icons type="right"></uni-icons>
 				</view>
 			</view>
+			<view class="user-util m-t-12 flex" v-if="selftype==='partner'||!selftype"
+				@click="goto('/sub_pages/partner/partner-info/partner-info-personal',true)">
+				<view class="title">个人资料</view>
+				<view class="right-icon">
+					<uni-icons type="right"></uni-icons>
+				</view>
+			</view>
 			<view class="user-util m-t-12 flex" v-if="selftype==='partner'"
 				@click="goto('/sub_pages/partner/partner-info/partner-info',true)">
 				<view class="title">合伙人信息</view>
diff --git a/sub_pages/partner/partner-info/partner-info-personal.vue b/sub_pages/partner/partner-info/partner-info-personal.vue
new file mode 100644
index 0000000..b4ad5e2
--- /dev/null
+++ b/sub_pages/partner/partner-info/partner-info-personal.vue
@@ -0,0 +1,328 @@
+<template>
+	<view class="container-page" style="padding: 0rpx;">
+		<view v-if="source==='step'" style="padding: 20rpx 0rpx;color: red;;background-color: #e6e6e6;">
+			<view style="padding: 20rpx;text-align: center;background-color: #fff;">仅限花满芫合伙人入驻</view>
+		</view>
+		<view v-if="source==='step'" class="m-t-20">
+			<u-steps current="0">
+				<u-steps-item title="信息填写" class="u-steps-item" style="font-size: 28rpx;">
+				</u-steps-item>
+				<u-steps-item title="提交申请" class="u-steps-item"></u-steps-item>
+			</u-steps>
+		</view>
+		<view class="p20">
+
+			<view class="form-item before-line m-t-20" @click="uploadIcon('cover')">
+				<view class="label ">头像</view>
+				<view class="m-l-a m-r-0 flex m-b-12">
+					<view class="component-button-upload"></view>
+				</view>
+			</view>
+			<view class="flex p20" style="padding-top: 0rpx;padding-bottom: 10rpx" v-if="dto.cover">
+				<view class="m-t-12 m-r-10">
+					<image class="banner-img" :src="dto.cover" @click.stop="previewImg(dto.cover)"></image>
+					<view class="t-red text-center" @click.stop="dto.cover=''">删除</view>
+				</view>
+			</view>
+
+			<view class="form-item before-line">
+				<view class="label required">联系人姓名</view>
+				<view class="m-l-a m-r-0 flex">
+					<input v-model="dto.name" placeholder="请输入联系人姓名"
+						style="margin-top: 16px;text-align: right;"></input>
+				</view>
+			</view>
+			<view class="form-item before-line">
+				<view class="label required">联系方式</view>
+				<view class="m-l-a m-r-0 flex">
+					<input v-model="dto.contactTel" placeholder="请输入联系方式"
+						style="margin-top: 16px;text-align: right;"></input>
+				</view>
+			</view>
+			<view class="button-green-1 m-t-20 button-fixed-bottom before-line " @click="submit">更新</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import environments from '@/environments'
+	import {
+		mapState
+	} from 'vuex'
+
+	export default {
+		data() {
+			return {
+				id: '',
+				refresh: false,
+				source: '',
+				api: '',
+				dto: {
+					idCards: [],
+					address: '',
+					id: '',
+					userId: '',
+					name: '',
+					contactTel: '',
+					province: '',
+					city: '',
+					region: '',
+					cover: '',
+				},
+				requireFields: [
+
+					{
+						name: '联系人姓名',
+						key: 'name'
+					},
+					{
+						name: '联系方式',
+						key: 'contactTel'
+					},
+
+				],
+				regionDataPlus: [],
+				show_select_station: false,
+				columns_station: [],
+			}
+		},
+		onLoad(options) {
+
+			if (options.id) {
+				this.id = options.id
+				this.getDetail()
+			} else {
+				//判断是不是来自登录步骤,是等话需要从缓存里面拿信息
+				if (this.source === 'step') {
+					var tjson = this.$storage.getItem('cache_partner_info')
+					if (tjson) {
+						this.dto = {
+							...this.dto,
+							...JSON.parse(tjson)
+						}
+					}
+				} else {
+					this.getCurrentInfo()
+				}
+
+			}
+
+		},
+
+		methods: {
+
+			async getCurrentInfo() {
+				this.$message.showLoading()
+				const {
+					code,
+					data
+				} = await this.$http.request('get', "/api/current/partner", {})
+				if (code == 0) {
+					this.dto = {
+						...data,
+
+					}
+					if (!this.dto.idCards) {
+						this.dto.idCards = []
+					} else if (typeof this.dto.idCards == 'string') {
+						this.dto.idCards = JSON.parse(this.dto.idCards)
+					}
+
+					this.dto.userId = this.currentInfo.id
+
+				}
+
+				this.$message.hideLoading()
+			},
+
+			async submit() {
+				for (var field of this.requireFields) {
+					if (!this.dto[field.key]) {
+						this.$message.showToast(`${field.name}信息未填写`)
+						return
+					}
+				}
+				const phoneRegex = /^[1][3-9][0-9]{9}$/;
+				if (!phoneRegex.test(this.dto.contactTel)) {
+				    this.$message.showToast('请填写正确联系方式')
+					return
+				}
+
+				await this.$message.confirm(`是否确定提交/修改信息`)
+
+				var dto = {
+					...this.dto,
+				}
+				this.$message.showLoading()
+				const re = await this.$http.request('post', '/api/partner/base/update', {
+					data: dto
+				})
+				this.$message.hideLoading()
+				if (re.code == 2000 || re.code == 0) {
+					this.$message.showToast('操作成功')
+					this.$store.dispatch('getCurrentInfo')
+
+					this.backpage()
+				} else {
+					console.log('error re', re)
+					if (re.code === 30000 && Array.isArray(re.msg)) {
+						this.$message.showToast('字段未填写完整')
+
+					}
+				}
+
+
+			},
+
+			async deleteImg(key, index) {
+				await this.$message.confirm('是否确认删除此图片')
+				if (Array.isArray(this.dto[key])) {
+					this.dto[key].splice(index, 1)
+
+				} else {
+					this.dto[key] = ''
+				}
+				this.$forceUpdate()
+			},
+			uploadIcon(key) {
+				const that = this
+				uni.chooseImage({
+					count: 1, // 最多可以选择的图片张数,默认9
+					sizeType: ['original', 'compressed'], //original 原图,compressed 压缩图,默认二者都有
+					sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
+					success: function({
+						errMsg,
+						tempFiles
+					}) {
+						if (errMsg === 'chooseImage:ok') {
+							// console.log(tempFiles[0])
+							if (tempFiles[0].size > 1024 * 1024 * 5) {
+								that.$message.confirm('图片最多支持5M大小,超出大小限制')
+								return
+							}
+							that.$message.showLoading()
+							that.$http.upload(tempFiles[0].path).then(async res => {
+								var pic = res.data && res.data.length > 0 && res.data[
+									0] || {}
+								that.$message.hideLoading()
+								if (Array.isArray(that.dto[key])) {
+									that.dto[key].push(pic || '')
+
+								} else {
+									that.dto[key] = (pic || {}).url || ''
+								}
+								console.log("that.dto")
+								console.log(that.dto)
+								that.$forceUpdate()
+							}).catch(res => {
+								that.$message.hideLoading()
+
+							})
+						}
+					}
+				})
+			},
+
+		},
+		computed: {
+			...mapState(['currentInfo'])
+		},
+		components: {}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.banner-img {
+		width: 96rpx;
+		height: 96rpx;
+		border-radius: 4rpx;
+		border: 2rpx dashed #CECECE;
+	}
+
+	.form-item {
+		// padding: 40rpx;
+		border-bottom: 2rpx solid #F3F3F3;
+		display: flex;
+		// height: 100px;
+
+		.label {
+			width: 300rpx;
+			line-height: 60px;
+
+		}
+
+		.flex {
+			line-height: 60px;
+
+			.flex1 {
+				flex: 1;
+				text-align: center;
+				color: var(--selfblue)
+			}
+
+
+		}
+	}
+
+	.form-item.bottom-border-no {
+		border-bottom: none;
+	}
+
+	.container-page {
+		padding: 40rpx;
+		background-color: #FFFFFF;
+		// min-height: calc(100vh - 80rpx);
+		min-height: 100vh;
+	}
+
+	.style {
+		width: fit-content;
+		margin: 0 auto;
+		line-height: 64rpx;
+		border-radius: 8rpx;
+		padding-left: 20rpx;
+		padding-right: 20rpx;
+		// padding-top: 5rpx;
+		// padding-bottom: 5rpx;
+		border: 2rpx solid var(--selfblue);
+		background-color: var(--selfbluebg);
+		min-width: 100rpx;
+	}
+
+
+	.style-1 {
+		border: 1px solid rgb(122, 187, 255);
+		border: 1px solid #409EFF;
+		color: #409EFF;
+		background-color: rgb(240, 247, 255);
+	}
+
+	.style-2 {
+		border: 1px solid rgb(255, 184, 78);
+		border: 1px solid #FE9044;
+		color: #FE9044;
+		background-color: rgb(255, 247, 235);
+	}
+
+	.style-3 {
+		border: 1px solid #19be6b;
+		color: #19be6b;
+		background-color: rgb(231, 244, 238);
+	}
+
+	.style-4 {
+		border: 1px solid #F56c6c;
+		color: #F56c6c;
+		background-color: rgb(254, 243, 243);
+	}
+
+	.reject-reason {
+		word-wrap: break-word;
+		/* 遇到长单词时强制换行 */
+		word-break: break-all;
+		/* 长单词会在任意位置换行 */
+		white-space: normal;
+		/* 允许换行 */
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3