| | |
| | | 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: [] |
| | |
| | | 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",//是下拉选项时设置 |
| | |
| | | options_menutree: [], |
| | | options_menumap: {}, |
| | | options_model: [], |
| | | options_model_detail: [], |
| | | options_buttons: [], |
| | | pagebuttonmap: {}, |
| | | modelbuttonmap: {}, |
| | | |
| | | pagesize_p: 10, |
| | | pagenum_p: 1, |
| | |
| | | {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:Add、Edit、FormDetail"}, |
| | | ], |
| | | |
| | | 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: [], |
| | |
| | | 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(); |
| | | }); |
| | |
| | | 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]; |
| | |
| | | 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") { |
| | |
| | | // 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; |
| | |
| | | me.getPageMeta(); |
| | | }); |
| | | if (formData_.dataname) { |
| | | me.getTableData(formData_.dataname, pagemodel.sys_model__scene_type); |
| | | me.getTableData(formData_.dataname, me.scene_type); |
| | | } |
| | | else { |
| | | me.tableFields = []; |
| | |
| | | else { |
| | | var formData_ = clone(me.formData); |
| | | formData_.model_id = "" |
| | | formData_.page_title = "" |
| | | formData_.page_title = formData_.title |
| | | formData_.dataname = "" |
| | | formData_.buttons = [] |
| | | |
| | |
| | | } |
| | | |
| | | }); |
| | | // 获取页面按键 |
| | | me.getPageButtons(page_id); |
| | | }, |
| | | getPageButtons(page_id) { |
| | | getPageButtons(page_id, callback) { |
| | | var me = this; |
| | | let param_ = { |
| | | dataname: "sys_page_button",//获取经销商对应收货地址 |
| | |
| | | Server.call("root/data/getEntitySet", param_, function(result) { |
| | | var pagebuttons = [] |
| | | var pagebuttonmap = {} |
| | | if (result && result.data && result.data.entityset && result.data.entityset.length) { |
| | | result.data.entityset.map(r=>{ |
| | | if (!pagebuttonmap[page_id]) { |
| | | pagebuttonmap[page_id] = {} |
| | | } |
| | | if (result && result.data && result.data.entityset && result.data.entityset.length) { |
| | | result.data.entityset.map(r=>{ |
| | | 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_); |
| | | |
| | | if (callback) { |
| | | callback() |
| | | } |
| | | }); |
| | | }, |
| | |
| | | } |
| | | 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") { |
| | |
| | | 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) { |
| | |
| | | |
| | | data_.parent_id = parent_ids |
| | | } |
| | | data_.buttons = [] |
| | | data_.detail_model_id = "" |
| | | |
| | | this.formData = data_; |
| | | |
| | | this.options_buttons = [] |
| | |
| | | }, |
| | | |
| | | 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 选择"); |
| | |
| | | |
| | | 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]; |
| | | } |
| | | } |
| | | |
| | | let param = { |
| | | dataname: this.dataname, |
| | | // operator: operator_, |
| | | data: {}, |
| | | 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, |
| | | } |
| | | param.data[this.dataname] = entity; |
| | | entity_data_field.push(field_); |
| | | } |
| | | |
| | | Server.call("root/data/saveEntity", param, function(result) { |
| | | console.log(result); |
| | | if (result.success) { |
| | | if (me.iscommit) { |
| | | me.iscommit = false; |
| | | 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: '提交成功' |
| | | message: '保存成功' |
| | | }); |
| | | me.getMenuAll(); |
| | | }); |
| | | } |
| | | else { |
| | |
| | | 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: dataname, |
| | | data: {}, |
| | | } |
| | | 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 (callback) { |
| | | callback() |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | 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() |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | |
| | | this.$refs[data.id].style.display = isShow ? '' : 'none'; |
| | | } |
| | | }, |
| | | |
| | | } |
| | | }); |
| | | }; |
| | |
| | | |
| | | 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 |
| | |
| | | <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> |
New file |
| | |
| | | <!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; |
| | | //预加载数据后给哪些字段设置options或formatterjson |
| | | 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_); |
| | | |
| | | //字段数组转字段obj,目的为了筛选时获取字段属性 |
| | | 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> |
| | | /* 在vue.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> |
| | |
| | | tablefieldClick: {}, |
| | | formfieldClick: {}, |
| | | |
| | | dataRequest: [], |
| | | dataRequest: [ |
| | | { |
| | | name: "sys_model", |
| | | dataname: "sys_model", |
| | | filter: "", |
| | | isnotoption: false, //true:不是选项 |
| | | code:"id",//是下拉选项时设置 |
| | | label:"url",//是下拉选项时设置 |
| | | }, |
| | | ], |
| | | dataRequestObj:{}, |
| | | |
| | | filterFields: [], |
| | |
| | | ctabs_r: {}, |
| | | |
| | | isbasicfilterfields: true, // 存在查询 |
| | | detail_model_id: "", |
| | | sys_model_map: {} |
| | | }, |
| | | created() { |
| | | if (window.top.tab.selected.option.page_id) { |
| | |
| | | me.loadRequestData(me.dataRequest, result, function(data) { |
| | | me.dataRequestObj = data; |
| | | //预加载数据后给哪些字段设置options或formatterjson |
| | | 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(); |
| | | }); |
| | |
| | | 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(); |