From 3dfe7d4be26b4b57e9848320caa8697e1f31b8e7 Mon Sep 17 00:00:00 2001 From: zhangyanpeng <bob.zhang@highdatas.com> Date: 星期一, 26 八月 2024 15:32:13 +0800 Subject: [PATCH] 调整 --- module/config/page/sys_menu_edit.html | 428 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 345 insertions(+), 83 deletions(-) diff --git a/module/config/page/sys_menu_edit.html b/module/config/page/sys_menu_edit.html index 72bbaf7..6d1abf3 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: [] @@ -41,9 +49,17 @@ label:"name",//鏄笅鎷夐�夐」鏃惰缃� }, { - name: "sys_model", + name: "modelByPage", dataname: "sys_model", - filter: "", + filter: "is_detail='F'", + isnotoption: false, //true:涓嶆槸閫夐」 + code:"id",//鏄笅鎷夐�夐」鏃惰缃� + label:"name",//鏄笅鎷夐�夐」鏃惰缃� + }, + { + name: "modelBydetail", + dataname: "sys_model", + filter: "is_detail='T'", 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"}, ], 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: [], @@ -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]; @@ -212,17 +236,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 +246,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 +285,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 +295,7 @@ else { var formData_ = clone(me.formData); formData_.model_id = "" - formData_.page_title = "" + formData_.page_title = formData_.title formData_.dataname = "" formData_.buttons = [] @@ -285,10 +307,8 @@ } }); - // 鑾峰彇椤甸潰鎸夐敭 - me.getPageButtons(page_id); }, - getPageButtons(page_id) { + getPageButtons(page_id, callback) { var me = this; let param_ = { dataname: "sys_page_button",//鑾峰彇缁忛攢鍟嗗搴旀敹璐у湴鍧� @@ -297,20 +317,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 +361,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 +404,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) { @@ -392,6 +473,9 @@ data_.parent_id = parent_ids } + data_.buttons = [] + data_.detail_model_id = "" + this.formData = data_; this.options_buttons = [] @@ -532,6 +616,37 @@ }, model_id: { + buttonarray: { + onclick: function(obj) { + + }, + }, + visible: { + onchange: function(obj,row,callback) { //涓嬫媺灞曞紑浜嬩欢 + let param_ = { + dataname: "sys_model",//鑾峰彇缁忛攢鍟嗗搴旀敹璐у湴鍧� + filter:"is_detail='F'", + } + 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 閫夋嫨"); @@ -652,50 +767,196 @@ 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, + 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_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 = []; + */ + 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() { + }) + }) + }, + + 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() + } + } }); }, @@ -704,6 +965,7 @@ this.$refs[data.id].style.display = isShow ? '' : 'none'; } }, + } }); }; -- Gitblit v1.8.0