configurationJs.jsp 73 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8"%>
  2. <%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
  3. <link href="${contextRoot}/develop/lib/select2/select2.min.css" rel="stylesheet">
  4. <script src="${contextRoot}/develop/lib/select2/select2.js"></script>
  5. <script >
  6. /* ************************** 全局变量定义 **************************** */
  7. var status = $("#publish_status").val();
  8. var Util = $.Util;
  9. var retrieve = null;
  10. var master = null;
  11. var conditionArea = null;
  12. var entryRetrieve = null;
  13. var entryMaster = null;
  14. var cfgModel = 0;
  15. var changeFlag=false;
  16. var dataRows =0;
  17. var dataFlag = true;
  18. var cfg = [
  19. {
  20. left:{title:'数据集', cls:'', search:'/standardCenter/searchDatasetList', del:''},
  21. right:{title:'数据元', cls:'', search:'/adapterCenter/searchMetadataList', del:'',delLs:'/adapterCenter/delMetadata'}
  22. },
  23. {
  24. left:{title:'字典', cls:'', search:'/standardCenter/searchDictList', del:''},
  25. right:{title:'字典项', cls:'', search:'/adapterCenter/searchDictEntryList', del:'',delLs:'/adapterCenter/delDictEntry'}
  26. }
  27. ];
  28. /* *************************** 函数定义 ******************************* */
  29. function pageInit() {
  30. if(status=="1"){//已发布
  31. $("#div_btn").hide();
  32. }else{//未发布
  33. $("#div_btn").show();
  34. }
  35. resizeContent();
  36. retrieve.init();
  37. conditionArea.init();
  38. entryRetrieve.init();
  39. master.init();
  40. //master.reloadGrid();
  41. entryMaster.init();
  42. }
  43. function reClass(){
  44. $(".l-grid-row-alt").each(function(){
  45. $(this).removeChild("l-grid-row-alt");
  46. })
  47. }
  48. function reloadGrid (url, params, columns) {
  49. if(columns)
  50. this.grid.set({
  51. columns:columns,
  52. url: url,
  53. parms: params
  54. });
  55. else
  56. this.grid.set({
  57. url: url,
  58. parms: params
  59. });
  60. // this.grid.reload();
  61. }
  62. function resizeContent(){
  63. var contentW = $('#grid_content').width();
  64. var leftW = $('#div_left').width();
  65. var div_wrapper = $("#div_wrapper").width();
  66. $('#div_right').width(contentW-leftW-20);
  67. $(".btn-group").css("margin-left",(div_wrapper-200)/2);
  68. }
  69. /* *************************** title模块初始化 ***************************** */
  70. conditionArea = {
  71. $element: $('#conditionArea'),
  72. $adapter_plan_name :$('#adapter_plan_name'),
  73. $adapter_plan_parent :$('#adapter_plan_parent'),
  74. $adapter_plan_type :$('#adapter_plan_type'),
  75. $adapter_plan_org :$('#adapter_plan_org'),
  76. $btn_switch_dataSet :$('#switch_dataSet'),
  77. $btn_switch_dict :$('#switch_dict'),
  78. init : function () {
  79. // this.initAdapterOrg();
  80. this.bindEvents();
  81. this.$element.show();
  82. },
  83. bindEvents : function () {
  84. this.$btn_switch_dataSet.click(function () {
  85. $("#btn_aoto_adpat").css("display","block");
  86. $("#btn_aoto_adpat_dic").css("display","none");
  87. if(cfgModel==0)
  88. return;
  89. cfgModel = 0;
  90. $("#btn_add_relation").hide();
  91. $("#isDataSet").val("1");//该input框为1时,代表此时显示字典
  92. retrieve.setTitle();
  93. entryRetrieve.setTitle();
  94. changeFlag=true;
  95. master.reloadGrid();
  96. $(".btn-default").removeClass("active");
  97. conditionArea.$btn_switch_dataSet.addClass("active");
  98. $("#searchNmEntry").attr("placeholder","请输入编码或名称")
  99. });
  100. this.$btn_switch_dict.click(function () {
  101. $("#btn_aoto_adpat").css("display","none");
  102. $("#btn_aoto_adpat_dic").css("display","block");
  103. if(cfgModel==1)
  104. return;
  105. cfgModel = 1;
  106. // $("#btn_add_relation").show();
  107. $("#isDataSet").val("0");//该input框为0时,代表此时显示数据集
  108. retrieve.setTitle();
  109. entryRetrieve.setTitle();
  110. changeFlag=true;
  111. master.reloadGrid();
  112. $(".btn-default").removeClass("active");
  113. conditionArea.$btn_switch_dict.addClass("active");
  114. $("#searchNmEntry").attr("placeholder","请输入编码或值");
  115. })
  116. }
  117. };
  118. /* *************************** left模块初始化 ***************************** */
  119. retrieve = {
  120. $element: $('#retrieve'),
  121. $searchNm: $('#searchNm'),
  122. $title :$('#left_title'),
  123. init: function () {
  124. this.$searchNm.ligerSearch({onClick: function (value) {
  125. master.reloadGrid();
  126. }});
  127. this.$element.show();
  128. },
  129. setTitle: function () {
  130. this.$title.html(cfg[cfgModel].left.title);
  131. }
  132. };
  133. master = {
  134. infoDialog: null,
  135. grid: null,
  136. stdIdStrLs:"",
  137. init: function () {
  138. var me = this;
  139. var stdVersion = $("#std_version").val();
  140. var adapterStdVersion = $("#adapter_std_version").val();
  141. var version = $("#version").val(); //adapter version
  142. var schemeId = $("#scheme_id").val();
  143. schemeId = schemeId.replace("scheme","");
  144. $("#version").val(version);
  145. $("#adapter_std_version").val(adapterStdVersion);
  146. $("#std_version").val(stdVersion);
  147. $("#scheme_id").val(schemeId);
  148. if(this.grid)
  149. return;
  150. var version = $("#version").val();
  151. var url = '${contextRoot}'+'/adapterCenter/searchDatasetList?adapterVersion=' + version;
  152. $.ajax({
  153. url: url,
  154. type:"post",
  155. dataType:"json",
  156. success:function (data) {
  157. if(data.successFlg) {
  158. for (var i=0; i<data.detailModelList.length;i++){
  159. var stdDatasetId = data.detailModelList[i].stdDatasetId;
  160. me.stdIdStrLs += stdDatasetId + ",";
  161. }
  162. me.initGrid(me.stdIdStrLs);
  163. }
  164. }
  165. });
  166. this.bindEvents();
  167. },
  168. initGrid: function (stdIdStrLs) {
  169. var me = this;
  170. this.grid = $("#div_left_grid").ligerGrid({
  171. url: '${contextRoot}'+cfg[cfgModel].left.search,
  172. parms:{stdVersion: $("#std_version").val(),condition: JSON.stringify({"name":"","stdId": stdIdStrLs})},
  173. columns: me.getColumn(),
  174. selectRowButtonOnly: true,
  175. allowHideColumn:false,
  176. validate : true,
  177. unSetValidateAttr:false,
  178. onBeforeShowData: function (data) {
  179. if(data.detailModelList.length==0){
  180. entryMaster.reloadGrid('');
  181. }
  182. },
  183. onAfterShowData: function () {
  184. this.select(0);
  185. },
  186. onSelectRow: function(row){
  187. dataRows = 0;
  188. dataFlag = true;
  189. $("#std_dict_id").val(row.id);
  190. entryMaster.reloadGrid(row.id);
  191. }
  192. });
  193. },
  194. bindEvents: function () {
  195. $("#searchNm").keyup(function (e) {
  196. if (e.keyCode == 13) {
  197. master.reloadGrid();
  198. }
  199. });
  200. },
  201. reloadGrid: function () {
  202. var me = this;
  203. var searchNm = $("#searchNm").val();
  204. var values = {
  205. stdVersion: $("#std_version").val(),
  206. condition: JSON.stringify({"name":searchNm,"stdId":me.stdIdStrLs})
  207. };
  208. if (changeFlag){
  209. var url = '${contextRoot}' + cfg[cfgModel].left.search;
  210. reloadGrid.call(this, url, values, this.getColumn());
  211. }else{
  212. me.grid.setOptions({parms: $.extend({},values),newPage: 1});
  213. //重新查询
  214. me.grid.loadData(true);
  215. }
  216. },
  217. getColumn: function () {
  218. var columnCfg =[];
  219. var stdId = 'id';
  220. var stdCode = 'code';
  221. var stdName = 'name';
  222. var codeDisplay = '目标标准数据集编码';
  223. var nameDisplay = '目标标准数据集名称';
  224. if(cfgModel==1){
  225. stdId = 'id';
  226. stdCode = 'code';
  227. stdName = 'name';
  228. codeDisplay = '目标标准字典编码';
  229. nameDisplay = '目标标准字典名称';
  230. }
  231. columnCfg = [
  232. { display: 'id', name: 'id', hide:true },
  233. { display: stdId, name: stdId, hide:true },
  234. { display: codeDisplay, name: stdCode, width: '50%',isAllowHide: false ,align:'left' },
  235. { display: nameDisplay, name: stdName, width: '50%',isAllowHide: false ,align:'left' }
  236. ];
  237. return columnCfg;
  238. }
  239. };
  240. /* *************************** right模块初始化 ***************************** */
  241. entryRetrieve = {
  242. $element: $('#entryRetrieve'),
  243. $searchNm: $('#searchNmEntry'),
  244. $title: $('#right_title'),
  245. init: function () {
  246. this.$searchNm.ligerSearch({onClick: function (value) {
  247. entryMaster.reloadGrid();
  248. }});
  249. this.$element.show();
  250. },
  251. setTitle: function () {
  252. this.$title.html(cfg[cfgModel].right.title);
  253. }
  254. };
  255. entryMaster = {
  256. entryInfoDialog: null,
  257. grid: null,
  258. init: function (dictId) {
  259. if(this.grid)
  260. return;
  261. this.grid = $("#div_relation_grid").ligerGrid({
  262. url: '${contextRoot}'+cfg[cfgModel].right.search,
  263. columns: this.getColumn(),
  264. delayLoad:true,
  265. selectRowButtonOnly: true,
  266. allowHideColumn:false,
  267. validate : true,
  268. unSetValidateAttr:false,
  269. checkbox:false,
  270. onDblClickRow : function (row){
  271. //$.publish('grid:right:open',[row.id, 'modify']);
  272. },
  273. rowClsRender:function (rowdata,rowid){
  274. if(rowdata.adapterInfo=="0"){//疑似适配
  275. return "unadapt";
  276. }
  277. if(rowdata.adapterInfo=="1"){//疑似适配
  278. return "ysadapt";
  279. }
  280. if(rowdata.adapterInfo=="2"){//完全适配
  281. return "alladapt";
  282. }
  283. },
  284. _getHtmlFromData: function (data, frozen)
  285. {
  286. if (!data) return "";
  287. var g = this, p = this.options;
  288. var gridhtmlarr = [];
  289. for (var i = 0, l = data.length; i < l; i++)
  290. {
  291. var item = data[i];
  292. var rowid = item['__id'];
  293. if (!item) continue;
  294. gridhtmlarr.push('<tr');
  295. gridhtmlarr.push(' id="' + g._getRowDomId(item, frozen) + '"');
  296. gridhtmlarr.push(' class="l-grid-row'); //class start
  297. if (!frozen && g.enabledCheckbox() && p.isChecked && p.isChecked(item))
  298. {
  299. g.select(item);
  300. gridhtmlarr.push(' l-selected');
  301. }
  302. else if (g.isSelected(item))
  303. {
  304. gridhtmlarr.push(' l-selected');
  305. }
  306. else if (p.isSelected && p.isSelected(item))
  307. {
  308. g.select(item);
  309. gridhtmlarr.push(' l-selected');
  310. }
  311. if (p.rowClsRender)
  312. {
  313. var rowcls = p.rowClsRender(item, rowid);
  314. rowcls && gridhtmlarr.push(' ' + rowcls);
  315. }
  316. gridhtmlarr.push('" '); //class end
  317. if (p.rowAttrRender) gridhtmlarr.push(p.rowAttrRender(item, rowid));
  318. if (p.tree && g.collapsedRows && g.collapsedRows.length)
  319. {
  320. var isHide = function ()
  321. {
  322. var pitem = g.getParent(item);
  323. while (pitem)
  324. {
  325. if ($.inArray(pitem, g.collapsedRows) != -1) return true;
  326. pitem = g.getParent(pitem);
  327. }
  328. return false;
  329. };
  330. if (isHide()) gridhtmlarr.push(' style="display:none;" ');
  331. }
  332. gridhtmlarr.push('>');
  333. $(g.columns).each(function (columnindex, column)
  334. {
  335. if (frozen != column.frozen) return;
  336. gridhtmlarr.push('<td');
  337. gridhtmlarr.push(' id="' + g._getCellDomId(item, this) + '"');
  338. //如果是行序号(系统列)
  339. if (this.isrownumber)
  340. {
  341. gridhtmlarr.push(' class="l-grid-row-cell l-grid-row-cell-rownumbers" style="width:' + this.width + 'px"><div class="l-grid-row-cell-inner"');
  342. if (p.fixedCellHeight)
  343. gridhtmlarr.push(' style = "height:' + p.rowHeight + 'px;" ');
  344. else
  345. gridhtmlarr.push(' style = "min-height:' + p.rowHeight + 'px;" ');
  346. gridhtmlarr.push('>' + (parseInt(item['__index']) + 1) + '</div></td>');
  347. return;
  348. }
  349. //如果是复选框(系统列)
  350. if (this.ischeckbox)
  351. {
  352. gridhtmlarr.push(' class="l-grid-row-cell l-grid-row-cell-checkbox" style="width:' + this.width + 'px"><div class="l-grid-row-cell-inner"');
  353. if (p.fixedCellHeight)
  354. gridhtmlarr.push(' style = "height:' + p.rowHeight + 'px;" ');
  355. else
  356. gridhtmlarr.push(' style = "min-height:' + p.rowHeight + 'px;" ');
  357. gridhtmlarr.push('>');
  358. gridhtmlarr.push('<span class="l-grid-row-cell-btn-checkbox"></span>');
  359. gridhtmlarr.push('</div></td>');
  360. return;
  361. }
  362. //如果是明细列(系统列)
  363. else if (this.isdetail)
  364. {
  365. gridhtmlarr.push(' class="l-grid-row-cell l-grid-row-cell-detail" style="width:' + this.width + 'px"><div class="l-grid-row-cell-inner"');
  366. if (p.fixedCellHeight)
  367. gridhtmlarr.push(' style = "height:' + p.rowHeight + 'px;" ');
  368. else
  369. gridhtmlarr.push(' style = "min-height:' + p.rowHeight + 'px;" ');
  370. gridhtmlarr.push('>');
  371. if (!p.isShowDetailToggle || p.isShowDetailToggle(item))
  372. {
  373. gridhtmlarr.push('<span class="l-grid-row-cell-detailbtn"></span>');
  374. }
  375. gridhtmlarr.push('</div></td>');
  376. return;
  377. }
  378. var colwidth = this._width;
  379. gridhtmlarr.push(' class="l-grid-row-cell ');
  380. if (g.changedCells[rowid + "_" + this['__id']]) gridhtmlarr.push("l-grid-row-cell-edited ");
  381. if (this.islast)
  382. gridhtmlarr.push('l-grid-row-cell-last ');
  383. gridhtmlarr.push('"');
  384. //if (this.columnname) gridhtmlarr.push('columnname="' + this.columnname + '"');
  385. gridhtmlarr.push(' style = "');
  386. gridhtmlarr.push('width:' + colwidth + 'px; ');
  387. if (column._hide)
  388. {
  389. gridhtmlarr.push('display:none;');
  390. }
  391. gridhtmlarr.push(' ">');
  392. gridhtmlarr.push(g._getCellHtml(item, column));
  393. gridhtmlarr.push('</td>');
  394. });
  395. gridhtmlarr.push('</tr>');
  396. }
  397. return gridhtmlarr.join('');
  398. },
  399. onAfterShowData: function () {//显示完数据事件
  400. //【应用数据元编码】初始化注册select2(下拉框带查询)事件
  401. $(".sel-adapter-metadata-code").each(function(){
  402. comAdapterMetaData($(this),"init","adapterMetadataCode","adapterMetadataName");
  403. });
  404. //【应用数据元名称】初始化注册select2(下拉框带查询)事件
  405. $(".sel-adapter-metadata-name").each(function(){
  406. comAdapterMetaData($(this),"init","adapterMetadataName","adapterMetadataCode");
  407. });
  408. //【源数据集编码】初始化注册select2(下拉框带查询)事件
  409. $(".sel-adapter-dataset-code").each(function(){
  410. comAdapterDataset($(this),"init","adapterDatasetCode","adapterDatasetName");
  411. });
  412. //【源数据集名称】初始化注册select2(下拉框带查询)事件
  413. $(".sel-adapter-dataset-name").each(function(){
  414. comAdapterDataset($(this),"init","adapterDatasetName","adapterDatasetCode");
  415. });
  416. //【目标字典项编码】初始化注册select2(下拉框带查询)事件
  417. $(".sel-std-dictEntry-code").each(function(){
  418. comStdDictEntry($(this),"init","stdEntryCode","stdEntryValue");
  419. });
  420. //【目标字典项名称】初始化注册select2(下拉框带查询)事件
  421. $(".sel-std-dictEntry-value").each(function(){
  422. comStdDictEntry($(this),"init","stdEntryValue","stdEntryCode");
  423. });
  424. //【应用字典编码】初始化注册select2(下拉框带查询)事件
  425. $(".sel-adapter-dict-code").each(function(){
  426. comAdapterDict($(this),"init","adapterDictCode","adapterDictName");
  427. });
  428. //【应用字典名称】初始化注册select2(下拉框带查询)事件
  429. $(".sel-adapter-dict-name").each(function(){
  430. comAdapterDict($(this),"init","adapterDictName","adapterDictCode");
  431. });
  432. //【应用字典项编码】初始化注册select2(下拉框带查询)事件
  433. $(".sel-adapter-dictEntry-code").each(function(){
  434. comAdapterDictEntry($(this),"init","adapterEntryCode","adapterEntryValue");
  435. });
  436. //【应用字典名称】初始化注册select2(下拉框带查询)事件
  437. $(".sel-adapter-dictEntry-value").each(function(){
  438. comAdapterDictEntry($(this),"init","adapterEntryValue","adapterEntryCode");
  439. });
  440. //【源数据集编码】change事件
  441. $(".sel-adapter-dataset-code").on("change", function(event,msg) {
  442. var index = $(this).attr("id").replace("adapterDatasetCode","");
  443. var select2 = comAdapterDataset($(this),"change","adapterDatasetCode","adapterDatasetName");
  444. comAdapterMetaData($("#adapterMetadataCode"+index),"change","adapterMetadataCode","adapterMetadataName");
  445. var datasetCodeOption = $(this).find("option");
  446. var datasetNameOption = $("#adapterDatasetName"+index).find("option");
  447. if(dataRows == entryMaster.grid.getData().length){
  448. if(dataFlag){
  449. $(".sel-adapter-dataset-code").each(function(){
  450. var index = $(this).attr("id").replace("adapterDatasetCode","");
  451. $(this).append(datasetCodeOption);
  452. $("#adapterDatasetName"+index).append(datasetNameOption);
  453. comAdapterDataset($(this),"change","adapterDatasetCode","adapterDatasetName");
  454. comAdapterDataset($("#adapterDatasetName"+index),"change","adapterDatasetName","adapterDatasetCode");
  455. comAdapterMetaData($("#adapterMetadataCode"+index),"change","adapterMetadataCode","adapterMetadataName");
  456. comAdapterMetaData($("#adapterMetadataName"+index),"change","adapterMetadataName","adapterMetadataCode");
  457. });
  458. dataFlag = false;
  459. }
  460. }
  461. if(msg!="adapterDatasetCode"){//当【源数据集编码】联动时,【源数据集名称】不触发联动
  462. $("#adapterDatasetName"+index).trigger("change",["adapterDatasetName"]);
  463. }
  464. select2.select2("open");
  465. select2.select2("close");
  466. });
  467. //【源数据集名称】change事件
  468. $(".sel-adapter-dataset-name").on("change", function(event,msg) {
  469. var index = $(this).attr("id").replace("adapterDatasetName","");
  470. var select2 = comAdapterDataset($(this),"change","adapterDatasetName","adapterDatasetCode");
  471. comAdapterMetaData($("#adapterMetadataCode"+index),"change","adapterMetadataCode","adapterMetadataName");
  472. comAdapterMetaData($("#adapterMetadataName"+index),"change","adapterMetadataName","adapterMetadataCode");
  473. if(msg!="adapterDatasetName"){//当【源数据集名称】联动时,【源数据集编码】不触发联动
  474. $("#adapterDatasetCode"+index).trigger("change","adapterDatasetCode");
  475. }
  476. select2.select2("open");
  477. select2.select2("close");
  478. });
  479. //【源数据元编码】change事件
  480. $(".sel-adapter-metadata-code").on("change", function(event,msg) {
  481. var index = $(this).attr("id").replace("adapterMetadataCode","");
  482. var select2 = comAdapterMetaData($(this),"change","adapterMetadataCode","adapterMetadataName");
  483. if(msg!="adapterMetadataCode"){//当【源数据元编码】联动时,【源数据元名称】不触发联动
  484. $("#adapterMetadataName"+index).trigger("change",["adapterMetadataName"]);
  485. }
  486. select2.select2("open");
  487. select2.select2("close");
  488. });
  489. //【源数据元名称】change事件
  490. $(".sel-adapter-metadata-name").on("change", function(event,msg) {
  491. var index = $(this).attr("id").replace("adapterMetadataName","");
  492. var select2 = comAdapterMetaData($(this),"change","adapterMetadataName","adapterMetadataCode");
  493. if(msg!="adapterMetadataName"){//当【源数据元名称】联动时,【源数据元编码】不触发联动
  494. $("#adapterMetadataCode"+index).trigger("change","adapterMetadataCode");
  495. }
  496. select2.select2("open");
  497. select2.select2("close");
  498. var selectValue = $("#adapterMetadataName"+index).val();
  499. if(selectValue!=null&&selectValue!=''&&selectValue!=undefined){
  500. $("#adapterInfo"+index).html("<option value='1' >疑似适配</option><option value='2' >完全适配</option>")
  501. }else{
  502. $("#adapterInfo"+index).html("<option value='0' >未适配</option>");
  503. }
  504. });
  505. //---------------------------------------------------------------------
  506. //【目标字典项编码】change事件
  507. $(".sel-std-dictEntry-code").on("change", function(event,msg) {
  508. var index = $(this).attr("id").replace("stdEntryCode","");//取出当前机构适配值的索引
  509. var select2 = comStdDictEntry($(this),"change","stdEntryCode","stdEntryValue");
  510. if(msg!="stdEntryCode"){//当机构适配值联动时,机构适配名称不触发联动
  511. $("#stdEntryValue"+index).trigger("change",["stdEntryValue"]);
  512. }
  513. select2.select2("open");
  514. select2.select2("close");
  515. });
  516. //【目标字典项名称】change事件
  517. $(".sel-std-dictEntry-value").on("change", function(event,msg) {
  518. var index = $(this).attr("id").replace("stdEntryValue","");//取出当前机构适配名称的索引
  519. var select2 = comStdDictEntry($(this),"change","stdEntryValue","stdEntryCode");
  520. if(msg!="stdEntryValue"){//当机构适配名称联动时,机构适配值不触发联动
  521. $("#stdEntryCode"+index).trigger("change","stdEntryCode");
  522. }
  523. select2.select2("open");
  524. select2.select2("close");
  525. });
  526. //【源字典编码】change事件
  527. $(".sel-adapter-dict-code").on("change", function(event,msg) {
  528. var index = $(this).attr("id").replace("adapterDictCode","");//取出当前机构适配值的索引
  529. var select2 = comAdapterDict($(this),"change","adapterDictCode","adapterDictName");
  530. comAdapterDictEntry($("#adapterEntryCode"+index),"change","adapterEntryCode","adapterEntryValue");
  531. var dictCodeOption = $(this).find("option");
  532. var dictEntryOption = $("#adapterDictName"+index).find("option");
  533. if(dataRows == entryMaster.grid.getData().length){
  534. if(dataFlag){
  535. $(".sel-adapter-dict-code").each(function(){
  536. var index = $(this).attr("id").replace("adapterDictCode","");
  537. $(this).append(dictCodeOption);
  538. $("#adapterDictName"+index).append(dictEntryOption);
  539. comAdapterDict($(this),"change","adapterDictCode","adapterDictName");
  540. comAdapterDict($("#adapterDictName"+index),"change","adapterDictName","adapterDictCode");
  541. comAdapterDictEntry($("#adapterEntryCode"+index),"change","adapterEntryCode","adapterEntryValue");
  542. comAdapterDictEntry($("#adapterEntryValue"+index),"change","adapterEntryValue","adapterEntryCode");
  543. });
  544. dataFlag = false;
  545. }
  546. }
  547. if(msg!="adapterDictCode"){//当机构适配值联动时,机构适配名称不触发联动
  548. $("#adapterDictName"+index).trigger("change",["adapterDictName"]);
  549. }
  550. select2.select2("open");
  551. select2.select2("close");
  552. });
  553. //【源字典名称】change事件
  554. $(".sel-adapter-dict-name").on("change", function(event,msg) {
  555. var index = $(this).attr("id").replace("adapterDictName","");//取出当前机构适配名称的索引
  556. var select2 = comAdapterDict($(this),"change","adapterDictName","adapterDictCode");
  557. comAdapterDictEntry($("#adapterEntryCode"+index),"change","adapterEntryCode","adapterEntryValue");
  558. comAdapterDictEntry($("#adapterEntryValue"+index),"change","adapterEntryValue","adapterEntryCode");
  559. if(msg!="adapterDictName"){//当机构适配名称联动时,机构适配值不触发联动
  560. $("#adapterDictCode"+index).trigger("change","adapterDictCode");
  561. }
  562. select2.select2("open");
  563. select2.select2("close");
  564. });
  565. //【源字典项编码】change事件
  566. $(".sel-adapter-dictEntry-code").on("change", function(event,msg) {
  567. var index = $(this).attr("id").replace("adapterEntryCode","");//取出当前机构适配值的索引
  568. var select2 = comAdapterDictEntry($(this),"change","adapterEntryCode","adapterEntryValue");
  569. if(msg!="adapterEntryCode"){//当机构适配值联动时,机构适配名称不触发联动
  570. $("#adapterEntryValue"+index).trigger("change",["adapterEntryValue"]);
  571. }
  572. select2.select2("open");
  573. select2.select2("close");
  574. });
  575. //【源字典项名称】change事件
  576. $(".sel-adapter-dictEntry-value").on("change", function(event,msg) {
  577. var index = $(this).attr("id").replace("adapterEntryValue","");//取出当前机构适配名称的索引
  578. var select2 = comAdapterDictEntry($(this),"change","adapterEntryValue","adapterEntryCode");
  579. if(msg!="adapterEntryValue"){//当机构适配名称联动时,机构适配值不触发联动
  580. $("#adapterEntryCode"+index).trigger("change","adapterEntryCode");
  581. }
  582. select2.select2("open");
  583. select2.select2("close");
  584. debugger
  585. var selectValue = select2.val();
  586. if(selectValue!=null&&selectValue!=''&&selectValue!=undefined){
  587. $("#adapterInfo"+index).html("<option value='1' >疑似适配</option><option value='2' >完全适配</option>")
  588. }else{
  589. $("#adapterInfo"+index).html("<option value='0' >未适配</option>");
  590. }
  591. });
  592. }
  593. });
  594. this.bindEvents();
  595. },
  596. reloadGrid: function (parentId) {
  597. var searchNmEntry = $("#searchNmEntry").val();
  598. if(Util.isStrEmpty(parentId)){
  599. var row = master.grid.getSelectedRow();
  600. if(row != null){
  601. parentId = row.id;
  602. }
  603. }
  604. var values = {
  605. adapterVersion:$("#version").val(),
  606. condition: JSON.stringify({"name":searchNmEntry,"stdDatasetId":parentId,"stdDictId":parentId})
  607. };
  608. if (changeFlag){
  609. reloadGrid.call(this, '${contextRoot}'+cfg[cfgModel].right.search, values, this.getColumn());
  610. }else{
  611. this.grid.setOptions({parms: $.extend({},values),newPage: 1});
  612. //重新查询
  613. this.grid.loadData(true);
  614. }
  615. changeFlag=false;
  616. },
  617. add:function(){
  618. if(master.grid.getData().length==0){
  619. $.ligerDialog.error("没有目标字典,不能新增字典项!");
  620. return false;
  621. }
  622. var dataRow = {
  623. stdDictId:$("#std_dict_id").val(),
  624. schemeId:$("#scheme_id").val(),
  625. adapterDictId:'',
  626. stdEntryId:'',
  627. adapterEntryId:'',
  628. adapterDictCode:'',
  629. adapterDictName:'',
  630. stdEntryCode:'',
  631. stdEntryValue:'',
  632. adapterEntryCode:'',
  633. adapterEntryValue:''
  634. };
  635. //参数1:rowdata(非必填)
  636. //参数2:插入的位置 Row Data
  637. var rowData = entryMaster.grid.getData();
  638. for (var i = 0; i < rowData.length; i++) {
  639. entryMaster.grid.rows[i].schemeId = $("#scheme_id").val();
  640. entryMaster.grid.rows[i].stdDictId = $("#std_dict_id").val();
  641. var stdEntryCodeArr = $("#stdEntryCode"+i).val()==undefined ? "":$("#stdEntryCode"+i).val().split(",");
  642. if(stdEntryCodeArr.length>0){
  643. entryMaster.grid.rows[i].stdEntryId = stdEntryCodeArr[0];
  644. entryMaster.grid.rows[i].stdEntryValue = stdEntryCodeArr[1];
  645. }else{
  646. entryMaster.grid.rows[i].stdEntryId = "";
  647. entryMaster.grid.rows[i].stdEntryValue = "";
  648. }
  649. entryMaster.grid.rows[i].stdEntryCode = $("#stdEntryCode"+i).text() == undefined ? "" : $("#stdEntryCode"+i).text();
  650. var adapterDictCodeArr = $("#adapterDictCode"+i).val()==undefined ? "":$("#adapterDictCode"+i).val().split(",");
  651. if(adapterDictCodeArr.length>0){
  652. entryMaster.grid.rows[i].adapterDictId = adapterDictCodeArr[0];
  653. entryMaster.grid.rows[i].adapterDictName = adapterDictCodeArr[1];
  654. }else{
  655. entryMaster.grid.rows[i].adapterDictId = "";
  656. entryMaster.grid.rows[i].adapterDictName = "";
  657. }
  658. entryMaster.grid.rows[i].adapterDictCode = $("#adapterDictCode"+i).text() == undefined ? "" : $("#adapterDictCode"+i).text();
  659. var adapterEntryCodeArr = $("#adapterEntryCode"+i).val()==undefined ? "":$("#adapterEntryCode"+i).val().split(",");
  660. if(adapterEntryCodeArr.length>0){
  661. entryMaster.grid.rows[i].adapterEntryId = adapterEntryCodeArr[0];
  662. entryMaster.grid.rows[i].adapterEntryValue = adapterEntryCodeArr[1];
  663. }else{
  664. entryMaster.grid.rows[i].adapterEntryId = "";
  665. entryMaster.grid.rows[i].adapterEntryValue = "";
  666. }
  667. entryMaster.grid.rows[i].adapterEntryCode = $("#adapterEntryCode"+i).text() == undefined ? "" : $("#adapterEntryCode"+i).text();
  668. }
  669. entryMaster.grid.addRow(dataRow);
  670. },
  671. delete:function(rowindex,flag){
  672. $.ligerDialog.confirm('确定清空该适配关系?', function (r) {
  673. if (r) {
  674. $("#adapterInfo"+rowindex).html("<option value='0'>未适配</option>");
  675. if(flag == "dataset"){//数据集
  676. $("#adapterDatasetCode"+rowindex).html("");
  677. $("#adapterDatasetName"+rowindex).html("");
  678. $("#adapterMetadataCode"+rowindex).html("");
  679. $("#adapterMetadataName"+rowindex).html("");
  680. comAdapterDataset($("#adapterDatasetCode"+rowindex),"change","adapterDatasetCode","adapterDatasetName");
  681. comAdapterDataset($("#adapterDatasetName"+rowindex),"change","adapterDatasetName","adapterDatasetCode");
  682. comAdapterMetaData($("#adapterMetadataCode"+rowindex),"change","adapterMetadataCode","adapterMetadataName");
  683. comAdapterMetaData($("#adapterMetadataName"+rowindex),"change","adapterMetadataName","adapterMetadataCode");
  684. //重新计算表格中的值是否都被清空
  685. dataRows = 0;
  686. $(".sel-adapter-dataset-code").each(function(){
  687. if(Util.isStrEmpty($(this).val())){
  688. dataRows ++;
  689. }
  690. });
  691. if(dataRows == entryMaster.grid.getData().length) {
  692. dataFlag = true;
  693. }
  694. }else{//字典
  695. $("#adapterDictCode"+rowindex).html("");
  696. $("#adapterDictName"+rowindex).html("");
  697. $("#adapterEntryCode"+rowindex).html("");
  698. $("#adapterEntryValue"+rowindex).html("");
  699. comAdapterDict($("#adapterDictCode"+rowindex),"change","adapterDictCode","adapterDictName");
  700. comAdapterDict($("#adapterDictName"+rowindex),"change","adapterDictName","adapterDictCode");
  701. comAdapterDictEntry($("#adapterEntryCode"+rowindex),"change","adapterEntryCode","adapterEntryValue");
  702. comAdapterDictEntry($("#adapterEntryValue"+rowindex),"change","adapterEntryValue","adapterEntryCode");
  703. //重新计算表格中的值是否都被清空
  704. dataRows = 0;
  705. $(".sel-adapter-dict-code").each(function(){
  706. if(Util.isStrEmpty($(this).val())){
  707. dataRows ++;
  708. }
  709. });
  710. if(dataRows == entryMaster.grid.getData().length) {
  711. dataFlag = true;
  712. }
  713. }
  714. }
  715. });
  716. },
  717. save:function(){
  718. if (cfgModel == 0) {
  719. var dataResult = new Array();
  720. var rowData = entryMaster.grid.getData();
  721. for (var i = 0; i < rowData.length; i++) {
  722. var ob = new Object();
  723. ob.id = rowData[i].id == undefined ? "" : rowData[i].id;
  724. ob.schemeId = rowData[i].schemeId == undefined ? "" : rowData[i].schemeId;
  725. ob.stdDatasetId = rowData[i].stdDatasetId == undefined ? "" : rowData[i].stdDatasetId;
  726. ob.stdMetadataId = rowData[i].stdMetadataId == undefined ? "" : rowData[i].stdMetadataId;
  727. ob.stdMetadataCode = rowData[i].stdMetadataCode == undefined ? "" : rowData[i].stdMetadataCode;
  728. ob.stdMetadataName = rowData[i].stdMetadataName == undefined ? "" : rowData[i].stdMetadataName;
  729. ob.adapterDataType = rowData[i].adapterDataType == undefined ? "" : $("#adapterDataType"+i).val();
  730. ob.stdDictId = rowData[i].stdDictId == undefined ? "" : rowData[i].stdDictId;
  731. var adapterDatasetCodeArr = $("#adapterDatasetCode"+i).val()==undefined ? "":$("#adapterDatasetCode"+i).val().split(",");
  732. if(adapterDatasetCodeArr.length>0){
  733. ob.adapterDatasetId = adapterDatasetCodeArr[0];
  734. ob.adapterDatasetName = adapterDatasetCodeArr[1];
  735. }else {
  736. ob.adapterDatasetId = "";
  737. ob.adapterDatasetName = "";
  738. }
  739. ob.adapterInfo = $("#adapterInfo"+i).val();
  740. ob.adapterDatasetCode = $("#adapterDatasetCode"+i).text() == undefined ? "" : $("#adapterDatasetCode"+i).text();
  741. var adapterMetadataCodeArr = $("#adapterMetadataCode"+i).val()==undefined ? "":$("#adapterMetadataCode"+i).val().split(",");
  742. if(adapterMetadataCodeArr.length>0){
  743. ob.adapterMetadataId = adapterMetadataCodeArr[0];
  744. ob.adapterMetadataName = adapterMetadataCodeArr[1];
  745. if(adapterMetadataCodeArr.length >2){
  746. ob.adapterDictId = adapterMetadataCodeArr[2];
  747. }else {
  748. ob.adapterDictId = "";
  749. }
  750. }else {
  751. ob.adapterMetadataId = "";
  752. ob.adapterMetadataName = "";
  753. }
  754. ob.adapterMetadataCode = $("#adapterMetadataCode"+i).text() == undefined ? "" : $("#adapterMetadataCode"+i).text();
  755. dataResult.push(ob)
  756. }
  757. //保存数据
  758. $.ajax({
  759. type : "POST",
  760. url: '${contextRoot}'+'/adapterCenter/updateMetadatas',
  761. data: 'list='+JSON.stringify(dataResult)+"&adapterVersion="+$("#version").val(),
  762. dataType : "json",
  763. async:false,
  764. success :function(data){
  765. if(data.successFlg){
  766. entryMaster.reloadGrid(); //重新查询,返回json记录集
  767. $.ligerDialog.success(data.message);
  768. }else{
  769. $.ligerDialog.error(data.message);
  770. }
  771. },
  772. error :function(data){
  773. $.ligerDialog.error("保存失败!");
  774. }
  775. });
  776. } else {
  777. var dataResult = new Array();
  778. var rowData = entryMaster.grid.getData();
  779. for (var i = 0; i < rowData.length; i++) {
  780. var ob = new Object();
  781. ob.id = rowData[i].id == undefined ? "" : rowData[i].id;
  782. ob.schemeId = $("#scheme_id").val();
  783. ob.stdDictId = $("#std_dict_id").val();
  784. var stdEntryCodeArr = $("#stdEntryCode"+i).val()==undefined ? "":$("#stdEntryCode"+i).val().split(",");
  785. if(stdEntryCodeArr.length>0){
  786. if(stdEntryCodeArr[0]=="" || stdEntryCodeArr[1]==""){
  787. $.ligerDialog.error("第"+Number(i+1)+"条记录:目标字典项编码和目标字典项值不能为空!");
  788. return false;
  789. }
  790. ob.stdEntryId = stdEntryCodeArr[0];
  791. ob.stdEntryValue = stdEntryCodeArr[1];
  792. }
  793. ob.stdEntryCode = $("#stdEntryCode"+i).text() == undefined ? "" : $("#stdEntryCode"+i).text();
  794. ob.adapterInfo = $("#adapterInfo"+i).val();
  795. var adapterDictCodeArr = $("#adapterDictCode"+i).val()==undefined ? "":$("#adapterDictCode"+i).val().split(",");
  796. if(adapterDictCodeArr.length>0){
  797. ob.adapterDictId = adapterDictCodeArr[0];
  798. ob.adapterDictName = adapterDictCodeArr[1];
  799. }else{
  800. ob.adapterDictId = "";
  801. ob.adapterDictName = "";
  802. }
  803. ob.adapterDictCode = $("#adapterDictCode"+i).text() == undefined ? "" : $("#adapterDictCode"+i).text();
  804. var adapterEntryCodeArr = $("#adapterEntryCode"+i).val()==undefined ? "":$("#adapterEntryCode"+i).val().split(",");
  805. if(adapterEntryCodeArr.length>0){
  806. ob.adapterEntryId = adapterEntryCodeArr[0];
  807. ob.adapterEntryValue = adapterEntryCodeArr[1];
  808. }else{
  809. ob.adapterEntryId = "";
  810. ob.adapterEntryValue = "";
  811. }
  812. ob.adapterEntryCode = $("#adapterEntryCode"+i).text() == undefined ? "" : $("#adapterEntryCode"+i).text();
  813. dataResult.push(ob)
  814. }
  815. var uniqueArray = entryMaster.uniqueArray(dataResult);
  816. if(dataResult.length!==uniqueArray.length){
  817. $.ligerDialog.error("在同一个适配方案下,同一个目标标准字典对应的目标字典项和源字典项不可重复!");
  818. return false;
  819. }
  820. //保存数据
  821. $.ajax({
  822. type : "POST",
  823. url: '${contextRoot}'+'/adapterCenter/updateDictEntrys',
  824. data: 'list='+JSON.stringify(dataResult)+"&adapterVersion="+$("#version").val(),
  825. dataType : "json",
  826. async:false,
  827. success :function(data){
  828. if(data.successFlg){
  829. entryMaster.reloadGrid(); //重新查询,返回json记录集
  830. $.ligerDialog.success(data.message);
  831. }else{
  832. $.ligerDialog.error(data.message);
  833. }
  834. },
  835. error :function(data){
  836. $.ligerDialog.error("保存失败!");
  837. }
  838. });
  839. }
  840. },
  841. /**########数据集 BEGIN#########**/
  842. isAdaptationIng:function(){
  843. var version = $("#version").val();
  844. var self=this;//为了获取项目id
  845. var url="";//AdapterDatasetController
  846. var obj="";//为了获取进度条
  847. var isDataSet = $("#isDataSet").val();
  848. if(isDataSet!="0"){//数据集
  849. obj=self.$shujujiZdsp
  850. url="${contextRoot}/adapterCenter/isStrategy"
  851. }
  852. var isCanPlay= setInterval(function(){//判断 是否可以开始匹配了
  853. $.ajax({
  854. type:"POST",
  855. dataType:"",
  856. url:url,
  857. data:{version:version},
  858. success:function(res){
  859. var isPPing=JSON.parse(res.data).isAdapt//是否正在匹配
  860. if(isPPing=="false"){//如果不是正在匹配
  861. self.pipeiDo();//开始匹配
  862. }else{//如果正在匹配
  863. self.autoAdaptation(obj);//显示进度
  864. clearInterval(isCanPlay)
  865. }
  866. }
  867. })
  868. },3000)
  869. },
  870. pipeiDo:function(){
  871. var std_version = $("#std_version").val();
  872. var version = $("#version").val();
  873. var adapter_std_version = $("#adapter_std_version").val();
  874. var parmas = {std_version:std_version,version:version,adapter_std_version:adapter_std_version};
  875. var self=this;
  876. var obj;//当前属于字典还是数据集对象,赋值匹配中
  877. var btnObj//自动匹配的按钮
  878. var url//链接
  879. var isDataSet = $("#isDataSet").val();
  880. if(isDataSet!="0"){//数据集
  881. obj=$("#shujuji .boxleft");
  882. url="${contextRoot}/adapterCenter/strategy"
  883. }
  884. $("#btn_aoto_adpat span").html("匹配中...");
  885. $.ajax({
  886. type:"POST",
  887. dataType:"json",
  888. url:url,
  889. data:parmas,
  890. success:function(data){
  891. $("#btn_aoto_adpat span").html("自动适配");
  892. },
  893. error:function(){
  894. }
  895. })
  896. },//开始匹配
  897. autoAdaptation:function(){
  898. var self=this;
  899. var url=""//进度
  900. var isDataSet = $("#isDataSet").val();
  901. var version = $("#version").val();
  902. if(isDataSet!="0"){//数据集
  903. url="${contextRoot}/adapterCenter/getStrategySize"
  904. }
  905. var timeIng =setInterval(function(){
  906. var ver =
  907. $.ajax({
  908. type:"POST",
  909. dataType:"json",
  910. url:url,
  911. data:{version:version},
  912. success:function(res){
  913. if(res.data==undefined){
  914. $("#btn_aoto_adpat span").html("请求中");
  915. }else{
  916. if(res.data.all==0){//如果判断被除数不能为0 如果为0 直接清空
  917. $("#btn_aoto_adpat span").html("匹配完成");
  918. clearInterval(timeIng);
  919. self.ppeiEnd()//结束匹配
  920. }else{
  921. var jdu= res.data.adapt/res.data.all//进度
  922. if(jdu!=1){
  923. var jduBFB=parseInt(jdu*100)
  924. if(!isNaN(jduBFB)){
  925. $("#btn_aoto_adpat span").html("已匹配"+jduBFB+"%")
  926. }
  927. }else{
  928. $("#btn_aoto_adpat span").html("匹配完成");
  929. master.reloadGrid();
  930. clearInterval(timeIng);
  931. self.ppeiEnd()//结束匹配
  932. }
  933. }
  934. }
  935. },
  936. error :function(res){
  937. }
  938. })
  939. },3000)
  940. },//自动匹配进度
  941. ppeiEnd:function(){
  942. var self=this;
  943. var url="";
  944. var isDataSet = $("#isDataSet").val()
  945. if(isDataSet!="0"){//数据集
  946. url="${contextRoot}/adapterCenter/endStrategy"
  947. }
  948. $.ajax({
  949. type:"POST",
  950. dataType:"json",
  951. url:url,
  952. data:{version:$("#version").val()},
  953. success:function(res){
  954. },
  955. error :function(res){
  956. }
  957. })
  958. },//结束匹配
  959. /**########数据集 END#########**/
  960. /**########字典 BEGIN#########**/
  961. isAdaptationIngDic:function(){
  962. var version = $("#version").val();
  963. var self=this;//为了获取项目id
  964. var url="";//AdapterDatasetController
  965. var obj="";//为了获取进度条
  966. var isDataSet = $("#isDataSet").val();
  967. if(isDataSet=="0"){//字典
  968. obj=self.$zidianZdsp
  969. url="${contextRoot}/adapterCenter/isStrategyDic"
  970. }
  971. var isCanPlay= setInterval(function(){//判断 是否可以开始匹配了
  972. $.ajax({
  973. type:"POST",
  974. dataType:"",
  975. url:url,
  976. data:{version:version},
  977. success:function(res){
  978. var isPPing=JSON.parse(res.data).isAdapt//是否正在匹配
  979. if(isPPing=="false"){//如果不是正在匹配
  980. self.pipeiDoDic();//开始匹配
  981. }else{//如果正在匹配
  982. self.autoAdaptationDic(obj);//显示进度
  983. clearInterval(isCanPlay)
  984. }
  985. }
  986. })
  987. },3000)
  988. },
  989. pipeiDoDic:function(){
  990. var std_version = $("#std_version").val();
  991. var version = $("#version").val();
  992. var adapter_std_version = $("#adapter_std_version").val();
  993. var parmas = {std_version:std_version,version:version,adapter_std_version:adapter_std_version};
  994. var self=this;
  995. var obj;//当前属于字典还是数据集对象,赋值匹配中
  996. var btnObj//自动匹配的按钮
  997. var url//链接
  998. var isDataSet = $("#isDataSet").val();
  999. if(isDataSet=="0"){//字典
  1000. obj=$("#zidian .boxleft");
  1001. url="${contextRoot}/adapterCenter/strategyDic"
  1002. }
  1003. $("#btn_aoto_adpat_dic span").html("匹配中...");
  1004. $.ajax({
  1005. type:"POST",
  1006. dataType:"json",
  1007. url:url,
  1008. data:parmas,
  1009. success:function(data){
  1010. $("#btn_aoto_adpat_dic span").html("自动适配");
  1011. },
  1012. error:function(){
  1013. }
  1014. })
  1015. },//开始匹配
  1016. autoAdaptationDic:function(){
  1017. var self=this;
  1018. var url=""//进度
  1019. var isDataSet = $("#isDataSet").val();
  1020. var version = $("#version").val();
  1021. if(isDataSet=="0"){//字典
  1022. url="${contextRoot}/adapterCenter/getStrategyDicSize"
  1023. }
  1024. var timeIng =setInterval(function(){
  1025. var ver =
  1026. $.ajax({
  1027. type:"POST",
  1028. dataType:"json",
  1029. url:url,
  1030. data:{version:version},
  1031. success:function(res){
  1032. if(res.data==undefined){
  1033. $("#btn_aoto_adpat_dic span").html("请求中");
  1034. }else{
  1035. if(res.data.all==0){//如果判断被除数不能为0 如果为0 直接清空
  1036. $("#btn_aoto_adpat_dic span").html("匹配完成");
  1037. clearInterval(timeIng);
  1038. self.ppeiEndDic()//结束匹配
  1039. }else{
  1040. var jdu= res.data.adapt/res.data.all//进度
  1041. if(jdu!=1){
  1042. var jduBFB=parseInt(jdu*100)
  1043. if(!isNaN(jduBFB)){
  1044. $("#btn_aoto_adpat_dic span").html("已匹配"+jduBFB+"%")
  1045. }
  1046. }else{
  1047. $("#btn_aoto_adpat_dic span").html("匹配完成");
  1048. master.reloadGrid();
  1049. clearInterval(timeIng);
  1050. self.ppeiEndDic()//结束匹配
  1051. }
  1052. }
  1053. }
  1054. }
  1055. })
  1056. },3000)
  1057. },//自动匹配进度
  1058. ppeiEndDic:function(){
  1059. var self=this;
  1060. var url="";
  1061. var isDataSet = $("#isDataSet").val()
  1062. if(isDataSet=="0"){//字典
  1063. url="${contextRoot}/adapterCenter/endStrategyDic"
  1064. }
  1065. $.ajax({
  1066. type:"POST",
  1067. dataType:"json",
  1068. url:url,
  1069. data:{version:$("#version").val()},
  1070. success:function(res){
  1071. }
  1072. })
  1073. },//结束匹配
  1074. /**########字典 END#########**/
  1075. uniqueArray:function(a){ /* 判断适配方案id、目标字典id、目标字典项id、源字典项id是否重复*/
  1076. var temp = new Array();
  1077. for(var i = 0; i < a.length; i ++){
  1078. if(!entryMaster.contains(temp, a[i].schemeId + a[i].stdDictId+a[i].stdEntryId + a[i].adapterEntryId)){
  1079. temp.length+=1;
  1080. temp[temp.length-1] = a[i].schemeId + a[i].stdDictId+a[i].stdEntryId + a[i].adapterEntryId;
  1081. }
  1082. }
  1083. return temp;
  1084. },
  1085. contains:function(a,e){
  1086. for(j=0;j<a.length;j++)if(a[j]==e)return true;
  1087. return false
  1088. },
  1089. bindEvents: function () {
  1090. //窗体改变大小事件
  1091. $(window).bind('resize', function() {
  1092. resizeContent();
  1093. });
  1094. $('#btn_add_relation').click(function () {
  1095. entryMaster.add();;
  1096. });
  1097. $('#btn_save_relation').click(function () {
  1098. entryMaster.save();
  1099. });
  1100. //数据集
  1101. $('#btn_aoto_adpat').click(function () {
  1102. entryMaster.isAdaptationIng();
  1103. });
  1104. //字典
  1105. $('#btn_aoto_adpat_dic').click(function () {
  1106. entryMaster.isAdaptationIngDic();
  1107. });
  1108. $("#searchNmEntry").keyup(function (e) {
  1109. if (e.keyCode == 13) {
  1110. entryMaster.reloadGrid();
  1111. }
  1112. });
  1113. },
  1114. getColumn: function () {
  1115. var columnCfg =[];
  1116. var width;
  1117. if(status=="1"){//已发布
  1118. width = ["15%","15%","15%","15%","15%","12%","12%"];
  1119. }else{//未发布
  1120. width = ["12%","12%","12%","15%","12%","15%","12%"];
  1121. }
  1122. if(cfgModel==0){
  1123. columnCfg = [
  1124. { display: 'id', name: 'id', hide:true },
  1125. { display: 'stdDatasetId', name: 'stdDatasetId', hide:true },
  1126. { display: 'stdMetadataId', name: 'stdMetadataId', hide:true },
  1127. { display: 'adapterDatasetId', name: 'adapterDatasetId', hide:true },
  1128. { display: 'adapterMetadataId', name: 'adapterMetadataId', hide:true },
  1129. { display: 'adapterDataType', name: 'adapterDataType', hide:true },
  1130. { display: '目标数据元编码', name: 'stdMetadataCode',width: width[0], isAllowHide: false ,align:'left' },
  1131. { display: '目标数据元名称', name: 'stdMetadataName',width: width[1], isAllowHide: false ,align:'left' },
  1132. { display: '源数据集编码', name: 'adapterDatasetCode', width: width[2], render: function (row, rowindex, value, column) {
  1133. if(status =="1"){//已发布
  1134. return row.adapterDatasetCode;
  1135. }else{//未发布
  1136. var select=null;
  1137. if(row.adapterDatasetId==undefined || row.adapterDatasetCode==undefined || row.adapterDatasetName==undefined){
  1138. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dataset-code" id="adapterDatasetCode'+rowindex +'" ></select></div>');
  1139. dataRows++;
  1140. }else{
  1141. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dataset-code" id="adapterDatasetCode'+rowindex+'" >'
  1142. +'<option value="'+row.adapterDatasetId+','+row.adapterDatasetName+'">'+row.adapterDatasetCode+'</option></select></div>');
  1143. }
  1144. $('option[value="'+value+'"]',select).attr('selected',true);
  1145. return select.prop("outerHTML");
  1146. }
  1147. }},
  1148. { display: '源数据集名称', name: 'adapterDatasetName', width: width[3], render: function (row, rowindex, value, column) {
  1149. if(status =="1"){//已发布
  1150. return row.adapterDatasetName;
  1151. }else{//未发布
  1152. var select=null;
  1153. if(row.adapterDatasetId==undefined || row.adapterDatasetCode==undefined || row.adapterDatasetName==undefined){
  1154. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dataset-name" id="adapterDatasetName'+rowindex +'" ></select></div>');
  1155. }else{
  1156. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dataset-name" id="adapterDatasetName'+rowindex +'" >'
  1157. +'<option value="'+row.adapterDatasetId+','+row.adapterDatasetCode+'">'+row.adapterDatasetName+'</option></select></div>');
  1158. }
  1159. $('option[value="'+value+'"]',select).attr('selected',true);
  1160. return select.prop("outerHTML");
  1161. }
  1162. }},
  1163. { display: '源数据元编码', name: 'adapterMetadataCode', width: width[4], render: function (row, rowindex, value, column) {
  1164. if(status =="1"){//已发布
  1165. return row.adapterMetadataCode;
  1166. }else {//未发布
  1167. var select=null;
  1168. if(row.adapterMetadataId==undefined || row.adapterMetadataCode==undefined || row.adapterMetadataName==undefined){
  1169. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-metadata-code" id="adapterMetadataCode'+rowindex +'" ></select></div>');
  1170. }else{
  1171. if(row.adapterDictId==undefined) {
  1172. select = $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-metadata-code" id="adapterMetadataCode'+rowindex+'" >'
  1173. +'<option value="'+row.adapterMetadataId+','+row.adapterMetadataName+'">'+row.adapterMetadataCode+'</option></select></div>');
  1174. }else {
  1175. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-metadata-code" id="adapterMetadataCode'+rowindex+'" >'
  1176. +'<option value="'+row.adapterMetadataId+','+row.adapterMetadataName+','+row.adapterDictId +'">'+row.adapterMetadataCode+'</option></select></div>');
  1177. }
  1178. }
  1179. $('option[value="'+value+'"]',select).attr('selected',true);
  1180. return select.prop("outerHTML");
  1181. }
  1182. }},
  1183. { display: '源数据元名称', name: 'adapterMetadataName', width: width[5], render: function (row, rowindex, value, column) {
  1184. if(status =="1"){//已发布
  1185. return row.adapterMetadataName;
  1186. }else {//未发布
  1187. var select=null;
  1188. if(row.adapterMetadataId==undefined || row.adapterMetadataCode==undefined || row.adapterMetadataName==undefined){
  1189. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-metadata-name" id="adapterMetadataName'+rowindex +'" ></select></div>');
  1190. }else{
  1191. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-metadata-name" id="adapterMetadataName'+rowindex +'" >'
  1192. +'<option value="'+row.adapterMetadataId+','+row.adapterMetadataCode+'">'+row.adapterMetadataName+'</option></select></div>');
  1193. }
  1194. $('option[value="'+value+'"]',select).attr('selected',true);
  1195. return select.prop("outerHTML");
  1196. }
  1197. }},
  1198. { display: '源数据元类型', name: 'adapterDataType', width: width[6], render: function (row, rowindex, value, column) {
  1199. if(status =="1"){//已发布
  1200. if(row.adapterDataType == 1) {
  1201. return "编码";
  1202. }else{
  1203. return "值"
  1204. }
  1205. }else {//未发布
  1206. var select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-metadata-type" id="adapterDataType'+rowindex +'" >'
  1207. +'<option value="0">'+'值'+'</option>'
  1208. +'<option value="1">'+'编码'+'</option></select></div>');
  1209. if(row.adapterDataType == null){
  1210. value = 0;
  1211. }
  1212. $('option[value="'+value+'"]',select).attr('selected',true);
  1213. return select.prop("outerHTML");
  1214. }
  1215. }},{
  1216. display:'适配情况',name:'adapterInfo',width:'5%',render: function (row, rowindex, value, column) {
  1217. var select=null;
  1218. if(row.adapterDatasetId==undefined || row.adapterDatasetCode==undefined || row.adapterDatasetName==undefined){
  1219. select= $('<div class="f-mt25"><select class="js-example-data-array" id="adapterInfo'+rowindex+'" ><option value="0">未适配</option></select></div>');
  1220. }else{
  1221. select= $('<div class="f-mt25"><select class="js-example-data-array" id="adapterInfo'+rowindex+'">'
  1222. +'<option value="1" >疑似适配</option><option value="2">完全适配</option></select></div>');
  1223. }
  1224. $('option[value="'+value+'"]',select).attr('selected',true);
  1225. return select.prop("outerHTML");
  1226. }
  1227. }
  1228. ]
  1229. if(status =="0"){//未发布
  1230. columnCfg.push({ display: '操作', name: 'operator', width: '10%', render: function (row, rowindex, value, column) {
  1231. var html = '<div class="m-inline-buttons" style="width:40px;">';
  1232. html += '<a href="#" class="m-btn-clear" onclick="entryMaster.delete(\''+rowindex+'\',\'dataset\')"></a>';
  1233. return html;
  1234. }});
  1235. }
  1236. }
  1237. else{
  1238. columnCfg = [
  1239. { display: 'id', name: 'id', hide:true },
  1240. { display: 'stdDictId', name: 'stdDictId', hide:true },
  1241. { display: 'stdEntryId', name: 'stdEntryId', hide:true },
  1242. { display: 'adapterDictId', name: 'adapterDictId', hide:true },
  1243. { display: 'adapterEntryId', name: 'adapterEntryId', hide:true },
  1244. { display: '目标字典项编码', name: 'stdEntryCode', width: width[0], render: function (row, rowindex, value, column) {
  1245. if(status =="1"){//已发布
  1246. return row.stdEntryCode;
  1247. }else {//未发布
  1248. var select=null;
  1249. if(row.stdEntryId==undefined || row.stdEntryCode==undefined || row.stdEntryValue==undefined){
  1250. select= $('<div class="f-mt25"><select class="js-example-data-array sel-std-dictEntry-code" id="stdEntryCode'+rowindex +'" ></select></div>');
  1251. }else{
  1252. select= $('<div class="f-mt25"><select class="js-example-data-array sel-std-dictEntry-code" id="stdEntryCode'+rowindex+'" >'
  1253. +'<option value="'+row.stdEntryId+','+row.stdEntryValue+'">'+row.stdEntryCode+'</option></select></div>');
  1254. }
  1255. $('option[value="'+value+'"]',select).attr('selected',true);
  1256. return select.prop("outerHTML");
  1257. }
  1258. }},
  1259. { display: '目标字典项值', name: 'stdEntryValue', width: width[1], render: function (row, rowindex, value, column) {
  1260. if(status =="1"){//已发布
  1261. return row.stdEntryValue;
  1262. }else {//未发布
  1263. var select=null;
  1264. if(row.stdEntryId==undefined || row.stdEntryCode==undefined || row.stdEntryValue==undefined){
  1265. select= $('<div class="f-mt25"><select class="js-example-data-array sel-std-dictEntry-value" id="stdEntryValue'+rowindex +'" ></select></div>');
  1266. }else{
  1267. select= $('<div class="f-mt25"><select class="js-example-data-array sel-std-dictEntry-value" id="stdEntryValue'+rowindex +'" >'
  1268. +'<option value="'+row.stdEntryId+','+row.stdEntryCode+'">'+row.stdEntryValue+'</option></select></div>');
  1269. }
  1270. $('option[value="'+value+'"]',select).attr('selected',true);
  1271. return select.prop("outerHTML");
  1272. }
  1273. }},
  1274. { display: '源字典编码', name: 'adapterDictCode', width: width[2], render: function (row, rowindex, value, column) {
  1275. if(status =="1"){//已发布
  1276. return row.adapterDictCode;
  1277. }else {//未发布
  1278. var select=null;
  1279. if(row.adapterDictId==undefined || row.adapterDictCode==undefined || row.adapterDictName==undefined){
  1280. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dict-code" id="adapterDictCode'+rowindex +'" ></select></div>');
  1281. dataRows++;
  1282. }else{
  1283. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dict-code" id="adapterDictCode'+rowindex+'" >'
  1284. +'<option value="'+row.adapterDictId+','+row.adapterDictName+'">'+row.adapterDictCode+'</option></select></div>');
  1285. }
  1286. $('option[value="'+value+'"]',select).attr('selected',true);
  1287. return select.prop("outerHTML");
  1288. }
  1289. }},
  1290. { display: '源字典名称', name: 'adapterDictName', width: width[3], render: function (row, rowindex, value, column) {
  1291. if(status =="1"){//已发布
  1292. return row.adapterDictName;
  1293. }else {//未发布
  1294. var select=null;
  1295. if(row.adapterDictId==undefined || row.adapterDictCode==undefined || row.adapterDictName==undefined){
  1296. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dict-name" id="adapterDictName'+rowindex +'" ></select></div>');
  1297. }else{
  1298. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dict-name" id="adapterDictName'+rowindex +'" >'
  1299. +'<option value="'+row.adapterDictId+','+row.adapterDictCode+'">'+row.adapterDictName+'</option></select></div>');
  1300. }
  1301. $('option[value="'+value+'"]',select).attr('selected',true);
  1302. return select.prop("outerHTML");
  1303. }
  1304. }},
  1305. { display: '源字典项编码', name: 'adapterEntryCode', width: width[4], render: function (row, rowindex, value, column) {
  1306. if(status =="1"){//已发布
  1307. return row.adapterEntryCode;
  1308. }else {//未发布
  1309. var select=null;
  1310. if(row.adapterEntryId==undefined || row.adapterEntryCode==undefined || row.adapterEntryValue==undefined){
  1311. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dictEntry-code" id="adapterEntryCode'+rowindex +'" ></select></div>');
  1312. }else{
  1313. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dictEntry-code" id="adapterEntryCode'+rowindex+'" >'
  1314. +'<option value="'+row.adapterEntryId+','+row.adapterEntryValue+'">'+row.adapterEntryCode+'</option></select></div>');
  1315. }
  1316. $('option[value="'+value+'"]',select).attr('selected',true);
  1317. return select.prop("outerHTML");
  1318. }
  1319. }},
  1320. { display: '源字典项值', name: 'adapterEntryValue', width: width[5], render: function (row, rowindex, value, column) {
  1321. if(status =="1"){//已发布
  1322. return row.adapterEntryValue;
  1323. }else {//未发布
  1324. var select=null;
  1325. if(row.adapterEntryId==undefined || row.adapterEntryCode==undefined || row.adapterEntryValue==undefined){
  1326. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dictEntry-value" id="adapterEntryValue'+rowindex +'" ></select></div>');
  1327. }else{
  1328. select= $('<div class="f-mt25"><select class="js-example-data-array sel-adapter-dictEntry-value" id="adapterEntryValue'+rowindex +'" >'
  1329. +'<option value="'+row.adapterEntryId+','+row.adapterEntryCode+'">'+row.adapterEntryValue+'</option></select></div>');
  1330. }
  1331. $('option[value="'+value+'"]',select).attr('selected',true);
  1332. return select.prop("outerHTML");
  1333. }
  1334. }},{
  1335. display:'适配情况',name:'adapterInfo',width:'5%',render: function (row, rowindex, value, column) {
  1336. var select=null;
  1337. if(row.adapterEntryId==undefined || row.adapterEntryCode==undefined || row.adapterEntryValue==undefined){
  1338. select= $('<div class="f-mt25"><select class="js-example-data-array" id="adapterInfo'+rowindex+'" ><option value="0">未适配</option></select></div>');
  1339. }else{
  1340. select= $('<div class="f-mt25"><select class="js-example-data-array" id="adapterInfo'+rowindex+'">'
  1341. +'<option value="1" >疑似适配</option><option value="2">完全适配</option></select></div>');
  1342. }
  1343. $('option[value="'+value+'"]',select).attr('selected',true);
  1344. return select.prop("outerHTML");
  1345. }
  1346. }
  1347. ]
  1348. if(status =="0") {//未发布
  1349. columnCfg.push({ display: '操作', name: 'operator', width: '10%', render: function (row, rowindex, value, column) {
  1350. var html = '<div class="m-inline-buttons" style="width:40px;">';
  1351. html += '<a href="#" class="m-btn-clear" onclick="entryMaster.delete(\''+rowindex+'\',\'dict\')"></a>';
  1352. return html;
  1353. }});
  1354. }
  1355. }
  1356. return columnCfg;
  1357. }
  1358. };
  1359. //源数据集编码-源数据集名称联动公共方法
  1360. function comAdapterDataset(that,requestType,targer,changeTarget){
  1361. var index =that.attr("id").replace(targer,"");
  1362. var adapterStdVersion = $("#adapter_std_version").val();
  1363. var arr = that.val()==null?[]:that.val().split(",");
  1364. var url = '${contextRoot}' + "/standardCenter/getDatasetCodeValues?stdVersion="+adapterStdVersion+"&rows=10&order=";
  1365. if(arr.length>0){
  1366. if(targer=="adapterDatasetCode"){
  1367. var selectText = "";
  1368. $('#adapterDatasetCode'+index+' option').each(function () {
  1369. if($(this).val()==(arr[0]+","+arr[1])){
  1370. selectText = $(this).html();
  1371. return false;
  1372. }
  1373. });
  1374. url = '${contextRoot}' + "/standardCenter/getDatasetCodeValues?stdVersion="+adapterStdVersion+"&rows=9&order=&initVal="+selectText;//默认选中适配值
  1375. }else{
  1376. url = '${contextRoot}' + "/standardCenter/getDatasetCodeValues?stdVersion="+adapterStdVersion+"&rows=9&order=&initVal="+arr[1];//默认选中适配值
  1377. }
  1378. }
  1379. return selectBind(that,arr,requestType,targer,changeTarget,index,url);
  1380. }
  1381. //源数据元编码-源数据元名称联动公共方法
  1382. function comAdapterMetaData(that,requestType,targer,changeTarget){
  1383. var index =that.attr("id").replace(targer,"");
  1384. var adapterDatasetArr = $("#adapterDatasetCode"+index).val()==null?[]:$("#adapterDatasetCode"+index).val().split(",");
  1385. var arr = that.val()==null?[]:that.val().split(",");
  1386. var adapterStdVersion = $("#adapter_std_version").val();
  1387. if (adapterDatasetArr.length>0) {
  1388. var url = '${contextRoot}' + "/standardCenter/getMetadataCodeValues?stdVersion="+adapterStdVersion+"&datasetId="+adapterDatasetArr[0]+"&rows=10&order=";
  1389. if(arr.length>0){
  1390. url = '${contextRoot}' + "/standardCenter/getMetadataCodeValues?stdVersion="+adapterStdVersion+"&datasetId="+adapterDatasetArr[0]+"&rows=10&order=&initMetadataNm="+arr[1];//默认选中适配值
  1391. }
  1392. }
  1393. return selectBind(that,arr,requestType,targer,changeTarget,index,url);
  1394. }
  1395. //目标字典项编码-目标字典项名称联动公共方法
  1396. function comStdDictEntry(that,requestType,targer,changeTarget){
  1397. var index="";
  1398. if(!Util.isStrEmpty(that.attr("id"))){
  1399. index =that.attr("id").replace(targer,"");
  1400. }
  1401. var stdVersion = $("#std_version").val();
  1402. var arr = that.val()==null?[]:that.val().split(",");
  1403. var url = '${contextRoot}' + "/standardCenter/getDictEntryCodeValues?stdVersion="+stdVersion+"&dictId="+$("#std_dict_id").val()+"&rows=10&order=";
  1404. if(arr.length>0){
  1405. url = '${contextRoot}' + "/standardCenter/getDictEntryCodeValues?stdVersion="+stdVersion+"&dictId="+$("#std_dict_id").val()+"&rows=10&order=&initDictValue="+arr[1];//默认选中适配值
  1406. }
  1407. return selectBind(that,arr,requestType,targer,changeTarget,index,url);
  1408. }
  1409. //源字典编码-源字典名称联动公共方法
  1410. function comAdapterDict(that,requestType,targer,changeTarget){
  1411. var index =that.attr("id").replace(targer,"");
  1412. var adapterStdVersion = $("#adapter_std_version").val();
  1413. var arr = that.val()==null?[]:that.val().split(",");
  1414. var url = '${contextRoot}' + "/standardCenter/getDictCodeValues?stdVersion="+adapterStdVersion+"&rows=10&order=";
  1415. if(arr.length>0){
  1416. if(targer=="adapterDictCode"){
  1417. var selectText = "";
  1418. $('#adapterDictCode'+index+' option').each(function () {
  1419. if($(this).val()==(arr[0]+","+arr[1])){
  1420. selectText = $(this).html();
  1421. return false;
  1422. }
  1423. });
  1424. url = '${contextRoot}' + "/standardCenter/getDictCodeValues?stdVersion="+adapterStdVersion+"&rows=9&order=&initVal="+selectText;//默认选中适配值
  1425. }else{
  1426. url = '${contextRoot}' + "/standardCenter/getDictCodeValues?stdVersion="+adapterStdVersion+"&rows=9&order=&initVal="+arr[1];//默认选中适配值
  1427. }
  1428. }
  1429. return selectBind(that,arr,requestType,targer,changeTarget,index,url);
  1430. }
  1431. //源字典项编码-源字典项名称联动公共方法
  1432. function comAdapterDictEntry(that,requestType,targer,changeTarget){
  1433. var index="";
  1434. if(!Util.isStrEmpty(that.attr("id"))){
  1435. index =that.attr("id").replace(targer,"");
  1436. }
  1437. var adapterDictCodeArr = $("#adapterDictCode"+index).val()==null?[]:$("#adapterDictCode"+index).val().split(",");
  1438. var adapterStdVersion = $("#adapter_std_version").val();
  1439. var arr = that.val()==null?[]:that.val().split(",");
  1440. if (adapterDictCodeArr.length>0) {
  1441. var url = '${contextRoot}' + "/standardCenter/getDictEntryCodeValues?stdVersion="+adapterStdVersion+"&dictId="+adapterDictCodeArr[0]+"&rows=10&order=";
  1442. if(arr.length>0){
  1443. url = '${contextRoot}' + "/standardCenter/getDictEntryCodeValues?stdVersion="+adapterStdVersion+"&dictId="+adapterDictCodeArr[0]+"&rows=10&order=&initDictValue="+arr[1];//默认选中适配值
  1444. }
  1445. }
  1446. return selectBind(that,arr,requestType,targer,changeTarget,index,url);
  1447. }
  1448. function selectBind(that,arr,requestType,targer,changeTarget,index,url) {
  1449. var selectId = "";
  1450. var selectText = "";
  1451. if(arr.length>0 && requestType=="change"){
  1452. var option ="";
  1453. if(arr.length >2 && arr[2]!=undefined) {
  1454. option = '<option value="'+arr[0]+","+ $('#'+that.attr("id")).find("option:selected").text()+ "," + arr[2] +'">'+arr[1]+'</option>';
  1455. }else {
  1456. option = '<option value="'+arr[0]+","+ $('#'+that.attr("id")).find("option:selected").text()+'">'+arr[1]+'</option>';
  1457. }
  1458. $("#"+changeTarget+index).html("");
  1459. $("#"+changeTarget+index).append(option);
  1460. if(targer=="adapterDatasetCode" || targer=="adapterDatasetName" || targer=="adapterDictCode" || targer=="adapterDictName"){
  1461. selectId = arr[0]+","+ arr[1];
  1462. selectText = $('#'+that.attr("id")).find("option:selected").text();
  1463. }
  1464. }else if(arr.length==0 && requestType=="change"){
  1465. $("#"+changeTarget+index).html("");
  1466. }
  1467. if(Util.isStrEmpty(url)){
  1468. var select2 = that.select2({ placeholder: "只显示前10条结果",data:[]});
  1469. return select2;
  1470. }else{
  1471. //查询下拉框数据
  1472. var select2 = that.select2({
  1473. placeholder: "只显示前10条结果",
  1474. ajax: {
  1475. async:false,
  1476. dataType : "json",
  1477. url: url,
  1478. processResults: function (data, page) {
  1479. if(data.successFlg){
  1480. if(targer=="adapterDatasetCode" || targer=="adapterMetadataCode"
  1481. || targer=="adapterDictCode" || targer=="adapterEntryCode" || targer=="stdEntryCode"){//由于机构适配值的数据格式为id:id+“,”+code,text:name,但是机构适配值为id:id+","+name,text:code,所以需要重新组装数据
  1482. var toData;
  1483. var toArr = [];
  1484. var resultData = data.detailModelList||[];
  1485. if(targer=="adapterDatasetCode" || targer=="adapterDictCode" && resultData.length>0){//查询结果有值,才填充原本选中的值
  1486. toArr.push({id:selectId,text:selectText});
  1487. }
  1488. for(var i=0;i<resultData.length;i++){
  1489. var name = resultData[i].text;
  1490. var id = "";
  1491. if(resultData[i].id.split(",").length >2) {
  1492. if(resultData[i].id.split(",")[2] != undefined) {
  1493. id = resultData[i].id==null?"": resultData[i].id.split(",")[0]+","+name + "," + resultData[i].id.split(",")[2];
  1494. }
  1495. }else {
  1496. id = resultData[i].id==null?"": resultData[i].id.split(",")[0]+","+name ;
  1497. }
  1498. var code = resultData[i].id==null?"": resultData[i].id.split(",")[1];
  1499. toData = {id: id, text: code};
  1500. toArr.push(toData);
  1501. }
  1502. return {
  1503. results:undulpicate(toArr)
  1504. };
  1505. }else{//机构适配名称
  1506. if(targer=="adapterDatasetName" || targer=="adapterDictName"){
  1507. var resultData = [];
  1508. var detailModelList = data.detailModelList;
  1509. if(detailModelList.length>0){
  1510. resultData.push({id:selectId,text:selectText});
  1511. }
  1512. for(var i=0;i<detailModelList.length;i++){
  1513. var toData = {id: detailModelList[i].id, text: detailModelList[i].text};
  1514. resultData.push(toData);
  1515. }
  1516. return {
  1517. results: undulpicate(resultData)
  1518. };
  1519. }else{
  1520. return {
  1521. results: data.detailModelList
  1522. };
  1523. }
  1524. }
  1525. }else{
  1526. $.ligerDialog.error(data.message);
  1527. }
  1528. // cache: true
  1529. },
  1530. escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
  1531. minimumInputLength: 1,
  1532. }
  1533. })
  1534. return select2;
  1535. }
  1536. function undulpicate(array){//删除数组重复元素
  1537. array.sort();
  1538. for(var i=0;i<array.length;i++) {
  1539. for(var j=i+1;j<array.length;j++) {
  1540. //注意 ===
  1541. if(isObjectValueEqual(array[i],array[j])) {
  1542. array.splice(j,1);
  1543. j--;
  1544. }
  1545. }
  1546. }
  1547. return array;
  1548. }
  1549. function isObjectValueEqual(a, b) {//判断两个对象的值是否相等
  1550. var aProps = Object.getOwnPropertyNames(a);
  1551. var bProps = Object.getOwnPropertyNames(b);
  1552. if (aProps.length != bProps.length) {
  1553. return false;
  1554. }
  1555. for (var i = 0; i < aProps.length; i++) {
  1556. var propName = aProps[i];
  1557. if (a[propName] !== b[propName]) {
  1558. return false;
  1559. }
  1560. }
  1561. return true;
  1562. }
  1563. }
  1564. /* *************************** 页面功能 **************************** */
  1565. $(function () {
  1566. pageInit();
  1567. });
  1568. </script>