Skip to content

Commit

Permalink
feat: Details auto imports 110 (#733)
Browse files Browse the repository at this point in the history
* js: $.trim, $.isArray, click-on

* feat: details import auto

* enh: $type, select2

* Add lib react18

* bump lib

* Update lint.yml

---------

Co-authored-by: devezhao <[email protected]>
  • Loading branch information
getrebuild and devezhao authored Mar 18, 2024
1 parent 2675b6f commit c2ef9be
Show file tree
Hide file tree
Showing 38 changed files with 33,788 additions and 177 deletions.
2 changes: 2 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -138,5 +138,7 @@ module.exports = {
$openWindow: true,
MediaCapturer: true,
$cleanArray: true,
$trim: true,
$type: true,
},
}
12 changes: 6 additions & 6 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ jobs:
eslint-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
- name: npm-install
run: npm install
- name: npm-run-lint
run: npm run lint
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 14
- run: npm install
- run: npm run lint
18 changes: 9 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.21</version>
<version>1.2.22</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
Expand All @@ -342,7 +342,7 @@
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.4.6</version>
<version>4.4.7</version>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
Expand All @@ -357,7 +357,7 @@
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>6.4.12</version>
<version>6.5.0</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
Expand Down Expand Up @@ -397,7 +397,7 @@
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.3.3</version>
<version>3.3.4</version>
<exclusions>
<exclusion>
<artifactId>ehcache</artifactId>
Expand Down Expand Up @@ -453,7 +453,7 @@
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.26.1</version>
<version>3.27.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
Expand Down Expand Up @@ -502,12 +502,12 @@
<dependency>
<groupId>org.zwobble.mammoth</groupId>
<artifactId>mammoth</artifactId>
<version>1.5.0</version>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>com.getui.push</groupId>
<artifactId>restful-sdk</artifactId>
<version>1.0.0.16</version>
<version>1.0.0.17</version>
</dependency>

<!-- fix: CVEs -->
Expand All @@ -519,7 +519,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.26.0</version>
<version>1.26.1</version>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
Expand All @@ -529,7 +529,7 @@
<dependency>
<groupId>com.fasterxml.woodstox</groupId>
<artifactId>woodstox-core</artifactId>
<version>6.6.0</version>
<version>6.6.1</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,8 @@ private String getBelongEntity(ID configId) {
}

/**
* 明细记录导入配置
*
* @param targetEntity
* @return
*/
Expand Down
37 changes: 27 additions & 10 deletions src/main/java/com/rebuild/web/general/GeneralModelController.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,11 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;

/**
* 表单/视图
Expand Down Expand Up @@ -148,19 +150,34 @@ else if (FormsBuilder.DV_MAINID.equals(mainid)) {
}

// v3.1 明细导入配置
// v3.4 FIXME 只有第一个实体支持转换
// v3.4 FIXME ND只有第一个实体支持转换
if (modelEntity.getDetailEntity() != null) {
List<ConfigBean> imports = TransformManager.instance.getDetailImports(modelEntity.getDetailEntity().getName());
if (!imports.isEmpty()) {
List<Object> detailImports = new ArrayList<>();
for (ConfigBean cb : imports) {
JSONObject trans = (JSONObject) EasyMetaFactory.valueOf(cb.getString("source")).toJSON();
trans.put("transid", cb.getID("id"));
trans.put("transName", cb.getString("name"));
detailImports.add(trans);
List<ConfigBean> confImports = TransformManager.instance.getDetailImports(modelEntity.getDetailEntity().getName());
if (!confImports.isEmpty()) {
List<Object> alist = new ArrayList<>();
for (ConfigBean c : confImports) {
JSONObject trans = (JSONObject) EasyMetaFactory.valueOf(c.getString("source")).toJSON();
trans.put("transid", c.getID("id"));
trans.put("transName", c.getString("name"));

int ifAuto = ((JSONObject) c.getJSON("config")).getIntValue("importsMode2Auto");
if (ifAuto > 0) {
JSONArray importsFilter = ((JSONObject) c.getJSON("config")).getJSONArray("importsFilter");
Set<String> autoFields = new HashSet<>();
for (Object o : importsFilter) {
String name = ((JSONArray) o).getString(0);
autoFields.add(name.split("\\.")[1]);
}

if (!autoFields.isEmpty()) {
trans.put("auto", ifAuto);
trans.put("autoFields", autoFields);
}
}
alist.add(trans);
}

((JSONObject) model).put("detailImports", detailImports);
((JSONObject) model).put("detailImports", alist);
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/web/admin/metadata/entities.html
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@
.addClass('new-entity')
.find('a.card')
.attr('href', 'javascript:;')
.click(function () {
.on('click', function () {
if (window.__PageConfig.isSuperAdmin) {
if (_EntityNew2) {
_EntityNew2.show()
Expand Down
23 changes: 18 additions & 5 deletions src/main/resources/web/admin/robot/transform-design.html
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,11 @@
border-bottom: 1px solid #dee2e6;
}
#filterFields {
padding: 5px 26px 15px;
border-radius: 2px;
border: 1px solid #eee;
background-color: #f7f7f7;
border-radius: 3px;
padding: 20px 25px;
padding-top: 10px;
max-width: 1000px;
}
#filterFields .badge {
border-radius: 0;
Expand Down Expand Up @@ -151,8 +153,19 @@
<div class="form-group row hide">
<label class="col-md-12 col-xl-3 col-lg-4 col-form-label text-lg-right"></label>
<div class="col-md-12 col-xl-9 col-lg-8">
<h5 class="mt-0 text-bold">[[${bundle.L('明细记录导入条件')}]]</h5>
<div id="filterFields" style="max-width: 1000px">HOLD</div>
<div id="filterFields">
<h5 class="mt-2 text-bold">[[${bundle.L('明细记录导入条件')}]]</h5>
<span></span>
<h5 class="mt-3 text-bold">[[${bundle.L('符合条件时自动导入')}]]</h5>
<label class="custom-control custom-control-sm custom-checkbox custom-control-inline mb-0">
<input class="custom-control-input" type="checkbox" id="importsMode2Auto1" value="1" />
<span class="custom-control-label">[[${bundle.L('新建时')}]]</span>
</label>
<label class="custom-control custom-control-sm custom-checkbox custom-control-inline mb-0">
<input class="custom-control-input" type="checkbox" id="importsMode2Auto2" value="2" />
<span class="custom-control-label">[[${bundle.L('编辑时')}]]</span>
</label>
</div>
</div>
</div>
</th:block>
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/web/assets/js/admin/approval-list.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ See LICENSE and COMMERCIAL in the project root for license information.
$(document).ready(() => {
renderRbcomp(<ApprovalList />, 'dataList')

$('.J_add').click(() => renderRbcomp(<ApprovalEdit />))
$('.J_referral').click(() => renderRbcomp(<ApprovalReferral />))
$('.J_add').on('click', () => renderRbcomp(<ApprovalEdit />))
$('.J_referral').on('click', () => renderRbcomp(<ApprovalReferral />))
})

class ApprovalList extends ConfigList {
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/web/assets/js/admin/config-comps.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class ConfigList extends React.Component {
this.loadData()

// 搜索
const $btn = $('.input-search .btn').click(() => this.loadData())
const $btn = $('.input-search .btn').on('click', () => this.loadData())
$('.input-search .form-control').keydown((e) => {
if (e.which === 13) $btn.trigger('click')
})
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/web/assets/js/admin/setup-install.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ class RbWelcome extends React.Component {
confirm: function () {
this.disabled(true)

const sn = $.trim($(this._dlg).find('input').val())
const sn = $trim($(this._dlg).find('input').val())
const $btn = $(this._dlg)
.find('.btn-danger')
.text(sn ? $L('验证授权') : $L('请求授权'))
Expand Down
22 changes: 9 additions & 13 deletions src/main/resources/web/assets/js/admin/transform-design.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,8 @@ $(document).ready(() => {
$('#importsMode').on('click', function () {
if ($val(this)) {
$('#filterFields').parents('.form-group').removeClass('hide')

if (!_ImportsFilterMapping) {
renderRbcomp(<ImportsFilterMapping defaultValue={config.importsFilter} />, 'filterFields', function () {
renderRbcomp(<ImportsFilterMapping defaultValue={config.importsFilter} />, $('#filterFields>span'), function () {
_ImportsFilterMapping = this
})
}
Expand Down Expand Up @@ -101,6 +100,7 @@ $(document).ready(() => {
useFilter: advFilter_data,
importsMode: $val('#importsMode'),
importsFilter: importsFilter || null,
importsMode2Auto: ($val('#importsMode2Auto1') ? 1 : 0) + ($val('#importsMode2Auto2') ? 2 : 0),
}

const _data = {
Expand Down Expand Up @@ -157,15 +157,11 @@ $(document).ready(() => {
setTimeout(() => {
_saveFilter(config.useFilter)

if (config.fillbackField) {
$('#fillbackField').val(config.fillbackField).trigger('change')
}
if (config.transformMode === 2) {
$('#transformMode').attr('checked', true)
}
if (config.importsMode) {
$('#importsMode').trigger('click')
}
if (config.fillbackField) $('#fillbackField').val(config.fillbackField).trigger('change')
if (config.transformMode === 2) $('#transformMode').attr('checked', true)
if (config.importsMode) $('#importsMode').trigger('click')
if (config.importsMode2Auto === 1 || config.importsMode2Auto === 3) $('#importsMode2Auto1').prop('checked', true)
if (config.importsMode2Auto === 2 || config.importsMode2Auto === 3) $('#importsMode2Auto2').prop('checked', true)
}, 100)
})

Expand Down Expand Up @@ -212,7 +208,7 @@ class FieldsMapping extends React.Component {
else $this.parents('.row').removeClass('active')
})

if ($.isArray(mapping[fieldName])) {
if (Array.isArray(mapping[fieldName])) {
useVfixed[fieldName] = true
} else {
$s2.val(mapping[fieldName] || null).trigger('change')
Expand All @@ -222,7 +218,7 @@ class FieldsMapping extends React.Component {
this.setState({ useVfixed })

for (let fieldName in mapping) {
if ($.isArray(mapping[fieldName])) {
if (Array.isArray(mapping[fieldName])) {
if (!this._FieldValueSet[fieldName]) continue
this._FieldValueSet[fieldName].setValue(mapping[fieldName][0])

Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/web/assets/js/bizuser/role-view.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ See LICENSE and COMMERCIAL in the project root for license information.
*/

$(document).ready(() => {
$('.J_delete-role').click(() => deleteRole(window.__PageConfig.recordId))
$('.J_delete-role').on('click', () => deleteRole(window.__PageConfig.recordId))
})

// 删除角色
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/web/assets/js/feeds/announcement.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ const $showAnnouncement = function () {
renderRbcomp(<RF>{shows}</RF>, $aw, function () {
$(this)
.find('p>a[href]')
.click((e) => e.stopPropagation())
.on('click', (e) => e.stopPropagation())
})
})
}
Expand Down
19 changes: 9 additions & 10 deletions src/main/resources/web/assets/js/feeds/feeds.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ class RbFeeds extends React.Component {
render() {
const s = $urlp('s', location.hash)
return (
<React.Fragment>
<RF>
<FeedsPost ref={(c) => (this._post = c)} call={this.search} />
<FeedsList ref={(c) => (this._list = c)} focusFeed={s} />
</React.Fragment>
</RF>
)
}

Expand Down Expand Up @@ -88,8 +88,8 @@ let rbUserList

// 构建搜索条件
const execFilter = function () {
const group = rbGroupList.val()
const user = rbUserList.val()
const group = rbGroupList ? rbGroupList.val() : null
const user = rbUserList ? rbUserList.val() : null
const key = $('.J_search-key').val()
const date1 = $('.J_date-begin').val()
const date2 = $('.J_date-end').val()
Expand Down Expand Up @@ -122,6 +122,7 @@ $(document).ready(function () {

renderRbcomp(<RbFeeds />, 'rb-feeds', function () {
rbFeeds = this
execFilter()
})
renderRbcomp(<GroupList hasAction={true} />, $('#collapseGroup .aside-tree'), function () {
rbGroupList = this
Expand Down Expand Up @@ -149,7 +150,7 @@ $(document).ready(function () {
$setTimeout(() => rbUserList.loadData(q), 300, 'headingUser-search')
})

function __clear(el) {
function _clear(el) {
$setTimeout(
() => {
const $clear = $(el).next().find('a')
Expand All @@ -163,12 +164,12 @@ $(document).ready(function () {

$('#collapseSearch .append>a').on('click', function () {
const $i = $(this).parent().prev().val('')
__clear($i)
_clear($i)
setTimeout(execFilter, 100)
})

$('.J_search-key').on('keydown', function (e) {
__clear(this)
_clear(this)
if (e.keyCode === 13) execFilter()
})

Expand All @@ -180,7 +181,7 @@ $(document).ready(function () {
endDate: new Date(),
})
.on('changeDate', function () {
__clear(this)
_clear(this)
execFilter()
})

Expand All @@ -196,6 +197,4 @@ $(document).ready(function () {
}
execFilter()
})

execFilter()
})
2 changes: 1 addition & 1 deletion src/main/resources/web/assets/js/general/list-fields.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ $(document).ready(() => {
const $s = $(`<div class="search-input"><input type="text" placeholder="${$L('筛选字段')}" /></div>`).appendTo($(this).parent())
const $input = $s.find('input').on('input', (e) => {
$setTimeout(() => {
const q = $.trim(e.target.value).toLowerCase()
const q = $trim(e.target.value).toLowerCase()
$('.unset-list .dd-item').each(function () {
const $item = $(this)
if (!q || $item.text().toLowerCase().includes(q) || $item.data('key').toLowerCase().includes(q)) {
Expand Down
Loading

0 comments on commit c2ef9be

Please sign in to comment.