最近学习这个intra-mart框架,只看官网API有点不明白,还是得找下框架自带页面,参考下页面是怎么写的。
比如找这个权限管理页面,先看路由,再看页面关键信息。
页面路由是/tenant/authz/settings
,然后搜索项目。
找到了这个文件,/WEB-INF/conf/routing-jssp-config/im_authz.xml
,里面的page的值是tenant/authz/views/admin
。找这个文件夹下的文件。
找到了/WEB-INF/jssp/platform/src/tenant/authz/views/admin.html
文件,但是是空的;没关系,还有/WEB-INF/jssp/platform/src/tenant/authz/views/admin.js
文件。
代码写着,转发到了settings
,那就看settings.html
和settings.js
。
可以看到,是有内容的;js文件里还有个配着im_authz_impl_router
,确定就是这个文件了。
(PS:试了下,修改了这个值,必须重启项目,页面才会刷新;如果不重启,页面就不会变化,还以为找错了)
改成123测试了下,是这个页面文件。
在这个js文件里,找到了这些代码:
// サブジェクトカテゴリ一覧の作成for (var li = ret.data.length, i = 0; i < li; i++) {var subjectCategory = ret.data[i];jQuery('#subject_category_list').append('<li id="subject_category_list_' + i + '" class="ui-state-default sortable-list"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span></li>');var item = jQuery('#subject_category_list_' + i);jQuery.data(item.get(0), 'index', i);jQuery.data(item.get(0), 'cid', subjectCategory.subjectCategoryId);item.text(subjectCategory.subjectCategoryName);item.mousedown(function() {jQuery('#subject_category_list li').removeClass('ui-state-highlight');jQuery(this).addClass('ui-state-highlight');});item.mouseup(function() {clickMoveSubjectCategory(jQuery(this), jQuery.data(jQuery(this).get(0), 'cid'));});}// ダイアログの表示jQuery('#subject_move_dialog').imuiDialog('open');
var ret = {error:true};jQuery.ajax({headers:{'x-jp-co-intra-mart-ajax-request-from-imui-form-util':'true'},error:imuiTransitionToErrorPage,async:false, cache:false, dataType:'json', type:'POST', url:'<imart type="string" value=$result.currenPath escapeXml="false" escapeJs="true" />ajax_update_resource_group', data:{'<imart type="imSecureToken" mode="name" />': '<imart type="imSecureToken" mode="value" />',reqParams:request_parameters, key:request_key,resourceGroupId:resourceGroupId,resourceGroupName:resourceGroupName,resourceGroup:ImJson.toJSONString(resourceGroup)},success:function(result) {ret = result;if (ret.error) {imuiShowErrorMessage(ret.errorMessage, ret.detailMessages);}if (ret.warning) {imuiShowWarningMessage(ret.warningMessage, '');}}});
说明这个框架,启动时会先把<imart>
标签解析掉,并且用的是JQuery.ajax
发送的请求,用JQuery
直接根据id获取的页面元素,然后循环、添加子元素,实现的列表功能。(总感觉是个老框架,vue之类的就不会直接操作页面元素,都是双向绑定。)