<template>
	<view>
		<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
			<block slot="backText">返回</block>
			<block slot="content">设置</block>
		</cu-custom>
		<view class="cu-list menu">
			<view class="cu-item arrow">
				<navigator class="content" hover-class="none" url="/pages/login/forget/forget-reset" open-type="redirect">
					<text class="text-semi">修改密码</text>
				</navigator>
			</view>
<!--			<view class="cu-item arrow">-->
<!--				<navigator class="content" hover-class="none" url="/pages/my/face/index" open-type="redirect">-->
<!--					<text class="text-semi">更新人脸信息</text>-->
<!--				</navigator>-->
<!--			</view>-->
<!--			<view class="cu-item arrow">-->
<!--				<navigator class="content" hover-class="none" url="/pages/my/updateSignature/index" open-type="redirect">-->
<!--					<text class="text-semi">更新签字信息</text>-->
<!--				</navigator>-->
<!--			</view>-->
			<view class="cu-item" @click="upVersionmanager()">
				<view class="content">
					<text class="text-semi" >检查更新</text>
				</view>
			</view>
			<view class="cu-item margin-top text-center" @click="unlogin()">
				<view class="content">
					<text class="text-semi">退出当前账户</text>
				</view>
			</view>
		</view>
    <uni-popup ref="popup" background-color="#fff" :is-mask-click="false">
      <view style="text-align: center;color:#606266;width: 500upx;padding: 40upx">
        <view style="margin-bottom: 40upx;">温馨提示</view>
        <rich-text :nodes="updateVersion.modalContent"></rich-text>
      </view>
      <view style="margin-top: 40upx;display: flex">
        <button v-if="updateVersion.showCancelButton" class="cu-btn bg-blue" style="flex: 1;border-radius: 0" @click="modalCancel">{{updateVersion.cancelText}}</button>
        <button v-if="updateVersion.showConfirmButton" class="cu-btn bg-green" style="flex: 1;border-radius: 0" @click="modalConfirm">{{updateVersion.confirmText}}</button>
      </view>
    </uni-popup>
	</view>
</template>

<script>
	import {
		basePath,loginUserId,setloginUserId,setCorpinfoId,setloginUser,setDeptId,version,baseImgPath,loginUser
	} from '@/common/tool.js';
	export default {
		data() {
			return {
				platform :'', //系统 android
				version :'',
				baseImgPath: baseImgPath,
        updateVersion:{
          showConfirmButton: false,
          showCancelButton: false,
          confirmText: '',
          cancelText: '',
          modalContent: '',
          confirmType: '',
          newVersionUrl: '',
          downloadCompleteTemporaryPath: '',
        }
			}
		},
		onLoad(e) {
			uni.getSystemInfo({
				success: (res) => {
					this.platform = res.platform
				}
			});
			if(!this.validStr(this.version)){
				this.getwgtVer()
			}
			// getwgtVer
		},
		methods: {
			unlogin(){
				var _this = this
				uni.showModal({
					title: '提示',
					cancelText: '确认',
					confirmText: '取消',
					content: '确定退出当前账户?',
					success: function (res) {
						if (res.cancel) {
							if (_this.validStr(loginUserId) && _this.validStr(_this.$store.state.socketTask)) {
								_this.$store.dispatch('WEBSOCKET_SEND', '[leave]' + 'mobile-'+loginUserId)
							}
							setloginUserId(null);
							setCorpinfoId(null);
							setDeptId(null);
							setloginUser(null);
							uni.removeStorage({key: 'USER'});
							uni.navigateTo({
								url: '/pages/login/home'
							});
              _this.updatePushCid();
						}
					}
				});
			},
			getwgtVer() {
				var that = this;
				// 获取本地应用资源版本号
				plus.runtime.getProperty(plus.runtime.appid, function (inf) {
					that.version = inf.version;  //获取当前版本号
					setVersion(that.version);
					console.info('inf.version')
					console.info(inf.version)
				});

			},
			upVersionmanager(){
				var _this = this

				uni.request({
					url: basePath + '/app/versionManagerFirst/getVersion',  //获取最新版本号
					method: 'POST',
					data: {FILETYPE:_this.platform},
					success: res => {
						var updateState = false
						var updateVersion = res.data.pd.VERSION.split('.')
						var phoneVersion = _this.version.split('.')
						if(updateVersion.length == phoneVersion.length){
							for (let i =0;i<updateVersion.length;i++){
								let upNub = Number(updateVersion[i])
								let phNub = Number(phoneVersion[i])
								if(upNub > phNub){
									updateState = true
								}
							}
						}else{
							updateState = true
						}
						if(updateState){
							if(_this.platform==="android"){
                this.updateVersion.newVersionUrl = this.baseImgPath + res.data.pd.FILEURL
                uni.getNetworkType({
                  success: ({networkType}) => {
                    if (networkType === 'wifi') {
                      this.updateVersion.modalContent = '发现新版本,是否更新?请保持应用最新版本,否则将无法使用。'
                    } else {
                      this.updateVersion.modalContent =
                          '发现新版本,检查到您当前使用的是移动网络,是否更新?更新时请注意流量消耗。请保持应用最新版本,否则将无法使用。'
                    }
                    this.updateVersion.confirmType = 'download'
                    this.updateVersion.confirmText = '立即更新'
                    this.updateVersion.showConfirmButton = true;
                    this.$refs.popup.open()
                  }
                })
                if(res.data.pd.ISUPDATE =='1'){

                } else {
                  this.updateVersion.cancelText = '稍后更新'
                  this.updateVersion.showCancelButton = true;
                }
							}
						}else{
							uni.showToast({
								icon: 'none',
								title: '您已经时候最新版本!',
								duration: 1500
							});
						}
					},
					fail: res => {
						console.info(res)
					}
				});
			},
      modalConfirm() {
        this.updateVersion.confirmType === 'download' ? this.downloadNewVersion() : this.installNewVersion()
      },
      modalCancel() {
        this.$refs.popup.close()
      },
      downloadNewVersion() {
        this.updateVersion.showConfirmButton = false;
        this.updateVersion.showCancelButton = false;
        this.updateVersion.modalContent = '正在下载新版本,请稍后...'
        const downloadTask = uni.downloadFile({
          url: this.updateVersion.newVersionUrl,
          success: (res) => {
            this.updateVersion.downloadCompleteTemporaryPath = res.tempFilePath
          }
        });
        downloadTask.onProgressUpdate((res) => {
          this.updateVersion.modalContent = `正在下载新版本,请稍后...<br>已经下载${res.progress}%`
          if (res.progress === 100) {
            this.updateVersion.showConfirmButton = true;
            this.updateVersion.confirmType = 'install'
            this.updateVersion.confirmText = '立即安装'
            this.updateVersion.modalContent = '下载成功,点击立即安装进行安装。'
          }
        });
      },
      installNewVersion() {
        plus.runtime.install(
            this.updateVersion.downloadCompleteTemporaryPath, {
              force: true
            },
            function (res) {
              plus.runtime.restart();
            }
        );
      },
      updatePushCid(){
        uni.request({
          url: basePath + '/app/user/updatePushCid',
          method: 'POST',
          dataType: 'json',
          header: {
            'Content-type':'application/x-www-form-urlencoded'
          },
          data: {
            USER_ID:loginUser.USER_ID,
            PUSH_CID:""
          }
        })
      },
		}
	}
</script>

<style>

</style>