创建版本

This commit is contained in:
2021-02-22 12:17:00 +08:00
commit af555f49c3
2332 changed files with 369202 additions and 0 deletions
@@ -0,0 +1,149 @@
<div class="panel no-border" id="material_plan-controller">
<div class="wrapper-sm">
@include('searchForm7')
<a class="btn btn-sm btn-default" data-toggle="material_plan" data-action="filter"><i class="fa fa-search"></i> 筛选</a>
<a class="btn btn-sm btn-default" data-toggle="material_plan" data-action="export"><i class="fa fa-share"></i> 导出</a>
</div>
<div class='list-jqgrid'>
<div id="material_plan-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<style>
.ag-row {
display:table;
}
.rowspan {
background-color: #fff;
top: -1px;
border-top: 1px solid #d9dcde !important;
display: table-cell;
vertical-align: middle;
}
.rowspan_end {
border-bottom: 1px solid #d9dcde !important;
}
</style>
<script>
(function ($) {
var searchOpen = false;
var table = 'material_plan';
var search = JSON.parse('{{json_encode($search)}}');
var cols = [
{field: "sn", cellClass: "text-center", suppressSizeToFit: true, headerName: "", type: 'sn', width: 40},
{field: "dDate", headerName: "日期", sortable: false, suppressMenu: true, cellClass: "text-center", width: 100},
{field: "cdwname", headerName: "客户名称", sortable: false, suppressMenu: true, cellClass: "text-center", width: 180},
{field: "tax_name", headerName: "开票单位", sortable: false, suppressMenu: true, cellClass: "text-center", width: 180},
{field: "cdlcode", headerName: "单据编号", sortable: false, suppressMenu: true, cellClass: "text-center", width: 120},
{field: "vtype", headerName: "单据类型", sortable: false, suppressMenu: true, cellClass: "text-center", width: 120},
{field: "dgst", headerName: "摘要", sortable: false, suppressMenu: true, cellClass: "text-left", minWidth: 200},
{field: "qtfy", headerName: "其他费用", type: "number", sortable: false, suppressMenu: true, cellClass: "text-right", width: 120},
{field: "xzfy", headerName: "本次新增费用", type: "number", sortable: false, suppressMenu: true, cellClass: "text-right", width: 120},
{field: "sl", headerName: "发货数量", type: "number", sortable: false, suppressMenu: true, cellClass: "text-right", width: 120},
{field: "jf", headerName: "发货总金额", type: "number", sortable: false, suppressMenu: true, cellClass: "text-right", width: 120},
{field: "bcsyfy", headerName: "使用费用金额", type: "number", sortable: false, suppressMenu: true, cellClass: "text-right", width: 120},
{field: "df", headerName: "收款金额", type: "number", sortable: false, suppressMenu: true, cellClass: "text-right", width: 120},
{field: "ye", headerName: "余额", type: "number", sortable: false, suppressMenu: true, cellClass: "text-right", width: 120},
];
var grid = new agGridOptions();
grid.suppressRowTransform = true;
var gridDiv = document.querySelector("#material_plan-grid");
gridDiv.style.height = getPanelHeight(12);
grid.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
var data = params.data;
if (data == undefined) {
return;
}
if (data.srcMasterBID > 0) {
var key = data.url.replace(/\//g,'_');
top.addTab(data.url + '?id=' + data.srcMasterBID, key, data.app_name);
}
};
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = search.query;
grid.columnDefs = cols;
grid.rowSelection = 'single';
new agGrid.Grid(gridDiv, grid);
// 读取数据
grid.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
var data = search.forms;
var search = $("#material_plan-search-form-advanced");
search.searchForm({
data: data,
advanced: 1,
});
search.find('#search-submit').on('click', function() {
var params = search.serializeArray();
$.map(params, function(row) {
data[row.name] = row.value;
});
grid.remoteData(data);
return false;
});
$('#material_plan-controller').on('click', '[data-toggle="material_plan"]', function() {
var data = $(this).data();
if (data.action == 'filter') {
searchBox();
}
if (data.action == 'export') {
LocalExport(grid, '客户对账单');
}
});
var searchBox = function() {
$(search).dialog({
title: '筛选条件',
modalClass: 'no-padder',
buttons: [{
text: "取消",
'class': "btn-default",
click: function() {
$(this).dialog("close");
}
},{
text: "确定",
'class': "btn-info",
click: function() {
var data = search.serializeArray();
var params = {};
search.queryType = 'advanced';
$.map(data, function(row) {
params[row.name] = row.value;
});
params['page'] = 1;
grid.remoteData(params);
$(this).dialog("close");
return false;
}
}]
});
}
if (searchOpen == false) {
searchBox();
}
})(jQuery);
</script>
@@ -0,0 +1,73 @@
<div class="panel">
<div class="wrapper">
@include('business/query')
</div>
<form method="post" id="myform" name="myform">
<div class="table-responsive">
<table class="table b-t table-hover">
<thead>
<tr>
<th align="center">
<input type="checkbox" class="select-all">
</th>
<th align="left">客户名称</th>
<th align="left">地区</th>
<th align="left">资料来源</th>
<th>客户类型</th>
<th>联系人</th>
<th align="center">联系人手机</th>
<th>渠道说明</th>
<th>产品说明</th>
<th>合作说明</th>
<th>补充说明</th>
<th align="center">名片</th>
<th>创建者</th>
<th>{{url_order($search,'created_at','日期')}}</th>
<th align="center">{{url_order($search,'id','ID')}}</th>
</tr>
</thead>
<tbody>
@if($rows)
@foreach($rows as $row)
<tr>
<td align="center"><input type="checkbox" class="select-row" value="{{$row['id']}}" name="id[]"></td>
<td align="left">{{$row->name}}</td>
<td align="left" nowrap="true">{{$row->address}}</td>
<td align="left">{{$row->source}}</td>
<td align="center">{{$row->type}}</td>
<td align="center">{{$row->contacts}}</td>
<td align="center">{{$row->contacts_phone}}</td>
<td align="left">{{$row->text_1}}</td>
<td align="left">{{$row->text_2}}</td>
<td align="left">{{$row->text_3}}</td>
<td align="left">{{$row->description}}</td>
<td align="center">
<button type="button" class="option" data-toggle="dialog-image" data-url="{{url('index/attachment/show',['id'=>$row->attachment])}}" data-title="名片预览">名片</button>
</td>
<td align="center">{{get_user($row->created_id, 'name')}}</td>
<td align="center">@datetime($row->created_at)</td>
<td align="center">{{$row->id}}</td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
</form>
<div class="panel-footer">
<div class="row">
<div class="col-sm-1 hidden-xs">
</div>
<div class="col-sm-11 text-right text-center-xs">
{{$rows->render()}}
</div>
</div>
</div>
</div>
@@ -0,0 +1,29 @@
<form id="search-form" class="form-inline" name="mysearch" action="{{url()}}" method="get">
<div class="pull-right">
@if(isset($access['destroy']))
<button type="button" onclick="optionDelete('#myform','{{url('destroy')}}');" class="btn btn-sm btn-danger"><i class="icon icon-remove"></i> 删除</button>
@endif
</div>
@if(isset($access['add']))
<a href="{{url('add')}}" class="btn btn-sm btn-info"><i class="icon icon-plus"></i> 新建</a>
@endif
@include('searchForm')
</form>
<script type="text/javascript">
$(function() {
$('#search-form').searchForm({
data:{{json_encode($search['forms'])}},
init:function(e) {
var self = this;
e.post = function(i) {
self._select({{search_select($types)}}, i);
}
}
});
});
</script>
@@ -0,0 +1,32 @@
<div class="form-panel">
<div class="form-panel-header">
<div class="pull-right">
</div>
{{$form['btn']}}
</div>
<div class="form-panel-body panel-form-{{$form['action']}}">
<form class="form-horizontal form-controller" method="post" id="{{$form['table']}}" name="{{$form['table']}}">
<div class="alert alert-info alert-dismissable m-b-sm text-sm">
本投诉表适用于公司产品质量、售后服务及其他方面的投诉,金额超过1000元的投诉由营销中心客服部打印单据交由副总经理审批。
</div>
{{$form['tpl']}}
</form>
</div>
</div>
<script>
var form_action = '{{$form["action"]}}';
(function ($) {
// grid初始化事件
gdoo.event.set('grid.customer_task_data', {
ready(me) {
grid = me;
grid.dataKey = 'customer_id';
}
});
})(jQuery);
</script>
@@ -0,0 +1,60 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
action.dialogType = 'layer';
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
var options = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
gridDiv.style.height = getPanelHeight(48);
options.remoteDataUrl = '{{url()}}';
// options.autoColumnsToFit = false;
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.master_id > 0) {
action.show(params.data);
}
};
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1 @@
{{$form['tpl']}}
@@ -0,0 +1,131 @@
<div class="panel b-a" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var search = JSON.parse('{{json_encode($header["search_form"])}}');
var columns = [];
var params = search.query;
var grid = new agGridOptions();
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = params;
grid.defaultColDef.suppressMenu = true;
grid.defaultColDef.sortable = true;
grid.defaultColDef.filter = false;
grid.autoColumnsToFit = false;
grid.singleClickEdit = true;
grid.rowSelection = 'single';
grid.suppressCellSelection = false;
grid.defaultColDef.cellStyle = function(params) {
if (params.node.rowPinned) {
return;
}
var style = {};
var field = params.colDef.field;
if (params.data.status == '0' && (field == "customer_code" || field == "customer_name")) {
style = {'color':'red'};
}
return style;
};
grid.columnDefs = [
{cellClass:'text-center', field: 'sn', type: 'sn', headerName: '序号', width: 50},
{cellClass:'text-center', field: 'region_name', headerName: '区域', width: 100},
{cellClass:'text-center', field: 'customer_code', headerName: '客户编码', width: 80},
{cellClass:'text-left', field: 'customer_name', headerName: '客户名称', width: 180},
{cellClass:'text-right', field: 'total_task', headerName: '总任务', width: 80, type:'number', numberOptions: {places:2}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'total_money', headerName: '累计销售', width: 80, type:'number', numberOptions: {places:4}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'total_rate', headerName: '总进度', width: 80, type:'number', numberOptions: {places:2}, calcFooter: 'sum'},
];
for(var i=1; i <= 12;i++) {
grid.columnDefs.push({
cellClass:'text-center', headerName: i + '月',
children: [
{cellClass:'text-right', headerName:'任务', width: 60, field:'month' + i, type:'number', numberOptions:{places:2, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'销售', width: 80, field:'month_'+i+'_money', type:'number', numberOptions:{places:4, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'进度', width: 60, field:'month_'+i+'_rate', type:'number', numberOptions:{places:2, default:'0'}}
]
});
}
for(var i=1; i <= 4;i++) {
var dx = {
1: '一',
2: '二',
3: '三',
4: '四',
};
grid.columnDefs.push({
cellClass:'text-center', headerName: dx[i] + '季度',
children: [
{cellClass:'text-right', headerName:'任务', width: 60, field:'quarter_' + i, type:'number', numberOptions:{places:2, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'销售', width: 80, field:'quarter_'+i+'_money', type:'number', numberOptions:{places:4, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'进度', width: 60, field:'quarter_'+i+'_rate', type:'number', numberOptions:{places:2, default:'0'}}
]
});
}
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
new agGrid.Grid(gridDiv, grid);
gridDiv.style.height = getPanelHeight(12);
// 读取数据
grid.remoteData();
var search_advanced = $('#' + table + '-search-form-advanced').searchForm({
data: search.forms,
advanced: true,
});
gdoo.grids[table] = {grid: grid};
var action = new gridAction(table, '客户销售进度');
var panel = $('#' + table + '-controller');
panel.on('click', '[data-toggle="' + table + '"]', function() {
var data = $(this).data();
if (data.action == 'filter') {
// 过滤数据
$('#' + table + '-search-form-advanced').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.serializeArray();
params = {};
$.map(query, function(row) {
params[row.name] = row.value;
});
grid.remoteData(params);
$(this).dialog("close");
return false;
}
}]
});
}
if (data.action == 'export') {
action.export(data, '客户销售进度');
}
});
})(jQuery);
</script>
@@ -0,0 +1,12 @@
<div class="form-panel">
<div class="form-panel-header">
<div class="pull-right">
</div>
{{$form['btn']}}
</div>
<div class="form-panel-body panel-form-{{$form['action']}}">
<form class="form-horizontal form-controller" method="post" id="{{$form['table']}}" name="{{$form['table']}}">
{{$form['tpl']}}
</form>
</div>
</div>
@@ -0,0 +1,116 @@
<div class="padder">
<div class="m-t-sm m-b-sm">
<form id="dialog-{{$search['query']['id']}}-search-form" class="form-inline" method="get">
@include('searchForm3')
</form>
</div>
</div>
<div id="dialog-{{$search['query']['id']}}" class="ag-theme-balham" style="width:100%;height:380px;"></div>
<script>
(function ($) {
var search = JSON.parse('{{json_encode($search)}}');
var params = search.query;
var sid = params.prefix == 1 ? 'sid' : 'id';
var gridDiv = document.querySelector("#dialog-{{$search['query']['id']}}");
var grid = new agGridOptions();
var selectedData = {};
var multiple = params.multi == 0 ? false : true;
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = {};
//grid.rowMultiSelectWithClick = multiple;
grid.rowSelection = multiple ? 'multiple' : 'single';
grid.columnDefs = [
{suppressMenu: true, cellClass:'text-center', checkboxSelection: true, headerCheckboxSelection: multiple, suppressSizeToFit: true, sortable: false, width: 40},
{suppressMenu: true, cellClass:'text-center', sortable: false, field: 'name', headerName: '姓名', minWidth: 160},
{suppressMenu: true, cellClass:'text-center', field: 'phone', headerName: '手机', width: 160},
{suppressMenu: true, cellClass:'text-center', field: 'id', headerName: 'ID', width: 80}
];
grid.onRowClicked1 = function(row) {
var id = row.data[sid];
if (selectedData[id]) {
delete selectedData[id];
row.node.setSelected(false);
} else {
if (multiple == false) {
selectedData = {};
}
selectedData[id] = row.data.name;
}
writeSelected();
};
grid.onSelectionChanged = function() {
var rows = grid.api.getSelectedRows();
selectedData = {};
for (let i = 0; i < rows.length; i++) {
var row = rows[i];
selectedData[row.id] = row.name;
}
writeSelected();
};
grid.onRowDoubleClicked = function (row) {
grid.onRowClicked(row);
$('#gdoo-dialog-' + params.dialog_index).dialog('close');
};
function initSelected() {
selectedData = {};
var id = $('#'+params.id).val();
var text = $('#'+params.id+'_text').val();
if (id && text) {
id = id.split(',');
text = text.split(',');
for (var i = 0; i < id.length; i++) {
selectedData[id[i]] = text[i];
}
}
}
function writeSelected() {
var id = [];
var text = [];
$.each(selectedData, function(k, v) {
id.push(k);
text.push(v);
});
$('#'+params.id).val(id.join(','));
$('#'+params.id+'_text').val(text.join(','));
}
new agGrid.Grid(gridDiv, grid);
// 读取数据
grid.remoteData({page: 1});
// 数据载入成功
grid.remoteSuccessed = function() {
initSelected();
grid.api.forEachNode(function(node) {
// 默认选中
$.each(selectedData, function(k, v) {
if (node.data[sid] == k) {
node.setSelected(true);
}
});
});
}
var data = search.forms;
var search = $("#dialog-{{$search['query']['id']}}-search-form").searchForm({
data: data
});
search.find('#search-submit').on('click', function() {
var params = search.serializeArray();
$.map(params, function(row) {
data[row.name] = row.value;
});
grid.remoteData(data);
return false;
});
})(jQuery);
</script>
@@ -0,0 +1,59 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
action.dialogType = 'layer';
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
var options = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
gridDiv.style.height = getPanelHeight(48);
options.remoteDataUrl = '{{url()}}';
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.id > 0) {
action.edit(params.data);
}
};
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,14 @@
<style>
body {
background-color: #f0f3f4;
}
</style>
<div class="panel panel-info">
<div class="panel-heading b-b">
<div class="text-sm"><i class="fa text-md fa-list-alt"></i> 职位</div>
</div>
<div class="form-controller">
{{$header['tpl']}}
</div>
</div>
@@ -0,0 +1,42 @@
<div class="form-panel">
<div class="form-panel-header">
<div class="pull-right">
</div>
{{$form['btn']}}
</div>
<div class="form-panel-body panel-form-{{$form['action']}}">
<form class="form-horizontal form-controller" method="post" id="{{$form['table']}}" name="{{$form['table']}}">
{{$form['tpl']}}
@if($taxs)
<div class="panel m-t-sm">
<table class="table">
<tr>
<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>
@foreach($taxs as $tax)
<tr>
<td>{{$tax['name']}}</td>
<td align="center">{{$tax['code']}}</td>
<td align="center">{{$tax['tax_number']}}</td>
<td align="center">{{$tax['bank_name']}}</td>
<td align="center">{{$tax['bank_account']}}</td>
<td align="center">@if($tax['status'] == '1') 生效 @else 草稿 @endif</td>
</tr>
@endforeach
</table>
</div>
@endif
</form>
</div>
</div>
<script>
</script>
@@ -0,0 +1,132 @@
<div class="wrapper-xs">
<form id="dialog-{{$search['query']['id']}}-search-form" class="form-inline search-inline-form" method="get">
@include('searchForm3')
</form>
</div>
<div id="dialog-{{$search['query']['id']}}" class="ag-theme-balham" style="width:100%;height:380px;"></div>
<script>
(function ($) {
var search = JSON.parse('{{json_encode($search)}}');
var params = search.query;
var option = gdoo.formKey(params);
var event = gdoo.event.get(option.key);
event.trigger('query', params);
var sid = params.prefix == 1 ? 'sid' : 'id';
var grid = new agGridOptions();
var multiple = params.multi == 0 ? false : true;
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = params;
grid.suppressRowClickSelection = true;
grid.rowSelection = multiple ? 'multiple' : 'single';
grid.columnDefs = [
{suppressMenu: true, cellClass:'text-center', checkboxSelection: true, headerCheckboxSelection: multiple, suppressSizeToFit: true, sortable: false, width: 40},
{suppressMenu: true, cellClass:'text-left', sortable: false, field: 'name', headerName: '客户名称', minWidth: 160},
{suppressMenu: true, cellClass:'text-center', field: 'code', headerName: '客户编码', width: 60},
{suppressMenu: true, cellClass:'text-center', cellRenderer: statusRenderer, field: 'status', headerName: '状态', width: 60},
{suppressMenu: true, cellClass:'text-center', field: 'id', headerName: 'ID', width: 60}
];
function statusRenderer(row) {
if (row.value == 0) {
return '<span style="color:red">禁用</span>';
}
if (row.value == 1) {
return '启用';
}
}
grid.onRowClicked = function(row) {
var selected = row.node.isSelected();
if (selected === false) {
row.node.setSelected(true, true);
}
};
grid.onRowDoubleClicked = function (row) {
var ret = writeSelected();
if (ret == true) {
$('#gdoo-dialog-' + params.dialog_index).dialog('close');
}
};
/**
* 初始化选择
*/
function initSelected() {
if (params.is_grid) {
} else {
var rows = {};
var id = $('#'+option.id).val();
if (id) {
var ids = id.split(',');
for (var i = 0; i < ids.length; i++) {
rows[ids[i]] = ids[i];
}
}
grid.api.forEachNode(function(node) {
var key = node.data[sid];
if (rows[key] != undefined) {
node.setSelected(true);
}
});
}
}
/**
* 写入选中
*/
function writeSelected() {
var rows = grid.api.getSelectedRows();
if (params.is_grid) {
var list = gdoo.forms[params.form_id];
list.api.dialogSelected(params);
} else {
var id = [];
var text = [];
$.each(rows, function(k, row) {
id.push(row[sid]);
text.push(row.name);
});
$('#'+option.id).val(id.join(','));
$('#'+option.id+'_text').val(text.join(','));
if (event.exist('onSelect')) {
return event.trigger('onSelect', multiple ? rows : rows[0]);
}
}
return true;
}
grid.writeSelected = writeSelected;
gdoo.dialogs[option.id] = grid;
var gridDiv = document.querySelector("#dialog-{{$search['query']['id']}}");
new agGrid.Grid(gridDiv, grid);
// 读取数据
grid.remoteData({page: 1});
// 数据载入成功
grid.remoteSuccessed = function() {
initSelected();
}
var data = search.forms;
var search = $("#dialog-{{$search['query']['id']}}-search-form").searchForm({
data: data
});
search.find('#search-submit').on('click', function() {
var params = search.serializeArray();
$.map(params, function(row) {
data[row.name] = row.value;
});
grid.remoteData(data);
return false;
});
})(jQuery);
</script>
@@ -0,0 +1,88 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
action.dialogType = 'layer';
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
action.priceEdit = function() {
var me = this;
var grid = config.grid;
var selections = grid.api.getSelectedRows();
var ids = [];
$.each(selections, function(i, selection) {
ids.push(selection.master_id);
});
if (ids.length > 0) {
formDialog({
title: '销售产品价格',
dialogClass: 'modal-sm',
id: 'price-edit-form',
url: app.url(me.bill_url + '/priceEdit', {ids: ids.join(',')}),
success: function(res) {
toastrSuccess(res.data);
grid.remoteData();
$(this).dialog("close");
},
close: function() {
$(this).dialog("close");
}
});
} else {
toastrError('最少选择一行记录。');
}
}
var options = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
gridDiv.style.height = getPanelHeight(48);
options.remoteDataUrl = '{{url()}}';
options.autoColumnsToFit = false;
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.master_id > 0) {
action.show(params.data);
}
};
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,15 @@
<div class="wrapper-xs">
<form id="price-edit-form" action="{{url()}}" method="post">
<div class="form-group m-b-xs">
<div class="select-group input-group">
<input class="form-control input-sm" placeholder="请选择产品" data-toggle="dialog-view" readonly="readonly" data-title="产品" data-url="product/product/dialog" data-id="product_id" data-multi="0" style="min-width:153px;cursor:pointer;" id="product_id_text">
<input type="hidden" id="product_id" name="product_id">
<div class="input-group-btn"><a data-toggle="dialog-clear" data-id="product_id" class="btn btn-sm btn-default"><i class="fa fa-times"></i></a></div>
</div>
</div>
<div class="form-group m-b-none">
<input name="price" autocomplete="off" placeholder="请输入销售价格" class="form-control input-sm">
</div>
<input name="ids" type="hidden" value="{{$gets['ids']}}">
</form>
</div>
@@ -0,0 +1,34 @@
<div class="form-panel">
<div class="form-panel-header">
<div class="pull-right">
</div>
{{$form['btn']}}
</div>
<div class="form-panel-body panel-form-{{$form['action']}}">
<form class="form-horizontal form-controller" method="post" id="{{$form['table']}}" name="{{$form['table']}}">
{{$form['tpl']}}
</form>
</div>
</div>
<script>
gdoo.event.set('grid.customer_apply_brand', {
ready(me) {
me.dataKey = 'sale_money';
me.suppressContextMenu = false;
}
});
gdoo.event.set('grid.customer_apply_grid', {
ready(me) {
me.dataKey = 'sale_quantity';
me.suppressContextMenu = false;
}
});
gdoo.event.set('grid.customer_apply_category', {
ready(me) {
me.dataKey = 'category_id';
me.suppressContextMenu = false;
}
});
</script>
@@ -0,0 +1,60 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
action.dialogType = 'layer';
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
var options = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
gridDiv.style.height = getPanelHeight(48);
options.remoteDataUrl = '{{url()}}';
options.autoColumnsToFit = false;
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.master_id > 0) {
action.show(params.data);
}
};
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,3 @@
<form class="form-horizontal form-controller" method="post" id="customer_class" name="customer_class">
{{$form['tpl']}}
</form>
@@ -0,0 +1,122 @@
<div class="wrapper-xs">
<form id="dialog-{{$search['query']['id']}}-search-form" class="form-inline" method="get">
@include('searchForm6')
</form>
</div>
<div id="dialog-{{$search['query']['id']}}" class="ag-theme-balham" style="width:100%;height:380px;"></div>
<script>
(function ($) {
var search = JSON.parse('{{json_encode($search)}}');
var params = search.query;
var option = gdoo.formKey(params);
var event = gdoo.event.get(option.key);
event.trigger('query', params);
var sid = params.prefix == 1 ? 'sid' : 'id';
var gridDiv = document.querySelector("#dialog-{{$search['query']['id']}}");
var grid = new agGridOptions();
var selectedData = {};
var multiple = params.multi == 0 ? false : true;
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = params;
grid.suppressRowClickSelection = true;
grid.rowSelection = multiple ? 'multiple' : 'single';
grid.columnDefs = [
{suppressMenu: true, cellClass:'text-center', checkboxSelection: true, headerCheckboxSelection: false, suppressSizeToFit: true, sortable: false, width: 40},
{suppressMenu: true, field: 'name', headerName: '名称', width: 100},
{suppressMenu: true, cellClass:'text-center', field: 'code', headerName: '编码', width: 80},
{suppressMenu: true, cellClass:'text-center', field: 'id', headerName: 'ID', width: 60}
];
grid.onRowClicked = function(row) {
var selected = row.node.isSelected();
if (selected === false) {
row.node.setSelected(true, true);
}
};
grid.onRowDoubleClicked = function (row) {
var ret = writeSelected();
if (ret == true) {
$('#gdoo-dialog-' + params.dialog_index).dialog('close');
}
};
/**
* 初始化选择
*/
function initSelected() {
if (params.is_grid) {
} else {
var rows = {};
var id = $('#'+option.id).val();
if (id) {
var ids = id.split(',');
for (var i = 0; i < ids.length; i++) {
rows[ids[i]] = ids[i];
}
}
grid.api.forEachNode(function(node) {
var key = node.data[sid];
if (rows[key] != undefined) {
node.setSelected(true);
}
});
}
}
/**
* 写入选中
*/
function writeSelected() {
var rows = grid.api.getSelectedRows();
if (params.is_grid) {
var list = gdoo.forms[params.form_id];
list.api.dialogSelected(params);
} else {
var id = [];
var text = [];
$.each(rows, function(k, row) {
id.push(row[sid]);
text.push(row.name);
});
$('#'+option.id).val(id.join(','));
$('#'+option.id+'_text').val(text.join(','));
if (event.exist('onSelect')) {
return event.trigger('onSelect', multiple ? rows : rows[0]);
}
}
return true;
}
grid.writeSelected = writeSelected;
gdoo.dialogs[option.id] = grid;
new agGrid.Grid(gridDiv, grid);
// 读取数据
grid.remoteData();
// 数据载入成功
grid.remoteSuccessed = function() {
initSelected();
}
var data = search.forms;
var search = $("#dialog-{{$search['query']['id']}}-search-form").searchForm({
data: data
});
search.find('#search-submit').on('click', function() {
var params = search.serializeArray();
$.map(params, function(row) {
data[row.name] = row.value;
});
grid.remoteData(data);
return false;
});
})(jQuery);
</script>
@@ -0,0 +1,64 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['table']}}-controller">
@include('headers')
<div class="list-jqgrid">
<div id="{{$header['table']}}-grid" class="ag-theme-balham"></div>
<div class="ag-theme-balham" id="ag-pagination"></div>
<div class="clearfix"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
var grid = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['table']}}-grid");
gridDiv.style.height = getPanelHeight(11);
config.cols[0]['hide'] = true;
config.cols[1]['hide'] = true;
grid.autoGroupColumnDef = {
headerName: '名称',
width: 250,
cellRendererParams: {
checkbox: true,
suppressCount: false,
}
};
grid.treeData = true;
grid.groupDefaultExpanded = -1;
grid.getDataPath = function(data) {
return data.tree_path;
};
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = search.advanced.query;
grid.columnDefs = config.cols;
new agGrid.Grid(gridDiv, grid);
// 读取数据
grid.remoteData();
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = grid;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,4 @@
<form class="form-horizontal form-controller" method="post" id="{{$form['table']}}" name="{{$form['table']}}">
{{$form['tpl']}}
</form>
@@ -0,0 +1,116 @@
<div class="padder">
<div class="m-t-sm m-b-sm">
<form id="dialog-{{$search['query']['id']}}-search-form" class="form-inline" method="get">
@include('searchForm3')
</form>
</div>
</div>
<div id="dialog-{{$search['query']['id']}}" class="ag-theme-balham" style="width:100%;height:380px;"></div>
<script>
(function ($) {
var search = JSON.parse('{{json_encode($search)}}');
var params = search.query;
var sid = params.prefix == 1 ? 'sid' : 'id';
var gridDiv = document.querySelector("#dialog-{{$search['query']['id']}}");
var grid = new agGridOptions();
var selectedData = {};
var multiple = params.multi == 0 ? false : true;
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = {};
//grid.rowMultiSelectWithClick = multiple;
grid.rowSelection = multiple ? 'multiple' : 'single';
grid.columnDefs = [
{suppressMenu: true, cellClass:'text-center', checkboxSelection: true, headerCheckboxSelection: multiple, suppressSizeToFit: true, sortable: false, width: 40},
{suppressMenu: true, cellClass:'text-center', sortable: false, field: 'name', headerName: '姓名', minWidth: 160},
{suppressMenu: true, cellClass:'text-center', field: 'phone', headerName: '手机', width: 160},
{suppressMenu: true, cellClass:'text-center', field: 'id', headerName: 'ID', width: 80}
];
grid.onRowClicked1 = function(row) {
var id = row.data[sid];
if (selectedData[id]) {
delete selectedData[id];
row.node.setSelected(false);
} else {
if (multiple == false) {
selectedData = {};
}
selectedData[id] = row.data.name;
}
writeSelected();
};
grid.onSelectionChanged = function() {
var rows = grid.api.getSelectedRows();
selectedData = {};
for (let i = 0; i < rows.length; i++) {
var row = rows[i];
selectedData[row.id] = row.name;
}
writeSelected();
};
grid.onRowDoubleClicked = function (row) {
grid.onRowClicked(row);
$('#gdoo-dialog-' + params.dialog_index).dialog('close');
};
function initSelected() {
selectedData = {};
var id = $('#'+params.id).val();
var text = $('#'+params.id+'_text').val();
if (id && text) {
id = id.split(',');
text = text.split(',');
for (var i = 0; i < id.length; i++) {
selectedData[id[i]] = text[i];
}
}
}
function writeSelected() {
var id = [];
var text = [];
$.each(selectedData, function(k, v) {
id.push(k);
text.push(v);
});
$('#'+params.id).val(id.join(','));
$('#'+params.id+'_text').val(text.join(','));
}
new agGrid.Grid(gridDiv, grid);
// 读取数据
grid.remoteData({page: 1});
// 数据载入成功
grid.remoteSuccessed = function() {
initSelected();
grid.api.forEachNode(function(node) {
// 默认选中
$.each(selectedData, function(k, v) {
if (node.data[sid] == k) {
node.setSelected(true);
}
});
});
}
var data = search.forms;
var search = $("#dialog-{{$search['query']['id']}}-search-form").searchForm({
data: data
});
search.find('#search-submit').on('click', function() {
var params = search.serializeArray();
$.map(params, function(row) {
data[row.name] = row.value;
});
grid.remoteData(data);
return false;
});
})(jQuery);
</script>
@@ -0,0 +1,59 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
//action.dialogType = 'layer';
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
var options = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
gridDiv.style.height = getPanelHeight(48);
options.remoteDataUrl = '{{url()}}';
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.id > 0) {
action.edit(params.data);
}
};
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,14 @@
<style>
body {
background-color: #f0f3f4;
}
</style>
<div class="panel panel-info">
<div class="panel-heading b-b">
<div class="text-sm"><i class="fa text-md fa-list-alt"></i> 职位</div>
</div>
<div class="form-controller">
{{$header['tpl']}}
</div>
</div>
@@ -0,0 +1,138 @@
<div class="form-panel">
<div class="form-panel-header">
<div class="pull-right">
</div>
{{$form['btn']}}
<a href="javascript:referCustomerDialog();" class="btn btn-sm btn-default">
参照价格
</a>
</div>
<div class="form-panel-body panel-form-{{$form['action']}}">
<form class="form-horizontal form-controller" method="post" id="{{$form['table']}}" name="{{$form['table']}}">
<div class="panel">
{{$form['tpl']}}
</div>
<div id="tab-content-customer_price">
<div id="grid_customer_price_data" class="ag-theme-balham ag-bordered" style="width:100%;"></div>
</div>
</form>
</div>
</div>
<script>
var $table = null;
var customer_id = $('#customer_price_customer_id').val();
var params = {customer_id: customer_id};
(function($) {
var options = {};
options.columns = [
{field:'id', hide: true},
{field:'product_id', hide: true},
{suppressSizeToFit: true, headerName:'', cellRenderer:'optionCellRenderer', width: 60, sortable: false, cellClass: 'text-center', suppressNavigable: true},
{headerName: '存货编码', field:'product_code', cellClass:'text-center', suppressNavigable: false, width: 120},
{headerName: '产品名称',editable: true,suppressNavigable: false, width: 220,
cellEditorParams: {
form_type: 'dialog',
title: '产品',
type: 'product',
field: 'product_name',
url: 'product/product/dialog',
query: {
form_id: "customer_price_data",
id: "product_id",
name: "product_name"
}
},
cellEditor: 'dialogCellEditor',
field: 'product_name'
},
{headerName: '规格型号', field:'product_spec', cellClass:'text-center', suppressNavigable: false, width: 120},
{headerName: '产品条码', field:'product_barcode', cellClass:'text-center', suppressNavigable: false, width: 120},
{headerName: '计量单位', field:'product_unit', cellClass:'text-center', suppressNavigable: false, width: 120},
{headerName: '销售价格', field:'price', editable: true, cellClass:'text-right', width: 120},
{headerName: '备注', field:'remark', editable: true, width: 200},
];
options.table = "customer_price_data";
options.title = "订单商品";
options.heightTop = 12;
options.links = {
product_id: {
product_id: "id",
product_name: "name",
product_code: "code",
product_spec: "spec",
product_barcode: "barcode",
product_unit: "unit_id_name"
}
};
var grid = gridForms("customer_price", "customer_price_data", options);
grid.dataKey = 'product_id';
$.post(app.url('customer/price/list'), params, function(res) {
if (res.data.length > 0) {
grid.api.setRowData(res.data);
}
});
// 选择客户事件
gdoo.event.set('customer_price.customer_id', {
onSelect(row) {
if (row.id) {
params['customer_id'] = row.id;
$.post(app.url('customer/price/list'), params, function(res) {
if (res.data.length > 0) {
grid.api.setRowData(res.data);
} else {
grid.api.setRowData([]);
grid.api.memoryStore.create({});
}
});
return true;
}
}
});
var referCustomerDialog = function () {
var buttons = [{
text: "取消",
'class': "btn-default",
click: function () {
$(this).dialog("close");
}
}];
buttons.push({
text: '提交',
'class': 'btn-info',
click: function () {
var loading = layer.msg('数据提交中...', {
icon: 16, shade: 0.1, time: 1000 * 120
});
var rows = refer_customer.api.getSelectedRows();
for (var i = 0; i < rows.length; i++) {
let row = rows[i];
grid.api.memoryStore.create(row);
}
layer.close(loading);
grid.generatePinnedBottomData();
$(this).dialog('close');
}
});
$.dialog({
title: '参照客户价格',
url: '{{url("referCustomer")}}',
dialogClass: 'modal-lg',
buttons: buttons
});
};
window.referCustomerDialog = referCustomerDialog;
})(jQuery);
</script>
@@ -0,0 +1,60 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
action.dialogType = 'layer';
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
var options = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
gridDiv.style.height = getPanelHeight(48);
options.remoteDataUrl = '{{url()}}';
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
var data = params.data;
if (data == undefined) {
return;
}
if (data.master_id > 0) {
action.edit(params.data);
}
};
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,74 @@
<div class="wrapper-xs">
<form id="dialog-{{$search['query']['id']}}-search-form" class="form-inline" method="get">
@include('searchForm3')
</form>
</div>
<div id="dialog-{{$search['query']['id']}}" class="ag-theme-balham" style="width:100%;height:380px;"></div>
<script>
(function ($) {
var search = JSON.parse('{{json_encode($search)}}');
var params = search.query;
var option = gdoo.formKey(params);
var event = gdoo.event.get(option.key);
event.trigger('query', params);
var sid = params.prefix == 1 ? 'sid' : 'id';
var gridDiv = document.querySelector("#dialog-{{$search['query']['id']}}");
var grid = new agGridOptions();
var selectedData = {};
var multiple = params.multi == 0 ? false : true;
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = params;
grid.suppressRowClickSelection = true;
grid.rowSelection = multiple ? 'multiple' : 'single';
grid.columnDefs = [
{field:'product_id', hide: true},
{suppressMenu: true, cellClass:'text-center', checkboxSelection: true, headerCheckboxSelection: true, suppressSizeToFit: true, sortable: false, width: 40},
{headerName:'存货编码', field:'product_code', cellClass:'text-center', suppressNavigable: false, width: 120},
{headerName:'产品名称', field: 'product_name', suppressNavigable: false, width: 220},
{headerName:'规格型号', field:'product_spec', cellClass:'text-center', suppressNavigable: false, width: 120},
{headerName:'产品条码', field:'product_barcode', cellClass:'text-center', suppressNavigable: false, width: 120},
{headerName:'计量单位', field:'product_unit', cellClass:'text-center', suppressNavigable: false, width: 120},
{headerName:'销售价格', field:'price', cellClass:'text-right', width: 120},
{headerName:'备注', field:'remark', width: 200},
];
grid.onRowClicked = function(row) {
var selected = row.node.isSelected();
if (selected === false) {
row.node.setSelected(true, true);
}
};
grid.onRowDoubleClicked = function (row) {
var ret = writeSelected();
if (ret == true) {
$('#aike-dialog-' + params.dialog_index).dialog('close');
}
};
gdoo.dialogs[option.id] = grid;
new agGrid.Grid(gridDiv, grid);
// 读取数据
grid.remoteData();
var data = search.forms;
var search = $("#dialog-{{$search['query']['id']}}-search-form").searchForm({
data: data
});
search.find('#search-submit').on('click', function() {
var params = search.serializeArray();
$.map(params, function(row) {
data[row.name] = row.value;
});
grid.remoteData(data);
return false;
});
})(jQuery);
</script>
@@ -0,0 +1,129 @@
<div class="panel">
<div class="wrapper-sm">
<form class="form-inline" method="post" id="query-form" name="query-form">
<div class="form-inline">
<div class="row">
<?php $m = date('Y-m-01'); ?>
<div class="form-group">
<div class="col-sm-12">
<label class="control-label">对账客户</label>
{{App\Support\Dialog::user('customer', 'customer', '', 0, 0, 135)}}
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<label class="control-label">开始日期</label>
<input class="form-control input-sm" data-toggle="date" type="text" name="start_at" id="start_at" placeholder="开始日期" value="{{$m}}">
</div>
</div>
<div class="form-group m-b-xs">
<div class="col-sm-12">
<label class="control-label">开始日期</label>
<input class="form-control input-sm" data-toggle="date" type="text" id="end_at" placeholder="开始日期" name="end_at" value="{{date('Y-m-d', strtotime("$m +1 month -1 day"))}}">
<div class="visible-xs-block m-t"></div>
<span class="hidden-xs">&nbsp;</span>
<a href="javascript:formQuery();" class="btn btn-sm btn-info"><i class="icon icon-search"></i> 查询</a>
</div>
</div>
</div>
</div>
</form>
</div>
<div class="list-jqgrid">
<table id="account-single"></table>
</div>
</div>
<script>
var $table = null;
var params = {};
(function($) {
$table = $("#account-single");
var model = [
{name: "ccusname", hidden: true, index: 'ccusname', label: '客户名称', width: 100, align: 'center'},
{name: "date", index: 'date', label: '单据日期', width: 100, align: 'center'},
{name: "ddh", index: 'ddh', label: '订单号', width: 120, align: 'left'},
{name: "digest", index: 'digest', label: '摘要', width: 220, align: 'left'},
{name: "zp", index: 'zp', label: '赠品金额', width: 180, align: 'right'},
{name: "jmoney", index: 'jmoney', label: '本期应收金额', width: 180, align: 'right'},
{name: "dmoney", index: 'dmoney', label: '本期收回金额', width: 180, align: 'right'},
{name: "balance", index: 'balance', label: '余额', width: 180, align: 'right'}
];
$table.jqGrid({
caption: '',
datatype: 'json',
mtype: 'POST',
url: app.url('customer/account/query'),
colModel: model,
rowNum: 1000,
multiselect: false,
viewrecords: true,
rownumbers: true,
height: getPanelHeight(),
footerrow: false,
postData: params,
grouping:true,
groupingView : {
groupField : ['ccusname'],//分组属性
groupColumnShow : [false,false],//是否显示分组列
groupText : ['<b>{0}</b>'],//表头显示数据(每组中包含的数据量)
groupCollapse :false,//加载数据时是否只显示分组的组信息
groupSummary : [false,false],//是否显示汇总 如果为true需要在colModel中进行配置summaryType:'max',summaryTpl:'<b>Max: {0}</b>'
groupDataSorted : false,//分组中的数据是否排序
groupOrder:['desc','desc'] , //分组后组的排列顺序
//showSummaryOnHide: true//是否在分组底部显示汇总信息并且当收起表格时是否隐藏下面的分组
},
gridComplete: function() {
$(this).jqGrid('setColsWidth');
},
loadComplete: function(res) {
var me = $(this);
me.jqGrid('initPagination', res);
}
});
})(jQuery);
function formQuery()
{
var query_form = $('#query-form');
var query = query_form.serializeArray();
for (var i = 0; i < query.length; i++) {
params[query[i].name] = query[i].value;
}
$table.jqGrid('setGridParam', {
postData: params,
page: 1
}).trigger('reloadGrid');
}
function getPanelHeight() {
var list = $('.list-jqgrid').position();
return top.iframeHeight - list.top - 45;
}
// 框架页面改变大小时会调用此方法
function iframeResize() {
// 框架改变大小时设置Panel高度
$table.jqGrid('setPanelHeight', getPanelHeight());
// resize jqgrid大小
$table.jqGrid('resizeGrid');
}
</script>
@@ -0,0 +1,3 @@
<form class="form-horizontal form-controller" method="post" id="customer_region" name="customer_region">
{{$form['tpl']}}
</form>
@@ -0,0 +1,134 @@
<div class="wrapper-xs">
<form id="dialog-{{$search['query']['id']}}-search-form" class="form-inline search-inline-form" method="get">
@include('searchForm6')
</form>
</div>
<div id="dialog-{{$search['query']['id']}}" class="ag-theme-balham" style="width:100%;height:380px;"></div>
<script>
(function ($) {
var search = JSON.parse('{{json_encode($search)}}');
var params = search.query;
var option = gdoo.formKey(params);
var event = gdoo.event.get(option.key);
event.trigger('query', params);
var sid = params.prefix == 1 ? 'sid' : 'id';
var gridDiv = document.querySelector("#dialog-{{$search['query']['id']}}");
var grid = new agGridOptions();
var selectedData = {};
var multiple = params.multi == 0 ? false : true;
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = params;
grid.suppressRowClickSelection = true;
grid.rowSelection = multiple ? 'multiple' : 'single';
grid.autoGroupColumnDef = {
headerName: '名称',
width: 250,
cellRendererParams: {
checkbox: true,
suppressCount: false,
}
};
grid.treeData = true;
grid.groupDefaultExpanded = -1;
grid.getDataPath = function(data) {
return data.tree_path;
};
grid.columnDefs = [];
grid.columnDefs.push(
{suppressMenu: true, cellClass:'text-center', field: 'id', headerName: 'ID', width: 60}
);
grid.onRowClicked = function(row) {
var selected = row.node.isSelected();
if (selected === false) {
row.node.setSelected(true, true);
}
};
grid.onRowDoubleClicked = function (row) {
var ret = writeSelected();
if (ret == true) {
$('#gdoo-dialog-' + params.dialog_index).dialog('close');
}
};
/**
* 初始化选择
*/
function initSelected() {
if (params.is_grid) {
} else {
var rows = {};
var id = $('#'+option.id).val();
if (id) {
var ids = id.split(',');
for (var i = 0; i < ids.length; i++) {
rows[ids[i]] = ids[i];
}
}
grid.api.forEachNode(function(node) {
var key = node.data[sid];
if (rows[key] != undefined) {
node.setSelected(true);
}
});
}
}
/**
* 写入选中
*/
function writeSelected() {
var rows = grid.api.getSelectedRows();
if (params.is_grid) {
var list = gdoo.forms[params.form_id];
list.api.dialogSelected(params);
} else {
var id = [];
var text = [];
$.each(rows, function(k, row) {
id.push(row[sid]);
text.push(row.name);
});
$('#'+option.id).val(id.join(','));
$('#'+option.id+'_text').val(text.join(','));
if (event.exist('onSelect')) {
return event.trigger('onSelect', multiple ? rows : rows[0]);
}
}
return true;
}
grid.writeSelected = writeSelected;
gdoo.dialogs[option.id] = grid;
new agGrid.Grid(gridDiv, grid);
// 读取数据
grid.remoteData();
// 数据载入成功
grid.remoteSuccessed = function() {
initSelected();
}
var data = search.forms;
var search = $("#dialog-{{$search['query']['id']}}-search-form").searchForm({
data: data
});
search.find('#search-submit').on('click', function() {
var params = search.serializeArray();
$.map(params, function(row) {
data[row.name] = row.value;
});
grid.remoteData(data);
return false;
});
})(jQuery);
</script>
@@ -0,0 +1,78 @@
{{$header["js"]}}
<div class="panel no-border m-b-sm" id="{{$header['master_table']}}-controller">
@include('headers')
<div class="list-jqgrid">
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
var table = '{{$header["master_table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
(function ($) {
var options = new agGridOptions();
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
config.cols[0]['hide'] = true;
config.cols[1]['hide'] = true;
config.cols[2]['hide'] = true;
options.autoGroupColumnDef = {
groupSelectsChildren: true,
headerName: '名称',
width: 250,
cellRendererParams: {
checkbox: true,
suppressCount: true,
}
};
options.treeData = true;
options.groupDefaultExpanded = -1;
options.getDataPath = function(data) {
return data.tree_path;
};
options.remoteDataUrl = '{{url()}}';
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.id > 0) {
action.edit(params.data);
}
};
var height = getPanelHeight(11);
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
gridDiv.style.height = height;
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,30 @@
<div class="form-panel">
<div class="form-panel-header">
<div class="pull-right">
</div>
{{$form['btn']}}
</div>
<div class="form-panel-body panel-form-{{$form['action']}}">
<form class="form-horizontal form-controller" method="post" id="{{$form['table']}}" name="{{$form['table']}}">
{{$form['tpl']}}
</form>
</div>
</div>
<script>
var form_action = '{{$form["action"]}}';
(function ($) {
// grid初始化事件
gdoo.event.set('grid.customer_region_task_data', {
init(me) {
me.enableCellTextSelection = false;
me.enableRangeSelection = true;
me.suppressContextMenu = false;
},
ready(me) {
me.dataKey = 'region_id';
}
});
})(jQuery);
</script>
@@ -0,0 +1,60 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
action.dialogType = 'layer';
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
var options = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
gridDiv.style.height = getPanelHeight(48);
options.remoteDataUrl = '{{url()}}';
options.autoColumnsToFit = false;
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.master_id > 0) {
action.show(params.data);
}
};
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,117 @@
<div class="panel b-a" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var search = JSON.parse('{{json_encode($header["search_form"])}}');
var columns = [];
var params = search.query;
var grid = new agGridOptions();
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = params;
grid.defaultColDef.suppressMenu = true;
grid.defaultColDef.sortable = true;
grid.defaultColDef.filter = false;
grid.autoColumnsToFit = false;
grid.singleClickEdit = true;
grid.rowSelection = 'single';
grid.suppressCellSelection = false;
grid.columnDefs = [
{cellClass:'text-center', field: 'sn', type: 'sn', headerName: '序号', width: 50},
{cellClass:'text-center', field: 'region_name', headerName: '区域', width: 120},
{cellClass:'text-right', field: 'total_task', headerName: '总任务', width: 80, type:'number', numberOptions: {places:2}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'total_money', headerName: '累计销售', width: 80, type:'number', numberOptions: {places:4}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'total_rate', headerName: '总进度', width: 80, type:'number', numberOptions: {places:2}, calcFooter: 'sum'},
];
for(var i=1; i <= 12;i++) {
grid.columnDefs.push({
cellClass:'text-center', headerName: i + '月',
children: [
{cellClass:'text-right', headerName:'任务', width: 60, field:'month' + i, type:'number', numberOptions:{places:2, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'销售', width: 80, field:'month_'+i+'_money', type:'number', numberOptions:{places:4, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'进度', width: 60, field:'month_'+i+'_rate', type:'number', numberOptions:{places:2, default:'0'}}
]
});
}
for(var i=1; i <= 4;i++) {
var dx = {
1: '一',
2: '二',
3: '三',
4: '四',
};
grid.columnDefs.push({
cellClass:'text-center', headerName: dx[i] + '季度',
children: [
{cellClass:'text-right', headerName:'任务', width: 60, field:'quarter_' + i, type:'number', numberOptions:{places:2, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'销售', width: 80, field:'quarter_'+i+'_money', type:'number', numberOptions:{places:4, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'进度', width: 60, field:'quarter_'+i+'_rate', type:'number', numberOptions:{places:2, default:'0'}}
]
});
}
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
new agGrid.Grid(gridDiv, grid);
gridDiv.style.height = getPanelHeight(12);
// 读取数据
grid.remoteData();
var search_advanced = $('#' + table + '-search-form-advanced').searchForm({
data: search.forms,
advanced: true,
});
gdoo.grids[table] = {grid: grid};
var action = new gridAction(table, '区域销售进度');
var panel = $('#' + table + '-controller');
panel.on('click', '[data-toggle="' + table + '"]', function() {
var data = $(this).data();
if (data.action == 'filter') {
// 过滤数据
$('#' + table + '-search-form-advanced').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.serializeArray();
params = {};
$.map(query, function(row) {
params[row.name] = row.value;
});
grid.remoteData(params);
$(this).dialog("close");
return false;
}
}]
});
}
if (data.action == 'export') {
action.export(data, '区域销售进度');
}
});
})(jQuery);
</script>
@@ -0,0 +1,77 @@
<div class="form-panel">
<div class="form-panel-header">
<div class="pull-right">
</div>
{{$form['btn']}}
</div>
<div class="form-panel-body panel-form-{{$form['action']}}">
<form class="form-horizontal form-controller" method="post" id="{{$form['table']}}" name="{{$form['table']}}">
{{$form['tpl']}}
</form>
</div>
</div>
<script>
var form_action = '{{$form["action"]}}';
(function ($) {
$("#customer_task_data_tool").append('<a class="btn btn-sm btn-default" href="javascript:importExcel();">导入</a>');
// 发货记录
function importExcel() {
var url = app.url('customer/task/importExcel');
formDialog({
title: '导入数据',
url: url,
id: 'import_excel',
dialogClass:'modal-md',
onSubmit: function() {
var me = this;
var form = $('#import_excel');
var file = document.querySelector("#import_file").files[0];
var formData = new FormData();
formData.append('file', file);
var loading = layer.msg('数据提交中...', {
icon: 16, shade: 0.1, time: 1000 * 120
});
$.ajax(url, {
method: "post",
data: formData,
processData: false,
contentType: false,
complete: function() {
layer.close(loading);
},
success: function (res) {
if (res.status) {
grid.api.setRowData([]);
for (var i = 0; i < res.data.length; i++) {
var row = res.data[i];
grid.api.memoryStore.create(row);
}
grid.generatePinnedBottomData();
$(me).dialog('close');
toastrSuccess('导入数据成功。');
} else {
toastrError(res.data);
}
},
error: function (res) {
toastrError(res.data);
}
});
}
});
}
window.importExcel = importExcel;
// grid初始化事件
gdoo.event.set('grid.customer_task_data', {
ready(me) {
grid = me;
grid.dataKey = 'customer_id';
}
});
})(jQuery);
</script>
@@ -0,0 +1,60 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
action.dialogType = 'layer';
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
var options = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
gridDiv.style.height = getPanelHeight(48);
options.remoteDataUrl = '{{url()}}';
options.autoColumnsToFit = false;
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.master_id > 0) {
action.show(params.data);
}
};
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,132 @@
<div class="panel b-a" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var search = JSON.parse('{{json_encode($header["search_form"])}}');
var columns = [];
var params = search.query;
var grid = new agGridOptions();
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = params;
grid.defaultColDef.suppressMenu = true;
grid.defaultColDef.sortable = true;
grid.defaultColDef.filter = false;
grid.autoColumnsToFit = false;
grid.singleClickEdit = true;
grid.rowSelection = 'single';
grid.suppressCellSelection = false;
grid.defaultColDef.cellStyle = function(params) {
if (params.node.rowPinned) {
return;
}
var style = {};
var field = params.colDef.field;
if (params.data.status == '0' && (field == "customer_code" || field == "customer_name")) {
style = {'color':'red'};
}
return style;
};
grid.columnDefs = [
{cellClass:'text-center', field: 'sn', type: 'sn', headerName: '序号', width: 50},
{cellClass:'text-center', field: 'region_name', headerName: '区域', width: 100},
{cellClass:'text-center', field: 'customer_code', headerName: '客户编码', width: 80},
{cellClass:'text-left', field: 'customer_name', headerName: '客户名称', width: 180},
{cellClass:'text-right', field: 'total_count', headerName: '总订单数', width: 80, type:'number', numberOptions: {places:0}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'total_task', headerName: '总任务', width: 80, type:'number', numberOptions: {places:2}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'total_money', headerName: '累计销售', width: 80, type:'number', numberOptions: {places:4}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'total_rate', headerName: '总进度', width: 80, type:'number', numberOptions: {places:2}, calcFooter: 'sum'},
];
for(var i=1; i <= 12;i++) {
grid.columnDefs.push({
cellClass:'text-center', headerName: i + '月',
children: [
{cellClass:'text-right', headerName:'任务', width: 60, field:'month' + i, type:'number', numberOptions:{places:2, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'销售', width: 80, field:'month_'+i+'_money', type:'number', numberOptions:{places:4, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'进度', width: 60, field:'month_'+i+'_rate', type:'number', numberOptions:{places:2, default:'0'}}
]
});
}
for(var i=1; i <= 4;i++) {
var dx = {
1: '一',
2: '二',
3: '三',
4: '四',
};
grid.columnDefs.push({
cellClass:'text-center', headerName: dx[i] + '季度',
children: [
{cellClass:'text-right', headerName:'任务', width: 60, field:'quarter_' + i, type:'number', numberOptions:{places:2, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'销售', width: 80, field:'quarter_'+i+'_money', type:'number', numberOptions:{places:4, default:'0'}, calcFooter:'sum'},
{cellClass:'text-right', headerName:'进度', width: 60, field:'quarter_'+i+'_rate', type:'number', numberOptions:{places:2, default:'0'}}
]
});
}
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
new agGrid.Grid(gridDiv, grid);
gridDiv.style.height = getPanelHeight(12);
// 读取数据
grid.remoteData();
var search_advanced = $('#' + table + '-search-form-advanced').searchForm({
data: search.forms,
advanced: true,
});
gdoo.grids[table] = {grid: grid};
var action = new gridAction(table, '客户销售进度');
var panel = $('#' + table + '-controller');
panel.on('click', '[data-toggle="' + table + '"]', function() {
var data = $(this).data();
if (data.action == 'filter') {
// 过滤数据
$('#' + table + '-search-form-advanced').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.serializeArray();
params = {};
$.map(query, function(row) {
params[row.name] = row.value;
});
grid.remoteData(params);
$(this).dialog("close");
return false;
}
}]
});
}
if (data.action == 'export') {
action.export(data, '客户销售进度');
}
});
})(jQuery);
</script>
@@ -0,0 +1,32 @@
<div class="form-panel">
<div class="form-panel-header">
<div class="pull-right">
</div>
{{$form['btn']}}
</div>
<div class="form-panel-body panel-form-{{$form['action']}}">
<form class="form-horizontal form-controller" method="post" id="{{$form['table']}}" name="{{$form['table']}}">
{{$form['tpl']}}
</form>
</div>
</div>
<script>
(function ($) {
// 选择客户事件
gdoo.event.set('customer_tax.customer_id', {
query(params) {
},
onSelect(row) {
if (row.id) {
$('#customer_tax_class_id').val(row.class_id);
$('#customer_tax_class_id_text').val(row.class_id_name);
$('#customer_tax_department_id').val(row.department_id);
$('#customer_tax_department_id_text').val(row.department_id_name);
return true;
}
}
});
})(jQuery);
</script>
@@ -0,0 +1,135 @@
<div class="wrapper-xs">
<form id="dialog-{{$search['query']['id']}}-search-form" class="form-inline search-inline-form" method="get">
@include('searchForm3')
</form>
</div>
<div id="dialog-{{$search['query']['id']}}" class="ag-theme-balham" style="width:100%;height:380px;"></div>
<script>
(function ($) {
var search = JSON.parse('{{json_encode($search)}}');
var params = search.query;
var option = gdoo.formKey(params);
var event = gdoo.event.get(option.key);
event.trigger('query', params);
var sid = params.prefix == 1 ? 'sid' : 'id';
var grid = new agGridOptions();
var multiple = params.multi == 0 ? false : true;
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = params;
grid.suppressRowClickSelection = true;
grid.rowSelection = multiple ? 'multiple' : 'single';
grid.columnDefs = [
{suppressMenu: true, cellClass:'text-center', checkboxSelection: true, headerCheckboxSelection: multiple, suppressSizeToFit: true, sortable: false, width: 40},
{suppressMenu: true, cellClass:'text-left', sortable: false, field: 'name', headerName: '开票名称', minWidth: 160},
{suppressMenu: true, cellClass:'text-center', field: 'code', headerName: '开票编码', width: 80},
{suppressMenu: true, cellClass:'text-left', sortable: false, field: 'customer_name', headerName: '客户名称', minWidth: 160},
{suppressMenu: true, cellClass:'text-center', field: 'customer_code', headerName: '客户编码', width: 80},
{suppressMenu: true, cellClass:'text-center', cellRenderer: statusRenderer, field: 'status', headerName: '状态', width: 60},
{suppressMenu: true, cellClass:'text-center', field: 'id', headerName: 'ID', width: 60}
];
function statusRenderer(row) {
if (row.value == 0) {
return '<span style="color:red">禁用</span>';
}
if (row.value == 1) {
return '启用';
}
}
grid.onRowClicked = function(row) {
var selected = row.node.isSelected();
if (selected === false) {
row.node.setSelected(true, true);
}
};
grid.onRowDoubleClicked = function (row) {
var ret = writeSelected();
if (ret == true) {
$('#gdoo-dialog-' + params.dialog_index).dialog('close');
}
};
/**
* 初始化选择
*/
function initSelected() {
if (params.is_grid) {
} else {
var rows = {};
var id = $('#'+option.id).val();
if (id) {
var ids = id.split(',');
for (var i = 0; i < ids.length; i++) {
rows[ids[i]] = ids[i];
}
}
grid.api.forEachNode(function(node) {
var key = node.data[sid];
if (rows[key] != undefined) {
node.setSelected(true);
}
});
}
}
/**
* 写入选中
*/
function writeSelected() {
var rows = grid.api.getSelectedRows();
if (params.is_grid) {
var list = gdoo.forms[params.form_id];
list.api.dialogSelected(params);
} else {
var id = [];
var text = [];
$.each(rows, function(k, row) {
id.push(row[sid]);
text.push(row.name);
});
console.log('#'+option.id);
$('#'+option.id).val(id.join(','));
$('#'+option.id+'_text').val(text.join(','));
if (event.exist('onSelect')) {
return event.trigger('onSelect', multiple ? rows : rows[0]);
}
}
return true;
}
grid.writeSelected = writeSelected;
gdoo.dialogs[option.id] = grid;
var gridDiv = document.querySelector("#dialog-{{$search['query']['id']}}");
new agGrid.Grid(gridDiv, grid);
// 读取数据
grid.remoteData({page: 1});
// 数据载入成功
grid.remoteSuccessed = function() {
initSelected();
}
var data = search.forms;
var search = $("#dialog-{{$search['query']['id']}}-search-form").searchForm({
data: data
});
search.find('#search-submit').on('click', function() {
var params = search.serializeArray();
$.map(params, function(row) {
data[row.name] = row.value;
});
grid.remoteData(data);
return false;
});
})(jQuery);
</script>
@@ -0,0 +1,60 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
action.dialogType = 'layer';
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
var options = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
gridDiv.style.height = getPanelHeight(48);
options.remoteDataUrl = '{{url()}}';
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.autoColumnsToFit = false;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.id > 0) {
action.show(params.data);
}
};
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,3 @@
<form class="form-horizontal form-controller" method="post" id="customer_type" name="customer_type">
{{$form['tpl']}}
</form>
@@ -0,0 +1,57 @@
{{$header["js"]}}
<div class="panel no-border" id="{{$header['table']}}-controller">
@include('headers')
<div class='list-jqgrid'>
<div id="{{$header['table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["table"]}}';
var config = gdoo.grids[table];
var action = config.action;
var search = config.search;
// 自定义搜索方法
search.searchInit = function (e) {
var self = this;
}
var options = new agGridOptions();
var gridDiv = document.querySelector("#{{$header['table']}}-grid");
gridDiv.style.height = getPanelHeight(48);
options.remoteDataUrl = '{{url()}}';
options.remoteParams = search.advanced.query;
options.columnDefs = config.cols;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.id > 0) {
action.edit(params.data);
}
};
new agGrid.Grid(gridDiv, options);
// 读取数据
options.remoteData({page: 1});
// 绑定自定义事件
var $gridDiv = $(gridDiv);
$gridDiv.on('click', '[data-toggle="event"]', function () {
var data = $(this).data();
if (data.master_id > 0) {
action[data.action](data);
}
});
config.grid = options;
})(jQuery);
</script>
@include('footers')
@@ -0,0 +1,31 @@
<div class="list-jqgrid">
<div id="customer-birthday-widget" class="ag-theme-balham" style="width:100%;height:200px;"></div>
</div>
<script>
(function ($) {
var gridDiv = document.querySelector("#customer-birthday-widget");
var grid = new agGridOptions();
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = {};
var columnDefs = [
{suppressMenu: true, field: "code", headerName: '客户编码', width: 120},
{suppressMenu: true, field: "name", headerName: '客户名称', minWidth: 160},
{suppressMenu: true, field: "head_name", headerName: '法人', width: 120},
{suppressMenu: true, field: "head_phone", headerName: '法人手机', width: 120},
{suppressMenu: true, field: "head_birthday", headerName: '法人生日', width: 120},
{suppressMenu: true, field: "id", headerName: 'ID', width: 80}
];
grid.onRowDoubleClicked = function(row) {
top.addTab('customer/customer/show?id=' + row.data.id, 'customer_customer_show', '客户档案');
}
grid.columnDefs = columnDefs;
new agGrid.Grid(gridDiv, grid);
// 读取数据
grid.remoteData({page: 1});
gdoo.widgets['customer_widget_birthday'] = grid;
})(jQuery);
</script>