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 | 326 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 226 insertions(+), 100 deletions(-) diff --git a/pages/modal/3200.vue b/pages/modal/3200.vue index c5309ae..f5ffc6b 100644 --- a/pages/modal/3200.vue +++ b/pages/modal/3200.vue @@ -1,5 +1,5 @@ <template> - <view class="uni-page-modal-3200"> + <view class="uni-page-modal-3200" :class="largeMode?'large-mode':''"> <view class="v-content"> <!-- 琛ㄥご鏍峰紡 --> <OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @on-focus="ontap" @@ -25,42 +25,8 @@ </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%;'"> - <uni-forms class="v-area dv-panel" label-align="right"> - <view v-for="(item,index) in style.form.items" :key="index"> - <!-- 鏍呮牸甯冨眬 --> - <uni-row v-if="item.name == 'Layout'" :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" :key="key"> - <uni-forms-item v-if="col != null" - :label="col.labelWidth === 0 ? '' : col.label? col.label+'锛�:''" - :label-width="col.labelWidth || col.labelWidth === 0 ? col.labelWidth : 100+'px'"> - <view v-if="col.disabled">{{col.value}}</view> - <input class="uni-input" - v-else-if="col.name=='Input' || col.name=='InputNumber'" - :type="col.name=='InputNumber'?'number':'text'" - v-model="col.value" :placeholder="col.placeholder" - :maxlength="-1" /> - <view v-else>{{col.value}}</view> + <OIForm class="v-area dv-panel" :form="style.form.items" viewMode></OIForm> - </uni-forms-item> - <uni-forms-item v-else label=""></uni-forms-item> - </uni-col> - </uni-row> - <uni-forms-item v-else - :label="item.labelWidth === 0 ? '' : item.label? item.label+'锛�:''" - :label-width="item.labelWidth || item.labelWidth === 0 ? item.labelWidth : 100+'px'" - :style="{ textAlign: item.setting.align }"> - <view v-if="item.disabled">{{item.value}}</view> - <input v-else-if="item.name=='Input' || item.name=='InputNumber' " - class="uni-input" :type="item.name=='InputNumber'?'number':'text'" - v-model="item.value" :disabled="item.disabled" - :placeholder="item.placeholder" :maxlength="-1" /> - <view v-else>{{item.value}}</view> - - </uni-forms-item> - </view> - </uni-forms> </div> <div class="dv-panel-button" v-if="param.ListPage.Click_View==true"> <a @click="onViewPageClick(style)"><i class="mobox-normal-right-arrow" /></a> @@ -100,7 +66,7 @@ <script> import { Base64 - } from '@/js/Base64.js'; + } from '@/js/Base64.js'; import classUtils from "@/js/utils.js" import { appGetInfo, @@ -142,6 +108,7 @@ }, data() { return { + largeMode: getApp().globalData.largeMode || false, title: this.translateSys('add2'), isFilter: true, param: {}, @@ -375,7 +342,8 @@ $this.head_styledef.form .model[ele.fieldId] = itemName; } - $this.head_styledef.form.items[index].dict = selections.map((a) => { + $this.head_styledef.form.items[index].selections = selections.map(( + a) => { return { value: a.value, text: a.label @@ -386,6 +354,25 @@ } }); + 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) { @@ -1395,38 +1382,43 @@ '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({ @@ -1472,6 +1464,158 @@ } }, + 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) { //鐐瑰嚮闈㈡澘楂樹寒鏄剧ず @@ -1958,37 +2102,9 @@ .dv-panel { background-color: #efefef; padding: 20rpx 20rpx 20rpx 0px; - - .uni-forms-item { - padding-bottom: 5rpx; - margin-bottom: 0; - - .uni-forms-item__label { - height: 20px !important; - padding: 0 10rpx 0 0 !important; - } - - .uni-input { - width: calc(100% - 12rpx); - padding: 5rpx; - border: 1px solid #d5d5d5; - color: #2d8cf0; - height: 20px; - background: #FFF; - line-height: 20px; - border-radius: 6px !important; - font-size: 14px; - font-family: inherit; - box-shadow: none !important; - transition-duration: 0.1s; - vertical-align: middle; - } - - .uni-input:hover { - border: 1px solid rgb(41, 121, 255); - } - } - + border-radius: 12rpx; + margin-bottom: 20rpx; + text-align: right; } .dv-listHtml-Panel, @@ -1997,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 { -- Gitblit v1.9.1