发布从测试版本2.3.4

This commit is contained in:
乐风 2021-06-18 17:31:48 +08:00
parent 43e437209e
commit 50ee24192f
15 changed files with 119 additions and 88 deletions

View File

@ -13,4 +13,13 @@
4.修复首页待办事项不显示
5.修复菜单badge不显示
6.删除废弃的工作流程模块
本版本更新了个别sql需要重新导入
本版本更新了个别sql需要重新导入
2021-06-18 开源测试版 2.3.4发布
修正
1.角色权限设置错乱
2.区域销售品类表无数据判断报错
新增
1.单据权限设置子表是否必填选项
本版本sql文件导入可选没有不兼容修改

View File

@ -89,7 +89,7 @@ QQ交流群: 79446405
</p>
## 安装
1. 推荐使用宝塔面板安装nginx 1.18.x、php-8.x(需要扩展fileinfo)、mysql-8.x(mariaDB 10.4.x)如果你使用win请自行安装相关环境
1. 推荐使用宝塔面板安装nginx 1.18.x、php-8.x(需要扩展fileinfo)、mysql-8.x(mariaDB 10.4.x)如果你使用win请自行安装相关环境修改php参数max_input_vars = 100000 (避免变量部分丢失)
2. 创建网站和数据库, 数据库字符utf8mb4, 在网站目录中设置PHP命令行版本为php-80
3. 下载gdoo: https://gitee.com/hawind/gdoo 上传至宝塔网站根目录并解压
4. 打开Xshell并登录, 执行 <code>composer -v</code> 查看composer版本, 执行 <code>composer self-update</code> 升级composer至最新版本

View File

@ -15,7 +15,7 @@ class Controller extends BaseController
/**
* @var 程序版本
*/
public $version = '2.3.3';
public $version = '2.3.4';
/**
* @var 配置参数

View File

@ -1472,12 +1472,16 @@ class Form
$tabContent .= '</tbody></table>';
}
// 保存时数据不能为空
$saveDataNotEmpty = in_array('required', (array)$permission_option['v']);
$_options = [
'columns' => $columns,
'data' => $rows,
'links' => $links,
'table' => $model['table'],
'title' => $model['name'],
'saveDataNotEmpty' => $saveDataNotEmpty,
];
$js = 'gdoo.forms["'.$model['table'].'"] = gridForms("' . $table . '","' . $model['table'] . '", ' . json_encode($_options, JSON_UNESCAPED_UNICODE) . ');';
@ -1718,7 +1722,20 @@ class Form
$field = $fields[$key];
$_rules = (array)$row['v'];
if ($_rules) {
$t = $model['type'] == 1 ? $table . '.rows.*.' . $key : $table . '.' . $key;
$field_name = $fields[$key]['name'];
if ($model['type'] == 1) {
if ($key == '@option') {
$t = $table . '.rows';
$field_name = $model->name;
} else {
$t = $table . '.rows.*.' . $key;
}
} else {
$t = $table . '.' . $key;
}
$data_type = $field['data_type'];
$data_field = $field['data_field'];
$data_link = $field['data_link'];
@ -1740,7 +1757,7 @@ class Form
}
}
$rules[$t] = join('|', $_rules);
$attributes[$t] = $fields[$key]['name'];
$attributes[$t] = $field_name;
}
}
}

View File

@ -80,12 +80,10 @@
<td>
{{$submodel->table}}@option
</td>
<td></td>
<td></td>
<td>
</td>
<td>
</td>
<td>
<select multiple data-placeholder="选择验证规则" class="form-control input-sm input-inline input-select2" name="data[{{$submodel->table}}][{{$field->field}}][v][]">
<select multiple data-placeholder="选择验证规则" class="form-control input-sm input-inline input-select2" name="data[{{$submodel->table}}][@option][v][]">
<option value=""></option>
<option @if(in_array('required', (array)$permission['data'][$submodel->table]['@option']['v'])) selected @endif value="required">必填</option>
</select>

View File

@ -125,6 +125,8 @@ var form_action = '{{$action}}';
query.customer_id = customer_id;
},
onSelect(row, selected) {
row.is_gift_name = '否';
row.is_gift = 0;
if (row.product_code == '99001') {
row.type_id_name = '费用';
row.type_id = 5;
@ -270,6 +272,8 @@ var form_action = '{{$action}}';
var rows = $ref_promotion_data.api.getSelectedRows();
for (let i = 0; i < rows.length; i++) {
var row = rows[i];
row.is_gift_name = '是';
row.is_gift = 1;
row.quantity = row.wsy_num;
row.delivery_quantity = row.quantity;
row.total_weight = row.quantity * row.weight;

View File

@ -21,7 +21,7 @@
<th style="white-space:nowrap"></th>
@if(count($categorys))
@if($categorys)
@foreach($categorys as $k => $v)
@if($v['parent_id'] == 226)
<th nowrap="nowrap">{{$v['name']}}</th>
@ -39,7 +39,7 @@
-->
</tr>
@if(count($now_year_single['money']))
@if($now_year_single['money'])
@foreach($now_year_single['money'] as $key => $value)
<tr>
@ -50,7 +50,7 @@
<td align="center" style="vertical-align:middle;color:#999;">销售金额()</td>
@if(count($categorys))
@if($categorys)
@foreach($categorys as $k => $v)
@if($v['parent_id'] == 226)
<td align="right">
@ -96,7 +96,7 @@
<td align="center" style="vertical-align:middle;color:#999;">去年同期增长率</td>
@if(count($categorys))
@if($categorys)
@foreach($categorys as $category_id => $category)
@if($category['parent_id'] == 226)
<td align="right" title="去年同期增长率" nowrap="nowrap">
@ -133,7 +133,7 @@
<tr>
<td align="center" style="vertical-align:middle;color:#999;">占区域该品类百分比</td>
@if(count($categorys))
@if($categorys)
@foreach($categorys as $k => $v)
@if($v['parent_id'] == 226)
<td align="right" title="占区域该品类百分比">

View File

@ -24,7 +24,7 @@
</select>
&nbsp;年份
<input type="text" id="year" name="year" onclick="datePicker({dateFmt:'yyyy'});" value="{{$select['select']['year']}}" class="form-control input-sm">
<input type="text" id="year" name="year" autocomplete="off" onclick="datePicker({dateFmt:'yyyy'});" value="{{$select['query']['year']}}" class="form-control input-sm">
<button type="submit" class="btn btn-default btn-sm">筛选</button>
</form>

View File

@ -117,13 +117,6 @@ class RoleController extends DefaultController
$rules = json_decode($assets[$asset]['rules'], true);
// 清除旧权限
foreach ((array)$rules as $key => $rule) {
if (empty($controllers[$key])) {
unset($rules[$key]);
}
}
foreach ($controllers as $key => $actions) {
unset($rules[$key][$id]);
if ($actions['action']) {

View File

@ -110,6 +110,7 @@
{{'';$selected = $assets[$menuKey][$groupKey.'.'.$childKey]}}
<label title="{{$childKey}}" class="checkbox-inline">
<input type="checkbox" class="action-check" name="assets[{{$menuKey}}][{{$groupKey}}.{{$childKey}}][action]" value="1" @if(isset($selected)) checked @endif>
<input type="hidden" name="assets[{{$menuKey}}][{{$groupKey}}.{{$childKey}}][access]" value="1">
{{$childValue['name']}}
</label>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -29,6 +29,7 @@ function gridForm(table, options) {
grid.tableTitle = options.title;
grid.tableKey = options.table;
grid.tableSaveDataNotEmpty = options.saveDataNotEmpty;
grid.defaultColDef.sortable = false;
grid.defaultColDef.filter = false;

View File

@ -32,8 +32,8 @@
}
}
if (rows.length == 0) {
toastrError(t.tableTitle + '不能为空。');
if (rows.length == 0 && t.tableSaveDataNotEmpty === true) {
toastrError(t.tableTitle + ' 不能为空。');
return false;
} else {
gets[t.tableKey] = {rows: rows, deleteds: store.deleted};

View File

@ -1,7 +1,7 @@
{
"/assets/dist/bundle.min.js": "/assets/dist/bundle.min.js?id=4ccf319172adf4f16820",
"/assets/dist/vendor.min.js": "/assets/dist/vendor.min.js?id=29c59d13160c6607b4af",
"/assets/dist/gdoo.min.js": "/assets/dist/gdoo.min.js?id=1ed00bbba0e428446559",
"/assets/dist/gdoo.min.js": "/assets/dist/gdoo.min.js?id=ae7df56b730a240cb42f",
"/assets/dist/index.min.js": "/assets/dist/index.min.js?id=e68deaa21814b7ec0d1c",
"/assets/dist/vendor.min.css": "/assets/dist/vendor.min.css?id=99a58728a17257718260",
"/assets/dist/gdoo.min.css": "/assets/dist/gdoo.min.css?id=b892b527a7b042089ee8",