<template>
	<view class="content">
		<view class='wrap'>
			<u-navbar title="电子名片" placeholder bgColor="#112253" titleStyle="color:#fff">
				<view class="u-nav-slot relative" slot="left">
					<u-icon name="bell" size="26" @click="toNotice" color="#fff"></u-icon>
					<u-badge :isDot="unread>0?true:false" type="error" class="point"></u-badge>
				</view>
			</u-navbar>
			<view class="content1 flex-row-center">
				<view class="search flex flex-between" @click="search">
					<view class="left flex">
						<uni-icons type="search" size="24" color="#9199af"></uni-icons>
						<text class="search-val"> {{searchVal?searchVal:'搜索名片'}}</text>
						<uni-icons type="closeempty" size="24" @click.native.stop="delSearchVal" v-if="searchVal">
						</uni-icons>
					</view>

					<view class="right">
						<image style='width:32rpx;height:32rpx;' v-if="searchVal" @click.native.stop="delSearchVal"
							src="../../static/imgs/card/searchdel.png" mode="widthFix"></image>
						<uni-icons type="mic" size="24" @click.native.stop="micOpen" color="#9199af"></uni-icons>
					</view>
				</view>
				<view class="col flex">
					<uni-icons type="scan" size="30" @click="scan" color="#fff"></uni-icons>
				</view>
			</view>

			<view
				:style='cardHolderList.length>0?"padding:20rpx 20rpx 200rpx 20rpx;":"padding:20rpx 20rpx 20rpx 20rpx;"'
				class="content2">
				<view class="all-type flex" @click="selectType">
					<text style="margin-right: 10rpx;">{{typeName?typeName:'全部分类'}}</text>
					<uni-icons type="bottom" size="18" color="#fff"></uni-icons>
				</view>
			</view>
		</view>
		<!-- :style='cardHolderList.length>0?"top:376rpx;":"top:276rpx;"' -->
		<view class="content3 relative" style="top: 380rpx;">

			<mescroll-uni v-if='cardHolderList' :up="upOption" :down="downOption" ref="mescrollRef" @init="mescrollInit"
				@up="upCallback" @down="downCallback" height="1060">
				<view v-for='(item,index) in cardHolderList' @longpress="longpress" class="item flex">
					<!-- <view class="card-list-item" style="background:red"> -->
					<view class="card-list-item"
						:style="'background: url('+item.currentBackground+');background-size:100% 100%'">
						<view class="card-content style1" v-if="item.cuttentTemplate==1">
							<view class="left">
								<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
									shape="circle"></u--image>
							</view>
							<view class="right">
								<view class="row1">
									<text class="name">{{item.name}}</text>
									<text class="post">{{item.post}}</text>
								</view>
								<view class="row2">
									{{item.companyName}}
								</view>
								<view class="row3 flex" @click="toMap(item)">
									<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
										height="16px"></u--image>
									<view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
								</view>
								<view @click="freeTell(item)" class="row4 flex">
									<u--image :showLoading="true" src="/static/imgs/card/phone1.png" width="12px"
										height="13px"></u--image>
									<view class='icon-text'>{{ item.phone }}</view>
								</view>
								<view @click='remarkEdit(item)' class="row2 flex" style="color: #808080">
									<u--image :showLoading="true" src="/static/imgs/card/remark1.png" width="10px"
										height="12px"></u--image>
									<view class='icon-text' style="color: #808080;">{{item.remark?item.remark:'单击添加备注'}}
									</view>
								</view>
							</view>
							<u-checkbox-group v-if='islongPress' placement="column"
								@change="checkboxChange($event,index)">
								<u-checkbox iconColor='#4977FC' activeColor="#fff" :name='index+1'
									:checked='item.checked' :customStyle="{marginBottom: '8px'}">
								</u-checkbox>
							</u-checkbox-group>
						</view>
						<view class="card-content style1 flex-between" v-if="item.cuttentTemplate==2">
							<view class="right">
								<view class="row1">
									<text class="name">{{item.name}}</text>
									<text class="post">{{item.post}}</text>
								</view>
								<view class="row2">
									{{item.companyName}}
								</view>
								<view @click="toMap(item)" class="row3 flex">
									<u--image :showLoading="true" src="/static/imgs/card/address3.png" width="13px"
										height="16px"></u--image>
									<view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
								</view>
								<view @click="freeTell(item)" class="row4 flex">
									<u--image :showLoading="true" src="/static/imgs/card/phone3.png" width="12px"
										height="13px"></u--image>
									<view class='icon-text'>{{ item.phone }}</view>
								</view>
								<view @click='remarkEdit(item)' class="row2 flex" style="color: #808080">
									<u--image :showLoading="true" src="/static/imgs/card/remark3.png" width="10px"
										height="12px"></u--image>
									<view class='icon-text' style="color: #808080;">{{item.remark?item.remark:'单击添加备注'}}
									</view>
								</view>
							</view>
							<view class="left">
								<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
									shape="circle" v-if="item.headSculpture"></u--image>
								<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px"
									height="66px" shape="circle" v-else></u--image>
							</view>
							<u-checkbox-group v-if='islongPress' placement="column"
								@change="checkboxChange($event,index)">
								<u-checkbox iconColor='#4977FC' activeColor="#fff" :name='index+1'
									:checked='item.checked' :customStyle="{marginBottom: '8px'}">
								</u-checkbox>
							</u-checkbox-group>
						</view>
						<view class="card-content style2" v-if="item.cuttentTemplate==3">
							<view class="top">
								<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
									shape="circle" v-if="item.headSculpture"></u--image>
								<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px"
									height="66px" shape="circle" v-else></u--image>
							</view>
							<view class="bottom flex">
								<view class="left">
									<view class="row1">
										<text class="name">{{item.name}}</text>
										<text class="post">{{item.post}}</text>
									</view>
									<view class="row2">
										{{item.companyName}}
									</view>
								</view>
								<view class="right">
									<view @click="toMap(item)" class="row1 flex">
										<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
											height="16px"></u--image>
										<view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
									</view>
									<view @click="freeTell(item)" class="row2 flex">
										<u--image :showLoading="true" src="/static/imgs/card/phone1.png" width="12px"
											height="13px"></u--image>
										<view class='icon-text'>{{ item.phone }}</view>
									</view>
									<view @click='remarkEdit(item)' class="row2 flex" style="color: #808080">
										<u--image :showLoading="true" src="/static/imgs/card/remark1.png" width="10px"
											height="12px"></u--image>
										<view class='icon-text' style="color: #808080;">
											{{item.remark?item.remark:'单击添加备注'}}
										</view>
									</view>
								</view>
							</view>
							<u-checkbox-group v-if='islongPress' placement="column"
								@change="checkboxChange($event,index)">
								<u-checkbox iconColor='#4977FC' activeColor="#fff" :name='index+1'
									:checked='item.checked' :customStyle="{marginBottom: '8px'}">
								</u-checkbox>
							</u-checkbox-group>
						</view>
						<view class="card-content style2" v-if="item.cuttentTemplate==4">
							<view class="top">
								<view class="row1">
									<text class="name">{{item.name}}</text>
									<text class="post">{{item.post}}</text>
								</view>
								<view class="row2">
									{{item.companyName}}
								</view>

							</view>
							<view class="bottom flex">
								<view class="left">
									<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
										shape="circle" v-if="item.headSculpture"></u--image>
									<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png"
										width="66px" height="66px" shape="circle" v-else></u--image>
								</view>
								<view class="right">
									<view @click="toMap(item)" class="row1 flex">
										<u--image :showLoading="true" src="/static/imgs/card/address2.png" width="13px"
											height="16px"></u--image>
										<view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
									</view>
									<view @click="freeTell(item)" class="row2 flex">
										<u--image :showLoading="true" src="/static/imgs/card/phone2.png" width="12px"
											height="13px"></u--image>
										<view class='icon-text'>{{ item.phone }}</view>
									</view>
									<view @click='remarkEdit(item)' class="row2 flex" style="color: #808080">
										<u--image :showLoading="true" src="/static/imgs/card/remark2.png" width="10px"
											height="12px"></u--image>
										<view :style='item.remark?"color:#000;":"color:#808080;"' class='icon-text'>
											{{item.remark?item.remark:'单击添加备注'}}
										</view>
									</view>
								</view>
							</view>
							<u-checkbox-group v-if='islongPress' placement="column"
								@change="checkboxChange($event,index)">
								<u-checkbox iconColor='#4977FC' activeColor="#fff" :name='index+1'
									:checked='item.checked' :customStyle="{marginBottom: '8px'}">
								</u-checkbox>
							</u-checkbox-group>
						</view>
						<view class="car-bottom flex">
							<view class="left">
								<image src="../../static/imgs/card/home.png" mode="widthFix" style="width: 32rpx;"
									@click="toHome(item)"></image>
								<text @click='switchType(item)'
									style="color: #fff;font-size: 36rpx;font-weight: 700;">{{item.classify?item.classifyName:'默'}}</text>
								<image v-if='item.shareCard==1' src="../../static/imgs/card/share.png" mode="widthFix"
									style="width: 35rpx;" @click="share(item)"></image>

								<image v-if='item.shareCard==0' src="../../static/imgs/card/share_grey.png"
									mode="widthFix" style="width: 40rpx;"></image>
							</view>
							<view class="right">

							</view>
						</view>
					</view>
				</view>
			</mescroll-uni>
		</view>
		<view class="del-style" v-if="islongPress">
			<view class="left">
				<text class="qx" @click="islongPress=false">取消</text>
				<text class="del" @click="del">删除</text>
			</view>
			<view style='width:128rpx;' class="right flex">
				<view>全选</view>
				<u-checkbox-group class='' placement="column" @change="checkboxChange($event,'')">
					<u-checkbox iconColor='#4977FC' activeColor="#fff" name='全选' :checked='checked'
						:customStyle="{marginBottom: '8px',position: 'relative',top: '-19px',right:'-8px'}">
					</u-checkbox>
				</u-checkbox-group>
			</view>

		</view>
		<u-picker :show="isShowType" :columns="typeColumns" keyName="circleName" :title="type == 2?'修改分类':'选择分类'"
			@close="isShowType=false" @cancel="isShowType=false" closeOnClickOverlay @confirm="typeConfirm"></u-picker>
		<u-toast ref="uToast"></u-toast>
		<u-modal :show="delShow" title="提示" confirmText='确定' showCancelButton='true' @cancel="delShow=false"
			@confirm="delConfirm" :content='"已选中"+this.checkedList.length+"张名片，确定删除？"'></u-modal>
		<u-modal :show="modalShow" @confirm='remarkConfirm' :confirmColor="remark?'#2979ff':'#ccc'"
			showCancelButton='true' title="备注"  @cancel="modalShow=false">
			<view class="slot-content">
				<u--textarea v-model="remark" placeholder="输入备注，不超过150个字"></u--textarea>
			</view>
		</u-modal>

		<u-popup :show="qrcodeShow" @close="qrcodeShow=false" mode="center" :round='10'>
			<image style='margin:10px;' :src="currectData.qrCode" mode="widthFix"></image>
		</u-popup>
		<u-popup :show="popupshow" :closeOnClickOverlay='true' :overlayOpacity='0.4' @close='handleHiddenShare'
			:round="10" mode="bottom">
			<view>
				<!-- <view class="share-to">
					<text>分享到</text>
				</view> -->
				<view class="share-content">

					<view class="block" @click="toUrl()">
						<button class="moment">
							<image style='width:108rpx;height:108rpx;' src="@/static/imgs/scancode.png"
								mode="aspectFill"></image>
							<view>扫码分享</view>
						</button>
					</view>
					<view class="block">
						<button class="shareBtn" type="default" data-name="shareBtn" open-type="share">
							<image style='width:108rpx;height:108rpx;' src="@/static/imgs/shade.png" mode="aspectFill">
							</image>
							<view>分享微信好友</view>
						</button>
					</view>
				</view>
			</view>
		</u-popup>
		<!-- <image :src="poster" style="width: 750rpx;height: 1334rpx;"></image> -->
		<!-- 生成图片 -->
		<poster :data="canvasData" background-color="#FFF" :width='750' :height='420' @on-success="posterSuccess"
			ref="poster" @on-error="posterError"></poster>
		<!-- #ifdef MP-WEIXIN -->
		<u-popup :show="isPhone" mode="center" :round="10">
			<view class='sq-view'>
				<view class="text">
					手机登录后才能查看名片哦~
				</view>
				<button class="confirm" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">授权手机号</button>
			</view>
			<!-- <navigator hover-class="none" url="/pages/cardHolder/popup/coupon">领券</navigator> -->
		</u-popup>
		<!-- #endif -->
		<u-toast ref="uToast"></u-toast>
	</view>
</template>

<script>
	import Poster from '../../components/zhangyuhao-poster/Poster.vue'
	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
	export default {
		mixins: [MescrollMixin],
		components: {
			Poster
		},
		data() {
			return {
				userInfo: {},
				downOption: {
					auto: false,
				},
				upOption: {
					page: {
						size: 10 // 每页数据的数量,默认10
					},
					noMoreSize: 1,
					empty: {
						tip: '暂无相关数据'
					}
				},
				params: {
					encryptedData: '',
					session_key: '',
					iv: '',
				},
				key: '',
				isPhone: false,
				canReset: false,
				poster: '',
				canvasData: {},
				searchVal: '',
				isShowType: false,
				loading: true,
				typeName: '',
				typeColumns: [],
				cardHolderList: [],
				currectData: [],
				type: 1,
				popupshow: false,
				modalShow: false,
				remark: '',
				islongPress: false,
				checked: false,
				checkedList: [],
				delShow: false,
				qrcodeShow: false,
				unread: 0,
				clicknum: 0,
				noticeList: [],
				status: 0,
			};
		},
		onShow() {
		},
		mounted() {

		},
		onLoad: function(options) {
			console.log(uni.getLaunchOptionsSync().scene, 1011)
			if (uni.getStorageSync("userInfo").phone) {
				this.userInfo = uni.getStorageSync("userInfo")
				this.$nextTick(function() {
					this.mescroll.resetUpScroll()
					// this.canReset && this.mescroll.resetUpScroll() // 重置列表数据为第一页  
					// this.canReset && this.mescroll.scrollTo(0, 0) // 重置列表数据为第一页时,建议把滚动条也重置到顶部,避免无法再次翻页的问题  
					// this.canReset = true // 过滤第一次的onShow事件,避免初始化界面时重复触发upCallback, 无需配置auto:false
				});
				this.searchVal = uni.getStorageSync("search_val") ? uni.getStorageSync("search_val") : ''
			} else {
				if (uni.getLaunchOptionsSync().scene != 1154) {
					this.login()
				}
			}
			this.status = uni.getLaunchOptionsSync().scene
			if (uni.getLaunchOptionsSync().scene == 1154) {
				uni.showToast({
					title: '请前往小程序查看名片',
					icon: 'none',
					duration: 10000
				});
			} else {
				wx.showShareMenu({
					withShareTicket: true,
					menus: ["shareAppMessage", "shareTimeline"]
				})
			}

		},
		onShareAppMessage(res) {
			console.log(res, this.popupshow)
			let that = this;
			//生成名片图片
			let imageUrl = this.poster
			console.log("imageUrl", imageUrl)
			if (res.from === 'button') {
				let path = `/pages/cardHolder/scanCodeAddCard?id=${that.currectData.id}`
				return {
					title: this.popupshow ? `${that.currectData.name}分享的名片~` : '电子名片',
					path: path,
					imageUrl: this.popupshow ? imageUrl : '',
				};
			}
			if (res.from === 'menu') {
				return {
					title: '名片夹',
					path: '/pages/tabBarPro/index/index',
					imageUrl: this.popupshow ? imageUrl : ''
				};
			}
		},
		methods: {
			downCallback(){
				this.mescroll.resetUpScroll()
			},
			freeTell(item) {
				uni.makePhoneCall({
					phoneNumber: item.phone, //仅为示例，并非真实的电话号码
					success: function() {
						console.log("拨打电话成功！")
					},
					fail: function() {
						console.log("拨打电话失败！")
					}
				})
			},
			getPhoneNumber(e) {
				console.log(e)
				if (e.mp.detail.errMsg === "getPhoneNumber:ok") {
					this.isPhone = false
					this.params.iv = e.mp.detail.iv
					this.params.encryptedData = e.mp.detail.encryptedData
					this.params.session_key = this.accessToken
					console.log(this.params)
					let appId = 'wx5d8906c2208c899f'
					let sessionKey = this.userInfo.sessionKey
					let encryptedData = this.params.encryptedData
					let iv = this.params.iv

					let pc = this.$WXBizDataCrypt(appId, sessionKey)

					let data = this.$WXBizDataCrypt.prototype.decryptData(encryptedData, iv, appId, sessionKey)

					console.log('解密后 data: ', data)
					this.getTokenAsync(data)
				}

			},
			async getTokenAsync(val) {
				let that = this
				uni.getUserInfo({
					provider: 'weixin',
					success: function(info) {
						console.log("info", info)
						that.userInfo.nickname = info.userInfo.nickName
						that.userInfo.head = info.userInfo.avatarUrl
						that.userInfo.phone = val.phoneNumber
						that.$request.baseRequest('commonUserApp', 'edit', {
							commonUserInfo: JSON.stringify(that.userInfo)
						}, failres => {
							that.$refs.uToast.show({
								type: 'error',
								message: failres.errmsg,
							})
							uni.hideLoading()
						}).then(res1 => {
							that.userInfo = res1.data
							uni.setStorageSync("userInfo", that.userInfo)
							that.mescroll.resetUpScroll()
						})
					}
				})
				// that.userInfo.phone = val.phoneNumber
				// that.userInfo.userId = that.userInfo.id
				// 	console.log(that.userInfo)
				// 	that.$request.baseRequest('user', 'syncUserInfo', that.userInfo).then(syncRes => {

				// 		this.$request.baseRequest('sunMemberInfoApp', 'add', {
				// 			sunMemberInfo: JSON.stringify({
				// 				name: that.userInfo.nickname,
				// 				phone: val.phoneNumber,
				// 				sex: '1'
				// 			})
				// 		}, failres => {
				// 			console.log('res+++++', failres.errmsg)
				// 			this.$refs.uToast.show({
				// 				type: 'error',
				// 				message: failres.errmsg,
				// 			})
				// 			uni.hideLoading()
				// 		}).then(res => {
				// 			if (res.errno == 200) {

				// 				uni.setStorageSync('userInfo', that.userInfo)
				// 				that.$store.commit('login', that.userInfo)
				// 				// that.$api.setUserInfo(that.userInfo)
				// 				uni.hideLoading()
				// 				// that.liangxinLogin()
				// 				that.init()
				// 				this.isShowAlert = false
				// 			}

				// 		})
				// 	})
			},
			delVal() {
				this.searchVal = ""
				this.mescroll.resetUpScroll()
			},
			handleHiddenShare() {
				console.log(11111)
				this.popupshow = false
			},
			posterError(err) {
				console.log(err)
				uni.hideLoading()
			},
			posterSuccess(url) {
				console.log("hahahah", url)
				// 生成成功，会把临时路径在这里返回
				this.poster = url;
				this.popupshow = true
				console.log(url)
				uni.hideLoading()
			},
			toHome(item) {
				uni.navigateTo({
					url: "/pages/circle/lookHome?id=" + item.personalHomeId
				})
			},
			delSearchVal() {
				this.searchVal = ""
				uni.removeStorageSync('search_val')
				this.mescroll.resetUpScroll()
			},
			toUrl() {
				console.log(this.currectData)
				this.popupshow = false
				this.qrcodeShow = true
			},
			share(item) {
				uni.showLoading({
					title: '加载中',
					mask: true
				})
				this.currectData = item
				var data = [{
						type: 'image',
						path: this.currectData.currentBackground,
						use: 'bg',
						x: -10,
						y: 0,
						width: 530,
						height: 325
					},
					{
						type: 'image',
						path: this.currectData.headSculpture?this.currectData.headSculpture:'../../static/imgs/card/defaulthead.png',
						shape: 'circle',
						use: 'head',
						x: 30,
						y: 30,
						width: 100,
						height: 100
					},
					{
						type: 'text',
						text: this.currectData.name,
						use: 'name',
						x: 150,
						y: 50,
						size: 24,
						color: '#000'

					},
					{
						type: 'text',
						text: this.currectData.post,
						use: 'post',
						x: 240,
						y: 55,
						size: 18,
						color: '#666666'

					},
					{
						type: 'text',
						text: this.currectData.companyName,
						use: 'companyName',
						x: 150,
						y: 95,
						size: 18,
						color: '#000'

					},
					{
						type: 'image',
						path: '../../static/imgs/card/address1.png',
						use: 'address-icon',
						x: 145,
						y: 130,
						width: 15,
						height: 20
					},
					{
						type: 'textarea',
						text: this.currectData.province + this.currectData.city + this.currectData.area + this
							.currectData.detailedAddress,
						lineSpace: 1,
						width: 320,
						use: 'address',
						x: 175,
						y: 135,
						size: 14,
						color: '#000'
					},
					{
						type: 'image',
						path: '../../static/imgs/card/phone1.png',
						use: 'phone-icon',
						x: 145,
						y: 163,
						width: 16,
						height: 16
					},
					{
						type: 'text',
						text: this.currectData.phone,
						use: 'phone',
						x: 175,
						y: 167,
						size: 14,
						color: '#000'
					},
					{
						type: 'image',
						path: '../../static/imgs/card/remark1.png',
						use: 'remark-icon',
						x: 145,
						y: 197,
						width: 13,
						height: 16
					},
					{
						type: 'textarea',
						text: this.currectData.remark ? this.currectData.remark : '单击添加备注',
						use: 'remark',
						lineSpace: 2,
						width: 200,
						x: 175,
						y: 200,
						size: 13,
						color: '#000'
					},
					{
						type: 'image',
						path: '../../static/imgs/card/bg3.png',
						use: 'bg1',
						x: 0,
						y: 243,
						width: 370,
						height: 67
					},
					{
						type: 'image',
						path: '../../static/imgs/card/bg4.png',
						use: 'bg2',
						x: 355,
						y: 243,
						width: 150,
						height: 67
					},
					{
						type: 'image',
						path: '../../static/imgs/card/home.png',
						use: 'home',
						x: 65,
						y: 260,
						width: 33,
						height: 33
					},
					{
						type: 'text',
						text: this.currectData.classifyName ? this.currectData.classifyName : '默',
						use: 'classify',
						x: 145,
						y: 263,
						size: 34,
						color: '#fff'
					},
					{
						type: 'image',
						path: '../../static/imgs/card/share.png',
						use: 'share',
						x: 235,
						y: 263,
						width: 33,
						height: 28
					},
				]
				console.log(this.currectData.cuttentTemplate, 111111)
				for (var i = 0; i < data.length; i++) {
					switch (this.currectData.cuttentTemplate) {
						case '2':
							if (data[i].use === 'name' ||
								data[i].use === 'companyName' ||
								data[i].use === 'address-icon' ||
								data[i].use === 'phone-icon' ||
								data[i].use === 'remark-icon') {
								data[i].x = 30
							}
							if (data[i].use === 'address-icon') {
								data[i].path = '../../static/imgs/card/address3.png'
							}
							if (data[i].use === 'phone-icon') {
								data[i].path = '../../static/imgs/card/phone3.png'
							}
							if (data[i].use === 'remark-icon') {
								data[i].path = '../../static/imgs/card/remark3.png'
							}
							if (data[i].use === 'post') {
								data[i].x = 100
							}
							if (data[i].use === 'address' ||
								data[i].use === 'phone' ||
								data[i].use === 'remark') {
								data[i].x = 60
							}
							if (data[i].use == 'head') {
								data[i].x = 370
							}
							break;
						case '3':
							if (data[i].use === 'name') {
								data[i].x = 30
								data[i].y = 150
							}
							if (data[i].use === 'companyName') {
								data[i].x = 30
								data[i].y = 180
							}
							if (data[i].use === 'post') {
								data[i].x = 100
								data[i].y = 153
							}
							if (data[i].use === 'address-icon' ||
								data[i].use === 'phone-icon' ||
								data[i].use === 'remark-icon') {
								data[i].x = 170
							}
							if (data[i].use === 'address-icon') {
								data[i].y = 150
							}
							if (data[i].use === 'address') {
								data[i].y = 155;
								data[i].width = 300
							}
							if (data[i].use === 'phone-icon') {
								data[i].y = 180
							}
							if (data[i].use === 'phone') {
								data[i].y = 183
							}
							if (data[i].use === 'remark-icon') {
								data[i].y = 210
							}
							if (data[i].use === 'remark') {
								data[i].y = 212
							}
							if (data[i].use === 'address' ||
								data[i].use === 'phone' ||
								data[i].use === 'remark') {
								data[i].x = 190
							}
							break;
						case '4':
							if (data[i].use === 'name' ||
								data[i].use === 'companyName') {
								data[i].x = 30
							}
							if (data[i].use === 'companyName') {
								data[i].y = 90
							}
							if (data[i].use === 'post') {
								data[i].x = 100
							}
							if (data[i].use == 'head') {
								data[i].x = 25
								data[i].y = 120
							}
							if (data[i].use === 'address-icon') {
								data[i].path = '../../static/imgs/card/address2.png'
							}
							if (data[i].use === 'phone-icon') {
								data[i].path = '../../static/imgs/card/phone2.png'
							}
							if (data[i].use === 'remark-icon') {
								data[i].path = '../../static/imgs/card/remark2.png'
							}
							if (data[i].use === 'address-icon' ||
								data[i].use === 'phone-icon' ||
								data[i].use === 'remark-icon') {
								data[i].x = 170
							}
							if (data[i].use === 'address') {
								data[i].width = 300
							}
							if (data[i].use === 'address' ||
								data[i].use === 'phone' ||
								data[i].use === 'remark') {
								data[i].x = 190
							}
							break;
						default:
					}
				}
				this.canvasData = {
					clicknum: this.clicknum++,
					list: data,
					page: 'cardHolder'
				}

			},
			async delConfirm() {
				uni.showLoading({
					title: '数据加载中',
					mask: true
				})

				for (var i = 0; i < this.checkedList.length; i++) {
					await this.$request.baseRequest('admin.unimall.cardHolderInfo', 'delete', {
						id: this.checkedList[i].data.id,
					}, failres => {
						console.log('res+++++', failres.errmsg)
						this.$refs.uToast.show({
							type: 'error',
							message: failres.errmsg,
						})
					}).then(res => {
						console.log(i, this.checkedList.length - 1)
						if (i == this.checkedList.length - 1) {
							uni.hideLoading()
							this.$refs.uToast.show({
								type: 'success',
								message: '删除成功',
							})
							this.delShow = false
							this.islongPress = false
							this.mescroll.resetUpScroll()
						}
					})
				}
			},
			del() {

				if (this.checkedList.length > 0) {
					this.delShow = true
				} else {
					this.$refs.uToast.show({
						type: 'error',
						message: '请勾选后再进行删除！',
					})
				}
			},

			longpress() {
				console.log("长按事件", 1111111111);
				this.islongPress = true;

			},
			checkboxChange(e, i) {
				console.log(e, i, 111111111)
				if (i === '') {
					console.log(this.checked)
					this.checked = !this.checked;
					this.cardHolderList.map(item => item.checked = this.checked);
					this.$forceUpdate()
					var checkList = this.cardHolderList.filter((item) => {
						return item.checked == true
					})
					var data = checkList.map((item, index) => {
						return {
							index: index,
							data: item
						}
					})
					this.checkedList = JSON.parse(JSON.stringify(data))
				} else {
					if (e[0]) {
						this.checkedList.push({
							index: i,
							data: this.cardHolderList[i]
						})
					} else {
						var index = this.checkedList.findIndex((item) => {
							return item.index == i
						})
						this.checkedList.splice(index, 1)
					}
					if (this.checkedList.length != this.cardHolderList.length) {
						this.checked = false
					}
				}

				// for(var i=0;i<this.cardList.length;i++){
				// 	console.log(this.cardList[i].checked)
				// 	// if(this.cardList[i].checkedList.length>0){
				// 	// 	this.checkedList.push(i)
				// 	// }
				// }
				console.log(this.checkedList)
			},
			remarkConfirm() {
				if (this.remark) {
					this.currectData.remark = this.remark
					this.$request.baseRequest('admin.unimall.cardHolderInfo', 'update', {
						cardHolderInfo: JSON.stringify(this.currectData),
					}, failres => {
						console.log('res+++++', failres.errmsg)
						this.$refs.uToast.show({
							type: 'error',
							message: failres.errmsg,
						})
					}).then(res => {
						this.$refs.uToast.show({
							type: 'success',
							message: '修改备注成功',
						})
						this.remark=''
						this.modalShow = false
						this.mescroll.resetUpScroll()
					})
				}
			},
			remarkEdit(item) {
				this.currectData = item
				this.remark = this.currectData.remark
				this.modalShow = true
			},
			switchType(item) {debugger
				this.type = 2
				this.typeColumns[0].shift()
				this.currectData = item
				this.isShowType = true
			},
			typeConfirm(e) {
				if (this.type == 2) {
					console.log(e.value[0].circleName,"123312132")
					this.$set(this.currectData,'classify',e.value[0].circleName)
					this.$request.baseRequest('admin.unimall.cardHolderInfo', 'update', {
						cardHolderInfo: JSON.stringify(this.currectData),
					}, failres => {
						console.log('res+++++', failres.errmsg)
						this.$refs.uToast.show({
							type: 'error',
							message: failres.errmsg,
						})
					}).then(res => {
						this.$refs.uToast.show({
							type: 'success',
							message: '修改分类成功',
						})
						this.mescroll.resetUpScroll()
					})
				} else {
					this.typeName = e.value[0].circleName
					if(this.typeName =="全部分类") this.typeName = ''
					this.mescroll.resetUpScroll()
				}
				this.isShowType = false
			},
			async upCallback(page) {
				if (uni.getLaunchOptionsSync().scene == 1154) {
					uni.showToast({
						title: '请前往小程序查看名片',
						icon: 'none',
						duration: 10000
					});
				} else {
					var that = this
					uni.showLoading({
						title: '数据加载中'
					})
					await this.$request.baseRequest('admin.unimall.cardHolderInfo', 'list', {
						page: page.num,
						limit: page.size,
						commonId: uni.getStorageSync("userInfo").id,
						searchContent: this.searchVal,
						classify:this.typeName
					}, failres => {
						console.log('res+++++', failres.errmsg)
						this.$refs.uToast.show({
							type: 'error',
							message: failres.errmsg,
						})
						uni.hideLoading()
					}).then(res => {
						console.log(res)
						if (page.num == 1) this.cardHolderList = [];
						let curPageLen = res.data.items.length;
						let totalPage = res.data.total;
						for (var i = 0; i < res.data.items.length; i++) {
							res.data.items[i].checked = false
							if (res.data.items[i].classify) {
								res.data.items[i].classifyName = res.data.items[i].classify[0]
							}
						}
						this.cardHolderList = res.data.items
						this.loading = false
						this.$nextTick(() => {
							that.mescroll.endBySize(curPageLen, totalPage)
						});

						uni.hideLoading()
					})

					await this.$request.baseRequest('admin.unimall.cardClassifyInfo', 'list', {
						page: 1,
						limit: 9999,
						commonId: uni.getStorageSync("userInfo").id
					}, failres => {
						console.log('res+++++', failres.errmsg)
						this.$refs.uToast.show({
							type: 'error',
							message: failres.errmsg,
						})
					}).then(res => {
						res.data.items.unshift({
							circleName:'全部分类'
						})
						this.typeColumns = [res.data.items]
						
						console.log(this.typeColumns)
					})

					await this.$request.baseRequest('admin.unimall.cardNewsInfo', 'list', {
						receiveId: uni.getStorageSync("userInfo").id,
					}, failres => {
						console.log('res+++++', failres.errmsg)
						this.$refs.uToast.show({
							type: 'error',
							message: failres.errmsg,
						})
					}).then(res => {
						this.noticeList = res.data.items
						if (this.noticeList.length > 0) {
							var data = this.noticeList.filter((item) => {
								return item.newsFlag == 0
							})
							this.unread = data ? data.length : 0
						}
						console.log(this.unread)
					})
				}
			},
			login() {
				let that = this
				uni.login({
					"provider": "weixin",
					success: function(wxres) {
						that.$request.baseRequest('commonUserApp', 'commonUserLogin', {
							loginType: 1,
							raw: JSON.stringify(wxres)
						}, failres => {
							that.$refs.uToast.show({
								type: 'error',
								message: failres.errmsg,
							})
							uni.hideLoading()
						}).then(res => {
							console.log(res.data)
							that.isPhone = true
							that.userInfo = res.data
						})
					},
					fail: function(err) {
						that.$refs.uToast.show({
							type: 'error',
							message: err.code,
						})
						// 登录授权失败  
						// err.code是错误码
					}
				})
			},
			toNotice() {
				uni.navigateTo({
					url: "/pages/cardHolder/notice"
				})
			},
			micOpen: function() {
				uni.navigateTo({
					url: "/pages/cardHolder/search?mic=1"
				})
			},
			uploadFile: function(tempFilePath) {
				return new Promise((resolve, reject) => {
					//调用你的接口把音频文件转为文字
					this.$minApi.upload('txasr/SentenceRecognition', null, tempFilePath)
						.then(res => {
							if (res.code == 1) {
								resolve(res.data.Result);
							} else {
								reject(e);
							}
						})
						.catch(e => {
							reject(e);
						});
				});
			},
			search() {
				uni.navigateTo({
					url: "/pages/cardHolder/search"
				})
			},
			input(res) {
				console.log('----input:', res)
			},
			clear(res) {
				uni.showToast({
					title: 'clear事件，清除值为：' + res.value,
					icon: 'none'
				})
			},
			blur(res) {
				uni.showToast({
					title: 'blur事件，输入值为：' + res.value,
					icon: 'none'
				})
			},
			focus(e) {
				uni.showToast({
					title: 'focus事件，输出值为：' + e.value,
					icon: 'none'
				})
			},
			cancel(res) {
				uni.showToast({
					title: '点击取消，输入值为：' + res.value,
					icon: 'none'
				})
			},
			selectType() {
				this.isShowType = true
				this.type = 1
			},
			scan() {
				// console.log(1)
				// uni.navigateTo({
				// 	url: "/pages/cardHolder/scancode"
				// })
				uni.scanCode({
					success: function(res) {
						console.log('条码类型：' + res.scanType);
						console.log('条码内容：' + res.result);
						uni.navigateTo({
							url: "/pages/cardHolder/scanCodeAddCard?id=" + res.result.split("=")[1]
						})
					}
				});
			},
			toMap(item) {
				uni.navigateTo({
					url: "/pages/cardHolder/map?val=" + JSON.stringify(item)
				})
			},
		}
	}
</script>

<style lang="scss" scoped>
	.content {
		// padding: 0 20rpx;
	}

	.u-nav-slot {
		/deep/.u-badge {
			position: absolute;
			top: 0;
			right: 6rpx;
		}
	}

	.content1 {
		padding: 20rpx;
		background-color: #112253;

		.search {
			color: #9199af;
			background: #22325f;
			border-radius: 50rpx;
			width: 100%;
			padding: 10rpx 30rpx;
			box-sizing: border-box;
			margin-right: 20rpx;
		}
	}

	.content2 {
		background: #112253;
		color: #fff;
		padding: 20rpx 20rpx 200rpx 20rpx;
		border-radius: 0px 0px 20px 20px;

	}

	.content3 {
		// padding:0 20rpx;
		// position: relative;
		// top: 376rpx;
		margin: 0 20rpx;
		background: #f5f5f5;
		// height: 1000px;
		border-radius: 30rpx;

		.style1 {
			display: flex;
			padding: 20rpx 30rpx;
			width: 85%;
			margin-bottom: 90rpx;

			.left {
				width: 132rpx;
				height: 132rpx;
				border-radius: 50%;
			}

			.right {
				margin-left: 40rpx;

				.row1 {
					.name {
						font-size: 38rpx;
						font-weight: bold;
						color: #040000;
						margin-right: 20rpx;
					}

					.post {
						font-size: 26rpx;
						font-weight: 500;
						color: #666666;
					}
				}

				.row2 {
					font-size: 24rpx;
					font-weight: bold;
					color: #323333;
				}

				.row3 {
					margin-top: 30rpx;
					font-size: 24rpx;
					font-weight: 500;
					color: #323333;

				}

				.row2,
				.row4 {
					margin-top: 10rpx;
				}
			}
		}

		.style2 {
			padding: 15rpx;
			margin-bottom: 80rpx;

			.top {
				.row1 {
					.name {
						font-size: 38rpx;
						font-weight: bold;
						color: #040000;
						margin-right: 20rpx;
					}

					.post {
						font-size: 26rpx;
						font-weight: 500;
						color: #666666;
					}
				}

				.row2 {
					margin-top: 10rpx;
					font-size: 24rpx;
					font-weight: bold;
					color: #323333;
				}
			}

			.bottom {
				margin-top: 20rpx;

				.left {
					margin-right: 40rpx;

					.row1 {
						.name {
							font-size: 38rpx;
							font-weight: bold;
							color: #040000;
							margin-right: 20rpx;
						}

						.post {
							font-size: 26rpx;
							font-weight: 500;
							color: #666666;
						}
					}

					.row2 {
						margin-top: 10rpx;
						font-size: 26rpx;
						font-weight: bold;
						color: #323333;
					}

				}

				.right {

					.row1,
					.row2 {
						font-size: 24rpx;
						font-weight: 500;
						color: #323333;
					}

					.row2,
					.row4 {
						margin-top: 10rpx;
					}
				}
			}

		}

		.card-list-item {
			width: calc(100%);
			// left:-20rpx;
			position: relative;
			border-radius: 30rpx;
			padding: 40rpx;
			box-sizing: border-box;

			.car-bottom {
				position: absolute;
				bottom: 63rpx;
				left: 20rpx;
				bottom: 24rpx;
				width: 94.9%;
				background: url("../../static/imgs/card/bg5.png") no-repeat center;
				background-size: 100% 100%;
				height: 80rpx;

				// width: calc(100% - 40rpx);
				.left {
					// top: -40rpx;
					position: absolute;
					padding: 20rpx 0;
					width: 70vw;
					height: 80rpx;
					box-sizing: border-box;
					display: flex;
					align-items: center;
					justify-content: space-evenly;
					left: 0px;

					// background-size: 100% 100%;
					overflow-y: hidden;
				}
			}

			.left {
				width: 30%;

				.top {

					margin-bottom: 20rpx;
				}

				.img {
					width: 80%;
				}

				.bottom {}
			}

			.right {
				.row1 {
					.line {
						width: 1px;
						height: 20px;
						margin: 0 20rpx;
						background: black;
					}
				}
			}
		}

	}

	.slot-content {
		width: 100%;
	}

	.shade {
		background: rgba(0, 0, 0, 0.2);
		width: 100%;
		height: 100vh;
		position: fixed;
		top: 0;
		left: 0;
	}

	.qrCode {
		position: absolute;
		top: 50%;
		left: 0;
		right: 0;
		transform: translateY(-50%);
		text-align: center;
	}

	/deep/.u-checkbox-group {

		position: absolute;
		right: 20px;
		z-index: 99;
		top: 30px;
	}

	.del-style {
		background: #fff;
		padding: 20rpx;
		width: calc(100vw - 40rpx);
		position: fixed;
		display: flex;
		z-index: 100;
		justify-content: space-between;
		bottom: 0;
		font-size: 28rpx;

		.right {
			color: #344577;
		}
	}

	.del,
	.qx {
		padding: 10rpx;
	}

	.del {
		color: #FF4040;
	}

	.qx {
		color: #666;
		bottom: 0
	}

	.share-content {
		display: flex;
		padding: 20rpx;
		justify-content: center;
		font-size: 24rpx;

		button {
			background: transparent;
			line-height: 1;
		}

		button:after {
			border: none;
		}
	}

	.sq-view {
		padding: 60rpx 80rpx 80rpx 80rpx;

		.text {
			display: flex;
			justify-content: center;
			font-size: 32rpx;
			font-weight: bold;
			color: #1A1A1A;
			margin-bottom: 60rpx;
		}

		.confirm {
			display: flex;
			justify-content: center;
			color: white;
			// margin: 40rpx auto;
			background: #18254C;
			border-radius: 20rpx;
		}
	}

	.icon-text {
		margin-left: 10px;
		font-size: 26rpx;
		font-weight: 500;
		color: #323333;
	}

	/deep/.u-checkbox__icon-wrap.u-checkbox__icon-wrap--square {
		border-color: #D7DEEB !important;
	}

	.wrap {
		position: fixed;
		top: 0;
		width: 100%;
	}

	/deep/.mescroll-body {
		min-height: 558px !important;
		height: 558px !important;
		background-color: green;
		overflow: scroll !important;
	}
</style>