css代码
<style>
.layui-upload-img { width: 90px; height: 90px; margin: 0; }
.pic-more { width:100%; left; margin: 10px 0px 0px 0px;}
.pic-more li { width:90px; float: left; margin-right: 5px;}
.pic-more li .layui-input { display: initial; }
.item_img:nth-child(8){
clear: left;
}
.pic-more li a { position: absolute; top: 0; display: block; }
.pic-more li a i { font-size: 24px; background-color: #008800; }
#slide-pc-priview .item_img img{ width: 90px; height: 90px;}
#slide-pc-priview li{position: relative;}
#slide-pc-priview li .operate{ color: #000; display: none;}
#slide-pc-priview li .toleft{ position: absolute;top: 40px; left: 1px; cursor:pointer;}
#slide-pc-priview li .toright{ position: absolute;top: 40px; right: 1px;cursor:pointer;}
#slide-pc-priview li .close{position: absolute;top: 5px; right: 5px;cursor:pointer;}
#slide-pc-priview li:hover .operate{ display: block;}
</style>html代码
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">相关图片</label>
<div class="layui-input-block" style="width: 90%;">
<div class="layui-upload">
<div class="layui-input-block">
<button type="button" class="layui-btn" id="slide-pc">
<i class="layui-icon"></i>上传图片
</button>
<div class="pic-more">
<ul class="pic-more-upload-list" id="slide-pc-priview">
{volist name="arr" id="vo"}
<li class="item_img">
<div class="operate">
<i class="close layui-icon layui-icon-close-fill layuiadmin-button-btn"></i>
</div>
<img src="{$vo}" class="img" >
<input type="hidden" name="pc_src[]" value="{$vo}" />
</li>
{/volist}
</ul>
</div>
</div>
</div>
</div>
</div>JS代码
<script>layui.use(['form', 'layer', 'upload'],
function() {
$ = layui.jquery;
var form = layui.form,
layer = layui.layer,
upload = layui.upload;
//上传图片
var uploadInst = upload.render({
elem:'#slide-pc'
,url:'{:url("okadmin/Other/uploadBanner")}'
,accept:'jpg|png|jpeg' // 允许上传的文件类型
,auto:true // 自动上传
,before:function (obj) {
// console.log(obj);
// 预览
obj.preview(function(index,file,result) {
// console.log(file.name); //图片名字
// console.log(file.type); //图片格式
// console.log(file.size); //图片大小
// console.log(result); //图片地址
});
// layer.load();
}
// 上传成功回调
,done:function(res) {
$('#slide-pc-priview').append('<li class="item_img"><div class="operate"><i class="close layui-icon layui-icon-close-fill layuiadmin-button-btn"></i></div><img src="/uploads/image/' + res['data']['src'] + '" class="img" ><input type="hidden" name="pc_src[]" value="/uploads/image/' +res['data']['src'] + '" /></li>');
// $('#banner').val(res['data']['src']);
// console.log(res['data']['src']);
}
// 上传失败回调
,error:function(index,upload) {
// 上传失败
}
});
//监听提交
form.on('submit(add)',
function(data) {
//发异步,把数据提交给php
var arr = new Array();
$("input:checkbox[name='orgs']:checked").each(function(i){
arr[i] = $(this).val();
});
data.field.orgs = arr.join(",");//将数组合并成字符串
// console.log(data.field);
$.post("{:url('save')}",data.field,function(result){
// result = $.parseJSON(result);
if(result.code != '1'){
layer.alert(result.msg, {
icon: 5
});
}else{
layer.alert(result.msg, {
icon: 6
},
function() {
//关闭当前frame
xadmin.close();
parent.layui.table.reload('bllist');
});
}
});
return false;
});
//点击多图上传的X,删除当前的图片
$("body").on("click",".close",function(){
$(this).closest("li").remove();
});
});PHP代码
if(isset($post['id'])){
//校验
if(!$validater->scene('modify')->check($post)){
return json(['data'=>'','code'=>0,'msg'=>$validater->getError()]);
}
//获取全部提交数据
$images = $post['pc_src'];
$id = $post['id'];
unset($post['pc_src']);
$bl_mod->startTrans();
//插入主表数据
// $post['modify_time'] = time();
// $post['modify_ip'] = request()->ip();
//插入主表数据
$bl_mod->allowField(true)->isUpdate(true)->save($post);
//单独处理附件图片
$attatch_mod = new model\Attatch();
//先查出全部数据,然后对比数据,相同的跳过,不同的新增或者删除
$theSames = $attatch_mod->where(['bid'=>$id])->select();
foreach ($theSames as $kk=>$vv){
$file = $theSames[$kk]['file'];
//重置下标
foreach ($images as $k=>$v){
if($file == $images[$k]){
unset($images[$k]);
unset($theSames[$kk]);
continue;
}
}
}
//删除$theSames中的数据
foreach ($theSames as $v){
$attatchid = $v['id'];
$attatch_mod->where('id',$attatchid)->delete();
}
//存储$images中的数据
foreach ($images as $v){
$target = $v;
if(substr($target, 0 , 1) == 'h'){
$upStr = config('systemConfig.fulldomain').'/uploads/image/';
$count=strpos($v,$upStr);
$length = strlen($upStr);
$img = substr_replace($v,"",$count,$length);
}
$data['bid'] = $id;
$data['file'] = $img;
$data['type'] = 'image';
$data['mime'] = 'image/jpeg';
$data['create_time'] = time();
$data['create_ip'] = request()->ip();
$attatch_mod->data($data, true)->isUpdate(false)->save();
}
$bl_mod->commit();
return json(['data'=>'','code'=>1,'msg'=>'操作成功']);
}
最新回复 (0)