mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-08 19:12:48 +08:00
新增表格fieldFormat设置项;
This commit is contained in:
@@ -120,12 +120,14 @@ trait Curd
|
|||||||
$fields = $this->request->param('fields', '{}', null);
|
$fields = $this->request->param('fields', '{}', null);
|
||||||
$image_fields = $this->request->param('image_fields', '{}', null);
|
$image_fields = $this->request->param('image_fields', '{}', null);
|
||||||
$select_fields = $this->request->param('select_fields', '{}', null);
|
$select_fields = $this->request->param('select_fields', '{}', null);
|
||||||
|
$date_fields = $this->request->param('date_fields', '{}', null);
|
||||||
|
|
||||||
$fields = json_decode($fields, true);
|
$fields = json_decode($fields, true);
|
||||||
$image_fields = json_decode($image_fields, true);
|
$image_fields = json_decode($image_fields, true);
|
||||||
$select_fields = json_decode($select_fields, true);
|
$select_fields = json_decode($select_fields, true);
|
||||||
|
$date_fields = json_decode($date_fields, true);
|
||||||
|
|
||||||
$content = \app\common\tools\ExcelTools::exportModel($this->model, $where, $fields, $image_fields, $select_fields);
|
$content = \app\common\tools\ExcelTools::exportModel($this->model, $where, $fields, $image_fields, $select_fields, $date_fields);
|
||||||
|
|
||||||
return download($content, $this->model->getName() . date('YmdHis') . '.xlsx', true);
|
return download($content, $this->model->getName() . date('YmdHis') . '.xlsx', true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ use PhpOffice\PhpSpreadsheet\Cell\DataType;
|
|||||||
|
|
||||||
class ExcelTools
|
class ExcelTools
|
||||||
{
|
{
|
||||||
public static function exportModel($model, $where = [], $fields = [], $image_fields = [], $select_fields = [])
|
public static function exportModel($model, $where = [], $fields = [], $image_fields = [], $select_fields = [], $date_fields = [])
|
||||||
{
|
{
|
||||||
|
|
||||||
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
|
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
|
||||||
@@ -24,7 +24,7 @@ class ExcelTools
|
|||||||
$runtime_file_list = [];
|
$runtime_file_list = [];
|
||||||
|
|
||||||
$model
|
$model
|
||||||
->where($where)->chunk(100, function ($list) use ($sheet, &$write_line, $fields, $image_fields, &$runtime_file_list, $select_fields) {
|
->where($where)->chunk(100, function ($list) use ($sheet, &$write_line, $fields, $image_fields, &$runtime_file_list, $select_fields, $date_fields) {
|
||||||
foreach ($list as $list_index => $item) {
|
foreach ($list as $list_index => $item) {
|
||||||
$write_line++;
|
$write_line++;
|
||||||
$write_col = 1;
|
$write_col = 1;
|
||||||
@@ -68,11 +68,17 @@ class ExcelTools
|
|||||||
// 需要设置选项
|
// 需要设置选项
|
||||||
|
|
||||||
$cel = $select_fields[$field_key][$value];
|
$cel = $select_fields[$field_key][$value];
|
||||||
|
} else if (in_array($field_key, $date_fields)) {
|
||||||
|
if (empty($value)) {
|
||||||
|
$cel = '';
|
||||||
|
} else {
|
||||||
|
$cel = date('Y-m-d H:i:s', $value);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$cel = $value;
|
$cel = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sheet->setCellValueExplicit($col_key . $write_line, $cel,DataType::TYPE_STRING);
|
$sheet->setCellValueExplicit($col_key . $write_line, $cel, DataType::TYPE_STRING);
|
||||||
$write_col++;
|
$write_col++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -689,12 +689,33 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (val.fieldFormat == undefined) {
|
||||||
|
|
||||||
|
switch (val.templet) {
|
||||||
|
case admin.table.image:
|
||||||
|
val.fieldFormat = 'image';
|
||||||
|
break;
|
||||||
|
case admin.table.date:
|
||||||
|
val.fieldFormat = 'date';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
val.fieldFormat = 'text';
|
||||||
|
|
||||||
|
if (val.selectList !== undefined) {
|
||||||
|
val.fieldFormat = 'select';
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (admin.checkMobile()) {
|
if (admin.checkMobile()) {
|
||||||
if (val.fixed !== undefined) {
|
if (val.fixed !== undefined) {
|
||||||
val.fixed = false;
|
val.fixed = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return cols;
|
return cols;
|
||||||
@@ -1043,21 +1064,39 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
|
|||||||
|
|
||||||
var selectFields = {};
|
var selectFields = {};
|
||||||
|
|
||||||
|
var dateFields = [];
|
||||||
|
|
||||||
options.cols[0].forEach(col => {
|
options.cols[0].forEach(col => {
|
||||||
if (col.field) {
|
if (col.field) {
|
||||||
|
|
||||||
exportFields[col.field] = col.title;
|
exportFields[col.field] = col.title;
|
||||||
|
|
||||||
if (col.templet == admin.table.image) {
|
options.cols[0].forEach(col => {
|
||||||
imageFields.push(col.field)
|
if (col.field) {
|
||||||
}
|
|
||||||
|
exportFields[col.field] = col.title;
|
||||||
|
|
||||||
|
switch (col.fieldFormat) {
|
||||||
|
case 'image':
|
||||||
|
imageFields.push(col.field)
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'select':
|
||||||
|
if (Object.keys(col.selectList).length > 0) {
|
||||||
|
selectFields[col.field] = col.selectList;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'date':
|
||||||
|
|
||||||
|
dateFields.push(col.field)
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (col.selectList instanceof Object) {
|
|
||||||
if (Object.keys(col.selectList).length > 0) {
|
|
||||||
selectFields[col.field] = col.selectList;
|
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -1088,6 +1127,7 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
|
|||||||
fields: JSON.stringify(exportFields),
|
fields: JSON.stringify(exportFields),
|
||||||
image_fields: JSON.stringify(imageFields),
|
image_fields: JSON.stringify(imageFields),
|
||||||
select_fields: JSON.stringify(selectFields),
|
select_fields: JSON.stringify(selectFields),
|
||||||
|
date_fields: JSON.stringify(dateFields),
|
||||||
}
|
}
|
||||||
|
|
||||||
var query = $.param(searchQuery);
|
var query = $.param(searchQuery);
|
||||||
|
|||||||
Reference in New Issue
Block a user