cxgj/widgets/views/pick-linker.php
2023-11-29 10:45:45 +08:00

108 lines
4.8 KiB
PHP

<?php
/**
* @author Any
* @description KISS
* @date 2019-2-15
* @version 1.0.0
*/
?>
<script id="pick_link_html" type="text/html">
<div class="pick-link-panel">
<div class="pick-link-panel-body">
<div class="input-row layui-mb-15 layui-row layui-clearfix">
<label class="layui-col-sm2">选择链接</label>
<div class="layui-col-sm10">
<select class="form-control pick-link-list">
<?php foreach($links as $index => $item):?>
<option value="<?=$index?>"><?=$item["name"]?></option>
<?php endforeach;?>
</select>
</div>
</div>
<div class="input-row-param layui-mb-15 layui-hide layui-row">
<label class="layui-col-sm2">{}</label>
<div class="layui-col-sm10">
<input class="form-control param-input" data-key="{}">
<p class="tip">{}</p>
</div>
</div>
</div>
<div class="pick-link-panel-footer layui-text-center layui-mt-15 layui-mb-15">
<a class="layui-btn layui-btn-sm cancel-btn " href="javascript:;">取消</a>
<a class="layui-btn layui-btn-sm confirm-btn" href="javascript:;">确定</a>
</div>
</div>
</script>
<script>
<?php $this->beginBlock('js_script_wrap') ?>
$(document).ready(function(){
//选择链接
$(".layui-form").on("click","<?=$link_select_btn?>",function(){
var content = $("#pick_link_html").html();
var links = '<?= json_encode($links)?>';
links = JSON.parse(links);
layer.open({
type: 1,
title:'选择链接',
offset:'50px',
area: ['560px', '300px'], //宽高
content: content,
success:function(layero, index){
//console.log(layero, index);
var url = null;
var params = {};
var selected_index = 0;
$('.pick-link-panel').on('change','.pick-link-list',function(){
var index = $(this).val();
index = index * 1;
selected_index = index;
var link = links[index];
//console.log(link)
url = link.link;
if(link.params.length != 0){
var param_html_template = $('.pick-link-panel .input-row-param.layui-hide').html();
//remove
$(".pick-link-panel .input-row-param").each(function(index){
if(index > 0){
$(".pick-link-panel .input-row-param").eq(index).remove();
}
});
//add
var param_html = '';
for(var i in link.params){
var html = '<div class="input-row-param layui-mb-15 layui-row">{}</div>'.format(param_html_template.format(link.params[i]['key'],link.params[i]['key'],link.params[i]['desc']));
param_html += html;
}
$('.pick-link-panel .input-row-param.layui-hide').after(param_html);
}
});
$('.pick-link-panel').on('click','.confirm-btn',function(){
url = links[selected_index]['link'];
var c = $(".pick-link-panel .input-row-param").length;
$(".pick-link-panel .input-row-param").each(function(index){
if(index > 0){
var key = $(".pick-link-panel .input-row-param").eq(index).find('.param-input').attr('data-key');
var value = $(".pick-link-panel .input-row-param").eq(index).find('.param-input').val();
params[key] = value;
//console.log(params)
}
});
var l = wrx.object_length(params);
url = l == 0 ? url : url + '?' + wrx.object_to_url_params(params);
$('<?=$link_input_class?>').val(url);
layer.close(index);
})
$('.pick-link-panel').on('click','.cancel-btn',function(){
layer.close(index);
});
}
});
});
})
<?php $this->endBlock(); ?>
</script>
<?php $this->registerJs($this->blocks['js_script_wrap'], \yii\web\View::POS_END); ?>