<template>
	<view>
		<!-- 顶部导航栏 -->
		<view class="navbar" :style="{ paddingTop: (12 + statusBarHeight) + 'px' }">
			<view class="navbar-content">
				<view class="navbar-left" @click="goBack">
					<u-icon name="arrow-leftward" size="36" color="#333"></u-icon>
				</view>
				<view class="navbar-title">附件管理</view>
				<view class="navbar-right"></view>
			</view>
		</view>

		<!-- <nav-bar title="基本信息"></nav-bar> -->
		<view class="contain flex flex-direction">
			<view class="usermain">
				<scroll-view scroll-with-animation scroll-y>
					<!-- 我的公司 -->
					<view class="usermain-item item-padding" v-for="item in content">
						<view class="usermain-item-title c-flex-center">
							<image
								:src="item.fileType == 'pdf' ? '../../static/images/pdf.svg' : '../../static/images/docx.svg'"
								class="header-icon" mode="aspectFill" />
						</view>
						<view @click="seekDoc(item)" class="fileContent c-flex-center">
							<view class="fileName m-ellipsis">{{ item.attachmentName }}</view>
							<view class="filedesc">{{ item.attachmentSize }}kb 更新于{{ item.createTime }}</view>
						</view>
						<view @click.stop="more(item.resumesAttachmentId)" class="c-flex-center">
							<u-icon name="more-dot-fill"></u-icon>
						</view>
					</view>
					<empty :isShow="false" v-if="content.length == 0" />
				</scroll-view>
			</view>

			<view class="footer-btn">
				<fileSelector title="上传简历" allowType=".doc,.docx,.xls,.xlsx,.pdf" @fileSelected="uploadResumes"
					@filesChanged="onFilesChanged" />
			</view>
		</view>
		<!-- 权限说明弹窗 -->
		<u-popup mode="top" ref="permission">
			<view class="popup-content">
				<view class="popup-text-permission">选择/拍摄照片需要相机/相册权限，用于上传用户头像</view>
			</view>
		</u-popup>
	</view>
</template>

<script>
import configdata from '../../common/config.js';
import navBar from "@/components/nav-bar/index.vue";
// 引入组件
import fileSelector from '@/uni_modules/zhouquan-fileSelector/components/zhouquan-fileSelector/file-selector.vue';
import empty from '../../components/empty.vue'
export default {
	components: {
		navBar,
		fileSelector,
		empty
	},
	data() {
		return {
			statusBarHeight: 0, // 状态栏高度
			phone: '',
			weChatNum: '',//微信号
			email: '',//接收简历邮箱
			selectedCompany: '深圳市汉瑞国际猎头服务有限公司', // 我的公司
			selectedPosition: '人事总监', // 我的职务
			avatar: '../../static/logo.png',
			userName: '',
			nickName: '',
			userId: '',
			realName: '',
			weChatId: "",
			password: '',
			platform: '',
			createTime: '',
			money: '',
			jiFen: '',
			status: '',
			zhiFuBao: '',
			zhiFuBaoName: '',
			sex: 1,
			age: 0,
			content: []
		};
	},
	computed: {
		phoneWithMask() {
			if (this.phone && this.phone.length >= 11) {
				return this.phone.substring(0, 3) + '******' + this.phone.substring(9);
			}
			return this.phone || '请设置手机号';
		}
	},
	onLoad(e) {
		// 获取状态栏高度
		let systemInfo = uni.getSystemInfoSync();
		this.statusBarHeight = systemInfo.statusBarHeight || 0;

		this.getUserInfo()
		// this.avatar = uni.getStorageSync('avatar')
	},
	methods: {
		// 返回上一页
		goBack() {
			uni.navigateBack();
		},
		// 修改手机号
		modifyPhone() {
			console.log('点击修改手机号，当前手机号：', this.phone);
			const url = `/pages/my/userphone?currentPhone=${this.phone}`;
			console.log('跳转路径：', url);

			uni.navigateTo({
				url: url,
			});
		},
		// 选择公司
		selectCompany() {
			uni.navigateTo({
				url: '/pages/my/myCompany'
			});
		},
		// 选择职务
		selectPosition() {
			// 这里可以跳转到职务选择页面或显示职务选择弹窗
			console.log('选择职务');
		},
		onChooseAvatar(e) {
			let that = this;
			let token = uni.getStorageSync('token');
			uni.uploadFile({
				url: that.config("APIHOST1") +
					'/alioss/upload', //真实的接口地址
				filePath: e.detail.avatarUrl,
				header: {
					token: token
				},
				name: 'file',
				success: uploadFileRes => {
					let url = JSON.parse(uploadFileRes.data);
					that.avatar = url.data
					uni.hideLoading();
				}
			});

		},
		goMyAddress() {
			uni.navigateTo({
				url: '../jifen/myaddress'
			});
		},
		uploadImg() {
			let token = uni.getStorageSync('token')

			if (!token) {
				this.goLoginInfo();
				return;
			}
			let that = this;
			var url = null;
			uni.showActionSheet({
				// itemList按钮的文字接受的是数组
				itemList: ["查看头像", "从相册选择图片"],
				async success(e) {
					var index = e.tapIndex
					if (index === 0) {
						// 用户点击了预览当前图片
						// 可以自己实现当前头像链接的读取
						let url = that.avatar;
						let arr = []
						arr.push(url)
						uni.previewImage({
							// 预览功能图片也必须是数组的
							urls: arr
						})
					} else if (index === 1) {
						// 1. 检查权限状态
						const hasPermission = await this.$queue.checkPermission(
							'camera',
							'选择/拍摄照片需要相机/相册权限，用于上传用户头像',
							this
						);

						// 2. 如果未授权或者用户拒绝，显示提示
						if (!hasPermission) {
							return;
						}
						uni.chooseImage({
							count: 1, //默认9
							sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
							sourceType: ['album'], //从相册选择
							success: function (res) {
								uni.showLoading({
									title: '上传中...'
								});
								let token = uni.getStorageSync('token');
								let userId = uni.getStorageSync('userId');
								uni.uploadFile({
									url: that.config("APIHOST1") +
										'/alioss/upload', //真实的接口地址

									filePath: res.tempFilePaths[0],
									header: {
										token: token
									},
									name: 'file',
									success: uploadFileRes => {
										url = JSON.parse(uploadFileRes.data);
										that.avatar = url.data
										uni.hideLoading();
									}
								});
							}
						});
					}
				}
			})
		},
		config: function (name) {
			var info = null;
			if (name) {
				var name2 = name.split("."); //字符分割
				if (name2.length > 1) {
					info = configdata[name2[0]][name2[1]] || null;
				} else {
					info = configdata[name] || null;
				}
				if (info == null) {
					let web_config = cache.get("web_config");
					if (web_config) {
						if (name2.length > 1) {
							info = web_config[name2[0]][name2[1]] || null;
						} else {
							info = web_config[name] || null;
						}
					}
				}
			}
			return info;
		},
		getUserInfo() {
			this.$Request.get("/app/resumes/getAttachment").then(res => {
				if (res.code == 0) {
					res.data.forEach(function (item) {
						const ext = item.attachmentName.split('.').pop().toLowerCase();
						item.fileType = ext
					})
					this.content = res.data
				}
				uni.hideLoading();
			});


		},
		// 保存
		uploadResumes(e) {
			var that = this
			console.log(e.path)
			const validExtensions = ['pdf', 'doc', 'docx'];
			const ext = e.name.split('.').pop().toLowerCase();
			if (!validExtensions.includes(ext)) {
				this.$queue.showToast('仅支持PDF/DOC/DOCX格式')
				return;
			}
			uni.getFileInfo({
				filePath: e.path,
				success: (info) => {

					console.log('文件大小:', info.size); // 单位：字节
					let attachment_size = (info.size / 1024).toFixed(1)
					that.$queue.uploadFile(e.path, function (path) {
						if (path)
							that.$Request.postJson("/app/resumes/saveAttachment", {
								attachmentAddress: path,
								attachmentName: e.name,
								attachmentSize: attachment_size
							}).then(res => {
								if (res.code === 0) {
									that.getUserInfo()
								} else {
									uni.showToast({
										title: res.msg,
										icon: "none"
									})
								}
							})
						else
							that.$queue.showToast('文件上传失败')
					})
				},
				fail: (err) => {
					console.error('获取失败', err);
				}
			});

		},
		more(id) {
			var that = this
			uni.showActionSheet({
				itemList: ["删除"],
				itemColor: "#3273db",
				success(res) {
					if (res.tapIndex == 0)
						that.deleteAttachment(id)
				},
				fail(res) {
					console.log(res.errMsg);
				},
			});
		},
		deleteAttachment(id) {
			var that = this;
			uni.showModal({
				title: '提示',
				content: '确定删除？',
				success(res) {
					if (res.confirm) {
						that.$Request.postJson("/app/resumes/deleteAttachment", {
							resumesAttachmentId: id
						}).then(res => {
							if (res.code === 0) {
								var info = that.content.filter(function (item) {
									return item.resumesAttachmentId != id;
								});
								that.content = info
							} else {
								uni.showToast({
									title: res.msg,
									icon: "none"
								})
							}
						})
					} else if (res.cancel) {
						console.log('用户点击取消')
					}
				}
			})
		},
		onFilesChanged(e) {
			console.log(e)
		},
		seekDoc(it) {
			//#ifdef APP-PLUS
			uni.downloadFile({
				url: it.attachmentAddress,
				success: function (res) {
					var filePath = res.tempFilePath;
					uni.openDocument({
						filePath: filePath,
						showMenu: true,
						success: function (res) {
							console.log('打开文档成功');
						}
					});
				}
			});
			return;
			//#endif
			uni.navigateTo({
				url: '/pages/index/webView?url=' + it.attachmentAddress + '&title=' + it.attachmentName
			});
		}
	},
	// userphone(){
	// 	uni.navigateTo({
	// 		url:'/pages/my/userphone'
	// 	})
	// }

};
</script>

<style lang="scss" scoped>
page {
	/* background: #f6f6f6; */
}

.navbar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	background: #fff;
	padding: 0 0 40rpx 20rpx;

	.navbar-content {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 0 30rpx;
		height: 60rpx;

		.navbar-left {
			width: 60rpx;
			height: 60rpx;
			display: flex;
			align-items: center;
			justify-content: center;
		}

		.navbar-title {
			color: rgba(23, 23, 37, 1);
			font-family: DM Sans;
			font-size: 36rpx;
			font-weight: 700;
			line-height: 52rpx;
			letter-spacing: 0%;
			text-align: center;
		}

		.navbar-right {
			width: 60rpx;
			height: 60rpx;
		}
	}
}

button::after {
	border: none;
	background-color: none;
}

button {
	position: relative;
	display: block;
	margin-left: auto;
	margin-right: auto;
	padding-left: 0px;
	padding-right: 0px;
	box-sizing: border-box;
	text-decoration: none;
	line-height: 1.35;
	overflow: hidden;
	color: #666666;
	/* background-color: #fff; */
	background-color: rgba(255, 255, 255, 0) !important;
	width: 100%;
	height: 100%;
}

.contain {
	padding-top: 120rpx;
	/* 为固定导航栏留出空间 */
	/* #ifdef APP*/
	padding-top: calc(120rpx + var(--status-bar-height));
	/* #endif*/
	height: 100vh;
}

.usermain {
	background: #ffffff;
	/* color: #fff; */
	height: 100vh;

	scroll-view {
		height: 100%;
	}
}

.usermain-item {
	display: flex;
	justify-content: space-between;
	margin: 0 40rpx;
	padding: 30rpx 0;
	// border-bottom: 1rpx solid rgba(229, 229, 229, 0.3);
	background: #fff;

	.fileContent {
		width: 85%;
		margin: 0 20rpx;
	}

	.fileName {
		color: #222;
		font-size: 32rpx;
	}

	.filedesc {
		margin-top: 10rpx;
		font-size: 24rpx;
	}

	.c-flex-center {
		align-self: center;
		color: #aaa;
		flex-shrink: 0;
	}

}

.usermain-item-title {
	color: rgba(31, 44, 55, 1);
	font-family: DM Sans;
	font-size: 28rpx;
	font-weight: 500;
	line-height: 44rpx;
	text-align: left;

	.header-icon {
		width: 50rpx;
		height: 50rpx;
		display: block;
	}
}

.usermain-item.item-padding {
	/* padding: 0; */
}

.cu-form-group {
	padding: 0;
	background: #ffffff;
	text-align: right;
}

.cu-form-group input {
	background: #ffffff;
	font-size: 28rpx;
	/* color: #fff; */

}

/* 姓名字段样式 - 参考basicInfo.vue */
.usermain-item .form-label {
	color: rgba(31, 44, 55, 1);
	font-family: DM Sans;
	font-size: 32rpx;
	font-weight: 500;
	line-height: 44rpx;
	letter-spacing: 0.5%;
	text-align: left;
	display: flex;
	align-items: center;
	margin-bottom: 16rpx;
}

.usermain-item .required-mark {
	color: #FF3B30;
	font-size: 36rpx;
	font-weight: 600;
	margin-right: 8rpx;
}

.usermain-item .cu-form-group {
	background: transparent;
	text-align: left;
	padding: 0;
}

.usermain-item .cu-form-group input {
	width: 100%;
	height: 68rpx;
	font-size: 28rpx;
	border: 1rpx solid rgba(227, 231, 236, 1);
	border-radius: 44rpx;
	color: rgba(23, 23, 37, 1);
	padding: 0 32rpx;
	background: #ffffff;
	font-family: DM Sans;
	font-weight: 400;
}

.usermain-item .cu-form-group input::placeholder {
	color: rgba(155, 155, 155, 1);
	font-size: 28rpx;
}

/* 联系方式样式 */
.contact-structure {
	border-bottom: none !important;
}

.contact-wrapper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0;
	margin-top: 8rpx;
}

.phone-display {
	color: rgba(23, 23, 37, 1);
	font-family: DM Sans;
	font-size: 28rpx;
	font-weight: 400;
	line-height: 40rpx;
	letter-spacing: 0.5%;
}

.modify-link {
	color: rgba(24, 144, 255, 1);
	font-family: DM Sans;
	font-size: 28rpx;
	font-weight: 400;
	line-height: 40rpx;
	letter-spacing: 0.5%;
	cursor: pointer;
	text-decoration: none;
}

.modify-link:active {
	opacity: 0.7;
}

/* 头像编辑图标样式 */
.avatar-wrapper {
	position: relative;
	display: inline-block;
}

.edit-avatar-icon {
	position: absolute;
	bottom: 10rpx;
	right: 2rpx;
	width: 24rpx;
	height: 24rpx;
	// background: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
}

.avatar-button {
	position: relative;
	padding: 0;
	margin: 0;
	background: transparent;
	border: none;
}

.footer-btn {
	margin-top: 40rpx;
	padding-bottom: 40rpx;
}

.footer-btn .usermain-btn {
	color: rgba(255, 255, 255, 1);
	background: rgba(1, 107, 246, 1);
	text-align: center;
	width: 90%;
	height: 80rpx;
	font-size: 32rpx;
	line-height: 80rpx;
	margin: 20rpx auto;
	border-radius: 40rpx;
}

/* 选择器样式 - 参考workExperience页面 */
.form-input-selector {
	width: 100%;
	height: 68rpx;
	padding: 0 40rpx;
	border: 1px solid rgba(227, 231, 236, 1);
	border-radius: 24px;
	background: rgba(255, 255, 255, 1);
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	transition: all 0.2s ease;

	.placeholder {
		color: #999999;
		font-family: DM Sans;
		font-size: 28rpx;
		font-weight: 400;
		line-height: 40rpx;
	}

	text {
		color: rgba(23, 23, 37, 1);
		font-family: DM Sans;
		font-size: 28rpx;
		font-weight: 400;
		line-height: 40rpx;
	}
}

.arrow-down {
	color: rgba(96, 98, 102, 1);
	font-size: 24rpx;
	font-weight: 400;
	transform: scale(1.5);
}

.selector-group:active {
	background: #f5f7fa !important;
	transform: scale(0.99);
}
</style>
