<template>
	<view class="pages">				
		<form @submit="formSubmit" @reset="formReset">
			<view class="form-item-type nomal-top">				
				<view class="form-item">
					<view class="form-item-til">类目</view>
					<view class="form-item-con">
						<input type="text" disabled placeholder="商品类目" v-model="params.type" value="" />
					</view>
				</view>
			<!-- 	<view class="form-item arrow">
					<view class="form-item-til">地理位置</view>
					<view class="form-item-con" @click="chooseaddr">
						<input type="text" placeholder="请选择地理位置" v-model="params.myposition" value="" />
					</view>
				</view>	 -->			
			</view>
			<view class="form-item-type">
				<view class="form-item">
					<view class="form-item-til">标题</view>
					<view class="form-item-con">
						<input type="text" placeholder="请输入发布产品标题" v-model="params.title" value="" />
					</view>
				</view>
				<view class="form-item">
					<view class="form-item-til">品牌</view>
					<view class="form-item-con">
						<input type="text" placeholder="请输入品牌" v-model="params.brand" value="" />
					</view>
				</view>
				<view class="form-item">
					<view class="form-item-til">零售价</view>
					<view class="form-item-con">
						<input type="text" placeholder="请输入零售价" v-model="params.price" value="" />
					</view>
				</view>
				<view class="form-item">
					<view class="form-item-til">供应商</view>
					<view class="form-item-con">
						<input type="text" disabled placeholder="" v-model="params.supplier" value="" />
					</view>
				</view>
				<view class="form-item arrow" @click="openplaceoforigin">
					<view class="form-item-til">生产地</view>
					<view class="form-item-con">
						<input type="text" placeholder="" v-model="params.placeoforigin" value="" />
					</view>
				</view>
				<view class="form-item arrow" @click="openspecifications">
					<view class="form-item-til">规格</view>
					<view class="form-item-con">
						<text v-for="(item,index) in params.specifications">{{item}},</text>
						<!-- <input type="text" placeholder="" v-model="params.specifications" value="" /> -->
					</view>
				</view>
				<view class="form-item">
					<view class="form-item-til">保质期</view>
					<view class="form-item-con">
						<input type="text" placeholder="请输入保质期" v-model="params.shelflife" value="" />
					</view>
				</view>
				<view class="form-item">
					<view class="form-item-til">生产日期</view>
					<view class="form-item-con">
						<picker mode="date" :value="params.date" :start="startDate" :end="endDate" @change="bindDateChange">
							<view class="uni-input">{{params.date}}</view>
						</picker>
					<!-- <input type="text" placeholder="请输入生产日期" v-model="params.productiondate" value="" /> -->
					</view>
				</view>
				<view class="form-item">
					<view class="form-item-til">包装</view>
					<view class="form-item-con">
						<input type="text" placeholder="请输入包装" v-model="params.packaging" value="" />
					</view>
				</view>
				<view class="form-item">
					<view class="form-item-til">标签</view>
					<view class="form-item-con">
						<input type="text" placeholder="请输入标签,用逗号隔开" v-model="params.productlabel" value="" />
					</view>
				</view>
			</view>
			<view class="form-item upfile">
				<view class="form-item-til">图片视频</view>
				<view class="form-item-con">					
					<view class="form-item-chooseIMGs-wrap">
						<image v-for="(item,index) in params.media" :key="index" :src="item" class="choosedIMG" ></image>
					</view>
					<view class="chooseIMG-btn">
						<image class="chooseIMG-btn-img" @click="chooseimg" src="/static/img/icon-upload.png"></image>
					</view>					
				</view>				
			</view>
		</form>
		<view class="bottom-btn-wrap">
			<button class="bottom-btn" @click="publish" type="primary">发布</button>
		</view>
		<!-- 页面显示结束 下面是隐藏内容 -->
		<!-- 供应商开始 -->
		<!-- <view class="supplier-page fix-content translate" :class="{ 'open': supplieropen }" >
			<view class="search-wrap search-left-color">
				<view class="search">
					<view class="searchTxt">
						<uni-search-bar placeholder="搜索供应商关键词" @confirm="searchsupplier" @input="searchsupplier" ></uni-search-bar>
					</view>
				</view>	
			</view>
			<view class="simplepage-wrap">
				<mescroll-body ref="mescrollRef0" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption" :up="upOption">
					<view>
						<view v-for="(item,index) in supplierlist" :key="index" @click="supplierclick(item)" class="simplepage-item">{{item}}</view>					
					</view>	 					
				</mescroll-body>
			</view>
		</view> -->
		<!-- 供应商结束 -->
		<!-- 产地开始 -->
		<view class="placeoforigin-page fix-content translate" :class="{ 'open': placeoforiginopen }" >
			<view class="search-wrap search-left-color">
				<view class="search">
					<view class="searchTxt">
						<uni-search-bar placeholder="搜索产地关键词" @confirm="searchplace" @input="searchplace" ></uni-search-bar>
					</view>
				</view>	
			</view>
			<!-- 搜索 结束 -->
			<scroll-view class="simplepage-wrap" scroll-y="true">
				<view v-for="(item,index) in placeoforiginlist" :key="index" @click="placeoforiginclick(item.detailAddress)" class="simplepage-item">{{item.detailAddress}}</view>
			</scroll-view>
		</view>
		<!-- 产地结束 -->
		<!-- 规格开始 -->
		<view class="specifications-page fix-content translate" :class="{ 'open': specificationsopen }" >
			<view class="specifications-wrap wrap">
				 <checkbox-group @change="checkboxChange">
					<label  v-for="(item,index) in specificationslist" :key="index" class="checkbox-style" >
						<checkbox :value="item.value" :checked="item.checked"   />{{item.name}}
					</label>
				</checkbox-group>
				<view class="pecifications-btn-wrap">
					<button type="default" class="big-btn big-btn-hollow" @click="resetcheckbox">重置</button>
					<button type="default" class="big-btn primary" @click="specificationsclick">确定</button>
				</view>
			</view>
		</view>
		<!-- 规格结束 -->
	</view>
</template>

<script>
	// 引入mescroll-mixins.js
	import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";	
	// 引入mescroll-body组件 (如已在main.js注册全局组件,则省略此步骤)
	import MescrollBody from "@/components/mescroll-uni/mescroll-body.vue"; // 注意.vue后缀不能省
	
	import uniSearchBar from '@/components/uni-search-bar/uni-search-bar.vue';
	import { bus } from '../../utils/bus.js';
	export default {
		mixins: [MescrollMixin], // 使用mixin
		components: {
			MescrollBody,
			uniSearchBar,
			
		
		},
		data() {
			const currentDate = this.getDate({
				format: true
			})
			return {				
				mescroll: null, // mescroll实例对象 (此行可删,mixins已默认)
				// 下拉刷新的配置(可选, 绝大部分情况无需配置)
				downOption: { 
					// ...
				},
				// 上拉加载的配置(可选, 绝大部分情况无需配置)
				upOption: {
					page: {
						size: 10 // 每页数据的数量,默认10
					},
					noMoreSize: 5, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
					empty: {
						tip: '暂无相关数据'
					}
				},
				params: {
					token: '',
					type:'',
					myposition:'',					
					title:'',
					brand:'',
					price:'',
					supplier:'默认的供应商',//供应商
					placeoforigin:'',//产地
					specifications:[],//规格
					shelflife:'',//保质期					
					date: currentDate,//生产日期 // productiondate:'',//生产日期
					packaging:'',//包装
					productlabel:'',//标签
					media:[],//图片视频
				},
				//表单检查结果
				checkStatus:false,
				//供应商
				supplieropen:false,
				supplierlist:[],
				// 产地
				placeoforiginopen:false,
				placeoforiginlist:[],
				places:[],//临时暂存
				// 规格
				specificationsopen:false,
				specificationslist:[
					{value: '500g/提(250g/盒*2)',name: '500g/提(250g/盒*2)',checked: false},
					{value: '10g/罐',name: '10g/罐',checked: false},
					{value: '30g/盒',name: '30g/盒',checked: false},
					{value: '150g/盒',name: '150g/盒',checked: false},
					{value: '30g/盒(1.5g*20瓶)',name: '30g/盒(1.5g*20瓶)',checked: false},
				],
				backtyep:1,

			}
		},
		onShow() {
			uni.hideTabBar();
			let serf = this;
			//检查登录,获取token
			// let loginRes = this.checkLogin('/pages/publish/publish', '2');
			// if (!loginRes) {
			// 	return false;
			// }
			// serf.params.token = loginRes[0];
		},
		onHide() {
			uni.showTabBar()
		},
		onLoad(option) {
			let self = this;
			if(Object.keys(bus.data).length>0){
				console.log('bus.data',bus.data)
				this.params.type = bus.data.name;
				// console.log(this.params.type);
			};
			// console.log(option);
			// this.params.type = option.type;
			
			uni.getStorage({
				key:'token',
				success: function (res) {
					self.params.token = res.data;
				   // console.log(res.data);
				}
			});
			uni.getStorage({
				key:'tokenhead',
				success: function (res) {
					self.params.tokenhead = res.data;
				   // console.log(res.data);
				}
			});
			
			//供应商详情
			let thetoken = this.params.tokenhead+this.params.token;
			this.$api.http.get(this.config.apiBaseurl+'/company/cp/detail',{header: {Authorization:thetoken},params:{compId:72}}).then(res =>{
				console.log('res',JSON.parse(JSON.stringify(res)));
				this.placeoforiginlist = res.data.data.origines;
				this.places = res.data.data.origines;
				this.params.supplier= res.data.data.compName;
			}).catch( err => {
				console.log(err)				
			});
			
		},
		computed: {
			startDate() {
				return this.getDate('start');
			},
			endDate() {
				return this.getDate('end');
			}
		},
		methods: {
			getDate(type) {
				const date = new Date();
				let year = date.getFullYear();
				let month = date.getMonth() + 1;
				let day = date.getDate();
	
				if (type === 'start') {
					year = year - 60;
				} else if (type === 'end') {
					year = year + 2;
				}
				month = month > 9 ? month : '0' + month;;
				day = day > 9 ? day : '0' + day;
				return `${year}-${month}-${day}`;
			},
			bindDateChange: function(e) {
				this.params.date = e.target.value
				// console.log(this.params.date);
			},
			/*mescroll组件初始化的回调,可获取到mescroll对象 (此处可删,mixins已默认)*/
			mescrollInit(mescroll) {
				this.mescroll = mescroll;
			},
			downCallback(){
				this.mescroll.resetUpScroll(); // 重置列表为第一页 (自动执行 page.num=1, 再触发upCallback方法 )
			},
			/*上拉加载的回调*/
			upCallback(page) {
				let pageNum = page.num; // 页码, 默认从1开始
				let pageSize = page.size; // 页长, 默认每页10条
				this.params = Object.assign(this.params,{page:pageNum,rows:pageSize});
				this.$api.http.post(this.config.apiBaseurl+'hotel/reserve/data',this.params,{
					header: {
						Accept:'application/json',
						Authorization: 'Bearer '+ this.params.token, //注意Bearer后面有一空格
					}
				}).then(data => {
					if(data.data.code=='1001'){
						// uni.redirectTo({
						// 	url:'/pages/login/login?backpage=/pages/index/index'+'&backtype='+2,
						// });							
					};
					console.log(data);
					// 接口返回的当前页数据列表 (数组)
					let curPageData = data.data.rows; 
					console.log('curPageData',curPageData);
					// 接口返回的当前页数据长度 (如列表有26个数据,当前页返回8个,则curPageLen=8)
					let curPageLen = curPageData.length; 
					// 接口返回的总页数 (如列表有26个数据,每页10条,共3页; 则totalPage=3)
					// let totalPage = data.xxx; 
					// 接口返回的总数据量(如列表有26个数据,每页10条,共3页; 则totalSize=26)
					let totalSize = data.data.total; 
					// 接口返回的是否有下一页 (true/false)
					// let hasNext = data.xxx; 
					
					//设置列表数据
					if(page.num == 1) this.dataList = []; //如果是第一页需手动置空列表
					this.dataList = this.dataList.concat(curPageData); //追加新数据
					
					//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
					this.mescroll.endBySize(curPageLen, totalSize); 
			
					// setTimeout(()=>{
					// 	this.mescroll.endSuccess(curPageLen)
					// },20)
				
				}).catch(err => {
					this.mescroll.endErr()
					console.log(err)
				
				});								
			},

			//选择图片
			chooseimg() {
				let _self = this;
				uni.chooseImage({
					count: 3,
					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
					sourceType: ['album', 'camera'], //从相册选择
					success: function(res) {
						const tempFilePaths = res.tempFilePaths;
						_self.image = tempFilePaths[0];
						console.log("tempFilePaths[0]", tempFilePaths[0]) //能够打印出选中的图片
						_self.iconcheck = 1; //点击后图片更改状态由0变成1
						console.log('111', JSON.stringify(res.tempFilePaths));
						_self.params.media = res.tempFilePaths;
						console.log(_self.params.media);
						
						// 预览图片
						// uni.previewImage({
						// 	urls: res.tempFilePaths,
						// 	longPressActions: {
						// 		// itemList: [],
						// 		success: function(data) {
						// 			console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
						// 		},
						// 		fail: function(err) {
						// 			console.log(err.errMsg);
						// 		}
						// 	}
						// });
								
					},
					error: function(e) {
						console.log(e);
					}
				});
			},
			//发布
			publish() {
				this.checkStatus = this.check_form();
				if(this.checkStatus){					
					let _self = this;
					//上传图片
					// uni.uploadFile({
					// 	url: _self.httpUrl + '', // 后端api接口
					// 	filePath: _self.image, // uni.chooseImage函数调用后获取的本地文件路劲
					// 	name: 'EmployeeImage', //后端通过'file'获取上传的文件对象(字段)
					// 	formData: {
					// 		// openid:_self.openid,  //剩下的字段
					// 	},
					// 	header: {
					// 		"Content-Type": "multipart/form-data"
					// 	},
					// 	success: (res) => {
					// 		console.log(res)
					// 		if (res.statusCode == 200) {
					// 			uni.showToast({
					// 				icon: 'success',
					// 				title: "添加成功...",
					// 			})
					// 		}
					// 		setTimeout(() => {
					// 			uni.navigateTo({
					// 				url: ''
					// 			})
					// 		}, 2000)

					// 	},
					// 	error(error) {
					// 		uni.showToast({
					// 			title: "添加失败...",
					// 		})
					// 	}
					// });
					uni.showLoading({
					    title: '请稍等'
					});					
					setTimeout(function () {
					    uni.hideLoading();
					}, 2000);
					// setTimeout(()=>{
					// 	uni.showToast({
					// 		icon:'success',
					// 		title:`发布成功,请等待审核!`,
					// 		duration: 2000
					// 	});						
					// },2000);
					
					setTimeout(() => {
						uni.redirectTo({
							url:'/pages/publish/publishsuccess/publishsuccess'
						})
					}, 2000);
				}

			},
			//表单验证
			check_form() {
				console.log('this.params',this.params);
				if(this.params.type.length <= 0) {					
					uni.showToast({icon:'none',title:`请填写类别!`,duration: 2000});					
					return false;
				}
				// if(this.params.myposition.length <= 0) {
				// 	console.log(this.params.myposition);
				// 	uni.showToast({icon:'none',title:`请填写地理位置!`,duration: 2000});					
				// 	return false;
				// }
				if(this.params.title.length <= 0) {
					uni.showToast({icon:'none',title:`请填写标题!`,duration: 2000});					
					return false;
				}
				if(this.params.brand.length <= 0) {
					uni.showToast({icon:'none',title:`请填写品牌!`,duration: 2000});					
					return false;
				}
				if(this.params.price.length <= 0) {
					uni.showToast({icon:'none',title:`请填写零售价!`,duration: 2000});					
					return false;
				}
				if(this.params.supplier.length <= 0) {
					uni.showToast({icon:'none',title:`请填写供应商!`,duration: 2000});					
					return false;
				}
				if(this.params.placeoforigin.length <= 0) {
					uni.showToast({icon:'none',title:`请填写生产地!`,duration: 2000});					
					return false;
				}
				if(this.params.specifications.length <= 0) {
					uni.showToast({icon:'none',title:`请填写规格!`,duration: 2000});					
					return false;
				}
				if(this.params.shelflife.length <= 0) {
					uni.showToast({icon:'none',title:`请填写保质期!`,duration: 2000});					
					return false;
				}
				if(this.params.date.length <= 0) {
					uni.showToast({icon:'none',title:`请填写生产日期!`,duration: 2000});					
					return false;
				}
				if(this.params.packaging.length <= 0) {
					uni.showToast({icon:'none',title:`请填写包装!`,duration: 2000});					
					return false;
				}
				if(this.params.productlabel.length <= 0) {
					uni.showToast({icon:'none',title:`请填写标签!`,duration: 2000});					
					return false;
				}
				if(this.params.media.length <= 0) {
					uni.showToast({icon:'none',title:`请上传图片!`,duration: 2000});					
					return false;
				}				
				return true;
			},
			//选择供应商
			// supplierclick(name){
			// 	this.params.supplier = name;
			// 	this.supplieropen = false;
			// 	this.showback();
			// },
			//打开供应商弹出框
			// opensupplier(){
			// 	this.supplieropen = true;
			// 	this.hideback();
			// },
			// 搜索供应商
			// searchsupplier(e){
			// 	console.log(e);
			// },
			//选择生产地
			placeoforiginclick(name){
				this.params.placeoforigin = name;
				this.placeoforiginopen = false;
				this.showback();
			},
			//打开生产地弹出框
			openplaceoforigin(){
				this.placeoforiginopen = true;
				this.hideback();
			},
			//选择规格
			specificationsclick(e){
				// this.params.specifications = name;
				this.specificationsopen = false;
				this.showback();
			},
			//打开规格弹出框
			openspecifications(){
				this.specificationsopen = true;
				this.hideback();
			},
			// 规格checkbox
			checkboxChange: function (e) {
				var items = this.specificationslist,
					values = e.detail.value;
				for (var i = 0, lenI = items.length; i < lenI; ++i) {
					const item = items[i]
					if(values.includes(item.value)){
						this.$set(item,'checked',true)
					}else{
						this.$set(item,'checked',false)
					}
				}
				this.params.specifications = e.detail.value;
				console.log(this.params.specifications);
			},
			resetcheckbox(){
				var items = this.specificationslist;
				for (var i = 0, lenI = items.length; i < lenI; ++i) {
					const item = items[i];
					this.$set(item,'checked',false)				
				}
				this.params.specifications = [];
				// console.log(this.params.specifications);
			},
			//隐藏返回按钮
			hideback(){
				// let backbtn = document.getElementsByClassName('uni-page-head-hd')[0];
				// backbtn.style.display = 'none';
				this.backtyep = 2;
				console.log(this.backtyep)
			},
			// 显示返回按钮
			showback(){
				// let backbtn = document.getElementsByClassName('uni-page-head-hd')[0];
				// backbtn.style.display = 'block';
				this.backtyep = 1;
				console.log(this.backtyep)
			},
			// 导航返回按钮
			onBackPress(e){
				console.log(this.backtyep)
				if(this.backtyep == 2){
					this.placeoforiginopen = false;
					this.backtyep = 1;
					return true;
				};				
			},
			// 选择位置
			chooseaddr(){
				let self = this;
				uni.chooseLocation({
					success: function (res) {
						self.params.myposition = res.address;
						console.log('位置名称:' + res.name);
						console.log('详细地址:' + res.address);
						console.log('纬度:' + res.latitude);
						console.log('经度:' + res.longitude);
					}
				});
			},
			// 搜索产地
			searchplace(e){							
				if(e.value){
				let place = this.placeoforiginlist.filter(function (value) {
						console.log(value.detailAddress);	
					  return value.detailAddress.includes(e.value);
				});
				console.log('place',place);
				this.placeoforiginlist = place;
				}else{
					this.placeoforiginlist = this.places;
				}
			}
			
			

		}
	}
</script>

<style >
	@import url("./publish.css");
</style>