From d95fc722dd4c5544e82c9da6da5b4bb548356cb2 Mon Sep 17 00:00:00 2001
From: zhangyanpeng <bob.zhang@highdatas.com>
Date: 星期一, 26 八月 2024 21:49:48 +0800
Subject: [PATCH] 调整

---
 module/config/page/sys_menu_edit.html |  557 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 467 insertions(+), 90 deletions(-)

diff --git a/module/config/page/sys_menu_edit.html b/module/config/page/sys_menu_edit.html
index 72bbaf7..4ee0a66 100644
--- a/module/config/page/sys_menu_edit.html
+++ b/module/config/page/sys_menu_edit.html
@@ -22,7 +22,15 @@
 						isTreeReadonly: false,
 						
 						form_dataname: "sys_menu",
-						// formAttr: {},
+						formAttr: {
+							istitle: false,
+							title: "琛ㄥ崟鍚嶇О",
+							columnnumber: 3,
+							labelwidth: "80px",
+							labelposition: "left",//"left",// right//top
+							size: "mini",
+							border: "0px solid #c6c6c600"
+						},
 						formFields: [],
 						formData: {
 							parent_id: []
@@ -35,15 +43,23 @@
 							{
 								name: "sys_menunotpage",
 								dataname: "sys_menu",
-								filter: " page_id is null",
+								filter: " page_id is null ",
 								isnotoption: false, //true:涓嶆槸閫夐」
 								code:"id",//鏄笅鎷夐�夐」鏃惰缃�
 								label:"name",//鏄笅鎷夐�夐」鏃惰缃�
 							},
 							{
-								name: "sys_model",
+								name: "modelByPage",
 								dataname: "sys_model",
-								filter: "",
+								filter: "open_type='page'",
+								isnotoption: false, //true:涓嶆槸閫夐」
+								code:"id",//鏄笅鎷夐�夐」鏃惰缃�
+								label:"name",//鏄笅鎷夐�夐」鏃惰缃�
+							},
+							{
+								name: "modelBydetail",
+								dataname: "sys_model",
+								filter: "open_type in ('popup','tab')",
 								isnotoption: false, //true:涓嶆槸閫夐」
 								code:"id",//鏄笅鎷夐�夐」鏃惰缃�
 								label:"name",//鏄笅鎷夐�夐」鏃惰缃�
@@ -53,8 +69,10 @@
 						options_menutree: [],
 						options_menumap: {},
 						options_model: [],
+						options_model_detail: [],
 						options_buttons: [],
 						pagebuttonmap: {},
+						modelbuttonmap: {},
 						
 						pagesize_p: 10,
 						pagenum_p: 1,
@@ -70,40 +88,41 @@
 							{isshow: "T", field: "icon", labelchinese: "鑿滃崟鍥炬爣", inputtype: "popup", optionsgroup: "", group_name: "鑿滃崟淇℃伅"},
 							{isshow: "T", field: "url", labelchinese: "鍦板潃", inputtype: "", optionsgroup: "", group_name: "鑿滃崟淇℃伅"},
 							
-							{isshow: "T", field: "model_id", labelchinese: "妯″瀷閫夋嫨", inputtype: "select", optionsgroup: "", colspan: 2, group_name: "椤甸潰閰嶇疆"},
 							{isshow: "T", field: "page_title", labelchinese: "椤甸潰鏍囬", inputtype: "", optionsgroup: "", group_name: "椤甸潰閰嶇疆"},
-							{isshow: "T", field: "dataname", labelchinese: "鏁版嵁瀵硅薄", inputtype: "", optionsgroup: "", group_name: "椤甸潰閰嶇疆"},
-							{isshow: "T", field: "buttons", labelchinese: "閫夋嫨鍔熻兘", inputtype: "checkboxobj", optionsgroup: "", group_name: "椤甸潰閰嶇疆"},
+							{isshow: "T", field: "model_id", labelchinese: "妯″瀷閫夋嫨", inputtype: "select", optionsgroup: "", colspan: 1, group_name: "椤甸潰閰嶇疆", buttonarrayname: [{type: "", buttonname:"妯″瀷缁存姢", icon: "", code:"showfile", classname: "form_showfile"}]},
+							{isshow: "T", field: "dataname", labelchinese: "鏁版嵁瀵硅薄", inputtype: "", optionsgroup: "", group_name: "椤甸潰閰嶇疆", buttonarrayname: [{type: "", buttonname:"瀵硅薄缁存姢", icon: "", code:"showfile", classname: "form_showfile"}]},
+							{isshow: "T", field: "buttons", labelchinese: "鍔熻兘閫夋嫨", inputtype: "checkboxobj", optionsgroup: "", colspan: 2, group_name: "椤甸潰閰嶇疆"},
+							{isshow: "T", field: "detail_model_id", labelchinese: "璇︽儏妯″瀷閫夋嫨", inputtype: "select", optionsgroup: "", colspan: 2, group_name: "椤甸潰閰嶇疆", labelwidth: "120", visiblefilterrule: "buttons锛欰dd銆丒dit銆丗ormDetail", buttonarrayname: [{type: "", buttonname:"璇︽儏妯″瀷缁存姢", icon: "", code:"detail_model", classname: "form_showfile"},{type: "", buttonname:"璇︽儏椤甸厤缃�", icon: "", code:"popup_detail_model", classname: ""}]},
 						],
 						
 						tableFields_table: [
-							{isshow: "T", field: "field", labelchinese: "瀛楁", width: "130", isfixed: "left", align: "left"},
-							{isshow: "T", field: "labelchinese", labelchinese: "涓枃鍚嶇О",inputtype: "input", width: "130", isfixed: "left"},
+							{isshow: "T", field: "field_name", labelchinese: "瀛楁", width: "130", isfixed: "left", align: "left"},
+							{isshow: "T", field: "label_chinese", labelchinese: "涓枃鍚嶇О",inputtype: "input", width: "130", isfixed: "left"},
 							{isshow: "T", field: "is_list", labelchinese: "鏄惁鏄剧ず",inputtype: "ischeckbox"},
-							{isshow: "T", field: "isfilter", labelchinese: "鏄惁鏌ヨ",inputtype: "ischeckbox"},
+							{isshow: "T", field: "is_filter", labelchinese: "鏄惁鏌ヨ",inputtype: "ischeckbox"},
 							{isshow: "T", field: "list_order_no", labelchinese: "椤哄簭",inputtype: "number"},
 							{isshow: "T", field: "width", labelchinese: "瀹藉害",inputtype: "input"},
-							{isshow: "T", field: "isminwidth", labelchinese: "鏄惁鏈�灏忓搴�",inputtype: "ischeckbox", width: "100"},
+							{isshow: "T", field: "is_min_width", labelchinese: "鏄惁鏈�灏忓搴�",inputtype: "ischeckbox", width: "100"},
 							{isshow: "T", field: "formatter", labelchinese: "鏍煎紡鍖�",inputtype: "select", optionsgroup: "formatterEvent", width: "150"},
-							{isshow: "T", field: "formatpattern", labelchinese: "鏍煎紡鍖栧弬鏁�",inputtype: "input", width: "150"},
+							{isshow: "T", field: "format_pattern", labelchinese: "鏍煎紡鍖栧弬鏁�",inputtype: "input", width: "150"},
 							{isshow: "T", field: "align", labelchinese: "瀵归綈鏂瑰紡",inputtype: "select", optionsgroup: "dataAlign", width: "150"},
 							{isshow: "F", field: "last_update_time", labelchinese: "鏇存柊鏃堕棿"},
-							{isshow: "T", field: "tablegroupname", labelchinese: "琛ㄥご鍒嗙粍鍚�",inputtype: "input"},
+							{isshow: "T", field: "table_group_name", labelchinese: "琛ㄥご鍒嗙粍鍚�",inputtype: "input", width: "150"},
 							
 						],
 						tableFields_form: [
-							{isshow: "T", field: "field", labelchinese: "瀛楁", width: "130", isfixed: "left", align: "left"},
-							{isshow: "T", field: "labelchinese", labelchinese: "涓枃鍚嶇О",inputtype: "input", width: "130", isfixed: "left"},
+							{isshow: "T", field: "field_name", labelchinese: "瀛楁", width: "130", isfixed: "left", align: "left"},
+							{isshow: "T", field: "label_chinese", labelchinese: "涓枃鍚嶇О",inputtype: "input", width: "130", isfixed: "left"},
 							{isshow: "T", field: "is_form", labelchinese: "鏄惁鏄剧ず", inputtype: "ischeckbox"},
-							{isshow: "T", field: "inputtype", labelchinese: "杈撳叆绫诲瀷", inputtype: "select", optionsgroup: "inputType", width: "150"},
-							{isshow: "T", field: "optionsgroup", labelchinese: "閫夐」瀛楀吀", inputtype: "select", optionsgroup: "dictionary"},
+							{isshow: "T", field: "input_type", labelchinese: "杈撳叆绫诲瀷", inputtype: "select", optionsgroup: "inputType", width: "150"},
+							{isshow: "T", field: "options_key", labelchinese: "閫夐」瀛楀吀", inputtype: "select", optionsgroup: "dictionary"},
 							{isshow: "T", field: "list_order_no", labelchinese: "椤哄簭",inputtype: "number"},
-							{isshow: "T", field: "required", labelchinese: "鏄惁蹇呭~",inputtype: "ischeckbox"},
+							{isshow: "T", field: "is_required", labelchinese: "鏄惁蹇呭~",inputtype: "ischeckbox"},
 							{isshow: "T", field: "colspan", labelchinese: "鍚堝苟鍒楁暟",inputtype: "input"},
 							{isshow: "T", field: "formatter", labelchinese: "鏍煎紡鍖�",inputtype: "select", optionsgroup: "formatterEvent", width: "150"},
-							{isshow: "T", field: "formatpattern", labelchinese: "鏍煎紡鍖栧弬鏁�",inputtype: "input", width: "150"},
+							{isshow: "T", field: "format_pattern", labelchinese: "鏍煎紡鍖栧弬鏁�",inputtype: "input", width: "150"},
 							{isshow: "F", field: "last_update_time", labelchinese: "鏇存柊鏃堕棿"},
-							{isshow: "T", field: "group_name", labelchinese: "琛ㄥご鍒嗙粍鍚�"},
+							{isshow: "T", field: "form_group_name", labelchinese: "瀛楁鍒嗙粍鍚�",inputtype: "input", width: "150"},
 						],
 						tableFields: [],
 						tableData: [],
@@ -115,7 +134,7 @@
 					},
 					created() {
 						let clientHeight = document.documentElement.clientHeight;
-						this.tableHeight = clientHeight - 250 - 32;
+						this.tableHeight = clientHeight - 250 - 32 - 10;
 						
 					},
 					
@@ -135,11 +154,14 @@
 									var sys_menunotpagetree = ArrayToTree(clone(sys_menunotpage_), "title", "parent_id");
 									me.options_menutree = clone(sys_menunotpagetree);
 								}
-								if (me.dataRequestObj.sys_model) {
-									var sys_model_ = clone(me.dataRequestObj.sys_model);
+								if (me.dataRequestObj.modelByPage) {
+									var sys_model_ = clone(me.dataRequestObj.modelByPage);
 									me.options_model = clone(sys_model_);
 								}
-								
+								if (me.dataRequestObj.modelBydetail) {
+									var sys_model_ = clone(me.dataRequestObj.modelBydetail);
+									me.options_model_detail = clone(sys_model_);
+								}
 								
 								me.initData();
 							});
@@ -174,7 +196,9 @@
 								var row = me.treeData[0];
 								// me.$refs.table1.setCurrentRow(row)
 								me.selectNodeData = clone(row);
-								me.formData = row;
+								let row_ = clone(row);
+								row_.buttons = []
+								me.formData = row_;
 								me.isRefresh = false;
 								me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
 									me.defaultexpandedkeys = [me.formData.id];
@@ -187,12 +211,14 @@
 						menuToPageTree(oldmenus) {
 							var me = this;
 							oldmenus.map(om=>{
-								if (om.id && om.open_type && om.open_type == "arrange") {
+								
+								if (om.id && om.open_type && om.open_type == "arrange" && om.page_id) {
 									om.isnot_nodeadd = true; // 鑺傜偣涓嶅彲鏂板
 								}
-								else if (om.id && !om.page_id) {
+								else if (om.id && !om.page_id ) {
 									// om.isnot_nodeadd = true; // 鑺傜偣涓嶅彲鏂板
-									om.isnot_nodeedit = true; // 鑺傜偣涓嶅彲鏀�
+									// om.isnot_nodeedit = true; // 鑺傜偣涓嶅彲鏀�
+									om.ishnodeadd = true;
 									om.isnot_nodedel = true; // 鑺傜偣涓嶅彲鍒�
 								}
 								else {
@@ -212,17 +238,6 @@
 							var me = this;
 							var metas = clone(me.page_metas);
 							var formFields_ = [];
-							/* 
-							page_metas: [
-								{isshow: "T", field: "title", labelchinese: "鑿滃崟鍚嶇О", inputtype: "", optionsgroup: "", group_name: "鑿滃崟淇℃伅"},
-								{isshow: "T", field: "url", labelchinese: "璺緞", inputtype: "", optionsgroup: "", group_name: "鑿滃崟淇℃伅"},
-								
-								{isshow: "T", field: "model_id", labelchinese: "妯″瀷閫夋嫨", inputtype: "select", optionsgroup: "", colspan: 2, group_name: "椤甸潰閰嶇疆"},
-								{isshow: "T", field: "page_title", labelchinese: "椤甸潰鏍囬", inputtype: "", optionsgroup: "", group_name: "椤甸潰閰嶇疆"},
-								{isshow: "T", field: "dataname", labelchinese: "鏁版嵁瀵硅薄", inputtype: "", optionsgroup: "", group_name: "椤甸潰閰嶇疆"},
-								{isshow: "T", field: "buttons", labelchinese: "閫夋嫨鍔熻兘", inputtype: "checkbox", optionsgroup: "", group_name: "椤甸潰閰嶇疆"},
-							] 
-							*/
 							metas.map(f=>{
 								f.isshow = "T";
 								if (f.field == "parent_id") {
@@ -233,27 +248,36 @@
 									// f.props = {value: "id", label: "title", checkStrictly: true};
 									f.options = me.options_model;
 								}
+								if (f.field == "detail_model_id") {
+									f.options = me.options_model_detail;
+								}
 								if (f.field == "buttons") {
 									f.options = clone(me.options_buttons);
 								}
 								
 								formFields_.push(clone(f));
 							})
-							// if (!me.formFields || (me.formFields && me.formFields.length == 0)) {
 							me.formFields = clone(formFields_);
-							// }
 							me.formFieldClick();
 						},
 						getPageData(page_id) {
+							var me = this;
+							// 鑾峰彇椤甸潰鎸夐敭
+							this.getPageButtons(page_id, function() {
+								me.doGetPageData(page_id);
+							});
+						},
+						doGetPageData(page_id) {
 							var me = this;
 							// 鑾峰彇椤甸潰瀵瑰簲妯″瀷
 							this.getPageData_model(page_id, function(pagemodel) {
 								if (pagemodel && pagemodel.model_id) {
 									var formData_ = clone(me.formData);
+									formData_.page_model_id = pagemodel.id
 									formData_.model_id = pagemodel.model_id
-									formData_.page_title = pagemodel.title
+									formData_.detail_model_id = pagemodel.detail_model_id
+									formData_.page_title = pagemodel.title ? pagemodel.title : formData_.title
 									formData_.dataname = pagemodel.dataname
-									formData_.buttons = []
 									
 									me.formData = clone(formData_);
 									me.scene_type = pagemodel.sys_model__scene_type;
@@ -263,7 +287,7 @@
 										me.getPageMeta();
 									});
 									if (formData_.dataname) {
-										me.getTableData(formData_.dataname, pagemodel.sys_model__scene_type);
+										me.getTableData(formData_.dataname, me.scene_type);
 									}
 									else {
 										me.tableFields = [];
@@ -273,7 +297,7 @@
 								else {
 									var formData_ = clone(me.formData);
 									formData_.model_id = ""
-									formData_.page_title = ""
+									formData_.page_title = formData_.title
 									formData_.dataname = ""
 									formData_.buttons = []
 									
@@ -285,10 +309,8 @@
 								}
 								
 							});
-							// 鑾峰彇椤甸潰鎸夐敭
-							me.getPageButtons(page_id);
 						},
-						getPageButtons(page_id) {
+						getPageButtons(page_id, callback) {
 							var me = this;
 							let param_ = {
 								dataname: "sys_page_button",//鑾峰彇缁忛攢鍟嗗搴旀敹璐у湴鍧�
@@ -297,20 +319,22 @@
 							Server.call("root/data/getEntitySet", param_, function(result) {
 								var pagebuttons = []
 								var pagebuttonmap = {}
+								if (!pagebuttonmap[page_id]) {
+									pagebuttonmap[page_id] = {}
+								}
 								if (result && result.data && result.data.entityset && result.data.entityset.length) {
 									result.data.entityset.map(r=>{
-										if (!pagebuttonmap[page_id]) {
-											pagebuttonmap[page_id] = {}
-										}
 										pagebuttonmap[page_id][r.code] = r.id;
-										
 										pagebuttons.push(r.code)
 									})
-									
-									me.pagebuttonmap = clone(pagebuttonmap);
-									var formData_ = clone(me.formData)
-									formData_.buttons = pagebuttons
-									me.formData = clone(formData_);
+								}
+								me.pagebuttonmap = clone(pagebuttonmap);
+								var formData_ = clone(me.formData)
+								formData_.buttons = pagebuttons
+								me.formData = clone(formData_);
+								
+								if (callback) {
+									callback()
 								}
 							});
 						},
@@ -339,21 +363,23 @@
 							}
 							Server.call("root/data/getEntitySet", param_, function(result) {
 								var modelbuttons = []
+								var modelbuttonmap = {};
 								if (result && result.data && result.data.entityset && result.data.entityset.length) {
 									result.data.entityset.map(r=>{
 										let b_ = {
 											code: r.parameter_code,
 											value: r.parameter_name,
 										}
+										modelbuttonmap[b_.code] = b_.value
 										modelbuttons.push(b_)
 									})
 								}
-								
+								me.modelbuttonmap = clone(modelbuttonmap);
 								callback(modelbuttons);
 							});
 						},
 						
-						getTableData(dataname, scene_type) {
+						getTableData_mate(dataname, scene_type) {
 							var me = this;
 							var interface_ = "getEntitySet"
 							if (scene_type == "table") {
@@ -380,6 +406,63 @@
 								me.tableData = clone(tableData)
 							});
 						},
+						getTableData(dataname, scene_type) {
+							var me = this;
+							if (scene_type == "table") {
+								interface_ = "getEntitySet"
+								this.tableFields = clone(this.tableFields_table)
+							}
+							else {
+								interface_ = "getEntity"
+								this.tableFields = clone(this.tableFields_form)
+							}
+							
+							this.tableloading = true;
+							let param_p = {
+								dataname: "sys_data_property",//鑾峰彇缁忛攢鍟嗗搴旀敹璐у湴鍧�
+								filter: "dataname='" + dataname + "'",
+								orderby: "is_list desc, list_order_no"
+							}
+							Server.call("root/data/getEntitySet", param_p, function(result_p) {
+								let param_f = {
+									dataname: "sys_data_field",//鑾峰彇缁忛攢鍟嗗搴旀敹璐у湴鍧�
+									filter: "dataname='" + dataname + "'",
+								}
+								Server.call("root/data/getEntitySet", param_f, function(result_f) {
+									let table_p = []
+									let table_f_map = {}
+									if (result_p && result_p.data && result_p.data.entityset) {
+										table_p = result_p.data.entityset;
+									}
+									if (result_f && result_f.data && result_f.data.entityset) {
+										let table_f = result_f.data.entityset;
+										table_f.map(tf=> {
+											table_f_map[tf.field_name] = tf
+										})
+									}
+									table_p.map(tp=>{
+										if (table_f_map[tp.field_name]) {
+											let tf_ = table_f_map[tp.field_name];
+											
+											tp.field_id = tf_.id;
+											tp.input_type = tf_.input_type;
+											tp.options_key = tf_.options_key;
+											tp.formatter = tf_.formatter;
+											tp.format_pattern = tf_.format_pattern;
+											tp.align = tf_.align;
+											tp.label_chinese = tp.label_chinese ? tp.label_chinese : tf_.label_chinese;
+											tp.label_english = tp.label_english ? tp.label_english : tf_.label_english;
+										}
+										else {
+											tp.label_chinese = tp.label_chinese ? tp.label_chinese : tp.field_name;
+											tp.label_english = tp.label_english ? tp.label_english : tp.field_name;
+										}
+									})
+									me.tableloading = false;
+									me.tableData = clone(table_p)
+								})
+							});
+						},
 						
 						//鑺傜偣鐐瑰嚮锛岀粰鍙宠竟璧嬪��
 						onNodeClick(obj) {
@@ -390,8 +473,11 @@
 								var parent_ids_ = [];
 								var parent_ids = this.getParents(data_.parent_id, this.options_menumap, parent_ids_);
 								
-								data_.parent_id = parent_ids
+								data_.parent_id = parent_ids_
 							}
+							data_.buttons = []
+							data_.detail_model_id = ""
+							
 							this.formData = data_;
 							
 							this.options_buttons = []
@@ -430,6 +516,21 @@
 								delta: {},
 								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
 								callback: function(obj, callback) {
+									me.options_menutree = clone(obj.treeoptions)
+									var sys_menunotpage_ = clone(obj.listoptions);
+									me.options_menumap = {}
+									sys_menunotpage_.map(m=>{
+										me.options_menumap[m.id] = m;
+									})
+									
+									var formFields_ = clone(me.formFields)
+									formFields_.map(f=>{
+										if(f.field == "parent_id") {
+											f.options = (me.options_menutree)
+										}
+									})
+									me.formFields = clone(formFields_)
+									
 									me.getMenuAll();
 									if (callback) {
 										callback();
@@ -451,6 +552,19 @@
 								data: data,
 								sceneCode: "edit",
 								callback: function(options_obj, callback) {
+									me.options_menutree = clone(obj.treeoptions)
+									var sys_menunotpage_ = clone(obj.listoptions);
+									me.options_menumap = {}
+									sys_menunotpage_.map(m=>{
+										me.options_menumap[m.id] = m;
+									})
+									var formFields_ = clone(me.formFields)
+									formFields_.map(f=>{
+										if(f.field == "parent_id") {
+											f.options = (me.options_menutree)
+										}
+									})
+									me.formFields = clone(formFields_)
 									me.getMenuAll();
 									if (callback) {
 										callback();
@@ -531,7 +645,67 @@
 									},
 								},
 								
+								detail_model_id: {
+									buttonarray: {
+										onclick: function(obj) {
+											if (obj.buttonobj.code == "popup_detail_model") {
+												let sceneCode = "add"
+												var config = {
+													totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+													width: "900px",
+													height: "500px",
+													icon: "icon-product",
+													text: "缂栬緫椤甸厤缃�",
+													id: "popup_tablefield_edit" + sceneCode,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+													url: "module/config/page/popup/popup_tablefield_edit.html",
+													dataname: me.dataname,
+													data: {},
+													delta: {dataname: me.dataname, tabledata: me.tableData, tablefields: me.tableFields_form},
+													sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+													callback: function(obj, callback) {
+														me.tableData = clone(obj.tableData)
+														if (callback) {
+															callback();
+														}
+													}
+												};
+												me.doPopupByPublic(config);
+											}
+										},
+									},
+								},
 								model_id: {
+									buttonarray: {
+										onclick: function(obj) {
+											
+										},
+									},
+									visible: {
+										onchange: function(obj,row,callback) { //涓嬫媺灞曞紑浜嬩欢
+											let param_ = {
+												dataname: "sys_model",//鑾峰彇缁忛攢鍟嗗搴旀敹璐у湴鍧�
+												filter:"open_type='page'",
+											}
+											Server.call("root/data/getEntitySet", param_, function(result) {
+												if (result && result.data && result.data.entityset) {
+													var options_ = []
+													result.data.entityset.map(r=>{
+														var option_ = clone(r);
+														option_.code = r.id;
+														option_.value = r.name;
+														options_.push(option_)
+													})
+													var formFields_ = clone(me.formFields)
+													formFields_.map(f=>{
+														if(f.field == "model_id") {
+															f.options = options_
+														}
+													})
+													me.formFields = clone(formFields_)
+												}
+											});
+										}
+									},
 									select: {
 										onchange: function(obj,refreshCallback) {//涓嬫媺灞曞紑浜嬩欢
 											console.log("model_id 閫夋嫨");
@@ -641,6 +815,19 @@
 								delta: {},
 								sceneCode: "addmenu",//"refuseedit",//"approval", //"add"//"browse",
 								callback: function(obj, callback) {
+									me.options_menutree = clone(obj.treeoptions)
+									var sys_menunotpage_ = clone(obj.listoptions);
+									me.options_menumap = {}
+									sys_menunotpage_.map(m=>{
+										me.options_menumap[m.id] = m;
+									})
+									var formFields_ = clone(me.formFields)
+									formFields_.map(f=>{
+										if(f.field == "parent_id") {
+											f.options = (me.options_menutree)
+										}
+									})
+									me.formFields = clone(formFields_)
 									me.getMenuAll();
 									if (callback) {
 										callback();
@@ -652,50 +839,234 @@
 						
 						saveRowTable() {
 							var me = this;
-							var operator_ = "save";//淇濆瓨
-							
 							var entity_ = clone(this.formData);
-							var entity = {};
-							for (var r in entity_) {
-								if (r == "parent_id") {
-									if (entity_[r] && entity_[r].length) {
-										entity[r] = entity_[r][entity_[r].length - 1];
+							var entity_menu = {
+								id: entity_.id,
+								parent_id: entity_.parent_id[entity_.parent_id.length - 1],
+								icon: entity_.icon,
+								title: entity_.title
+							};
+							var entity_page = {
+								id: entity_.page_id,
+								url: entity_.url,
+							};
+							var entity_page_model = {
+								id: entity_.page_model_id ? entity_.page_model_id : null,
+								page_id: entity_.page_id,
+								model_id: entity_.model_id,
+								title: entity_.page_title,
+								dataname: entity_.dataname,
+								detail_model_id: entity_.detail_model_id
+							};
+							
+							var entity_page_button_add = [];
+							var entity_page_button_del = [];
+							if (entity_.buttons && entity_.buttons.length) {
+								entity_.buttons.map(b=>{
+									if (me.pagebuttonmap[entity_.page_id] && !me.pagebuttonmap[entity_.page_id][b]) {
+										let page_button_ = {
+											page_id: entity_.page_id,
+											code: b,
+											title: me.modelbuttonmap[b],
+											is_active: "T"
+										}
+										entity_page_button_add.push(page_button_)
+									}
+									else if(!me.pagebuttonmap[entity_.page_id]) {
+										let page_button_ = {
+											page_id: entity_.page_id,
+											code: b,
+											title: me.modelbuttonmap[b],
+											is_active: "T"
+										}
+										entity_page_button_add.push(page_button_)
+									}
+								})
+							}
+							if(this.pagebuttonmap[entity_.page_id]) {
+								for (var b_code in this.pagebuttonmap[entity_.page_id]) {
+									if (entity_.buttons && entity_.buttons.includes(b_code)) {
+										
 									}
 									else {
-										entity[r] = null;
+										let id = this.pagebuttonmap[entity_.page_id][b_code];
+										entity_page_button_del.push(id)
 									}
 								}
-								else if (entity_[r] || entity_[r] ==  "" || entity_[r] == false || entity_[r] == 0) {
-									entity[r] = entity_[r];
-								}
 							}
 							
+							var entity_data_field = [];
+							var entity_data_property = [];
+							var datetime_ = dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss")
+							this.tableData.map(r=>{
+								if (r.field_id) {
+									var field_ = {
+										id: r.field_id ? r.field_id : null,
+										formatter: r.formatter ? r.formatter : null,
+										format_pattern: r.format_pattern ? r.format_pattern : null,
+										align: r.align ? r.align : null,
+										last_update_time: datetime_,
+										input_type: r.input_type ? r.input_type : null,
+										options_key: r.options_key ? r.options_key : null,
+									}
+									entity_data_field.push(field_);
+								}
+								
+								var property_ = {
+									id: r.id ? r.id : null,
+									last_update_time: datetime_,
+									label_chinese: r.label_chinese,
+									is_list: r.is_list ? r.is_list : false,
+									is_form: r.is_form ? r.is_form : false,
+									is_filter: r.is_filter ? r.is_filter : false,
+									list_order_no: r.list_order_no ? r.list_order_no : 0,
+									form_order_no: r.form_order_no ? r.form_order_no : 0,
+									width: r.width ? r.width : 100,
+									is_min_width: r.is_min_width ? r.is_min_width : false,
+									table_group_name: r.table_group_name ? r.table_group_name : null,
+									form_group_name: r.form_group_name ? r.form_group_name : null,
+									is_required: r.is_required ? r.is_required : false,
+									colspan: r.colspan ? r.colspan : null,
+								}
+								
+								entity_data_property.push(property_);
+							})
+							
+							
+							/*
+							 sys_menu
+							 sys_page
+							 sys_page_model
+							 */
+							this.saveData("sys_menu", entity_menu, function() {
+								me.saveData("sys_page", entity_page, function() {
+									me.onRefreshCacheByPageId(entity_page.id, function(){
+										if (entity_page_model.model_id) {
+											me.saveData("sys_page_model", entity_page_model, function() {
+												Root.message({
+													type: 'success',
+													message: '淇濆瓨鎴愬姛'
+												});
+												me.getMenuAll();
+											});
+										}
+										else {
+											Root.message({
+												type: 'success',
+												message: '淇濆瓨鎴愬姛'
+											});
+											me.getMenuAll();
+										}
+									})
+								});
+							});
+							
+							/* 
+							sys_page_button
+							sys_data_field
+							sys_data_property
+							var entity_page_button_add = [];
+							var entity_page_button_del = [];
+							var entity_data_field = [];
+							var entity_data_property = [];
+							 */
+							me.saveButtonAdd(entity_page_button_add, function() {
+								me.saveButtonDel(entity_page_button_del, function() {
+									me.onRefreshCacheByPageId(entity_page.id);
+								})
+							})
+							// entity_page_button_add.map(ba=>{
+							// 	me.saveData("sys_page_button", ba, function() {
+							// 	})
+							// })
+							entity_data_field.map(df=>{
+								me.saveData("sys_data_field", df, function() {
+								})
+							})
+							entity_data_property.map(dp=>{
+								me.saveData("sys_data_property", dp, function() {
+								})
+							})
+							
+							// entity_page_button_del.map(bd=>{
+							// 	me.delData("sys_page_button", bd, function() {
+							// 	})
+							// })
+						},
+						
+						saveButtonAdd(list, callback) {
+							var me = this;
+							if (list.length) {
+								let buttonadd_ = list[0];
+								me.saveData("sys_page_button", buttonadd_, function() {
+									console.log("鏂板鎸夐敭");
+									list.remove(buttonadd_)
+									me.saveButtonAdd(list, callback)
+								})
+							}
+							else {
+								callback()
+							}
+						},
+						saveButtonDel(list, callback) {
+							var me = this;
+							if (list.length) {
+								let buttonadd_ = list[0];
+								me.delData("sys_page_button", buttonadd_, function() {
+									console.log("鍒犻櫎鎸夐敭");
+									list.remove(buttonadd_)
+									me.saveButtonDel(list, callback)
+								})
+							}
+							else {
+								callback()
+							}
+						},
+						 
+						saveData(dataname, data, callback) {
+							var me = this;
 							let param = {
-								dataname: this.dataname,
-								// operator: operator_,
+								dataname: dataname,
 								data: {},
 							}
-							param.data[this.dataname] = entity;
-							
+							param.data[dataname] = data;
+							if (data.id) {
+								param.id = data.id
+							}
 							Server.call("root/data/saveEntity", param, function(result) {
 								console.log(result);
 								if (result.success) {
-									if (me.iscommit) {
-										me.iscommit = false;
-										Root.message({
-											type: 'success',
-											message: '鎻愪氦鎴愬姛'
-										}); 
-									}
-									else {
-										Root.message({
-											type: 'success',
-											message: '淇濆瓨鎴愬姛'
-										}); 
+									if (callback) {
+										callback()
 									}
 								}
-								
-								me.getMenuAll();
+							});
+						},
+						
+						delData(dataname, id) {
+							let param = {
+								id: id,
+								dataname: dataname,
+							}
+							Server.call("root/data/deleteEntity", param, function(result) {
+							});
+						},
+						
+						// 鍒锋柊缂撳瓨
+						onRefreshCacheByPageId(PageId, callback) {
+							var me = this;
+							let param_ = {
+								page_id: PageId
+							}
+							Server.call("root/system/reloadMenuByPage", param_, function(result) {
+								if (result.success) {
+									if (callback) {
+										callback()
+									}
+									else {
+										console.log("鍒锋柊椤甸潰");
+									}
+								}
 							});
 						},
 
@@ -704,6 +1075,7 @@
 								this.$refs[data.id].style.display = isShow ? '' : 'none';
 							}
 						},
+						
 					}
 				});
 			};
@@ -721,6 +1093,11 @@
 			    overflow: hidden;
 			    position: relative;
 			    padding-left: 20px;
+			}
+			.h_form_group {
+				height: 32px;
+				line-height: 32px;
+				margin-top: 5px !important;
 			}
 		</style>
 		
@@ -773,7 +1150,7 @@
 								</div>
 							</div>
 								
-							<div style="margin: 16px;">
+							<div style="margin: 0 10px;">
 								<h-form
 									ref="form1"
 									:form-attr="formAttr"

--
Gitblit v1.8.0