gdoo/app/Gdoo/Promotion/views/material/detail.blade.php

240 lines
11 KiB
PHP

<style>
.content-body {
margin: 0;
}
</style>
<div id="vue-app">
<div class="form-panel">
<div class="form-panel-header">
<div class="pull-right"></div>
@if(isset($access['audit']))
<div class="btn-group">
<button type="button" data-toggle="audit-checkall" class="btn btn-sm btn-default"><i class="fa fa-check-square"></i> 全选</button>
<button class="btn btn-sm btn-default" data-toggle="dropdown"><i class="fa fa-navicon"></i> 批量操作 <span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a data-toggle="audit-stores" data-value="0">未审核</a></li>
<li><a data-toggle="audit-stores" data-value="1">已审合格</a></li>
<li><a data-toggle="audit-stores" data-value="2">已审不合格</a></li>
</ul>
</div>
<button type="button" data-toggle="audit-download" class="btn btn-sm btn-info">
<i class="fa fa-cloud-download"></i> 批量下载
</button>
@endif
<div class="btn-group hidden-xs">
<a class="btn btn-sm btn-default" data-toggle="closetab" data-id="promotion_material_show"><i class="fa fa-sign-out"></i> 退出</a>
</div>
</div>
<div class="form-panel-body panel-form-show">
<form class="form-horizontal form-controller" method="post" id="promotion" name="promotion">
<div style="background-color:#fff">
<div class="panel-heading text-center b-b">
<h3 class="m-xs m-l-none">
{{$promotion->sn}}
</h3>
<small>
客户: {{$promotion->customer->name}}
&nbsp;&nbsp;
创建时间: @datetime($promotion['created_at'])
&nbsp;&nbsp;
门店数量(未审核:{{(int)$audits[0]}} / 已审合格:{{(int)$audits[1]}} / 已审不合格:{{(int)$audits[2]}})
</small>
</div>
<div class="padder m-t">
<div class="row" id="stores">
@foreach($rows as $i => $row)
<div class="col-sm-4 col-md-3 m-b">
<div class="panel b-a">
<div class="panel-heading">
<div class="m-t-xs">
<span class="pull-right">
<div class="btn-group">
@if(isset($access['audit']))
<button class="btn btn-xs audit-{{$row['id']}} btn-{{$changes[$row['status']]['btn']}}" data-toggle="dropdown">{{$changes[$row['status']]['text']}} <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a data-toggle="audit-store" data-id="{{$row['id']}}" data-value="0">未审核</a></li>
<li><a data-toggle="audit-store" data-id="{{$row['id']}}" data-value="1">已审合格</a></li>
<li><a data-toggle="audit-store" data-id="{{$row['id']}}" data-value="2">已审不合格</a></li>
</ul>
@else
<span class="label label-{{$changes[$row['status']]['btn']}}">{{$changes[$row['status']]['text']}}</span>
@endif
</div>
</span>
@if(isset($access['audit']))
<label class="i-checks">
<input type="checkbox" name="stores[]" value="{{$row['id']}}"><i></i>
{{$row['name']}}
</label>
@endif
</div>
</div>
<div class="text-center wrapper">
<a href="javascript:;" style="height:220px;">
<img style="width:100%;height:220px;" alt="店名:{{$row['name']}}, 位置:{{$row['location']}}" lay-src="{{$row['images'][0]['url']}}">
<span style="display:none;">
@foreach($row['images'] as $image)
<img data-original="{{$image['url']}}" alt="店名:{{$row['name']}}, 位置:{{$row['location']}}" lay-src="{{$row['images'][0]['url']}}">
@endforeach
</span>
<div class="red m-t-xs">点击查看更多照片({{count($row['images'])}})</div>
</a>
</div>
<ul class="list-group no-radius">
<li class="list-group-item">
<div class="text-left">
<div>店名:{{$row['name']}}</div>
<div>位置:{{$row['location']}}</div>
<div>提交人:{{$row['created_by']}}</div>
<div>时间:@datetime($row['created_at'])</div>
</div>
</li>
</ul>
</div>
</div>
@endforeach
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<link href="{{$asset_url}}/vendor/layui/css/layui.css" rel="stylesheet">
<script src="{{$asset_url}}/vendor/layui/layui.js"></script>
<script type="text/javascript">
var changes = JSON.parse('{{json_encode($changes)}}');
var items = JSON.parse('{{json_encode($items)}}');
var vue = new Vue({
el: '#vue-app',
data: {
viewerData: [{
url: '',
name: ''
}],
},
methods: {},
mounted() {
var galley_id = "stores";
var galley = document.getElementById(galley_id);
var viewer = new Viewer(galley, {
navbar: false,
url: "data-original",
});
vueMounted();
}
});
function vueMounted() {
layui.use('flow', function() {
var flow = layui.flow;
flow.lazyimg();
});
// 门店审核
$('[data-toggle="audit-store"]').on('click', function(e) {
var data = $(this).data();
var obj = $('.audit-' + data.id);
obj.removeClass('btn-default btn-success btn-danger');
var change = changes[data.value];
obj.html(change.text + ' <span class="caret"></span>');
obj.addClass('btn-' + change.btn);
$.post('{{url("audit")}}', {
id: [data.id],
status: data.value
}, function(res) {
if (res.status) {
$.toastr('success', res.data);
} else {
$.toastr('error', res.data);
}
});
});
// 批量操作
$('[data-toggle="audit-stores"]').on('click', function(e) {
var data = $(this).data();
var ids = [];
$('#stores').find("input[type='checkbox']:checked").each(function() {
ids.push($(this).val());
});
if (ids.length == 0) {
$.toastr('error', '门店没有选择。');
return;
}
$.post('{{url("audit")}}', {
id: ids,
status: data.value
}, function(res) {
if (res.status) {
$.each(ids, function(k, v) {
var change = changes[data.value];
var obj = $('.audit-' + v);
obj.html(change.text + ' <span class="caret"></span>');
obj.removeClass('btn-default btn-success btn-danger');
obj.addClass('btn-' + change.btn);
});
$.toastr('success', res.data);
} else {
$.toastr('error', res.data);
}
});
});
// 批量下载
$('[data-toggle="audit-download"]').on('click', function(e) {
var data = $(this).data();
var ids = [];
$('#stores').find("input[type='checkbox']:checked").each(function() {
ids.push($(this).val());
});
if (ids.length == 0) {
$.toastr('error', '门店没有选择。');
return;
}
var loading = showLoading('照片压缩中...');
$.post('{{url("archive")}}', {
id: ids
}, function(res) {
layer.close(loading);
if (res.status) {
$.messager.alert('照片下载', '<div class="text-center"><a href="' + app.url('promotion/material/download', {
sn: '{{$promotion->sn}}'
}) + '">点击下载核销照片</a></div>');
} else {
$.toastr('error', res.data);
}
});
});
// 全选
$('[data-toggle="audit-checkall"]').on('click', function(e) {
$('#stores').find("input[type='checkbox']").each(function() {
if ($(this).prop('checked')) {
$(this).prop('checked', false);
} else {
$(this).prop('checked', true);
}
});
});
}
</script>