admin/addon/wechat/shop/view/wechat/share.html

266 lines
9.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{extend name="app/shop/view/base.html" /}
{block name="resources"}
<style>
.layui-form {overflow: hidden;}
.card { display: inline-block; margin-right: 8px; width: 300px; height: 192px; border: 1px solid #EEEEEE; border-radius: 3px; vertical-align: top;padding: 0;}
.layui-card-header { font-size: 14px;font-family: Microsoft YaHei;font-weight: 400;color: #606266;text-align: center; position: relative; height: 55px;display: flex;align-items: center;justify-content: space-between;border-bottom:1px solid #EEEEEE !important;}
.layui-card-header .edit-btn, .layui-card-header .cancel-btn { position: absolute; right: 15px; }
.cancel-btn { display: none; }
.layui-card-body { color: rgba(0, 0, 0, .6); padding:18px 20px 20px;box-sizing: border-box;width: 100%;height: calc(100% - 55px);display: flex;flex-direction: column;justify-content: space-between;}
.share-con { display: flex;}
.share-img { flex-shrink: 0; width: 70px; height:70px;line-height: 70px; border: 1px solid #f1f1f1; background-color: #ececec; text-align: center; background-size: cover;background-repeat: no-repeat;background-position: 50% 50%;}
.share-img span { color: #c0c0c0; font-weight: bold; }
.share-font { padding-right: 10px; flex:1;color: #909399;}
.btn-hide { display: none; }
.layui-textarea{min-height:70px;}
.share-title {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
.share-title span{font-size: 14px;font-family: Microsoft YaHei;font-weight: 400;color: #303133;}
.share-title input{display: none;}
.share-font textarea{display: none;}
.layui-layer-page .layui-layer-content{padding: 25px 0px 40px!important;}
.layui-form-item .layui-input-inline{width: 300px;}
.layui-form-item .layui-input-inline .imgUrl{width: 100px;height: 100px;border: 1px solid #E6E6E6;cursor: pointer;}
.layui-form-item .layui-input-inline .imgUrl img{width: 100%;height: 100%;}
</style>
{/block}
{block name="main"}
<div class="layui-form">
{foreach $config_list as $key=>$config_item}
<div class="layui-card card" data-key="{$config_item.config.config_key}" data-data='{:json_encode($config_item)}'>
<div class="layui-card-header" >
<span class="title">{$config_item.config.title}</span>
<a href="javascript:void(0)" class="edit-btn text-color">编辑</a>
</div>
<div class="layui-card-body">
<p class="share-title" name = "title">
<span title="{$config_item.value.title}">{$config_item.value.title}</span>
</p>
<div class="share-con">
<div class="share-font">
<span class="span-show">{php}echo str_replace("\n", '<br/>', $config_item['value']['desc']);{/php}</span>
</div>
<div class="share-img" {if isset($config_item.value.imgUrl) && !empty($config_item.value.imgUrl)}style="background-image:url('{:img($config_item.value.imgUrl)}')"{/if}>
{if !isset($config_item.value.imgUrl) || empty($config_item.value.imgUrl)}
<span>分享图标</span>
{/if}
</div>
</div>
</div>
</div>
{/foreach}
</div>
{/block}
{block name="script"}
<script type="text/html" id="openContent">
<div class="html-open layui-form">
{{# if(d.variable && d.variable.length){ }}
<div class="layui-form-item">
<label class="layui-form-label">变量替换</label>
<div class="layui-input-inline">
{{# layui.each(d.variable,function(index,item){ }}
<button type="button" class="layui-btn addBtn bg-color" data-tips="{{item.name}}">{{item.title}}</button>
{{# }) }}
</div>
</div>
{{# } }}
<div class="layui-form-item">
<label class="layui-form-label">分享标题</label>
<div class="layui-input-inline">
<input type="text" name="title" id="title" autocomplete="off" placeholder="请输入标题" value="{{d.value.title}}" class="layui-input addText" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分享描述</label>
<div class="layui-input-inline textarea">
<textarea class="layui-textarea len-long" name="desc" id="desc" maxlength="100" lay-verify="introduction" placeholder="请输入备注不能超过100个字符" >{{d.value.desc}}</textarea>
</div>
</div>
{{# if(d.value.imgUrl != undefined){ }}
<div class="layui-form-item">
<label class="layui-form-label">分享图标</label>
<div class="layui-input-block img-upload">
<div class="upload-img-block">
<div class="upload-img-box {{# if(d.value.imgUrl){ }}hover{{# } }}">
<div class="upload-default" id="logoUpload">
{{# if(d.value.imgUrl){ }}
<div id="preview_logoUpload" class="preview_img">
<img layer-src judge = 'true' src="{{ ns.img(d.value.imgUrl) }}" class="img_prev"/>
</div>
{{#} else { }}
<div class="upload">
<i class="iconfont iconshangchuan"></i>
<p>点击上传</p>
</div>
{{# } }}
</div>
<div class="operation">
<div>
<i title="图片预览" class="iconfont iconreview js-preview" style="margin-right: 20px;"></i>
<i title="删除图片" class="layui-icon layui-icon-delete js-delete"></i>
</div>
<div class="replace_img js-replace">点击替换</div>
</div>
<input type="hidden" name="imgUrl" value="{{d.value.imgUrl}}"/>
</div>
</div>
</div>
</div>
{{# } }}
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-inline">
<button type="button" class="layui-btn" lay-submit lay-filter="formDemo">确认</button>
<button type="button" id="closeOpen" class="layui-btn layui-btn-primary closeOpen">取消</button>
<a id="save"></a>
</div>
</div>
</div>
</script>
<script>
var layer,laytpl,form,imgUrl,save_data = [];
layui.use(['layer','laytpl'], function(){
layer = layui.layer;
laytpl = layui.laytpl;
form =layui.form;
form.render();
});
$(document).ready(function () {
var edit_num = 0;
$(".edit-btn").each(function(){
$(this).click(function(){
let data_key = $(this).parents('.card').attr('data-key');
let data_data = JSON.parse($(this).parents('.card').attr('data-data'));
let areaJudge = ['700px','440px'];
if(data_data.value.imgUrl == undefined){
areaJudge = ['700px','330px'];
}
let htmlOpenIndex = layer.open({
type: 1,
title:'分享设置',
area:areaJudge,
content:"<div id='openHtml'></div>" ,//这里content是一个普通的String
success:res=>{
laytpl($('#openContent').html()).render(data_data,function(html){
$('#openHtml').html(html);
})
//添加标记、用于变量替换时确定节点
$("input[name='title']").on("focus",function(){
$(this).addClass('addText');
$("textarea[name='desc']").removeClass('addText');
})
$("textarea[name='desc']").on("focus",function(){
$(this).addClass('addText');
$("input[name='title']").removeClass('addText');
})
// 变量数据追加
$('.layui-input-inline .addBtn').on('click',function(){
//向后追加所用模板数据
let addText = $(this).attr('data-tips');
// 获取需要修改的demo节点name
let name = $('.addText').attr('name');
switch(name){
case 'title':
var txtArea = $("input[name='title']")[0];
var content = txtArea.value;//文本域内容
var start = txtArea.selectionStart; //光标的初始位置selectionStart选区开始位置selectionEnd选区结束位置。
txtArea.value = content.substring(0, txtArea.selectionStart) + addText + content.substring(txtArea.selectionEnd, content.length);
var position = start + addText.length;
$("input[name='title']").focus();
txtArea.setSelectionRange(position+1, position)
break;
case 'desc':
var txtArea = $("textarea[name='desc']")[0];
var content = txtArea.value;//文本域内容
var start = txtArea.selectionStart; //光标的初始位置selectionStart选区开始位置selectionEnd选区结束位置。
txtArea.value = content.substring(0, txtArea.selectionStart) + addText + content.substring(txtArea.selectionEnd, content.length);
var position = start + addText.length;
$("textarea[name='desc']").focus();
txtArea.setSelectionRange(position+1, position)
break;
}
})
// 接口上传
form.on('submit(formDemo)',function(data){
let obj = data.field;
obj.config_key = data_data.config.config_key;
save_data = [];
save_data.push(obj);
if(data_data.value.imgUrl == undefined){
save(save_data);
}else{
let judge = $('.preview_img .img_prev').attr('judge')
if(!judge){
let imgJudge = $('.upload-default .preview_img .img_prev');
if(!imgJudge.length){
save_data[0].imgUrl = '';
save(save_data);
}else{
$('#save').click();
}
}else{
save(save_data);
}
}
})
//选择图片
var upload = new Upload({
elem: '#logoUpload',
auto: false, //选择文件后不自动上传
bindAction: '#save', //指向一个按钮触发上传
callback: function (res) {
if(res.code >= 0){
save_data[0].imgUrl = res.data.pic_path;
save(save_data);
}
}
});
//点击取消弹窗关闭
$('#closeOpen').on('click',function(){
layer.close(htmlOpenIndex)
})
form.render();
},
});
})
})
});
function save(data){
if(repeat_flag) return false;
repeat_flag = true;
$.ajax({
type: 'POST',
url: ns.url("wechat://shop/wechat/share"),
data: {
data_json : JSON.stringify(data),
},
dataType: 'JSON',
success: function (res) {
repeat_flag = false;
layer.msg(res.message);
setTimeout(function () {
location.reload();
}, 1000);
}
});
}
</script>
{/block}