<template>
	<view class="page">
		<view class="step_num">
			<view class="step step1">完善报销明细</view>
			<view class="step step2">上传报销凭证</view>
		</view>
		<view class="photo_container item_line"  style="margin-top: 22upx;">
			<view class="pzqd">上传凭证</view>
			<view class="photo_out">
				<view class="imgwrap" v-for="(items,index) in imgsrc_list_local" :key="index">
					<view class="myimgBox" @click="reUpload(index)">
						<view class="img">
							<img class="uploadimg" :src="items" />
							<view class="cxsc">重新上传</view>
						</view>
					</view>
					<img src="../../static/img/delete.png" class="deleteimg" @click="deleteImg(index)" />
				</view>
				<view class="imgwrap" @click="chooseImg()" >
					<view class="myimgBox">
						<view class="img upload_btn">
							<img src="../../static/img/uploadimg.png" />
							<view class="sctp">上传图片</view>
						</view>
					</view>
				</view>
			</view>
		</view>
		<!-- <view class="item item_line">
			<view class="itemname redMi">发给谁</view>
			<view class="itemtext"  @click="selectPeople()" >
				<input class="iteminput InputRightMargin" disabled placeholder="选择人员" :value="formatCsrName(targetList)"/>
				<img src="../../static/img/personlistIcon.png" class="dateIcon" />
			</view>
		</view> -->
		<view class="fixMargin"></view>
		<view class="fixBottom">
			<view class="uni-flex uni-row">
				<view style="-webkit-flex:1;flex: 1;">
					<button type="primary" plain="true"  style="width: 90%; background: #fff;" @click="previous">上一步</button>
				</view>
				<view style="-webkit-flex:1;flex: 1;">
					<button type="primary" plain="true"  style="width: 90%; background: #fff;" @click="goAddRepair('zc')" v-if="approveState==-1||approveState==0||approveState==2">暂存</button>
				</view>
				<view style="-webkit-flex:1;flex: 1;">
					<button type="primary"  style="width: 90%;"  @click="goAddRepair('tj')" :disabled="approveState!=0">确认提交</button>
				</view>
			</view>
		</view>
		<view class="goHome" @click='goMain("reimInfo")'>
			<img src="../../static/img/gohome.png">
		</view>
		<view class="mysearchlist" style="z-index: 10000;">
			<chooseUserMulti ref="mysearchlist" 
				:showsearch.sync="show_search_user"
				:itemInfo_.sync="search_value_user">
			</chooseUserMulti>
		</view>
	</view>
</template>

<script>
	import {
		config
	} from '../../request/js/config.js'
	import uniIcons from "@/components/uni-icons/uni-icons.vue"
	import chooseUserMulti from '@/components/xinsoft-search-list/chooseUserMulti.vue'
	export default {
		components: {
			uniIcons,chooseUserMulti
		},
		data() {
			return {
				config:config,
				imgsrc_list: [],
				imgsrc_list_local: [],
				csr:[],
				id:'',
				targetList: [],
				itemList:[],
				show_search_user:false,
				search_value_user:[],
				approveState:-1
			}
		},
		onLoad(option) {
			var _this = this;
			uni.getStorage({
				key: 'reimInfo',
				success: function (res) {
					console.log(res.data.approveState)
					_this.approveState = res.data.approveState==0? res.data.approveState:-1
					_this.id = res.data.id
					console.log(_this.approveState)
					_this.targetList = res.data.targetList||[];
					_this.imgsrc_list = res.data.imgsrc_list||[];
					_this.imgsrc_list_local = res.data.imgsrc_list_local||[];
					_this.itemList = res.data.info
				}
			});
		},
		watch:{
			search_value_user(newv){
				var detail = [];
				newv.forEach(item=>{
					let obj = {user_id: item.userId, name: item.NAME};
					detail.push(obj);
				})
				if(newv.length>0){
					var reimInfo =  uni.getStorageSync('reimInfo');
					if(!reimInfo){
						reimInfo = {}
					}
					this.targetList=detail
					reimInfo.targetList = this.targetList
					uni.setStorage({
					    key: 'reimInfo',
					    data: reimInfo,
					    success: function () {
					    }
					});
					}
				}
			},
		methods: {
			
			getDetail(){
				this.$http.request({
					url: '/apis/reimApply/detail',
					method:'GET',
					params: {
						id:this.id,
					},
				}).then(res => {
					if (res.data.code == 0) {
						this.id = res.data.reimApplyDO.id
						this.itemList = res.data.itemList
						this.approveState = res.data.reimApplyDO.approveState
					}
				}).catch(err => {
					uni.showToast({
						title: '获取信息失败',
						icon: 'none',
						duration: 2000
					});
				});
			},
			selectPeople(){
				this.show_search_user=true;
				// uni.navigateTo({
				//     url: "selectPeople"
				// });
			},
			formatCsrName(data){
				var returnName = '';
				for(var i=0;i<data.length;i++){
					if(i == 3){
						returnName += data[i].name+'等等';
						 break;
					}else{
						returnName += data[i].name+','
					}
				}
				returnName = returnName.substring(0,returnName.length-1);
				return returnName;
			},
			//上传
			chooseImg() {
				this.uploadImg();
			},
			//重新上传
			reUpload(index) {
				this.uploadImg(index);
			},
			uploadImg(indexnum) {
				var _this = this;
				//#ifdef APP-PLUS
				var count_ = 9;
				//#endif
				//#ifndef APP-PLUS
				var count_ = 1;
				//#endif
				if (indexnum != undefined) {
					count_ = 1;
				}
				uni.chooseImage({
					count: count_,
					success: (chooseImageRes) => {
						const tempFilePaths = chooseImageRes.tempFilePaths;
						//#ifdef APP-PLUS
						let imgs = chooseImageRes.tempFilePaths.map((value, index) => {
							return {
								name: "file" + (index + 1), //注意这一行，uni的hello的示例中，这里为key名+index，这样是无法和使用一个固定key名接多个文件的php接口对接上的改为数组下标形式的字符串就解决这个问题了。其效果等同于在html页面上多个同name文件域同时提交表单。  
								uri: value
							}
						});
						uni.uploadFile({
							url: config.baseURL + '/apis/file/uploadMulti', //接口地址
							files: imgs,
							fileType: "image",
							name: 'files',
							success: (uploadFileRes) => {
								var arr = [];
								for (var i = 0; i < JSON.parse(uploadFileRes.data).result.length; i++) {
									arr.push(JSON.parse(uploadFileRes.data).result[i].filePath);
								}
								if (indexnum != undefined) { //是重新上传
									_this.imgsrc_list[indexnum] = arr[0]
									_this.imgsrc_list_local[indexnum] = chooseImageRes.tempFilePaths[0]
								} else {
									_this.imgsrc_list = _this.imgsrc_list.concat(arr);
									_this.imgsrc_list_local = _this.imgsrc_list_local.concat(chooseImageRes.tempFilePaths);
								
								}
								_this.$forceUpdate();
								var reimInfo =  uni.getStorageSync('reimInfo');
								if(!reimInfo){
									reimInfo = {}
								}
								reimInfo.imgsrc_list = _this.imgsrc_list;;
								reimInfo.imgsrc_list_local = _this.imgsrc_list_local;
								uni.setStorage({
								    key: 'reimInfo',
								    data: reimInfo,
								    success: function () {

								    }
								});
							},
							fail:function(){
								uni.showToast({
									title:'上传图片失败',
									duration: 2000,
									icon:"none"
								});
							}
						});
						//#endif
						//#ifndef APP-PLUS
						uni.uploadFile({
							url: config.baseURL + '/apis/file/upload', //接口地址
							filePath: tempFilePaths[0],
							fileType: "image",
							name: 'file',
							success: (uploadFileRes) => {
								var arr = [];
								if (indexnum != undefined) { //是重新上传
									_this.imgsrc_list[indexnum] =JSON.parse(uploadFileRes.data).filePath;
									_this.imgsrc_list_local[indexnum] = chooseImageRes.tempFilePaths[0];
								} else {
									_this.imgsrc_list.push(JSON.parse(uploadFileRes.data).filePath)
									_this.imgsrc_list_local.push(chooseImageRes.tempFilePaths)
								}
								_this.$forceUpdate();
								var reimInfo =  uni.getStorageSync('reimInfo');
								if(!reimInfo){
									reimInfo = {}
								}
								reimInfo.imgsrc_list = _this.imgsrc_list;;
								reimInfo.imgsrc_list_local = _this.imgsrc_list_local;
								uni.setStorage({
								    key: 'reimInfo',
								    data: reimInfo,
								    success: function () {

								    }
								});
							},
							fail:function(){
								uni.showToast({
									title:'上传图片失败',
									duration: 2000,
									icon:"none"
								});
							}
							
						});
						//#endif
					}
				});
			},
			//删除图片
			deleteImg(index) {
				this.imgsrc_list.splice(index, 1);
				this.imgsrc_list_local.splice(index, 1);
				this.$forceUpdate();
				var reimInfo =  uni.getStorageSync('reimInfo');
				if(!reimInfo){
					reimInfo = {}
				}
				reimInfo.imgsrc_list = this.imgsrc_list;
				reimInfo.imgsrc_list_local = this.imgsrc_list_local;
				uni.setStorage({
				    key: 'reimInfo',
				    data: reimInfo,
				    success: function () {

				    }
				});
			},
			previous(){
				//点击返回到上一步。
				uni.navigateTo({
				    url: 'addReimApply'
				});
			},
			//点击暂存和确认提交 需要进行的操作。
			goAddRepair(flag){
				
				var _this = this;
				//在这里是抄送人数据。
				var carbonCopyRecipients = []
				if(this.targetList.length>0){
					this.targetList.forEach((vals,index)=>{
						carbonCopyRecipients.push(vals.user_id);
					});
				}
				// if(!(this.targetList && this.targetList.length>0)){
				// 	uni.showToast({
				// 		    title: '请选择发给谁',
				// 		    duration: 2000,
				// 			icon:"none"
				// 		});
				// 	return false;
				// }
				var reimInfom  = uni.getStorageSync('reimInfo');
				if(reimInfom.id){
					this.id = reimInfom.id
				}
				if(flag == 'tj'){
					//提交进行的操作
					var url = '/apis/approveFlow/submitApprove'
					//调取接口进行保存。
					this.$http.request({
					  url: url,
					  data:{
						  dataType: 9,
						  mainId: this.id
					  }
					}).then(res=>{
						if(res.data.code == 0){
							uni.removeStorageSync('reimInfo');
							uni.showToast({
								title: '操作成功',
								duration: 	1000,
								icon:"none"
							});
							setTimeout( function(){
								uni.redirectTo({
								    url: 'reimApply'
								});
							},1000)
						}else{
							uni.showToast({
								title: res.data.msg,
								duration: 	2000,
								icon:"none"
							});
						}
					}).catch(err=>{
						uni.showToast({
							title: '操作失败',
							duration: 	2000,
							icon:"none"
						});
					});
				}else if(flag == 'zc'){
					//暂存进行的操作。
					var url = '/apis/reimApply/saveAddAndChange'
				
					//调取接口进行保存。
					this.$http.request({
					  url: url,
					  params:{
						  newReimApplyItems:encodeURIComponent(JSON.stringify(this.itemList)),
						  processInstanceId:reimInfom.process_instance_id||'',
						  approveList:carbonCopyRecipients, 
						  taglocationappearanceImage:this.imgsrc_list,
						  id:this.id||'',
						  deletDetailIds:reimInfom.deletDetailIds||[]
					  }
					}).then(res=>{
						if(res.data.code == 0){
							this.id = res.data.dataId
							this.getDetail()
						}else{
							uni.showToast({
								title: res.data.msg,
								duration: 	2000,
								icon:"none"
							});
						}
					}).catch(err=>{
						uni.showToast({
							title: '操作失败',
							duration: 	2000,
							icon:"none"
						});
					});
				}
				
			}
		},
		onBackPress(options) { //取消默认的返回事件.用来返回上一页时重新加载页面，删除本地缓存的巡检操作
			uni.removeStorageSync('reimInfo');
			uni.navigateTo({
			    url: 'reimApply'
			});
			return true;

		},
	}
</script>
<style scoped>
	.step_num {
		display: flex;
		flex-direction: row;
		justify-content: center;
		width: 100%;
		height: 80upx;
		background-color: #fff;
		padding-right: 48upx;
		box-sizing: border-box;
	}
	.step {
		position: relative;
		font-size: 28upx;
		line-height: 80upx;
		padding-left: 30upx;
		float: left;
	}
	.step:before {
		position: absolute;
		left: 0px;
		content: '1';
		border: 1px solid #000;
		width: 28upx;
		height: 28upx;
		box-sizing: border-box;
		line-height: 28upx;
		border-radius: 200upx;
		font-size: 20upx;
		text-align: center;
		top: 26upx;
	}
	.step:after {
		position: absolute;
		content: '';
		width: 60upx;
		height: 2upx;
		background-color: #000;
		top: 40upx;
		left: 200upx;
	}
	
	.step2 {
		margin-left: 64upx;
	}
	
	.step2:before {
		content: '2';
		border: 2upx solid #000;
	}
	
	.step2:after{
		background-color: transparent;
	}
	.itemunit{
		position: absolute;
		right: 0;
		top: 0;
		height: 92upx;
		line-height: 92upx;
		color: #999;
		font-size: 26upx;
	}
</style>
