<?php include_once(mvc::$cfg['PATH_TPL'].'public/headBase.php');?>
<style>
	.main_middle{
		margin: 10px 10px;
		width: 1035px;
    	float: left;
	}
</style>
<div class="maintb">
	<div class="main_middle shop-base-box">
		<div class="layui-tab layui-tab-card">
			<ul class="layui-tab-title" style="margin:0;">
				
				<?php if($otherSyncset){?>	
				<li <?php if ($Params['mode'] == 'other') { echo  "class='layui-this'";} ?>>
					<a href="<?php echo mvc::$cfg['SELF_URL']; ?>super/shopSync?mode=other" style="color:black;">与店铺【<?php echo $otherSyncset['from_shop_name'] ;?>】数据同步</a>
				</li>
				<?php }?>
				<li <?php if ($Params['mode'] == 'self') { echo  "class='layui-this'";} ?>>
					<a href="<?php echo mvc::$cfg['SELF_URI']; ?>super/shopSync?mode=self">店铺内数据同步</a>
				</li>
			</ul>
			<div class="layui-tab-content" style="padding: 10px">
				<div class="main">
					<fieldset class="layui-elem-field">
						<?php if($Params['mode'] == 'other'){?>
							<legend>与<b><?php echo $otherSyncset['from_shop_name'] ;?></b>数据同步</legend>
						<?php } ?>
						<div class="layui-field-box anyact">
							<div>
								<p>
									自编号管理：
									<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" id="showItemModelByText">通过文本管理</button>	        
									<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" id="showItemModel">通过EXCEL管理</button>
									<a type="button" href="<?=mvc::$cfg['SELF_URL']?>static/model.xlsx" target="_blank" class="layui-btn layui-btn-primary layui-btn-sm">下载EXCEL模板</a>	
								</p>
							</div>
							<div style="margin-top:10px">
								<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" onclick="doShopSync('model')">车型同步</button>
								<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" onclick="doShopSync('num')">号码同步</button>
								<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" onclick="doShopSync('param')">参数同步</button>
								<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" id="setShopSync">设置</button>
							</div>
						</div>
					</fieldset>
				</div>

				<div class="left-searchs" style="width: 100%;margin-top:10px;margin-left:10px; ">
					<div class="left-searchs">
						<form class="layui-form" action="<?php echo mvc::$cfg['SELF_URI']; ?>super/shopSync" method="get"
							id="SearchForm" style="margin-bottom:5px;">
							<div class="layui-form-item">
								<div class="layui-form-item">
									<div class="layui-inline" style="width: 320px;">
										<label class="layui-form-label" style="width: 90px;"><?php if($Params['type']=='other'){?>源店铺自编号<?php }else{?>源自编号<?php }?></label>
										<div class="layui-input-block" style="margin-left: 105px;">
										<textarea name="sssp_pri_code_from" maxlength="255" style="min-height:40px" placeholder="多个请使用,或者换行隔开" class="layui-textarea"><?php echo $Params['sssp_pri_code_from'];?></textarea>
										</div>
									</div>
									<div class="layui-inline" style="width: 320px;">
										<label class="layui-form-label" style="width: 90px;"><?php if($Params['type']=='other'){?>当前店铺自编号<?php }else{?>目标自编号<?php }?></label>
										<div class="layui-input-block" style="margin-left: 105px;">
										<textarea name="sssp_pri_code_to" maxlength="255" style="min-height:40px" placeholder="多个请使用,或者换行隔开" class="layui-textarea"><?php echo $Params['sssp_pri_code_to'];?></textarea>
										</div>
									</div>
									<div class="layui-inline">
										<button class="layui-btn layuiadmin-btn-list" lay-submit="" lay-filter="LAY-app-contlist-search">
											<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
										</button>
									</div>
								</div>
							</div>
						</form>
					</div>
				</div>
				<div class="right-searchs" style="margin-left: 10px;width: 400px">
					<div class="right-content layui-form">
						<table class="layui-table">
							<thead>
							<tr>
								<th width="20px"><input type="checkbox" lay-filter="lay-selectall" value="sssp_pri_code_to[]" lay-skin="primary"/></th>
								<th width="80px">操作</th>
								<th><?php if($Params['type']=='other'){?>源店铺自编号<?php }else{?>源自编号<?php }?></th>
								<th><?php if($Params['type']=='other'){?>当前店铺自编号<?php }else{?>目标自编号<?php }?></th>
							</tr>
							</thead>
							<tbody class="clicktr">
							<?php if(!empty($listArr)) { ?>
								<?php foreach($listArr as $v){?>
									<tr>
										<td>
											<input type="checkbox" name="sssp_pri_code_to[]" value="<?php echo $v['sssp_pri_code_to'];?>" lay-skin="primary"/>
										</td>
										<td>
											<a href="javascript:;" onclick="delItem('<?php echo $v['sssp_pri_code_to'];?>')" class="a_blue">删除</a>
										</td>
										<td><?php echo $v['num_display_from'];?></td>
										<td><?php echo $v['num_display_to'];?></td>
									</tr>
								<?php }?>
							<?php }else{  ?>
								<tr>
									<td colspan="4" style="text-align:center;"><?php echo "暂无数据";} ?></td>	
								</tr>
							</tbody>
							<?php if(!empty($listArr)){?>
							<tfoot>
								<tr>
									<td colspan="4">
										<button class="layui-btn layui-btn-sm layui-btn-danger" id="delete-checked">删除</button>
									</td>
								</tr>
							</tfoot>
							<?php }?>
						</table>
					</div>
				</div>
				<div style="padding-left: 20px;"> <?php echo $pageMsg;?></div>

				<div class="layer_notice" style="display:none;">
					<form class="layui-form" id="layer_notice" method="post" style="padding: 10px;">
						<input type="hidden" name="sss_shop_id_from" id="sss_shop_id_from" value="<?php echo $syncset['sss_shop_id_from'];?>">
						<div class="layui-form-item">
							<div class="layui-inline">
								<label class="layui-form-label">车型</label>
								<div class="layui-input-inline" style="width:200px">
									<div>
										<label for="model_add"><input type="radio" name="sss_act[model]" id="model_add" value="add" <?php echo empty($syncset['sss_act']['model']) || $syncset['sss_act']['model'] == 'add'? ' checked': '';?> title="追加"></label>
										<label for="model_replace"><input type="radio" name="sss_act[model]" value="replace" id="model_replace" <?php echo $syncset['sss_act']['model'] == 'replace'? ' checked': '';?>  title="替换"></label>&nbsp;&nbsp;&nbsp;&nbsp;
									</div>
								</div>
							</div>
						</div>
				
						<div class="layui-form-item">
							<div class="layui-inline">
								<label class="layui-form-label">号码</label>
								<div class="layui-input-inline" style="width:200px">
									<div>
										<label for="number_add"><input type="radio" name="sss_act[number]" id="number_add" value="add" <?php echo empty($syncset['sss_act']['number']) || $syncset['sss_act']['number'] == 'add'? 'checked': '';?> title="追加"></label>
										<label for="number_replace"><input type="radio" name="sss_act[number]" value="replace" id="number_replace" <?php echo $syncset['sss_act']['number'] == 'replace'? 'checked': '';?>  title="替换"></label>&nbsp;&nbsp;&nbsp;&nbsp;
									</div>
								</div>
							</div>
						</div>
					</form>		
				</div>

			</div>
		</div>
	</div>
</div>


<?php include_once(mvc::$cfg['PATH_TPL'].'public/footBase.php');?>
<script>
layui.use(['upload', 'form', 'element'], function(){
	var upload = layui.upload,element = layui.element,form = layui.form;

	form.on('checkbox(lay-selectall)', function(data){
		$('[name="'+data.value+'"').prop('checked', data.elem.checked);
		form.render('checkbox');
	});

	//配件车型备同步
	$('#showItemModel').click(function(){
		var html =`<div class="pad10">
			<ul class="method-list">
				<li>点击<a href="`+SELF_URL+`static/model.xlsx" class="a_blue" target="_blank">这里下载excel模板</a>，按照格式填写相应的配件数据。</li>
				<li>注意：</b>上传的文件大小不能超过<span class="warn">3M</span>。</li>
			</ul>
			<div class="martb10">
				<div class="layui-btn layui-btn-normal layui-btn-sm" id="import-modelremark-btn"><i class="layui-icon">&#xe63c;</i>选择导入excel</div>
			</div>
			<h3 id="import-modelremark-msg-box" style="display:none"></h3>
			<h3 id="notmatch-box" style="display:none"></h3>
		</div>`;
		var open = layer.open({
			type:1,
			id: 'importItemImgBox',
			title: '通过EXCEL管理自编号',
			area: ['750px', '300px'],
			content: html,
			success: function(layero, index){
			   var uploadParam = {
					pick: '#import-modelremark-btn',
					msgBox: '#import-modelremark-msg-box',
					notmatchBox: '#notmatch-box',
					server: SELF_URI+'super/uploadBigFile',
					formData:{isAjax:1},
					accept:{
						title: 'Excel',
						extensions: 'xls,xlsx',
						mimeTypes: 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
					},
					okFun: 'uploadSyncModelOk'
				};
				uploadBigFile(uploadParam);
			}
		});
	});

	$("#showItemModelByText").click(function(){
		var html = `<div class="pad10"><div class="floatl"><textarea  id="fastNumStr" onchange="strToNumRow(this)" class="layui-input" style="width:400px;height:180px" placeholder="请输入源店铺自编号与当前店铺自编码"></textarea>
			<div class="notice">格式：源店铺自编号:当前店铺自编码，一行一条，支持直接从excel粘贴。</div></div><div class="fastNumright floatl"><h4>从excel粘贴样例：</h4><img src="`+SELF_URL+`static/images/demo/syncToNum.png"></div>
		<div class="clear"></div></div>`;
		var open = layer.open({
			type: 1,
			title: '通过文本管理自编码',
			area: ['872px', '320px'],
			content: html,
			btn: ['确定添加'],
			btnAlign: 'c',
			shadeClose: false,
			scrollbar: false,
			yes: function(index, layero){
				var rowArr = $('#fastNumStr').val().split("\n");
				var notArr = new Array();
				var Arr = new Array();
				for(var i in rowArr)
				{
					rowArr[i] = $.trim(rowArr[i]);
					var tt = rowArr[i].split(":");
					if(tt.length == 2 && tt[0] != '' && tt[1] != '')
					{
						Arr.push({"sssp_pri_code_from":tt[0], "sssp_pri_code_to":tt[1]});
					}
					else if(rowArr[i] != '' && rowArr[i] != ':')
					{
						notArr.push(rowArr[i]);
					}
				}
				if(Arr.length>0){
					addNewNumRow(Arr)
				}
				$('#fastNumStr').val(notArr.join("\n"));
				layer.close(index);
			}
		})
	})

	$('#delete-checked').click(function(){
		if($('[name="sssp_pri_code_to[]"]:checked').length < 1)
		{
			layer.msg("请先选择需要删除的配件！");
			return false;
		}else{
			var priCodeArr = INPUT.getCheckedVal('sssp_pri_code_to[]');
			layer.confirm('确定要删除选中的'+priCodeArr.length+'个配件吗?', {icon: 3, title: false}, function(index){
				var layLoading = layer.load();
				$.ajax({
					type: 'POST',
					data: {isAjax:1, priCodeArr: priCodeArr},
					url: SELF_URI+"super/delSyncProduct",
					dataType: "json",
					success: function(res){
						layer.close(layLoading);
						if(!AJAX.checkData(res)) return false;
						layer.msg('删除成功', {icon: 1, time: 1000}, function(){window.location.reload(true);});
					}
				});
			});
		}
	});

	
	$('#setShopSync').click(function(){
		layer.open({
			type:1,
			title: '同步设置',
			area: ['400px', '200px'],
			content: $('.layer_notice'), //捕获的元素，注意：最好该指定的元素要存放在body最外层，否则可能被其它的相对元素所影响
			btn: ['确定', '取消'],
            yes: function(layero, index) {

		
				var sss_shop_id_from = $("#sss_shop_id_from").val();
			
				var formData = $("#layer_notice").serialize();
				$.post(SELF_URI + 'super/shopSyncSet?isAjax=1', formData, function (result) {
					layer.closeAll();
					if(!AJAX.checkData(result)) return false;
					layer.msg('操作成功', {icon: 1, time: 1000}, function(){location.reload();});
				}, 'json');
			},
			success:function(layero, index){
				layero.find('.layui-layer-title').css('text-align', 'center')
				layer.setTop(layero);
				layero.find('.layui-layer-btn').css('text-align', 'center'); //改变位置按钮居中，left左
			}
		});	
	})
});
//导入配件车型上传完成，分析
function uploadSyncModelOk(file, uploadRes, uploadParam)
{
	layui.use(['index', 'element'], function(){
		var element = layui.element;
		$(uploadParam.msgBox).html('<h3 class="warn martb10">上传完成，正在分析，请勿关闭此页面！</h3>');
		$(uploadParam.notmatchBox).html('').hide();
		
		var postData = uploadRes.data;
		postData.isAjax = 1;
		postData.type = 'model';
		postData.mode = '<?=$Params['mode']?>'
		$.ajax({
			type: "POST",
			url: SELF_URI+'super/checkShopSync',
			data: postData,
			dataType: "json",
			success:function(res){
				AJAX.checkData(res);
				var chkdata = res.data;
				var msg  = '<h3 class="isok center"><i class="layui-layer-ico layui-layer-ico1 ok-icon"></i>导入完成！</h3>';
				var errmsg = '';
				if(chkdata.errorToArr.length>0)
				{
					var erroToStr = chkdata.errorToArr.join(',');
					errmsg += `<blockquote class="layui-elem-quote">当前店铺自编码<b class="warn">`+erroToStr+`</b>不存在,请核实</blockquote>`
				}
				if(chkdata.errorFromArr.length>0)
				{
					var erroFromStr = chkdata.errorFromArr.join(',');
					errmsg += `<blockquote class="layui-elem-quote">源店铺自编码<b class="warn">`+erroFromStr+`</b>不存在,请核实</blockquote>`
				}
				$(uploadParam.msgBox).html(errmsg?errmsg:msg);
				if(chkdata.errorToArr.length==0 && chkdata.errorFromArr.length==0){
					setTimeout(function(){
						location.reload();
					}, 2000);
				}
				
			}
		});
	});
}

function delItem(pri_code)
{
	layer.confirm('确定要删除此记录吗?', {icon: 3, title: false}, function(index){
		var layLoading = layer.load();
		$.ajax({
			type: 'POST',
			data: {isAjax:1, priCodeArr: pri_code.split(',')},
			url: SELF_URI+"super/delSyncProduct",
			dataType: "json",
			success: function(res){
				layer.close(layLoading);
				if(!AJAX.checkData(res)) return false;
				layer.msg('删除成功', {icon: 1, time: 1000},function(){
					location.reload()
				}); 
			}
		});
	});
}
function strToNumRow(obj){
	var rowArr = $(obj).val().replace(/：/g, ':').replace(/;/g, "\n").replace(/\t/g, ':').split("\n");
	var newRow = new Array();
	for (var i in rowArr)
	{
		var tt = rowArr[i].split(":");
		if(tt.length == 2 && $.trim(tt[0]) == '' && $.trim(tt[1]) == ''){
		}else{
			newRow.push(tt.join(':'));
		}
	}
	$(obj).val(newRow.join("\n"));
}
function addNewNumRow(obj){
	var data = {
		'pri_code':obj
	}
	data.mode='<?=$Params['mode']?>'
	var layLoading = layer.load();
	$.ajax({
		url: SELF_URI+'super/doShopSyncByText?isAjax=1',
		method:'post',
		data:data,
		dataType: "json",
		success:function(res){
			layer.close(layLoading);
			if(!AJAX.checkData(res)) return false;
			if(typeof(res.data.errorToArr)!='undefined' || typeof(res.data.errorFromArr)!='undefined'){
				var errmsg  = '';
				console.log(res.data);
				if(typeof(res.data.errorToArr)!='undefined' && res.data.errorToArr.length>0)
				{
					var erroToStr = res.data.errorToArr.join(',');
					errmsg += `<blockquote class="layui-elem-quote">当前店铺自编码<b class="warn">`+erroToStr+`</b>不存在,请核实</blockquote>`
				}
				if(typeof(res.data.errorFromArr)!='undefined' && res.data.errorFromArr.length>0)
				{
					var erroFromStr = res.data.errorFromArr.join(',');
					errmsg += `<blockquote class="layui-elem-quote">源店铺自编码<b class="warn">`+erroFromStr+`</b>不存在,请核实</blockquote>`
				}
				layer.open({
					type:1,
					id: 'importItemImgBox',
					title: '提示',
					area: ['750px', '300px'],
					content: errmsg,
					btn: ['确定'],
					btnAlign: 'c',
					yes: function(index, layero){
						layer.close(index);
						location.reload();
					}
				})
				return false;
			}
			layer.msg('添加成功', {icon: 1,time: 1000}, function(){
				location.reload();
			})
		}
	});
}
function doShopSync(type= 'model'){
	var chkdata = {
		type:type,
		mode:'<?=$Params['mode']?>'
	};
	chkdata.isAjax = 1;
	var priCodeArr = INPUT.getCheckedVal('sssp_pri_code_to[]');
	if(priCodeArr.length>0){
		chkdata.priCodeArr = priCodeArr; 
	}
	layer.confirm('确定要执行同步操作吗?', {icon: 3, title: false}, function(index){
		var html =`<div class="pad10">
			<div class="chkresult"></div>
		</div>`;
		layer.close(index);
		layer.open({
			type: 1,
			id: 'importItemBox',
			title: '批量同步数据',
			area: ['750px', '500px'],
			content: html,
			success:function(layero, index){
				var layLoading = layer.load();
				$.ajax({
					type: "POST",
					url: SELF_URI+'super/checkShopProSync',
					data: chkdata,
					dataType: "json",
					success:function(res){
						layer.close(layLoading);
						AJAX.checkData(res);
						var data = res.data;
						var itemlen = data.length;
						var msg = `<blockquote class="layui-elem-quote">一共检测到<b class="warn">`+itemlen+`</b>条数据</blockquote>`;
						if(itemlen > 0)
						{
							//导入进度条
							msg += `<div id="import-status">
								<h3 class="warn martb10">数据正在同步中，请勿关闭此页面！</h3>
								<div class="layui-progress layui-progress-big" id="import-item-percente" lay-showPercent="true">
								<div class="layui-progress-bar layui-bg-blue" lay-percent="0%"><span class="layui-progress-text">0%</span></div>
							</div></div>`;
							$('#importItemBox .chkresult').html(msg);
							ajaxSyncItems(data, 0, type);
						}else{
							$('#importItemBox .chkresult').html(msg);
						}
					}
				})
			}
		})
	});
}

function ajaxSyncItems(items, begin, type)
{
	var chkdata = {
		type:type,
		mode:'<?=$Params['mode']?>'
	};
	chkdata.isAjax = 1;
	var itemlen = items.length;
	postItem = {};
	if(itemlen>1000){
		per = 1000;
	}else{
		per = 100;
	}
	for(var i in items)
	{		
		i = parseInt(i);
		if(i < begin) continue;
		postItem[i] = items[i];
		begin = i;
		if(Object.keys(postItem).length == per || (begin+1) == itemlen)
		{
			break;
		}
	}
	chkdata.priCodeArr = postItem;
	$.ajax({
		type: "POST",
		url: SELF_URI+'super/doShopSync',
		data: chkdata,
		dataType: "json",
		success:function(res){
			AJAX.checkData(res);
			var okper = parseFloat((begin/itemlen*100).toFixed(2));
			$('#import-item-percente>.layui-progress-bar').attr('lay-percent', okper+'%').css('width', okper+'%').html('<span class="layui-progress-text">'+okper+'%</span>');
			begin++;
			if(begin != itemlen && begin < itemlen){
				ajaxSyncItems(items, begin, type);
			}else{
				$('#import-status').html('<h3 class="isok center"><i class="layui-layer-ico layui-layer-ico1 ok-icon"></i>数据同步完成！</h3>');
			}
		}
	});
}
</script>