From 625badef071d0931b3868b2ba672d51ce2cc5b91 Mon Sep 17 00:00:00 2001 From: cuiqian2004 <cuiqian2004@163.com> Date: 星期三, 19 二月 2025 10:01:20 +0800 Subject: [PATCH] action set_subtable_page_row 处理 condition --- locale/es.json | 7 pages/modal/3018_2.vue | 75 +++ pages/modal/3200_view.vue | 43 +- pages/modal/5602.vue | 158 +++++++- pages/modal/5601.vue | 342 +++++++++++++++--- pages/modal/3037_2.vue | 80 +++- locale/zh-Hans.json | 7 App.vue | 10 locale/en.json | 4 locale/zh-Hant.json | 11 What's New.txt | 2 pages/modal/3200.vue | 66 ++- manifest.json | 10 pages/modal/5600.vue | 221 +++++++++--- pages/login/index.vue | 22 + 15 files changed, 820 insertions(+), 238 deletions(-) diff --git a/App.vue b/App.vue index 514d2de..9c61ef0 100644 --- a/App.vue +++ b/App.vue @@ -22,6 +22,16 @@ this.initscan(); }, onShow: function() { + const args = plus.runtime.arguments || "" + if(args) + { + uni.showModal({ + title: "App鍙傛暟", + content: args, + showCancel: false, + confirmText:"cancel" + }); + } console.log('App Show') }, onHide: function() { diff --git "a/What\047s New.txt" "b/What\047s New.txt" index e61cc1d..b6850bf 100644 --- "a/What\047s New.txt" +++ "b/What\047s New.txt" @@ -1,3 +1,5 @@ +2025.02.19 +1.action set_subtable_page_row 澶勭悊 condition 2024.08.20 1.鑾峰彇pda鍔熻兘闇�鍒ゆ柇鏉冮檺 2024.08.16 diff --git a/locale/en.json b/locale/en.json index eafed40..5e94d7c 100644 --- a/locale/en.json +++ b/locale/en.json @@ -120,5 +120,7 @@ "page.cannot_related_function": "Do not support jumping to function points", "page.function_not_exist": "Function point does not exist!", "page.function_not_edit_dlg": "This function point does not have an editing window configured!", - "page.no_find_attr_diaplay": "No attributes found to display!" + "page.no_find_attr_diaplay": "No attributes found to display!", + "page.illegal_dividend": "Illegal dividend ", + "page.unrecognized_operator": "unrecognized operator " } \ No newline at end of file diff --git a/locale/es.json b/locale/es.json index 19be636..dbe3803 100644 --- a/locale/es.json +++ b/locale/es.json @@ -119,8 +119,7 @@ "page.cannot_related_function": "No se admite saltar a un punto funcional", "page.function_not_exist": "隆隆 los puntos funcionales no existen!", "page.function_not_edit_dlg": "隆隆 el punto de funci贸n no est谩 configurado para la ventana de edici贸n!", - "page.no_find_attr_diaplay": "隆隆 no se han encontrado atributos visibles!" - - - + "page.no_find_attr_diaplay": "隆隆 no se han encontrado atributos visibles!", + "page.illegal_dividend": "Divisi贸n ilegal ", + "page.unrecognized_operator": "Operador no reconocido " } \ No newline at end of file diff --git a/locale/zh-Hans.json b/locale/zh-Hans.json index 663d4f8..331d2c4 100644 --- a/locale/zh-Hans.json +++ b/locale/zh-Hans.json @@ -125,10 +125,9 @@ "page.function_not_exist": "鍔熻兘鐐逛笉瀛樺湪锛�, "page.function_not_edit_dlg": "璇ュ姛鑳界偣鏈厤缃紪杈戠獥鍙o紒", "page.no_find_attr_diaplay": "鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�锛�, - - - "page.cannot_prj_function": "鏆傛椂鏈敮鎸侀�鎷╅」鐩帴鍙o紒" - + "page.cannot_prj_function": "鏆傛椂鏈敮鎸侀�鎷╅」鐩帴鍙o紒", + "page.illegal_dividend": "闈炴硶琚櫎鏁�, + "page.unrecognized_operator": "鏃犳硶璇嗗埆鐨勬搷浣滅" } \ No newline at end of file diff --git a/locale/zh-Hant.json b/locale/zh-Hant.json index dbfd844..2d0fbe9 100644 --- a/locale/zh-Hant.json +++ b/locale/zh-Hant.json @@ -58,11 +58,11 @@ "sys.unrealized": "鏈鐝�, "sys.select": "閫夋嫨", "sys.please": "璇�, - + "page.server": "鏈嶅嫏鍦板潃", "page.mobox3_app_type": "mobox3 pda鎳夌敤椤炲瀷", "page.mobox3_port": "mobox3鏈嶅嫏鍩�, - "page.input_server": "璜嬭几鍏ユ湇鍕欏湴鍧�, + "page.input_server": "璜嬭几鍏ユ湇鍕欏湴鍧�, "page.set_server": "瑷畾鏈嶅嫏", "page.tip_app_update": "绯荤当鏈夋柊鐗堟湰锛屾槸鍚﹂渶瑕佹洿鏂帮紵", "page.tip_no_web_server": "鏈几鍏ョ恫绔欏湴鍧�紝璜嬮噸鏂伴厤瀵樿几鍏�, @@ -119,9 +119,8 @@ "page.cannot_related_function": "涓嶆敮鎸佽烦杞夊埌鍔熻兘榛�, "page.function_not_exist": "鍔熻兘榛炰笉瀛樺湪锛�, "page.function_not_edit_dlg": "瑭插姛鑳介粸鏈厤瀵樼法杓绐楋紒", - "page.no_find_attr_diaplay": "鏈壘鍒板彲椤ず鐨勭殑鍐呭锛� - - - + "page.no_find_attr_diaplay": "鏈壘鍒板彲椤ず鐨勭殑鍐呭锛�, + "page.illegal_dividend": "闈炴硶琚櫎鏁�, + "page.unrecognized_operator": "鐒℃硶璀樺垾鐨勬搷浣滅" } \ No newline at end of file diff --git a/manifest.json b/manifest.json index cbf700e..2169946 100644 --- a/manifest.json +++ b/manifest.json @@ -2,8 +2,8 @@ "name" : "MoboxPDA", "appid" : "__UNI__56D451E", "description" : "", - "versionName" : "1.1.38", - "versionCode" : 1138, + "versionName" : "1.1.40", + "versionCode" : 1140, "transformPx" : false, /* 5+App鐗规湁鐩稿叧 */ "app-plus" : { @@ -42,11 +42,13 @@ "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" ], - "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ] + "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ], + "schemes" : "wmspda" }, /* ios鎵撳寘閰嶇疆 */ "ios" : { - "dSYMs" : false + "dSYMs" : false, + "urltypes" : "wmspda" }, /* SDK閰嶇疆 */ "sdkConfigs" : { diff --git a/pages/login/index.vue b/pages/login/index.vue index 7958b0d..de15e2d 100644 --- a/pages/login/index.vue +++ b/pages/login/index.vue @@ -70,7 +70,10 @@ </uni-popup> <!-- 鐗堟湰鍗囩骇寮圭獥缁撴潫 --> </view> - + <!-- <button @click="onClickWms">鐧诲綍wms</button> + <view class="webview"> + <web-view ref="webview" src="http://115.29.185.26:5000/mobox3/#/"></web-view> + </view> --> </view> </template> @@ -400,6 +403,13 @@ } }, + onClickWms() + { + let otherAppSchemeURL = "testapp://pages/index/index"; // 鏇挎崲涓虹洰鏍嘺pp鐨剆cheme URL + plus.runtime.openURL(otherAppSchemeURL, function(error) { + console.error('鎵撳紑搴旂敤澶辫触: ', error); + }, "uni.TeatApp"); + }, translate(t) { if (typeof this.$t == "function") return this.$t(`page.${t}`) else return t; @@ -409,8 +419,16 @@ else return t; }, }, - onLoad() { + onLoad(options) { //鑾峰彇mac鍦板潃 + let tip=`login:account:${options.account || ""},password:${options.password || ""}` + // console.log(options); + uni.showModal({ + title: "鍙傛暟", + content: tip, + showCancel: false, + confirmText:"cancel" + }); var url = utils.session.getValue('server'); var username = utils.session.getValue('account'); var userpwd = utils.session.getValue('password'); diff --git a/pages/modal/3018_2.vue b/pages/modal/3018_2.vue index 4c59b99..ab196d0 100644 --- a/pages/modal/3018_2.vue +++ b/pages/modal/3018_2.vue @@ -5,7 +5,7 @@ <uni-forms ref="baseForm" label-align="right"> <view class="v-headStyle" v-for="(item,index) in head_styledef.form.items"> <!-- 鏅�甯冨眬 --> - <uni-forms-item v-if="item.name != 'Layout'&& item.show==true" :label="item.label +'锛� " + <uni-forms-item v-if="item.name != 'Layout'&& item.show==true" :label="item.label ? item.label +'锛�:'' " :label-width="item.labelWidth+'px'"> <!-- <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> --> <!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections--> @@ -36,17 +36,17 @@ </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'" - :class="item.disabled?'input-disabled':''" @change="onModelValue(item)" - :disabled="item.disabled" :data-ischeck="item.value"> - <label> - <checkbox :value="item.value" :checked="item.value" /> - <text>{{item.label}}</text> + :class="item.disabled?'input-disabled':''" :disabled="item.disabled" + @change="onCheckBoxValue" :data-attr="item.fieldId"> + <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 class="check_rememberPwd" v-if="item.name=='Radio'" :class="item.disabled?'input-disabled':''" :disabled="item.disabled" - @change="onModelValue(item)"> + @change="onRadioBoxValue" :data-attr="item.fieldId"> <label v-for="(item2) in item.selections" :key="item2.value"> <radio :value="item2.value" :checked="item2.value === item.value" /> <text>{{item2.label}}</text> @@ -68,7 +68,7 @@ <uni-row class="demo-uni-row" v-if="item.name=='Layout'"> <uni-col v-for="(cols,key) in item.setting.colList" :span="item.setting.spanList?item.setting.spanList[key]:24 / item.setting.col"> - <uni-forms-item v-if="cols!=null && cols.show==true" :label="cols.label +'锛�" + <uni-forms-item v-if="cols!=null && cols.show==true" :label="cols.label? cols.label +'锛�:''" :label-width="cols.labelWidth+'px'"> <view class="input-wrapper" v-if="(cols.name=='Input' || cols.name=='InputNumber') "> <text v-if="cols.setting.prefix" class="uni-icon" :class="[cols.setting.prefix]" @@ -98,17 +98,16 @@ <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="cols.name=='Checkbox'" :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" - @change="onModelValue(cols)" :data-ischeck="cols.value" - :style="{'margin-left':'10rpx'}"> - <label> - <checkbox :value="cols.value" :checked="cols.value" /> - <text>{{cols.label}}</text> + @change="onCheckBoxValue" :data-attr="cols.fieldId"> + <label v-for="(cols2) in cols.selections" :key="cols2.value"> + <checkbox :value="cols2.value" :checked="cols.value.includes(cols2.value)" /> + <text>{{cols2.label}}</text> </label> </checkbox-group> <!-- 鍗曢�妗�--> <radio-group class="check_rememberPwd" v-if="cols.name=='Radio'" :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" - @change="onModelValue(cols)"> + @change="onRadioBoxValue" :data-attr="cols.fieldId"> <label v-for="(cols2) in cols.selections" :key="cols2.value"> <radio :value="cols2.value" :checked="cols2.value === cols.value" /> <text>{{cols2.label}}</text> @@ -388,6 +387,24 @@ 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 == @@ -408,6 +425,25 @@ .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 @@ -828,6 +864,17 @@ onModelValue(item) { //缁戝畾Model鍊� var attr = item.fieldId; this.head_styledef.form.model[attr] = item.value; + console.log(item.value) + }, + onCheckBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || [] + let attr = e.currentTarget?.dataset?.attr || "" + this.head_styledef.form.model[attr] = values; + }, + onRadioBoxValue(e) { //缁戝畾Model鍊�+ let value = e.detail.value || "" + let attr = e.currentTarget?.dataset?.attr || "" + this.head_styledef.form.model[attr] = value; }, classAttr_extButton(item) { var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�diff --git a/pages/modal/3037_2.vue b/pages/modal/3037_2.vue index 3c4dbe2..6e08aaa 100644 --- a/pages/modal/3037_2.vue +++ b/pages/modal/3037_2.vue @@ -39,16 +39,17 @@ </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'" - :class="item.disabled?'input-disabled':''" @change="onModelValue(item)" :disabled="item.disabled" - :data-ischeck="item.value" :style="{'margin-left':'10rpx'}"> - <label> - <checkbox :value="item.value" :checked="item.value" /> - <text>{{item.label}}</text> + :class="item.disabled?'input-disabled':''" :disabled="item.disabled" @change="onCheckBoxValue" + :data-attr="item.fieldId"> + <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 class="check_rememberPwd" v-if="item.name=='Radio'" - :class="item.disabled?'input-disabled':''" :disabled="item.disabled" @change="onModelValue(item)"> + :class="item.disabled?'input-disabled':''" :disabled="item.disabled" @change="onRadioBoxValue" + :data-attr="item.fieldId"> <label v-for="(item2) in item.selections" :key="item2.value"> <radio :value="item2.value" :checked="item2.value === item.value" /> <text>{{item2.label}}</text> @@ -128,17 +129,17 @@ </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'" - :class="item.disabled?'input-disabled':''" @change="onModelValue(item)" - :data-ischeck="item.value" :disabled="item.disabled" :style="{'margin-left':'10rpx'}"> - <label> - <checkbox :value="item.value" :checked="item.value" /> - <text>{{item.label}}</text> + :class="item.disabled?'input-disabled':''" :disabled="item.disabled" @change="onCheckBoxValue" + :data-attr="item.fieldId"> + <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 class="check_rememberPwd" v-if="item.name=='Radio'" :class="item.disabled?'input-disabled':''" :disabled="item.disabled" - :style="{'margin-left':'10rpx'}" @change="onModelValue(item)"> + :style="{'margin-left':'10rpx'}" @change="onRadioBoxValue" :data-attr="cols.fieldId"> <label v-for="(item2) in item.selections" :key="item2.value"> <radio :value="item2.value" :checked="item2.value === item.value" /> <text>{{item2.label}}</text> @@ -194,17 +195,17 @@ <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="cols.name=='Checkbox'" :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" - @change="onModelValue(cols)" :data-ischeck="cols.value" - :style="{'margin-left':'10rpx'}"> - <label> - <checkbox :value="cols.value" :checked="cols.value" /> - <text>{{cols.label}}</text> + @change="onCheckBoxValue" :data-attr="cols.fieldId"> + <label v-for="(cols2) in cols.selections" :key="cols2.value"> + <checkbox :value="cols2.value" + :checked="cols.value.includes(cols2.value)" /> + <text>{{cols2.label}}</text> </label> </checkbox-group> <!-- 鍗曢�妗�--> <radio-group class="check_rememberPwd" v-if="cols.name=='Radio'" :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" - @change="onModelValue(cols)"> + @change="onRadioBoxValue " :data-attr="cols.fieldId"> <label v-for="(cols2) in cols.selections" :key="cols2.value"> <radio :value="cols2.value" :checked="cols2.value === cols.value" /> <text>{{cols2.label}}</text> @@ -411,6 +412,23 @@ ele.show = true; if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 await this.DictGetInfo(ele.bind.dict, index, 'mast'); + } else { + if (ele?.name === "Select") { + const selections = ele?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = ele.value || ""; + if (itemName) { + $this.head_styledef.form + .model[ele.fieldId] = itemName; + } + $this.head_styledef.form.items[index].dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + } + } }); } @@ -455,6 +473,21 @@ $this.detail1_styledef.form.items.forEach(async (ele, index) => { if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 await this.DictGetInfo(ele.bind.dict, index, 'sub'); + } else { + if (ele?.name === "Select") { + const selections = ele?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = ele.value || ""; + if (itemName) { + $this.detail1_styledef.form.items[ele.fieldId] = itemName; + } + $this.detail1_styledef.form.items[index].dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + } } }); } @@ -965,6 +998,17 @@ } } }, + + onCheckBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || [] + let attr = e.currentTarget?.dataset?.attr || "" + this.head_styledef.form.model[attr] = values; + }, + onRadioBoxValue(e) { //缁戝畾Model鍊�+ let value = e.detail.value || "" + let attr = e.currentTarget?.dataset?.attr || "" + this.head_styledef.form.model[attr] = value; + }, onModelValue(item) { //缁戝畾Model鍊� //console.log(e.target) var attr = item.fieldId; diff --git a/pages/modal/3200.vue b/pages/modal/3200.vue index 27a704d..dc03306 100644 --- a/pages/modal/3200.vue +++ b/pages/modal/3200.vue @@ -16,7 +16,7 @@ :placeholder="item.placeholder" :style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}" :focus="focusMateria" @focus="ontap(item)" @keyup.enter="onEnterChange(item)" - @blur="onEnterChange(item)" :maxlength="-1"/> + @blur="onEnterChange(item)" :maxlength="-1" /> <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" @click="onEnterChange(item)"></text> </view> @@ -50,9 +50,8 @@ <view v-if="item.name!='Layout'"> <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> - <!-- 鏂囨湰妗�鏁板瓧妗�--> - <view class="dv_input" - v-if="(item.name=='Input' || item.name=='InputNumber')"> + <!-- 鏂囨湰妗�鏁板瓧妗�--> + <view class="dv_input" v-if="(item.name=='Input' || item.name=='InputNumber')"> <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" @change="onChange(item)"></text> <input class="uni-input" :class="item.disabled?'input-disabled':''" @@ -60,7 +59,8 @@ v-model="item.value" :disabled="item.disabled" :placeholder="item.placeholder" :style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}" - :focus="focusMateria" @focus="ontap(item)" @blur="onevent(item)" :maxlength="-1"/> + :focus="focusMateria" @focus="ontap(item)" @blur="onevent(item)" + :maxlength="-1" /> <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" @click="onChange(item)"></text> </view> @@ -79,18 +79,20 @@ </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'" - :class="item.disabled?'input-disabled':''" @change="onModelValue(item)" - :data-ischeck="item.value" :disabled="item.disabled" - :style="{'margin-left':'10rpx'}"> - <label> - <checkbox :value="item.value" :checked="item.value" /> - <text>{{item.label}}</text> + :class="item.disabled?'input-disabled':''" :disabled="item.disabled" + @change="onCheckBoxValue" :data-attr="item.fieldId"> + <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 class="check_rememberPwd" v-if="item.name=='Radio'" :class="item.disabled?'input-disabled':''" :disabled="item.disabled" - :style="{'margin-left':'10rpx'}" @change="onModelValue(item)"> + :style="{'margin-left':'10rpx'}" @change="onModelValue(item)" + :data-attr="item.fieldId"> <label v-for="(item2) in item.selections" :key="item2.value"> <radio :value="item2.value" :checked="item2.value === item.value" /> <text>{{item2.label}}</text> @@ -127,21 +129,19 @@ v-model="cols.value" :disabled="cols.disabled" :placeholder="cols.placeholder" :style="{'width':cols.setting.prefix && cols.setting.suffix?'78%':cols.setting.prefix || cols.setting.suffix?'87%':'96%'}" - :focus="focusMateria" @focus="ontap(cols)" - @blur="onevent(cols)" :maxlength="-1"/> + :focus="focusMateria" @focus="ontap(cols)" @blur="onevent(cols)" + :maxlength="-1" /> <text v-if="cols.setting.suffix" class="uni-icon" :class="[cols.setting.suffix]" @click="onChange(cols)"></text> </view> <!-- 涓嬫媺妗�鍗曢� cols.useDict?cols.dict:cols.selections--> - <uni-data-select id="dv_select" - v-if="cols.name=='Select'" + <uni-data-select id="dv_select" v-if="cols.name=='Select'" :class="cols.disabled?'input-disabled':''" v-model="cols.value" :localdata="cols.dict" @change="onChange(cols)" :disabled="cols.disabled" :clear="false"></uni-data-select> <!-- 澶氳鏂囨湰 --> - <view class="input-wrapper" - v-if="cols.name=='Textarea'"> + <view class="input-wrapper" v-if="cols.name=='Textarea'"> <textarea class="uni-input" :value="cols.value" :class="cols.disabled?'input-disabled':''" :placeholder="cols.placeholder" @blur="onModelValue(cols)" @@ -150,12 +150,12 @@ </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="cols.name=='Checkbox'" - :class="cols.disabled?'input-disabled':''" :disabled="item.disabled" - @change="onModelValue(cols)" :data-ischeck="cols.value" - :style="{'margin-left':'10rpx'}"> - <label> - <checkbox :value="cols.value" :checked="cols.value" /> - <text>{{cols.label}}</text> + :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" + @change="onCheckBoxValue" :data-attr="cols.fieldId"> + <label v-for="(cols2) in cols.selections" :key="cols2.value"> + <checkbox :value="cols2.value" + :checked="cols.value.includes(cols2.value)" /> + <text>{{cols2.label}}</text> </label> </checkbox-group> <!-- 鍗曢�妗�--> @@ -487,7 +487,25 @@ console.log(ele.useDict); if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 await this.DictGetInfo(ele.bind.dict, index, 'mast'); + } else { + if (ele?.name === "Select") { + const selections = ele?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = ele.value || ""; + if (itemName) { + $this.head_styledef.form + .model[ele.fieldId] = itemName; + } + $this.head_styledef.form.items[index].dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + } + } + }); } diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue index cf928fc..ab5432a 100644 --- a/pages/modal/3200_view.vue +++ b/pages/modal/3200_view.vue @@ -17,15 +17,15 @@ <view v-if="item.name!='Layout'"> <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> <!-- 鏂囨湰妗�鏁板瓧妗�--> - <view class="dv_input" - v-if="(item.name=='Input' || item.name=='InputNumber') "> + <view class="dv_input" v-if="(item.name=='Input' || item.name=='InputNumber') "> <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" @change="onChange(item)"></text> <input class="uni-input" :class="item.disabled?'input-disabled':''" :type="item.name=='Input'?'text':item.name=='InputNumber'?'number':'text'" v-model="item.value" :disabled="item.disabled" :placeholder="item.placeholder" :style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}" - :focus="focusMateria" @focus="ontap(item)" @blur="onevent(item)" :maxlength="-1"/> + :focus="focusMateria" @focus="ontap(item)" @blur="onevent(item)" + :maxlength="-1" /> <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" @click="onChange(item)"></text> </view> @@ -43,18 +43,17 @@ </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'" - :class="item.disabled?'input-disabled':''" @change="onModelValue(item)" - :data-ischeck="item.value" :disabled="item.disabled" - :style="{'margin-left':'10rpx'}"> - <label> - <checkbox :value="item.value" :checked="item.value" /> - <text>{{item.label}}</text> + :class="item.disabled?'input-disabled':''" :disabled="item.disabled" + @change="onCheckBoxValue" :data-attr="item.fieldId"> + <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 class="check_rememberPwd" v-if="item.name=='Radio'" - :class="item.disabled?'input-disabled':''" :disabled="item.disabled" :style="{'margin-left':'10rpx'}" - @change="onModelValue(item)"> + :class="item.disabled?'input-disabled':''" :disabled="item.disabled" + :style="{'margin-left':'10rpx'}" @change="onModelValue(item)"> <label v-for="(item2) in item.selections" :key="item2.value"> <radio :value="item2.value" :checked="item2.value === item.value" /> <text>{{item2.label}}</text> @@ -80,8 +79,7 @@ <view v-if="cols!=null"> <text class="txt_title" :style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text> - <view class="dv_input" - v-if="(cols.name=='Input' || cols.name=='InputNumber') "> + <view class="dv_input" v-if="(cols.name=='Input' || cols.name=='InputNumber') "> <text v-if="cols.setting.prefix" class="uni-icon" :class="[cols.setting.prefix]" @change="onChange(cols)"></text> <input class="uni-input" :class="cols.disabled?'input-disabled':''" @@ -89,7 +87,8 @@ v-model="cols.value" :disabled="cols.disabled" :placeholder="cols.placeholder" :style="{'width':cols.setting.prefix && cols.setting.suffix?'78%':cols.setting.prefix || cols.setting.suffix?'87%':'96%'}" - :focus="focusMateria" @focus="ontap(cols)" @blur="onevent(cols)" :maxlength="-1"/> + :focus="focusMateria" @focus="ontap(cols)" @blur="onevent(cols)" + :maxlength="-1" /> <text v-if="cols.setting.suffix" class="uni-icon" :class="[cols.setting.suffix]" @click="onChange(cols)"></text> </view> @@ -108,18 +107,18 @@ </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="cols.name=='Checkbox'" - :class="cols.disabled?'input-disabled':''" :disabled="item.disabled" - @change="onModelValue(cols)" :data-ischeck="cols.value" - :style="{'margin-left':'10rpx'}"> - <label> - <checkbox :value="cols.value" :checked="cols.value" /> - <text>{{cols.label}}</text> + :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" + @change="onCheckBoxValue" :data-attr="cols.fieldId"> + <label v-for="(cols2) in cols.selections" :key="cols2.value"> + <checkbox :value="cols2.value" + :checked="cols.value.includes(cols2.value)" /> + <text>{{cols2.label}}</text> </label> </checkbox-group> <!-- 鍗曢�妗�--> <radio-group class="check_rememberPwd" v-if="cols.name=='Radio'" - :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" :style="{'margin-left':'10rpx'}" - @change="onModelValue(cols)"> + :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" + :style="{'margin-left':'10rpx'}" @change="onModelValue(cols)"> <label v-for="(cols2) in cols.selections" :key="cols2.value"> <radio :value="cols2.value" :checked="cols2.value === cols.value" /> <text>{{cols2.label}}</text> diff --git a/pages/modal/5600.vue b/pages/modal/5600.vue index 3db80aa..b1f2596 100644 --- a/pages/modal/5600.vue +++ b/pages/modal/5600.vue @@ -20,7 +20,7 @@ :placeholder="item.placeholder" :style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}" :focus="focusFieldId == item.fieldId" @focus="ontap(index,item)" @click="onClick(item)" - @keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)" :maxlength="-1"/> + @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> @@ -59,7 +59,7 @@ <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"/> + :placeholder="item.placeholder" :maxlength="-1" /> </view> <!-- 鏍呮牸甯冨眬 --> <uni-row class="demo-uni-row" v-if="item.name=='Layout'"> @@ -73,7 +73,7 @@ <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"/> + :placeholder="cols.placeholder" :maxlength="-1" /> </view> </uni-col> </uni-row> @@ -163,7 +163,7 @@ </div> </view> </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' }" @@ -238,8 +238,8 @@ selectAttrObj: {}, okLoading: false, ok2Loading: false, - - + + global_attr: [], refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id} popupType: "center", @@ -375,6 +375,23 @@ $this.$data.head_styledef.form.items.forEach(async (ele, index) => { if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 await this.DictGetInfo(ele.bind.dict, index, 'mast'); + } else { + if (ele?.name === "Select") { + const selections = ele?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = ele.value || ""; + if (itemName) { + $this.head_styledef.form + .model[ele.fieldId] = itemName; + } + $this.head_styledef.form.items[index].dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + } + } if ($this.focusFieldId == "") { if (ele.name == 'Input' || ele.name == 'InputNumber') { @@ -426,6 +443,23 @@ $this.detail1_styledef.form.items.forEach(async (ele, index) => { if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 await this.DictGetInfo(ele.bind.dict, index, 'sub'); + } else { + if (ele?.name === "Select") { + const selections = ele?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = ele.value || ""; + if (itemName) { + $this.detail1_styledef.form + .model[ele.fieldId] = itemName; + } + $this.detail1_styledef.form.items[index].dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + } + } }); } @@ -482,7 +516,7 @@ var itemName = ''; (result.dict_item_list || []).forEach((item) => { if (item.is_default == '1') - itemName = item.name + itemName = item.name list.push({ text: item.value ? item.value : item.name, value: item.name, @@ -629,13 +663,13 @@ 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"), @@ -657,11 +691,11 @@ this.$data.popupType = 'right' // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� this.$refs.popup.open(this.popupType); - + this.dataObjRunCustomEvent_Return(onSuffixClickCallbackEvent.id, '', onSuffixClickEvent.id, item); }, - + getDetailAttrList(list, selectButton) { const detailAttrList = []; list.forEach(style => { @@ -1042,6 +1076,9 @@ number1 = parseInt(value1) if (value2) number2 = parseInt(value2) + if (!operation) { + return value2; + } if (operation == "+") { return number1 + number2 } else if (operation == "-") { @@ -1049,11 +1086,17 @@ } else if (operation == "*") { return number1 * number2 } else if (operation == "/") { - if (number2) - return number1 / number2 - else - return number1 - } else return number2 + 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; + } }, //鏇存柊鍒嗛〉绛句腑鐨勫垪琛ㄩ」鍐呭 @@ -1067,29 +1110,94 @@ } detailStyleDefList.forEach(ele => { value.row.forEach((rowData) => { - 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) - } + 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) + } + } + }) + } + }); + }); + } } + }) }); if (value.page_name == $this.$data.param.Sub_Page[1].Name) { @@ -1540,7 +1648,7 @@ } data[index].check = ischeck ? false : true; this.$data.check_list.items = data; - + }, popup_cancel(e) { //寮规鍙栨秷 this.$refs.popup.close(); @@ -1595,7 +1703,7 @@ $this.DataObjRunCustomEvent(info, $this.$data.popupParam.data_attr); this.$refs.popup.close(); }, - + async DataObjRunCustomEvent(info, data_attr) { var $this = this; var enviroment = { @@ -1692,7 +1800,7 @@ showCancel: false, confirmText: this.translateSys("cancel") }); - + var actionlist = data.action; if (actionlist) { console.log(actionlist); @@ -1799,7 +1907,7 @@ }); } } - + var length = 0; if (!$this.$data.refdatastore.filter(function(s) { return result[i].attr == s.attr @@ -1819,7 +1927,7 @@ } } } - + }).catch(ex => { // console.log(ex); let exStr = JSON.stringify(ex) @@ -1864,7 +1972,7 @@ } } } - + var extinfo = enviroment; extinfo.edit_dlg = { type: 'small', //灏忕獥鍙�@@ -1884,7 +1992,7 @@ })) ) ); - + if (!eventid.includes('{')) eventid = '{' + eventid + '}'; var dataInfo = { ed_type: "0", @@ -1943,7 +2051,7 @@ showCancel: false, confirmText: $this.translateSys("cancel") }); - + if (data != "") { var actions = data.action; if (actions) { @@ -1952,7 +2060,7 @@ 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> ' + @@ -2022,7 +2130,7 @@ }); d.show(); } else if (action.action_type == 'open_common_dlg') { - + if (val.common_dlg_id == 'check_list') { $this.setData({ check_list: val.config @@ -2081,7 +2189,7 @@ 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 @@ -2102,7 +2210,7 @@ attr: param.req, dataJson: [], } - + $this.DataObjRunCustomEvent( info); } @@ -2136,7 +2244,7 @@ }); } } - + }).catch(ex => { // console.log(ex); let exStr = JSON.stringify(ex) @@ -2151,8 +2259,8 @@ }); }); }, - - + + //纭畾 ok() { this.Before_OK_Event = this.param.Sub_Page[0].Before_ok; @@ -3045,23 +3153,24 @@ .demo-uni-row .uni-input { width: calc(100% - 120px); } + .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; @@ -3076,7 +3185,7 @@ /* float: left; */ display: inline-block; } - + button.btn_popup_cancel { width: 180rpx; margin-top: 50rpx; @@ -3090,7 +3199,7 @@ /* float: right; */ display: inline-block; } - + } </style> \ No newline at end of file diff --git a/pages/modal/5601.vue b/pages/modal/5601.vue index 52a5dd6..d019952 100644 --- a/pages/modal/5601.vue +++ b/pages/modal/5601.vue @@ -4,7 +4,7 @@ <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 +'锛� " + <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)" @@ -21,15 +21,36 @@ <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 +'锛�" :label-width="col.labelWidth+'px'"> + <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(item)" + 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]" @@ -43,6 +64,27 @@ <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> @@ -363,7 +405,26 @@ 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') { @@ -381,6 +442,22 @@ .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 @@ -621,10 +698,67 @@ } }, + 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"), @@ -1126,6 +1260,9 @@ number1 = parseInt(value1) if (value2) number2 = parseInt(value2) + if (!operation) { + return value2; + } if (operation == "+") { return number1 + number2 } else if (operation == "-") { @@ -1133,11 +1270,17 @@ } else if (operation == "*") { return number1 * number2 } else if (operation == "/") { - if (number2) - return number1 / number2 - else - return number1 - } else return number2 + 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; + } }, //鏇存柊鍒嗛〉绛句腑鐨勫垪琛ㄩ」鍐呭 @@ -1153,54 +1296,141 @@ var detailStyleDefList = pageData.DefList || [] detailStyleDefList.forEach(ele => { value.row.forEach((rowData) => { - 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 - ) + 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 + ) + } + } + }) + } + }); + }); + + } } }) }); @@ -1889,7 +2119,7 @@ }); }, dataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) { - console.log("dataObjRunCustomEvent_Return",eventid,data_attr,button_callback) + console.log("dataObjRunCustomEvent_Return", eventid, data_attr, button_callback) const $this = this var enviroment = { 'function': '3000', // 鍔熻兘鐐圭紪鍙�diff --git a/pages/modal/5602.vue b/pages/modal/5602.vue index d87a1e8..bb6d4d2 100644 --- a/pages/modal/5602.vue +++ b/pages/modal/5602.vue @@ -376,12 +376,26 @@ .style_def); } $this.$data.head_styledef = result.style_def ? JSON.parse(styledef) : {}; - // this.form = this.head_styledef.form.model; - // console.log($this.$data.head_styledef); if ($this.head_styledef.form?.items) { $this.head_styledef.form.items.forEach(async (ele, index) => { if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 await this.DictGetInfo(ele.bind.dict, index, 'mast'); + } else { + if (ele?.name === "Select") { + const selections = ele?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = ele.value || ""; + if (itemName) { + $this.head_styledef.form + .model[ele.fieldId] = itemName; + } + $this.head_styledef.form.items[index].dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + } } if ($this.focusFieldId == "") { if (ele.name == 'Input' || ele.name == 'InputNumber') { @@ -433,6 +447,23 @@ $this.detail1_styledef.form.items.forEach(async (ele, index) => { if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 await this.DictGetInfo(ele.bind.dict, index, 'sub'); + } else { + if (ele?.name === "Select") { + const selections = ele?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = ele.value || ""; + if (itemName) { + $this.detail1_styledefform + .model[ele.fieldId] = itemName; + } + $this.detail1_styledef.form.items[index].dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + } + } }); } @@ -1054,6 +1085,9 @@ number1 = parseInt(value1) if (value2) number2 = parseInt(value2) + if (!operation) { + return value2; + } if (operation == "+") { return number1 + number2 } else if (operation == "-") { @@ -1061,11 +1095,17 @@ } else if (operation == "*") { return number1 * number2 } else if (operation == "/") { - if (number2) - return number1 / number2 - else - return number1 - } else return number2 + 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) { @@ -1078,28 +1118,92 @@ } detailStyleDefList.forEach(ele => { value.row.forEach((rowData) => { - 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) - } + 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) + } + } + }) + } + }); + }); + + } } }) }); -- Gitblit v1.9.1