From 303d480e7569a0c0a476b462e843ea76658faac5 Mon Sep 17 00:00:00 2001 From: cyy <cuiqian2004@163.com> Date: 星期六, 01 三月 2025 17:55:53 +0800 Subject: [PATCH] 5601 modify form smallwmd --- pages/modal/3018.vue | 1416 ++++++----- /dev/null | 3548 ---------------------------- pages/modal/5601.vue | 164 + pages.json | 8 manifest.json | 4 api/data.js | 51 pages/modal/form/index.vue | 2231 +++++++++++++++++ 7 files changed, 3,227 insertions(+), 4,195 deletions(-) diff --git a/api/data.js b/api/data.js index 8e5c64d..ff2186b 100644 --- a/api/data.js +++ b/api/data.js @@ -111,6 +111,24 @@ data, }) } + +/** + *api/dataobj/update + * 鏇存柊鏁版嵁瀵硅薄 + * @param {*} + * @returns + */ +export const updateDataObj = (data) => { + + const app = getApp() + var url = app.globalData.mobox3ApiUrl.data + 'api/dataobj/update?sessionid=' + app.globalData.sessionId + return http.request({ + method: "POST", + header: {}, + url, + data, + }) +} /** *api/dataobj/Delete * 鍒犻櫎鏁版嵁瀵硅薄 @@ -132,4 +150,37 @@ url, data, }) +} + +/** + * api/dataobj/getinfo?sessionid=SESSION_ID + * 寰楀埌鏁版嵁瀵硅薄淇℃伅 + * @param {*} param0 + */ + +export const dataObjInfo = (data) => { + + const { + class_id, + class_name, + obj_id, + attrs, + get_info_type, + check_compose + } = data + const app = getApp() + var url = app.globalData.mobox3ApiUrl.data + 'api/dataobj/GetInfo?sessionid=' + app.globalData.sessionId + return http.request({ + method: "POST", + header: {}, + url, + data: { + class_id, + class_name, + obj_id, + attrs, + get_info_type, + check_compose + }, + }) } \ No newline at end of file diff --git a/manifest.json b/manifest.json index c821d6f..93a9130 100644 --- a/manifest.json +++ b/manifest.json @@ -2,8 +2,8 @@ "name" : "MoboxPDA", "appid" : "__UNI__56D451E", "description" : "", - "versionName" : "1.1.41", - "versionCode" : 1141, + "versionName" : "1.1.42", + "versionCode" : 1142, "transformPx" : false, /* 5+App鐗规湁鐩稿叧 */ "app-plus" : { diff --git a/pages.json b/pages.json index 2cb99b0..3823a6c 100644 --- a/pages.json +++ b/pages.json @@ -92,6 +92,14 @@ "enablePullDownRefresh": false } }, + { + "path" : "pages/modal/form/index", + "style" : + { + "navigationBarTitleText":"%sys.add2%", + "enablePullDownRefresh": false + } + }, // { // "path": "pages/modal/small-wnd/index", // "style": { diff --git a/pages/modal/3018.vue b/pages/modal/3018.vue index 2d58c4a..e11dc14 100644 --- a/pages/modal/3018.vue +++ b/pages/modal/3018.vue @@ -257,9 +257,9 @@ </view> - <view class="v-bottom"><button type="default" @tap="cancel" - class="btn_cancel">{{translateSys('cancel')}}</button> - <button type="default" @tap="sava" class="btn_add">{{title}}</button> + <view class="v-bottom"><button type="primary" @tap="ok" class="btn_add">{{title}}</button> + <button type="default" @tap="cancel" class="btn_cancel">{{translateSys('cancel')}}</button> + </view> <!-- 鏅�寮圭獥 top bottom center left right --> <view> @@ -328,6 +328,8 @@ data() { return { title: this.translateSys('add2'), + editMode: false, + objAttr: {}, param: {}, type: '', classAttrList: [], @@ -371,6 +373,9 @@ if (options.type) { this.$data.type = options.type; } + this.editMode = options.editMode ? true : false; + if (options.objAttr) + this.objAttr = JSON.parse(options.objAttr); console.log(param); if (!param.EditDlgMode) { uni.showModal({ @@ -474,10 +479,13 @@ return res?.dict_item_list || [] } catch (ex) { - // console.log(ex); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ title: this.translateSys('error') + " 1.3", - content: ex.errMsg, + content: tip, showCancel: false, confirmText: this.translateSys('cancel') }); @@ -489,268 +497,336 @@ try { var $this = this; var gridstyleInfo = { - class_id: $this.$data.param.clsid, + class_id: $this.param.clsid, ui_style_type: 2, - ui_style_name: $this.$data.param.Edit_dlg.Name + ui_style_name: $this.param.Edit_dlg.Name }; - const result = await getUIStyleInfo(dataInfo) + const result = await getUIStyleInfo(gridstyleInfo) var styledef = Base64.decode(result.style_def); result.style_def = JSON.parse(styledef); $this.$data.classGridStyle = result $this.viewParam(); } catch (ex) { - // console.log(ex); + console.log(ex) + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ title: this.translateSys('error') + " 1.4", - content: ex.errMsg, + content: tip, showCancel: false, confirmText: this.translateSys('cancel') }); } }, - viewParam() { //灏唌obox3灏忓啓鍙傛暟杞崲涓簃obox2澶у啓鍙傛暟 - var class_gridStyle = { - ID: this.$data.classGridStyle.id, - Name: this.$data.classGridStyle.name, - Type: this.$data.classGridStyle.type, - IsDefault: this.$data.classGridStyle.is_defaul, - StyleDef: this.$data.classGridStyle.style_def, - }; - this.$data.classGridStyle = class_gridStyle; - var class_attrList = []; - this.$data.classAttrList.forEach(data => { - var attrs = []; - if (data.attr_list) { - data.attr_list.forEach(attr => { - var dictitems = []; - if (attr.dictitem) { - attr.dictitem.forEach(dict => { - dictitems.push({ - ID: dict.id, - Name: dict.name, - Note: dict.note, - Order: dict.order, - ImgUrl: null, - Code: dict.code, - HasSub: null, - ParentID: null, - ParentName: null, - Lvl: dict.lvl, - IsDefault: dict.is_default, - Value: dict.value, - CN_G_ID: dict.id, - CN_G_DICT_ID: null, - CN_S_NAME: dict.name, - CN_S_NOTE: dict.note, - CN_N_ORDER: dict.order, - CN_S_IMG_URL: null, - CN_S_CODE: dict.code, - CN_C_HAS_SUB: null, - CN_G_PARENT_ITEM_ID: null, - CN_G_PARENT_ITEM_NAME: null, - CN_N_LVL: dict.lvl, - CN_C_IS_DEFAULT: dict.is_default, - CN_S_VALUE: dict.value - }); - }); - } - attrs.push({ - ID: attr.id, - Name: attr.name, - Type: attr.type, - Size: attr.size, - NotEmpty: attr.not_empty, - DefValue: attr.def_value, - Order: attr.order, - DictName: attr.dict_name, - DictID: attr.dict_id, - CodeDefName: attr.code_def_name, - CodeDefID: attr.code_def_id, - RelClsID: null, - RelCls: attr.ref_cls, - Width: attr.width, - Height: attr.height, - CtrlStyle: attr.ctrl_style, - HasAce: attr.has_ace, - CanShow: attr.can_show, - CanQuery: attr.can_query, - ReadOnly: attr.read_only, - IsKey: attr.is_key, - IsFixed: attr.is_fixed, - DispName: attr.disp_name, - LuaAttr: attr.lua_attr, - Desc: attr.desc, - ActionDef: attr.action_def ? Base64.decode(attr - .action_def) : '', - Multilingual: attr.multilingual, - RefCondition: attr.ref_condition, - GroupName: data.group, - Value: null, - dictitem: dictitems - }); - }); - } - class_attrList.push({ - Name: data.group, - Order: data.order, - HasAce: data.has_ace, - BkColor: data.bk_color, - ImgFontStyle: data.img_font_style, - Attr: attrs + async loadFormData(objAttr) { + let formData + if (this.param.objid) { + let info = await dataObjInfo({ + class_id: this.param.clsid, + obj_id: this.param.objid, }); - }); - this.$data.classAttrList = class_attrList; - // console.log(this.$data.classGridStyle); - // console.log(this.$data.classAttrList); - this.class_attr_init(); - }, - class_attr_init() { - var attrlist = this.$data.classGridStyle.StyleDef.show_style - var newattrlist = []; - if (this.$data.classAttrList.length > 0) { + formData = {}; + formData["id"] = info.id; + formData["state"] = info.state; + info.attr_list.forEach(({ + name, + value + }) => { + formData[name] = value; + }); + } else if (objAttr) { + formData = {}; + Object.keys(objAttr).forEach((attr) => { + let value = objAttr[attr]; + formData[attr] = value; + }); + } + //浼犲叆鍙傛暟鍊�+ if (formData) { + var attrlist = this.$data.classAttrList; for (var i = 0; i < attrlist.length; i++) { - var open = attrlist[i].open; - var name = attrlist[i].attrgroup_name; - var attrs = attrlist[i].attrs; - for (var s = 0; s < this.$data.classAttrList.length; s++) { - var clsattr = this.$data.classAttrList[s]; - // if (name == clsattr.Name) { - var attr = []; - for (var j = 0; j < attrs.length; j++) { - for (var l = 0; l < clsattr.Attr.length; l++) { - var ca = clsattr.Attr[l]; - if (attrs[j].attr == ca.Name) { - ca.action = attrs[j].action; - ca.edit = attrs[j].edit; - ca.notempty = attrs[j].notempty; - ca.ext_button = attrs[j].ext_button; - ca.button_img = attrs[j].button_img; - ca.button_tooltip = attrs[j].button_tooltip; - ca.before_click_button = attrs[j].before_click_button; - ca.button_callback = attrs[j].button_callback; - ca.hidden = attrs[j].hidden; - ca.select = attrs[j].select == undefined ? false : attrs[j].select; - ca.Value = ""; - if (ca.dictitem.length > 0) { - if (ca.select == true) - ca.Value = []; //ca.dictitem[0].CN_S_NAME; - else - ca.Value = this.translateSys( - "select"); //ca.dictitem[0].CN_S_NAME; - var dictitemlist = []; - for (var d = 0; d < ca.dictitem.length; d++) { - ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME; - ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME; - ca.dictitem[d].attr = ca.Name; - if (ca.dictitem[d].CN_C_IS_DEFAULT == '1') - ca.Value = ca.dictitem[d].CN_S_NAME; - } - } - if (utils.classUtils.attrTypeIsDateTime(ca.Type)) { - var nowDate = new Date(); - var date = { - year: nowDate.getFullYear(), - month: nowDate.getMonth() + 1, - day: nowDate.getDate() - } - ca.Value = date.year + '-' + (date.month >= 10 ? date.month : - '0' + - date - .month) + '-' + (date.day >= 10 ? date.day : '0' + date - .day); - } - if (utils.classUtils.attrTypeIsObjRefMulti(ca.Type)) { - ca.RelClsList = ca.RelCls; - ca.Value = this.translateSys('please'); - } - if (utils.classUtils.attrTypeIsRegion(ca.Type)) - ca.Value = this.translateSys("select"); - if (utils.classUtils.attrTypeIsBool(ca.Type)) - ca.Value = false; + var attr = attrlist[i].Attr; + for (var j = 0; j < attr.length; j++) { + var ar = attr[j]; + ar.Value = formData[ar.Name] || "" + } + } + this.$data.classAttrList = attrlist; + } + }, + async viewParam() { //灏唌obox3灏忓啓鍙傛暟杞崲涓簃obox2澶у啓鍙傛暟 + try { + var class_gridStyle = { + ID: this.$data.classGridStyle.id, + Name: this.$data.classGridStyle.name, + Type: this.$data.classGridStyle.type, + IsDefault: this.$data.classGridStyle.is_defaul, + StyleDef: this.$data.classGridStyle.style_def, + }; + this.$data.classGridStyle = class_gridStyle; + var class_attrList = []; + this.$data.classAttrList.forEach(data => { + var attrs = []; + if (data.attr_list) { + data.attr_list.forEach(attr => { + var dictitems = []; + if (attr.dictitem) { + attr.dictitem.forEach(dict => { + dictitems.push({ + ID: dict.id, + Name: dict.name, + Note: dict.note, + Order: dict.order, + ImgUrl: null, + Code: dict.code, + HasSub: null, + ParentID: null, + ParentName: null, + Lvl: dict.lvl, + IsDefault: dict.is_default, + Value: dict.value, + CN_G_ID: dict.id, + CN_G_DICT_ID: null, + CN_S_NAME: dict.name, + CN_S_NOTE: dict.note, + CN_N_ORDER: dict.order, + CN_S_IMG_URL: null, + CN_S_CODE: dict.code, + CN_C_HAS_SUB: null, + CN_G_PARENT_ITEM_ID: null, + CN_G_PARENT_ITEM_NAME: null, + CN_N_LVL: dict.lvl, + CN_C_IS_DEFAULT: dict.is_default, + CN_S_VALUE: dict.value + }); + }); + } + attrs.push({ + ID: attr.id, + Name: attr.name, + Type: attr.type, + Size: attr.size, + NotEmpty: attr.not_empty, + DefValue: attr.def_value, + Order: attr.order, + DictName: attr.dict_name, + DictID: attr.dict_id, + CodeDefName: attr.code_def_name, + CodeDefID: attr.code_def_id, + RelClsID: null, + RelCls: attr.ref_cls, + Width: attr.width, + Height: attr.height, + CtrlStyle: attr.ctrl_style, + HasAce: attr.has_ace, + CanShow: attr.can_show, + CanQuery: attr.can_query, + ReadOnly: attr.read_only, + IsKey: attr.is_key, + IsFixed: attr.is_fixed, + DispName: attr.disp_name, + LuaAttr: attr.lua_attr, + Desc: attr.desc, + ActionDef: attr.action_def ? Base64.decode(attr + .action_def) : '', + Multilingual: attr.multilingual, + RefCondition: attr.ref_condition, + GroupName: data.group, + Value: null, + dictitem: dictitems + }); + }); + } + class_attrList.push({ + Name: data.group, + Order: data.order, + HasAce: data.has_ace, + BkColor: data.bk_color, + ImgFontStyle: data.img_font_style, + Attr: attrs + }); + }); + this.$data.classAttrList = class_attrList; + // console.log(this.$data.classGridStyle); + // console.log(this.$data.classAttrList); - attr.push(ca); + await this.class_attr_init(); + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: this.translateSys("error"), + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + } + }, + async class_attr_init() { + try { + var attrlist = this.$data.classGridStyle.StyleDef.show_style + var newattrlist = []; + if (this.$data.classAttrList.length > 0) { + for (var i = 0; i < attrlist.length; i++) { + var open = attrlist[i].open; + var name = attrlist[i].attrgroup_name; + var attrs = attrlist[i].attrs; + for (var s = 0; s < this.$data.classAttrList.length; s++) { + var clsattr = this.$data.classAttrList[s]; + // if (name == clsattr.Name) { + var attr = []; + for (var j = 0; j < attrs.length; j++) { + for (var l = 0; l < clsattr.Attr.length; l++) { + var ca = clsattr.Attr[l]; + if (attrs[j].attr == ca.Name) { + ca.action = attrs[j].action; + ca.edit = attrs[j].edit; + ca.notempty = attrs[j].notempty; + ca.ext_button = attrs[j].ext_button; + ca.button_img = attrs[j].button_img; + ca.button_tooltip = attrs[j].button_tooltip; + ca.before_click_button = attrs[j].before_click_button; + ca.button_callback = attrs[j].button_callback; + ca.hidden = attrs[j].hidden; + ca.select = attrs[j].select == undefined ? false : attrs[j].select; + ca.Value = ""; + if (ca.dictitem.length > 0) { + if (ca.select == true) + ca.Value = []; //ca.dictitem[0].CN_S_NAME; + else + ca.Value = this.translateSys( + "select"); //ca.dictitem[0].CN_S_NAME; + var dictitemlist = []; + for (var d = 0; d < ca.dictitem.length; d++) { + ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME; + ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME; + ca.dictitem[d].attr = ca.Name; + if (ca.dictitem[d].CN_C_IS_DEFAULT == '1') + ca.Value = ca.dictitem[d].CN_S_NAME; + } + } + if (utils.classUtils.attrTypeIsDateTime(ca.Type)) { + var nowDate = new Date(); + var date = { + year: nowDate.getFullYear(), + month: nowDate.getMonth() + 1, + day: nowDate.getDate() + } + ca.Value = date.year + '-' + (date.month >= 10 ? date.month : + '0' + + date + .month) + '-' + (date.day >= 10 ? date.day : '0' + date + .day); + } + if (utils.classUtils.attrTypeIsObjRefMulti(ca.Type)) { + ca.RelClsList = ca.RelCls; + ca.Value = this.translateSys('please'); + } + if (utils.classUtils.attrTypeIsRegion(ca.Type)) + ca.Value = this.translateSys("select"); + if (utils.classUtils.attrTypeIsBool(ca.Type)) + ca.Value = false; + + attr.push(ca); + } + } + } + newattrlist.push({ + BkColor: clsattr.BkColor, + HasAce: clsattr.HasAce, + ImgFontStyle: clsattr.ImgFontStyle, + Name: clsattr.Name, + Order: clsattr.Order, + Open: open, + Attr: attr, + control_style: this.$data.classGridStyle.StyleDef.control_style, + title_p_wdith: this.$data.classGridStyle.StyleDef.title_p_wdith + }) + // } + } + } + if (newattrlist.length > 0) { + this.$data.classAttrList = newattrlist; + } + var req = []; + if (this.$data.classGridStyle.StyleDef) { + if (this.$data.classGridStyle.StyleDef.show_style.length > 0) { + var attrlist = this.$data.classGridStyle.StyleDef.show_style + // $el.find('.attr_field').prop('readonly', true); + // $el.find('.attr_field').prop('disabled', true); + for (var i = 0; i < attrlist.length; i++) { + var attr = attrlist[i].attrs + for (var j = 0; j < attr.length; j++) { + var ar = attr[j]; + req.push({ + attr: ar.attr, + value: ar.value ? ar.value : '' + }); } } } - newattrlist.push({ - BkColor: clsattr.BkColor, - HasAce: clsattr.HasAce, - ImgFontStyle: clsattr.ImgFontStyle, - Name: clsattr.Name, - Order: clsattr.Order, - Open: open, - Attr: attr, - control_style: this.$data.classGridStyle.StyleDef.control_style, - title_p_wdith: this.$data.classGridStyle.StyleDef.title_p_wdith - }) - // } } - } - if (newattrlist.length > 0) { - this.$data.classAttrList = newattrlist; - } - var req = []; - if (this.$data.classGridStyle.StyleDef) { - if (this.$data.classGridStyle.StyleDef.show_style.length > 0) { - var attrlist = this.$data.classGridStyle.StyleDef.show_style - // $el.find('.attr_field').prop('readonly', true); - // $el.find('.attr_field').prop('disabled', true); - for (var i = 0; i < attrlist.length; i++) { - var attr = attrlist[i].attrs - for (var j = 0; j < attr.length; j++) { - var ar = attr[j]; - req.push({ - attr: ar.attr, - value: ar.value ? ar.value : '' - }); + + var eventlist = this.$data.classGridStyle.StyleDef.event; + // console.log(eventlist); + if (eventlist) { + if (eventlist.length > 0) { + for (var i = 0; i < eventlist.length; i++) { + if (eventlist[i].event_id == 'before_ok') { + this.$data.edit_ok_event = eventlist[i]; + } else if (eventlist[i].event_id == 'initial') { + this.$data.edit_inital_event = eventlist[i]; + } else if (eventlist[i].event_id == 'before_select_compose') { + this.$data.edit_select_compose_event = eventlist[i].scrip_id; + this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id; + } } } } - } - - var eventlist = this.$data.classGridStyle.StyleDef.event; - // console.log(eventlist); - if (eventlist) { - if (eventlist.length > 0) { - for (var i = 0; i < eventlist.length; i++) { - if (eventlist[i].event_id == 'before_ok') { - this.$data.edit_ok_event = eventlist[i]; - } else if (eventlist[i].event_id == 'initial') { - this.$data.edit_inital_event = eventlist[i]; - } else if (eventlist[i].event_id == 'before_select_compose') { - this.$data.edit_select_compose_event = eventlist[i].scrip_id; - this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id; - } + await this.loadFormData(this.objAttr) + // console.log(req); + if (this.$data.edit_inital_event) { + var eventid = this.$data.edit_inital_event.scrip_id; + var info = { + eventid: eventid, + edtype: "0", + projectid: '', + rclsid: '', + robjid: '', + userlogin: '', + clsid: this.$data.param.clsid, + objid: "", + attr: req, } + this.ini_DataObjRunCustomEvent(info); } - } - // console.log(req); - if (this.$data.edit_inital_event) { - var eventid = this.$data.edit_inital_event.scrip_id; - var info = { - eventid: eventid, - edtype: "0", - projectid: '', - rclsid: '', - robjid: '', - userlogin: '', - clsid: this.$data.param.clsid, - objid: "", - attr: req, - } - this.ini_DataObjRunCustomEvent(info); - } - console.log(this.$data.classGridStyle); - console.log(this.$data.classAttrList); + console.log(this.$data.classGridStyle); + console.log(this.$data.classAttrList); - } else { + } else { + uni.showModal({ + title: this.translateSys('tip'), + content: this.translate('no_find_attr_diaplay'), + showCancel: false, + confirmText: this.translateSys('cancel') + }); + } + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ - title: this.translateSys('tip'), - content: this.translate('no_find_attr_diaplay'), + title: this.translateSys("error"), + content: tip, showCancel: false, - confirmText: this.translateSys('cancel') + confirmText: this.translateSys("cancel") }); } }, @@ -801,6 +877,76 @@ } this.DataObjRunCustomEvent_Return(before_click_button, data_attr, button_callback, index, iindex); + }, + setFormValues(data) { + if (JSON.stringify(data) == '{}') { + return; + } + for (var a = 0; a < this.$data.classAttrList + .length; a++) { + for (var l = 0; l < this.$data + .classAttrList[a] + .Attr + .length; l++) { + var ca = this.$data.classAttrList[a] + .Attr[l]; + let curIndex = data.findIndex((attr) => { + return attr.attr == ca.Name; + }) + if (curIndex > -1) { + const attr = data[curIndex] + if (utils.classUtils + .attrTypeIsDict(ca + .Type)) { + var dictItemList = []; + for (var d in attr + .choice_list) { + var list_val = attr + .choice_list[d]; + dictItemList.push({ + "CN_S_NAME": list_val, + "Name": list_val, + "label": list_val, + "value": list_val + }); + + } + ca.dictitem = dictItemList; + // attr[j].dictitem = val[i].choice_list; + } else { + ca.Value = attr.value; + } + + + + } + + } + } + + for (var i = 0; i < value.length; i++) { + + var length = 0; + if (!this.$data.refdatastore.filter(function( + s) { + return data[i].attr == s.attr + }).length) { + length = 1; + this.$data.refdatastore.push(data[i]); + } + if (length == 0) { + for (var j = 0; j < this.$data.refdatastore + .length; j++) { + if (this.$data.refdatastore[j].attr == + data[i] + .attr) { + this.$data.refdatastore[j].value = + data[i] + .value; + } + } + } + } }, popupChange(e) { console.log('褰撳墠妯″紡锛� + e.type + ',鐘舵�锛� + e.show); @@ -1216,18 +1362,7 @@ } }); }, - //纭畾 - sava() { - if (this.$data.edit_ok_event) - this.OKDataObjRunCustomEvent(); - else - this.add(); - }, - add() { - uni.showLoading({ - title: this.translateSys("loading"), - mask: true - }); + getPostDataObjAttr() { var req = []; var attrlist = this.$data.classAttrList; for (var i = 0; i < attrlist.length; i++) { @@ -1237,148 +1372,262 @@ if (ar.Value == this.translateSys("select") || ar.Value == '鈥斺�' + this .translateSys( "select") + '鈥斺�') ar.Value = ''; - if (utils.classUtils.attrTypeIsDict(ar.Type)) { - if (ar.select == true) { //鍒ゆ柇涓嬫媺鏄惁澶氶� - var valStr = ""; - for (var v in ar.Value) { - if (valStr) - valStr += ";"; - valStr += ar.Value[v]; - } - req.push({ - name: ar.Name, - value: valStr - }); - } else - req.push({ - name: ar.Name, - value: ar.Value - }); - } else { - const node = this.formatAttr(ar) + req.push(this.formatAttr(ar)); + } + } + if (this.$data.refdatastore.length > 0) { + for (var i = 0; i < this.$data.refdatastore.length; i++) { + if (!req.filter(function(s) { + return this.$data.refdatastore[i].attr == s.name + }).length) { + length = 1; req.push({ - name: node.attr, - value: node.value + 'attr': this.$data.refdatastore[i].attr, + 'val': this.$data.refdatastore[i].value }); - } - - - if (ar.notempty == true && !ar.Value) { - // if(ar.NotEmpty=='1'){ - uni.hideLoading(); - // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:"success",duration:3000}); - uni.showModal({ - title: this.translateSys('tip'), - content: this.translateSys('quotation_mark_left') + ar.DispName + - this - .translateSys('quotation_mark_right') + this.translate( - "cannot_empty"), - showCancel: false, - confirmText: this.translateSys('cancel') - }); - return; } } } - var enviroment = { - 'function': '3000', // 鍔熻兘鐐圭紪鍙�- cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�- 'button': 'top', // top/bottom - button_name: this.translateSys('add2'), - master: { - cls_id: this.$data.param.clsid, - } - }; - enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 var obj_attr = {}; req.forEach(item => { - obj_attr[item.name] = item.value; + obj_attr[item.attr] = item.value; }); - // console.log(obj_attr); - // var dataInfo={ - // class_id: this.$data.param.clsid, data_obj_id: '', masterclsid: '', - // req: JSON.stringify(req), upfile: JSON.stringify([]), post_data: JSON.stringify({}), - // compose: JSON.stringify([]), refdatastore: JSON.stringify([]), extinfo: JSON.stringify(enviroment), - // not_trigger_sys_event: '' - // }; - var dataInfo = { - class_id: this.$data.param.clsid, - class_name: '', - master_cls_id: '', - master_obj_id: '', - creator: '', - creator_name: '', - not_trigger_event: '', - update_exist: '', - post_process: '', - ext_info: enviroment, - obj_attr: obj_attr - }; - console.log(dataInfo); - // return - DataObjCreate(dataInfo).then((res) => { - console.log(res); - uni.hideLoading(); - let data = res.lua_result - if (data.ret != 0) { - var tip = data.err_info ? typeof data.err_info == 'string' ? data - .err_info : - data - .err_info.join('<br/>') : ''; - if (data.ret == 801) uni.showModal({ - title: this.translateSys('tip'), - content: tip, - showCancel: false, - confirmText: this.translateSys('cancel') - }); - else uni.showModal({ - title: this.translateSys('tip'), - content: tip + ',' + this.translateSys('tip') + ':' + data - .ret, - showCancel: false, - confirmText: this.translateSys('cancel') - }); - return false - } else { - var tip = data.info ? typeof data.info == 'string' ? data.info : data - .info - .join( - '<br/>') : ''; - if (tip) uni.showModal({ - title: this.translateSys('tip'), - content: tip, - showCancel: false, - confirmText: this.translateSys('cancel') - }); - uni.showToast({ - title: this.translate('create_success'), - icon: "success", - duration: 3000 - }); - } - - - - - //鍒锋柊 - uni.redirectTo({ - url: '../modal/3018?param=' + JSON.stringify(this.$data - .param) + - "&titlename=" + this.$data.title + return obj_attr + }, + //纭畾 + async ok() { + try { + uni.showLoading({ + title: this.translateSys("loading"), + mask: true }); - // this.cancel(); - - }).catch(ex => { - console.log(ex); + this.okLoading = true + var obj_attr = this.getPostDataObjAttr(); + let ret = await this.sava(); + this.okLoading = false uni.hideLoading(); + if (!ret) return; + obj_attr.id = this.objId; + const eventChannel = this.$scope.eventChannel; + // const eventChannel = this.getOpenerEventChannel(); + eventChannel.emit(this.type, obj_attr); + + uni.navigateBack() + } catch (ex) { + return false; + } + }, + //纭畾 + async sava() { + try { + if (this.param.objid) { + + // let ret = await this.OKDataObjRunCustomEvent(); + // if (!ret) return false; + if (this.$data.edit_ok_event) { // 鐐瑰嚮纭畾鎸夐挳鍚�+ ret = await this.OKDataObjRunCustomEvent(); + if (!ret) return false; + + } else { + ret = await this.update(); + if (!ret) return false; + } + + } else { + if (this.editMode) { + return true + } else { + // let ret = await this.OKDataObjRunCustomEvent(); + // if (!ret) return false; + if (this.$data.edit_ok_event) { // 鐐瑰嚮纭畾鎸夐挳鍚�+ ret = await this.OKDataObjRunCustomEvent(); + if (!ret) return false; + } else { + ret = await this.add(); + if (!ret) return false; + } + } + } + return true; + } catch (ex) { + return false; + } + + }, + + // async sava() { + // try { + // if (this.$data.edit_ok_event) + // this.OKDataObjRunCustomEvent(); + // else + // this.add(); + // } catch (ex) { + // return false; + // } + // }, + async add() { + try { + var req = []; + var attrlist = this.$data.classAttrList; + for (var i = 0; i < attrlist.length; i++) { + var attr = attrlist[i].Attr; + for (var j = 0; j < attr.length; j++) { + var ar = attr[j]; + if (ar.Value == this.translateSys("select") || ar.Value == '鈥斺�' + this + .translateSys( + "select") + '鈥斺�') ar.Value = ''; + if (utils.classUtils.attrTypeIsDict(ar.Type)) { + if (ar.select == true) { //鍒ゆ柇涓嬫媺鏄惁澶氶� + var valStr = ""; + for (var v in ar.Value) { + if (valStr) + valStr += ";"; + valStr += ar.Value[v]; + } + req.push({ + name: ar.Name, + value: valStr + }); + } else + req.push({ + name: ar.Name, + value: ar.Value + }); + } else { + const node = this.formatAttr(ar) + req.push({ + name: node.attr, + value: node.value + }); + } + + + if (ar.notempty == true && !ar.Value) { + // if(ar.NotEmpty=='1'){ + uni.hideLoading(); + // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:"success",duration:3000}); + uni.showModal({ + title: this.translateSys('tip'), + content: this.translateSys('quotation_mark_left') + ar.DispName + + this + .translateSys('quotation_mark_right') + this.translate( + "cannot_empty"), + showCancel: false, + confirmText: this.translateSys('cancel') + }); + return; + } + } + } + var enviroment = { + 'function': '3000', // 鍔熻兘鐐圭紪鍙�+ cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+ 'button': 'top', // top/bottom + button_name: this.translateSys('add2'), + master: { + cls_id: this.$data.param.clsid, + } + }; + + enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + var obj_attr = {}; + req.forEach(item => { + obj_attr[item.name] = item.value; + }); + var dataInfo = { + class_id: this.$data.param.clsid, + class_name: '', + master_cls_id: '', + master_obj_id: '', + creator: '', + creator_name: '', + not_trigger_event: '', + update_exist: '', + post_process: '', + ext_info: enviroment, + obj_attr: obj_attr + }; + console.log(dataInfo); + // return + DataObjCreate(dataInfo).then((res) => { + console.log(res); + uni.hideLoading(); + let data = res.lua_result + if (data.ret != 0) { + var tip = data.err_info ? typeof data.err_info == 'string' ? data + .err_info : + data + .err_info.join('<br/>') : ''; + if (data.ret == 801) uni.showModal({ + title: this.translateSys('tip'), + content: tip, + showCancel: false, + confirmText: this.translateSys('cancel') + }); + else uni.showModal({ + title: this.translateSys('tip'), + content: tip + ',' + this.translateSys('tip') + ':' + data + .ret, + showCancel: false, + confirmText: this.translateSys('cancel') + }); + return false + } else { + var tip = data.info ? typeof data.info == 'string' ? data.info : data + .info + .join( + '<br/>') : ''; + if (tip) uni.showModal({ + title: this.translateSys('tip'), + content: tip, + showCancel: false, + confirmText: this.translateSys('cancel') + }); + uni.showToast({ + title: this.translate('create_success'), + icon: "success", + duration: 3000 + }); + } + + + + + //鍒锋柊 + uni.redirectTo({ + url: '../modal/3018?param=' + JSON.stringify(this.$data + .param) + + "&titlename=" + this.$data.title + }); + // this.cancel(); + + }).catch(ex => { + console.log(ex); + uni.hideLoading(); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: this.translateSys('tip'), + content: tip, + showCancel: false, + confirmText: this.translateSys('cancel') + }); + }); + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ - title: this.translateSys('tip'), - content: ex.errMsg, + title: this.translateSys('error') + " 4.1", + content: tip, showCancel: false, confirmText: this.translateSys('cancel') }); - }); + } }, ini_DataObjRunCustomEvent(info) { var param = { @@ -1473,63 +1722,7 @@ var value = action.value; if (action_type == 'set_dlg_attr') { if (value) { - console.log(value); - for (var i = 0; i < value.length; i++) { - for (var a = 0; a < this.$data.classAttrList - .length; a++) { - for (var l = 0; l < this.$data - .classAttrList[a] - .Attr - .length; l++) { - var ca = this.$data.classAttrList[a] - .Attr[l]; - if (value[i].attr == ca.Name) { - if (utils.classUtils - .attrTypeIsDict(ca - .Type)) { - var dictItemList = []; - for (var d in value[i] - .choice_list) { - var list_val = value[i] - .choice_list[d]; - dictItemList.push({ - "CN_S_NAME": list_val, - "Name": list_val, - "label": list_val, - "value": list_val - }); - - } - ca.dictitem = dictItemList; - // attr[j].dictitem = val[i].choice_list; - } else { - ca.Value = value[i].value; - } - } - } - } - - var length = 0; - if (!this.$data.refdatastore.filter(function( - s) { - return value[i].attr == s.attr - }).length) { - length = 1; - this.$data.refdatastore.push(value[i]); - } - if (length == 0) { - for (var j = 0; j < this.$data.refdatastore - .length; j++) { - if (this.$data.refdatastore[j].attr == - value[i] - .attr) { - this.$data.refdatastore[j].value = - value[i] - .value; - } - } - } - } + this.setFormValues(value) } } if (action_type == 'open_select_userdlg') { @@ -1555,9 +1748,13 @@ }).catch(ex => { // console.log(ex); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ title: this.translateSys('error') + " 2.1", - content: ex.errMsg, + content: tip, showCancel: false, confirmText: this.translateSys('cancel') }); @@ -1669,66 +1866,7 @@ var action = actionlist[i]; if (action.action_type == 'set_dlg_attr') { var result = action.value; - for (var i = 0; i < result.length; i++) { - if (result[i].choice_list) { - for (var c = 0; c < $this.$data.classAttrList - .length; c++) { - var attr = $this.$data.classAttrList[c].Attr; - for (var j = 0; j < attr.length; j++) { - if (attr[j].Name == result[i].attr) { - if (utils.classUtils.attrTypeIsDict( - attr[j] - .Type)) { - var dictItemList = []; - for (var d in result[i] - .choice_list) { - var val = result[i] - .choice_list[d]; - dictItemList.push({ - "CN_S_NAME": val, - "Name": val, - "label": val, - "value": val - }); - } - attr[j].dictitem = dictItemList; - // attr[j].dictitem = result[i].choice_list; - } - } - } - } - } - for (var c = 0; c < $this.$data.classAttrList - .length; c++) { - var attr = $this.$data.classAttrList[c].Attr; - for (var j = 0; j < attr.length; j++) { - console.log(attr[j].Name + '==' + result[i] - .attr); - if (attr[j].Name == result[i].attr) { - attr[j].Value = result[i].value; - } - } - } - var length = 0; - if (!$this.$data.refdatastore.filter(function(s) { - return result[i].attr == s.attr - }).length) { - length = 1; - $this.$data.refdatastore.push(result[i]); - } - if (length == 0) { - for (var j = 0; j < $this.$data.refdatastore - .length; j++) { - if ($this.$data.refdatastore[j].attr == result[ - i] - .attr) { - $this.$data.refdatastore[j].value = result[ - i] - .value; - } - } - } - } + this.setFormValues(action.value) } else if (data.action[i].action_type == 'set_global_attr') { $this.$data.global_attr = data.action[i].value || []; } @@ -1768,161 +1906,174 @@ } }).catch(ex => { - // console.log(ex); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ title: this.translateSys('error') + " 3.1", - content: ex.errMsg, + content: tip, showCancel: false, confirmText: this.translateSys('cancel') }); }); }, - OKDataObjRunCustomEvent() { - var enviroment = { - 'function': '3000', // 鍔熻兘鐐圭紪鍙�- cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�- 'button': 'top', // top/bottom - button_name: this.translateSys('add2'), - master: { - cls_id: this.$data.param.clsid, // button=bottom鏃�master鐨刢ls_id + async OKDataObjRunCustomEvent() { + try { + var enviroment = { + 'function': '3000', // 鍔熻兘鐐圭紪鍙�+ cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+ 'button': 'top', // top/bottom + button_name: this.translateSys('add2'), + master: { + cls_id: this.$data.param.clsid, // button=bottom鏃�master鐨刢ls_id - } - }; - var eventid = this.$data.edit_ok_event.scrip_id; - var req = []; - var attrlist = this.$data.classAttrList; - for (var i = 0; i < attrlist.length; i++) { - var attr = attrlist[i].Attr; - for (var j = 0; j < attr.length; j++) { - var ar = attr[j]; - if (ar.Value == this.translateSys("select") || ar.Value == '鈥斺�' + this - .translateSys( - "select") + '鈥斺�') ar.Value = ''; - req.push(this.formatAttr(ar)); - } - } - if (this.$data.refdatastore.length > 0) { - for (var i = 0; i < this.$data.refdatastore.length; i++) { - if (!req.filter(function(s) { - return this.$data.refdatastore[i].attr == s.name - }).length) { - length = 1; - req.push({ - 'attr': this.$data.refdatastore[i].attr, - 'val': this.$data.refdatastore[i].value - }); + } + }; + var eventid = this.$data.edit_ok_event.scrip_id; + var req = []; + var attrlist = this.$data.classAttrList; + for (var i = 0; i < attrlist.length; i++) { + var attr = attrlist[i].Attr; + for (var j = 0; j < attr.length; j++) { + var ar = attr[j]; + if (ar.Value == this.translateSys("select") || ar.Value == '鈥斺�' + this + .translateSys( + "select") + '鈥斺�') ar.Value = ''; + req.push(this.formatAttr(ar)); } } - } - var info = { - eventid: eventid, - edtype: "0", - projectid: '', - rclsid: '', - robjid: '', - userlogin: '', - clsid: this.$data.param.clsid, - objid: "", - attr: req, - } - // var dataInfo = { - // edtype: info.edtype, eventid: info.eventid, projectid: info.projectid,rclsid: info.rclsid, - // robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid, - // attr: JSON.stringify(info.attr), extinfo: JSON.stringify(enviroment), global_attr: JSON.stringify(this.$data.global_attr) - // } - - enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 - var global_attr = Base64.encode(JSON.stringify(this.$data.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 - var obj_attr = {}; - info.attr.forEach(item => { - obj_attr[item.attr] = item.value; - }); - if (!eventid.includes('{')) eventid = '{' + eventid + '}'; - var dataInfo = { - ed_type: info.edtype, - start_transaction: '', - class_id: info.clsid, - class_name: '', - event_id: eventid, - event_name: '', - data_obj_id: info.objid, - obj_attr: obj_attr, - prj_id: info.projectid, - ref_cls_id: info.rclsid, - rel_obj_id: info.robjid, - user_login: info.userlogin, - data_json: '', - compose_info: '', - ext_info: enviroment, - global_attr: global_attr, - input_param: '', - }; - console.log(dataInfo); - // return; - runCustomEvent(dataInfo).then(data => { - console.log(data); - if (data.ret != 0) { - var tip = data.err_info ? typeof data.err_info == 'string' ? data - .err_info : - data - .err_info.join('<br/>') : ''; - if (data.ret == 801) uni.showModal({ - title: this.translateSys('tip'), - content: tip, - showCancel: false, - confirmText: this.translateSys('cancel') - }); - else uni.showModal({ - title: this.translateSys('tip'), - content: tip + ',' + this.translateSys('tip') + ':' + data - .ret, - showCancel: false, - confirmText: this.translateSys('cancel') - }); - return false - } else { - var tip = data.info ? typeof data.info == 'string' ? data.info : data - .info - .join( - '<br/>') : ''; - if (tip) uni.showModal({ - title: this.translateSys('tip'), - content: tip, - showCancel: false, - confirmText: this.translateSys('cancel') - }); - - var result = data.result; - for (var i = 0; i < result.length; i++) { - // self.class_attr_ele.find('.attr_field[data-field="' + result[i].attr + '"]').val(result[i].value).data('val', result[i].value); - var length = 0; - if (!this.$data.refdatastore.filter(function(s) { - return result[i].attr == s.attr + if (this.$data.refdatastore.length > 0) { + for (var i = 0; i < this.$data.refdatastore.length; i++) { + if (!req.filter(function(s) { + return this.$data.refdatastore[i].attr == s.name }).length) { length = 1; - this.$data.refdatastore.push(result[i]); + req.push({ + 'attr': this.$data.refdatastore[i].attr, + 'val': this.$data.refdatastore[i].value + }); } - if (length == 0) { - for (var j = 0; j < this.$data.refdatastore.length; j++) { - if (this.$data.refdatastore[j].attr == result[i].attr) { - this.$data.refdatastore[j].value = result[i].value; + } + } + var info = { + eventid: eventid, + edtype: "0", + projectid: '', + rclsid: '', + robjid: '', + userlogin: '', + clsid: this.$data.param.clsid, + objid: this.$data.param.objid, + attr: req, + } + enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + var global_attr = Base64.encode(JSON.stringify(this.$data.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + var obj_attr = {}; + info.attr.forEach(item => { + obj_attr[item.attr] = item.value; + }); + if (!eventid.includes('{')) eventid = '{' + eventid + '}'; + var dataInfo = { + ed_type: info.edtype, + start_transaction: '', + class_id: info.clsid, + class_name: '', + event_id: eventid, + event_name: '', + data_obj_id: info.objid, + obj_attr: obj_attr, + prj_id: info.projectid, + ref_cls_id: info.rclsid, + rel_obj_id: info.robjid, + user_login: info.userlogin, + data_json: '', + compose_info: '', + ext_info: enviroment, + global_attr: global_attr, + input_param: '', + }; + console.log(dataInfo); + // return; + runCustomEvent(dataInfo).then(data => { + console.log(data); + if (data.ret != 0) { + var tip = data.err_info ? typeof data.err_info == 'string' ? data + .err_info : + data + .err_info.join('<br/>') : ''; + if (data.ret == 801) uni.showModal({ + title: this.translateSys('tip'), + content: tip, + showCancel: false, + confirmText: this.translateSys('cancel') + }); + else uni.showModal({ + title: this.translateSys('tip'), + content: tip + ',' + this.translateSys('tip') + ':' + data + .ret, + showCancel: false, + confirmText: this.translateSys('cancel') + }); + return false + } else { + var tip = data.info ? typeof data.info == 'string' ? data.info : data + .info + .join( + '<br/>') : ''; + if (tip) uni.showModal({ + title: this.translateSys('tip'), + content: tip, + showCancel: false, + confirmText: this.translateSys('cancel') + }); + + var result = data.result; + for (var i = 0; i < result.length; i++) { + // self.class_attr_ele.find('.attr_field[data-field="' + result[i].attr + '"]').val(result[i].value).data('val', result[i].value); + var length = 0; + if (!this.$data.refdatastore.filter(function(s) { + return result[i].attr == s.attr + }).length) { + length = 1; + this.$data.refdatastore.push(result[i]); + } + if (length == 0) { + for (var j = 0; j < this.$data.refdatastore.length; j++) { + if (this.$data.refdatastore[j].attr == result[i].attr) { + this.$data.refdatastore[j].value = result[i].value; + } } } } + + this.add(); } - this.add(); - } - - }).catch(ex => { - // console.log(ex); + }).catch(ex => { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: this.translateSys('error') + " 4.1", + content: tip, + showCancel: false, + confirmText: this.translateSys('cancel') + }); + }); + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ title: this.translateSys('error') + " 4.1", - content: ex.errMsg, + content: tip, showCancel: false, confirmText: this.translateSys('cancel') }); - }); + } }, DataObjRunCustomEvent_Return(eventid, data_attr, button_callback, index, iindex) { var enviroment = { @@ -2233,10 +2384,13 @@ } }).catch(ex => { - // console.log(ex); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ title: this.translateSys('tip') + "5.1", - content: ex.errMsg, + content: tip, showCancel: false, confirmText: this.translateSys('cancel') }); @@ -2493,7 +2647,7 @@ color: #fff; font-size: 38rpx; font-weight: bold; - float: right; + float: left; display: inline-block; } @@ -2502,12 +2656,12 @@ margin-top: 50rpx; padding: 20rpx; line-height: 1.5; - background: #27A6E1; + background: #fff; border: none; - color: #fff; + color: #000; font-size: 38rpx; font-weight: bold; - float: left; + float: right; display: inline-block; } diff --git a/pages/modal/5601.vue b/pages/modal/5601.vue index e16e920..c8553f1 100644 --- a/pages/modal/5601.vue +++ b/pages/modal/5601.vue @@ -274,14 +274,11 @@ }, }, onLoad(options) { - console.log(options.titlename, options); uni.setNavigationBarTitle({ title: options.titlename }); //璁剧疆椤堕儴鏍囬 this.title = options.titlename; this.param = JSON.parse(options.param); - - //鑾峰彇涓绘暟鎹被ID this.ClsID = this.param.master_cls?.id; if (this.ClsID) { @@ -736,7 +733,7 @@ .onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋� var isflag = false; - if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠� $this.onChange(onChangeEvent); } if (item.value) { //绗竴涓緭鍏ユ涓嶄负绌�@@ -819,7 +816,7 @@ this.head_styledef.form.model[attr] = item.value; var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠� - if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠� this.onChange(onChangeEvent); } @@ -835,7 +832,7 @@ let attr = col.fieldId; this.head_styledef.form.model[attr] = col.value; var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠� this.onChange(onChangeEvent); } return @@ -846,7 +843,7 @@ let attr = item.fieldId; this.head_styledef.form.model[attr] = item.value; var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠� this.onChange(onChangeEvent); } } @@ -863,7 +860,7 @@ let attr = col.fieldId; this.head_styledef.form.model[attr] = col.value; var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠� this.onChange(onChangeEvent); } return @@ -874,7 +871,7 @@ let attr = item.fieldId; this.head_styledef.form.model[attr] = item.value; var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠� this.onChange(onChangeEvent); } } @@ -2574,14 +2571,17 @@ }) }, onBtnClick(btn, pageData) { + const $this = this if (btn.Prompt) { const sContent = btn.PromptContent || this.translate("confirm") uni.showModal({ title: this.translateSys("tip"), content: btn.PromptContent || this.translate("confirm"), success: function(res) { - if (res.confirm) {} - this.onButtonClicked(btn, pageData, -1); + if (res.confirm) { + $this.onButtonClicked(btn, pageData, -1); + } + }, }) @@ -2590,14 +2590,17 @@ } }, onRowBtnClick(btn, pageData, index) { + const $this = this if (btn.Prompt) { const sContent = btn.PromptContent || this.translate("confirm") uni.showModal({ title: this.translateSys("tip"), content: btn.PromptContent || this.translate("confirm"), success: function(res) { - if (res.confirm) {} - this.onButtonClicked(btn, pageData, index); + if (res.confirm) { + $this.onButtonClicked(btn, pageData, index); + } + }, }) @@ -2611,7 +2614,7 @@ button: "top", button_name: btn.ShowName, cls_id: btn.Cls_ID, - function: "3018", + function: "5601", master: {}, }; if (btn.FunCode == "TriggerEvent") { @@ -2621,14 +2624,146 @@ this.cancel(); } else if (btn.FunCode == "Delete") { if (index > -1) { + const pageIndex = this.pageDetail.findIndex(( + page) => { + return pageData.Name == page.Name; + }) const style = pageData.DefList[index]; //鍒犻櫎鐮佺洏涓牱寮忛潰鏉� pageData.DefList.splice(index, 1); this.del(pageData, style, btn.AfterProcess_Event); + this.$set(this.pageDetail, pageIndex, pageData) } + } else if (btn.FunCode == "Modify") { + if (index > -1) { + const style = pageData.DefList[index]; + if (btn.Edit_dlg.Model == "small") { + this.showSmallDialog(btn, style, enviroment, pageData); + } else if (btn.Edit_dlg.Model == "form") { + this.showFormDialog(btn, style, enviroment, pageData); + } else { + uni.showModal({ + title: this.translateSys("tip"), + content: this.translateSys("unrealized"), + showCancel: false, + confirmText: this.translateSys("cancel") + }); + } + } + } else { this.$Message.warning(this.$t("sys.unrealized")); } + }, + //淇敼灏忕獥鍙f暟鎹�+ showSmallDialog(btn, row, enviroment, pageData) { + var data = { + Add_BtnName: btn.ShowName, + EditDlgMode: btn.Edit_dlg.Model, + clsid: btn.Cls_ID, + objid: "", + cls_name: btn.Cls_Name, + Edit_dlg: btn.Edit_dlg + }; + const objAttr = {} + row.form.items.forEach(item => { + if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+ item.setting.colList.forEach(cols => { + if (cols != null) objAttr[cols + .fieldId] = cols.value; + }); + } else + objAttr[item.fieldId] = item.value; + }); + const url = `../modal/3018?param=${JSON.stringify(data)}&titlename=${btn.Edit_dlg + .Name}&editMode=1&objAttr=${JSON.stringify(objAttr)}&type=updateDataObj` + + var $this = this; + uni.navigateTo({ + url: url, + events: { + // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�鍒板綋鍓嶉〉闈㈢殑鏁版嵁 + updateDataObj: function(formData) { + const pageIndex = $this.pageDetail.findIndex(( + page) => { + return pageData.Name == page.Name; + }) + if (pageIndex < 0) + return + Object.assign(row.form.model, formData); + row.form.items.forEach(async (ele, index) => { + if (ele.name != "Layout") { + let value = formData[ele.fieldId] + if (value) + ele.value = value + + } else { + ele.setting.colList.forEach(async (col) => { + if (col) { + let value = formData[col.fieldId] + if (value) + col.value = value + } + }); + } + }) + $this.$set($this.pageDetail, pageIndex, pageData) + + }, + + } + }); + }, + + //淇敼鑷畾涔夎〃鍗曟暟鎹�+ showFormDialog(btn, row, enviroment, pageData) { + const objAttr = {} + row.form.items.forEach(item => { + if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+ item.setting.colList.forEach(cols => { + if (cols != null) objAttr[cols + .fieldId] = cols.value; + }); + } else + objAttr[item.fieldId] = item.value; + }); + + const url = `../modal/form/index?param=${JSON.stringify(btn)}&titlename=${btn.Edit_dlg + .Name}&editMode=1&objAttr=${JSON.stringify(objAttr)}&type=updateDataObj` + var $this = this; + uni.navigateTo({ + url: url, + events: { + // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�鍒板綋鍓嶉〉闈㈢殑鏁版嵁 + updateDataObj: function(formData) { + const pageIndex = $this.pageDetail.findIndex(( + page) => { + return pageData.Name == page.Name; + }) + if (pageIndex < 0) + return + Object.assign(row.form.model, formData); + row.form.items.forEach(async (ele) => { + if (ele.name != "Layout") { + let value = formData[ele.fieldId] + if (value) + ele.value = value + + } else { + ele.setting.colList.forEach(async (col) => { + if (col) { + let value = formData[col.fieldId] + if (value) + col.value = value + } + }); + } + }) + $this.$set($this.pageDetail, pageIndex, pageData) + + }, + } + }); }, //纭畾 ok(pageData) { @@ -3367,6 +3502,7 @@ line-height: 1.5; border: none; font-size: 30rpx; + margin-right: 10rpx; display: inline-block; float: right; text-align: center; diff --git a/pages/modal/form/form.vue b/pages/modal/form/form.vue deleted file mode 100644 index a86be86..0000000 --- a/pages/modal/form/form.vue +++ /dev/null @@ -1,3548 +0,0 @@ -<template> - <view class="uni-page-modal-form"> - <!-- 琛ㄥご鏍峰紡 --> - <uni-forms ref="baseForm" label-align="right"> - <view v-for="(item,index) in head_styledef.form.items" :key="index" class="v-head-style"> - <!-- 鏅�甯冨眬 --> - <uni-forms-item v-if="item.name != 'Layout'" :label="item.label ?item.label +'锛�:'' " - :label-width="item.labelWidth+'px'"> - <uni-data-picker v-if="item.name=='Select'" :class="item.disabled?'input-disabled':''" - v-model="item.value" :localdata="item.dict" @change="onEnterChange(item)" - :readonly="item.disabled" :clear-icon="false" :popup-title="item.label"></uni-data-picker> - <view class="input-wrapper" v-if="item.name=='Input' || item.name=='InputNumber'"> - <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" - @click="classAttr_extButton(item)"></text> - <input class="uni-input" :class="item.disabled?'input-disabled':''" - :style="{'padding-left':item.setting.prefix?0 : '8rpx','right':item.setting.suffix?0 : '8rpx'}" - :type="item.name=='Input'?'text':'number'" v-model="item.value" :disabled="item.disabled" - :placeholder="item.placeholder" :focus="focusFieldId == item.fieldId" @focus="ontap(item)" - @click="onClick(item)" @keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)" - :maxlength="-1" /> - <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" - @click="classAttr_extButton(item)"></text> - </view> - <!-- 澶嶉�妗�--> - <checkbox-group v-if="item.name=='Checkbox'" :class="item.disabled?'input-disabled':''" - :disabled="item.disabled" @change="onCheckBoxValue" :data-attr="item.fieldId" - :data-index="index"> - <label v-for="(item2) in item.selections" :key="item2.value"> - <checkbox :value="item2.value" :checked="item.value.includes(item2.value)" /> - <text>{{item2.label}}</text> - </label> - </checkbox-group> - <!-- 鍗曢�妗�--> - <radio-group v-if="item.name=='Radio'" :class="item.disabled?'input-disabled':''" - :disabled="item.disabled" @change="onRadioBoxValue" :data-attr="item.fieldId" - :data-index="index"> - <label v-for="(item2) in item.selections" :key="item2.value"> - <radio :value="item2.value" :checked="item2.value === item.value" /> - <text>{{item2.label}}</text> - </label> - </radio-group> - <!-- Switch寮�叧 --> - <switch class="input-switch" v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''" - :disabled="item.disabled" v-model="item.value" @change="onEnterChange(item)" /> - </uni-forms-item> - <!-- 鏍呮牸甯冨眬 --> - <uni-row v-else :gutter="item.setting.gutter"> - <uni-col - :span=" item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col" - v-for="(col,key) in item.setting.colList"> - <uni-forms-item :label="col.label ? col.label +'锛�:''" :label-width="col.labelWidth+'px'"> - <uni-data-picker v-if="col.name=='Select'" :class="col.disabled?'input-disabled':''" - v-model="col.value" :localdata="col.dict" @change="onEnterChange(col)" - :readonly="col.disabled" :clear-icon="false" :popup-title="col.label"></uni-data-picker> - <view class="input-wrapper" v-if="col.name=='Input' || col.name=='InputNumber'"> - <text v-if="col.setting.prefix" class="uni-icon" :class="[col.setting.prefix]" - @click="classAttr_extButton(col)"></text> - <input class="uni-input" :class="col.disabled?'input-disabled':''" - :style="{'padding-left':col.setting.prefix?0 : '8px','right':col.setting.suffix?0 : '8px'}" - :type="col.name=='Input'?'text':'number'" v-model="col.value" - :disabled="col.disabled" :placeholder="col.placeholder" - :focus="focusFieldId == col.fieldId" @focus="ontap(col)" @click="onClick(col)" - @keyup.enter="onEnterChange(col)" @blur="onEnterChange(col)" :maxlength="-1" /> - <text v-if="col.setting.suffix" class="uni-icon" :class="[col.setting.suffix]" - @click="classAttr_extButton(col)"></text> - </view> - <!-- 澶嶉�妗�--> - <checkbox-group v-if="col.name=='Checkbox'" :class="col.disabled?'input-disabled':''" - :disabled="col.disabled" @change="onCheckBoxValue" :data-attr="col.fieldId" - :data-index="index" :data-iindex="key"> - <label v-for="(col2) in col.selections" :key="col2.value"> - <checkbox :value="col2.value" :checked="col.value.includes(col2.value)" /> - <text>{{col2.label}}</text> - </label> - </checkbox-group> - <!-- 鍗曢�妗�--> - <radio-group v-if="col.name=='Radio'" :class="col.disabled?'input-disabled':''" - :disabled="col.disabled" @change="onRadioBoxValue" :data-attr="col.fieldId" - :data-index="index" :data-iindex="key"> - <label v-for="(col2) in col.selections" :key="col2.value"> - <radio :value="col2.value" :checked="col2.value === col.value" /> - <text>{{col2.label}}</text> - </label> - </radio-group> - <!-- Switch寮�叧 --> - <switch v-if="col.name=='Switch'" :class="col.disabled?'input-disabled':''" - :disabled="col.disabled" v-model="col.value" @change="onEnterChange(col)" /> - </uni-forms-item> - </uni-col> - </uni-row> - </view> - </uni-forms> - <view class="view-content"> - <!-- 鐮佺洏瀛愮晫闈�--> - <view v-if="param.Show_Welcom_Page==false" class="uni-panel-content"> - <!-- 椤电 --> - <view class="dv-tab"> - <uni-segmented-control :current="current" :values="tabs" @clickItem="onClickItem" - styleType="button"> - </uni-segmented-control> - </view> - <swiper class="view-tabpage" :current="current" @change="changeSwiper"> - <!-- 瀛愮晫闈�--> - <swiper-item v-for="(pageData, pageIndex) in pageDetail" :key="pageIndex"> - <view class="uni-panel-content"> - <view class="view-tab-content" :id="'tabpanel' + pageData.Name"> - <image class="logo" v-if="pageData.DefList.length==0" - src="../../images/mobox_log_200x40.png"> - </image> - <checkbox-group @change="checkboxChange"> - <div class="dv-panel" v-for="(style,ii) in pageData.DefList" - @tap="onPanelClick(ii,style.form.htmlobjId)" - :id="'dvpanel'+style.form.htmlobjId" - :class="style.form.htmlobjId==active_id?'bk-active':''"> - <div class="dv-panel-input"> - <div class="dv-input" v-for="(item,index) in style.form.items"> - <!-- 鏅�甯冨眬 --> - <view v-if="item.name!='Layout'"> - <text class="txt_title" - :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> - <span class="form-item-span" - v-if="item.disabled">{{item.value}}</span> - <input class="uni-input" v-if="!item.disabled" - :type="item.name=='InputNumber'?'number':'text'" - v-model="item.value" :disabled="item.disabled" - :placeholder="item.placeholder" :maxlength="-1" /> - </view> - <!-- 鏍呮牸甯冨眬 --> - <uni-row class="demo-uni-row" v-else :gutter="item.setting.gutter"> - <uni-col - :span=" item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col" - v-for="(cols,key) in item.setting.colList"> - <view v-if="cols!=null"> - <text class="txt_title" - :style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text> - <span class="form-item-span" - v-if="cols.disabled">{{cols.value}}</span> - <input class="uni-input" v-if="!cols.disabled" - :type="cols.name=='InputNumber'?'number':'text'" - v-model="cols.value" :disabled="cols.disabled" - :placeholder="cols.placeholder" :maxlength="-1" /> - </view> - </uni-col> - </uni-row> - </div> - </div> - <div class="dv-panel-button" - v-if="pageData.Select_Button==true || pageData.Row_Button.length > 0"> - - <checkbox v-if="pageData.Select_Button==true" :model="ii" - :checked="style.SelBut_Checked" /> - <!-- <text></text> --> - <!-- <button type="primary" @click="savaItem(ii)" v-if="param.Sub_Page[0].OK_Button==true">淇濆瓨</Button> --> - <button size="mini" v-for="(btn,btnIndex) in pageData.Row_Button" - :key="btnIndex" :type="btn.FunCode == 'Delete' ? 'warn' : 'primary'" - @click="onRowBtnClick(btn, pageData,ii)"> - <Icon v-if="btn.Style == 'img' || btn.Style == 'img_text'" - class="Img" /> - {{(btn.Style == 'text'|| btn.Style == 'img_text') ? btn.ShowName :""}} - </button> - </div> - </div> - </checkbox-group> - </view> - <view class="view-bottom" v-if="pageData.Button.length >0 "> - <button v-for="(btn,btnIndex) in pageData.Button" :key="btnIndex" - :type="btn.FunCode == 'Cancel' ? 'default' : 'primary'" - :class="{'btn-disabled':(btn.FunCode != 'Cancel' && pageData.okLoading), - 'btn-one':pageData.Button.length == 1, - 'btn-left':(btnIndex < pageData.Button.length - 1), - 'btn-right': btnIndex > 0 && btnIndex == pageData.Button.length - 1 , - 'width-50':(pageData.Button.length == 2),'width-32':(pageData.Button.length == 3),'width-30':(pageData.DropDownButton.length> 0)}" - :disabled="(btn.FunCode != 'Cancel' && pageData.okLoading)? true:false" - @click="onBtnClick(btn, pageData)"> - <Icon v-if="btn.Style == 'img' || btn.Style == 'img_text'" class="Img" /> - {{(btn.Style == 'text'|| btn.Style == 'img_text') ? btn.ShowName :""}} - </button> - <view class="btn-right" v-if="pageData.DropDownButton.length >0 "> - <a @click="clickDropdownBtns(pageData)"> - <Icon class="mobox-normal-more" /> - </a> - </view> - </view> - </view> - </swiper-item> - </swiper> - </view> - <!-- 鍥炬枃/鏂囨湰 --> - <view class="view-imagetext" v-else> - <div class="view-imagetext-uploadlist"> - <image :src="param.Welcome_Page.Img" - :style="{'width':param.Welcome_Page.Width+'px','height':param.Welcome_Page.Height+'px'}"> - </image> - <text class="txt-text" - :style="{'color':param.Welcome_Page.Txt_Color,'font-size':param.Welcome_Page.Font_Size+'px','font-family':param.Welcome_Page.Font}">{{param.Welcome_Page.Text}}</Text> - </div> - </view> - </view> - <view> - <uni-popup class="view-popup" ref="popup" background-color="#fff" @change="popupChange"> - <view class="popup-header">{{check_list.title}}</view> - <view class="popup-content" :class="{ 'popup-height': popupType === 'left' || popupType === 'right' }" - :style="{'width':check_list.width?check_list.width+'px':'200px','height':check_list.height?check_list.height+'px':'88%'}"> - <view class="popup-cont" :style="{'height':check_list.height?check_list.height-45+'px':'415px'}"> - <view class="view_popup_CheckList" v-for="(item,index) in check_list.items"> - <checkbox-group class="check_list" @change="checkChange" :data-ischeck="item.check" - :data-index="index" :style="{'margin-left': '10rpx'}"> - <label> - <checkbox :value="item.check" :checked="item.check" /> - <text>{{item.name}}</text> - </label> - </checkbox-group> - </view> - </view> - <view class="popup-footer"> - <button type="default" @tap="popup_sava" class="btn_popup_add">{{translateSys('ok')}}</button> - <button type="default" @tap="popup_cancel" - class="btn_popup_cancel">{{translateSys('cancel')}}</button> - </view> - </view> - </uni-popup> - </view> - </view> -</template> - -<script> - import Base64 from '../../components/js-base64/base64.js' - import { - dictGetInfo - } from "@/api/mobox.js" - import { - getUIStyleInfo, - runCustomEvent, - } from "@/api/data.js" - - export default { - name: "PageModalForm", - modules: { - Base64, - }, - data() { - return { - title: this.translateSys("inventory"), - ClsID: '', - param: {}, - focusFieldId: "", - focusOldFieldId: "", - head_styledef: { - form: { - items: [] - } - }, - pageDetail: [], //{StyleDef{}:,DefList:[],ExtData:{}} - // 鍒嗘鍣ㄦ暟鎹�- current: 0, - After_OK_Event: {}, - active_id: '', - selectAttrObj: {}, - - global_attr: [], - refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id} - popupType: "center", - check_list: {}, - popupParam: {}, - }; - }, - computed: { - tabs() { - return this.pageDetail.map((page => { - return page.Name - })); - - - }, - }, - onLoad(options) { - console.log(options.titlename, options); - uni.setNavigationBarTitle({ - title: options.titlename - }); //璁剧疆椤堕儴鏍囬 - this.title = options.titlename; - this.param = JSON.parse(options.param); - - - //鑾峰彇涓绘暟鎹被ID - this.ClsID = this.param.master_cls?.id; - if (this.ClsID) { - this.loadData(options.paramValue) - } else { - uni.showModal({ - title: this.translateSys("error"), - content: this.translate("tip_no_master_class"), - showCancel: false, - confirmText: this.translateSys("cancel") - }); - } - }, - //椤甸潰鍒濆鍖栬幏鍙栫劍鐐�- methods: { - setData(obj) { - let that = this; - let keys = []; - let val, data; - - Object.keys(obj).forEach(function(key) { - keys = key.split("."); - val = obj[key]; - data = that.$data; - keys.forEach(function(key2, index) { - if (index + 1 == keys.length) { - that.$set(data, key2, val); - console.log("$set", key2, val) - } else { - if (!data[key2]) { - that.$set(data, key2, {}); - console.log("$set", key2, {}) - } - } - data = data[key2]; - }); - }); - }, - async loadData(paramValue) { - //鑾峰彇鏁版嵁绫荤殑鑷畾涔夎〃鍗曞弬鏁�- await this.Head_UIStyleGetInfo(this.ClsID, this.param.Input_UI_Style.ID); - //浼犲叆鍙傛暟鍊�- if (paramValue) { - const attrs = paramValue.attrs || []; - (this.$data.head_styledef?.form?.items || []).forEach(async (ele, index) => { - if (ele.name != "Layout") { - attrs.forEach(async (ele2, index2) => { - if (ele.fieldId == ele2.name) { - ele.value = ele2.value; - } - }); - } else { - ele.setting.colList.forEach(async (col) => { - if (col) { - attrs.forEach(async (ele2, - index2) => { - if (col.fieldId == ele2.name) { - col.value = ele2.value; - } - }); - } - }); - } - }) - } - //鍔犺浇鍒濆鐣岄潰 - if (this.$data.param.Show_Welcom_Page) { - this.$data.param.Welcome_Page.Img = this.$data.param.Welcome_Page.Img.replace(/ /g, '+'); - this.$data.param.Welcome_Page.Width = parseInt(this.$data.param.Welcome_Page.Width); - this.$data.param.Welcome_Page.Height = parseInt(this.$data.param.Welcome_Page.Height); - }; - //鍔犺浇Tab椤电 - const pageList = this.param.Sub_Page || [] - for (let i in pageList) { - - const page = pageList[i] - page.DefList = []; - page.StyleDef = await this.Detail_UIstyleGetInfo( - this.ClsID, - page.UI_Style.ID - ); - const buttons = this.pageButtonList(page) - page.Button = buttons - page.DropDownButton = [] - if (buttons.length > 3) { - let cancelBtn = undefined - const btns = [] - buttons.forEach((btn) => { - if (btn.FunCode == "Cancel") { - cancelBtn = btn - } else { - btns.push(btn) - } - }) - if (cancelBtn) { - if (btns.length > 2) { - page.DropDownButton = btns.splice(2) - page.Button = btns - } - page.Button.push(cancelBtn) - } else { - if (btns.length > 3) { - page.DropDownButton = btns.splice(3) - page.Button = btns - } - } - } - page.Row_Button = this.rowButtonList(page) - } - - this.setData({ - pageDetail: pageList - }) - - console.log(this.pageDetail); - }, - changeSwiper(evt) { - let index = evt.target.current || evt.detail.current; - this.setData({ - current: index - }) - }, - pageButtonList(page) { - if (this.param?.ver == "2.0") { - return page?.Button || [] - - } else { - if (page?.OK_Button) { - let evt = {}; - if (page.Before_ok?.ID) { - evt = { - ID: page.Before_ok?.ID, - Name: page.Before_ok?.Name - }; - } else if (page.After_ok?.ID) { - evt = { - ID: page.After_ok?.ID, - Name: page.After_ok?.Name - }; - } - let btnCancel = { - Cls_Name: this.param?.master_cls?.name || "", - Cls_ID: this.param?.master_cls?.id || "", - FunCode: "Cancel", - ShowName: this.$t("sys.cancel"), - Style: "text", - Prompt: false, - }; - if (evt.ID) { - let btn = { - Cls_Name: this.param?.master_cls?.name || "", - Cls_ID: this.param?.master_cls?.id || "", - FunCode: "TriggerEvent", - ShowName: this.$t("sys.ok"), - Style: "text", - Prompt: false, - NotTriggerSYSEvent: false, - DataStateVerify: false, - AttrVerify: false, - Event: evt, - }; - return [btn, btnCancel]; - } else return [btnCancel]; - } else { - return []; - } - } - }, - rowButtonList(page) { - if (this.param?.ver == "2.0") { - return page?.Row_Button || []; - } else { - if (page?.Del_Button) { - let evt = {}; - if (page.Before_Delete?.ID) { - evt = { - ID: page.Before_Delete?.ID, - Name: page.Before_Delete?.Name, - }; - } else if (page.After_Delete?.ID) { - evt = { - ID: page.After_Delete?.ID, - Name: page.After_Delete?.Name - }; - } - - if (evt.ID) { - return [{ - Cls_Name: this.param?.master_cls?.name || "", - Cls_ID: this.param?.master_cls?.id || "", - FunCode: "Delete", - ShowName: this.$t("sys.delete"), - Style: "text", - Prompt: false, - NotTriggerSYSEvent: false, - DataStateVerify: false, - AttrVerify: false, - AfterProcess_Event: evt, - }]; - } - } - return []; - } - }, - - checkboxChange(e) { - - var items = this.pageDetail[this.current]?.DefList || [] - var values = e.detail.value; - for (var i = 0, lenI = items.length; i < lenI; ++i) { - const item = items[i] - if (values.includes(i)) { - item.SelBut_Checked = true - } else { - item.SelBut_Checked = false - } - } - }, - async Head_UIStyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�- try { - var $this = this; - var dataInfo = { - class_id: class_id, - ui_style_id: style_id, - }; - const result = await getUIStyleInfo(dataInfo) - var styledef = ""; - if (result.style_def) { - //mobox2鐨剆tyle_def鏄痡son瀛楃涓�- styledef = result.style_def.replace(/\\/g, ""); - //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�- if (!result.style_def.includes('"')) styledef = Base64.decode( - result - .style_def); - } - const styledefHead = styledef ? JSON.parse(styledef) : {}; - if (styledefHead?.form?.items) { - for (let i in styledefHead.form.items) { - const ele = styledefHead.form.items[i] - if (ele.name != "Layout") { - if (ele?.useDict) { - //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 - await this.DictGetInfo(ele.bind.dict, - styledefHead.form.model, - ele); - } else { - if (ele?.name === "Select") { - const selections = ele?.selections || [] - //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� - let itemName = ele.value || ""; - if (itemName) { - styledefHead.form - .model[ele.fieldId] = itemName; - } - ele.dict = selections.map((a) => { - return { - value: a.value, - text: a.label - } - }) - - } - - } - - if ($this.focusFieldId == "") { - if (ele.name == 'Input' || ele.name == - 'InputNumber') { - $this.setData({ - focusFieldId: ele.fieldId - }) - } - } - } else { - for (let j in ele.setting.colList) { - const col = ele.setting.colList[j] - if (col?.useDict) { - //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 - await this.DictGetInfo(col.bind - .dict, - styledefHead.form - .model, col); - } else { - if (col?.name === "Select") { - const selections = col?.selections || [] - //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� - let itemName = col.value || ""; - if (itemName) { - styledefHead.form - .model[col.fieldId] = itemName; - } - col.dict = selections.map((a) => { - return { - value: a.value, - text: a.label - } - }) - } - } - if ($this.focusFieldId == "") { - if (col.name == 'Input' || col - .name == - 'InputNumber') { - $this.setData({ - focusFieldId: col - .fieldId - }) - } - } - } - } - } - - } - this.setData({ - head_styledef: styledefHead - }) - console.log("Head_UIStyleGetInfo", this.head_styledef) - - } catch (ex) { - // console.log(ex); - uni.showModal({ - title: this.translateSys("error") + "1", - content: ex.errMsg, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return {} - } - - - }, - async Detail_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�- try { - var $this = this; - var dataInfo = { - class_id: class_id, - ui_style_id: style_id, - }; - const result = await getUIStyleInfo(dataInfo) - var styledef = ""; - if (result.style_def) { - //mobox2鐨剆tyle_def鏄痡son瀛楃涓�- styledef = result.style_def.replace(/\\/g, ""); - //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�- if (!result.style_def.includes('"')) styledef = Base64 - .decode(result - .style_def); - } - - const detailstyledef = result.style_def ? JSON.parse( - styledef) : {}; - detailstyledef.SelBut_Checked = true; - if (detailstyledef?.form?.items) { - for (let index in detailstyledef.form.items) { - const ele = detailstyledef.form.items[index] - - if (ele.name != "Layout") { - if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 - await this.DictGetInfo(ele.bind.dict, - detailstyledef.form - .model, ele); - } - } else { - for (let j in ele.setting.colList) { - const col = ele.setting.colList[j] - if (col?.useDict == true) { - await this.DictGetInfo(col - .bind.dict, - detailstyledef.form - .model, col); - } - } - } - } - - } - console.log("Detail_UIstyleGetInfo", detailstyledef); - return detailstyledef - } catch (ex) { - // console.log(ex); - uni.showModal({ - title: this.translateSys("error") + "2", - content: ex.errMsg, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return {} - } - - - }, - - async DictGetInfo(dict, formModel, formItem) { //Mobox3寰楀埌寰楀埌瀛楀吀淇℃伅瀛楀吀椤瑰垪琛�- this.data = []; - var $this = this; - var dataInfo = { - dict_id: dict.id, - dict_name: dict.name - }; - try { - const result = await dictGetInfo(dataInfo) - var list = []; - var itemName = ''; - (result.dict_item_list || []).forEach((item) => { - if (item.is_default == '1') - itemName = item.name - list.push({ - text: item.value ? item.value : item.name, - value: item.name, - }); - }); - //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� - if (itemName) { - formItem.value = itemName; - formModel[formItem.fieldId] = itemName; - } - formItem.dict = list; - } catch (ex) { - // console.log(ex); - uni.showModal({ - title: this.translateSys("error") + "3", - content: ex.errMsg, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - } - - }, - onClick(item) { - this.focusFieldId = item.fieldId - }, - ontap(item) { //鎵爜鍔熻兘 - // var $ele = e; - //console.log(e.target) - this.focusOldFieldId = item.fieldId - getApp().onScan((result) => { - console.log(result.decodedata); - item.value = result.decodedata; - var $this = this; - if (item.oldvalue != item.value && item.value.trim() != "") { - item.oldvalue = item.value; - var attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; - var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- var onSuffixClickCallbackEvent = item.bind - .onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�- var onSuffixClickEvent = item.bind - .onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�- var isflag = false; - - if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�- $this.onChange(onChangeEvent); - } - if (item.value) { //绗竴涓緭鍏ユ涓嶄负绌�- //鍒濆鍖栵紝涓嬩釜杈撳叆妗唂ocus灞炴� - var findd = false - for (let i in $this.head_styledef.form.items) { - const ele = $this.head_styledef.form.items[i] - - if (ele.name != "Layout") { - if (ele.name == 'Input' || ele.name == - 'InputNumber') { - if (attr == ele.fieldId) { - findd = true - } else { - if (findd) { - $this.setData({ - focusFieldId: ele.fieldId - }) - break - } - - } - - } - } else { - if (findd) { - let curIndex = ele.setting.colList.findIndex(( - col, index2, arr) => { - return (col.name == 'Input' || col - .name == 'InputNumber'); - }) - if (curIndex > -1) { - $this.setData({ - focusFieldId: ele.setting - .colList[curIndex] - .fieldId - }) - break - } - - } else { - let curIndex = ele.setting.colList.findIndex(( - col, index2, arr) => { - return attr == col.fieldId; - }) - if (curIndex > -1) { - findd = true - let curIndex2 = ele.setting.colList - .findIndex((col, index2, arr) => { - return (col.name == 'Input' || - col.name == - 'InputNumber') && - index2 > - curIndex; - }) - if (curIndex2 > -1) { - $this.setData({ - focusFieldId: ele.setting - .colList[curIndex] - .fieldId - }) - break - } - } - } - - } - } - } - - } - }) - }, - - onEnterChange(item) { //鍥炶溅锛岀偣鍑绘寜閽紝鍙栨秷鑺傜偣浜嬩欢 - console.log(item); - if (item.oldvalue != item.value && item.value.trim() != "") { - item.oldvalue = item.value; - var attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; - var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- - if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�- this.onChange(onChangeEvent); - } - - } - }, - onCheckBoxValue(e) { //缁戝畾Model鍊�- let values = e.detail.value || [] - const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0] - if (item?.setting?.colList) { - const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0] - if (col) { - col.value = values - let attr = col.fieldId; - this.head_styledef.form.model[attr] = col.value; - var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�- this.onChange(onChangeEvent); - } - return - } - } else { - if (item) { - item.value = values - let attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; - var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�- this.onChange(onChangeEvent); - } - } - } - - }, - onRadioBoxValue(e) { //缁戝畾Model鍊�- let values = e.detail.value || "" - const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0] - if (item?.setting?.colList) { - const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0] - if (col) { - col.value = values - let attr = col.fieldId; - this.head_styledef.form.model[attr] = col.value; - var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�- this.onChange(onChangeEvent); - } - return - } - } else { - if (item) { - item.value = values - let attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; - var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�- this.onChange(onChangeEvent); - } - } - - } - - }, - classAttr_extButton(item) { - var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�- var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�- - if (!onSuffixClickCallbackEvent.id) { - uni.showModal({ - title: this.translateSys("tip"), - content: this.translate('icon_click_callback_empty'), - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return; - } - if (!onSuffixClickEvent.id) { - uni.showModal({ - title: this.translateSys("tip"), - content: this.translate('icon_click_event_empty'), - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return; - } - this.$data.popupType = 'right' - // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� - this.$refs.popup.open(this.popupType); - - this.dataObjRunCustomEvent_Return(onSuffixClickCallbackEvent.id, '', onSuffixClickEvent.id, - item); - }, - - getDetailAttrList(pageData) { - const detailAttrList = []; - if (pageData.DefList) { - pageData.DefList.forEach(style => { - var detail_attr = {}; - style.form.items.forEach(item => { - if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�- item.setting.colList.forEach(cols => { - if (cols != null) detail_attr[cols - .fieldId] = cols.value; - }); - } else - detail_attr[item.fieldId] = item.value; - }); - - detail_attr['id'] = style.form.objId; - if (pageData.Select_Button == true) { //鍒ゆ柇閫夋嫨鎸夐挳鏄惁涓簍rue - if (style.SelBut_Checked == true) - detailAttrList.push(detail_attr); - } else - detailAttrList.push(detail_attr); - }); - // console.log(detailAttrList); - //鑾峰彇姝e湪鐮佺洏閲屾病鏈夋樉绀虹殑瀛楁 - pageData.DefList.forEach(style => { - style.form.attrs.forEach(attr => { - for (var key in detailAttrList) { - if (style.form.objId == detailAttrList[key][ - 'id' - ]) { - var keys = Object.keys(detailAttrList[key]); - var isflag = true; - keys.forEach((ele) => { - if (ele == attr.attr) isflag = - false; - }); - if (isflag) { - detailAttrList[attr.attr] = attr.value; - } - } - } - }); - }); - } - const jsonlist = []; - detailAttrList.forEach(attr => { - jsonlist.push({ - id: attr["id"] || "", - attrs: Object.keys(attr).map((a) => ({ - attr: a, - value: attr[a] || "", - })).filter((a) => { - return a.attr != "id" - }) - }); - }); - return jsonlist; - }, - // 鍐呭鍙樺寲鍚庝簨浠�- async onChange(event) { - try { - if (event.id) { - //鑾峰彇琛ㄥご灞炴� - var head_attr = {}; - this.head_styledef.form.items.forEach(item => { - if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�- item.setting.colList.forEach(cols => { - if (cols != null) head_attr[cols - .fieldId] = cols.value; - }); - } else - head_attr[item.fieldId] = item.value; - }); - var obj_attr = this.head_styledef.form.model; - // console.log(obj_attr); - var input_param = Base64.encode( - JSON.stringify( - Object.keys(head_attr).map((a) => ({ - attr: a, - value: head_attr[a] || "", - })) - ) - ); - var $this = this; - const jsonList = [] - this.pageDetail.forEach((page) => { - - jsonList.push({ - page_name: page.Name, - item_list: $this.getDetailAttrList(page - .DefList, page - .Select_Button), - ext_data: page.ExtData || {} - }) - - }) - const data_json = Base64.encode( - JSON.stringify(jsonList) - ); - var dataInfo = { - ed_type: 0, - start_transaction: true, - class_id: this.$data.head_styledef.form.clsId, - class_name: '', - event_id: event.id, - event_name: '', - data_obj_id: '', - obj_attr: obj_attr, - prj_id: '', - ref_cls_id: '', - rel_obj_id: '', - user_login: '', - data_json: data_json, - compose_info: '', - ext_info: '', - global_attr: '', - input_param: input_param, - }; - runCustomEvent(dataInfo).then(result => { - console.log(result); - - if (result.ret != 0) { - var tip = result.err_info ? typeof result - .err_info == 'string' ? result - .err_info : result.err_info.join('<br/>') : - ''; - if (result.ret == 801) { - if (this.param.Only_Script_Error) { - let pos = tip.indexOf("锛�); - if (pos > -1) tip = tip.substring(pos + - 1); - } - uni.showModal({ - title: this.translateSys( - "tip"), - content: tip, - showCancel: false, - confirmText: this.translateSys( - "cancel") - }); - } else uni.showModal({ - title: this.translateSys('tip'), - content: tip + ',' + this - .translateSys('tip') + ':' + - result - .ret, - showCancel: false, - confirmText: this.translateSys( - "cancel") - }); - return false; - } else { - var tip = result.info ? typeof result.info == - 'string' ? result.info : - result.info.join('<br/>') : ''; - if (tip) uni.showModal({ - title: this.translateSys('tip'), - content: tip, - showCancel: false, - confirmText: this.translateSys( - "cancel") - }); - - if (result.result_type == 0 && result.action) { - result.action.forEach(item => { - - if (item.action_type == - "insert_subtable_page_row" - ) { //鐮佺洏涓�- $this.$data.param - .Show_Welcom_Page = - false; - var value = item.value; - $this.viewAceionRow(value); - } else if (item.action_type == - "set_subtable_page_content" - ) { //宸茬爜鐩�- $this.$data.param - .Show_Welcom_Page = - false; - var value = item.value; - const pageData = $this - .pageDetail.find(( - page) => { - return value - .page_name == - page.Name; - }); - if (value.clear_confirm != - false && value.clear == - true && - pageData && pageData - .DefList.length > 0 - ) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�- uni.showModal({ - title: this - .translateSys( - 'tip' - ), - content: this - .translate( - "are_you_sure_clear_first" - ) + - this - .translateSys( - "quotation_mark_left" - ) + - value - .page_name + - this - .translateSys( - "quotation_mark_right" - ) + - this - .translate( - "are_you_sure_clear_last" - ), - success: function( - res - ) { - if (res - .confirm - ) { - if ( - pageData) - pageData - .DefList = []; - $this - .viewAceionContent( - value - ); - } else if ( - res - .cancel - ) { - if ( - pageData) - pageData - .DefList = []; - $this - .viewAceionContent( - value - ); - } - } - }); - } else { - if (pageData) - pageData - .DefList = []; - $this - .viewAceionContent( - value); - } - } else if (item.action_type == - "select_subtable_page_row" - ) { - // value = {"page_name":"鐮佺洏涓�, "row":{"id":"xx"}} - var value = item.value; - const pageData = $this - .pageDetail.find(( - page) => { - return value - .page_name == - page.Name; - }); - if (pageData?.DefList) { - pageData.DefList - .forEach(ele => { - - if (ele - .form - .objId == - value - .row.id - ) { - ele.SelBut_Checked = - true; - $this - .active_id = - ele - .form - .htmlobjId; - //鑷姩婊氬姩鍒版寚瀹氬厓绱�- uni.createSelectorQuery() - .select( - "#tabpanel" + - value - .page_name - ) //瀵瑰簲澶栧眰鑺傜偣 - .boundingClientRect( - ( - container - ) => { - uni.createSelectorQuery() - .select( - "#dvpanel" + - ele - .form - .htmlobjId - ) //鐩爣鑺傜偣 - .boundingClientRect( - ( - target - ) => { - uni.pageScrollTo({ - scrollTop: target - .top - - container - .top, //婊氬姩鍒板疄闄呰窛绂绘槸鍏冪礌璺濈椤堕儴鐨勮窛绂诲噺鍘绘渶澶栧眰鐩掑瓙鐨勬粴鍔ㄨ窛绂�- }); - } - ) - .exec(); - } - ) - .exec(); - } - }); - } - } else if (item.action_type == - "remove_subtable_page_row" - ) { //娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�- var value = item.value; - const pageData = $this - .pageDetail.find(( - page) => { - return value - .page_name == - page.Name; - }); - if (pageData - ?.DefList - ) //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞//娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�- { - value.row.forEach( - row => { - pageData - .DefList - .forEach( - (ele, - index - ) => { - if (ele - .form - .objId == - row - .id - ) { - pageData - .DefList - .splice( - index, - 1 - ); - } - }); - }); - } - - - - } else if (item.action_type == - "set_subtable_page_row") { - $this.viewActionSetRow(item - .value) - - } else if (item.action_type == - "set_subtable_page_ext_data" - ) { - var value = item.value; - const pageData = $this - .pageDetail.find(( - page) => { - return value - .page_name == - page.Name; - }); - if (pageData) - pageData.ExtData = - value.ext_data - - } else if (item.action_type == - "clear_subpage_rows") { - var value = item.value; - const pageData = $this - .pageDetail.find(( - page) => { - return value - .page_name == - page.Name; - }); - if (pageData) { - pageData.DefList = [] - pageData.ExtData = {} - } - - } else if (item.action_type == - "set_dlg_current_edit_attr" - ) { - - if ($this - .focusOldFieldId == - item.value) { - $this.setData({ - focusFieldId: "" - }) - } else { - $this.setData({ - focusFieldId: $this - .focusOldFieldId - }) - } - $this.$nextTick(() => { - $this.setData({ - focusFieldId: item - .value - }) - }); - } else if (item.action_type == - "set_dlg_attr") { - // value = {"attr":"xxx", "value":"xxx"} - var data = item.value; - $this.setFormValues(data) - } - }); - } else { - - if (result.info) { - uni.showModal({ - title: this.translateSys( - "error") + "4.3", - content: result.info, - showCancel: false, - confirmText: this - .translateSys("cancel") - }); - } - } - - } - - }).catch(ex => { - // console.log(ex); - let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex - uni.showModal({ - title: this.translateSys("error") + "4.1", - content: tip, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - }); - } - } catch (ex) { - var tip = typeof ex == "string" ? ex : ex.message; - uni.showModal({ - title: this.translateSys("error") + "4.2", - content: this.translate( - 'execute_after_change_event_failed') + this - .translateSys( - "comma") + - this.translate('reason') + this.translateSys("colon") + - tip, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - } - }, - operationNumber(value1, value2, operation) { - var number1 = 0 - var number2 = 0 - if (value1) - number1 = parseInt(value1) - if (value2) - number2 = parseInt(value2) - if (!operation) { - return value2; - } - if (operation == "+") { - return number1 + number2 - } else if (operation == "-") { - return number1 - number2 - } else if (operation == "*") { - return number1 * number2 - } else if (operation == "/") { - if (number2) return number1 / number2; - else { - throw new Error(`${this.translate("illegal_dividend")}'${value2}'`); - return 0; - } - } else if (operation == "=") { - return value2; - } else { - throw new Error(`${this.translate("unrecognized_operator")}'${operation}'`); - return 0; - } - }, - - //鏇存柊鍒嗛〉绛句腑鐨勫垪琛ㄩ」鍐呭 - viewActionSetRow(value) { - const $this = this - const pageIndex = $this.pageDetail.findIndex(( - page, index2, arr) => { - return value.page_name == page.Name; - }) - if (pageIndex < 0) - return - const pageData = $this.pageDetail[pageIndex] - var detailStyleDefList = pageData.DefList || [] - detailStyleDefList.forEach(ele => { - value.row.forEach((rowData) => { - if (rowData.id) { - if (ele.form.objId == rowData.id) { - rowData.attrs.forEach(attr => { - ele.form.items.forEach(ele2 => { - if (ele2.name != - 'Layout') { - if (ele2.fieldId == - attr - .attr) { - ele2.value = - $this - .operationNumber( - ele2 - .value, - attr - .value, - attr - .operation - ) - } - } else if (ele2.name == - 'Layout') { - ele2.setting - .colList - .forEach( - col => { - if ( - col) { - if (col - .fieldId == - attr - .attr - ) { - col.value = - $this - .operationNumber( - col - .value, - attr - .value, - attr - .operation - ) - } - } - }) - } - }); - }); - } - } else if (rowData.condition) { - const conditions = rowData.condition; - let bFindCondition = true; - for (let i in conditions) { - const condition = conditions[i]; - let bFind = false; - for (let i2 in ele.form.items) { - const ele2 = ele.form.items[i2]; - if (ele2.name != "Layout") { - if (ele2.fieldId == condition.attr) { - if (condition.value == ele2.value) { - bFind = true; - } - break; - } - } else { - const colList = ele2.setting.colList || []; - for (let i3 in colList) { - const col = colList[i3]; - if (col.fieldId == condition.attr) { - if (condition.value == col.value) { - bFind = true; - } - break; - } - } - if (bFind) break; - } - } - if (!bFind) { - bFindCondition = false; - break; - } - } - if (bFindCondition) { - - rowData.attrs.forEach(attr => { - ele.form.items.forEach(ele2 => { - if (ele2.name != - 'Layout') { - if (ele2.fieldId == - attr - .attr) { - ele2.value = - $this - .operationNumber( - ele2 - .value, - attr - .value, - attr - .operation - ) - } - } else if (ele2.name == - 'Layout') { - ele2.setting - .colList - .forEach( - col => { - if ( - col) { - if (col - .fieldId == - attr - .attr - ) { - col.value = - $this - .operationNumber( - col - .value, - attr - .value, - attr - .operation - ) - } - } - }) - } - }); - }); - - } - } - }) - }); - pageData.DefList = detailStyleDefList - $this.$set(this.pageDetail, pageIndex, pageData) - - }, - //鍔犺浇姝e湪鐮佺洏鍐呭 - viewAceionRow(data) { - // console.log(data); - if (JSON.stringify(data.row) == '{}') { - return; - } - const pageIndex = this.pageDetail.findIndex(( - page, index2, arr) => { - return data.page_name == page.Name; - }) - if (pageIndex < 0) - return - const pageData = this.pageDetail[pageIndex] - var styleStr = JSON.stringify(pageData.StyleDef); - - var detailStyle = JSON.parse(styleStr); - if (detailStyle.form) { - data.row.forEach(row => { - detailStyle = JSON.parse(styleStr); - detailStyle.form.objId = row.id; - detailStyle.form.htmlobjId = row.id ? row.id.replace(/-/g, '') - .replace( - '{', '').replace('}', - '') : 'null'; - detailStyle.form.attrs = row.attrs; - row.attrs.forEach(attr => { - detailStyle.form.items.forEach(ele => { - if (ele.name != 'Layout') { - if (ele.fieldId == attr.attr) ele - .value = - attr.value; - } else if (ele.name == 'Layout') { - ele.setting.colList.forEach( - col => { - if (col) { - if (col.fieldId == - attr - .attr) col - .value = attr - .value; - } - }); - } - }); - }); - - pageData.DefList.push(detailStyle); - this.$set(this.pageDetail, pageIndex, pageData) - - }); - } - }, - //鍔犺浇宸茬爜鐩樺唴瀹�- viewAceionContent(data) { - var $this = this; - const pageIndex = $this.pageDetail.findIndex(( - page, index2, arr) => { - return data.page_name == page.Name; - }) - if (pageIndex < 0) - return - const pageData = $this.pageDetail[pageIndex] - - pageData.ExtData = data.ext_data || {} - - if (JSON.stringify(data.content) == '{}') { - return; - } - var styleStr = JSON.stringify(pageData.StyleDef); - var detailStyle = JSON.parse(styleStr); - if (detailStyle.form) { - data.content.forEach(cont => { - detailStyle = JSON.parse(styleStr); - detailStyle.SelBut_Checked = data.checkbox ?? true; - - detailStyle.form.objId = cont.id; - detailStyle.form.htmlobjId = cont.id ? cont.id.replace(/-/g, - '') - .replace('{', '').replace('}', - '') : 'null'; - detailStyle.form.attrs = cont.attrs; - cont.attrs.forEach(attr => { - detailStyle.form.items.forEach(ele => { - if (ele.name != 'Layout') { - if (ele.fieldId == attr.attr) ele - .value = - attr.value; - } else if (ele.name == 'Layout') { - ele.setting.colList.forEach( - col => { - if (col) { - if (col.fieldId == - attr - .attr) col - .value = attr - .value; - } - }); - } - }); - }); - //濡傛灉 clear = false 鍒欎笉闇�娓呴櫎锛屾牴鎹甶d鍒ゆ柇鏄惁瀛樺湪锛屼笉瀛樺湪鎻掑叆鍒伴〉闈紝濡傛灉瀛樺湪鐢ㄦ柊鐨勫睘鎬ц鐩�- if (data.clear == false) { - var isflag = true; - pageData.DefList.forEach((style, index) => { - if (style.form.objId == detailStyle.form - .objId) { - cont.attrs.forEach(attr => { - style.form.items.forEach( - ele => { - if (ele.name != - 'Layout') { - if (ele - .fieldId == - attr.attr) - ele - .value = - attr.value; - } else if (ele - .name == - 'Layout') { - ele.setting - .colList - .forEach( - col => { - if ( - col - ) { - if (col - .fieldId == - attr - .attr - ) - col - .value = - attr - .value; - } - }); - } - }); - }); - isflag = false; - } - }); - if (isflag) pageData.DefList.push(detailStyle); //寰呭垎鎷�- } else { - pageData.DefList.push(detailStyle); //寰呭垎鎷�- } - // $this.setData({pageDetail:pageD}) - $this.$set(this.pageDetail, pageIndex, pageData) - - }); - } - - }, - setFormValues(data) { - const head_styledef = this.head_styledef - if (JSON.stringify(data) == '{}') { - return; - } - head_styledef.form.items.forEach(async (ele, index) => { - if (ele.name != "Layout") { - let curIndex = data.findIndex((attr, index2, arr) => { - return attr.attr == ele.fieldId; - }) - if (curIndex > -1) { - const attr = data[curIndex] - if (ele.name == - 'Select' && - attr - .choice_list - ) { - const - dictItemList = []; - const - choiceList = - attr - .choice_list || []; - for (let d in - choiceList) { - const - val = - choiceList[ - d - ]; - dictItemList - .push({ - text: val, - value: val - }); - } - ele.dict = - dictItemList; - } - - ele.value = - attr - .value; - } - } else { - ele.setting - .colList - .forEach( - async ( - col - ) => { - if ( - col) { - let curIndex = data.findIndex(( - attr, index2, arr) => { - return attr.attr == col.fieldId; - }) - if (curIndex > -1) { - const attr = data[curIndex] - if (col.name == - 'Select' && - attr - .choice_list - ) { - const - dictItemList = []; - const - choiceList = - attr - .choice_list || []; - for (let d in - choiceList) { - const - val = - choiceList[ - d - ]; - dictItemList - .push({ - text: val, - value: val - }); - } - col.dict = - dictItemList; - } - - col.value = - attr - .value; - } - } - - }) - - } - }) - - this.setData({ - head_styledef: head_styledef - }) - }, - - onClickItem(e) { //閫夋嫨椤电 - // console.log(e); - this.current = e.currentIndex - }, - onDetail1EnterChange(item) { //鐮佺洏涓牱寮忓洖杞︿簨浠�- console.log(item); - }, - async del(pageData, style, event) { - //鑾峰彇琛ㄥご灞炴� - var head_attr = {}; - this.$data.head_styledef.form.items.forEach(item => { - if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�- item.setting.colList.forEach(cols => { - if (cols != null) head_attr[cols.fieldId] = - cols.value; - }); - } else - head_attr[item.fieldId] = item.value; - }); - // console.log(head_attr); - //鑾峰彇姝e湪鍒嗘嫞灞炴� - var detailAttrList = []; - var detail_attr = {}; - style.form.items.forEach(item => { - if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�- item.setting.colList.forEach(cols => { - if (cols != null) detail_attr[cols - .fieldId] = cols - .value; - }); - } else - detail_attr[item.fieldId] = item.value; - }); - - detail_attr['id'] = style.form.objId; - if (pageData.Select_Button == true) { //鍒ゆ柇閫夋嫨鎸夐挳鏄惁涓簍rue - if (style.SelBut_Checked == true) - detailAttrList.push(detail_attr); - } else - detailAttrList.push(detail_attr); - - // console.log(detailAttrList); - //鑾峰彇姝e湪鍒嗘嫞閲屾病鏈夋樉绀虹殑瀛楁 - style.form.attrs.forEach(attr => { - for (var key in detailAttrList) { - if (style.form.objId == detailAttrList[key]['id']) { - var keys = Object.keys(detailAttrList[key]); - var isflag = true; - keys.forEach((ele) => { - if (ele == attr.attr) isflag = false; - }); - if (isflag) { - detailAttrList[attr.attr] = attr.value; - } - } - } - }); - var input_param = Base64.encode( - JSON.stringify( - Object.keys(head_attr).map((a) => ({ - attr: a, - value: head_attr[a] || "", - })) - ) - ); - var jsonlist = []; - detailAttrList.forEach(attr => { - jsonlist.push({ - id: attr["id"] || "", - attrs: Object.keys(attr).map((a) => ({ - attr: a, - value: attr[a] || "", - })).filter((a) => { - return a.attr != "id" - }) - }); - }); - if (jsonlist.length == 0) { - uni.showModal({ - title: this.translateSys("tip"), - content: this.translate("tip_no_select_data"), - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return; - } - // console.log(jsonlist); - const list = [] - list.push({ - page_name: pageData.Name, - item_list: jsonlist, - ext_data: pageData.ExtData - }) - $this.runCustomEvent(pageData, event, input_param, list); - }, - - popupChange(e) { - console.log('褰撳墠妯″紡锛� + e.type + ',鐘舵�锛� + e.show); - }, - checkChange(e) { //寮规check閫夋嫨 - // console.log(e.target.dataset); - var index = e.target.dataset.index; - var ischeck = e.target.dataset.ischeck; - var data = this.$data.check_list.items; - // this.$data.check_list.items=[]; - if (this.$data.check_list.multiple_choice == "0") { //鍒ゆ柇鏃跺崟閫夎繕鏄閫�- for (var i in data) { - data[i].check = false; - } - } - data[index].check = ischeck ? false : true; - this.$data.check_list.items = data; - - }, - popup_cancel(e) { //寮规鍙栨秷 - this.$refs.popup.close(); - }, - popup_sava(e) { //寮规纭畾 - var $this = this; - var items = $this.$data.check_list.items; - var data = []; - var name = ""; - for (var i = 0; i < items.length; i++) { - if (items[i].check == true) { - if (name) - name += ';'; - name += items[i].name; - data.push({ - id: items[i].id, - name: items[i].name - }); - } - } - if (!$this.$data.popupParam) { - uni.showModal({ - title: this.translateSys("tip"), - content: "popupParam涓虹┖锛�, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return; - } - if (data.length == 0) { - uni.showModal({ - title: this.translateSys("tip"), - content: this.translate("tip_no_select_data"), - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return; - } - var callback_eventid = $this.$data.popupParam.button_callback.trim(); - var info = { - eventid: callback_eventid, - edtype: "0", - projectid: '', - rclsid: '', - robjid: '', - userlogin: '', - clsid: $this.$data.ClsID, - objid: "", - attr: $this.$data.popupParam.req, - dataJson: data - } - $this.DataObjRunCustomEvent(info, $this.$data.popupParam.data_attr); - this.$refs.popup.close(); - }, - - async DataObjRunCustomEvent(info, data_attr) { - var $this = this; - var enviroment = { - 'function': '3000', // 鍔熻兘鐐圭紪鍙�- cls_id: this.$data.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�- 'button': 'top', // top/bottom - button_name: this.translateSys('add2'), - master: { - cls_id: this.$data.ClsID, // button=bottom鏃�master鐨刢ls_id - //obj_id: '' // button=bottom鏃�master鐨刼bj_id - } - }; - if (data_attr) { - enviroment.edit_dlg = { - type: 'small', //灏忕獥鍙�- class_id: this.$data.ClsID, //褰撳墠鏁版嵁绫籭d - } - if (data_attr) { - enviroment.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠�- name: data_attr.Name, //瀛楁灞炴� - text: data_attr.DispName, //鏄剧ず鏂囨湰 - group_name: data_attr.GroupName, //灞炴�缁�- type: data_attr.Type, //瀛楁绫诲瀷 - readonly: data_attr.ReadOnly, //鏄惁鍙 - button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍�- button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip - } - } - } - enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 - var input_param = Base64.encode(JSON.stringify(info.attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 - var global_attr = Base64.encode(JSON.stringify(this.$data.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 - if (info.dataJson) - info.dataJson = Base64.encode(JSON.stringify(info.dataJson)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 - var obj_attr = {}; - info.attr.forEach(item => { - obj_attr[item.attr] = item.value; - }); - if (!info.eventid.includes('{')) info.eventid = '{' + info.eventid + '}'; - var dataInfo = { - ed_type: info.edtype, - start_transaction: true, - class_id: info.clsid, - class_name: '', - event_id: info.eventid, - event_name: '', - data_obj_id: info.objid, - obj_attr: obj_attr, - prj_id: info.projectid, - ref_cls_id: info.rclsid, - rel_obj_id: info.robjid, - user_login: info.userlogin, - data_json: info.dataJson, - compose_info: '', - ext_info: enviroment, - global_attr: global_attr, - input_param: input_param, - }; - console.log(dataInfo); - // return; - runCustomEvent(dataInfo).then(data => { - if (data.ret != 0) { - var tip = data.err_info ? typeof data.err_info == 'string' ? data - .err_info : - data - .err_info.join('<br/>') : ''; - if (data.ret == 801) { - if (this.param.Only_Script_Error) { - let pos = tip.indexOf("锛�); - if (pos > -1) tip = tip.substring(pos + 1); - } - uni.showModal({ - title: this.translateSys("tip"), - content: tip, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - } else uni.showModal({ - title: this.translateSys("tip"), - content: tip + ',' + this.translateSys('tip') + ':' + data - .ret, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return false - } else { - var tip = data.info ? typeof data.info == 'string' ? data.info : data - .info - .join( - '<br/>') : ''; - if (tip) uni.showModal({ - title: this.translateSys("tip"), - content: tip, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - - var actionlist = data.action; - if (actionlist) { - console.log(actionlist); - for (var i = 0; i < actionlist.length; i++) { - var action = actionlist[i]; - if (action.action_type == 'set_dlg_attr') { - var result = action.value; - $this.setFormValues(result) - } else if (action.action_type == 'set_dlg_attr_show') { - var result = action.value; - result.forEach(async (attr, key) => { - $this.$data.head_styledef.form.items - .forEach( - async (ele, - index) => { - //鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�- if (ele.name != 'Layout') { - if (ele.fieldId == attr - .attr) { - ele.show = attr - .show; - } - } else if (ele.name == - 'Layout') { - ele.setting.colList - .forEach( - col => { - if (col) { - if (col - .fieldId == - attr - .attr - ) { - col.show = - attr - .show; - } - } - }); - } - }); - }); - var head_styledef = JSON.parse(JSON.stringify($this.$data - .head_styledef)); - $this.$data.head_styledef = []; - $this.$data.head_styledef = head_styledef; - // console.log($this.$data.head_styledef); - } else if (action.action_type == 'set_global_attr') { - $this.$data.global_attr = action.value || []; - } else { - uni.showModal({ - title: this.translateSys("tip"), - content: this.translateSys( - "quotation_mark_left") + - action - .action_type + this.translateSys( - "quotation_mark_right") + this - .translate( - "tip_action_unprocessed"), - showCancel: false, - confirmText: this.translateSys("cancel") - }); - } - } - } - console.log($this.head_styledef); - if (data.result) { - var result = data.result; - for (var i = 0; i < result.length; i++) { - for (var c = 0; c < $this.$data.head_styledef.form.items - .length; c++) { - var attr = $this.$data.head_styledef.form.items[c]; - //鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�- if ($this.head_styledef.form.model[result[i].attr] == - undefined) { - $this.head_styledef.form.model[result[i].attr] = - result[i] - .value; - } - //鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�- if (attr.name != 'Layout') { - if (attr.fieldId == result[i].attr) { - attr.value = ''; - attr.oldvalue = ''; - attr.value = result[i].value; - attr.oldvalue = result[i].value; - $this.head_styledef.form.model[attr.fieldId] = - result[i] - .value; - } - } else if (attr.name == 'Layout') { - attr.setting.colList.forEach(col => { - if (col) { - if (col.fieldId == result[i].attr) { - col.value = ''; - col.oldvalue = ''; - col.value = result[i].value; - col.oldvalue = result[i].value; - $this.head_styledef.form.model[col - .fieldId] = - result[i].value; - } - } - }); - } - } - - var length = 0; - if (!$this.$data.refdatastore.filter(function(s) { - return result[i].attr == s.attr - }).length) { - length = 1; - $this.$data.refdatastore.push(result[i]); - } - if (length == 0) { - for (var j = 0; j < $this.$data.refdatastore.length; j++) { - if ($this.$data.refdatastore[j].attr == result[i] - .attr) { - $this.$data.refdatastore[j].value = result[i] - .value; - } - } - } - } - } - } - - }).catch(ex => { - // console.log(ex); - let exStr = JSON.stringify(ex) - if (exStr == "{}") - exStr = ex - let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr - uni.showModal({ - title: this.translateSys("error") + "3.1", - content: exStr, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - }); - }, - dataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) { - console.log("dataObjRunCustomEvent_Return", eventid, data_attr, button_callback) - const $this = this - var enviroment = { - 'function': '3000', // 鍔熻兘鐐圭紪鍙�- cls_id: $this.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�- 'button': 'top', // top/bottom - button_name: $this.translateSys('add2'), - master: { - cls_id: $this.ClsID, // button=bottom鏃�master鐨刢ls_id - //obj_id: '' // button=bottom鏃�master鐨刼bj_id - } - }; - var obj_attr = $this.head_styledef.form.model; - console.log(obj_attr); - var req = Object.keys(obj_attr).map((a) => ({ - attr: a, - value: obj_attr[a] || "", - })); - if ($this.refdatastore.length > 0) { - for (var i = 0; i < $this.refdatastore.length; i++) { - if (!req.filter(function(s) { - return $this.refdatastore[i].attr == s.name - }).length) { - req.push({ - 'attr': $this.refdatastore[i].attr, - 'value': $this.refdatastore[i].value - }); - } - } - } - - var extinfo = enviroment; - extinfo.edit_dlg = { - type: 'small', //灏忕獥鍙�- class_id: $this.ClsID, //褰撳墠鏁版嵁绫籭d - } - extinfo = Base64.encode(JSON.stringify(extinfo)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 - var global_attr = Base64.encode(JSON.stringify($this.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 - var obj_attr = {}; - req.forEach(item2 => { - obj_attr[item2.attr] = item2.value; - }); - let input_param = Base64.encode( - JSON.stringify( - Object.keys(obj_attr).map((a) => ({ - attr: a, - value: obj_attr[a] || "", - })) - ) - ); - - if (!eventid.includes('{')) eventid = '{' + eventid + '}'; - var dataInfo = { - ed_type: "0", - start_transaction: true, - class_id: $this.ClsID, - class_name: '', - event_id: eventid, - event_name: '', - data_obj_id: '', - obj_attr: obj_attr, - prj_id: '', - ref_cls_id: '', - rel_obj_id: '', - user_login: '', - data_json: [], - compose_info: '', - ext_info: extinfo, - global_attr: global_attr, - input_param: input_param, - }; - console.log(dataInfo); - // return; - runCustomEvent(dataInfo).then(data => { - if (data.ret != 0) { - var tip = data.err_info ? typeof data.err_info == 'string' ? data - .err_info : - data - .err_info.join('<br/>') : ''; - if (data.ret == 801) { - if ($this.param.Only_Script_Error) { - let pos = tip.indexOf("锛�); - if (pos > -1) tip = tip.substring(pos + 1); - } - uni.showModal({ - title: $this.translateSys("tip"), - content: tip, - showCancel: false, - confirmText: $this.translateSys("cancel") - }); - } else uni.showModal({ - title: $this.translateSys("tip"), - content: tip + ',' + $this.translateSys('tip') + ':' + data - .ret, - showCancel: false, - confirmText: $this.translateSys("cancel") - }); - return false - } else { - var tip = data.info ? typeof data.info == 'string' ? data.info : data - .info - .join( - '<br/>') : ''; - if (tip) uni.showModal({ - title: $this.translateSys("tip"), - content: tip, - showCancel: false, - confirmText: $this.translateSys("cancel") - }); - - if (data != "") { - var actions = data.action; - if (actions) { - for (var i = 0; i < actions.length; i++) { - var action = actions[i]; - console.log(action) - var val = action.value; - var enviroment = JSON.stringify(enviroment); - - if (action.action_type == 'open_panel') { - var d = dialog({ - title: '<i class="ace-icon fa fa-info-circle"></i> ' + - $this.translateSys("tip"), - content: $this.translateSys( - "quotation_mark_left") + - action - .action_type + $this.translateSys( - "quotation_mark_right") + $this - .translate( - "tip_action_unprocessed") - }); - d.show(); - } else if (action.action_type == 'open_select_userdlg') { - var style = val.style; - // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : '' - var param = { - item: item, - button_callback: button_callback, - req: req, - data_attr: data_attr - } - uni.navigateTo({ - url: '../selpsn/index?mulit=false¶m=' + - JSON - .stringify( - param), - events: { - AddPer(data, param) { - // console.log(param); - console.log(data); - var callback_eventid = param - .button_callback - .trim(); - var info = { - eventid: callback_eventid, - edtype: "0", - projectid: '', - rclsid: '', - robjid: '', - userlogin: '', - clsid: $this.$data.param - .DataCls - .id, - objid: "", - attr: param.req, - inputparameter: data, - dataJson: [], - } - $this.DataObjRunCustomEvent(info, - param - .data_attr); - } - } - }); - } else if (action.action_type == 'open_data_query_dlg') { - var d = dialog({ - title: '<i class="ace-icon fa fa-info-circle"></i> ' + - $this.translateSys("tip"), - content: $this.translateSys( - "quotation_mark_left") + - action - .action_type + $this.translateSys( - "quotation_mark_right") + $this - .translate( - "tip_action_unprocessed") - }); - d.show(); - } else if (action.action_type == 'open_common_dlg') { - - if (val.common_dlg_id == 'check_list') { - $this.setData({ - check_list: val.config - }) - if (val.config.appear_style == 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�- $this.setData({ - popupType: "right" - }) - else - $this.setData({ - popupType: "center" - }) - // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� - $this.$refs.popup.open($this.popupType); - var popupParam = { - item: item, - button_callback: button_callback, - req: req, - data_attr: data_attr - } - $this.setData({ - popupParam: popupParam - }) - } - } else if (action.action_type == 'open_project_query_dlg') { - //console.log(action.value.select_range); - //console.log(action.value.mulit_select); - var priRel = '-1'; - if (action.value.select_range == '鍏ㄩ儴鐩稿叧') - priRel = '0'; - else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰') - priRel = '1'; - else if (action.value.select_range == '鎴戝垱寤虹殑') - priRel = '2'; - else if (action.value.select_range == '鎴戝弬涓庣殑' || action - .value - .select_range == '鎴戝弬鍔犵殑') - priRel = '3'; - else if (action.value.select_range == '鎴戝叧娉ㄧ殑') - priRel = '4'; - else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰') - priRel = '5'; - var param_ = { - item: item, - button_callback: button_callback, - req: req - } - uni.navigateTo({ - url: '../selPrj/index?relation=' + priRel + - '¶m=' + - JSON.stringify(param_), - events: { - AddPer(data, param) { - var attr = param.item.fieldId; - $this.head_styledef.form.model[ - attr] = - data[0].ID + - ';' + data[0].Name; - - // $this.$data.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name; - // $this.$data.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name; - var callback_eventid = param - .button_callback - .trim(); - if (callback_eventid) { - var info = { - eventid: callback_eventid, - edtype: "2", - projectid: data[0].ID, - rclsid: "", - robjid: "", - userlogin: "", - clsid: $this.$data - .param - .DataCls.id, - objid: "", - attr: param.req, - dataJson: [], - } - - $this.DataObjRunCustomEvent( - info); - } - } - } - }); - } else { - uni.showModal({ - title: $this.translateSys("tip"), - content: $this.translateSys( - "quotation_mark_left") + - action.action_type + $this.translateSys( - "quotation_mark_right") + $this - .translate( - "tip_action_unprocessed"), - showCancel: false, - confirmText: $this.translateSys("cancel") - }); - } - } - } - } else { - uni.showModal({ - title: $this.translateSys('tip') + "5.2", - content: $this.translateSys("quotation_mark_left") + - "before_click_button" + $this.translateSys( - "quotation_mark_right") + $this.translateSys( - "comma") + 'event_id' + eventid, - showCancel: false, - confirmText: $this.translateSys("cancel") - }); - } - } - - }).catch(ex => { - // console.log(ex); - let exStr = JSON.stringify(ex) - if (exStr == "{}") - exStr = ex - let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr - uni.showModal({ - title: $this.translateSys('tip') + "5.1", - content: exStr, - showCancel: false, - confirmText: $this.translateSys("cancel") - }); - }); - }, - - - onPanelClick(value, id) { - // console.log(value); - this.active_id = id; - }, - //鐐瑰嚮鎸夐挳鍒楄〃 - clickDropdownBtns(pageData) { - const that = this - const itemlist = []; - const btnList = pageData.DropDownButton || [] - - for (let i in btnList) { - itemlist.push(btnList[i].ShowName || ""); - } - uni.showActionSheet({ - // title: '鎸夐挳鍒楄〃', - itemList: itemlist, - success: (e) => { - console.log(e.tapIndex); - var btn = btnList[e.tapIndex]; - that.onBtnClick(btn, pageData); - } - }) - }, - onBtnClick(btn, pageData) { - if (btn.Prompt) { - const sContent = btn.PromptContent || this.translate("confirm") - uni.showModal({ - title: this.translateSys("tip"), - content: btn.PromptContent || this.translate("confirm"), - success: function(res) { - if (res.confirm) {} - this.onButtonClicked(btn, pageData, -1); - }, - }) - - } else { - this.onButtonClicked(btn, pageData, -1); - } - }, - onRowBtnClick(btn, pageData, index) { - if (btn.Prompt) { - const sContent = btn.PromptContent || this.translate("confirm") - uni.showModal({ - title: this.translateSys("tip"), - content: btn.PromptContent || this.translate("confirm"), - success: function(res) { - if (res.confirm) {} - this.onButtonClicked(btn, pageData, index); - }, - }) - - } else { - this.onButtonClicked(btn, pageData, index); - } - }, - onButtonClicked(btn, pageData, index) { - this.After_OK_Event = {} - let enviroment = { - button: "top", - button_name: btn.ShowName, - cls_id: btn.Cls_ID, - function: "3018", - master: {}, - }; - if (btn.FunCode == "TriggerEvent") { - this.After_OK_Event = btn?.After_Event || {}; - this.sava(pageData, btn.Event); - } else if (btn.FunCode == "Cancel") { - this.cancel(); - } else if (btn.FunCode == "Delete") { - if (index > -1) { - const style = pageData.DefList[index]; - //鍒犻櫎鐮佺洏涓牱寮忛潰鏉�- pageData.DefList.splice(index, 1); - this.del(pageData, style, btn.AfterProcess_Event); - } - } else { - this.$Message.warning(this.$t("sys.unrealized")); - } - }, - //纭畾 - ok(pageData) { - this.Before_OK_Event = pageData.Before_ok; - this.After_OK_Event = pageData.After_ok; - // console.log(this.Before_OK_Event); - // console.log(this.After_OK_Event); - if (this.$data.Before_OK_Event.ID) //鏄惁鏈夌‘瀹氬墠浜嬩欢 - this.sava(pageData, this.$data.Before_OK_Event); - else if (this.$data.After_OK_Event.ID) //鏄惁鏈夌‘瀹氬悗浜嬩欢 - this.sava(pageData, this.$data.After_OK_Event); - }, - sava(pageData, event) { - var $this = this; - if (pageData.DefList.length == 0) { - uni.showModal({ - title: this.translateSys("tip"), - content: this.translate( - "tip_no_data_first") + - this.translateSys( - "quotation_mark_left") + pageData.Name + this - .translateSys( - "quotation_mark_right") + - this.translate( - "tip_no_data_last"), - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return false; - } - //鑾峰彇琛ㄥご灞炴� - pageData.okLoading = true - var head_attr = {}; - this.$data.head_styledef.form.items.forEach(item => { - if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�- item.setting.colList.forEach(cols => { - if (cols != null) head_attr[cols.fieldId] = - cols.value; - }); - } else - head_attr[item.fieldId] = item.value; - }); - // console.log(head_attr); - //鑾峰彇姝e湪鐮佺洏灞炴� - var detailAttrList = []; - pageData.DefList.forEach(style => { - var detail_attr = {}; - style.form.items.forEach(item => { - if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�- item.setting.colList.forEach(cols => { - if (cols != null) detail_attr[ - cols - .fieldId] = cols.value; - }); - } else - detail_attr[item.fieldId] = item.value; - }); - - detail_attr['id'] = style.form.objId; - if (pageData.Select_Button == - true) { //鍒ゆ柇閫夋嫨鎸夐挳鏄惁涓簍rue - if (style.SelBut_Checked == true) - detailAttrList.push(detail_attr); - } else - detailAttrList.push(detail_attr); - }); - // console.log(detailAttrList); - //鑾峰彇姝e湪鐮佺洏閲屾病鏈夋樉绀虹殑瀛楁 - pageData.DefList.forEach(style => { - style.form.attrs.forEach(attr => { - for (var key in detailAttrList) { - if (style.form.objId == detailAttrList[key] - [ - 'id' - ]) { - var keys = Object.keys(detailAttrList[ - key]); - var isflag = true; - keys.forEach((ele) => { - if (ele == attr.attr) - isflag = - false; - }); - if (isflag) { - detailAttrList[attr.attr] = attr - .value; - } - } - } - }); - }); - // console.log(detailAttrList); - // return; - var input_param = Base64.encode( - JSON.stringify( - Object.keys(head_attr).map((a) => ({ - attr: a, - value: head_attr[a] || "", - })) - ) - ); - var jsonlist = []; - detailAttrList.forEach(attr => { - jsonlist.push({ - id: attr["id"] || "", - attrs: Object.keys(attr).map((a) => ({ - attr: a, - value: attr[a] || "", - })) - }); - }); - if (jsonlist.length == 0) { - pageData.okLoading = false - uni.showModal({ - title: this.translateSys("tip"), - content: this.translate("tip_no_select_data"), - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return; - } - const list = [] - list.push({ - page_name: pageData.Name, - item_list: jsonlist, - ext_data: pageData.ExtData - }) - // console.log(jsonlist); - $this.runCustomEvent(pageData, event, input_param, list); - // jsonlist.forEach(async (json,key)=>{ - // await $this.runCustomEvent(event,input_param,json,'1'); - // }); - }, - //鎵ц纭畾鑴氭湰 - async runCustomEvent(pageParam, event, input_param, json, type) { - var $this = this; - var data_json = Base64.encode( - JSON.stringify(json) - ); - var dataInfo = { - ed_type: 0, - start_transaction: true, - class_id: this.$data.ClsID, - class_name: '', - event_id: event.ID, - event_name: '', - data_obj_id: '', - obj_attr: '', - prj_id: '', - ref_cls_id: '', - rel_obj_id: '', - user_login: '', - data_json: data_json, - compose_info: '', - ext_info: '', - global_attr: '', - input_param: input_param, - }; - - // console.log(dataInfo); - runCustomEvent(dataInfo).then(result => { - console.log(result); - if (result.ret != 0) { - var tip = result.err_info ? typeof result - .err_info == 'string' ? result.err_info : - result.err_info.join('<br/>') : ''; - if (result.ret == 801) { - if (this.param.Only_Script_Error) { - let pos = tip.indexOf("锛�); - if (pos > -1) tip = tip.substring(pos + - 1); - } - uni.showModal({ - title: this.translateSys( - "tip"), - content: tip, - showCancel: false, - confirmText: this.translateSys( - "cancel") - }); - } else uni.showModal({ - title: this.translateSys('tip'), - content: tip + ',' + this - .translateSys('tip') + ':' + - result.ret, - showCancel: false, - confirmText: this.translateSys( - "cancel") - }); - return false; - } else { - var tip = result.info ? typeof result.info == - 'string' ? result.info : result.info - .join('<br/>') : ''; - if (tip) uni.showModal({ - title: this.translateSys('tip'), - content: tip, - showCancel: false, - confirmText: this.translateSys( - "cancel") - }); - if (result.result_type == 0) { - if (result.action) { - // uni.showModal({title:this.translateSys("tip"),content:JSON.stringify(result.action),showCancel:false,confirmText:this.translateSys("cancel")}); - - result.action.forEach(item => { - if (item.action_type == - "insert_subtable_page_row" - ) { //鐮佺洏涓�- var value = item.value; - //鍔犺浇宸茬粡鐮佺洏鏁版嵁 - $this.viewAceionRow( - value, ); - //娓呯┖鏉$爜鍐呭 - $this.$data - .head_styledef - .form.items - .forEach(( - item, - index) => { - if (item - .fieldId != - "S_CNTR_CODE" - ) { - item.value = - ''; - item.oldvalue = - ''; - $this - .$data - .head_styledef - .form - .model[ - item - .fieldId - ] = - ''; - } - }); - - uni.showModal({ - title: this - .translateSys( - "tip" - ), - content: this - .translate( - 'execute_event_success' - ), - showCancel: false, - confirmText: this - .translateSys( - "cancel" - ) - }); - } else if (item.action_type == - "set_subtable_page_content" - ) { //宸茬爜鐩�- $this.$data.param - .Show_Welcom_Page = - false; - var value = item.value; - const pageData = $this - .pageDetail.find(( - page) => { - return value - .page_name == - page.Name; - }); - if (value.clear_confirm != - false && value.clear == - true && - pageData && pageData - .DefList.length > 0 - ) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�- uni.showModal({ - title: this - .translateSys( - 'tip' - ), - content: this - .translate( - "are_you_sure_clear_first" - ) + - this - .translateSys( - "quotation_mark_left" - ) + - value - .page_name + - this - .translateSys( - "quotation_mark_right" - ) + - this - .translate( - "are_you_sure_clear_last" - ), - success: function( - res - ) { - if (res - .confirm - ) { - if ( - pageData - ) - pageData - .DefList = []; - $this - .viewAceionContent( - value - ); - } else if ( - res - .cancel - ) { - if ( - pageData - ) - pageData - .DefList = []; - $this - .viewAceionContent( - value - ); - } - } - }); - } else { - if (pageData) - pageData - .DefList = []; - $this - .viewAceionContent( - value); - } - } else if (item - .action_type == - "remove_subtable_page_row" - ) { //娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�- var value = item.value; - const pageData = $this - .pageDetail.find(( - page) => { - return value - .page_name == - page - .Name; - }); - if (pageData - ?.DefList - ) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞 - //娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�- value.row.forEach( - row => { - pageData - .DefList - .forEach( - ( - ele, - index - ) => { - if (ele - .form - .objId == - row - .id - ) { - pageData - .DefList - .splice( - index, - 1 - ); - } - } - ); - }); - } - } else if (item - .action_type == - "set_subtable_page_row" - ) { - $this.viewActionSetRow( - item - .value) - - } else if (item - .action_type == - "set_subtable_page_ext_data" - ) { - var value = item.value; - const pageData = $this - .pageDetail.find(( - page) => { - return value - .page_name == - page - .Name; - }); - if (pageData) { - pageData.ExtData = - value - .ext_data - } - - } else if (item - .action_type == - "clear_subpage_rows") { - var value = item.value; - const pageData = $this - .pageDetail.find(( - page) => { - return value - .page_name == - page - .Name; - }); - if (pageData) { - pageData - .DefList = [] - pageData - .ExtData = {} - } - } else if (item - .action_type == - "set_dlg_current_edit_attr" - ) { - if ($this - .focusOldFieldId == - item.value) - $this.setData({ - focusFieldId: "" - }) - else { - $this.setData({ - focusFieldId: $this - .focusOldFieldId - }) - } - $this.$nextTick(() => { - $this - .setData({ - focusFieldId: item - .value - }) - }); - } else if (item.action_type == - "set_dlg_attr") { - // value = {"attr":"xxx", "value":"xxx"} - var data = item.value; - $this.setFormValues(data) - } - - }); - } else { - if ($this.$data.After_OK_Event.ID != - event - .ID) { //鍒ゆ柇褰撳墠浜嬩欢鏄惁鏄‘瀹氬悗浜嬩欢 - - $this.sava(pageParam, $this.$data - .After_OK_Event); //鎵ц纭畾鍚庝簨浠�- - } - } - } else { - - if (result.info) { - uni.showModal({ - title: this.translateSys( - "tip"), - content: result.info, - showCancel: false, - confirmText: this - .translateSys("cancel") - }); - } - } - } - - pageParam.okLoading = false - }).catch(ex => { - pageParam.okLoading = false - let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex - uni.showModal({ - title: this.translateSys("error") + "8.1", - content: this.translate( - "execute_after_ok_event_failed") + - this.translateSys( - "comma") + - tip, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - }); - }, - - cancel(e) { //鍙栨秷 - uni.navigateBack({ - delta: 1 //杩斿洖灞傛暟锛�鍒欎笂涓婇〉 - }); - }, - translate(t) { - if (typeof this.$t == "function") return this.$t(`page.${t}`) - else return t; - }, - translateSys(t) { - if (typeof this.$t == "function") return this.$t(`sys.${t}`) - else return t; - }, - }, - }; -</script> - -<style lang="scss"> - .uni-page-modal-form { - - display: flex; - height: calc(100vh - 30rpx); - width: 720rpx; - flex-direction: column !important; - padding: 15rpx; - - .view-header { - display: flex; - width: 100%; - flex-direction: column; - } - - .v-head-style { - width: 98%; - - .uni-forms-item { - margin-bottom: 11rpx; - } - - .input-wrapper { - border: 1px solid #d5d5d5; - width: 100%; - display: flex; - flex-direction: row; - - .uni-input { - flex: 1; - padding: 12rpx 8rpx; - color: #2d8cf0; - // height: 40rpx; - // line-height: 40rpx; - } - - .uni-icon { - padding: 8rpx; - font-size: 32rpx; - color: rgb(192, 196, 204); - } - } - - .input-wrapper:hover { - border: 1px solid rgb(41, 121, 255); - } - } - - .view-content { - display: flex; - flex: 1; - width: 100%; - flex-direction: column; - min-height: 100px; - } - - .dv-tab { - width: calc(100% - 30rpx); - padding: 0 15rpx; - } - - .view-tabpage { - width: 100%; - flex: 1; - } - - .view-tab-content { - display: flex; - flex: 1; - width: calc(100% - 30rpx); - padding: 10rpx 15rpx; - flex-direction: column; - overflow-y: auto; - - } - - .uni-panel-content { - display: flex; - width: 100%; - height: 100%; - flex-direction: column !important; - } - - .view-bottom { - display: flex; - flex-direction: row; - width: calc(100% - 30rpx); - padding: 10rpx 15rpx 30rpx 15rpx; - - .btn-disabled { - background-color: #ddd; - color: #888; - } - - .btn-left { - padding: 20rpx; - line-height: 1.5; - border: none; - font-size: 38rpx; - font-weight: bold; - float: left; - display: inline-block; - } - - .btn-one { - padding: 20rpx; - line-height: 1.5; - border: none; - font-size: 38rpx; - font-weight: bold; - float: left; - display: inline-block; - width: 50%; - margin-left: 25%; - } - - .btn-right { - padding: 20rpx; - line-height: 1.5; - border: none; - font-size: 38rpx; - font-weight: bold; - float: right; - display: inline-block; - } - - .width-50 { - width: 49%; - } - - .width-32 { - width: 32%; - margin-left: 1%; - } - - .width-30 { - width: 30%; - margin-left: 1%; - } - } - - [nvue] uni-view { - position: relative; - border: 0 solid #000; - box-sizing: border-box; - } - - .uni-icon { - /* border: 1px solid red; */ - width: 8%; - font-family: uniicons; - font-size: 40rpx; - font-weight: 400; - font-style: normal; - /* width: 48rpx; */ - height: 48rpx; - line-height: 48rpx; - color: #2d8cf0; - cursor: pointer; - display: inline-block; - vertical-align: 18rpx; - } - - .dv-panel { - background-color: #efefef; - padding: 20rpx 20rpx 10rpx 0px; - border-radius: 12rpx; - margin: 10rpx 0 20rpx 0; - text-align: right; - - .txt_title { - font-size: 28rpx; - text-align: right; - display: inline-block; - } - - input { - vertical-align: middle; - display: inline-block; - border: 1px solid #d5d5d5; - width: 68%; - height: 48rpx; - line-height: 28rpx; - background: #FFF; - border-radius: 7px !important; - color: #2d8cf0; - padding: 6rpx 8rpx 8rpx; - font-size: 28rpx; - font-family: inherit; - box-shadow: none !important; - transition-duration: 0.1s; - margin-top: 0rpx; - } - - input::-webkit-input-placeholder { - font-size: 10rpx; - } - - .form-item-span { - vertical-align: text-top; - color: #2d8cf0; - white-space: normal; - word-break: break-all; - display: inline-block; - width: calc(100% - 100px); - } - - .dv-panel-button { - width: 100%; - text-align: left; - min-height: 30rpx; - padding-bottom: 10rpx; - - checkbox { - padding-left: 20px; - display: inline-block; - } - - button { - text-align: left; - line-height: 1.5; - border: none; - font-size: 30rpx; - display: inline-block; - float: right; - text-align: center; - } - } - - } - - .dv-panel-input { - width: 100%; - display: inline-block; - text-align: left; - - .dv-input { - margin-bottom: 2rpx; - } - } - - .logo { - height: 100rpx; - width: 460rpx; - display: flex; - margin: 38% auto; - } - - .dv-border { - border: 1px solid red; - } - - .view-imagetext { - text-align: center; - width: calc(100% - 80rpx); - padding: 20rpx 40rpx 0px 40rpx; - height: calc(100% - 30rpx); - overflow: hidden; - } - - .view-imagetext .view-imagetext-uploadlist { - padding: 30rpx 0px 10rpx 0px; - vertical-align: middle; - display: inline-block; - width: 100%; - height: 100%; - text-align: center; - line-height: 100%; - border: 2rpx solid transparent; - border-radius: 8rpx; - overflow: hidden; - background: #fff; - position: relative; - } - - .view-imagetext .txt-text { - display: block; - margin: 20rpx; - font-weight: bold; - } - - .view-detalist-centen { - text-align: center; - width: 100%; - } - - .view-detalist-centen .txt-detalist { - background: #94D5EF; - display: block; - width: 100%; - font-size: 36rpx; - line-height: 80rpx; - font-weight: 500; - } - - .panel-active { - border: 2px solid red; - } - - .bk-active { - background-color: #D6FCB2; - } - - .dv_select { - display: inline-block; - width: 66%; - background: #FFF; - border-radius: 0 !important; - color: #2d8cf0; - /* padding: 10rpx 8rpx 12rpx; */ - font-size: 34rpx; - font-family: inherit; - box-shadow: none !important; - transition-duration: 0.1s; - margin-top: 0rpx; - vertical-align: 20rpx; - - .uni-select { - border: 2rpx solid #ccc; - border-radius: 0 !important; - color: #2d8cf0; - } - - .uni-select__input-text { - color: #2d8cf0; - } - - } - - - .input-disabled { - background-color: #f3f3f3 !important; - } - - .demo-uni-row { - margin-bottom: 0px; - display: block; - - .uni-input { - width: calc(100% - 120px); - } - } - - ::v-deep .uni-row { - margin-bottom: 0px; - } - - .view-tabpage ::v-deep .uni-row { - margin-bottom: 5px; - } - - .demo-uni-col { - height: 36px; - border-radius: 5px; - } - - .popup-header { - font-size: 42rpx; - font-weight: bold; - margin: 20rpx 20rpx 0px 20rpx; - } - - .view_popup_CheckList { - margin-bottom: 20rpx; - } - - .popup-footer { - float: right; - position: absolute; - bottom: 0; - right: 20rpx; - } - - button.btn_popup_add { - width: 180rpx; - margin-top: 50rpx; - margin-right: 20rpx; - padding: 15rpx; - line-height: 1.5; - background: #27A6E1; - border: none; - color: #fff; - font-size: 38rpx; - font-weight: bold; - /* float: left; */ - display: inline-block; - } - - button.btn_popup_cancel { - width: 180rpx; - margin-top: 50rpx; - padding: 15rpx; - line-height: 1.5; - background: #27A6E1; - border: none; - color: #fff; - font-size: 38rpx; - font-weight: bold; - /* float: right; */ - display: inline-block; - } - - - } -</style> \ No newline at end of file diff --git a/pages/modal/form/index.vue b/pages/modal/form/index.vue new file mode 100644 index 0000000..2e3cda5 --- /dev/null +++ b/pages/modal/form/index.vue @@ -0,0 +1,2231 @@ +<template> + <view class="uni-page-modal-form"> + <view class="view-content"> + <!-- 琛ㄥご鏍峰紡 --> + <uni-forms ref="baseForm" label-align="right"> + <view v-for="(item,index) in head_styledef.form.items" :key="index" class="v-head-style"> + <!-- 鏅�甯冨眬 --> + <uni-forms-item v-if="item.name != 'Layout'" :label="item.label ?item.label +'锛�:'' " + :label-width="item.labelWidth+'px'"> + <uni-data-picker v-if="item.name=='Select'" :class="item.disabled?'input-disabled':''" + v-model="item.value" :localdata="item.dict" @change="onEnterChange(item)" + :readonly="item.disabled" :clear-icon="false" :popup-title="item.label"></uni-data-picker> + <view class="input-wrapper" v-if="item.name=='Input' || item.name=='InputNumber'"> + <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" + @click="classAttr_extButton(item)"></text> + <input class="uni-input" :class="item.disabled?'input-disabled':''" + :style="{'padding-left':item.setting.prefix?0 : '8rpx','right':item.setting.suffix?0 : '8rpx'}" + :type="item.name=='Input'?'text':'number'" v-model="item.value" + :disabled="item.disabled" :placeholder="item.placeholder" + :focus="focusFieldId == item.fieldId" @focus="ontap(item)" @click="onClick(item)" + @keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)" :maxlength="-1" /> + <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" + @click="classAttr_extButton(item)"></text> + </view> + <!-- 澶嶉�妗�--> + <checkbox-group v-if="item.name=='Checkbox'" :class="item.disabled?'input-disabled':''" + :disabled="item.disabled" @change="onCheckBoxValue" :data-attr="item.fieldId" + :data-index="index"> + <label v-for="(item2) in item.selections" :key="item2.value"> + <checkbox :value="item2.value" :checked="item.value.includes(item2.value)" /> + <text>{{item2.label}}</text> + </label> + </checkbox-group> + <!-- 鍗曢�妗�--> + <radio-group v-if="item.name=='Radio'" :class="item.disabled?'input-disabled':''" + :disabled="item.disabled" @change="onRadioBoxValue" :data-attr="item.fieldId" + :data-index="index"> + <label v-for="(item2) in item.selections" :key="item2.value"> + <radio :value="item2.value" :checked="item2.value === item.value" /> + <text>{{item2.label}}</text> + </label> + </radio-group> + <!-- Switch寮�叧 --> + <switch class="input-switch" v-if="item.name=='Switch'" + :class="item.disabled?'input-disabled':''" :disabled="item.disabled" v-model="item.value" + @change="onEnterChange(item)" /> + </uni-forms-item> + <!-- 鏍呮牸甯冨眬 --> + <uni-row v-else :gutter="item.setting.gutter"> + <uni-col + :span=" item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col" + v-for="(col,key) in item.setting.colList"> + <uni-forms-item :label="col.label ? col.label +'锛�:''" :label-width="col.labelWidth+'px'"> + <uni-data-picker v-if="col.name=='Select'" :class="col.disabled?'input-disabled':''" + v-model="col.value" :localdata="col.dict" @change="onEnterChange(col)" + :readonly="col.disabled" :clear-icon="false" + :popup-title="col.label"></uni-data-picker> + <view class="input-wrapper" v-if="col.name=='Input' || col.name=='InputNumber'"> + <text v-if="col.setting.prefix" class="uni-icon" :class="[col.setting.prefix]" + @click="classAttr_extButton(col)"></text> + <input class="uni-input" :class="col.disabled?'input-disabled':''" + :style="{'padding-left':col.setting.prefix?0 : '8px','right':col.setting.suffix?0 : '8px'}" + :type="col.name=='Input'?'text':'number'" v-model="col.value" + :disabled="col.disabled" :placeholder="col.placeholder" + :focus="focusFieldId == col.fieldId" @focus="ontap(col)" @click="onClick(col)" + @keyup.enter="onEnterChange(col)" @blur="onEnterChange(col)" :maxlength="-1" /> + <text v-if="col.setting.suffix" class="uni-icon" :class="[col.setting.suffix]" + @click="classAttr_extButton(col)"></text> + </view> + <!-- 澶嶉�妗�--> + <checkbox-group v-if="col.name=='Checkbox'" :class="col.disabled?'input-disabled':''" + :disabled="col.disabled" @change="onCheckBoxValue" :data-attr="col.fieldId" + :data-index="index" :data-iindex="key"> + <label v-for="(col2) in col.selections" :key="col2.value"> + <checkbox :value="col2.value" :checked="col.value.includes(col2.value)" /> + <text>{{col2.label}}</text> + </label> + </checkbox-group> + <!-- 鍗曢�妗�--> + <radio-group v-if="col.name=='Radio'" :class="col.disabled?'input-disabled':''" + :disabled="col.disabled" @change="onRadioBoxValue" :data-attr="col.fieldId" + :data-index="index" :data-iindex="key"> + <label v-for="(col2) in col.selections" :key="col2.value"> + <radio :value="col2.value" :checked="col2.value === col.value" /> + <text>{{col2.label}}</text> + </label> + </radio-group> + <!-- Switch寮�叧 --> + <switch v-if="col.name=='Switch'" :class="col.disabled?'input-disabled':''" + :disabled="col.disabled" v-model="col.value" @change="onEnterChange(col)" /> + </uni-forms-item> + </uni-col> + </uni-row> + </view> + </uni-forms> + </view> + <view class="view-bottom"> + <button type="primary" @tap="ok" class="btn_add" :class="okLoading?'btn_disabled':''" + :disabled="okLoading">{{translateSys('ok')}}</button> + <button type="default" @tap="cancel" class="btn_cancel">{{translateSys('cancel')}}</button> + + </view> + <view> + <uni-popup class="view-popup" ref="popup" background-color="#fff" @change="popupChange"> + <view class="popup-header">{{check_list.title}}</view> + <view class="popup-content" :class="{ 'popup-height': popupType === 'left' || popupType === 'right' }" + :style="{'width':check_list.width?check_list.width+'px':'200px','height':check_list.height?check_list.height+'px':'88%'}"> + <view class="popup-cont" :style="{'height':check_list.height?check_list.height-45+'px':'415px'}"> + <view class="view_popup_CheckList" v-for="(item,index) in check_list.items"> + <checkbox-group class="check_list" @change="checkChange" :data-ischeck="item.check" + :data-index="index" :style="{'margin-left': '10rpx'}"> + <label> + <checkbox :value="item.check" :checked="item.check" /> + <text>{{item.name}}</text> + </label> + </checkbox-group> + </view> + </view> + <view class="popup-footer"> + <button type="default" @tap="popup_sava" class="btn_popup_add">{{translateSys('ok')}}</button> + <button type="default" @tap="popup_cancel" + class="btn_popup_cancel">{{translateSys('cancel')}}</button> + </view> + </view> + </uni-popup> + </view> + </view> +</template> + +<script> + import Base64 from '../../../components/js-base64/base64.js' + import { + dictGetInfo + } from "@/api/mobox.js" + import { + getUIStyleInfo, + runCustomEvent, + dataObjCreate, + updateDataObj, + dataObjInfo + } from "@/api/data.js" + + export default { + name: "PageModalForm", + modules: { + Base64, + }, + data() { + return { + okLoading:false, + title: this.translateSys('add2'), + type: '', + editMode: false, + clsId: '', + objId: "", + param: {}, + focusFieldId: "", + focusOldFieldId: "", + head_styledef: { + form: { + items: [] + } + }, + global_attr: [], + ext_info: {}, + data_json: [], + refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id} + popupType: "center", + check_list: {}, + popupParam: {}, + }; + }, + computed: { + initialEvent() { + let event = this.head_styledef.event?.find((e) => e.event_id == "initial"); + return { + id: event?.scrip_id, + name: event?.scrip_name, + }; + }, + beforeOKEvent() { + let event = this.head_styledef.event?.find((e) => e.event_id == "before_ok"); + return { + id: event?.scrip_id, + name: event?.scrip_name, + }; + }, + afterOKEvent() { + let event = this.head_styledef.event?.find((e) => e.event_id == "after_ok"); + return { + id: event?.scrip_id, + name: event?.scrip_name, + }; + }, + beforeCancelEvent() { + let event = this.head_styledef.event?.find( + (e) => e.event_id == "before_cancel" + ); + return { + id: event?.scrip_id, + name: event?.scrip_name, + }; + }, + afterCancelEvent() { + let event = this.head_styledef.event?.find( + (e) => e.event_id == "after_cancel" + ); + return { + id: event?.scrip_id, + name: event?.scrip_name, + }; + }, + }, + onLoad(options) { + + this.param = JSON.parse(options.param); + let objAttr + if (options.type) { + this.type = options.type; + } + //鑾峰彇涓绘暟鎹被ID + this.clsId = this.param.Cls_ID; + this.objId = options.objId || ""; + this.editMode = options.editMode ? true : false; + if (options.objAttr) + objAttr = JSON.parse(options.objAttr); + if (options.globalAttrs) + this.global_attr = JSON.parse(options.globalAttrs); + if (options.extInfo) + this.ext_info = JSON.parse(options.extInfo); + if (options.dataJson) + this.data_json = JSON.parse(options.dataJson); + this.title = this.param.ShowName? this.param.ShowName : options.titlename; //璁剧疆鎸夐挳鏂囧瓧 + // console.log(options) + uni.setNavigationBarTitle({ + title: this.title + }); //璁剧疆椤堕儴鏍囬 + + if (this.clsId) { + this.loadData(objAttr) + } else { + uni.showModal({ + title: this.translateSys("error"), + content: this.translate("tip_no_master_class"), + showCancel: false, + confirmText: this.translateSys("cancel") + }); + } + }, + //椤甸潰鍒濆鍖栬幏鍙栫劍鐐�+ methods: { + setData(obj) { + let that = this; + let keys = []; + let val, data; + + Object.keys(obj).forEach(function(key) { + keys = key.split("."); + val = obj[key]; + data = that.$data; + keys.forEach(function(key2, index) { + if (index + 1 == keys.length) { + that.$set(data, key2, val); + console.log("$set", key2, val) + } else { + if (!data[key2]) { + that.$set(data, key2, {}); + console.log("$set", key2, {}) + } + } + data = data[key2]; + }); + }); + }, + async loadData(objAttr) { + + //鑾峰彇鏁版嵁绫荤殑鑷畾涔夎〃鍗曞弬鏁�+ await this.Head_UIStyleGetInfo(this.clsId, this.param.Edit_dlg.ID); + // form data + await this.loadFormData(objAttr); + // init event + await this.loadInitialEvent(); + }, + + async Head_UIStyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�+ try { + var $this = this; + var dataInfo = { + class_id: class_id, + ui_style_id: style_id, + }; + const result = await getUIStyleInfo(dataInfo) + var styledef = ""; + if (result.style_def) { + //mobox2鐨剆tyle_def鏄痡son瀛楃涓�+ styledef = result.style_def.replace(/\\/g, ""); + //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�+ if (!result.style_def.includes('"')) styledef = Base64.decode( + result + .style_def); + } + const styledefHead = styledef ? JSON.parse(styledef) : {}; + if (styledefHead?.form?.items) { + for (let i in styledefHead.form.items) { + const ele = styledefHead.form.items[i] + if (ele.name != "Layout") { + if (ele?.useDict) { + //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 + await this.DictGetInfo(ele.bind.dict, + styledefHead.form.model, + ele); + } else { + if (ele?.name === "Select") { + const selections = ele?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = ele.value || ""; + if (itemName) { + styledefHead.form + .model[ele.fieldId] = itemName; + } + ele.dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + + } + + } + + if ($this.focusFieldId == "") { + if (ele.name == 'Input' || ele.name == + 'InputNumber') { + $this.setData({ + focusFieldId: ele.fieldId + }) + } + } + } else { + for (let j in ele.setting.colList) { + const col = ele.setting.colList[j] + if (col?.useDict) { + //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 + await this.DictGetInfo(col.bind + .dict, + styledefHead.form + .model, col); + } else { + if (col?.name === "Select") { + const selections = col?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = col.value || ""; + if (itemName) { + styledefHead.form + .model[col.fieldId] = itemName; + } + col.dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + } + } + if ($this.focusFieldId == "") { + if (col.name == 'Input' || col + .name == + 'InputNumber') { + $this.setData({ + focusFieldId: col + .fieldId + }) + } + } + } + } + } + + } + this.setData({ + head_styledef: styledefHead + }) + console.log("Head_UIStyleGetInfo", this.head_styledef) + + } catch (ex) { + // console.log(ex); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: $this.translateSys('tip') + "1", + content: exStr, + showCancel: false, + confirmText: $this.translateSys("cancel") + }); + + } + + + }, + async DictGetInfo(dict, formModel, formItem) { //Mobox3寰楀埌寰楀埌瀛楀吀淇℃伅瀛楀吀椤瑰垪琛�+ this.data = []; + var $this = this; + var dataInfo = { + dict_id: dict.id, + dict_name: dict.name + }; + try { + const result = await dictGetInfo(dataInfo) + var list = []; + var itemName = ''; + (result.dict_item_list || []).forEach((item) => { + if (item.is_default == '1') + itemName = item.name + list.push({ + text: item.value ? item.value : item.name, + value: item.name, + }); + }); + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + if (itemName) { + formItem.value = itemName; + formModel[formItem.fieldId] = itemName; + } + formItem.dict = list; + } catch (ex) { + // console.log(ex); + uni.showModal({ + title: this.translateSys("error") + "3", + content: ex.errMsg, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + } + + }, + async loadFormData(objAttr) { + let formData + if (this.objId) { + let info = await dataObjInfo({ + class_id: this.clsId, + obj_id: this.objId, + }); + formData = {}; + formData["id"] = info.id; + formData["state"] = info.state; + info.attr_list.forEach(({ + name, + value + }) => { + formData[name] = value; + }); + } else if (objAttr) { + formData = {}; + Object.keys(objAttr).forEach((attr) => { + let value = objAttr[attr]; + formData[attr] = value; + }); + } + //浼犲叆鍙傛暟鍊�+ if (formData) { + if (this.head_styledef?.form) { + const items = this.head_styledef?.form?.items || [] + const model = this.head_styledef?.form?.model || {} + Object.assign(model, formData); + items.forEach(async (ele, index) => { + if (ele.name != "Layout") { + let value = formData[ele.fieldId] + if (value) + ele.value = value + + } else { + ele.setting.colList.forEach(async (col) => { + if (col) { + let value = formData[col.fieldId] + if (value) + col.value = value + } + }); + } + }) + this.$data.head_styledef.form.model = model + this.$data.head_styledef.form.items = items + } + } + }, + async loadInitialEvent() { + try { + if (this.initialEvent.id) { + let obj_attr = this.head_styledef.form.model; + let inputParam = { + id: "", + attrs: Object.keys(obj_attr).map((a) => ({ + attr: a, + value: obj_attr[a], + })), + }; + let input_param = Base64.encode(JSON.stringify(inputParam)); + let global_attr = Base64.encode(JSON.stringify(this.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + let data_json = Base64.encode(JSON.stringify(this.data_json)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + let ext_info = Base64.encode(JSON.stringify(this.ext_info)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + const result = await runCustomEvent({ + ed_type: 0, + class_id: this.clsId, + event_id: this.initialEvent.id, + data_obj_id: this.objId, + obj_attr, + input_param, + global_attr, + data_json, + ext_info + }) + if (result.ret != 0) { + var tip = result.err_info ? typeof result + .err_info == 'string' ? result + .err_info : result.err_info.join('<br/>') : + ''; + if (result.ret == 801) { + if (this.param.Only_Script_Error) { + let pos = tip.indexOf("锛�); + if (pos > -1) tip = tip.substring(pos + + 1); + } + uni.showModal({ + title: this.translateSys( + "tip"), + content: tip, + showCancel: false, + confirmText: this.translateSys( + "cancel") + }); + } else uni.showModal({ + title: this.translateSys('tip'), + content: tip + ',' + this + .translateSys('tip') + ':' + + result + .ret, + showCancel: false, + confirmText: this.translateSys( + "cancel") + }); + return false; + } else { + var tip = result.info ? typeof result.info == + 'string' ? result.info : + result.info.join('<br/>') : ''; + if (tip) uni.showModal({ + title: this.translateSys('tip'), + content: tip, + showCancel: false, + confirmText: this.translateSys( + "cancel") + }); + + if (result.result_type == 0 && result.action) { + result.action.forEach(item => { + + if (item.action_type == + "set_dlg_current_edit_attr" + ) { + + if ($this + .focusOldFieldId == + item.value) { + $this.setData({ + focusFieldId: "" + }) + } else { + $this.setData({ + focusFieldId: $this + .focusOldFieldId + }) + } + $this.$nextTick(() => { + $this.setData({ + focusFieldId: item + .value + }) + }); + } else if (item.action_type == + "set_dlg_attr") { + // value = {"attr":"xxx", "value":"xxx"} + var data = item.value; + $this.setFormValues(data) + } + }); + } else { + + if (result.info) { + uni.showModal({ + title: this.translateSys( + "error") + "4.3", + content: result.info, + showCancel: false, + confirmText: this + .translateSys("cancel") + }); + } + } + + } + + } + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: $this.translateSys('tip') + "2", + content: exStr, + showCancel: false, + confirmText: $this.translateSys("cancel") + }); + } + }, + onClick(item) { + this.focusFieldId = item.fieldId + }, + ontap(item) { //鎵爜鍔熻兘 + // var $ele = e; + //console.log(e.target) + this.focusOldFieldId = item.fieldId + getApp().onScan((result) => { + console.log(result.decodedata); + item.value = result.decodedata; + var $this = this; + if (item.oldvalue != item.value && item.value.trim() != "") { + item.oldvalue = item.value; + var attr = item.fieldId; + this.head_styledef.form.model[attr] = item.value; + var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+ var onSuffixClickCallbackEvent = item.bind + .onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�+ var onSuffixClickEvent = item.bind + .onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�+ var isflag = false; + + if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+ $this.onChange(onChangeEvent); + } + if (item.value) { //绗竴涓緭鍏ユ涓嶄负绌�+ //鍒濆鍖栵紝涓嬩釜杈撳叆妗唂ocus灞炴� + var findd = false + for (let i in $this.head_styledef.form.items) { + const ele = $this.head_styledef.form.items[i] + + if (ele.name != "Layout") { + if (ele.name == 'Input' || ele.name == + 'InputNumber') { + if (attr == ele.fieldId) { + findd = true + } else { + if (findd) { + $this.setData({ + focusFieldId: ele.fieldId + }) + break + } + + } + + } + } else { + if (findd) { + let curIndex = ele.setting.colList.findIndex(( + col, index2, arr) => { + return (col.name == 'Input' || col + .name == 'InputNumber'); + }) + if (curIndex > -1) { + $this.setData({ + focusFieldId: ele.setting + .colList[curIndex] + .fieldId + }) + break + } + + } else { + let curIndex = ele.setting.colList.findIndex(( + col, index2, arr) => { + return attr == col.fieldId; + }) + if (curIndex > -1) { + findd = true + let curIndex2 = ele.setting.colList + .findIndex((col, index2, arr) => { + return (col.name == 'Input' || + col.name == + 'InputNumber') && + index2 > + curIndex; + }) + if (curIndex2 > -1) { + $this.setData({ + focusFieldId: ele.setting + .colList[curIndex] + .fieldId + }) + break + } + } + } + + } + } + } + + } + }) + }, + + onEnterChange(item) { //鍥炶溅锛岀偣鍑绘寜閽紝鍙栨秷鑺傜偣浜嬩欢 + console.log(item); + if (item.oldvalue != item.value && item.value.trim() != "") { + item.oldvalue = item.value; + var attr = item.fieldId; + this.head_styledef.form.model[attr] = item.value; + var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+ + if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+ this.onChange(onChangeEvent); + } + + } + }, + onCheckBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || [] + const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0] + if (item?.setting?.colList) { + const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0] + if (col) { + col.value = values + let attr = col.fieldId; + this.head_styledef.form.model[attr] = col.value; + var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+ this.onChange(onChangeEvent); + } + return + } + } else { + if (item) { + item.value = values + let attr = item.fieldId; + this.head_styledef.form.model[attr] = item.value; + var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+ this.onChange(onChangeEvent); + } + } + } + + }, + onRadioBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || "" + const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0] + if (item?.setting?.colList) { + const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0] + if (col) { + col.value = values + let attr = col.fieldId; + this.head_styledef.form.model[attr] = col.value; + var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+ this.onChange(onChangeEvent); + } + return + } + } else { + if (item) { + item.value = values + let attr = item.fieldId; + this.head_styledef.form.model[attr] = item.value; + var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+ this.onChange(onChangeEvent); + } + } + + } + + }, + classAttr_extButton(item) { + var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�+ var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�+ + if (!onSuffixClickCallbackEvent.id) { + uni.showModal({ + title: this.translateSys("tip"), + content: this.translate('icon_click_callback_empty'), + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return; + } + if (!onSuffixClickEvent.id) { + uni.showModal({ + title: this.translateSys("tip"), + content: this.translate('icon_click_event_empty'), + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return; + } + this.$data.popupType = 'right' + // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� + this.$refs.popup.open(this.popupType); + + this.dataObjRunCustomEvent_Return(onSuffixClickCallbackEvent.id, '', onSuffixClickEvent.id, + item); + }, + + // 鍐呭鍙樺寲鍚庝簨浠�+ async onChange(event) { + try { + if (event.id) { + //鑾峰彇琛ㄥご灞炴� + var head_attr = {}; + this.head_styledef.form.items.forEach(item => { + if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+ item.setting.colList.forEach(cols => { + if (cols != null) head_attr[cols + .fieldId] = cols.value; + }); + } else + head_attr[item.fieldId] = item.value; + }); + var obj_attr = this.head_styledef.form.model; + // console.log(obj_attr); + var input_param = Base64.encode( + JSON.stringify( + Object.keys(head_attr).map((a) => ({ + attr: a, + value: head_attr[a] || "", + })) + ) + ); + var $this = this; + + let global_attr = Base64.encode(JSON.stringify(this.global_attr)) + let data_json = Base64.encode(JSON.stringify(this.data_json)) + let ext_info = Base64.encode(JSON.stringify(this.ext_info)) + var dataInfo = { + ed_type: 0, + start_transaction: true, + class_id: this.clsId, + class_name: '', + event_id: event.id, + event_name: '', + data_obj_id: '', + obj_attr: obj_attr, + prj_id: '', + ref_cls_id: '', + rel_obj_id: '', + user_login: '', + data_json, + compose_info: '', + ext_info, + global_attr, + input_param: input_param, + }; + runCustomEvent(dataInfo).then(result => { + console.log(result); + + if (result.ret != 0) { + var tip = result.err_info ? typeof result + .err_info == 'string' ? result + .err_info : result.err_info.join('<br/>') : + ''; + if (result.ret == 801) { + if (this.param.Only_Script_Error) { + let pos = tip.indexOf("锛�); + if (pos > -1) tip = tip.substring(pos + + 1); + } + uni.showModal({ + title: this.translateSys( + "tip"), + content: tip, + showCancel: false, + confirmText: this.translateSys( + "cancel") + }); + } else uni.showModal({ + title: this.translateSys('tip'), + content: tip + ',' + this + .translateSys('tip') + ':' + + result + .ret, + showCancel: false, + confirmText: this.translateSys( + "cancel") + }); + return false; + } else { + var tip = result.info ? typeof result.info == + 'string' ? result.info : + result.info.join('<br/>') : ''; + if (tip) uni.showModal({ + title: this.translateSys('tip'), + content: tip, + showCancel: false, + confirmText: this.translateSys( + "cancel") + }); + + if (result.result_type == 0 && result.action) { + result.action.forEach(item => { + + if (item.action_type == + "set_dlg_current_edit_attr" + ) { + + if ($this + .focusOldFieldId == + item.value) { + $this.setData({ + focusFieldId: "" + }) + } else { + $this.setData({ + focusFieldId: $this + .focusOldFieldId + }) + } + $this.$nextTick(() => { + $this.setData({ + focusFieldId: item + .value + }) + }); + } else if (item.action_type == + "set_dlg_attr") { + // value = {"attr":"xxx", "value":"xxx"} + var data = item.value; + $this.setFormValues(data) + } + }); + } else { + + if (result.info) { + uni.showModal({ + title: this.translateSys( + "error") + "4.3", + content: result.info, + showCancel: false, + confirmText: this + .translateSys("cancel") + }); + } + } + + } + + }).catch(ex => { + // console.log(ex); + let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex + uni.showModal({ + title: this.translateSys("error") + "4.1", + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + }); + } + } catch (ex) { + var tip = typeof ex == "string" ? ex : ex.message; + uni.showModal({ + title: this.translateSys("error") + "4.2", + content: this.translate( + 'execute_after_change_event_failed') + this + .translateSys( + "comma") + + this.translate('reason') + this.translateSys("colon") + + tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + } + }, + + setFormValues(data) { + const head_styledef = this.head_styledef + if (JSON.stringify(data) == '{}') { + return; + } + head_styledef.form.items.forEach(async (ele, index) => { + if (ele.name != "Layout") { + let curIndex = data.findIndex((attr, index2, arr) => { + return attr.attr == ele.fieldId; + }) + if (curIndex > -1) { + const attr = data[curIndex] + if (ele.name == + 'Select' && + attr + .choice_list + ) { + const + dictItemList = []; + const + choiceList = + attr + .choice_list || []; + for (let d in + choiceList) { + const + val = + choiceList[ + d + ]; + dictItemList + .push({ + text: val, + value: val + }); + } + ele.dict = + dictItemList; + } + + ele.value = + attr + .value; + } + } else { + ele.setting + .colList + .forEach( + async ( + col + ) => { + if ( + col) { + let curIndex = data.findIndex(( + attr, index2, arr) => { + return attr.attr == col.fieldId; + }) + if (curIndex > -1) { + const attr = data[curIndex] + if (col.name == + 'Select' && + attr + .choice_list + ) { + const + dictItemList = []; + const + choiceList = + attr + .choice_list || []; + for (let d in + choiceList) { + const + val = + choiceList[ + d + ]; + dictItemList + .push({ + text: val, + value: val + }); + } + col.dict = + dictItemList; + } + + col.value = + attr + .value; + } + } + + }) + + } + }) + + this.setData({ + head_styledef: head_styledef + }) + }, + + + popupChange(e) { + console.log('褰撳墠妯″紡锛� + e.type + ',鐘舵�锛� + e.show); + }, + checkChange(e) { //寮规check閫夋嫨 + // console.log(e.target.dataset); + var index = e.target.dataset.index; + var ischeck = e.target.dataset.ischeck; + var data = this.$data.check_list.items; + // this.$data.check_list.items=[]; + if (this.$data.check_list.multiple_choice == "0") { //鍒ゆ柇鏃跺崟閫夎繕鏄閫�+ for (var i in data) { + data[i].check = false; + } + } + data[index].check = ischeck ? false : true; + this.$data.check_list.items = data; + + }, + popup_cancel(e) { //寮规鍙栨秷 + this.$refs.popup.close(); + }, + popup_sava(e) { //寮规纭畾 + var $this = this; + var items = $this.$data.check_list.items; + var data = []; + var name = ""; + for (var i = 0; i < items.length; i++) { + if (items[i].check == true) { + if (name) + name += ';'; + name += items[i].name; + data.push({ + id: items[i].id, + name: items[i].name + }); + } + } + if (!$this.$data.popupParam) { + uni.showModal({ + title: this.translateSys("tip"), + content: "popupParam涓虹┖锛�, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return; + } + if (data.length == 0) { + uni.showModal({ + title: this.translateSys("tip"), + content: this.translate("tip_no_select_data"), + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return; + } + let global_attr = Base64.encode(JSON.stringify(this.global_attr)) + let data_json = Base64.encode(JSON.stringify(this.data_json)) + let ext_info = Base64.encode(JSON.stringify(this.ext_info)) + var callback_eventid = $this.$data.popupParam.button_callback.trim(); + var info = { + eventid: callback_eventid, + edtype: "0", + projectid: '', + rclsid: '', + robjid: '', + userlogin: '', + clsid: $this.clsId, + objid: "", + attr: $this.$data.popupParam.req, + dataJson: data + } + $this.DataObjRunCustomEvent(info, $this.$data.popupParam.data_attr); + this.$refs.popup.close(); + }, + + async DataObjRunCustomEvent(info, data_attr) { + var $this = this; + var enviroment = { + 'function': '3000', // 鍔熻兘鐐圭紪鍙�+ cls_id: this.clsId, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+ 'button': 'top', // top/bottom + button_name: this.translateSys('add2'), + master: { + cls_id: this.clsId, // button=bottom鏃�master鐨刢ls_id + //obj_id: '' // button=bottom鏃�master鐨刼bj_id + } + }; + if (data_attr) { + enviroment.edit_dlg = { + type: 'small', //灏忕獥鍙�+ class_id: this.clsId, //褰撳墠鏁版嵁绫籭d + } + if (data_attr) { + enviroment.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠�+ name: data_attr.Name, //瀛楁灞炴� + text: data_attr.DispName, //鏄剧ず鏂囨湰 + group_name: data_attr.GroupName, //灞炴�缁�+ type: data_attr.Type, //瀛楁绫诲瀷 + readonly: data_attr.ReadOnly, //鏄惁鍙 + button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍�+ button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip + } + } + } + enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + var input_param = Base64.encode(JSON.stringify(info.attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + var global_attr = Base64.encode(JSON.stringify(this.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + if (info.dataJson) + info.dataJson = Base64.encode(JSON.stringify(info.dataJson)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + var obj_attr = {}; + info.attr.forEach(item => { + obj_attr[item.attr] = item.value; + }); + if (!info.eventid.includes('{')) info.eventid = '{' + info.eventid + '}'; + var dataInfo = { + ed_type: info.edtype, + start_transaction: true, + class_id: info.clsid, + class_name: '', + event_id: info.eventid, + event_name: '', + data_obj_id: info.objid, + obj_attr: obj_attr, + prj_id: info.projectid, + ref_cls_id: info.rclsid, + rel_obj_id: info.robjid, + user_login: info.userlogin, + data_json: info.dataJson, + compose_info: '', + ext_info: enviroment, + global_attr: global_attr, + input_param: input_param, + }; + console.log(dataInfo); + // return; + runCustomEvent(dataInfo).then(data => { + if (data.ret != 0) { + var tip = data.err_info ? typeof data.err_info == 'string' ? data + .err_info : + data + .err_info.join('<br/>') : ''; + if (data.ret == 801) { + if (this.param.Only_Script_Error) { + let pos = tip.indexOf("锛�); + if (pos > -1) tip = tip.substring(pos + 1); + } + uni.showModal({ + title: this.translateSys("tip"), + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + } else uni.showModal({ + title: this.translateSys("tip"), + content: tip + ',' + this.translateSys('tip') + ':' + data + .ret, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return false + } else { + var tip = data.info ? typeof data.info == 'string' ? data.info : data + .info + .join( + '<br/>') : ''; + if (tip) uni.showModal({ + title: this.translateSys("tip"), + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + + var actionlist = data.action; + if (actionlist) { + console.log(actionlist); + for (var i = 0; i < actionlist.length; i++) { + var action = actionlist[i]; + if (action.action_type == 'set_dlg_attr') { + var result = action.value; + $this.setFormValues(result) + } else if (action.action_type == 'set_dlg_attr_show') { + var result = action.value; + result.forEach(async (attr, key) => { + $this.$data.head_styledef.form.items + .forEach( + async (ele, + index) => { + //鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+ if (ele.name != 'Layout') { + if (ele.fieldId == attr + .attr) { + ele.show = attr + .show; + } + } else if (ele.name == + 'Layout') { + ele.setting.colList + .forEach( + col => { + if (col) { + if (col + .fieldId == + attr + .attr + ) { + col.show = + attr + .show; + } + } + }); + } + }); + }); + var head_styledef = JSON.parse(JSON.stringify($this.$data + .head_styledef)); + $this.$data.head_styledef = []; + $this.$data.head_styledef = head_styledef; + // console.log($this.$data.head_styledef); + } else if (action.action_type == 'set_global_attr') { + $this.$data.global_attr = action.value || []; + } else { + uni.showModal({ + title: this.translateSys("tip"), + content: this.translateSys( + "quotation_mark_left") + + action + .action_type + this.translateSys( + "quotation_mark_right") + this + .translate( + "tip_action_unprocessed"), + showCancel: false, + confirmText: this.translateSys("cancel") + }); + } + } + } + console.log($this.head_styledef); + if (data.result) { + var result = data.result; + for (var i = 0; i < result.length; i++) { + for (var c = 0; c < $this.$data.head_styledef.form.items + .length; c++) { + var attr = $this.$data.head_styledef.form.items[c]; + //鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+ if ($this.head_styledef.form.model[result[i].attr] == + undefined) { + $this.head_styledef.form.model[result[i].attr] = + result[i] + .value; + } + //鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+ if (attr.name != 'Layout') { + if (attr.fieldId == result[i].attr) { + attr.value = ''; + attr.oldvalue = ''; + attr.value = result[i].value; + attr.oldvalue = result[i].value; + $this.head_styledef.form.model[attr.fieldId] = + result[i] + .value; + } + } else if (attr.name == 'Layout') { + attr.setting.colList.forEach(col => { + if (col) { + if (col.fieldId == result[i].attr) { + col.value = ''; + col.oldvalue = ''; + col.value = result[i].value; + col.oldvalue = result[i].value; + $this.head_styledef.form.model[col + .fieldId] = + result[i].value; + } + } + }); + } + } + + var length = 0; + if (!$this.$data.refdatastore.filter(function(s) { + return result[i].attr == s.attr + }).length) { + length = 1; + $this.$data.refdatastore.push(result[i]); + } + if (length == 0) { + for (var j = 0; j < $this.$data.refdatastore.length; j++) { + if ($this.$data.refdatastore[j].attr == result[i] + .attr) { + $this.$data.refdatastore[j].value = result[i] + .value; + } + } + } + } + } + } + + }).catch(ex => { + // console.log(ex); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: this.translateSys("error") + "3.1", + content: exStr, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + }); + }, + dataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) { + console.log("dataObjRunCustomEvent_Return", eventid, data_attr, button_callback) + const $this = this + var enviroment = { + 'function': '3000', // 鍔熻兘鐐圭紪鍙�+ cls_id: $this.clsId, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+ 'button': 'top', // top/bottom + button_name: $this.translateSys('add2'), + master: { + cls_id: $this.clsId, // button=bottom鏃�master鐨刢ls_id + //obj_id: '' // button=bottom鏃�master鐨刼bj_id + } + }; + var obj_attr = $this.head_styledef.form.model; + console.log(obj_attr); + var req = Object.keys(obj_attr).map((a) => ({ + attr: a, + value: obj_attr[a] || "", + })); + if ($this.refdatastore.length > 0) { + for (var i = 0; i < $this.refdatastore.length; i++) { + if (!req.filter(function(s) { + return $this.refdatastore[i].attr == s.name + }).length) { + req.push({ + 'attr': $this.refdatastore[i].attr, + 'value': $this.refdatastore[i].value + }); + } + } + } + let global_attr = Base64.encode(JSON.stringify(this.global_attr)) + let data_json = Base64.encode(JSON.stringify(this.data_json)) + let ext_info = Base64.encode(JSON.stringify(this.ext_info)) + var obj_attr = {}; + req.forEach(item2 => { + obj_attr[item2.attr] = item2.value; + }); + let input_param = Base64.encode( + JSON.stringify( + Object.keys(obj_attr).map((a) => ({ + attr: a, + value: obj_attr[a] || "", + })) + ) + ); + + if (!eventid.includes('{')) eventid = '{' + eventid + '}'; + var dataInfo = { + ed_type: "0", + start_transaction: true, + class_id: $this.clsId, + class_name: '', + event_id: eventid, + event_name: '', + data_obj_id: '', + obj_attr: obj_attr, + prj_id: '', + ref_cls_id: '', + rel_obj_id: '', + user_login: '', + data_json, + compose_info: '', + ext_info, + global_attr, + input_param: input_param, + }; + console.log(dataInfo); + // return; + runCustomEvent(dataInfo).then(data => { + if (data.ret != 0) { + var tip = data.err_info ? typeof data.err_info == 'string' ? data + .err_info : + data + .err_info.join('<br/>') : ''; + if (data.ret == 801) { + if ($this.param.Only_Script_Error) { + let pos = tip.indexOf("锛�); + if (pos > -1) tip = tip.substring(pos + 1); + } + uni.showModal({ + title: $this.translateSys("tip"), + content: tip, + showCancel: false, + confirmText: $this.translateSys("cancel") + }); + } else uni.showModal({ + title: $this.translateSys("tip"), + content: tip + ',' + $this.translateSys('tip') + ':' + data + .ret, + showCancel: false, + confirmText: $this.translateSys("cancel") + }); + return false + } else { + var tip = data.info ? typeof data.info == 'string' ? data.info : data + .info + .join( + '<br/>') : ''; + if (tip) uni.showModal({ + title: $this.translateSys("tip"), + content: tip, + showCancel: false, + confirmText: $this.translateSys("cancel") + }); + + if (data != "") { + var actions = data.action; + if (actions) { + for (var i = 0; i < actions.length; i++) { + var action = actions[i]; + console.log(action) + var val = action.value; + var enviroment = JSON.stringify(enviroment); + + if (action.action_type == 'open_panel') { + var d = dialog({ + title: '<i class="ace-icon fa fa-info-circle"></i> ' + + $this.translateSys("tip"), + content: $this.translateSys( + "quotation_mark_left") + + action + .action_type + $this.translateSys( + "quotation_mark_right") + $this + .translate( + "tip_action_unprocessed") + }); + d.show(); + } else if (action.action_type == 'open_select_userdlg') { + var style = val.style; + // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : '' + var param = { + item: item, + button_callback: button_callback, + req: req, + data_attr: data_attr + } + uni.navigateTo({ + url: '../selpsn/index?mulit=false¶m=' + + JSON + .stringify( + param), + events: { + AddPer(data, param) { + // console.log(param); + console.log(data); + var callback_eventid = param + .button_callback + .trim(); + var info = { + eventid: callback_eventid, + edtype: "0", + projectid: '', + rclsid: '', + robjid: '', + userlogin: '', + clsid: $this.clsId, + objid: "", + attr: param.req, + inputparameter: data, + dataJson: [], + } + $this.DataObjRunCustomEvent(info, + param + .data_attr); + } + } + }); + } else if (action.action_type == 'open_data_query_dlg') { + var d = dialog({ + title: '<i class="ace-icon fa fa-info-circle"></i> ' + + $this.translateSys("tip"), + content: $this.translateSys( + "quotation_mark_left") + + action + .action_type + $this.translateSys( + "quotation_mark_right") + $this + .translate( + "tip_action_unprocessed") + }); + d.show(); + } else if (action.action_type == 'open_common_dlg') { + + if (val.common_dlg_id == 'check_list') { + $this.setData({ + check_list: val.config + }) + if (val.config.appear_style == 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�+ $this.setData({ + popupType: "right" + }) + else + $this.setData({ + popupType: "center" + }) + // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� + $this.$refs.popup.open($this.popupType); + var popupParam = { + item: item, + button_callback: button_callback, + req: req, + data_attr: data_attr + } + $this.setData({ + popupParam: popupParam + }) + } + } else if (action.action_type == 'open_project_query_dlg') { + //console.log(action.value.select_range); + //console.log(action.value.mulit_select); + var priRel = '-1'; + if (action.value.select_range == '鍏ㄩ儴鐩稿叧') + priRel = '0'; + else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰') + priRel = '1'; + else if (action.value.select_range == '鎴戝垱寤虹殑') + priRel = '2'; + else if (action.value.select_range == '鎴戝弬涓庣殑' || action + .value + .select_range == '鎴戝弬鍔犵殑') + priRel = '3'; + else if (action.value.select_range == '鎴戝叧娉ㄧ殑') + priRel = '4'; + else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰') + priRel = '5'; + var param_ = { + item: item, + button_callback: button_callback, + req: req + } + uni.navigateTo({ + url: '../selPrj/index?relation=' + priRel + + '¶m=' + + JSON.stringify(param_), + events: { + AddPer(data, param) { + var attr = param.item.fieldId; + $this.head_styledef.form.model[ + attr] = + data[0].ID + + ';' + data[0].Name; + + // $this.$data.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name; + // $this.$data.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name; + var callback_eventid = param + .button_callback + .trim(); + if (callback_eventid) { + var info = { + eventid: callback_eventid, + edtype: "2", + projectid: data[0].ID, + rclsid: "", + robjid: "", + userlogin: "", + clsid: $this.clsId, + objid: "", + attr: param.req, + dataJson: [], + } + + $this.DataObjRunCustomEvent( + info); + } + } + } + }); + } else { + uni.showModal({ + title: $this.translateSys("tip"), + content: $this.translateSys( + "quotation_mark_left") + + action.action_type + $this.translateSys( + "quotation_mark_right") + $this + .translate( + "tip_action_unprocessed"), + showCancel: false, + confirmText: $this.translateSys("cancel") + }); + } + } + } + } else { + uni.showModal({ + title: $this.translateSys('tip') + "5.2", + content: $this.translateSys("quotation_mark_left") + + "before_click_button" + $this.translateSys( + "quotation_mark_right") + $this.translateSys( + "comma") + 'event_id' + eventid, + showCancel: false, + confirmText: $this.translateSys("cancel") + }); + } + } + + }).catch(ex => { + // console.log(ex); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: $this.translateSys('tip') + "5.1", + content: exStr, + showCancel: false, + confirmText: $this.translateSys("cancel") + }); + }); + }, + //纭畾 + async ok() { + try { + uni.showLoading({ + title: this.translateSys("loading"), + mask: true + }); + this.okLoading = true + var obj_attr = this.head_styledef.form.model || {}; + console.log(obj_attr) + let ret = await this.sava(); + this.okLoading = false + uni.hideLoading(); + if (!ret) return; + obj_attr.id = this.objId || ""; + const eventChannel = this.$scope.eventChannel; + // const eventChannel = this.getOpenerEventChannel(); + eventChannel.emit(this.type, obj_attr); + + uni.navigateBack() + } catch (ex) { + return false; + } + }, + async sava() { + try { + if (this.objId) { + + let ret = await this.beforeOK(); + if (!ret) return false; + if (this.afterOKEvent?.id) { // 鐐瑰嚮纭畾鎸夐挳鍚�+ ret = await this.afterOK(); + if (!ret) return false; + + } else { + ret = await this.update(); + if (!ret) return false; + } + + } else { + if (this.editMode) { + return true + } else { + let ret = await this.beforeOK(); + if (!ret) return false; + if (this.afterOKEvent?.id) { // 鐐瑰嚮纭畾鎸夐挳鍚�+ ret = await this.afterOK(); + if (!ret) return false; + } else { + ret = await this.add(); + if (!ret) return false; + } + } + } + return true; + } catch (ex) { + return false; + } + + }, + async beforeOK() { + + try { + if (!this.beforeOKEvent.id) return true; + + + const $this = this + var obj_attr = this.head_styledef.form.model; + // console.log(obj_attr); + var input_param = { + id: "", + attrs: Object.keys(obj_attr).map((a) => ({ + attr: a, + value: obj_attr[a], + })), + }; + let global_attr = Base64.encode(JSON.stringify(this.global_attr)) + let data_json = Base64.encode(JSON.stringify(this.data_json)) + let ext_info = Base64.encode(JSON.stringify(this.ext_info)) + var dataInfo = { + ed_type: "0", + start_transaction: true, + class_id: this.clsId, + class_name: '', + event_id: this.beforeOKEvent?.id, + event_name: '', + data_obj_id: this.objId, + obj_attr: obj_attr, + prj_id: '', + ref_cls_id: '', + rel_obj_id: '', + user_login: '', + global_attr, + data_json, + ext_info, + compose_info: '', + input_param: Base64.encode(JSON.stringify(input_param)), + }; + await runCustomEvent(dataInfo) + return true + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: this.translateSys('tip') + "7.1", + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return false + } + + }, + + async add() { + try { + + var obj_attr = this.head_styledef.form.model || {}; + + var dataInfo = { + class_id: this.clsId, + obj_attr: obj_attr + }; + await dataObjCreate(dataInfo) + return true + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: this.translateSys("tip") + "6.1", + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return false + } + + }, + async update() { + try { + var obj_attr = this.head_styledef.form.model || {}; + + var dataInfo = { + class_id: this.clsId, + obj_id: this.objId, + obj_attr: obj_attr + }; + await dataObjUpdate(dataInfo) + return true + + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: this.translateSys("tip") + "6.2", + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return false + } + + }, + async afterOK() { + + try { + var obj_attr = this.head_styledef.form.model ||{} + // console.log(obj_attr); + var input_param = { + id: "", + attrs: Object.keys(obj_attr).map((a) => ({ + attr: a, + value: obj_attr[a], + })), + }; + let global_attr = Base64.encode(JSON.stringify(this.global_attr)) + let data_json = Base64.encode(JSON.stringify(this.data_json)) + let ext_info = Base64.encode(JSON.stringify(this.ext_info)) + var dataInfo = { + ed_type: "0", + start_transaction: true, + class_id: this.clsId, + class_name: '', + event_id: this.afterOKEvent?.id, + event_name: '', + data_obj_id: this.objId, + obj_attr: obj_attr, + prj_id: '', + ref_cls_id: '', + rel_obj_id: '', + user_login: '', + global_attr, + data_json, + ext_info, + compose_info: '', + input_param: Base64.encode(JSON.stringify(input_param)), + }; + await runCustomEvent(dataInfo) + return true + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: this.translateSys('tip') + "7.2", + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return false + } + + }, + + async cancel(e) { //鍙栨秷 + try { + if (!this.objId) { + if (this.editMode) { + uni.navigateBack({ + delta: 1 //杩斿洖灞傛暟锛�鍒欎笂涓婇〉 + }); + return + } + } + + let ret = await this.beforeCancel(); + if (!ret) return false; + + uni.navigateBack({ + delta: 1 //杩斿洖灞傛暟锛�鍒欎笂涓婇〉 + }); + await this.afterCancel(); + } catch (ex) {} + }, + async beforeCancel() { + try { + if (!this.beforeCancelEvent.id) return true; + var obj_attr = this.head_styledef.form.model; + + let inputParam = { + id: "", + attrs: Object.keys(obj_attr).map((a) => ({ + attr: a, + value: obj_attr[a], + })), + }; + let input_param = Base64.encode(JSON.stringify(inputParam)); + let global_attr = Base64.encode(JSON.stringify(this.global_attr)) + let data_json = Base64.encode(JSON.stringify(this.data_json)) + let ext_info = Base64.encode(JSON.stringify(this.ext_info)) + + await runCustomEvent({ + ed_type: 0, + start_transaction: true, + class_id: this.clsId, + event_id: this.beforeCancelEvent.id, + data_obj_id: this.objId, + obj_attr, + input_param, + global_attr, + data_json, + ext_info, + }) + return true + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: this.translateSys("tip") + "8.1", + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return false + } + }, + async afterCancel() { + try { + if (!this.afterCancelEvent.id) return true; + var obj_attr = this.head_styledef.form.model; + let inputParam = { + id: "", + attrs: Object.keys(obj_attr).map((a) => ({ + attr: a, + value: obj_attr[a], + })), + }; + let input_param = Base64.encode(JSON.stringify(inputParam)); + let global_attr = Base64.encode(JSON.stringify(this.global_attr)) + let data_json = Base64.encode(JSON.stringify(this.data_json)) + let ext_info = Base64.encode(JSON.stringify(this.ext_info)) + + await runCustomEvent({ + ed_type: 0, + start_transaction: true, + class_id: this.clsId, + event_id: this.afterCancelEvent.id, + data_obj_id: this.objId, + obj_attr, + input_param, + global_attr, + data_json, + ext_info, + }) + return true + } catch (ex) { + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + uni.showModal({ + title: this.translateSys("tip") + "8.2", + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return false + } + }, + translate(t) { + if (typeof this.$t == "function") return this.$t(`page.${t}`) + else return t; + }, + translateSys(t) { + if (typeof this.$t == "function") return this.$t(`sys.${t}`) + else return t; + }, + }, + }; +</script> + +<style lang="scss"> + .uni-page-modal-form { + + display: flex; + height: calc(100vh - 30rpx); + width: 720rpx; + flex-direction: column !important; + padding: 15rpx; + + .view-header { + display: flex; + width: 100%; + flex-direction: column; + } + + .v-head-style { + width: 98%; + + .uni-forms-item { + margin-bottom: 11rpx; + } + + .input-wrapper { + border: 1px solid #d5d5d5; + width: 100%; + display: flex; + flex-direction: row; + + .uni-input { + flex: 1; + padding: 12rpx 8rpx; + color: #2d8cf0; + // height: 40rpx; + // line-height: 40rpx; + } + + .uni-icon { + padding: 8rpx; + font-size: 32rpx; + color: rgb(192, 196, 204); + } + } + + .input-wrapper:hover { + border: 1px solid rgb(41, 121, 255); + } + } + + .view-content { + display: flex; + flex: 1; + width: calc(100% - 30rpx); + padding: 10rpx 15rpx; + flex-direction: column; + overflow-y: auto; + + } + + .view-bottom { + // display: flex; + // flex-direction: row; + display: block; + width: calc(100% - 30rpx); + padding: 10rpx 15rpx 20rpx 15rpx; + + .btn_add { + width: 45%; + margin: 0 10rpx; + // padding: 5rpx 10rpx; + background: #4D6AF4; + font-size: 38rpx; + border: none; + color: #fff; + float: left; + display: inline-block; + } + + .btn_disabled { + background-color: #ddd; + color: #888; + } + + .btn_cancel { + width: 45%; + margin: 0 10rpx; + background: #fff; + border: none; + color: #000; + font-size: 38rpx; + float: right; + display: inline-block; + } + + } + + + + + [nvue] uni-view { + position: relative; + border: 0 solid #000; + box-sizing: border-box; + } + + .uni-icon { + /* border: 1px solid red; */ + width: 8%; + font-family: uniicons; + font-size: 40rpx; + font-weight: 400; + font-style: normal; + /* width: 48rpx; */ + height: 48rpx; + line-height: 48rpx; + color: #2d8cf0; + cursor: pointer; + display: inline-block; + vertical-align: 18rpx; + } + + + + .input-disabled { + background-color: #f3f3f3 !important; + } + + + ::v-deep .uni-row { + margin-bottom: 0px; + } + + .popup-header { + font-size: 42rpx; + font-weight: bold; + margin: 20rpx 20rpx 0px 20rpx; + } + + .view_popup_CheckList { + margin-bottom: 20rpx; + } + + .popup-footer { + float: right; + position: absolute; + bottom: 0; + right: 20rpx; + } + + button.btn_popup_add { + width: 180rpx; + margin-top: 50rpx; + margin-right: 20rpx; + padding: 15rpx; + line-height: 1.5; + background: #27A6E1; + border: none; + color: #fff; + font-size: 38rpx; + font-weight: bold; + /* float: left; */ + display: inline-block; + } + + button.btn_popup_cancel { + width: 180rpx; + margin-top: 50rpx; + padding: 15rpx; + line-height: 1.5; + background: #27A6E1; + border: none; + color: #fff; + font-size: 38rpx; + font-weight: bold; + /* float: right; */ + display: inline-block; + } + + + } +</style> \ No newline at end of file -- Gitblit v1.9.1