创建版本
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
<script type="text/javascript">
|
||||
var uploader = {
|
||||
file:function(fileId)
|
||||
{
|
||||
var id = $('#'+fileId).find(".id").val();
|
||||
location.href = '{{url("file/attachment/file")}}?model={{$attachList["model"]}}&id='+id;
|
||||
},
|
||||
cancel:function(fileId)
|
||||
{
|
||||
var id = $('#'+fileId).find(".id").val();
|
||||
if (id > 0) {
|
||||
var name = $('#'+fileId).find(".fileName a").text();
|
||||
$.messager.confirm('操作警告', '确定要删除 <strong>'+name+'</strong> 此文件吗', function(btn) {
|
||||
if (btn == true) {
|
||||
var url = '{{url("file/attachment/delete")}}';
|
||||
$.get(url,{model:'{{$attachList["model"]}}',id:id},function(res) {
|
||||
if (res == 1) {
|
||||
$('#'+fileId).remove();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#'+fileId).remove();
|
||||
}
|
||||
},
|
||||
insert:function(fileId)
|
||||
{
|
||||
var id = $('#'+fileId).find(".id").val();
|
||||
var name = $('#'+fileId).find(".file-name a").text();
|
||||
// 检查图片类型
|
||||
if (/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(name))
|
||||
{
|
||||
var html = '<img src="{{url("file/attachment/view")}}?model={{$attachList["model"]}}&id='+id+'" title="'+name+'">';
|
||||
}
|
||||
else
|
||||
{
|
||||
var html = '<a href="{{url("file/attachment/file")}}?model={{$attachList["model"]}}&id='+id+'" title="'+name+'">'+name+'</a>';
|
||||
}
|
||||
UE.getEditor('content').execCommand('insertHtml', html);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script id="uploader-item-tpl" type="text/html">
|
||||
<div id="file_draft_<%=id%>" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="text-danger" title="草稿状态">!</span> <a href="javascript:uploader.file('file_draft_<%=id%>');"><%=title%></a></span>
|
||||
<span class="file-size">(<%=size%>)</span>
|
||||
<span class="insert"><a class="option" href="javascript:uploader.insert('file_draft_<%=id%>');">插入编辑器</a></span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('file_draft_<%=id%>');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="<%=id%>" />
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</script>
|
||||
|
||||
<a class="btn btn-sm btn-info" href="javascript:viewBox('reader', '文件上传', '{{url('file/attachment/uploader', ['model' => $attachList['model'], 'path' => $attachList['path']])}}');"><i class="fa fa-cloud-upload"></i> 文件上传</a>
|
||||
<span class="uploader-size"> 文件大小限制{{$setting['upload_max']}} MB</span>
|
||||
|
||||
<div class="clear"></div>
|
||||
|
||||
<div id="fileQueue">
|
||||
@if($attachList['queue'])
|
||||
@foreach($attachList['queue'] as $n => $v)
|
||||
<div id="file_queue_{{$n}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="icon icon-paperclip"></span> <a href="javascript:uploader.file('file_queue_{{$n}}');">{{$v['title']}}</a></span>
|
||||
<span class="file-size"> ({{human_filesize($v['size'])}})</span>
|
||||
<span class="insert"><a class="option" href="javascript:uploader.insert('file_queue_{{$n}}');">插入编辑器</a></span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('file_queue_{{$n}}');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="{{$v['id']}}" />
|
||||
</div><div class="clear"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div id="fileQueueDraft">
|
||||
@if($attachList['draft'])
|
||||
@foreach($attachList['draft'] as $n => $v)
|
||||
<div id="queue_draft_{{$n}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><strong class="red" title="草稿附件">!</strong> <a href="javascript:uploader.file('queue_draft_{{$n}}');">{{$v['title']}}</a></span>
|
||||
<span class="file-size">({{human_filesize($v['size'])}})</span>
|
||||
<span class="insert"><a class="option" href="javascript:uploader.insert('queue_draft_{{$n}}');">插入编辑器</a></span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('queue_draft_{{$n}}');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="{{$v['id']}}" />
|
||||
</div><div class="clear"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
@@ -0,0 +1,44 @@
|
||||
<script id="uploader-item-tpl" type="text/html">
|
||||
<div id="<%=fileId%>" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="text-danger" title="草稿状态">!</span> <a href="javascript:uploader.file('<%=fileId%>');"><%=name%></a></span>
|
||||
<span class="file-size">(<%=size%>)</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('<%=fileId%>');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="<%=id%>" />
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</script>
|
||||
|
||||
<div class="uploadify-queue">
|
||||
|
||||
<a class="btn btn-sm btn-info" href="javascript:viewBox('reader', '文件上传', '{{url('index/attachment/uploader', ['path' => Request::module()])}}');"><i class="fa fa-cloud-upload"></i> 文件上传</a>
|
||||
<span class="uploader-size"> 文件大小限制 {{$setting['upload_max']}}MB</span>
|
||||
<div class="clear"></div>
|
||||
|
||||
<div id="fileQueue" class="uploadify-queue">
|
||||
@if($attachment['rows'])
|
||||
@foreach($attachment['rows'] as $n => $v)
|
||||
<div id="file_attach_{{$n}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="icon icon-paperclip"></span> <a href="javascript:uploader.file('file_attach_{{$n}}');">{{$v['name']}}</a></span>
|
||||
<span class="file-size"> ({{human_filesize($v['size'])}})</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('file_attach_{{$n}}');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="{{$v['id']}}" />
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div id="fileQueueDraft">
|
||||
@if($attachment['draft'])
|
||||
@foreach($attachment['draft'] as $n => $file)
|
||||
<div id="queue_draft_{{$n}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="text-danger" title="草稿附件">!</span> <a href="javascript:uploader.file('queue_draft_{{$n}}');">{{$file['name']}}</a></span>
|
||||
<span class="file-size">({{human_filesize($file['size'])}})</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('queue_draft_{{$n}}');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="{{$file['id']}}">
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,45 @@
|
||||
<script id="uploader-item-tpl" type="text/html">
|
||||
<div id="<%=fileId%>" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="text-danger" title="草稿状态">!</span> <a href="javascript:uploader.file('<%=fileId%>');"><%=name%></a></span>
|
||||
<span class="file-size">(<%=size%>)</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('<%=fileId%>');"><i class="fa fa-fw fa-remove"></i></a></span>
|
||||
<input type="hidden" class="id" name="{{$field}}[]" value="<%=id%>" />
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</script>
|
||||
|
||||
<div class="uploadify-queue">
|
||||
|
||||
<a class="btn btn-sm btn-info" href="javascript:viewBox('reader', '文件上传', '{{url('index/attachment/uploader', ['path' => Request::module(), 'key' => $key.'.'.$field])}}');"><i class="fa fa-cloud-upload"></i> 附件</a>
|
||||
<div class="clear"></div>
|
||||
|
||||
<div id="fileQueue_{{$key}}_{{$field}}" class="uploadify-queue">
|
||||
|
||||
@if($attachments['rows'])
|
||||
@foreach($attachments['rows'] as $n => $file)
|
||||
<div id="file_queue_{{$n}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="icon icon-paperclip"></span> <a href="javascript:uploader.file('file_queue_{{$n}}');">{{$file['name']}}</a></span>
|
||||
<span class="file-size">({{human_filesize($file['size'])}})</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('file_queue_{{$n}}');"><i class="fa fa-fw fa-remove"></i></a></span>
|
||||
<input type="hidden" class="id" name="{{$field}}[]" value="{{$file['id']}}">
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
</div>
|
||||
|
||||
<div id="fileDraft_{{$key}}_{{$field}}">
|
||||
@if($attachments['draft'])
|
||||
@foreach($attachments['draft'] as $n => $file)
|
||||
<div id="queue_draft_{{$n}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="text-danger" title="草稿附件">!</span> <a href="javascript:uploader.file('queue_draft_{{$n}}');">{{$file['name']}}</a></span>
|
||||
<span class="file-size">({{human_filesize($file['size'])}})</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('queue_draft_{{$n}}');"><i class="fa fa-remove"></i></a></span>
|
||||
<input type="hidden" class="id" name="{{$field}}[]" value="{{$file['id']}}">
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,97 @@
|
||||
<script type="text/javascript">
|
||||
var uploader = {
|
||||
file:function(fileId) {
|
||||
var id = $('#'+fileId).find(".id").val();
|
||||
location.href = '{{url('file/attachment/file')}}?model={{$attach['model']}}&id='+id;
|
||||
},
|
||||
cancel:function(fileId) {
|
||||
var id = $('#'+fileId).find(".id").val();
|
||||
if (id > 0) {
|
||||
var name = $('#'+fileId).find(".fileName a").text();
|
||||
$.messager.confirm('操作警告', '确定要删除 <strong>'+name+'</strong> 此文件吗', function(btn) {
|
||||
if (btn == true) {
|
||||
var url = "{{url('file/attachment/delete')}}";
|
||||
$.get(url,{model:"{{$attach['model']}}",id:id},function(res) {
|
||||
if (res == 1) {
|
||||
$('#'+fileId).remove();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#'+fileId).remove();
|
||||
}
|
||||
},
|
||||
copyLink:function() {
|
||||
var clipBoardContent = this.location.href;
|
||||
window.clipboardData.setData("Text", clipBoardContent);
|
||||
alert("复制成功。");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script id="uploader-item-tpl" type="text/html">
|
||||
<div id="file_draft_<%=id%>" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="text-danger" title="草稿状态">!</span> <a href="javascript:uploader.file('file_draft_<%=id%>');"><%=title%></a></span>
|
||||
<span class="file-size">(<%=size%>)</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('file_draft_<%=id%>');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="<%=id%>" />
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</script>
|
||||
|
||||
@if($attach['auth']['add'] == true)
|
||||
|
||||
<a class="btn btn-sm btn-info" href="javascript:viewBox('reader', '文件上传', '{{url('file/attachment/uploader', ['model' => $attach['model'], 'path' => $attach['path']])}}');"><i class="fa fa-cloud-upload"></i> 文件上传</a>
|
||||
<span class="uploader-size"> 文件大小限制{{$setting['upload_max']}} MB</span>
|
||||
<!--
|
||||
<input type="file" name="uploadify" id="uploadify">
|
||||
<div class="uploadify-info text-ellipsis"> 支持{{strtoupper($setting['upload_type'])}}, 不超过{{$setting['upload_max']}}MB</div>
|
||||
<div class="clear"></div>
|
||||
-->
|
||||
|
||||
@endif
|
||||
|
||||
<div id="fileQueue">
|
||||
@if($attach['queue'])
|
||||
@if($attach['queue'])
|
||||
@foreach($attach['queue'] as $v)
|
||||
<div id="file_queue_{{$v['id']}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><a href="javascript:uploader.file('file_queue_{{$v['id']}}');">{{$v['title']}}</a></span>
|
||||
<span class="file-size">(
|
||||
上传者: {{get_user($v['add_user_id'], 'name')}}
|
||||
上传时间: @datetime($v['add_time'])
|
||||
大小: {{human_filesize($v['size'])}}
|
||||
)</span>
|
||||
|
||||
@if($attach['auth']['add'] == true)
|
||||
<span class="insert"><a class="option" href="javascript:uploader.cancel('file_queue_{{$v['id']}}');">删除</a></span>
|
||||
@endif
|
||||
|
||||
<input type="hidden" class="id" name="attachment[]" value="{{$v['id']}}">
|
||||
</div><div class="clearfix"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div id="fileQueueDraft">
|
||||
@if($attach['draft'])
|
||||
@foreach($attach['draft'] as $k => $v)
|
||||
<div id="queue_draft_{{$v['id']}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><strong class="red" title="草稿附件">!</strong> <a href="javascript:uploader.file('queue_draft_{{$v['id']}}');">{{$v['title']}}</a></span>
|
||||
<span class="file-size">(
|
||||
上传者: {{get_user($v['add_user_id'], 'name')}}
|
||||
上传时间: @datetime($v['add_time'])
|
||||
大小: {{human_filesize($v['size'])}}
|
||||
)</span>
|
||||
|
||||
@if($attach['auth']['add'] == true)
|
||||
<span class="insert"><a class="option" href="javascript:uploader.cancel('queue_draft_{{$v['id']}}');">删除</a></span>
|
||||
@endif
|
||||
|
||||
<input type="hidden" class="id" name="attachment[]" value="{{$v['id']}}">
|
||||
</div><div class="clearfix"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
<img src="{{$stream}}">
|
||||
@@ -0,0 +1,90 @@
|
||||
<script type="text/javascript">
|
||||
var uploader = {
|
||||
file:function(fileId) {
|
||||
var id = $('#'+fileId).find(".id").val();
|
||||
location.href = '{{url('file/attachment/file')}}?model={{$attach['model']}}&id='+id;
|
||||
},
|
||||
cancel:function(fileId) {
|
||||
var id = $('#'+fileId).find(".id").val();
|
||||
if (id > 0) {
|
||||
var name = $('#'+fileId).find(".fileName a").text();
|
||||
$.messager.confirm('操作警告', '确定要删除 <strong>'+name+'</strong> 此文件吗', function(btn) {
|
||||
if (btn == true) {
|
||||
var url = "{{url('file/attachment/delete')}}";
|
||||
$.get(url,{model:"{{$attach['model']}}",id:id},function(res) {
|
||||
if(res == 1) {
|
||||
$('#'+fileId).remove();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#'+fileId).remove();
|
||||
}
|
||||
},
|
||||
copyLink:function() {
|
||||
var clipBoardContent = this.location.href;
|
||||
window.clipboardData.setData("Text", clipBoardContent);
|
||||
alert("复制成功。");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<!--
|
||||
<span class="file-name"><span class="text-danger" title="草稿状态">!</span> <a href="javascript:uploader.file('<%=fileId%>');"><%=title%></a></span>
|
||||
-->
|
||||
|
||||
<script id="uploader-item-tpl" type="text/html">
|
||||
<div id="<%=fileId%>" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="text-danger" title="草稿状态">!</span> <a href="javascript:uploader.file('<%=fileId%>');"><%=title%></a></span>
|
||||
<span class="file-size">(<%=size%>)</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('<%=fileId%>');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="<%=id%>" />
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</script>
|
||||
|
||||
@if($attach['auth']['add'] == true)
|
||||
<a class="btn btn-sm btn-info" href="javascript:viewBox('reader', '文件上传', '{{url('file/attachment/uploader', ['model' => $attach['model'], 'path' => $attach['path']])}}');"><i class="fa fa-cloud-upload"></i> 文件上传</a>
|
||||
<span class="uploader-size"> 文件大小限制{{$setting['upload_max']}} MB</span>
|
||||
@endif
|
||||
|
||||
<div id="fileQueue">
|
||||
@if($attach['queue'])
|
||||
@if($attach['queue'])
|
||||
@foreach($attach['queue'] as $v)
|
||||
<div id="file_queue_{{$v['id']}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><a href="javascript:uploader.file('file_queue_{{$v['id']}}');">{{$v['title']}}</a></span>
|
||||
<span class="file-size">(
|
||||
上传者: {{get_user($v['add_user_id'], 'name')}}
|
||||
上传时间: @datetime($v['add_time'])
|
||||
大小: {{human_filesize($v['size'])}}
|
||||
)</span>
|
||||
|
||||
@if($attach['auth']['add'] == true)
|
||||
<span class="insert"><a class="option" href="javascript:uploader.cancel('file_queue_{{$v['id']}}');">删除</a></span>
|
||||
@endif
|
||||
|
||||
<input type="hidden" class="id" name="attachment[]" value="{{$v['id']}}">
|
||||
</div><div class="clearfix"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<div id="fileQueueDraft">
|
||||
@if($attach['draft'])
|
||||
@foreach($attach['draft'] as $k => $v)
|
||||
<div id="queue_draft_{{$v['id']}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><strong class="red" title="草稿附件">!</strong> <a download="{{$v['title']}}" href="{{$upload_url.'/'.$v['path'].'/'.$v['name']}}">{{$v['title']}}</a> ({{human_filesize($v['size'])}})</span>
|
||||
<span class="file-size">
|
||||
{{get_user($v['add_user_id'], 'name')}} - @datetime($v['add_time'])
|
||||
</span>
|
||||
@if($attach['auth']['add'] == true)
|
||||
<span class="insert"><a class="option" href="javascript:uploader.cancel('queue_draft_{{$v['id']}}');">删除</a></span>
|
||||
@endif
|
||||
|
||||
<input type="hidden" class="id" name="attachment[]" value="{{$v['id']}}">
|
||||
</div><div class="clearfix"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
@@ -0,0 +1,107 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{$setting['title']}}</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<link href="{{$asset_url}}/dist/app.min.css" rel="stylesheet" type="text/css">
|
||||
<script src="{{$asset_url}}/vendor/jquery.min.js"></script>
|
||||
</head>
|
||||
<style>
|
||||
li { list-style: none; }
|
||||
body {
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
width: 80%;
|
||||
}
|
||||
.header {
|
||||
text-align: center;
|
||||
margin-top: 50px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.logo img { border-radius: 500px; width:86px; height:86px; }
|
||||
.input-group-addon {
|
||||
background-color: #fff;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="logo">
|
||||
<img class="circle" src="{{$asset_url}}/images/a1.jpg" />
|
||||
<div>{{auth()->user()->name}}</div>
|
||||
<div>欢迎使用{{$setting['title']}} 扫一扫</div>
|
||||
<p class="message text-sm" style="color:red;"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form id="fileForm" class="form-horizontal">
|
||||
<div class="form-group input-group">
|
||||
<span class="input-group-addon">单据名称</span>
|
||||
<input id="name" name="name" type="text" value="{{$model['name']}}" class="form-control input-sm" readonly="readonly" />
|
||||
</div>
|
||||
|
||||
<div class="form-group input-group">
|
||||
<span class="input-group-addon">文件名称</span>
|
||||
<input type="text" id="filename" class="form-control input-sm" name="filename" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<a class="btn btn-info btn-lg btn-block" id="qrcode-btn"><i class="fa fa-qrcode"></i> 扫一扫</a>
|
||||
<span style="display:none;">
|
||||
<input type="file" name="file" id="fileToUpload" capture="camera" accept="image/*" onchange="fileSelected();">
|
||||
</span>
|
||||
</div>
|
||||
<input type="hidden" name="key" value="{{$key}}" />
|
||||
<input type="hidden" name="x-auth-token" value="{{$token}}" />
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
<script>
|
||||
|
||||
$(function() {
|
||||
$('#qrcode-btn').on('click', function() {
|
||||
$('#fileToUpload').click();
|
||||
});
|
||||
});
|
||||
|
||||
var btn = '<i class="fa fa-qrcode"></i> 扫一扫';
|
||||
|
||||
function fileSelected() {
|
||||
var formData = new FormData($('#fileForm')[0]);
|
||||
$('.message').html('');
|
||||
$('#fileToUpload').attr('disabled', 'disabled');
|
||||
$.ajax({
|
||||
url: '{{url("uploader")}}',
|
||||
type: 'POST',
|
||||
data: formData,
|
||||
async: false,
|
||||
cache: false,
|
||||
contentType: false,
|
||||
processData: false,
|
||||
xhr: function(){
|
||||
var xhr = $.ajaxSettings.xhr();
|
||||
if (xhr.upload) {
|
||||
$('#qrcode-btn').html('上传中...');
|
||||
// xhr.upload.addEventListener("progress", onprogress, false);
|
||||
return xhr;
|
||||
}
|
||||
},
|
||||
success: function (returndata) {
|
||||
$('#qrcode-btn').html(btn);
|
||||
$('#fileToUpload').removeAttr('disabled');
|
||||
$('#fileToUpload').val('');
|
||||
$('.message').html('上传成功,请在提单界面等待图片出现。');
|
||||
},
|
||||
error: function (returndata) {
|
||||
$('#qrcode-btn').html(btn);
|
||||
$('#fileToUpload').removeAttr('disabled');
|
||||
$('#fileToUpload').val('');
|
||||
$('.message').html('上传失败。');
|
||||
}
|
||||
});
|
||||
}
|
||||
/*
|
||||
function onprogress(evt) {
|
||||
// $(".form-footer>a").html("上传中...");
|
||||
}*/
|
||||
</script>
|
||||
@@ -0,0 +1,19 @@
|
||||
<div class="uploadify-queue">
|
||||
|
||||
<div id="fileQueue" class="uploadify-queue">
|
||||
|
||||
@if(count($attachments['main']))
|
||||
@foreach($attachments['main'] as $n => $file)
|
||||
<div id="file_queue_{{$n}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="icon icon-paperclip"></span> <a href="javascript:uploader.file('file_queue_{{$n}}');">{{$file['name']}}</a></span>
|
||||
<span class="file-size">({{human_filesize($file['size'])}})</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('file_queue_{{$n}}');"><i class="fa fa-fw fa-remove"></i></a></span>
|
||||
<input type="hidden" class="id" name="{{$field}}[]" value="{{$file['id']}}">
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,15 @@
|
||||
<div class="uploadify-queue">
|
||||
<div id="fileQueue" class="uploadify-queue">
|
||||
@if($attachments['main'])
|
||||
@foreach($attachments['main'] as $n => $file)
|
||||
<div id="file_queue_{{$n}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="icon icon-paperclip"></span> <a href="javascript:uploader.file('file_queue_{{$n}}');">{{$file['name']}}</a></span>
|
||||
<span class="file-size">({{human_filesize($file['size'])}})</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('file_queue_{{$n}}');"><i class="fa fa-fw fa-remove"></i></a></span>
|
||||
<input type="hidden" class="id" name="{{$field}}[]" value="{{$file['id']}}">
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,28 @@
|
||||
<link rel="stylesheet" type="text/css" href="{{$asset_url}}/vendor/webuploader/webuploader.css">
|
||||
<link rel="stylesheet" type="text/css" href="{{$asset_url}}/vendor/webuploader/demo.css">
|
||||
|
||||
<div id="uploader" class="wu-example">
|
||||
<div class="queueList">
|
||||
<div id="dndArea" class="placeholder">
|
||||
<div id="filePicker"></div>
|
||||
<p>或将文件拖到这里,单次最多可选99个文件</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="statusBar" style="display:none;">
|
||||
<div class="progress">
|
||||
<span class="text">0%</span>
|
||||
<span class="percentage"></span>
|
||||
</div><div class="info"></div>
|
||||
<div class="btns">
|
||||
<div id="filePicker2"></div><div class="uploadBtn">开始上传</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var BASE_URL = '{{$asset_url}}/vendor/webuploader';
|
||||
var SERVER_URL = '{{$SERVER_URL}}';
|
||||
var UPLOADER_ID = '{{$key}}'.replace('.', '_');
|
||||
</script>
|
||||
<script type="text/javascript" src="{{$asset_url}}/vendor/webuploader/webuploader.nolog.min.js"></script>
|
||||
<script type="text/javascript" src="{{$asset_url}}/vendor/webuploader/demo.js"></script>
|
||||
@@ -0,0 +1,23 @@
|
||||
<span class="btn btn-xs btn-info">
|
||||
附件 <span class="badge">{{count($attachment['rows'])}}</span>
|
||||
</span>
|
||||
|
||||
<div class="uploadify-queue">
|
||||
@foreach($attachment['rows'] as $row)
|
||||
<div class="uploadify-queue-item">
|
||||
<span class="file-name">
|
||||
<span class="text-muted icon icon-paperclip"></span> <a download="aaaa" href="{{url('index/attachment/download',['id'=>$row['id']])}}">{{$row['name']}}</a>
|
||||
</span>
|
||||
<span class="file-size"> ({{human_filesize($row['size'])}})</span>
|
||||
|
||||
@if(in_array(strtolower($row['type']), ['pdf']))
|
||||
<a href="{{URL::to('uploads').'/'.$row['path']}}" class="btn btn-xs btn-default" target="_blank">预览</a>
|
||||
@elseif(in_array(strtolower($row['type']), ['jpg','png','gif','bmp']))
|
||||
<a class="btn btn-xs btn-default" onclick="imageBox('preview', '附件预览', '{{URL::to('uploads').'/'.$row['path']}}');">预览</a>
|
||||
@else
|
||||
<a class="btn btn-xs btn-default" href="{{url('index/attachment/download',['id'=>$row['id']])}}">下载</a>
|
||||
@endif
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div
|
||||
@@ -0,0 +1,50 @@
|
||||
@if($attachment['options']['create'])
|
||||
<script id="uploader-item-tpl" type="text/html">
|
||||
<div id="<%=fileId%>" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="text-danger" title="草稿状态">!</span> <a href="javascript:uploader.file('<%=fileId%>');"><%=name%></a></span>
|
||||
<span class="file-size">(<%=size%>)</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('<%=fileId%>');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="<%=id%>" />
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</script>
|
||||
@endif
|
||||
|
||||
<div class="uploadify-queue">
|
||||
|
||||
@if($attachment['options']['create'])
|
||||
<a class="btn btn-sm btn-info" href="javascript:viewBox('reader', '文件上传', '{{url('index/attachment/uploader', ['path' => Request::module()])}}');"><i class="fa fa-cloud-upload"></i> 文件上传</a>
|
||||
<span class="uploader-size"> 文件大小限制 {{$setting['upload_max']}}MB</span>
|
||||
<div class="clear"></div>
|
||||
@endif
|
||||
|
||||
<div id="fileQueue" class="uploadify-queue">
|
||||
@if($attachment['rows'])
|
||||
@foreach($attachment['rows'] as $n => $v)
|
||||
<div id="file_attach_{{$n}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="icon icon-paperclip"></span> <a href="javascript:uploader.file('file_attach_{{$n}}');">{{$v['name']}}</a></span>
|
||||
<span class="file-size"> ({{human_filesize($v['size'])}})</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('file_attach_{{$n}}');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="{{$v['id']}}" />
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@if($attachment['options']['create'])
|
||||
<div id="fileQueueDraft">
|
||||
@if($attachment['draft'])
|
||||
@foreach($attachment['draft'] as $n => $file)
|
||||
<div id="queue_draft_{{$n}}" class="uploadify-queue-item">
|
||||
<span class="file-name"><span class="text-danger" title="草稿附件">!</span> <a href="javascript:uploader.file('queue_draft_{{$n}}');">{{$file['name']}}</a></span>
|
||||
<span class="file-size">({{human_filesize($file['size'])}})</span>
|
||||
<span class="cancel"><a class="option" href="javascript:uploader.cancel('queue_draft_{{$n}}');">删除</a></span>
|
||||
<input type="hidden" class="id" name="attachment[]" value="{{$file['id']}}">
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@@ -0,0 +1,34 @@
|
||||
<div class="wrapper-xs">
|
||||
<form id="batch-edit-form" action="{{url()}}" method="post">
|
||||
<div class="form-group search-group m-b-xs">
|
||||
<select name="field" id="search-field-0" class="form-control input-sm">
|
||||
<option value=""> - </option>
|
||||
@foreach($header['search_form']['columns'] as $column)
|
||||
<option data-type="{{$column['form_type']}}" data-title="{{$column['name']}}" value="{{$column['field']}}">{{$column['name']}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group" style="display:none;">
|
||||
<select name="condition_0" id="search-condition-0" class="form-control input-sm"></select>
|
||||
</div>
|
||||
<div class="form-group m-b-xs" id="search-value-0"></div>
|
||||
<input name="ids" type="hidden" value="{{$gets['ids']}}">
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
var forms = JSON.parse('{{json_encode($header["search_form"]["forms"], JSON_UNESCAPED_UNICODE)}}');
|
||||
(function($) {
|
||||
var el = $('#batch-edit-form').searchForm({
|
||||
data: forms
|
||||
});
|
||||
el.find('#search-submit').on('click', function() {
|
||||
var query = el.serializeArray();
|
||||
var params = {};
|
||||
$.map(query, function(row) {
|
||||
params[row.name] = row.value;
|
||||
});
|
||||
config.grid.remoteData(params);
|
||||
return false;
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
||||
@@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<h2>Password Reset</h2>
|
||||
|
||||
<div>
|
||||
To reset your password, complete this form: {{ URL::to('password/reset', array($token)) }}.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<h2>{{$subject}}</h2>
|
||||
<div>
|
||||
{{$content}}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
Click here to reset your password: {{ url('password/reset/'.$token) }}
|
||||
@@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<h2>欢迎您!</h2>
|
||||
|
||||
<div>
|
||||
感谢您的到来!
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><?php echo isset($title) ? $title : ''; ?></title>
|
||||
<link href="<?php echo URL::to('assets'); ?>/css/app.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="text-center wrapper-xl">
|
||||
|
||||
<i class="fa fa-5x fa-ban text-muted"></i>
|
||||
<h1><?php echo isset($title) ? $title : ''; ?></h1>
|
||||
<h4><?php echo isset($message) ? $message : ''; ?></h4>
|
||||
|
||||
<div class="padder-v m-t">
|
||||
<a href="javascript:history.back();" class="btn btn-sm btn-default">返回上一页</a>
|
||||
<a href="<?php echo URL::to('/'); ?>" class="btn btn-sm btn-info">返回首页</a>
|
||||
</div>
|
||||
<div class="m-t">
|
||||
<small class="text-muted">© {{date('Y')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,41 @@
|
||||
<html>
|
||||
<head>
|
||||
<link href='http://fonts.googleapis.com/css?family=Lato:100' rel='stylesheet' type='text/css'>
|
||||
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: #B0BEC5;
|
||||
display: table;
|
||||
font-weight: 100;
|
||||
font-family: 'Lato';
|
||||
}
|
||||
|
||||
.container {
|
||||
text-align: center;
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.content {
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 72px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="content">
|
||||
<div class="title">Be right back.</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>信息提示</title>
|
||||
<link href="<?php echo URL::to('assets'); ?>/dist/app.min.css" rel="stylesheet">
|
||||
<style type="text/css">
|
||||
.window {
|
||||
font: 12px 'Lucida Grande', Verdana, sans-serif;
|
||||
color: #58666e;
|
||||
margin-left:-240px;
|
||||
margin-top:-100px;position:absolute;left:50%;top:50%;display:block;
|
||||
width: 480px;
|
||||
height: 160px;
|
||||
}
|
||||
.data { padding: 5px 0; font-size: 16px; text-align: center; }
|
||||
a {
|
||||
color:#999;
|
||||
}
|
||||
a:hover {
|
||||
color:#666;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="window">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
<div class="data">
|
||||
<?php echo $data; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
<a class="btn btn-sm btn-default" href="javascript:javascript:history.go(-1);"><i class="fa fa-mail-reply"></i> 返回</a>
|
||||
<!--
|
||||
<a href="javascript:top.location.href=<?php echo URL::to('/'); ?>">返回首页</a>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>信息提示</title>
|
||||
<link href="<?php echo URL::to('assets'); ?>/css/app.css" rel="stylesheet">
|
||||
<style type="text/css">
|
||||
.window {
|
||||
font: 12px 'Lucida Grande', Verdana, sans-serif;
|
||||
color: #58666e;
|
||||
margin-left:-240px;
|
||||
margin-top:-100px;position:absolute;left:50%;top:50%;display:block;
|
||||
width: 480px;
|
||||
height: 160px;
|
||||
}
|
||||
.h5 { padding: 5px 0; }
|
||||
a {
|
||||
color:#999;
|
||||
}
|
||||
a:hover {
|
||||
color:#666;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="window">
|
||||
<div class="panel b-a">
|
||||
<div class="panel-heading no-border bg-info dk"><strong>信息提醒</strong></div>
|
||||
<div class="panel-body">
|
||||
<p class="h5" align="center">
|
||||
<strong><?php echo $message; ?></strong>
|
||||
</p>
|
||||
<?php if($html): ?>
|
||||
<div align="center"><?php echo $html; ?></div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
<a href="<?php echo URL::to('/'); ?>">返回首页</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,35 @@
|
||||
<script>
|
||||
(function($) {
|
||||
var table = '{{$header["master_table"]}}';
|
||||
var config = gdoo.grids[table];
|
||||
var search = config.search;
|
||||
search.advanced.el = $('#' + table + '-search-form-advanced').searchForm({
|
||||
data: search.forms,
|
||||
advanced: true,
|
||||
init: search.searchInit
|
||||
});
|
||||
|
||||
search.simple.el = $('#' + table + '-search-form').searchForm({
|
||||
data: search.forms,
|
||||
init: search.searchInit
|
||||
});
|
||||
search.simple.el.find('#search-submit').on('click', function() {
|
||||
var query = search.simple.el.serializeArray();
|
||||
var params = {};
|
||||
search.queryType = 'simple';
|
||||
$.map(query, function(row) {
|
||||
params[row.name] = row.value;
|
||||
});
|
||||
params['page'] = 1;
|
||||
config.grid.remoteData(params);
|
||||
return false;
|
||||
});
|
||||
|
||||
var panel = $('#' + table + '-controller');
|
||||
var action = config.action;
|
||||
panel.on('click', '[data-toggle="' + table + '"]', function() {
|
||||
var data = $(this).data();
|
||||
action[data.action]();
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
||||
@@ -0,0 +1,208 @@
|
||||
@if($header['tabs'])
|
||||
@if(count($header['tabs']['items']))
|
||||
<div class="panel-heading tabs-box">
|
||||
<ul class="nav nav-tabs">
|
||||
<?php
|
||||
$tabs = $header['tabs'];
|
||||
$params = $header['search_form']['params'];
|
||||
$tab_active = isset($params['tab']) ? $params['tab'] : $tabs['items'][0]['value'];
|
||||
?>
|
||||
@foreach($tabs['items'] as $tab)
|
||||
<?php
|
||||
$params['tab'] = $tab['value'];
|
||||
?>
|
||||
<li class="@if($tab_active == $tab['value']) active @endif">
|
||||
<a class="text-sm" href="{{url($tab['url'], $params)}}">{{$tab['name']}}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
<div class="wrapper-xs">
|
||||
<div class="pull-right">
|
||||
|
||||
@if($header['right_buttons'])
|
||||
@foreach($header['right_buttons'] as $button)
|
||||
@if($button['display'])
|
||||
<a @if($button['type'] == 'a') href="{{url($button['action'])}}" @else data-toggle="{{$header['master_table']}}" data-action="{{$button['action']}}" href="javascript:;" @endif class="btn btn-sm btn-{{$button['color']}}"><i class="fa {{$button['icon']}}"></i> {{$button['name']}}</a>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
<?php
|
||||
$params = $header['search_form']['params'];
|
||||
?>
|
||||
@if($header['trash_btn'])
|
||||
<?php $params['by'] = 'trash'; ?>
|
||||
<a href="{{url('', $params)}}" class="btn btn-sm btn-default @if($header['search_form']['query']['by'] == 'trash') active @endif"><i class="fa fa-trash"></i>回收站 ({{$header['trash_count']}})</a>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
|
||||
@if(isset($access['create']) && $header['create_btn'])
|
||||
<a href="javascript:;" data-toggle="{{$header['master_table']}}" data-action="create" class="btn btn-sm btn-success hinted" title="新建{{$header['name']}}"><i class="icon icon-plus"></i> 新建</a>
|
||||
@endif
|
||||
|
||||
{{:$button_count = 0}}
|
||||
@foreach($header['buttons'] as $button)
|
||||
@if($button['display'])
|
||||
{{:$button_count++}}
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
@if($button_count)
|
||||
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-info btn-sm" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-bars"></i> 操作 <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
@foreach($header['buttons'] as $button)
|
||||
@if($button['action'] == 'divider')
|
||||
<li class="divider"></li>
|
||||
@else
|
||||
@if($button['display'])
|
||||
<!-- 此处跳过查询子表的删除按钮 -->
|
||||
@if($header['exist_sub_table'] == 1 && $button['action'] == 'delete')
|
||||
<?php continue; ?>
|
||||
@endif
|
||||
<li><a data-toggle="{{$header['master_table']}}" data-action="{{$button['action']}}" href="javascript:;"><i class="fa {{$button['icon']}}"></i> {{$button['name']}}</a></li>
|
||||
@endif
|
||||
@endif
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<span class="visible-xs">
|
||||
<a href="javascript:;" data-toggle="{{$header['master_table']}}" data-action="filter" class="btn btn-sm btn-default"><i class="fa fa-search"></i> 搜索</a>
|
||||
</span>
|
||||
|
||||
<!-- 简单搜索表单 -->
|
||||
@if($header['simple_search_form'] == 1)
|
||||
<form id="{{$header['master_table']}}-search-form" class="search-inline-form form-inline hidden-xs" name="mysearch" action="{{url()}}" method="get">
|
||||
<div class="form-group search-group">
|
||||
<select name="field_0" id="search-field-0" class="form-control input-sm">
|
||||
<option data-type="empty" value="">筛选条件</option>
|
||||
@foreach($header['search_form']['columns'] as $column)
|
||||
<option data-type="{{$column['form_type']}}" data-title="{{$column['name']}}" value="{{$column['field']}}">{{$column['name']}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" style="display:none;">
|
||||
<select name="condition_0" id="search-condition-0" class="form-control input-sm"></select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="search-value-0"></div>
|
||||
|
||||
<div class="btn-group">
|
||||
<button id="search-submit" type="submit" class="btn btn-sm btn-default">
|
||||
<i class="fa fa-search"></i> 搜索</button>
|
||||
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="caret"></span>
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu text-xs" role="menu">
|
||||
<li>
|
||||
<a data-toggle="{{$header['master_table']}}" data-action="filter" href="javascript:;">
|
||||
<i class="fa fa-search"></i> 高级搜索</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--
|
||||
@if($header['search_form']['params'])
|
||||
@foreach($header['search_form']['params'] as $key => $param)
|
||||
<input name="{{$key}}" type="hidden" value="{{$param}}">
|
||||
@endforeach
|
||||
@endif
|
||||
-->
|
||||
</form>
|
||||
@else
|
||||
<a class="btn btn-sm btn-default" data-toggle="{{$header['master_table']}}" data-action="filter" href="javascript:;"><i class="fa fa-search"></i> 筛选</a>
|
||||
@endif
|
||||
|
||||
@if($header['bys'])
|
||||
<?php $by_name = '筛选'; ?>
|
||||
@foreach($header['bys']['items'] as $item)
|
||||
@if($header['search_form']['query'][$header['bys']['name']] == $item['value'])
|
||||
<?php $by_name = $item['name']; ?>
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
<div class="btn-group" role="group">
|
||||
<button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="fa fa-filter"></span> {{$by_name}}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<?php
|
||||
$params = $header['search_form']['params'];
|
||||
?>
|
||||
@foreach($header['bys']['items'] as $item)
|
||||
@if($item['value'] == 'divider')
|
||||
<li class="divider"></li>
|
||||
@else
|
||||
<?php $params[$header['bys']['name']] = $item['value']; ?>
|
||||
<li class="@if($header['search_form']['query'][$header['bys']['name']] == $item['value']) active @endif"><a href="{{url('', $params)}}">{{$item['name']}}</a></li>
|
||||
@endif
|
||||
@endforeach
|
||||
<!--
|
||||
<li>
|
||||
<a href="javascript:;">添加自定义筛选</a>
|
||||
</li>
|
||||
-->
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($header['left_buttons'])
|
||||
@foreach($header['left_buttons'] as $button)
|
||||
@if($button['display'])
|
||||
<a @if($button['type'] == 'a') @if($button['target']) target="{{$button['target']}}" @endif href="{{$button['url'] ? url($button['url']) : url($button['action'])}}" @else data-toggle="{{$header['master_table']}}" data-action="{{$button['action']}}" href="javascript:;" @endif class="btn btn-sm btn-{{$button['color']}}"><i class="fa {{$button['icon']}}"></i> {{$button['name']}}</a>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
<div style="display:none;">
|
||||
<form id="{{$header['master_table']}}-search-form-advanced" class="search-form" action="{{url()}}" method="get">
|
||||
<div class="wrapper-xs1 search-form-advanced">
|
||||
<div class="row">
|
||||
@foreach($header['search_form']['columns'] as $i => $column)
|
||||
<?php if($column['form_type'] == 'text2') { continue; } ?>
|
||||
<div class="wrapper-xs">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-3">{{$column['name']}}</label>
|
||||
<?php
|
||||
if (is_array($column['form_type'])) {
|
||||
$_type = $column['form_type'][0];
|
||||
} else {
|
||||
$_type = $column['form_type'];
|
||||
}
|
||||
?>
|
||||
<input type="hidden" name="field_{{$i}}" id="advanced-search-field-{{$i}}" data-title="{{$column['name']}}" data-type="{{$_type}}" value="{{$column['field']}}">
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<div class="form-group" style="display:none;">
|
||||
<select name="condition_{{$i}}" id="advanced-search-condition-{{$i}}" class="form-control input-sm"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-7">
|
||||
<div class="form-group" id="advanced-search-value-{{$i}}"></div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
@if($header['search_form']['params'])
|
||||
@foreach($header['search_form']['params'] as $key => $param)
|
||||
<input name="{{$key}}" type="hidden" value="{{$param}}">
|
||||
@endforeach
|
||||
@endif
|
||||
-->
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,40 @@
|
||||
<style>
|
||||
.modal-body .form-controller {
|
||||
padding: 0;
|
||||
}
|
||||
.modal-body input[type=file] {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<form class="form-horizontal form-controller" method="post" id="import_excel" name="import_excel">
|
||||
<div class="form-group">
|
||||
<div class="col-xs-2 control-label"><span class="red">*</span> 文件</div>
|
||||
<div class="col-xs-10 control-text">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control input-sm" id="file_text" disabled="disabled">
|
||||
<input type="file" name="file" class="file" id="import_file" />
|
||||
<span class="input-group-btn">
|
||||
<a class="btn btn-sm btn-default" id="file_upload"><i class="fa fa-folder-open"></i>选择文件</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
$(function($) {
|
||||
$('#import_file').off('change').on('change', function() {
|
||||
var filename = getFileName(this.value);
|
||||
var name = filename.substring(0, filename.indexOf('.'));
|
||||
$('#file_text').val(filename);
|
||||
});
|
||||
$('#file_upload').on('click', function() {
|
||||
$('#import_file').click();
|
||||
});
|
||||
});
|
||||
|
||||
function getFileName(path) {
|
||||
var paths = path.split("\\");
|
||||
return paths[paths.length-1];
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,35 @@
|
||||
@include('layouts/header')
|
||||
|
||||
<div class="content m-n @if($flow) {{$flow}}-content @endif">
|
||||
|
||||
@if(Session::has('message'))
|
||||
<div class="m-sm alert alert-success alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{Session::pull('message')}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if(Session::has('error'))
|
||||
<div class="m-sm alert alert-warning alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{Session::pull('error')}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($errors->any())
|
||||
<div class="m-sm alert alert-warning alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
@foreach($errors->all() as $message)
|
||||
<div>{{$message}}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="@if($model_view == 1) @else content-body @endif">
|
||||
{{$content}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,35 @@
|
||||
@include('layouts/header')
|
||||
|
||||
<div class="content m-n @if($flow) {{$flow}}-content @endif">
|
||||
|
||||
@if(Session::has('message'))
|
||||
<div class="m-sm alert alert-success alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{Session::pull('message')}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if(Session::has('error'))
|
||||
<div class="m-sm alert alert-warning alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{Session::pull('error')}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($errors->any())
|
||||
<div class="m-sm alert alert-warning alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
@foreach($errors->all() as $message)
|
||||
<div>{{$message}}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="content-body">
|
||||
{{$content}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,22 @@
|
||||
@if(Session::has('message'))
|
||||
<div class="alert alert-success alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{Session::pull('message')}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if(Session::has('error'))
|
||||
<div class="alert alert-warning alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{Session::pull('error')}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($errors->any())
|
||||
<div class="alert alert-warning alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
@foreach($errors->all() as $message)
|
||||
<div>{{$message}}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
@@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>{{$setting['title']}} - Powered By {{$setting['powered']}}</title>
|
||||
<script type="text/javascript" src="{{$public_url}}/common?v={{$resVersion}}"></script>
|
||||
<link href="{{$asset_url}}/vendor/ag-grid/ag-grid.min.css" rel="stylesheet" type="text/css" />
|
||||
<link href="{{$asset_url}}/dist/app.min.css?v={{$resVersion}}" rel="stylesheet" type="text/css" />
|
||||
<script src="{{$asset_url}}/dist/app.min.js?v={{$resVersion}}" type="text/javascript"></script>
|
||||
<script src="{{$asset_url}}/vendor/layer/layer.js" type="text/javascript"></script>
|
||||
<script src="{{$asset_url}}/vendor/datepicker/datepicker.js"></script>
|
||||
<script src="{{$asset_url}}/vendor/ag-grid/ag-grid.min.js"></script>
|
||||
<script src="{{$asset_url}}/dist/bundle.min.js"></script>
|
||||
<script>
|
||||
agGrid.LicenseManager.setLicenseKey('{{env("AGGRID_LICENSE")}}');
|
||||
{{env('DEMO_DATA')}}
|
||||
</script>
|
||||
</head>
|
||||
<body class="frame-{{auth()->user()->theme ?: 'lilac'}}">
|
||||
@@ -0,0 +1,22 @@
|
||||
<div class="wrapper">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="import_file_text" disabled>
|
||||
<input style="display:none;" type="file" id="import_file">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-default" onclick="importFile();" type="button"><i class="fa fa-cloud-upload"></i> 选择文件</button>
|
||||
</span>
|
||||
</div>
|
||||
<div class="m-t-xs">{{$tips}}</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function importFile() {
|
||||
$('#import_file').click();
|
||||
}
|
||||
|
||||
$('#import_file').on('change', function() {
|
||||
var filename = $(this).val();
|
||||
var pos = filename.lastIndexOf("\\");
|
||||
$('#import_file_text').val(filename.substring(pos + 1));
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,5 @@
|
||||
@if(Request::secure())
|
||||
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=ED108c9a8758e803ace189583f27d46e&s=1"></script>
|
||||
@else
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ED108c9a8758e803ace189583f27d46e"></script>
|
||||
@endif
|
||||
@@ -0,0 +1,35 @@
|
||||
@include('layouts/mobile/header')
|
||||
|
||||
<div class="content m-n">
|
||||
|
||||
@if(Session::has('message'))
|
||||
<div class="m-sm alert alert-success alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{Session::pull('message')}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if(Session::has('error'))
|
||||
<div class="m-sm alert alert-warning alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{Session::pull('error')}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($errors->has())
|
||||
<div class="m-sm alert alert-warning alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
@foreach($errors->all() as $message)
|
||||
<div>{{$message}}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="content-body">
|
||||
{{$content}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,22 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>{{$setting['title']}}</title>
|
||||
<script type="text/javascript" src="{{$public_url}}/common"></script>
|
||||
|
||||
<link href="{{$asset_url}}/css/app.min.css" rel="stylesheet" type="text/css" />
|
||||
<link href="{{$asset_url}}/css/reset.css" type="text/css" rel="stylesheet" />
|
||||
<link href="{{$asset_url}}/css/gdoo.css" type="text/css" rel="stylesheet" />
|
||||
|
||||
<script src="{{$asset_url}}/js/app.min.js" type="text/javascript"></script>
|
||||
<script src="{{$asset_url}}/js/dialog.js" type="text/javascript"></script>
|
||||
<script src="{{$asset_url}}/js/listview.js" type="text/javascript"></script>
|
||||
|
||||
<script src="{{$asset_url}}/js/support.js" type="text/javascript"></script>
|
||||
<script src="{{$asset_url}}/vendor/datepicker/datepicker.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
@@ -0,0 +1,276 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>{{$setting['title']}}</title>
|
||||
<link rel="stylesheet" href="{{$asset_url}}/dist/app.min.css" type="text/css" />
|
||||
<script src="{{$public_url}}/common"></script>
|
||||
<script src="{{$asset_url}}/dist/app.min.js"></script>
|
||||
<script src="{{$asset_url}}/vendor/datepicker/datepicker.js"></script>
|
||||
<style type="text/css">
|
||||
body {
|
||||
background: -webkit-linear-gradient(right, #198fb4, #0b6fab);
|
||||
background: -o-linear-gradient(right, #198fb4, #0b6fab);
|
||||
background: linear-gradient(to left, #198fb4, #0b6fab);
|
||||
background-color: #3586b7;
|
||||
}
|
||||
.table {
|
||||
border: 1px solid #58585C;
|
||||
color: #000;
|
||||
width: 100%;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.table .left { text-align:left; }
|
||||
.table .center { text-align:center; }
|
||||
.table .right { text-align:right; }
|
||||
|
||||
.table p { text-align:center; }
|
||||
.table img { border:0; }
|
||||
.table td {
|
||||
border: 1px solid #58585C;
|
||||
padding: 3px;
|
||||
color: #000;
|
||||
vertical-align: middle;
|
||||
font-weight: normal;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.table th {
|
||||
font-weight: normal;
|
||||
color: #000;
|
||||
border: 1px solid #58585C;
|
||||
padding: 3px;
|
||||
/*
|
||||
white-space: nowrap;
|
||||
*/
|
||||
}
|
||||
|
||||
.table>tbody>tr>td,
|
||||
.table>tbody>tr>th,
|
||||
.table>tfoot>tr>td,
|
||||
.table>tfoot>tr>th,
|
||||
.table>thead>tr>td,
|
||||
.table>thead>tr>th {
|
||||
border-top: 1px solid #58585C;
|
||||
}
|
||||
|
||||
.table>thead>tr>th {
|
||||
border-bottom: 1px solid #58585C;
|
||||
}
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
color: #333;
|
||||
padding-bottom: 10px;
|
||||
/*
|
||||
border-bottom: 1px solid #333;
|
||||
*/
|
||||
}
|
||||
|
||||
.main-container {
|
||||
margin:0 auto;
|
||||
font:14px '微软雅黑', '黑体', 'Lucida Grande', Verdana, sans-serif;
|
||||
background: #fff;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.main-container h3 {
|
||||
padding-top:12px;
|
||||
font-size:15px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.main-container p {
|
||||
text-align:left;
|
||||
padding-top:6px;
|
||||
}
|
||||
|
||||
.panel {
|
||||
width: 1000px;
|
||||
margin: 15px auto;
|
||||
border-radius: 0;
|
||||
border-color: #eee;
|
||||
}
|
||||
|
||||
.table.no-border,
|
||||
.table.no-border td,
|
||||
.table.no-border th {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@media screen {
|
||||
.main {
|
||||
width: 1000px;
|
||||
margin: 15px auto;
|
||||
padding: 50px 0;
|
||||
background-color: #fff;
|
||||
border: solid 1px #eee;
|
||||
-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);
|
||||
box-shadow: 0 1px 1px rgba(0,0,0,.05);
|
||||
}
|
||||
.main-container {
|
||||
width: 880px;
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
.panel {
|
||||
display: none;
|
||||
}
|
||||
.main {
|
||||
margin: 0 auto;
|
||||
border: 0;
|
||||
}
|
||||
.main-container {
|
||||
font:12px 'SimSun', 'Microsoft YaHei';
|
||||
}
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #333;
|
||||
}
|
||||
.b-t {
|
||||
border-top: 1px solid #333;
|
||||
}
|
||||
|
||||
.row {
|
||||
border: 1px solid #333;
|
||||
border-top: 0;
|
||||
padding: 5px;
|
||||
color: #333;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.row > div {
|
||||
padding: 3px 8px;
|
||||
}
|
||||
|
||||
.row:first-child {
|
||||
border-top: 1px solid #333;
|
||||
}
|
||||
|
||||
.row.no-border {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
|
||||
float: left;
|
||||
}
|
||||
.col-sm-12 {
|
||||
width: 100%;
|
||||
}
|
||||
.col-sm-11 {
|
||||
width: 91.66666667%;
|
||||
}
|
||||
.col-sm-10 {
|
||||
width: 83.33333333%;
|
||||
}
|
||||
.col-sm-9 {
|
||||
width: 75%;
|
||||
}
|
||||
.col-sm-8 {
|
||||
width: 66.66666667%;
|
||||
}
|
||||
.col-sm-7 {
|
||||
width: 58.33333333%;
|
||||
}
|
||||
.col-sm-6 {
|
||||
width: 50%;
|
||||
}
|
||||
.col-sm-5 {
|
||||
width: 41.66666667%;
|
||||
}
|
||||
.col-sm-4 {
|
||||
width: 33.33333333%;
|
||||
}
|
||||
.col-sm-3 {
|
||||
width: 25%;
|
||||
}
|
||||
.col-sm-2 {
|
||||
width: 16.66666667%;
|
||||
}
|
||||
.col-sm-1 {
|
||||
width: 8.33333333%;
|
||||
}
|
||||
}
|
||||
|
||||
.i-checks>i {
|
||||
border: 1px solid #333;
|
||||
}
|
||||
.i-checks input:checked+i {
|
||||
border-color: #333;
|
||||
}
|
||||
.i-checks input:checked+i:before {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin: 10mm;
|
||||
size: 210mm 297mm;
|
||||
}
|
||||
/*
|
||||
@page:right {
|
||||
@top-right { content: "手写单号#21212"; }
|
||||
@bottom-right {content: "手写单号#21212"; }
|
||||
}
|
||||
@page:left {
|
||||
@top-left { content: "手写单号#21212"; }
|
||||
@bottom-left { content: "手写单号#21212"; }
|
||||
}
|
||||
*/
|
||||
|
||||
.header {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
display:table-header-group;
|
||||
content: "手写单号#21212";
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
footer {
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
display:table-footer-group;
|
||||
content: "手写单号#21212";
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="pull-right">
|
||||
<a class="btn btn-default" href="javascript:window.print();"><i class="icon icon-print"></i> 打印</a>
|
||||
<a class="btn btn-default" href="javascript:window.close();"><i class="icon icon-remove"></i> 关闭</a>
|
||||
</div>
|
||||
<h4><i class="icon icon-note"></i> 打印预览</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main">
|
||||
|
||||
<div class="main-container">
|
||||
<div class="title">{{$setting['print_title']}}{{$form['template']['name']}}</div>
|
||||
<div>
|
||||
{{$content}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,226 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>{{$setting['print_title']}}{{$form['template']['name']}}</title>
|
||||
<link rel="stylesheet" href="{{$asset_url}}/dist/app.min.css" type="text/css" />
|
||||
<style type="text/css">
|
||||
.table {
|
||||
border: 1px solid #000;
|
||||
color: #000;
|
||||
width: 100%;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.table .left { text-align:left; }
|
||||
.table .center { text-align:center; }
|
||||
.table .right { text-align:right; }
|
||||
|
||||
.table p { text-align:center; }
|
||||
.table img { border:0; }
|
||||
.table td {
|
||||
border: 1px solid #000;
|
||||
padding: 1px 2px;
|
||||
color: #000;
|
||||
vertical-align: middle;
|
||||
font-weight: normal;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.table th {
|
||||
font-weight: normal;
|
||||
color: #000;
|
||||
border: 1px solid #000;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.table>tbody>tr>td,
|
||||
.table>tbody>tr>th,
|
||||
.table>tfoot>tr>td,
|
||||
.table>tfoot>tr>th,
|
||||
.table>thead>tr>td,
|
||||
.table>thead>tr>th {
|
||||
border-top: 1px solid #000;
|
||||
}
|
||||
|
||||
.table.table-grid>tbody>tr>td,
|
||||
.table.table-grid>tbody>tr>th,
|
||||
.table.table-grid>tfoot>tr>td,
|
||||
.table.table-grid>tfoot>tr>th,
|
||||
.table.table-grid>thead>tr>td,
|
||||
.table.table-grid>thead>tr>th {
|
||||
display:table-cell; vertical-align:middle;
|
||||
}
|
||||
|
||||
.table>thead>tr>th {
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.main-container h3 {
|
||||
padding-top:12px;
|
||||
font-size:15px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.main-container p {
|
||||
text-align:left;
|
||||
padding-top:6px;
|
||||
}
|
||||
|
||||
.table.no-border,
|
||||
.table.no-border td,
|
||||
.table.no-border th {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.panel {
|
||||
display: none;
|
||||
}
|
||||
.main {
|
||||
margin: 0 auto;
|
||||
border: 0;
|
||||
}
|
||||
.main-container {
|
||||
font:11pt 'SimSun', 'STXihei', sans-serif;
|
||||
}
|
||||
label {
|
||||
font:11pt 'SimSun', 'STXihei', sans-serif;
|
||||
}
|
||||
.i-checks-sm>i {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin-right: 6px;
|
||||
margin-left: -18px;
|
||||
}
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.b-t {
|
||||
border-top: 1px solid #000;
|
||||
}
|
||||
|
||||
.row {
|
||||
border: 1px solid #000;
|
||||
border-top: 0;
|
||||
padding: 5px;
|
||||
color: #000;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.row > div {
|
||||
padding: 2px 6px;
|
||||
}
|
||||
|
||||
.row:first-child {
|
||||
border-top: 1px solid #000;
|
||||
}
|
||||
|
||||
.row.no-border {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
|
||||
float: left;
|
||||
}
|
||||
.col-sm-12 {
|
||||
width: 100%;
|
||||
}
|
||||
.col-sm-11 {
|
||||
width: 91.66666667%;
|
||||
}
|
||||
.col-sm-10 {
|
||||
width: 83.33333333%;
|
||||
}
|
||||
.col-sm-9 {
|
||||
width: 75%;
|
||||
}
|
||||
.col-sm-8 {
|
||||
width: 66.66666667%;
|
||||
}
|
||||
.col-sm-7 {
|
||||
width: 58.33333333%;
|
||||
}
|
||||
.col-sm-6 {
|
||||
width: 50%;
|
||||
}
|
||||
.col-sm-5 {
|
||||
width: 41.66666667%;
|
||||
}
|
||||
.col-sm-4 {
|
||||
width: 33.33333333%;
|
||||
}
|
||||
.col-sm-3 {
|
||||
width: 25%;
|
||||
}
|
||||
.col-sm-2 {
|
||||
width: 16.66666667%;
|
||||
}
|
||||
.col-sm-1 {
|
||||
width: 8.33333333%;
|
||||
}
|
||||
}
|
||||
|
||||
.i-checks>i {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
.i-checks input:checked+i {
|
||||
border-color: #000;
|
||||
}
|
||||
.i-checks input:checked+i:before {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
@page {
|
||||
font:11pt 'SimSun', sans-serif;
|
||||
margin: 5mm 10mm 20mm 10mm;
|
||||
size: 210mm 297mm;
|
||||
prince-pdf-page-colorspace: auto;
|
||||
prince-pdf-page-label: auto;
|
||||
prince-rotate-body: 0deg;
|
||||
prince-shrink-to-fit: none;
|
||||
@bottom {
|
||||
content: "第" counter(page)"页,共"counter(pages)"页"
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
.main-container {
|
||||
font:11pt 'SimSun', 'STXihei', sans-serif;
|
||||
}
|
||||
label {
|
||||
font:11pt 'SimSun', 'STXihei', sans-serif;
|
||||
}
|
||||
}
|
||||
|
||||
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="main-container">
|
||||
<div class="title">{{$setting['print_title']}}{{$form['template']['name']}}</div>
|
||||
<div>
|
||||
{{$content}}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,278 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>{{$setting['title']}}</title>
|
||||
<link rel="stylesheet" href="{{$asset_url}}/dist/app.min.css" type="text/css" />
|
||||
<script src="{{$public_url}}/common"></script>
|
||||
<script src="{{$asset_url}}/dist/app.min.js"></script>
|
||||
<script src="{{$asset_url}}/vendor/datepicker/datepicker.js"></script>
|
||||
<style type="text/css">
|
||||
body {
|
||||
background: -webkit-linear-gradient(right, #198fb4, #0b6fab);
|
||||
background: -o-linear-gradient(right, #198fb4, #0b6fab);
|
||||
background: linear-gradient(to left, #198fb4, #0b6fab);
|
||||
background-color: #3586b7;
|
||||
}
|
||||
.table {
|
||||
border: 1px solid #58585C;
|
||||
color: #000;
|
||||
width: 100%;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.table .left { text-align:left; }
|
||||
.table .center { text-align:center; }
|
||||
.table .right { text-align:right; }
|
||||
|
||||
.table p { text-align:center; }
|
||||
.table img { border:0; }
|
||||
.table td {
|
||||
border: 1px solid #58585C;
|
||||
padding: 3px;
|
||||
color: #000;
|
||||
vertical-align: middle;
|
||||
font-weight: normal;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.table th {
|
||||
font-weight: normal;
|
||||
color: #000;
|
||||
border: 1px solid #58585C;
|
||||
padding: 3px;
|
||||
/*
|
||||
white-space: nowrap;
|
||||
*/
|
||||
}
|
||||
|
||||
.table>tbody>tr>td,
|
||||
.table>tbody>tr>th,
|
||||
.table>tfoot>tr>td,
|
||||
.table>tfoot>tr>th,
|
||||
.table>thead>tr>td,
|
||||
.table>thead>tr>th {
|
||||
border-top: 1px solid #58585C;
|
||||
}
|
||||
|
||||
.table>thead>tr>th {
|
||||
border-bottom: 1px solid #58585C;
|
||||
}
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
color: #333;
|
||||
padding-bottom: 10px;
|
||||
/*
|
||||
border-bottom: 1px solid #333;
|
||||
*/
|
||||
}
|
||||
|
||||
.main-container {
|
||||
margin:0 auto;
|
||||
font:14px '微软雅黑', '黑体', 'Lucida Grande', Verdana, sans-serif;
|
||||
background: #fff;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.main-container h3 {
|
||||
padding-top:12px;
|
||||
font-size:15px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.main-container p {
|
||||
text-align:left;
|
||||
padding-top:6px;
|
||||
}
|
||||
|
||||
.panel {
|
||||
width: 1000px;
|
||||
margin: 15px auto;
|
||||
border-radius: 0;
|
||||
border-color: #eee;
|
||||
}
|
||||
|
||||
.table.no-border,
|
||||
.table.no-border td,
|
||||
.table.no-border th {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@media screen {
|
||||
.main {
|
||||
width: 1000px;
|
||||
margin: 15px auto;
|
||||
padding: 50px 0;
|
||||
background-color: #fff;
|
||||
border: solid 1px #eee;
|
||||
-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);
|
||||
box-shadow: 0 1px 1px rgba(0,0,0,.05);
|
||||
}
|
||||
.main-container {
|
||||
width: 880px;
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
.panel {
|
||||
display: none;
|
||||
}
|
||||
.main {
|
||||
margin: 0 auto;
|
||||
border: 0;
|
||||
}
|
||||
.main-container {
|
||||
font:12px 'SimSun', 'Microsoft YaHei';
|
||||
}
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #333;
|
||||
}
|
||||
.b-t {
|
||||
border-top: 1px solid #333;
|
||||
}
|
||||
|
||||
.row {
|
||||
border: 1px solid #333;
|
||||
border-top: 0;
|
||||
padding: 5px;
|
||||
color: #333;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.row > div {
|
||||
padding: 3px 8px;
|
||||
}
|
||||
|
||||
.row:first-child {
|
||||
border-top: 1px solid #333;
|
||||
}
|
||||
|
||||
.row.no-border {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
|
||||
float: left;
|
||||
}
|
||||
.col-sm-12 {
|
||||
width: 100%;
|
||||
}
|
||||
.col-sm-11 {
|
||||
width: 91.66666667%;
|
||||
}
|
||||
.col-sm-10 {
|
||||
width: 83.33333333%;
|
||||
}
|
||||
.col-sm-9 {
|
||||
width: 75%;
|
||||
}
|
||||
.col-sm-8 {
|
||||
width: 66.66666667%;
|
||||
}
|
||||
.col-sm-7 {
|
||||
width: 58.33333333%;
|
||||
}
|
||||
.col-sm-6 {
|
||||
width: 50%;
|
||||
}
|
||||
.col-sm-5 {
|
||||
width: 41.66666667%;
|
||||
}
|
||||
.col-sm-4 {
|
||||
width: 33.33333333%;
|
||||
}
|
||||
.col-sm-3 {
|
||||
width: 25%;
|
||||
}
|
||||
.col-sm-2 {
|
||||
width: 16.66666667%;
|
||||
}
|
||||
.col-sm-1 {
|
||||
width: 8.33333333%;
|
||||
}
|
||||
}
|
||||
|
||||
.i-checks>i {
|
||||
border: 1px solid #333;
|
||||
}
|
||||
.i-checks input:checked+i {
|
||||
border-color: #333;
|
||||
}
|
||||
.i-checks input:checked+i:before {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin: 10mm;
|
||||
size: 210mm 297mm;
|
||||
}
|
||||
|
||||
#lodop-container {
|
||||
width: 1000px;
|
||||
margin: auto;
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function print280() {
|
||||
alert('没有此尺寸');
|
||||
}
|
||||
function print140() {
|
||||
alert('没有此尺寸');
|
||||
}
|
||||
function print93() {
|
||||
alert('没有此尺寸');
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="pull-right">
|
||||
<a class="btn btn-default" href="javascript:print280();"><i class="icon icon-print"></i> 打印(27cm)</a>
|
||||
<a class="btn btn-default" href="javascript:print140();"><i class="icon icon-print"></i> 打印(14cm)</a>
|
||||
<a class="btn btn-default" href="javascript:print93();"><i class="icon icon-print"></i> 打印(9.3cm)</a>
|
||||
<a class="btn btn-default" href="javascript:window.close();"><i class="icon icon-remove"></i> 关闭</a>
|
||||
</div>
|
||||
<h4><i class="icon icon-note"></i> 打印预览</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="lodop-container">
|
||||
<div class="alert alert-warning alert-dismissable m-b-sm">
|
||||
<button type="button" class="close" data-dismiss="alert"
|
||||
aria-hidden="true">
|
||||
×
|
||||
</button>
|
||||
<div id="lodop_msg"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main">
|
||||
|
||||
<div class="main-container">
|
||||
<div>
|
||||
{{$content}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,226 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>{{$setting['print_title']}}{{$form['template']['name']}}</title>
|
||||
<link rel="stylesheet" href="{{$asset_url}}/dist/app.min.css" type="text/css" />
|
||||
<style type="text/css">
|
||||
.table {
|
||||
border: 1px solid #000;
|
||||
color: #000;
|
||||
width: 100%;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.table .left { text-align:left; }
|
||||
.table .center { text-align:center; }
|
||||
.table .right { text-align:right; }
|
||||
|
||||
.table p { text-align:center; }
|
||||
.table img { border:0; }
|
||||
.table td {
|
||||
border: 1px solid #000;
|
||||
padding: 1px 2px;
|
||||
color: #000;
|
||||
vertical-align: middle;
|
||||
font-weight: normal;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.table th {
|
||||
font-weight: normal;
|
||||
color: #000;
|
||||
border: 1px solid #000;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.table>tbody>tr>td,
|
||||
.table>tbody>tr>th,
|
||||
.table>tfoot>tr>td,
|
||||
.table>tfoot>tr>th,
|
||||
.table>thead>tr>td,
|
||||
.table>thead>tr>th {
|
||||
border-top: 1px solid #000;
|
||||
}
|
||||
|
||||
.table.table-grid>tbody>tr>td,
|
||||
.table.table-grid>tbody>tr>th,
|
||||
.table.table-grid>tfoot>tr>td,
|
||||
.table.table-grid>tfoot>tr>th,
|
||||
.table.table-grid>thead>tr>td,
|
||||
.table.table-grid>thead>tr>th {
|
||||
display:table-cell; vertical-align:middle;
|
||||
}
|
||||
|
||||
.table>thead>tr>th {
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.main-container h3 {
|
||||
padding-top:12px;
|
||||
font-size:15px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.main-container p {
|
||||
text-align:left;
|
||||
padding-top:6px;
|
||||
}
|
||||
|
||||
.table.no-border,
|
||||
.table.no-border td,
|
||||
.table.no-border th {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.panel {
|
||||
display: none;
|
||||
}
|
||||
.main {
|
||||
margin: 0 auto;
|
||||
border: 0;
|
||||
}
|
||||
.main-container {
|
||||
font:11pt 'SimSun', 'STXihei', sans-serif;
|
||||
}
|
||||
label {
|
||||
font:11pt 'SimSun', 'STXihei', sans-serif;
|
||||
}
|
||||
.i-checks-sm>i {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin-right: 6px;
|
||||
margin-left: -18px;
|
||||
}
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.b-t {
|
||||
border-top: 1px solid #000;
|
||||
}
|
||||
|
||||
.row {
|
||||
border: 1px solid #000;
|
||||
border-top: 0;
|
||||
padding: 5px;
|
||||
color: #000;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.row > div {
|
||||
padding: 2px 6px;
|
||||
}
|
||||
|
||||
.row:first-child {
|
||||
border-top: 1px solid #000;
|
||||
}
|
||||
|
||||
.row.no-border {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
|
||||
float: left;
|
||||
}
|
||||
.col-sm-12 {
|
||||
width: 100%;
|
||||
}
|
||||
.col-sm-11 {
|
||||
width: 91.66666667%;
|
||||
}
|
||||
.col-sm-10 {
|
||||
width: 83.33333333%;
|
||||
}
|
||||
.col-sm-9 {
|
||||
width: 75%;
|
||||
}
|
||||
.col-sm-8 {
|
||||
width: 66.66666667%;
|
||||
}
|
||||
.col-sm-7 {
|
||||
width: 58.33333333%;
|
||||
}
|
||||
.col-sm-6 {
|
||||
width: 50%;
|
||||
}
|
||||
.col-sm-5 {
|
||||
width: 41.66666667%;
|
||||
}
|
||||
.col-sm-4 {
|
||||
width: 33.33333333%;
|
||||
}
|
||||
.col-sm-3 {
|
||||
width: 25%;
|
||||
}
|
||||
.col-sm-2 {
|
||||
width: 16.66666667%;
|
||||
}
|
||||
.col-sm-1 {
|
||||
width: 8.33333333%;
|
||||
}
|
||||
}
|
||||
|
||||
.i-checks>i {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
.i-checks input:checked+i {
|
||||
border-color: #000;
|
||||
}
|
||||
.i-checks input:checked+i:before {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
@page {
|
||||
font:11pt 'SimSun', sans-serif;
|
||||
margin: 5mm 10mm 20mm 10mm;
|
||||
size: 210mm 297mm;
|
||||
prince-pdf-page-colorspace: auto;
|
||||
prince-pdf-page-label: auto;
|
||||
prince-rotate-body: 0deg;
|
||||
prince-shrink-to-fit: none;
|
||||
@bottom {
|
||||
content: "第" counter(page)"页,共"counter(pages)"页"
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
.main-container {
|
||||
font:11pt 'SimSun', 'STXihei', sans-serif;
|
||||
}
|
||||
label {
|
||||
font:11pt 'SimSun', 'STXihei', sans-serif;
|
||||
}
|
||||
}
|
||||
|
||||
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="main-container">
|
||||
<div class="title">{{$setting['print_title']}}{{$form['template']['name']}}</div>
|
||||
<div>
|
||||
{{$content}}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,283 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>{{$setting['title']}}</title>
|
||||
<link rel="stylesheet" href="{{$asset_url}}/dist/app.min.css" type="text/css" />
|
||||
<script src="{{$public_url}}/common"></script>
|
||||
<script src="{{$asset_url}}/dist/app.min.js"></script>
|
||||
<script src="{{$asset_url}}/vendor/datepicker/datepicker.js"></script>
|
||||
<style type="text/css">
|
||||
body {
|
||||
background: -webkit-linear-gradient(right, #198fb4, #0b6fab);
|
||||
background: -o-linear-gradient(right, #198fb4, #0b6fab);
|
||||
background: linear-gradient(to left, #198fb4, #0b6fab);
|
||||
background-color: #3586b7;
|
||||
}
|
||||
.table {
|
||||
border: 1px solid #58585C;
|
||||
color: #000;
|
||||
width: 100%;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.table .left { text-align:left; }
|
||||
.table .center { text-align:center; }
|
||||
.table .right { text-align:right; }
|
||||
|
||||
.table p { text-align:center; }
|
||||
.table img { border:0; }
|
||||
.table td {
|
||||
border: 1px solid #58585C;
|
||||
padding: 3px;
|
||||
color: #000;
|
||||
vertical-align: middle;
|
||||
font-weight: normal;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.table th {
|
||||
font-weight: normal;
|
||||
color: #000;
|
||||
border: 1px solid #58585C;
|
||||
padding: 3px;
|
||||
/*
|
||||
white-space: nowrap;
|
||||
*/
|
||||
}
|
||||
|
||||
.table>tbody>tr>td,
|
||||
.table>tbody>tr>th,
|
||||
.table>tfoot>tr>td,
|
||||
.table>tfoot>tr>th,
|
||||
.table>thead>tr>td,
|
||||
.table>thead>tr>th {
|
||||
border-top: 1px solid #58585C;
|
||||
}
|
||||
|
||||
.table>thead>tr>th {
|
||||
border-bottom: 1px solid #58585C;
|
||||
}
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
color: #333;
|
||||
padding-bottom: 10px;
|
||||
/*
|
||||
border-bottom: 1px solid #333;
|
||||
*/
|
||||
}
|
||||
|
||||
.main-container {
|
||||
margin:0 auto;
|
||||
font:14px '微软雅黑', '黑体', 'Lucida Grande', Verdana, sans-serif;
|
||||
background: #fff;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.main-container h3 {
|
||||
padding-top:12px;
|
||||
font-size:15px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.main-container p {
|
||||
text-align:left;
|
||||
padding-top:6px;
|
||||
}
|
||||
|
||||
.panel {
|
||||
width: 1000px;
|
||||
margin: 15px auto;
|
||||
border-radius: 0;
|
||||
border-color: #eee;
|
||||
}
|
||||
|
||||
.table.no-border,
|
||||
.table.no-border td,
|
||||
.table.no-border th {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@media screen {
|
||||
.main {
|
||||
width: 1000px;
|
||||
margin: 15px auto;
|
||||
padding: 50px 0;
|
||||
background-color: #fff;
|
||||
border: solid 1px #eee;
|
||||
-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);
|
||||
box-shadow: 0 1px 1px rgba(0,0,0,.05);
|
||||
}
|
||||
.main-container {
|
||||
width: 880px;
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
.panel {
|
||||
display: none;
|
||||
}
|
||||
.main {
|
||||
margin: 0 auto;
|
||||
border: 0;
|
||||
}
|
||||
.main-container {
|
||||
font:12px 'SimSun', 'Microsoft YaHei';
|
||||
}
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #333;
|
||||
}
|
||||
.b-t {
|
||||
border-top: 1px solid #333;
|
||||
}
|
||||
|
||||
.row {
|
||||
border: 1px solid #333;
|
||||
border-top: 0;
|
||||
padding: 5px;
|
||||
color: #333;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.row > div {
|
||||
padding: 3px 8px;
|
||||
}
|
||||
|
||||
.row:first-child {
|
||||
border-top: 1px solid #333;
|
||||
}
|
||||
|
||||
.row.no-border {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
|
||||
float: left;
|
||||
}
|
||||
.col-sm-12 {
|
||||
width: 100%;
|
||||
}
|
||||
.col-sm-11 {
|
||||
width: 91.66666667%;
|
||||
}
|
||||
.col-sm-10 {
|
||||
width: 83.33333333%;
|
||||
}
|
||||
.col-sm-9 {
|
||||
width: 75%;
|
||||
}
|
||||
.col-sm-8 {
|
||||
width: 66.66666667%;
|
||||
}
|
||||
.col-sm-7 {
|
||||
width: 58.33333333%;
|
||||
}
|
||||
.col-sm-6 {
|
||||
width: 50%;
|
||||
}
|
||||
.col-sm-5 {
|
||||
width: 41.66666667%;
|
||||
}
|
||||
.col-sm-4 {
|
||||
width: 33.33333333%;
|
||||
}
|
||||
.col-sm-3 {
|
||||
width: 25%;
|
||||
}
|
||||
.col-sm-2 {
|
||||
width: 16.66666667%;
|
||||
}
|
||||
.col-sm-1 {
|
||||
width: 8.33333333%;
|
||||
}
|
||||
}
|
||||
|
||||
.i-checks>i {
|
||||
border: 1px solid #333;
|
||||
}
|
||||
.i-checks input:checked+i {
|
||||
border-color: #333;
|
||||
}
|
||||
.i-checks input:checked+i:before {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin: 10mm;
|
||||
size: 210mm 297mm;
|
||||
}
|
||||
|
||||
#lodop-container {
|
||||
width: 1000px;
|
||||
margin: auto;
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function print280() {
|
||||
alert('没有此尺寸');
|
||||
}
|
||||
function print140() {
|
||||
alert('没有此尺寸');
|
||||
}
|
||||
function print93() {
|
||||
alert('没有此尺寸');
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="pull-right">
|
||||
@if($form['print_type'] == 'stiReport')
|
||||
<a class="btn btn-default" href="javascript:window.print();"><i class="icon icon-print"></i> HTML打印</a>
|
||||
<a class="btn btn-default" href="javascript:print();"><i class="icon icon-print"></i> 打印</a>
|
||||
<a target="_blank" class="btn btn-default" href="{{url('stiReport/stiReport/designer',['bill_code' => $form['bill_code'], 'template_id' => $form['template']['id'],'id' => $form['row']['id']])}}">模板设计</a>
|
||||
@else
|
||||
<a class="btn btn-default" href="javascript:window.print();"><i class="icon icon-print"></i> 打印</a>
|
||||
@endif
|
||||
<a class="btn btn-default" href="javascript:window.close();"><i class="icon icon-remove"></i> 关闭</a>
|
||||
</div>
|
||||
<h4><i class="icon icon-note"></i> 打印预览</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="lodop-container">
|
||||
<div class="alert alert-warning alert-dismissable m-b-sm">
|
||||
<button type="button" class="close" data-dismiss="alert"
|
||||
aria-hidden="true">
|
||||
×
|
||||
</button>
|
||||
<div id="lodop_msg"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main">
|
||||
|
||||
<div class="main-container">
|
||||
<div class="title">{{$setting['print_title']}}{{$form['template']['name']}}</div>
|
||||
<div>
|
||||
{{$content}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,205 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>{{$setting['title']}}</title>
|
||||
<link rel="stylesheet" href="{{$asset_url}}/dist/app.min.css" type="text/css" />
|
||||
<script src="{{$public_url}}/common"></script>
|
||||
<script src="{{$asset_url}}/dist/app.min.js"></script>
|
||||
<script src="{{$asset_url}}/vendor/datepicker/datepicker.js"></script>
|
||||
<style type="text/css">
|
||||
body {
|
||||
background: -webkit-linear-gradient(right, #198fb4, #0b6fab);
|
||||
background: -o-linear-gradient(right, #198fb4, #0b6fab);
|
||||
background: linear-gradient(to left, #198fb4, #0b6fab);
|
||||
background-color: #3586b7;
|
||||
}
|
||||
.title {
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #333;
|
||||
padding-top: 5px;
|
||||
}
|
||||
.title .icon {
|
||||
top: 3px;
|
||||
}
|
||||
.panel {
|
||||
margin: 0 auto 10px auto;
|
||||
border-radius: 0;
|
||||
border-color: #eee;
|
||||
}
|
||||
.panel-body {
|
||||
margin: 0 auto;
|
||||
padding: 5px;
|
||||
width: 1000px;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.panel {
|
||||
display: none;
|
||||
}
|
||||
.main {
|
||||
margin: 0 auto;
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
|
||||
#lodop-container {
|
||||
width: 1000px;
|
||||
margin: auto;
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style>
|
||||
.viewer table:first-of-type > tbody tr:first-child { display:none; }
|
||||
.viewer table tbody tr:last-child { display:none; }
|
||||
</style>
|
||||
|
||||
<style media="screen">
|
||||
.main { text-align: center; margin-bottom: 5px; }
|
||||
.viewer { background-color: #fff; display:inline-block; padding: 20px; }
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="onLoad();">
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="pull-right">
|
||||
<a class="btn btn-default" href="javascript:window.print();"><i class="fa fa-print"></i> HTML打印</a>
|
||||
<a class="btn btn-default" href="javascript:startPrint();"><i class="fa fa-print"></i> 打印</a>
|
||||
@if(auth()->user()->role_id == 1)
|
||||
<a target="_blank" class="btn btn-default" href="{{url('stiReport/stiReport/designer',['template_id' => $template['id']])}}"><i class="fa fa-pencil-square"></i> 设计 </a>
|
||||
<a class="btn btn-default" download="{{$template['code']}}.mrt" href="{{$public_url}}/reports/{{$template['code']}}.mrt"><i class="fa fa-file-code-o"></i> 下载模板 </a>
|
||||
@endif
|
||||
<a class="btn btn-default" href="javascript:window.close();"><i class="fa fa-remove"></i> 关闭</a>
|
||||
</div>
|
||||
<div class="title"><i class="icon icon-note"></i> 打印预览 <span id="print_msg"></span></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="lodop-container">
|
||||
<div class="alert alert-warning alert-dismissable m-b-sm">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<div id="lodop_msg"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main">
|
||||
<div id="report_data" class="viewer"></div>
|
||||
</div>
|
||||
|
||||
<script src="{{$asset_url}}/js/gdoo.websocket.js" type="text/javascript"></script>
|
||||
<script src="{{$asset_url}}/vendor/stimulsoft/scripts/stimulsoft.reports.js" type="text/javascript"></script>
|
||||
|
||||
<?php
|
||||
$report_name = $template['code'];
|
||||
$report_path = public_path()."/reports/".$report_name.".mrt";
|
||||
$report_template = '';
|
||||
if (is_file($report_path)) {
|
||||
$report_template = base64_encode(file_get_contents($report_path));
|
||||
}
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
var reportName = "{{$report_name}}";
|
||||
var reportTemplate = "{{$report_template}}";
|
||||
var printData = {{json_encode($print_data, JSON_UNESCAPED_UNICODE)}};
|
||||
printData.setting = [{
|
||||
action: "preview",
|
||||
topmargin: 0,
|
||||
leftmargin: 0,
|
||||
drive: '',
|
||||
taskid: '{{$report_name}}',
|
||||
template: reportTemplate,
|
||||
type: "base64"
|
||||
}];
|
||||
// 打印数据保存到本地
|
||||
localStorage.setItem(reportName, JSON.stringify(printData));
|
||||
|
||||
function onLoad() {
|
||||
var report = new Stimulsoft.Report.StiReport();
|
||||
// 加载模板文件
|
||||
if (reportTemplate) {
|
||||
report.loadFile("{{$public_url}}/reports/{{$template['code']}}.mrt?s=" + (new Date()).valueOf());
|
||||
}
|
||||
|
||||
// 加载数据
|
||||
var dataSet = new Stimulsoft.System.Data.DataSet("data");
|
||||
dataSet.readJson(printData);
|
||||
|
||||
report.dictionary.clear();
|
||||
report.regData("data", "data", dataSet);
|
||||
report.dictionary.synchronize();
|
||||
|
||||
report.renderAsync(function() {
|
||||
var htmlData = report.exportDocument(Stimulsoft.Report.StiExportFormat.Html);
|
||||
document.getElementById('report_data').innerHTML = htmlData;
|
||||
});
|
||||
}
|
||||
|
||||
var GdooPrint = null;
|
||||
// 打印机列表
|
||||
var prints = [];
|
||||
try {
|
||||
var options = {
|
||||
url: 'ws://127.0.0.1:6690',
|
||||
pingTimeout: 15000,
|
||||
pongTimeout: 10000,
|
||||
reconnectTimeout: 10000,
|
||||
pingMsg: "ping"
|
||||
}
|
||||
GdooPrint = new GdooWebSocket(options);
|
||||
GdooPrint.onopen = function(e) {
|
||||
}
|
||||
GdooPrint.onclose = function (e) {
|
||||
}
|
||||
GdooPrint.onerror = function (e) {
|
||||
}
|
||||
GdooPrint.onmessage = function (e) {
|
||||
var res = JSON.parse(e.data);
|
||||
if (res.type == 'ping') {
|
||||
} else if (res.type == 'printers') {
|
||||
prints = res.data;
|
||||
} else {
|
||||
labelSuccess(res.data);
|
||||
}
|
||||
}
|
||||
GdooPrint.onreconnectCountDown = function(count) {
|
||||
if (count > 0) {
|
||||
labelError('打印服务离线' + count + '秒后重新连接');
|
||||
} else {
|
||||
labelInfo('打印服务重新连接中...');
|
||||
}
|
||||
}
|
||||
GdooPrint.onreconnect = function (e) {
|
||||
}
|
||||
GdooPrint.onsend = function (e) {
|
||||
if(e == 'ping') return false;
|
||||
}
|
||||
} catch (e) {
|
||||
labelError(e.message);
|
||||
}
|
||||
|
||||
function startPrint() {
|
||||
try {
|
||||
GdooPrint.send(JSON.stringify(printData));
|
||||
} catch (e) {
|
||||
$.toastr('error', e.message);
|
||||
}
|
||||
}
|
||||
|
||||
function labelInfo(text) {
|
||||
$('#print_msg').html('<span class="label label-info">' + text + '</span>');
|
||||
}
|
||||
function labelError(text) {
|
||||
$('#print_msg').html('<span class="label label-danger">' + text + '</span>');
|
||||
}
|
||||
function labelSuccess(text) {
|
||||
$('#print_msg').html('<span class="label label-success">' + text + '</span>');
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>{{$setting['title']}}</title>
|
||||
|
||||
<link href="{{$asset_url}}/css/wechat/console.css" rel="stylesheet" type="text/css" />
|
||||
<link href="{{$asset_url}}/dist/app.min.css" rel="stylesheet" type="text/css" />
|
||||
<link href="{{$asset_url}}/vendor/layui/css/layui.css" rel="stylesheet" type="text/css" />
|
||||
<script src="{{$public_url}}/index/api/common" type="text/javascript"></script>
|
||||
<script src="{{$asset_url}}/vendor/layui/layui.js" type="text/javascript"></script>
|
||||
<script src="{{$asset_url}}/dist/app.min.js" type="text/javascript"></script>
|
||||
<link href="{{$asset_url}}/css/wechat/icon/icon.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="content-body">
|
||||
{{$content}}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<div class="wrapper-sm">
|
||||
<form class="form-horizontal" name="myabort" id="myabort" method="post">
|
||||
<textarea class="form-control" placeholder="弃审原因" id="remark" name="remark"></textarea>
|
||||
<input type="hidden" name="bill_id" id="bill_id" value="{{$bill_id}}">
|
||||
<input type="hidden" name="data_id" id="data_id" value="{{$data_id}}">
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,133 @@
|
||||
<form class="form-horizontal" name="myturn" id="myturn" method="post">
|
||||
|
||||
<table class="table table-form">
|
||||
<tr>
|
||||
<td align="right">办理类型</td>
|
||||
<td align="left">
|
||||
<label class="i-checks i-checks-sm"><input type="radio" class="step_next_type" name="step_next_type" value="next"><i></i>审批</label>
|
||||
<!-- $run_step->back == 1 -->
|
||||
@if($run_step->type != 'start')
|
||||
|
||||
|
||||
<label class="i-checks i-checks-sm"><input type="radio" class="step_next_type" name="step_next_type" value="back"><i></i>退回</label>
|
||||
@endif
|
||||
<!--
|
||||
|
||||
|
||||
<label class="i-checks i-checks-sm"><input type="radio" class="step_next_type" name="step_next_type" value="reject"><i></i>拒绝</label>
|
||||
-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right" width="20%">审核进程</td>
|
||||
<td align="left" width="80%">
|
||||
<div id="step_next"></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right">审核人</td>
|
||||
<td align="left">
|
||||
<div id="step_next_user"></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right">抄送人</td>
|
||||
<td align="left">
|
||||
<div id="step_inform_user"></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right">审批意见</td>
|
||||
<td align="left">
|
||||
<textarea class="form-control" rows="3" id="step_remark" name="remark"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right">提醒类型</td>
|
||||
<td align="left">
|
||||
<label class="i-checks i-checks-sm"><input type="checkbox" name="step_inform_sms" id="step_inform_sms" value="1"><i></i>短信</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right">提醒内容</td>
|
||||
<td align="left">
|
||||
<input type="text" class="form-control input-sm" name="step_inform_text" id="step_inform_text" value="" readonly="readonly">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function($) {
|
||||
var $me = $('#myturn');
|
||||
var informs = {};
|
||||
var inform_sms = {};
|
||||
var users = {};
|
||||
var remarks = {};
|
||||
$me.on('click', '.step_next_type', function() {
|
||||
|
||||
$('#step_next', $me).empty();
|
||||
$('#step_next_user', $me).empty();
|
||||
$('#step_inform_user', $me).empty();
|
||||
|
||||
if (this.value == 'reject') {
|
||||
$('#step_next', $me).html('无');
|
||||
} else {
|
||||
var table = '{{$table}}';
|
||||
var query = $('#{{$table}}, #myturn').serialize();
|
||||
// 获取子表数据
|
||||
var gets = gridListData(table);
|
||||
if (gets === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.post('{{url("flowStep")}}', query + '&' + $.param(gets), function(res) {
|
||||
if (res.status) {
|
||||
var data = res.data;
|
||||
informs = data.informs;
|
||||
inform_sms = data.inform_sms;
|
||||
users = data.users;
|
||||
// 审核节点
|
||||
$('#step_next', $me).html(data.tpl);
|
||||
// 通知内容
|
||||
$('#step_inform_text', $me).val(data.inform_text);
|
||||
// 审核内容
|
||||
$('#step_remark', $me).val(data.remark);
|
||||
|
||||
// 获取已选中的进程值
|
||||
var step_id = $(".step_next_id", $me).val();
|
||||
step_next_id(step_id);
|
||||
|
||||
} else {
|
||||
toastrError(res.data);
|
||||
}
|
||||
}, 'json');
|
||||
}
|
||||
});
|
||||
|
||||
function step_next_id(step_id) {
|
||||
if (step_id > 0) {
|
||||
// 审核人
|
||||
$('#step_next_user', $me).html(users[step_id]);
|
||||
// 知会人
|
||||
$('#step_inform_user', $me).html(informs[step_id]);
|
||||
// 短信提醒
|
||||
$('#step_inform_sms', $me).prop('checked', inform_sms[step_id]);
|
||||
}
|
||||
}
|
||||
|
||||
$me.on('click', '.step_next_id', function() {
|
||||
var me = $(this);
|
||||
var step_id = me.val();
|
||||
step_next_id(step_id);
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
</script>
|
||||
@@ -0,0 +1,70 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table m-b-none">
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center" nowrap="nowrap">序号</th>
|
||||
<th align="left" nowrap="nowrap">步骤</th>
|
||||
<th align="center" nowrap="nowrap">类型</th>
|
||||
<th align="center" nowrap="nowrap">收到时间</th>
|
||||
<th align="center" nowrap="nowrap">办理人</th>
|
||||
<th align="center" nowrap="nowrap">办理时间</th>
|
||||
<th align="center" nowrap="nowrap">办理效率</th>
|
||||
<th align="center" nowrap="nowrap">办理意见</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@foreach($rows as $i => $row)
|
||||
<tr>
|
||||
<td align="center" nowrap="nowrap">
|
||||
{{$i + 1}}
|
||||
</td>
|
||||
<td align="left" nowrap="nowrap">
|
||||
<a class="option hinted" title="收到人: {{$row['user_name']}}">{{$row['run_name']}}</a>
|
||||
</td>
|
||||
<td align="center" nowrap="nowrap">
|
||||
@if($row['updated_id'] == 0)
|
||||
@if($row['option'] == 0)
|
||||
<span class="label label-info">未阅</span>
|
||||
@else
|
||||
<span class="label label-danger">待审</span>
|
||||
@endif
|
||||
@elseif($row['run_status'] == 'back')
|
||||
<span class="label label-warning">退回</span>
|
||||
@elseif($row['run_status'] == 'recall')
|
||||
<span class="label label-warning">撤回</span>
|
||||
@elseif($row['run_status'] == 'abort')
|
||||
<span class="label label-warning">弃审</span>
|
||||
@else
|
||||
@if($row['option'] == 0)
|
||||
<span class="label label-info">已阅</span>
|
||||
@else
|
||||
<span class="label label-success">已审</span>
|
||||
@endif
|
||||
@endif
|
||||
</td>
|
||||
<td align="center" nowrap="nowrap">
|
||||
@datetime($row['created_at'])
|
||||
</td>
|
||||
<td align="center" nowrap="nowrap">
|
||||
{{get_user($row['updated_id'],'name')}}
|
||||
</td>
|
||||
<td align="center" nowrap="nowrap">
|
||||
@datetime($row['updated_at'])
|
||||
</td>
|
||||
<td align="center" nowrap="nowrap">
|
||||
<?php
|
||||
$start = $row['created_at'];
|
||||
$end = $row['updated_at'];
|
||||
$s = Carbon\Carbon::createFromTimeStamp($start);
|
||||
$e = Carbon\Carbon::createFromTimeStamp($end);
|
||||
if ($row['updated_id']) {
|
||||
echo $s->diffInHours($e).'小时';
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td align="left" width="30%">
|
||||
{{$row['remark']}}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
@@ -0,0 +1,19 @@
|
||||
<form class="form-horizontal" name="myreturn" id="myreturn" method="post">
|
||||
<table class="table table-form m-b-none">
|
||||
<tr>
|
||||
<td align="right" width="20%">回退进程</td>
|
||||
<td align="left" width="80%">
|
||||
<input type="text" readonly="readonly" class="form-control input-sm" value="{{$step['name']}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">回退原因</td>
|
||||
<td align="left">
|
||||
<textarea class="form-control" id="remark" name="remark"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="run_id" id="run_id" value="{{$step['run_id']}}">
|
||||
<input type="hidden" name="step_id" id="step_id" value="{{$step['step_id']}}">
|
||||
<input type="hidden" name="data_id" id="data_id" value="{{$gets['data_id']}}">
|
||||
</form>
|
||||
@@ -0,0 +1,129 @@
|
||||
<div class="table-responsive">
|
||||
<form class="form-horizontal" action="{{url()}}" name="revise-form" id="revise-form" method="post">
|
||||
<table class="table table-form b-b">
|
||||
<tr>
|
||||
<td align="right" width="15%">
|
||||
流程状态
|
||||
</td>
|
||||
<td align="left">
|
||||
<select name="master[status]" class="form-control input-sm">
|
||||
@foreach($flows as $flow)
|
||||
<option value="{{$flow['id']}}" @if($flow['id'] == $row['status']) selected="selected" @endif>{{$flow['name']}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
单据创建人
|
||||
</td>
|
||||
<td align="left">
|
||||
{{App\Support\Dialog::user('user','master[created_id]', '', 0, 0)}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
审批记录
|
||||
</td>
|
||||
<td align="left">
|
||||
<select name="log[step_id]" class="form-control input-sm">
|
||||
<option value=""> - </option>
|
||||
@foreach($steps as $step)
|
||||
<option value="{{$step['step_id']}}">{{$step['name']}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
审批主办人
|
||||
</td>
|
||||
<td align="left">
|
||||
{{App\Support\Dialog::user('user','log[user_id]', '', 0, 0)}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
审批状态
|
||||
</td>
|
||||
<td align="left">
|
||||
<select name="log[run_status]" class="form-control input-sm">
|
||||
<option value=""> - </option>
|
||||
<option value="draft">待审</option>
|
||||
<option value="next">已审</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="key" value="{{$key}}">
|
||||
</form>
|
||||
|
||||
<table class="table table-form m-b-none b-t">
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center">序号</th>
|
||||
<th align="left">步骤</th>
|
||||
<th align="center">办理人</th>
|
||||
<th align="center">办理类型</th>
|
||||
<th align="center">办理效率</th>
|
||||
<th align="center">办理时间</th>
|
||||
<th align="center">办理意见</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@foreach($rows as $i => $row)
|
||||
<tr>
|
||||
<td align="center">
|
||||
{{$i + 1}}
|
||||
</td>
|
||||
<td align="left">
|
||||
{{$row['run_name']}}
|
||||
</td>
|
||||
<td align="center">
|
||||
{{get_user($row[user_id], 'name')}}
|
||||
</td>
|
||||
<td align="center">
|
||||
@if($row['updated_id'] == 0)
|
||||
@if($row['option'] == 0)
|
||||
<span class="label label-info">未阅</span>
|
||||
@else
|
||||
<span class="label label-danger">待审</span>
|
||||
@endif
|
||||
@elseif($row['run_status'] == 'back')
|
||||
<span class="label label-warning">退回</span>
|
||||
@elseif($row['run_status'] == 'recall')
|
||||
<span class="label label-warning">撤回</span>
|
||||
@elseif($row['run_status'] == 'abort')
|
||||
<span class="label label-warning">弃审</span>
|
||||
@else
|
||||
@if($row['option'] == 0)
|
||||
<span class="label label-success">已阅</span>
|
||||
@else
|
||||
<span class="label label-success">已审</span>
|
||||
@endif
|
||||
@endif
|
||||
</td>
|
||||
<td align="center">
|
||||
<?php
|
||||
$start = $row['created_at'];
|
||||
if($i) {
|
||||
$s = Carbon\Carbon::createFromTimeStamp($start);
|
||||
$e = Carbon\Carbon::createFromTimeStamp($end);
|
||||
if($row[updated_at]) {
|
||||
echo $s->diffInHours($e).'小时';
|
||||
}
|
||||
}
|
||||
$end = $start;
|
||||
?>
|
||||
</td>
|
||||
<td align="center" title="创建时间:@datetime($row['created_at'])">
|
||||
@datetime($row[updated_at])
|
||||
</td>
|
||||
<td align="left">
|
||||
{{$row[remark]}}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
<div class="wrapper-sm">
|
||||
<form class="form-horizontal" name="myrecall" id="myrecall" method="post">
|
||||
<textarea class="form-control" placeholder="撤回原因" id="remark" name="remark"></textarea>
|
||||
<input type="hidden" name="bill_id" id="bill_id" value="{{$bill_id}}">
|
||||
<input type="hidden" name="data_id" id="data_id" value="{{$data_id}}">
|
||||
<input type="hidden" name="log_id" id="log_id" value="{{$log_id}}">
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,81 @@
|
||||
@if($search['query']['advanced'])
|
||||
|
||||
<div class="panel panel-default m-t-sm m-b-none">
|
||||
<div class="wrapper-xs">
|
||||
<div class="row">
|
||||
@foreach($search['columns'] as $i => $column)
|
||||
<div class="col-sm-6">
|
||||
<div class="wrapper-xs">
|
||||
<div class="form-inline">
|
||||
<div class="form-group">
|
||||
{{$column[2]}}
|
||||
<input type="hidden" name="field_{{$i}}" id="search-field-{{$i}}" data-type="{{$column[0]}}" value="{{$column[1]}}">
|
||||
</div>
|
||||
|
||||
<div class="form-group" style="display:none;">
|
||||
<select name="condition_{{$i}}" id="search-condition-{{$i}}" class="form-control input-sm"></select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="search-value-{{$i}}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
|
||||
<div class="btn-group">
|
||||
<button id="search-submit" type="submit" class="btn btn-sm btn-default">
|
||||
<i class="fa fa-search"></i> 搜索</button>
|
||||
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="caret"></span>
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu text-xs" role="menu">
|
||||
<li>
|
||||
<a href="{{url('')}}"><i class="fa fa-search"></i> 简单搜索</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@else
|
||||
|
||||
<div class="form-group search-group">
|
||||
<select name="field_0" id="search-field-0" class="form-control input-sm">
|
||||
<option data-type="empty" value="">筛选条件</option>
|
||||
@foreach($search['columns'] as $column)
|
||||
<option data-type="{{$column[0]}}" value="{{$column[1]}}">{{$column[2]}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" style="display:none;">
|
||||
<select name="condition_0" id="search-condition-0" class="form-control input-sm"></select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="search-value-0"></div>
|
||||
|
||||
<div class="btn-group">
|
||||
<button id="search-submit" type="submit" class="btn btn-sm btn-default">
|
||||
<i class="fa fa-search"></i> 搜索</button>
|
||||
@if(is_numeric($search['query']['advanced']))
|
||||
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="caret"></span>
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu text-xs" role="menu">
|
||||
<li>
|
||||
<a href="{{url('', ['advanced' => 1])}}">
|
||||
<i class="fa fa-search"></i> 高级搜索</a>
|
||||
</li>
|
||||
</ul>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@endif @if($search['params']) @foreach($search['params'] as $key => $param)
|
||||
<input name="{{$key}}" type="hidden" value="{{$param}}"> @endforeach @endif
|
||||
@@ -0,0 +1,27 @@
|
||||
<div class="form-group search-group">
|
||||
<select name="field_0" id="search-field-0" class="form-control input-sm">
|
||||
<option data-type="empty" value="">筛选条件</option>
|
||||
@foreach($search['columns'] as $column)
|
||||
<option data-type="{{$column['form_type']}}" data-title="{{$column['name']}}" data-url="{{$column['options']['url']}}" value="{{$column['field']}}">{{$column['name']}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" style="display:none;">
|
||||
<select name="condition_0" id="search-condition-0" class="form-control input-sm"></select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="search-value-0"></div>
|
||||
|
||||
<div class="form-group">
|
||||
<button id="search-submit" type="submit" class="btn btn-sm btn-default">
|
||||
<i class="fa fa-search"></i> 搜索</button>
|
||||
</div>
|
||||
|
||||
@if($search['params'])
|
||||
@foreach($search['params'] as $key => $param)
|
||||
<input name="{{$key}}" type="hidden" value="{{$param}}">
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
<div class="clearfix"></div>
|
||||
@@ -0,0 +1,23 @@
|
||||
<div class="form-group search-group">
|
||||
<select name="field_0" id="search-field-0" class="form-control input-sm">
|
||||
<option data-type="empty" value="">筛选条件</option>
|
||||
@foreach($search['columns'] as $column)
|
||||
<option data-type="{{$column[0]}}" value="{{$column[1]}}">{{$column[2]}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" style="display:none;">
|
||||
<select name="condition_0" id="search-condition-0" class="form-control input-sm"></select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="search-value-0"></div>
|
||||
|
||||
<div class="btn-group">
|
||||
<button id="search-submit" type="submit" class="btn btn-sm btn-default">
|
||||
<i class="fa fa-search"></i> 筛选</button>
|
||||
</div>
|
||||
|
||||
@if($search['params']) @foreach($search['params'] as $key => $param)
|
||||
<input name="{{$key}}" type="hidden" value="{{$param}}">
|
||||
@endforeach @endif
|
||||
@@ -0,0 +1,40 @@
|
||||
<div style="display:none;">
|
||||
<form id="{{$search['table']}}-search-form-advanced" class="search-form" action="{{url()}}" method="get">
|
||||
<div class="search-form-advanced">
|
||||
<div class="row">
|
||||
@foreach($search['columns'] as $i => $column)
|
||||
<?php if($column['form_type'] == 'text2') { continue; } ?>
|
||||
<div class="wrapper-xs">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-3">{{$column['name']}}</label>
|
||||
<?php
|
||||
if (is_array($column['form_type'])) {
|
||||
$_type = $column['form_type'][0];
|
||||
} else {
|
||||
$_type = $column['form_type'];
|
||||
}
|
||||
?>
|
||||
<input type="hidden" name="field_{{$i}}" id="advanced-search-field-{{$i}}" data-title="{{$column['name']}}" data-type="{{$_type}}" value="{{$column['field']}}">
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<div class="form-group" style="display:none;">
|
||||
<select name="condition_{{$i}}" id="advanced-search-condition-{{$i}}" class="form-control input-sm"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-7">
|
||||
<div class="form-group" id="advanced-search-value-{{$i}}"></div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
@if($header['search_form']['params'])
|
||||
@foreach($header['search_form']['params'] as $key => $param)
|
||||
<input name="{{$key}}" type="hidden" value="{{$param}}">
|
||||
@endforeach
|
||||
@endif
|
||||
-->
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
$_params = $search['params'];
|
||||
unset($_params['referer']);
|
||||
if($_params['advanced'] == 0) {
|
||||
unset($_params['advanced']);
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="panel-heading tabs-box">
|
||||
<ul class="nav nav-tabs">
|
||||
@foreach($tabs['items'] as $tab)
|
||||
<li class="@if($search['query'][$tabs['name']] == (string)$tab['id']) active @endif">
|
||||
<?php $_params[$tabs['name']] = $tab['id']; ?>
|
||||
<a class="text-sm" href="{{url('', $_params)}}">{{$tab['name']}}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,9 @@
|
||||
<div class="panel-heading tabs-box">
|
||||
<ul class="nav nav-tabs">
|
||||
@foreach($tabs['items'] as $i => $tab)
|
||||
<li id="tab-{{$tab['id']}}" @if($i == 0)class="active"@endif>
|
||||
<a class="text-sm" href="javascript:tabs({{$tab['id']}});">{{$tab['name']}}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
@if($header['tabs'])
|
||||
<div class="panel-heading tabs-box">
|
||||
<ul class="nav nav-tabs">
|
||||
@foreach($header['tabs']['items'] as $tab)
|
||||
<?php
|
||||
$tab_count = substr_count($tab['value'], '.');
|
||||
$module = Request::module();
|
||||
$controller = Request::controller();
|
||||
$action = Request::action();
|
||||
|
||||
if($action == 'edit') {
|
||||
$action = 'create';
|
||||
}
|
||||
|
||||
if ($tab_count === 0) {
|
||||
$tab_uri = $action;
|
||||
}
|
||||
if ($tab_count === 1) {
|
||||
$tab_uri = $controller.'.'.$action;
|
||||
}
|
||||
if ($tab_count === 2) {
|
||||
$tab_uri = $module.'.'.$controller.'.'.$action;
|
||||
}
|
||||
?>
|
||||
<li class="@if($tab_uri == $tab['value']) active @endif">
|
||||
<a class="text-sm" href="{{url($tab['url'])}}">{{$tab['name']}}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
$query = Request::except('page');
|
||||
$limit = $query['limit'] > 0 ? $query['limit'] : 25;
|
||||
$rows = [10, 25, 50, 100, 500, 1000, 5000, 10000];
|
||||
$page[] = '<li class="input-group-btn dropup"><a type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="page-size">'.$limit.'</span> <span class="caret"></span></a><ul class="dropdown-menu" role="menu">';
|
||||
foreach ($rows as $row) {
|
||||
$active = $limit == $row ? ' class="active"' : '';
|
||||
$query['limit'] = $row;
|
||||
$page[] = '<li'.$active.'><a href="'.url('', $query).'">'.$row.'</a></li>';
|
||||
}
|
||||
$page[] = '</ul></li>';
|
||||
?>
|
||||
|
||||
<ul class="pagination pagination-sm m-n">
|
||||
|
||||
{{join("\n", $page)}}
|
||||
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="disabled"><span>«</span></li>
|
||||
@else
|
||||
<li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">«</a></li>
|
||||
@endif
|
||||
|
||||
{{-- Pagination Elements --}}
|
||||
@foreach ($elements as $element)
|
||||
{{-- "Three Dots" Separator --}}
|
||||
@if (is_string($element))
|
||||
<li class="disabled"><span>{{ $element }}</span></li>
|
||||
@endif
|
||||
|
||||
{{-- Array Of Links --}}
|
||||
@if (is_array($element))
|
||||
@foreach ($element as $page => $url)
|
||||
@if ($page == $paginator->currentPage())
|
||||
<li class="active"><span>{{ $page }}</span></li>
|
||||
@else
|
||||
<li><a href="{{ $url }}">{{ $page }}</a></li>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li><a href="{{ $paginator->nextPageUrl() }}" rel="next">»</a></li>
|
||||
@else
|
||||
<li class="disabled"><span>»</span></li>
|
||||
@endif
|
||||
|
||||
<li><span>共 {{$paginator->total()}} 条记录</span></li>
|
||||
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user