Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Details auto imports 110 #733

Merged
merged 8 commits into from
Mar 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading