From a2f5317f01290597eb44aaf80aa535ff468a61c5 Mon Sep 17 00:00:00 2001 From: cuiqian2004 <cuiqian2004@163.com> Date: 星期四, 05 六月 2025 17:10:46 +0800 Subject: [PATCH] 3202 set_subtable_page_content --- pages/modal/3200.vue | 743 +++++++++++++++++++++++++++----------------------------- 1 files changed, 355 insertions(+), 388 deletions(-) diff --git a/pages/modal/3200.vue b/pages/modal/3200.vue index 3ca938b..f5ffc6b 100644 --- a/pages/modal/3200.vue +++ b/pages/modal/3200.vue @@ -1,27 +1,9 @@ <template> - <view class="uni-page-modal-3200"> + <view class="uni-page-modal-3200" :class="largeMode?'large-mode':''"> <view class="v-content"> <!-- 琛ㄥご鏍峰紡 --> - <view class="v-headStyle" v-for="(item,index) in head_styledef.form.items" v-if="isFilter==true"> - <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> - <!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections--> - <uni-data-select id="dv_select" v-if="item.name=='Select'" :class="item.disabled?'input-disabled':''" - v-model="item.value" :localdata="item.dict" @change="onChange(item)" :disabled="item.disabled" - :clear="false"></uni-data-select> - <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="onEnterChange(item)"></text> - <input class="uni-input" :class="item.disabled?'input-disabled':''" - :type="item.name=='Input'?'text':'number'" 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)" @keyup.enter="onEnterChange(item)" - @blur="onEnterChange(item)" /> - <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" - @click="onEnterChange(item)"></text> - </view> - </view> - + <OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @on-focus="ontap" + @on-change="onEnterChange" @on-click-prefix="onEnterChange" @on-click-suffix="onEnterChange"></OIForm> <view class="v-scroll-view"> <scroll-view :scroll-top="scrollTop" :scroll-y="true" class="scroll-y" @scrolltolower="scrolltolower" @scroll="scroll"> @@ -37,157 +19,14 @@ </checkbox-group> </div> <!-- HTML椤甸潰绫诲瀷鏄剧ず --> - <div class="dv-listHtml-Panel" v-if="ListHtml_Panel" v-html="ListHtml_Panel[ii]" :style="param.ListPage.CheckBox==true && param.ListPage.Click_View==true?'width:85%;': - param.ListPage.CheckBox==false && param.ListPage.Click_View==true?'width:91%;': - param.ListPage.CheckBox==true && param.ListPage.Click_View==false?'width:88%;':'width:100%;'"> + <div class="dv-listHtml-Panel" v-if="ListHtml_Panel" v-html="ListHtml_Panel[ii]" + :style="param.ListPage.CheckBox==true && param.ListPage.Click_View==true?'width:85%;': param.ListPage.CheckBox==false && param.ListPage.Click_View==true?'width:91%;':param.ListPage.CheckBox==true && param.ListPage.Click_View==false?'width:88%;':'width:100%;'"> </div> - <div class="dv-panel-input" v-if="!ListHtml_Panel" :style="param.ListPage.CheckBox==true && param.ListPage.Click_View==true?'width:85%;': - param.ListPage.CheckBox==false && param.ListPage.Click_View==true?'width:91%;': - param.ListPage.CheckBox==true && param.ListPage.Click_View==false?'width:88%;':'width:100%;'"> - <div 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> - <!-- 鏂囨湰妗�鏁板瓧妗�--> - <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)" /> - <text v-if="item.setting.suffix" class="uni-icon" - :class="[item.setting.suffix]" @click="onChange(item)"></text> - </view> - <!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections--> - <uni-data-select id="dv_select" v-if="item.name=='Select'" - :class="item.disabled?'input-disabled':''" v-model="item.value" - :localdata="item.dict" @change="onChange(item)" :disabled="item.disabled" - :clear="false"></uni-data-select> - <!-- 澶氳鏂囨湰 --> - <view class="input-wrapper" v-if="item.name=='Textarea'"> - <textarea class="uni-input" :value="item.value" - :class="item.disabled?'input-disabled':''" - :placeholder="item.placeholder" @blur="onModelValue(item)" - style="height:60px;" :style="{'width':'96%'}" - :disabled="item.disabled"></textarea> - </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> - </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)"> - <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 v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''" - :disabled="item.disabled" v-model="item.value" @change="onModelValue(item)" - :style="{'margin-left':'10rpx'}" /> - <!-- 鏃ユ湡鏃堕棿 --> - <view class="input-wrapper" - v-if="(item.name=='TimePicker' || item.name=='DatePicker') && !item.disabled"> - <picker mode="date" class="date_iput" - :class="item.disabled?'input-disabled':''" :disabled="item.disabled" - :value="item.value" @change="onModelValue(item)"> - <view class="picker">{{item.value}}</view> - </picker> - </view> - </view> - <!-- 鏍呮牸甯冨眬 --> - <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"> - <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') && !cols.disabled"> - <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':''" - :type="cols.name=='Input'?'text':cols.name=='InputNumber'?'number':'text'" - 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)" /> - <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'" - :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'"> - <textarea class="uni-input" :value="cols.value" - :class="cols.disabled?'input-disabled':''" - :placeholder="cols.placeholder" @blur="onModelValue(cols)" - style="height:60px;" :style="{'width':'96%'}" - :disabled="cols.disabled"></textarea> - </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> - </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)"> - <label v-for="(cols2) in cols.selections" :key="cols2.value"> - <radio :value="cols2.value" - :checked="cols2.value === cols.value" /> - <text>{{cols2.label}}</text> - </label> - </radio-group> - <!-- Switch寮�叧 --> - <switch v-if="cols.name=='Switch'" - :class="cols.disabled?'input-disabled':''" :disabled="item.disabled" - v-model="cols.value" @change="onModelValue(cols)" - :style="{'margin-left':'10rpx'}" /> - <!-- 鏃ユ湡鏃堕棿 --> - <view class="input-wrapper" - v-if="(cols.name=='TimePicker' || cols.name=='DatePicker') && !cols.disabled"> - <picker mode="date" class="date_iput" - :class="cols.disabled?'input-disabled':''" - :disabled="item.disabled" :value="cols.value" - @change="onModelValue(cols)"> - <view class="picker">{{cols.value}}</view> - </picker> - </view> + <div class="dv-panel-input" v-if="!ListHtml_Panel" + :style="param.ListPage.CheckBox==true && param.ListPage.Click_View==true?'width:85%;':param.ListPage.CheckBox==false && param.ListPage.Click_View==true?'width:91%;':param.ListPage.CheckBox==true && param.ListPage.Click_View==false?'width:88%;':'width:100%;'"> + <OIForm class="v-area dv-panel" :form="style.form.items" viewMode></OIForm> - </view> - </uni-col> - </uni-row> - </div> </div> <div class="dv-panel-button" v-if="param.ListPage.Click_View==true"> <a @click="onViewPageClick(style)"><i class="mobox-normal-right-arrow" /></a> @@ -216,7 +55,7 @@ <view class="uni-padding-wrap" v-if="param.ListPage.Page_Button.length>0"> <view class="uni-btn-v"> <a @tap="actionSheetTap"> - <Icon class="mobox-normal-more" /> + <text class="mobox-normal-more" /> </a> </view> </view> @@ -225,7 +64,9 @@ </template> <script> - import Base64 from '../../components/js-base64/base64.js' + import { + Base64 + } from '@/js/Base64.js'; import classUtils from "@/js/utils.js" import { appGetInfo, @@ -237,10 +78,14 @@ dataObjQuery, dataObjDel } 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 { - modules: { - Base64, + mixins: [buttonClickMixin], + components: { + OIForm }, onNavigationBarButtonTap(e) { // console.log(e); @@ -263,6 +108,7 @@ }, data() { return { + largeMode: getApp().globalData.largeMode || false, title: this.translateSys('add2'), isFilter: true, param: {}, @@ -308,8 +154,8 @@ uni.setNavigationBarTitle({ title: options.titlename }); //璁剧疆椤堕儴鏍囬 - this.$data.title = options.titlename; - this.$data.param = JSON.parse(options.param); + this.title = options.titlename; + this.param = JSON.parse(options.param); this.styledef = {}; @@ -367,7 +213,7 @@ // this.query_id = ""; // await this.loadDataGetList(); // } - // console.log(this.$data.param); + // console.log(this.param); //椤甸潰鍒濆鍖栬幏鍙栫劍鐐� // this.focusMateria=true; }, @@ -407,7 +253,7 @@ //浼犲叆鍙傛暟鍊� if (paramValue) { const attrs = paramValue.attrs || []; - (this.$data.head_styledef?.form?.items || []).forEach(async (ele, index) => { + (this.head_styledef?.form?.items || []).forEach(async (ele, index) => { if (ele.name != "Layout") { attrs.forEach(async (ele2, index2) => { if (ele.fieldId == ele2.name) { @@ -479,16 +325,54 @@ if (!result.style_def.includes('"')) styledef = Base64.decode(result .style_def); } - $this.$data.head_styledef = result.style_def ? JSON.parse(styledef) : {}; + $this.head_styledef = result.style_def ? JSON.parse(styledef) : {}; // this.form = this.head_styledef.form.model; - // console.log($this.$data.head_styledef); + // console.log($this.head_styledef); if ($this.head_styledef.form?.items) { $this.head_styledef.form.items.forEach(async (ele, index) => { 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].selections = selections.map(( + a) => { + return { + value: a.value, + text: a.label + } + }) + } + } + }); + const app = getApp() + if (app.globalData.bindClasses) { + $this.head_styledef.form.items.push({ + name: "Input", + label: this.translate("classes"), + labelWidth: 100, + disabled: true, + value: app.globalData.classes, + setting: { + width: 100, + height: 50, + }, + bind: { + attr: "", + }, + fieldId: "S_CLASSES", + }) + $this.head_styledef.form.model["S_CLASSES"] = app.globalData.classes + } } } catch (ex) { @@ -498,7 +382,7 @@ title: this.translateSys("error") + "1.1", content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } @@ -520,8 +404,8 @@ if (!result.style_def.includes('"')) styledef = Base64.decode(result .style_def); } - $this.$data.detail1_styledef = result.style_def ? JSON.parse(styledef) : {}; - $this.$data.detail1_styledef.SelBut_Checked = false; + $this.detail1_styledef = result.style_def ? JSON.parse(styledef) : {}; + $this.detail1_styledef.SelBut_Checked = false; } catch (ex) { // console.log(ex); let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex @@ -529,7 +413,7 @@ title: this.translateSys("error") + "1.1", content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } @@ -564,7 +448,7 @@ title: this.translateSys("error") + "1.1", content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } }, @@ -582,10 +466,10 @@ var itemName = ''; (result.dict_item_list || []).forEach((item) => { if (item.is_default == '1') - itemName = item.name; + itemName = item.name list.push({ - text: item.name, - value: item.id, + text: item.value ? item.value : item.name, + value: item.name, }); }); //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� @@ -605,7 +489,7 @@ title: this.translateSys("error") + "3", content: ex.errMsg, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } }, @@ -636,14 +520,14 @@ title: this.translateSys("tip"), content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } else uni.showModal({ title: this.translateSys("tip"), content: tip + ',' + this.translateSys('tip') + ':' + result .ret, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); return false; } else { @@ -653,7 +537,7 @@ title: this.translateSys("tip"), content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); if (result.result_type == 0 && result.action) { @@ -676,7 +560,7 @@ title: this.translateSys("tip"), content: result.info, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } } @@ -690,7 +574,7 @@ "comma") + tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } @@ -854,7 +738,7 @@ title: this.translateSys("error") + "5.1", content: ex.errMsg, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); }); } catch (ex) { @@ -863,7 +747,7 @@ title: this.translateSys("error") + "5.2", content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } }, @@ -873,7 +757,7 @@ //鍒锋柊褰撳墠椤甸潰 this.initial(); // uni.redirectTo({ - // url:'../modal/3200?param='+JSON.stringify(this.$data.param)+"&titlename="+this.$data.title, + // url:'../modal/3200?param='+JSON.stringify(this.param)+"&titlename="+this.title, // }); }, //鐐瑰嚮鏄剧ず娴忚瀵硅薄鏄剧ず椤甸潰 @@ -919,7 +803,7 @@ content: tip, showCancel: false, confirmText: this.translateSys( - "cancel") + 'close') }); } } @@ -936,15 +820,24 @@ uni.showModal({ title: this.translateSys("tip"), content: btn.PromptContent || this.translate("are_you_sure"), + cancelText: this.translateSys('ok'), + confirmText: this.translateSys('cancel'), success: function(res) { - if (res.confirm) { + if (res.cancel) { that.onButtonClicked(btn, style); // } else if (res.cancel) { // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷'); } } }); - } else that.onButtonClicked(btn, style); + } else { + this.handleButtonClick((done) => { + that.onButtonClicked(btn, style); + setTimeout(() => { + done(); // 閲嶇疆鐘舵� + }, 1000); + }); + } }, //鐐瑰嚮鎸夐挳鍒楄〃 actionSheetTap() { @@ -962,10 +855,11 @@ if (btn.Prompt) { uni.showModal({ title: this.translateSys("tip"), - content: btn.PromptContent || this.translate( - "are_you_sure"), + content: btn.PromptContent || this.translate("are_you_sure"), + cancelText: this.translateSys('ok'), + confirmText: this.translateSys('cancel'), success: function(res) { - if (res.confirm) { + if (res.cancel) { that.onButtonClicked(btn); // } else if (res.cancel) { // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷'); @@ -995,7 +889,7 @@ title: this.translateSys("tip"), content: this.translateSys("unrealized"), showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } } else if (btn.FunCode == "Delete") { @@ -1015,7 +909,7 @@ title: this.translateSys("tip"), content: this.translateSys("unrealized"), showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } } catch (ex) { @@ -1024,7 +918,7 @@ title: this.translateSys("error"), content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } }, @@ -1058,8 +952,10 @@ uni.showModal({ title: this.translateSys("tip"), content: this.translate("confirm_delete_data"), + cancelText: this.translateSys('ok'), + confirmText: this.translateSys('cancel'), success: function(res) { - if (res.confirm) { + if (res.cancel) { var objID = style.form.objId; if (!style.form.objId.includes('{')) objID = '{' + style.form .objId + '}'; @@ -1090,7 +986,7 @@ "delete_success"), showCancel: false, confirmText: this.translateSys( - "cancel") + 'close') }); }).catch(ex => { // console.log(ex); @@ -1100,7 +996,7 @@ content: ex.errMsg, showCancel: false, confirmText: this.translateSys( - "cancel") + 'close') }); }); } else if (res.cancel) { @@ -1163,7 +1059,7 @@ title: this.translateSys("tip"), content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } else uni.showModal({ title: this.translateSys("tip"), @@ -1172,7 +1068,7 @@ result .ret, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); return false; } else { @@ -1184,7 +1080,7 @@ title: this.translateSys("tip"), content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } @@ -1194,7 +1090,7 @@ title: this.translateSys("error"), content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); this.showError(ex); } @@ -1243,7 +1139,7 @@ 'tip_no_app_param'), showCancel: false, confirmText: this.translateSys( - "cancel") + 'close') }); return; } @@ -1268,7 +1164,7 @@ content: this.translate( "function_not_exist"), showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } @@ -1277,7 +1173,7 @@ title: this.translateSys("error"), content: this.translate("cannot_related_function"), showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } @@ -1291,7 +1187,7 @@ title: this.translateSys("error"), content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); return undefined } @@ -1314,7 +1210,7 @@ title: this.translateSys("error") + "7", content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } }, @@ -1327,12 +1223,13 @@ item.value = result.decodedata; uni.hideKeyboard(); var $this = this; - console.log(item); - if (item.oldvalue != item.value) { - item.oldvalue = item.value; + let newVal = item.value.trim() + if (newVal) { + item.oldvalue = newVal; + var attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; + this.head_styledef.form.model[attr] = newVal; var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠� var onSuffixClickCallbackEvent = item.bind .onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�@@ -1343,24 +1240,19 @@ if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠� $this.onChange(onChangeEvent); } else { - $this.where = ''; - if (item.value) - $this.where = item.fieldId + " like '%" + item - .value + "%'"; + $this.where = item.fieldId + " like '%" + newVal + "%'"; $this.query_id = ''; $this.pageindex = 1; $this.detail1StyleDefList = []; $this.loadDataGetList(); } - if (item.value) { //绗竴涓緭鍏ユ涓嶄负绌�- $this.focusMateria = true; //鍒濆鍖栵紝绗簩涓緭鍏ユfocus灞炴� - // setTimeout(function(){ - // $this.focusMateria=true; //绗簩涓緭鍏ユ鑾峰彇鐒︾偣 - setTimeout(function() { - uni.hideKeyboard(); - }, 1000); - // },500); - } + $this.focusMateria = true; //鍒濆鍖栵紝绗簩涓緭鍏ユfocus灞炴� + // setTimeout(function(){ + // $this.focusMateria=true; //绗簩涓緭鍏ユ鑾峰彇鐒︾偣 + setTimeout(function() { + uni.hideKeyboard(); + }, 1000); + // },500); // if(onSuffixClickCallbackEvent.id){ //鍚庡浘鏍囩偣鍑讳簨浠� // this.onSuffixClick(onSuffixClickCallbackEvent); // } @@ -1370,12 +1262,19 @@ } }) }, + onEnterChange(item) { //鍥炶溅锛岀偣鍑绘寜閽紝鍙栨秷鑺傜偣浜嬩欢 // console.log(item); - if (item.oldvalue != item.value) { - item.oldvalue = item.value; + let newVal = item.value + if (typeof item.value == "string") { + newVal = item.value.trim() + if (!newVal) + return + } + if (item.oldvalue != newVal) { + item.oldvalue = newVal; var attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; + this.head_styledef.form.model[attr] = newVal; var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠� var onSuffixClickCallbackEvent = item.bind .onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�@@ -1385,9 +1284,7 @@ if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠� this.onChange(onChangeEvent); } else { - this.where = ''; - if (item.value) - this.where = item.fieldId + " like '%" + item.value + "%'"; + this.where = item.fieldId + " like '%" + item.value + "%'"; this.query_id = ''; this.pageindex = 1; this.detail1StyleDefList = []; @@ -1419,7 +1316,7 @@ var dataInfo = { ed_type: 0, start_transaction: true, - class_id: this.$data.head_styledef.form.clsId, + class_id: this.head_styledef.form.clsId, class_name: '', event_id: event.id, event_name: '', @@ -1456,7 +1353,7 @@ content: tip, showCancel: false, confirmText: this - .translateSys("cancel") + .translateSys('close') }); } else uni.showModal({ title: this.translateSys( @@ -1468,7 +1365,7 @@ .ret, showCancel: false, confirmText: this.translateSys( - "cancel") + 'close') }); return false; } else { @@ -1482,41 +1379,46 @@ content: tip, showCancel: false, confirmText: this.translateSys( - "cancel") + 'close') }); - if (result.result_type == 0 && result - .action) { - result.action.forEach(item => { - if (item.action_type == - "set_dlg_attr") { - // value = {"attr":"xxx", "value":"xxx"} - var data = item.value; - $this.$data - .head_styledef.form - .items - .forEach( - async ( - ele, - index - ) => { - data.forEach( - async (ele2, - index - ) => { - if (ele - .fieldId == - ele2 - .attr - ) { - ele.value = - ele2 - .value; - } - }); - }); + if (result.result_type == 0 && result.action) { + var actionlist = result.action; + for (var j = 0; j < actionlist.length; j++) { + var action = actionlist[j]; + var action_type = action.action_type; + var value = action.value; + if (action_type == "set_dlg_attr") { + if (value) { + this.setFormValues(value) + } + } else if (action_type == "set_subtable_page_content") { + if (value.clear_confirm != false && value.clear == true && + $this.detail1StyleDefList.length > 0 + ) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�+ uni.showModal({ + title: this.translateSys('tip'), + content: this.translate("are_you_sure_clear_data"), + cancelText: $this.translateSys('ok'), + confirmText: $this.translateSys('cancel'), + success: function(res) { + if (res.cancel) { + $this.detail1StyleDefList = []; + $this.viewAceionContent(value); + } else if (res.confirm) { + $this.detail1StyleDefList = []; + $this.viewAceionContent(value); + } + } + }); + } else { + $this.detail1StyleDefList = []; + $this.viewAceionContent(value); + } } - }); + } + + // value = {"attr":"xxx", "value":"xxx"} } else { if (result.info) { uni.showModal({ @@ -1527,7 +1429,7 @@ showCancel: false, confirmText: this .translateSys( - "cancel") + 'close') }); } } @@ -1542,7 +1444,7 @@ content: ex.errMsg, showCancel: false, confirmText: this.translateSys( - "cancel") + 'close') }); }); } @@ -1557,11 +1459,164 @@ this.translate('reason') + this.translateSys( "colon") + tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } }, + setFormValues(attrs) { + const head_styledef = this.head_styledef + if (JSON.stringify(attrs) == '{}') { + return; + } + attrs.forEach(async (attr, key) => { + if (attr.choice_list) { + var dictItemList = []; + attr.choice_list.forEach(async (val, index) => { + dictItemList.push({ + text: val, + value: val + }); + }); + head_styledef.form.items.forEach(async (attr_item, index) => { + if (attr_item.name != "Layout") { + if (attr_item.fieldId == attr.attr) { + if (attr_item.useDict) { + attr_item.dict = dictItemList; + } else { + attr_item.selections = dictItemList; + } + } + } else if (attr_item.name == "Layout") { + attr_item.setting.colList.forEach((col) => { + if (col) { + if (col.fieldId == attr.attr) { + if (col.useDict) { + col.dict = dictItemList; + } else { + col.selections = dictItemList; + } + } + } + }); + } + }); + } + if (!head_styledef.form.model[attr.attr]) { + head_styledef.form.model[attr.attr] = attr.value; + } + head_styledef.form.items.forEach(async (ele) => { + if (ele.name != "Layout") { + if (ele.fieldId == attr.attr) { + ele.value = attr.value; + ele.oldvalue = attr.value; + if (ele.name == "Input") { + if (attr.prompt) ele.placeholder = attr.prompt; + } + if (attr.enable !== undefined) { + if (attr.enable) ele.disabled = false; + else ele.disabled = true; + } + } + } else if (ele.name == "Layout") { + ele.setting.colList.forEach((col) => { + if (col) { + if (col.fieldId == attr.attr) { + col.value = attr.value; + col.oldvalue = attr.value; + if (col.name == "Input") { + if (attr.prompt) col.placeholder = attr.prompt; + } + if (attr.enable !== undefined) { + if (attr.enable) col.disabled = false; + else col.disabled = true; + } + } + } + }); + } + + }) + //鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+ }) + console.log(head_styledef) + this.setData({ + head_styledef: head_styledef + }) + }, + //鍔犺浇宸茬爜鐩樺唴瀹�+ viewAceionContent(data) { + var $this = this; + if (JSON.stringify(data.content) == '{}') { + return; + } + var styleStr = JSON.stringify($this.detail1_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; + $this.detail1StyleDefList.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) $this.detail1StyleDefList.push(detailStyle); //寰呭垎鎷�+ } else { + $this.detail1StyleDefList.push(detailStyle); //寰呭垎鎷�+ } + }); + } + + }, + + onDetail1EnterChange() {}, //鐐逛腑琛ㄥ崟 onPanelClick(value) { //鐐瑰嚮闈㈡澘楂樹寒鏄剧ず // console.log(value); @@ -1600,7 +1655,7 @@ content: tip, showCancel: false, confirmText: this - .translateSys("cancel") + .translateSys('close') }); } else uni.showModal({ title: this.translateSys( @@ -1611,7 +1666,7 @@ result.ret, showCancel: false, confirmText: this.translateSys( - "cancel") + 'close') }); return false; } else { @@ -1625,7 +1680,7 @@ content: tip, showCancel: false, confirmText: this.translateSys( - "cancel") + 'close') }); if (result.result_type == 0 && result @@ -1701,7 +1756,7 @@ showCancel: false, confirmText: this .translateSys( - "cancel" + 'close' ) }); } @@ -1716,7 +1771,7 @@ showCancel: false, confirmText: this .translateSys( - "cancel") + 'close') }); } } @@ -1731,7 +1786,7 @@ content: ex.errMsg, showCancel: false, confirmText: this.translateSys( - "cancel") + 'close') }); }); } catch (ex) { @@ -1744,7 +1799,7 @@ this.translate('reason') + this.translateSys( "colon") + tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: this.translateSys('close') }); } @@ -2011,77 +2066,15 @@ }, }; </script> -<style lang="less"> +<style lang="scss"> .uni-page-modal-3200 { display: flex; flex-direction: column; height: calc(100vh - 30rpx); padding: 15rpx 0; - .v-headStyle:first-child { - margin-top: 15rpx; - } - - .v-headStyle .txt_title { - font-size: 34rpx; - text-align: right; - display: inline-block; - vertical-align: 24rpx; - } - - .v-headStyle input { - display: inline-block; - /* border: 1px solid #d5d5d5; */ - /* width: 65%; */ - width: 85%; - height: 52rpx; - line-height: 34rpx; - 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: 4rpx; - } - - .v-headStyle input::-webkit-input-placeholder { - font-size: 12rpx; - } - - .input-wrapper { - border: 1px solid #d5d5d5; - display: inline-block; - width: 65%; - line-height: 22rpx; - } - - [nvue] uni-view { - position: relative; - border: 0 solid #000; - box-sizing: border-box; - } - - .uni-input { - /* border: none; */ - } - - .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; + .v-headStyle { + width: 98%; } .v-content { @@ -2120,6 +2113,16 @@ width: 91%; display: inline-block; text-align: left; + + .uni-forms-item { + padding-bottom: 5rpx; + margin-bottom: 0; + + .uni-forms-item__label { + height: 20px !important; + padding: 0 10rpx 0 0 !important; + } + } } .dv-panel-buticon { @@ -2152,42 +2155,6 @@ border-radius: 8rpx; } - .dv-panel .txt_title { - font-size: 34rpx; - text-align: right; - display: inline-block; - } - - .dv-panel input { - vertical-align: middle; - display: inline-block; - border: 2rpx solid #d5d5d5; - width: 68%; - height: 52rpx; - line-height: 34rpx; - background: #FFF; - border-radius: 14rpx !important; - color: #2d8cf0; - padding: 6rpx 8rpx 8rpx; - font-size: 32rpx; - font-family: inherit; - box-shadow: none !important; - transition-duration: 0.1s; - margin-top: 0rpx; - } - - .dv-panel input::-webkit-input-placeholder { - font-size: 10rpx; - } - - .dv-panel .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 { display: inline-block; @@ -2223,7 +2190,7 @@ margin-top: 25rpx; padding: 20rpx; line-height: 1.5; - background: #4D6AF4; + background: #27A6E1; border: none; color: #fff; font-size: 38rpx; @@ -2238,7 +2205,7 @@ padding: 20rpx; line-height: 1.5; background: #fff; - border: none; + // border: none; color: #000; font-size: 38rpx; font-weight: bold; -- Gitblit v1.9.1