From 0ecc402885f332b21923bb12183dc072306f2b39 Mon Sep 17 00:00:00 2001 From: cuiqian2004 <cuiqian2004@163.com> Date: 星期五, 21 三月 2025 18:36:15 +0800 Subject: [PATCH] vue3 --- pages/modal/form/index.vue | 146 ++++++++++++++++-------------------------------- 1 files changed, 50 insertions(+), 96 deletions(-) diff --git a/pages/modal/form/index.vue b/pages/modal/form/index.vue index e50b6c3..1d2c903 100644 --- a/pages/modal/form/index.vue +++ b/pages/modal/form/index.vue @@ -3,11 +3,11 @@ <view class="view-content"> <!-- 琛ㄥご鏍峰紡 --> <OIForm ref="refBaseForm" class="v-head-style" :form="head_styledef.form" :focusId="focusFieldId" - @click="onClick" @focus="ontap" @change="onEnterChange" @click-prefix="classAttr_extButton" - @click-suffix="classAttr_extButton"></OIForm> + @on-click="onClick" @on-focus="ontap" @on-change="onEnterChange" @on-click-prefix="classAttr_extButton" + @on-click-suffix="classAttr_extButton"></OIForm> </view> <view class="view-bottom"> - <button type="primary" @tap="ok" class="btn_add" :class="okLoading?'btn_disabled':''" + <button type="primary" @tap="onClickOk" class="btn_add" :class="okLoading?'btn_disabled':''" :disabled="okLoading">{{translateSys('ok')}}</button> <button type="default" @tap="cancel" class="btn_cancel">{{translateSys('cancel')}}</button> @@ -41,7 +41,9 @@ </template> <script> - import Base64 from '../../../components/js-base64/base64.js' + import { + Base64 + } from '@/js/Base64.js'; import { dictGetInfo } from "@/api/mobox.js" @@ -54,12 +56,11 @@ } from "@/api/data.js" import dayjs from "dayjs"; import OIForm from '@/components/oi-form/index.vue' + import buttonClickMixin from '@/mixins/button-click.js'; export default { name: "PageModalForm", - modules: { - Base64, - }, + mixins: [buttonClickMixin], components: { OIForm }, @@ -83,7 +84,6 @@ global_attr: [], ext_info: {}, data_json: [], - refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id} popupType: "center", check_list: {}, popupParam: {}, @@ -624,8 +624,12 @@ let newVal = item.value if (typeof item.value == "string") { newVal = item.value.trim() - if (!newVal) + if (!newVal) { + item.oldvalue = newVal; + var attr = item.fieldId; + this.head_styledef.form.model[attr] = newVal; return + } } if (item.oldvalue != newVal) { item.oldvalue = newVal; @@ -660,7 +664,7 @@ }); return; } - this.$data.popupType = 'right' + this.popupType = 'right' // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� this.$refs.popup.open(this.popupType); @@ -910,15 +914,15 @@ // 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") { //鍒ゆ柇鏃跺崟閫夎繕鏄閫�+ var data = this.check_list.items; + // this.check_list.items=[]; + if (this.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; + this.check_list.items = data; }, popup_cancel(e) { //寮规鍙栨秷 @@ -926,7 +930,7 @@ }, popup_sava(e) { //寮规纭畾 var $this = this; - var items = $this.$data.check_list.items; + var items = $this.check_list.items; var data = []; var name = ""; for (var i = 0; i < items.length; i++) { @@ -940,7 +944,7 @@ }); } } - if (!$this.$data.popupParam) { + if (!$this.popupParam) { uni.showModal({ title: this.translateSys("tip"), content: "popupParam涓虹┖锛�, @@ -961,7 +965,7 @@ 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 callback_eventid = $this.popupParam.button_callback.trim(); var info = { eventid: callback_eventid, edtype: "0", @@ -971,10 +975,10 @@ userlogin: '', clsid: $this.clsId, objid: "", - attr: $this.$data.popupParam.req, + attr: $this.popupParam.req, dataJson: data } - $this.DataObjRunCustomEvent(info, $this.$data.popupParam.data_attr); + $this.DataObjRunCustomEvent(info, $this.popupParam.data_attr); this.$refs.popup.close(); }, @@ -1086,7 +1090,7 @@ } else if (action.action_type == 'set_dlg_attr_show') { var result = action.value; result.forEach(async (attr, key) => { - $this.$data.head_styledef.form.items + $this.head_styledef.form.items .forEach( async (ele, index) => { @@ -1119,11 +1123,11 @@ }); 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); + $this.head_styledef = []; + $this.head_styledef = head_styledef; + // console.log($this.head_styledef); } else if (action.action_type == 'set_global_attr') { - $this.$data.global_attr = action.value || []; + $this.global_attr = action.value || []; } else { uni.showModal({ title: this.translateSys("tip"), @@ -1142,63 +1146,7 @@ } 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; - } - } - } - } + $this.setFormValues(data.result) } } @@ -1235,18 +1183,6 @@ 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)) @@ -1458,8 +1394,8 @@ 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; + // $this.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name; + // $this.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name; var callback_eventid = param .button_callback .trim(); @@ -1525,6 +1461,12 @@ }); }); }, + onClickOK() { + this.handleButtonClick(async (done) => { + await this.ok() + done(); // 閲嶇疆鐘舵� + }); + }, //纭畾 async ok() { try { @@ -1536,11 +1478,13 @@ 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; + console.log(this.$scope) + const eventChannel = this.getOpenerEventChannel(); // const eventChannel = this.getOpenerEventChannel(); eventChannel.emit(this.type, obj_attr); @@ -1581,6 +1525,8 @@ } return true; } catch (ex) { + console.log("sava", ex) + this.showError(ex) return false; } @@ -1861,6 +1807,14 @@ return false } }, + showError(ex) { + uni.showModal({ + title: this.translateSys('error'), + content: typeof ex == "string" ? ex : typeof ex.errMsg == "string" ? ex.errMsg : "", + showCancel: false, + confirmText: this.translateSys('cancel') + }) + }, translate(t) { if (typeof this.$t == "function") return this.$t( `page.${t}`) -- Gitblit v1.9.1