<template>
	<view class="content">
		<view class="container">
			<headers :titles="titles">
				<uni-icons type="arrow-left" color="#000000" size="22px"></uni-icons>
			</headers>
			<view class="f-box">
				<u-parse :content="content"></u-parse>
			</view>

			<jushi-signature :settings="settings" base64 @cancel="signatureCancel"
				@change="signatureChange"></jushi-signature>
		</view>

	</view>
</template>

<script>
	import headers from '../../components/header/headers.vue'
	import upload from '../../utils/upload';
	import request from '@/utils/request.js'

	export default {
		data() {
			return {
				titles: "合同",
				settings: { //签名设置
					width: '750', //签名区域的宽
					height: '500', //签名区域的高
					lineWidth: 4, //签名时线宽
					textColor: '#000' //签名文字颜色
				},
				contentTemp: '',
				content: '',
				userUrl: '',
				List: [],
				show: false,
				status: 'loading',
				name: '',
				Address: '',
				tenantId: '',
				contractData: {},
				userData: {},
				callback: null,
			}
		},
		onLoad(options) {
			/*this.name = option.name
			this.Address = option.Address
			this.tenantId = option.tenantId
			console.log('name',this.name)
			console.log('Address',this.Address)
			console.log('tenantId',this.tenantId)*/
			if (options.data) {
				this.contractData = JSON.parse(decodeURIComponent(options.data));
				this.callback = options.callback;
				this.tenantId = this.contractData.tenantId
				console.log('options', this.contractData)
			}
			this.callback = options.callback;
			this.userData = uni.getStorageSync('userInfo');
			// 监听 tempFilePath 事件
			uni.$off('tempFilePath');
			uni.$on('tempFilePath', (data) => {
				console.log('Received tempFilePath:', data);
				//上传图片
				upload({
					url: '/app-api/small-upload/common/upload',
					filePath: data,
				}).then((res) => {
					this.userUrl = res.data.url
					console.log(this.userUrl, 'userUrl');
					this.signatureChange()
				})
			});

		},
		onShow() {
			this.getdriveSchool()
			// this.actList = ["1", "1", "1", "1", "1", ]
			// this.status = "nomore" 底部刷新结束
		},
		onPullDownRefresh() {
			console.log("刷新");
			uni.stopPullDownRefresh()
		},
		onReachBottom() {
			// this.show = true
			setTimeout(() => {
				console.log("加载执行");
			}, 2000)
		},
		components: {
			headers
		},
		methods: {
			async getdriveSchool() {
				let res = await request({
					url: `/app-api/small/driveSchool/obtainContract/tenantId/${this.contractData.tenantId}`,
					method: 'get',
				})
				this.content = res.data.content

				// 执行替换
				for (const [key, value] of Object.entries(this.contractData)) {
					this.content = this.content.replace(
						new RegExp(`&nbsp;${key}&nbsp;|${key}`, 'g'),
						value
					);
				}

				// 处理特殊格式的占位符（如下划线格式）
				this.content = this.content.replace(/<u[^>]*>([^<]*)name([^<]*)<\/u>/g,
					`<u>$1${this.contractData.name}$2</u>`);
				this.content = this.content.replace(/<u[^>]*>([^<]*)type([^<]*)<\/u>/g,
					`<u>$1${this.contractData.type}$2</u>`);


			},

			signatureCancel() {
				uni.navigateBack()
			},
			async signatureChange(e) {
				this.imgUrl = e
				let res = await request({
					url: '/app-api/small/driveSchool/obtainContract/add',
					method: 'post',
					data: {
						userName: this.contractData.name,
						tenantId: this.contractData.tenantId,
						userId: this.userData.id,
						content: this.content,
						userUrl: this.userUrl,
					}
				})
				console.log(res);
				uni.showToast({
					title: '报名成功',
					duration: 3000

				});

				const pages = getCurrentPages();
				const prevPage = pages[pages.length - 2];

				if (prevPage && (prevPage.route === 'pagesA/register/index' || prevPage.route ===
						'/pagesA/register/index')) {
					if (this.callback) { // 从onLoad中获取的callback
						try {
							const callback = decodeURIComponent(this.callback);
							if (prevPage.$vm && typeof prevPage.$vm[callback] === 'function') {
								prevPage.$vm[callback]();
							}
						} catch (e) {
							console.error('回调执行失败:', e);
						}
					}
				}

				setTimeout(function() {
					// 在这里写需要延迟执行的代码
					uni.switchTab({
						url: '/newPages/newIndex/index'
					})
				}, 2600); // 3000毫秒即为3秒

				// const index = e.lastIndexOf("/")
				// let fileName = e.substring(index + 1, e.length)
				// this.uploadFile(this.imgUrl, fileName)

			},

			goback() {
				uni.navigateBack()
			},

		}
	}
</script>

<style scoped lang="scss">
	.content {
		background: #f4f5f6;

		height: 100vh;
	}

	.container {
		width: 100%;
		background: #f4f5f6;
		box-sizing: border-box;
		padding-top: 88px;
	}

	.f-box {
		width: 100%;
		box-sizing: border-box;
		padding: 15px;
	}
</style>