去掉无用的参数
修改表单构建关联字段的逻辑 修改外部插件说明
This commit is contained in:
@@ -404,11 +404,13 @@ class FieldController extends DefaultController
|
||||
$fields = DB::table('model_field')->where('model_id', $flow['id'])->get();
|
||||
$rows = [];
|
||||
foreach($fields as $field) {
|
||||
if ($field['data_type'] && $field['data_field']) {
|
||||
$f = $field['data_type'].'.'.$field['data_field'];
|
||||
$rows[] = ['field' => $f, 'key' => $field['field'].'.'.$field['data_link'].':'.$f, 'name' => $field['name']];
|
||||
} else {
|
||||
$rows[] = ['field' => $field['field'], 'key' => $field['field'], 'name' => $field['name']];
|
||||
if ($field['type']) {
|
||||
if ($field['data_type'] && $field['data_field']) {
|
||||
$f = $field['data_type'].'.'.$field['data_field'];
|
||||
$rows[] = ['field' => $f, 'key' => $field['field'].'.'.$field['data_link'].':'.$f, 'name' => $field['name']];
|
||||
} else {
|
||||
$rows[] = ['field' => $field['field'], 'key' => $field['field'], 'name' => $field['name']];
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this->json($rows, true);
|
||||
|
||||
+43
-49
@@ -51,7 +51,10 @@ class Form
|
||||
$data_field = $field['data_field'];
|
||||
$data_link = $field['data_link'];
|
||||
$_table = $data_link.'_'.$data_type;
|
||||
$join[$_table] = [$data_type.' as '.$_table, $_table.'.id', '=', $table.'.'.$data_link];
|
||||
|
||||
if ($field['type']) {
|
||||
$join[$_table] = [$data_type.' as '.$_table, $_table.'.id', '=', $table.'.'.$data_link];
|
||||
}
|
||||
|
||||
$links[$data_link][$data_link] = 'id';
|
||||
|
||||
@@ -65,56 +68,32 @@ class Form
|
||||
if ($field_count > 0) {
|
||||
$var1 = explode(':', $data_field);
|
||||
list($_v1, $_v2) = explode('.', $var1[0]);
|
||||
if ($field_count == 2) {
|
||||
// 分割对应的多表联合查询
|
||||
list($_t1, $_t2, $_t3) = explode('.', $var1[1]);
|
||||
list($_c1, $_c2) = explode('.', $var1[2]);
|
||||
list($_t1, $_t2) = explode('.', $var1[1]);
|
||||
|
||||
// 获取左表名
|
||||
$_left_table = $data_link.'_'.$_v2.'_'.$_t1;
|
||||
|
||||
$join[$_left_table] = [$_t1.' as '.$_left_table, $_left_table.'.id', '=', $_table.'.'.$_v2];
|
||||
|
||||
$_table = $data_link.'_'.$_v2.'_'.$_t1.'_'.$_t3;
|
||||
$join[$_table] = [$_c1.' as '.$_table, $_table.'.id', '=', $_left_table.'.'.$_t3];
|
||||
|
||||
$index = $_table.'.'.$_c2;
|
||||
|
||||
// 远程字段和本地字段名称一样重命名
|
||||
if ($data_link == $field['field']) {
|
||||
$column = $column.'_'.$_v1;
|
||||
$links[$data_link][$column] = $_v1;
|
||||
} else {
|
||||
if ($field['type']) {
|
||||
// 右表 id_name
|
||||
// 二层关联后无法获取远程字段是否有本地字段(这里暂时没有想到好的解决办法)
|
||||
// $links[$data_link][$column.'_'.$_t2] = $_v2.'_'.$_t2;
|
||||
$column = $column.'_'.$_c2;
|
||||
}
|
||||
$links[$data_link][$column] = $_v1;
|
||||
}
|
||||
|
||||
} else {
|
||||
list($_t1, $_t2) = explode('.', $var1[1]);
|
||||
if ($field['type']) {
|
||||
$_table = $data_link.'_'.$_t1;
|
||||
$join[$_table] = [$_t1.' as '.$_table, $_table.'.id', '=', $data_link.'_'.$data_type.'.'.$_v2];
|
||||
$index = $_table.'.'.$_t2;
|
||||
if ($field['field'] == $data_link) {
|
||||
$column = $field['field'].'_'.$_v1;
|
||||
// 这里本地字段和右表字段一样时,直接取右表名称
|
||||
$links[$data_link][$column] = $_v1;
|
||||
} else {
|
||||
// $_v2 右表关联字段,$_t2 右表映射字段
|
||||
if ($field['type']) {
|
||||
$links[$data_link][$column] = $_v2;
|
||||
// 右表 id_name
|
||||
$links[$data_link][$column.'_'.$_t2] = $_v2.'_'.$_t2;
|
||||
} else {
|
||||
$_table = $field['field'].'_'.$_t1;
|
||||
}
|
||||
|
||||
$join[$_table] = [$_t1.' as '.$_table, $_table.'.id', '=', $data_link.'_'.$data_type.'.'.$_v2];
|
||||
|
||||
$field['dest_column'] = $column.'_'.$_t2;
|
||||
$column = $column.'_'.$_t2;
|
||||
} else {
|
||||
$links[$data_link][$column] = $_v2.'_'.$_t2;
|
||||
}
|
||||
$index = $_table.'.'.$_t2;
|
||||
if ($field['field'] == $data_link) {
|
||||
$column = $field['field'].'_'.$_v1;
|
||||
// 这里本地字段和右表字段一样时,直接取右表名称
|
||||
$links[$data_link][$column] = $_v1;
|
||||
} else {
|
||||
// $_v2 右表关联字段,$_t2 右表映射字段
|
||||
if ($field['type']) {
|
||||
$links[$data_link][$column] = $_v2;
|
||||
// 右表 id_name
|
||||
$links[$data_link][$column.'_'.$_t2] = $_v2.'_'.$_t2;
|
||||
|
||||
$field['dest_column'] = $column.'_'.$_t2;
|
||||
$column = $column.'_'.$_t2;
|
||||
} else {
|
||||
$links[$data_link][$column] = $_v2.'_'.$_t2;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -373,6 +352,7 @@ class Form
|
||||
}
|
||||
|
||||
foreach ($group['fields'] as $view) {
|
||||
|
||||
if ($view['role_id']) {
|
||||
$role_ids = explode(',', $view['role_id']);
|
||||
if (in_array($auth->role_id, $role_ids)) {
|
||||
@@ -598,6 +578,15 @@ class Form
|
||||
|
||||
$tabs = static::sublist(['select' => $options['select'], 'sublist' => $sublist, 'permission' => $permission, 'action' => $action, 'table' => $table, 'row' => $row, 'bill' => $bill]);
|
||||
|
||||
if ($flowlog) {
|
||||
$tabs[] = [
|
||||
'tpl' => '<div class="b-a">'.$flowlog.'</div>',
|
||||
'id' => 'flowlog',
|
||||
'tool' => '',
|
||||
'name' => '审核记录',
|
||||
];
|
||||
}
|
||||
|
||||
if ($action == 'print') {
|
||||
|
||||
$prints = [[
|
||||
@@ -662,6 +651,11 @@ class Form
|
||||
|
||||
$tool = $tool == '' ? $tool : '<div class="system_btn m-b-sm">'.$tool.'</div>';
|
||||
|
||||
// 审核记录不显示工具栏
|
||||
if ($tab['id'] == 'flowlog') {
|
||||
$tool = '';
|
||||
}
|
||||
|
||||
$_tabs .= '<div class="tab-pane fade '.$active.'" id="'.$tab['id'].'">
|
||||
<div class="wrapper-sm">
|
||||
<div class="grid-tool" id="'.$table.'-tool">
|
||||
@@ -1756,7 +1750,7 @@ class Form
|
||||
// 获取表单上的审核意见
|
||||
if ($master['run_id'] && $gets['step_remark']) {
|
||||
|
||||
$run_steps = DB::table('flow_run_step')
|
||||
$run_steps = DB::table('model_run_step')
|
||||
->where('run_id', $master['run_id'])
|
||||
->get()->keyBy('step_id');
|
||||
|
||||
|
||||
+74
-53
@@ -296,59 +296,40 @@ class Grid
|
||||
$data_field = $row['data_field'];
|
||||
$data_link = $row['data_link'];
|
||||
$_table = $data_link.'_'.$data_type;
|
||||
// 连接右表
|
||||
$join[$_table] = [$data_type.' as '.$_table, $_table.'.id', '=', $table.'.'.$data_link];
|
||||
|
||||
if ($row['type']) {
|
||||
$join[$_table] = [$data_type.' as '.$_table, $_table.'.id', '=', $table.'.'.$data_link];
|
||||
}
|
||||
|
||||
$field_count = mb_substr_count($data_field, ':');
|
||||
if ($field_count > 0) {
|
||||
$var1 = explode(':', $data_field);
|
||||
list($_v1, $_v2) = explode('.', $var1[0]);
|
||||
if ($field_count == 2) {
|
||||
// 分割对应的多表联合查询
|
||||
list($_t1, $_t2, $_t3) = explode('.', $var1[1]);
|
||||
list($_c1, $_c2) = explode('.', $var1[2]);
|
||||
list($_t1, $_t2) = explode('.', $var1[1]);
|
||||
|
||||
// 获取左表名
|
||||
$_left_table = $data_link.'_'.$_v2.'_'.$_t1;
|
||||
$_table = $data_link.'_'.$_v2.'_'.$_t1.'_'.$_t3;
|
||||
|
||||
$join[$_table] = [$_c1.' as '.$_table, $_table.'.id', '=', $_left_table.'.'.$_t3];
|
||||
$index = $_table.'.'.$_c2;
|
||||
|
||||
$search['table'] = $_c1;
|
||||
$search['field'] = $_left_table.'.'.$_t3;
|
||||
$search['name'] = $_c2;
|
||||
|
||||
// 远程字段和本地字段名称一样重命名
|
||||
if ($data_link == $row['field']) {
|
||||
$column = $column.'_'.$_v1;
|
||||
} else {
|
||||
if ($row['type']) {
|
||||
$column = $column.'_'.$_c2;
|
||||
} else {
|
||||
$column = $column;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
list($_t1, $_t2) = explode('.', $var1[1]);
|
||||
// 判断是否存在左表字段
|
||||
if ($row['type']) {
|
||||
$_table = $data_link.'_'.$_v2.'_'.$_t1;
|
||||
$join[$_table] = [$_t1.' as '.$_table, $_table.'.id', '=', $data_link.'_'.$data_type.'.'.$_v2];
|
||||
$index = $_table.'.'.$_t2;
|
||||
} else {
|
||||
$_table = $row['field'].'_'.$_t1;
|
||||
}
|
||||
|
||||
$join[$_table] = [$_t1.' as '.$_table, $_table.'.id', '=', $data_link.'_'.$data_type.'.'.$_v2];
|
||||
|
||||
$search['table'] = $_t1;
|
||||
$search['field'] = $data_link.'_'.$data_type.'.'.$_v2;
|
||||
$search['name'] = $_t2;
|
||||
$index = $_table.'.'.$_t2;
|
||||
|
||||
// 远程字段和本地字段名称一样重命名
|
||||
if ($data_link == $row['field']) {
|
||||
$column = $column.'_'.$_v1;
|
||||
} else {
|
||||
if ($row['type']) {
|
||||
$column = $column.'_'.$_t2;
|
||||
}
|
||||
$column = $column;
|
||||
$search['table'] = $_t1;
|
||||
$search['field'] = $data_link.'_'.$data_type.'.'.$_v2;
|
||||
$search['name'] = $_t2;
|
||||
|
||||
// 远程字段和本地字段名称一样重命名
|
||||
if ($data_link == $row['field']) {
|
||||
$column = $column.'_'.$_v1;
|
||||
} else {
|
||||
if ($row['type']) {
|
||||
$column = $column.'_'.$_t2;
|
||||
}
|
||||
$column = $column;
|
||||
}
|
||||
|
||||
} else {
|
||||
@@ -424,15 +405,29 @@ class Grid
|
||||
// 获取全部模型
|
||||
$models = ModelService::getModelAllFields($bill['model_id']);
|
||||
$_models = [];
|
||||
$left_fields = [];
|
||||
$fields = [];
|
||||
|
||||
if ($template) {
|
||||
$views = (array)json_decode($template['tpl'], true);
|
||||
$fields = [];
|
||||
foreach($views as $view) {
|
||||
$_model = $models[$view['table']];
|
||||
$_field = $_model['fields'][$view['field']];
|
||||
$_field['table'] = $_model['table'];
|
||||
$_field['is_index'] = 1;
|
||||
|
||||
// 关联字段是左表字段
|
||||
$data_link = $_field['data_link'];
|
||||
if ($data_link) {
|
||||
$_field['is_link'] = true;
|
||||
$left_field = $_model['fields'][$data_link];
|
||||
if ($left_field['type']) {
|
||||
$left_field['is_link'] = true;
|
||||
$left_field['table'] = $_model['table'];
|
||||
$left_fields[$data_link] = $left_field;
|
||||
}
|
||||
}
|
||||
|
||||
// 按角色隐藏字段
|
||||
if ($view['role_id']) {
|
||||
$role_ids = explode(',', $view['role_id']);
|
||||
@@ -471,15 +466,26 @@ class Grid
|
||||
} else {
|
||||
$_fields = Field::where('model_id', $master['id'])
|
||||
->orderBy('sort', 'asc')
|
||||
->get()
|
||||
->toArray();
|
||||
->get()->keyBy('field')->toArray();
|
||||
|
||||
$fields = [];
|
||||
foreach($_fields as $field) {
|
||||
$field['table'] = $table;
|
||||
$field['column'] = $field['field'];
|
||||
$field['is_master'] = 1;
|
||||
$fields[] = $field;
|
||||
foreach($_fields as $_field) {
|
||||
$_field['table'] = $table;
|
||||
$_field['column'] = $_field['field'];
|
||||
$_field['is_master'] = 1;
|
||||
|
||||
// 关联字段是左表字段
|
||||
$data_link = $_field['data_link'];
|
||||
if ($data_link) {
|
||||
$_field['is_link'] = true;
|
||||
$left_field = $_fields[$data_link];
|
||||
if ($left_field['type']) {
|
||||
$left_field['is_link'] = true;
|
||||
$left_field['table'] = $table;
|
||||
$left_fields[$data_link] = $left_field;
|
||||
}
|
||||
}
|
||||
|
||||
$fields[] = $_field;
|
||||
}
|
||||
$select = [$table.'.created_by' => [], $table.'.created_at' => []];
|
||||
if ($master_prefix) {
|
||||
@@ -487,6 +493,14 @@ class Grid
|
||||
}
|
||||
}
|
||||
|
||||
foreach($fields as $index => $field) {
|
||||
if (isset($left_fields[$field['field']])) {
|
||||
unset($left_fields[$field['field']]);
|
||||
}
|
||||
}
|
||||
|
||||
$fields = array_merge(array_values($left_fields), $fields);
|
||||
|
||||
$res['cols']['checkbox'] = [
|
||||
'width' => 40,
|
||||
'suppressSizeToFit' => true,
|
||||
@@ -515,7 +529,7 @@ class Grid
|
||||
|
||||
foreach ($fields as $row) {
|
||||
|
||||
if ($row['is_index'] == 1 || $row['is_search'] == 1) {
|
||||
if ($row['is_index'] == 1 || $row['is_search'] == 1 || $row['is_link']) {
|
||||
$setting = json_decode($row['setting'], true);
|
||||
|
||||
$is_master = $row['is_master'];
|
||||
@@ -534,6 +548,10 @@ class Grid
|
||||
}
|
||||
|
||||
static::fieldRelated($_table, $row, $join, $select, $index, $column, $_search, $setting);
|
||||
if ($row['is_link']) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$_search['field2'] = $index;
|
||||
|
||||
if ($row['form_type'] == 'urd') {
|
||||
@@ -824,6 +842,9 @@ class Grid
|
||||
$res['select'] = $src_select;
|
||||
$res['raw_select'] = $raw_select;
|
||||
|
||||
//print_r($join);
|
||||
//print_r($select);
|
||||
|
||||
$res['join'] = $join;
|
||||
$res['search'] = $search;
|
||||
$res['search_form'] = $search_form;
|
||||
|
||||
@@ -423,7 +423,7 @@ class StepService
|
||||
*/
|
||||
public static function getFlowLog($run_id, $data, $model)
|
||||
{
|
||||
$steps = DB::table('flow_run_step')
|
||||
$steps = DB::table('model_run_step')
|
||||
->whereNotIn('type', ['end'])
|
||||
->where('run_id', $run_id)
|
||||
->orderBy('sort', 'asc')
|
||||
@@ -450,13 +450,16 @@ class StepService
|
||||
foreach($steps as $log) {
|
||||
if ($log['option'] == 1) {
|
||||
$remark = $log['remark'];
|
||||
if ($remark == '') {
|
||||
if ($log['run_status'] == 'next' || $log['run_status'] == 'end') {
|
||||
$remark = '同意';
|
||||
if ($log['run_updated_at'] > 0) {
|
||||
if ($remark == '') {
|
||||
if ($log['run_status'] == 'next' || $log['run_status'] == 'end') {
|
||||
$remark = '同意';
|
||||
}
|
||||
}
|
||||
$updated_by = get_user($log['updated_id'], 'name', false);
|
||||
$remark.' '.$updated_by.' '.format_datetime($log['updated_at']);
|
||||
}
|
||||
$updated_by = get_user($log['updated_id'], 'name', false);
|
||||
$html .= '<div class="row"><div class="col-sm-12 control-text">'.$log['name'].': '.$remark.' '.$updated_by.' '.format_datetime($log['updated_at']).'</div></div>';
|
||||
$html .= '<div class="row"><div class="col-sm-12 control-text">'.$log['name'].': '.$remark.'</div></div>';
|
||||
}
|
||||
}
|
||||
return $html;
|
||||
@@ -566,7 +569,7 @@ class StepService
|
||||
$user_ids = [$data[$step['type_value']]];
|
||||
}
|
||||
break;
|
||||
// 销售团队(1级)
|
||||
// 销售组(1级)
|
||||
case 'region1':
|
||||
$customer_id = $data['customer_id'];
|
||||
if ($customer_id > 0) {
|
||||
@@ -577,7 +580,7 @@ class StepService
|
||||
$user_ids = [$region1['owner_user_id']];
|
||||
}
|
||||
break;
|
||||
// 销售团队(2级)
|
||||
// 销售组(2级)
|
||||
case 'region2':
|
||||
$customer_id = $data['customer_id'];
|
||||
if ($customer_id > 0) {
|
||||
@@ -593,7 +596,7 @@ class StepService
|
||||
$user_ids = [$region2['owner_user_id']];
|
||||
}
|
||||
break;
|
||||
// 销售团队(3级)
|
||||
// 销售组(3级)
|
||||
case 'region3':
|
||||
$customer_id = $data['customer_id'];
|
||||
if ($customer_id > 0) {
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label" for="data_relation">关联关系</label>
|
||||
<div class="col-sm-9 control-text">
|
||||
@@ -105,6 +106,7 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
@endverbatim
|
||||
|
||||
|
||||
@@ -773,7 +773,7 @@ $(function() {
|
||||
|
||||
var type = form_group.type;
|
||||
var size = form_group.column;
|
||||
var title = form_group.title;
|
||||
var title = form_group.title || '';
|
||||
var border = form_group.border;
|
||||
var _fields = Array();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user