Skip to content

Commit

Permalink
计算公式增加小括号支持
Browse files Browse the repository at this point in the history
  • Loading branch information
yxcmf committed Nov 6, 2018
1 parent 9ca5bb3 commit 77803e1
Show file tree
Hide file tree
Showing 7 changed files with 9 additions and 7 deletions.
2 changes: 1 addition & 1 deletion application/admin/view/field/add.html
Expand Up @@ -196,7 +196,7 @@
<div id="autoNumber" style="display:none">
<fieldset class="form-group">
<label>计算公式</label>
<input name="jsonrule[number][formula]" class="form-control" type="text" placeholder="例:字段1+字段2-字段3*字段4/字段5(公式中的字段为同模型的数字类型)">
<input name="jsonrule[number][formula]" class="form-control" type="text" placeholder="同模型的数字类型字段,例:字段1+(字段2-字段3)*字段4/字段5">
</fieldset>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion application/admin/view/field/edit.html
Expand Up @@ -193,7 +193,7 @@
<div id="autoNumber" {if 'number'!=$fieldType[$info['type']]['name']}style="display:none"{/if}>
<fieldset class="form-group">
<label>计算公式</label>
<input name="jsonrule[number][formula]" class="form-control" type="text" placeholder="例:字段1+字段2-字段3*字段4/字段5(公式中的字段为同模型的数字类型)" value="{if isset($info['jsonrule']['number'])}{$info['jsonrule']['number']['formula']}{/if}">
<input name="jsonrule[number][formula]" class="form-control" type="text" placeholder="同模型的数字类型字段,例:字段1+(字段2-字段3)*字段4/字段5" value="{if isset($info['jsonrule']['number'])}{$info['jsonrule']['number']['formula']}{/if}">
</fieldset>
</div>
</div>
Expand Down
3 changes: 2 additions & 1 deletion application/admin/view/model/index.html
Expand Up @@ -31,7 +31,7 @@
<th width="70">类型</th>
<th width="80">用途</th>
<th width="160">创建时间</th>
<th width="80">数据管理</th>
<th width="110">数据管理</th>
<th width="60">投稿</th>
<th width="60">状态</th>
<th width="120">操作</th>
Expand All @@ -47,6 +47,7 @@
<td>
<a class="btn btn-xs btn-primary" href="{:url('importdata',['mid'=>$vo.id])}" data-toggle="tooltip" data-placement="top" data-original-title="导入模型数据"><i class="fa fa-plus-square"></i></a>
<a class="btn btn-xs btn-primary" href="{:url('exportdata',['mid'=>$vo.id])}" data-toggle="tooltip" data-placement="top" data-original-title="导出模型数据"><i class="fa fa-share"></i></a>
<a class="btn btn-xs btn-primary" href="{:url('chartdata',['mid'=>$vo.id])}" data-toggle="tooltip" data-placement="top" data-original-title="模型数据图表"><i class="fa fa-bar-chart"></i></a>
</td>
<td>
{if $vo.ifsub}
Expand Down
3 changes: 2 additions & 1 deletion application/common/model/ModelField.php
Expand Up @@ -307,12 +307,13 @@ protected function dealNumberFieldRule($modeId, &$data, &$dataExt)
if (empty($fieldinfo)) return;
$dataMerge = array_merge($data, $dataExt);
foreach ($fieldinfo as $key => $vo) {
$vo['jsonrule'] = str_replace('\/', '/', $vo['jsonrule']);
$vo['jsonrule'] = json_decode($vo['jsonrule'], true)['number']['formula'];
$vo['jsonrule'] = str_replace('\/', '/', $vo['jsonrule']);
//字段规则为空或值不为空时不做处理
if (empty($vo['jsonrule']) || !empty($dataMerge[$key])) continue;

$jsonrule = str_replace(['+', '-', '*', '/', '%'], ',', $vo['jsonrule']);
$jsonrule = str_replace(['(', ')'], '', $jsonrule);
$fieldArr = explode(',', $jsonrule);
foreach ($fieldArr as $v) {
if (empty($v) || $v == $key || !preg_match("/^[a-zA-Z\s]+$/", $v) || !isset($dataMerge[$v])) continue 2;
Expand Down
2 changes: 1 addition & 1 deletion application/install/data/installc.sql
Expand Up @@ -532,7 +532,7 @@ CREATE TABLE `uk_model` (
`create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`ifsub` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '是否允许投稿',
`rules` varchar(1000) DEFAULT '' COMMENT '模型规则',
`rules` varchar(2000) DEFAULT '' COMMENT '模型规则',
`status` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '状态',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='内容模型表';
Expand Down
2 changes: 1 addition & 1 deletion application/install/data/installf.sql
Expand Up @@ -732,7 +732,7 @@ CREATE TABLE `uk_model` (
`create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`ifsub` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '是否允许投稿',
`rules` varchar(1000) DEFAULT '' COMMENT '模型规则',
`rules` varchar(2000) DEFAULT '' COMMENT '模型规则',
`status` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '状态',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='内容模型表';
Expand Down
2 changes: 1 addition & 1 deletion 升级日志.txt
Expand Up @@ -8,4 +8,4 @@
后台地址:admin.php

数据库升级:
ALTER TABLE `uk_model` ADD COLUMN `rules` varchar(1000) DEFAULT '' COMMENT '模型规则' AFTER `ifsub`;
ALTER TABLE `uk_model` ADD COLUMN `rules` varchar(2000) DEFAULT '' COMMENT '模型规则' AFTER `ifsub`;

0 comments on commit 77803e1

Please sign in to comment.