创建版本

This commit is contained in:
2021-02-22 12:17:00 +08:00
commit af555f49c3
2332 changed files with 369202 additions and 0 deletions
+87
View File
@@ -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">&nbsp;文件大小限制{{$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">&nbsp;文件大小限制 {{$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>
+97
View File
@@ -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">&nbsp;文件大小限制{{$setting['upload_max']}} MB</span>
<!--
<input type="file" name="uploadify" id="uploadify">
<div class="uploadify-info text-ellipsis">&nbsp;支持{{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')}}
&nbsp;上传时间: @datetime($v['add_time'])
&nbsp;大小: {{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">(
&nbsp;上传者: {{get_user($v['add_user_id'], 'name')}}
&nbsp;上传时间: @datetime($v['add_time'])
&nbsp;大小: {{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">&nbsp;文件大小限制{{$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')}}
&nbsp;上传时间: @datetime($v['add_time'])
&nbsp;大小: {{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>
+107
View File
@@ -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>
+19
View File
@@ -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>
+23
View File
@@ -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">&nbsp;({{human_filesize($row['size'])}})</span>
&nbsp;
@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">&nbsp;文件大小限制 {{$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>
+34
View File
@@ -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) }}
+13
View File
@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h2>欢迎您!</h2>
<div>
感谢您的到来!
</div>
</body>
</html>
+25
View File
@@ -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>
+41
View File
@@ -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>
+42
View File
@@ -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>
+43
View File
@@ -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>
+35
View File
@@ -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>
+208
View File
@@ -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>
+40
View File
@@ -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>
+35
View File
@@ -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>
+35
View File
@@ -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>
+22
View File
@@ -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
+21
View File
@@ -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'}}">
+22
View File
@@ -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>
+5
View File
@@ -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>
+276
View File
@@ -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>
+226
View File
@@ -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>
+278
View File
@@ -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">
&times;
</button>
<div id="lodop_msg"></div>
</div>
</div>
<div class="main">
<div class="main-container">
<div>
{{$content}}
</div>
</div>
</div>
</body>
</html>
+226
View File
@@ -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">
&times;
</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">&times;</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>
+24
View File
@@ -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>
+7
View File
@@ -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>
+133
View File
@@ -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')
&nbsp;
&nbsp;
<label class="i-checks i-checks-sm"><input type="radio" class="step_next_type" name="step_next_type" value="back"><i></i>退回</label>
@endif
<!--
&nbsp;
&nbsp;
<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>
+70
View File
@@ -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>
+129
View File
@@ -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>
+8
View File
@@ -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>
+81
View File
@@ -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
+27
View File
@@ -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>
+23
View File
@@ -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
+40
View File
@@ -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>
+18
View File
@@ -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>
+9
View File
@@ -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>
+31
View File
@@ -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
+54
View File
@@ -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>&laquo;</span></li>
@else
<li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">&laquo;</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">&raquo;</a></li>
@else
<li class="disabled"><span>&raquo;</span></li>
@endif
<li><span>共 {{$paginator->total()}} 条记录</span></li>
</ul>