重构系统附件字段逻辑

修改各模块附件功能
This commit is contained in:
2021-03-21 05:07:01 +08:00
parent fb37c7110b
commit decaabd448
45 changed files with 656 additions and 1513 deletions
@@ -4,11 +4,9 @@
<script src="{{$asset_url}}/vendor/dhtmlxgantt/locale_cn.js" type="text/javascript"></script>
<link rel="stylesheet" href="{{$asset_url}}/vendor/dhtmlxgantt/dhtmlxgantt.css" type="text/css">
<style type="text/css">
/* 新样式 */
html, body {
overflow: hidden;
}
.gantt_side_content.gantt_right {
padding-left: 10px;
}
@@ -18,7 +16,7 @@ html, body {
}
.gantt_container {
border: 1px solid #eee;
border: 1px solid #fff;
border-top: 1px solid #cecece;
}
@@ -106,52 +104,8 @@ html, body {
</style>
<div class="panel">
<div class="wrapper-sm b-b">
<span class="text-md">{{$project['name']}}</span> <span class="text-muted">{{$project['description']}}</span>
</div>
<div class="wrapper-xs" id="gantt-wrapper">
<form id="search-task-form" class="form-inline" name="mytasksearch" method="get">
<div class="pull-right">
<div class="btn-group">
<a href="{{url('index', ['project_id' => $project['id'], 'tpl' => 'index'])}}" class="btn btn-sm btn-default @if($query['tpl'] == 'index') active @endif">列表</a>
<a href="{{url('index', ['project_id' => $project['id'], 'tpl' => 'gantt'])}}" class="btn btn-sm btn-default @if($query['tpl'] == 'gantt') active @endif">甘特图</a>
<!--
<a href="{{url('index', ['project_id' => $project['id'], 'tpl' => 'board'])}}" class="btn btn-sm btn-default @if($query['tpl'] == 'board') active @endif">看板</a>
-->
</div>
</div>
<a href="{{url($referer)}}" class="btn btn-sm btn-default"><i class="fa fa-reply"></i> 返回</a>
@if(isset($access['add']))
@if($permission['add_item'])
<a href="javascript:addItem();" title="添加列表" class="hinted btn btn-sm btn-info"><i class="icon icon-plus"></i> 添加列表</a>
@endif
@if($permission['add_task'])
<a href="javascript:addTask();" title="添加任务" class="hinted btn btn-sm btn-info"><i class="icon icon-plus"></i> 添加任务</a>
@endif
@endif
@include('searchForm')
<script type="text/javascript">
$(function() {
$('#search-task-form').searchForm({
data: {{json_encode($search['forms'])}},
init:function(e) {
var self = this;
}
});
});
</script>
</form>
</div>
<div class="panel no-border" id="{{$header['master_table']}}-controller">
@include('task/index/header')
<div id="gantt-view"></div>
</div>
@@ -163,7 +117,6 @@ var params = {project_id:project_id};
gantt.config.columns = [
{name:"name", label:"任务列表", tree:true, width:'*', resize: true}
];
gantt.config.scale_unit = 'month';
gantt.config.date_scale = '%Y - %m';
gantt.config.scale_height = 50;
@@ -284,7 +237,7 @@ gantt._do_autosize = function() {
// 设置高度
var height = $('#gantt-wrapper').outerHeight();
var iframeHeight = $(window).height();
$('#gantt-view').height(iframeHeight - height - 68 + 'px');
$('#gantt-view').height(iframeHeight - height - 102 + 'px');
var resize = this._get_resize_options();
var boxSizes = this._get_box_styles();
@@ -308,15 +261,6 @@ gantt._do_autosize = function() {
gantt.init("gantt-view");
gantt.load(app.url('project/task/index', params));
$('#search-submit').on('click', function() {
var query = $('#search-task-form').serializeArray();
$.map(query, function(row) {
params[row.name] = row.value;
});
dataReload();
return false;
});
function dataReload() {
gantt.clearAll();
gantt.load(app.url('project/task/index', params));
@@ -0,0 +1,35 @@
<div class="wrapper-sm b-b">
<span class="text-md">{{$project['name']}}</span> <span class="text-muted">{{$project['description']}}</span>
</div>
<div id="index-wrapper">
<form id="{{$header['master_table']}}-search-form" class="form-inline" name="mytasksearch" method="get">
<div class="pull-right wrapper-xs">
<div class="btn-group">
<a href="{{url('index', ['project_id' => $project['id'], 'tpl' => 'index'])}}" class="btn btn-sm btn-default @if($header['search_form']['query']['tpl'] == 'index') active @endif">列表</a>
<a href="{{url('index', ['project_id' => $project['id'], 'tpl' => 'gantt'])}}" class="btn btn-sm btn-default @if($header['search_form']['query']['tpl'] == 'gantt') active @endif">甘特图</a>
</div>
</div>
@section('left_buttons')
@if(isset($access['add']))
@if($permission['add_item'])
<a href="javascript:addItem();" title="添加列表" class="hinted btn btn-sm btn-info"><i class="icon icon-plus"></i> 添加列表</a>
@endif
@if($permission['add_task'])
<a href="javascript:addTask();" title="添加任务" class="hinted btn btn-sm btn-info"><i class="icon icon-plus"></i> 添加任务</a>
@endif
@endif
@endsection
@include('headers')
</form>
</div>
<style type="text/css">
.ag-theme-balham .ag-root {
border-bottom: 0;
}
</style>
@@ -1,40 +1,8 @@
<div class="panel">
<div class="wrapper-sm b-b">
<span class="text-md">{{$project['name']}}</span> <span class="text-muted">{{$project['description']}}</span>
</div>
<div class="wrapper-xs" id="index-wrapper">
<form id="search-task-form" class="form-inline" name="mytasksearch" method="get">
<div class="pull-right">
<div class="btn-group">
<a href="{{url('index', ['project_id' => $project['id'], 'tpl' => 'index'])}}" class="btn btn-sm btn-default @if($query['tpl'] == 'index') active @endif">列表</a>
<a href="{{url('index', ['project_id' => $project['id'], 'tpl' => 'gantt'])}}" class="btn btn-sm btn-default @if($query['tpl'] == 'gantt') active @endif">甘特图</a>
</div>
</div>
<a href="{{url($referer)}}" class="btn btn-sm btn-default"><i class="fa fa-reply"></i> 返回</a>
@if(isset($access['add']))
@if($permission['add_item'])
<a href="javascript:addItem();" title="添加列表" class="hinted btn btn-sm btn-info"><i class="icon icon-plus"></i> 添加列表</a>
@endif
@if($permission['add_task'])
<a href="javascript:addTask();" title="添加任务" class="hinted btn btn-sm btn-info"><i class="icon icon-plus"></i> 添加任务</a>
@endif
@endif
@include('searchForm')
</form>
</div>
<div class="panel" id="{{$header['master_table']}}-controller">
@include('task/index/header')
<div class="gdoo-list-grid">
<div id="jqgrid-table" class="ag-theme-balham" style="width:100%;"></div>
</div>
</div>
<script>
@@ -43,25 +11,6 @@ var project_id = "{{(int)$project['id']}}";
var params = {project_id:project_id};
var auth_id = '{{auth()->id()}}';
function progressRenderer(params) {
var data = params.data;
if (data.type == 'task' || data.type == 'subtask') {
if (params.value == 1) {
return '<div class="label label-success">已完成</div>';
} else {
return '<div class="label label-' + (auth_id == data.user_id ? 'danger' : 'info') + '">进行中</div>';
}
}
return '';
}
function durationRenderer(params) {
if (params.value) {
return '<span class="hinted" title="任务持续' + params.value + '">' + params.value + '</span>';
}
return '';
}
(function($) {
grid = new agGridOptions();
grid.remoteDataUrl = '{{url()}}';
@@ -90,6 +39,25 @@ function durationRenderer(params) {
return data.tree_path;
};
function progressRenderer(params) {
var data = params.data;
if (data.type == 'task' || data.type == 'subtask') {
if (params.value == 1) {
return '<div class="label label-success">已完成</div>';
} else {
return '<div class="label label-' + (auth_id == data.user_id ? 'danger' : 'info') + '">进行中</div>';
}
}
return '';
}
function durationRenderer(params) {
if (params.value) {
return '<span class="hinted" title="任务持续' + params.value + '">' + params.value + '</span>';
}
return '';
}
grid.columnDefs.push(
{cellClass:'text-center', sortable: false, field: 'user_name', headerName: '执行者', width: 140},
{cellClass:'text-center', sortable: false, field: 'users', headerName: '参与者', minWidth: 200},
@@ -115,24 +83,11 @@ function durationRenderer(params) {
};
var gridDiv = document.querySelector("#jqgrid-table");
gridDiv.style.height = getPanelHeight(12);
gridDiv.style.height = getPanelHeight(11);
new agGrid.Grid(gridDiv, grid);
grid.remoteData();
var search = $('#search-task-form').searchForm({
data: JSON.parse('{{json_encode($search["forms"])}}'),
init:function(e) {
var self = this;
}
});
search.find('#search-submit').on('click', function() {
var query = search.serializeArray();
params.page = 1;
grid.remoteData(params);
return false;
});
})(jQuery);
function dataReload() {
@@ -141,7 +96,6 @@ function dataReload() {
}
function getTask(id) {
console.log(grid.api.getRowNode(id));
return grid.api.getRowNode(id);
}
</script>
+56 -1
View File
@@ -1,4 +1,59 @@
<script>
(function($) {
var table = '{{$header["master_table"]}}';
var search = JSON.parse('{{json_encode($header["search_form"])}}');
search.advanced = {};
search.simple = {};
search.advanced.el = $('#' + table + '-search-form-advanced').searchForm({
data: search.forms,
advanced: true
});
search.simple.el = $('#' + table + '-search-form').searchForm({
data: search.forms
});
search.simple.el.find('#search-submit').on('click', function() {
var query = search.simple.el.serializeArray();
search.queryType = 'simple';
$.map(query, function(row) {
params[row.name] = row.value;
});
dataReload();
return false;
});
// 过滤数据
var panel = $('#' + table + '-controller');
panel.on('click', '[data-toggle="' + table + '"]', function() {
var data = $(this).data();
if (data.action == 'filter') {
$(search.advanced.el).dialog({
title: '高级搜索',
modalClass: 'no-padder',
buttons: [{
text: "取消",
'class': "btn-default",
click: function() {
$(this).dialog("close");
}
},{
text: "确定",
'class': "btn-info",
click: function() {
var query = search.advanced.el.serializeArray();
search.queryType = 'advanced';
$.map(query, function(row) {
params[row.name] = row.value;
});
dataReload();
$(this).dialog("close");
return false;
}
}]
});
}
});
})(jQuery);
function formsBox(title, url, id, success, remove, error)
{
var options = {
@@ -11,7 +66,7 @@ function formsBox(title, url, id, success, remove, error)
if (typeof success === 'function') {
options.buttons.push({
text: '<i class="fa fa-check"></i> 提交',
text: '<i class="fa fa-check"></i> 保存',
class: 'btn-info',
click: function() {
var me = this;