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 +++++++++++++++++++++++----- module/model/page/popup_form_simple.html | 434 ++++++++++++++++++++++++++++ module/model/model_iframe.html | 8 module/model/page/table_simple.html | 24 + 4 files changed, 804 insertions(+), 90 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'; } }, + } }); }; diff --git a/module/model/model_iframe.html b/module/model/model_iframe.html index 8a5ba66..b5d8b00 100644 --- a/module/model/model_iframe.html +++ b/module/model/model_iframe.html @@ -86,8 +86,11 @@ methods:{ initData() { - if (this.sys_page_model.sys_model__url.substring(0, 18) == "module/model/page/") { - this.iframe_url = "./page/" + this.sys_page_model.sys_model__url.substring(18); + // if (this.sys_page_model.sys_model__url.substring(0, 18) == "module/model/page/") { + // this.iframe_url = "./page/" + this.sys_page_model.sys_model__url.substring(18); + // } + if(this.sys_page_model.sys_model__url.substring(0, 7) == "module/") { + this.iframe_url = window.top.config.url_page + this.sys_page_model.sys_model__url; } else { this.iframe_url = this.sys_page_model.sys_model__url @@ -154,7 +157,6 @@ <body style="position: absolute; top: 0; bottom: 0; left: 0; right: 0;"> <div v-cloak id="vbody"> <div id="page_root"> - <div>aaa</div> <div style="position: absolute; top: 0px; bottom: 5px; left: 0; right: 0;"> <iframe :src="iframe_url" style="width: 100%; height: 100%;" frameborder="0"></iframe> </div> diff --git a/module/model/page/popup_form_simple.html b/module/model/page/popup_form_simple.html new file mode 100644 index 0000000..15c7a82 --- /dev/null +++ b/module/model/page/popup_form_simple.html @@ -0,0 +1,434 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache"> + <title>绠�鍗曡鎯呮ā鍨�</title> + + <script type="text/javascript"> + var pageVue = null; + function loadJsCss(callback) { + var jscss_urls = []; + window.top.initJsCss(document, jscss_urls, callback); + }; + + function initVue() { + new FormVue({ + el: "#vbody", + data: { + dataname: "", + title: "绠�鍗曡鎯呮ā鍨�", + dataRequest: [], + formAttr: { + istitle: false, + title: "琛ㄥ崟鍚嶇О", + columnnumber: 2, + labelwidth: "100px", + labelposition: "left",//"left",// right//top + size: "mini", + border: "10px solid #c6c6c600", + borderleft: "0px" + }, + formFields: [], + + newformData: {}, + formData: {}, + + //鎸夐敭鏉冮檺璁剧疆 + isedit: false,//鎻愪氦鍓嶇紪杈戯紝淇濆瓨/鎻愪氦 + isrefuseedit: false,//鎷掔粷鍚庣紪杈戯紝淇濆瓨/鍐嶆鎻愪氦 + isapproval: false,//瀹℃壒锛屽悓鎰�/鎷掔粷/杞姙/閫�鍥� + + iscommit: false,//鎻愪氦鏍囪 + + //寮圭獥鍙傛暟 + popupParames: {}, + //瀛楁璁剧疆 + tablefieldClick: {}, + formfieldClick: {}, + dheight: null, + + //瀹℃壒鐩稿叧鍙橀噺 + reasonvisible:false,//瀹℃壒閫氳繃鎴栨嫆缁濆~鍐欏師鍥� + approveremark: '',//濉啓鐞嗙敱 + passOrRefuse:false, + loading_pass: false, + }, + created() { + this.popupParames = clone(Root.popupParames); + this.title = this.popupParames.title || this.popupParames.text + if (this.popupParames.data) { + this.formData = clone(this.popupParames.data); + } + if (this.popupParames.dataname) { + this.dataname = clone(this.popupParames.dataname); + } + if (this.popupParames.delta && this.popupParames.delta.dataname) { + this.dataname = clone(this.popupParames.delta.dataname); + } + + if (this.popupParames.sceneCode) { + if (this.popupParames.sceneCode == "add") {//鏂板 + var newEntity_ = { + name: "newEntity", + url: "root/data/newEntity", + paramsobj: {dataname: this.dataname}, + isnotoption: true, //true:涓嶆槸閫夐」 + } + this.dataRequest.push(newEntity_); + for (var k in this.popupParames.data) { + this.newformData[k] = this.popupParames.data[k] + } + this.isedit = true; + } + else if (this.popupParames.sceneCode == "browse") { //鍙 + this.formAttr.disabled = true; + } + else if (this.popupParames.sceneCode == "edit") {//缂栬緫 + this.isedit = true; + } + else if (this.popupParames.sceneCode == "approval") {//瀹℃壒 + this.formAttr.disabled = true; + this.isapproval = true; + } + } + }, + + mounted() { + var me = this; + var title_h = 0; + if (me.popupParames.totab) { + title_h = 42; + } + me.dheight = document.documentElement.clientHeight - 50 - title_h; + //棰勫姞杞芥暟鎹� + if (this.dataRequest && this.dataRequest.length) { + var result = {}; + this.loadRequestData(this.dataRequest, result, function(data) { + me.dataRequestObj = data; + //棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson + if (me.dataRequestObj.newEntity) { + var formData = clone(me.dataRequestObj.newEntity.data[me.dataname]); + if (me.newformData) { + let formData_ = clone(formData); + + for (var k in me.newformData) { + if (!formData_[k]) { + formData_[k] = me.newformData[k]; + } + } + + me.formData = formData_; + } + } + me.initData(); + }); + } + else { + this.initData(); + } + + // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂� + this.$nextTick(() => { + hideLoading(); + }); + }, + + methods:{ + //鍏抽棴寮圭獥 + closeDialog() { + var me = this; + if (me.popupParames.totab){ + Root.tab.removeItem(Root.tab.selected); + Root.tab.open(me.popupParames.parentOption, false); + } + else { + Root.hidePopup(); + } + }, + //鍏抽棴鍓嶈皟鍥炶皟 + saveAfter() { + var me = this; + if(this.popupParames.callback) { + let obj = { + row: this.formData + } + this.popupParames.callback(obj, function() { + me.closeDialog(); + }); + } + else { + me.closeDialog(); + } + }, + + initData() { + let me = this; + var id_ = null; + if (this.formData.id) { + id_ = this.formData.id; + } + this.getRowDataById(id_, function(result) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑 + if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) { + var metas = clone(result.meta[me.dataname].fields); + var formFields_ = []; + var formData_ = me.rowData[me.dataname] ? me.rowData[me.dataname] : clone(me.formData); + + me.formData = clone(formData_) + metas.map(f=>{ + f.isshow = "T"; + formFields_.push(clone(f)); + }) + if (!me.formFields || (me.formFields && me.formFields.length == 0)) { + me.formFields = clone(formFields_); + + //瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴�� + me.fieldsToFieldsObj(); + + //璁剧疆瀛楁浜嬩欢 + me.tableFieldClick(); + } + } + }) + }, + + tableFieldClick() { + var me = this; + //琛ㄥ崟瀛楁浜嬩欢璁剧疆 + this.formfieldClick = { + + }; + }, + + //鐢熸晥 + openRowTable() { + var me = this; + var bo_ = this.$refs.form1.checkForm(); + + if (!bo_) { + bo_ = false; + Root.message({ + type: 'error', + message: '璇峰~鍐欏繀濉」' + }); + return + } + me.formData.state_code = "Open" + me.formData.state_name = "鐢熸晥" + // this.iscommit = true; + this.saveRowTable(); + }, + + //淇濆瓨 + saveRowTable() { + var me = this; + var operator_ = "saveEntity";//淇濆瓨 + if(me.iscommit) { + operator_ = "commit";//鎻愪氦 + } + + var entity_ = clone(this.formData); + var entity = {}; + var product_ = []; + for (var r in entity_) { + if (entity_[r] || entity_[r] == "" || entity_[r] == false || entity_[r] == 0) { + entity[r] = entity_[r]; + } + } + + let param = { + dataname: me.dataname, + data: {}, + } + if (me.formData.id) { + param.id = me.formData.id + } + param.data[this.dataname] = entity; + + 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: '鎻愪氦鎴愬姛' + }); + me.saveAfter(); + } + else { + Root.message({ + type: 'success', + message: '淇濆瓨鎴愬姛' + }); + me.saveAfter(); + } + } + }); + }, + + // 閫氳繃鎴栨嫆缁� + onShowApproval(passOrRefuse) { + this.approveremark = ""; + this.reasonvisible = true;//瀹℃壒澶囨敞濉啓寮圭獥 + this.passOrRefuse = passOrRefuse;// commit涓嬩竴涓姸鎬�;approve閫氳繃;gohome;//鎷掔粷 goback;//鍥為�� + }, + saveReason() { + this.loading_pass = true; + if(this.passOrRefuse == "commit" || this.passOrRefuse == "approve"){ + this.doApproval(); + } + else{ + if(this.approveremark != ""){ + this.doApproval(); + } + else{ + Root.message({ + type: 'warning', + message: '璇峰~鍐欏師鍥�' + }); + this.loading_pass = false; + } + } + }, + doApproval(bo) { + var me = this; + this.doRunApproval() + }, + + doRunApproval() { + var me = this; + + let param = { + dataname: me.dataname, + id: me.formData.id, + remark: this.approveremark + } + Server.call("root/data/" + this.passOrRefuse, param, function(result) { + me.loading_pass = false; + console.log(result); + if (me.passOrRefuse == "commit" || me.passOrRefuse == "approve") { + Root.message({ + type: 'success', + message: '瀹℃壒鎴愬姛' + }); + } + else if (me.passOrRefuse == "goback") { + Root.message({ + type: 'success', + message: '宸查��鍥�' + }); + } + else if (me.passOrRefuse == "gohome") { + Root.message({ + type: 'success', + message: '宸叉嫆缁�' + }); + } + me.saveAfter(); + }, function(errorresult) { + console.log("閿欒淇℃伅", errorresult); + me.loading_pass = false; + if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) { + if (errorresult.messages.list) { + var config = { + totab: false, + // width: "1200px", + // height: 800, + icon: "icon-product", + text: "閿欒淇℃伅", + url: "module/tool/page/popup_error_messages.html", + data: {}, + delta: errorresult.messages.list, + callback: function(obj, callback) { + if (callback) { + callback(); + } + } + }; + me.doPopupByPublic(config); + + } + } + else { + Root.message({ + type: 'error', + message: '瀹℃壒澶辫触' + }); + } + }); + }, + + } + }); + }; + + loadJsCss(function () { + initVue(); + }); + </script> + <style> + /* 鍦╲ue.js涓� v-cloak 杩欎釜鎸囦护鏄槻姝㈤〉闈㈠姞杞芥椂鍑虹幇 vuejs 鐨勫彉閲忓悕鑰岃璁$殑 */ + [v-cloak] { + display: none !important; + } + </style> + + </head> + + <body style="margin: 0px;"> + <div v-cloak id="vbody"> + <div id="page_root"> + <div ref="popup_body" style="padding: 0 20px;"> + <div v-if="popupParames.totab" class="el-dialog__header"> + <div class="dialog-title"> + <i class="iconfont icon-customermanagement"></i> + <span> {{title}}</span> + </div> + </div> + <div :style="{height: dheight + 'px', 'overflow-y': 'auto'}"> + <div class="el-dialog__body"> + <h-form + ref="form1" + :form-attr="formAttr" + :table-fields="formFields" + :form-data="formData" + :table-field-click="formfieldClick" + > + </h-form> + </div> + </div> + <el-dialog title="濉啓鍘熷洜" :visible.sync="reasonvisible" height="50%"> + <el-input + type="textarea" + :autosize="{ minRows: 2, maxRows: 10}" + placeholder="璇疯緭鍏ュ師鍥�" + v-model="approveremark"> + </el-input> + + <div slot="footer" class="dialog-footer" > + <el-button type="default" @click="reasonvisible = false">鍙� 娑�</el-button> + <el-button type="primary" :loading="loading_pass" @click="saveReason">纭� 瀹�</el-button> + </div> + </el-dialog> + <div class="el-dialog__footer"> + <el-button-group style="margin-right: 80px;" > + <el-button size="small" v-if="isapproval" type="warning" plain @click="onShowApproval('gohome')">閫�鍥炲埌鐢宠浜�</el-button> + <el-button size="small" v-if="isapproval" type="danger" plain @click="onShowApproval('goback')">閫�鍥炲埌涓婁竴姝�</el-button> + </el-button-group> + <el-button size="small" type="default" @click="closeDialog">鍙� 娑�</el-button> + <el-button size="small" v-if="isedit || isrefuseedit" type="primary" :loading="loading_save" @click="saveRowTable":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button> + <el-button size="small" v-if="isedit && !formData.agreement_id" type="success" :loading="loading_submit" @click="openRowTable":icon="buttonsconfig.open.icon">{{buttonsconfig.open.name}}</el-button> + <el-button size="small" v-if="isapproval" type="success" @click="onShowApproval('approve')">閫� 杩�</el-button> + </div> + </div> + </div> + </div> + + <div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;"> + <div class="spinner"> + <div class="cube1"></div> + <div class="cube2"></div> + </div> + </div> + </body> +</html> diff --git a/module/model/page/table_simple.html b/module/model/page/table_simple.html index 3065d34..2f4cbc0 100644 --- a/module/model/page/table_simple.html +++ b/module/model/page/table_simple.html @@ -21,7 +21,16 @@ tablefieldClick: {}, formfieldClick: {}, - dataRequest: [], + dataRequest: [ + { + name: "sys_model", + dataname: "sys_model", + filter: "", + isnotoption: false, //true:涓嶆槸閫夐」 + code:"id",//鏄笅鎷夐�夐」鏃惰缃� + label:"url",//鏄笅鎷夐�夐」鏃惰缃� + }, + ], dataRequestObj:{}, filterFields: [], @@ -30,6 +39,8 @@ ctabs_r: {}, isbasicfilterfields: true, // 瀛樺湪鏌ヨ + detail_model_id: "", + sys_model_map: {} }, created() { if (window.top.tab.selected.option.page_id) { @@ -57,10 +68,15 @@ me.loadRequestData(me.dataRequest, result, function(data) { me.dataRequestObj = data; //棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson + if (me.dataRequestObj.sys_model) { + me.sys_model_map = me.dataRequestObj.sys_model.map.sys_model; + } + if (me.dataRequestObj.sys_page_model) { var sys_page_model = me.dataRequestObj.sys_page_model[0]; me.dataname = sys_page_model.dataname me.title = sys_page_model.title + me.detail_model_id = sys_page_model.detail_model_id } me.initData(); }); @@ -222,11 +238,11 @@ height: "500px", icon: "icon-product", text: me.title + "璇︽儏", - id: "form_simple" + sceneCode + row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈� - url: "module/model/page/form_simple.html", + id: "popup_form_simple" + sceneCode + row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈� + url: "module/model/page/popup_form_simple.html", dataname: me.dataname, data: row, - delta: {}, + delta: {dataname: me.dataname}, sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", callback: function(obj, callback) { me.onQuery(); -- Gitblit v1.8.0