<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 request from '@/utils/request.js'

export default {
  data() {
    return {
      titles: "合同",
      settings: { //签名设置
        width: '750', //签名区域的宽
        height: '500', //签名区域的高
        lineWidth: 4, //签名时线宽
        textColor: '#000' //签名文字颜色
      },
      contentTemp: '',
      content: '',
      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.callback = options.callback;
    this.userData = uni.getStorageSync('userInfo');
  },
  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',
        method: 'post',
        data: {
          userName: this.contractData.name,
          tenantId: this.tenantId,
          userId: this.userData.id,
          content: this.content,
        }
      })
      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.navigateTo({
          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>
