From 88606524ac78768c49d1a277808e580dc7fdbd05 Mon Sep 17 00:00:00 2001
From: cyy <cuiqian2004@163.com>
Date: 星期四, 13 六月 2024 21:38:01 +0800
Subject: [PATCH] set_subtable_page_row

---
 pages/modal/5602.vue |  146 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 127 insertions(+), 19 deletions(-)

diff --git a/pages/modal/5602.vue b/pages/modal/5602.vue
index 2f9152d..5af11bf 100644
--- a/pages/modal/5602.vue
+++ b/pages/modal/5602.vue
@@ -73,6 +73,9 @@
     display: inline-block;
 	text-align: left;
 }
+.dv-panel-input .dv-input{
+	margin-bottom: 2rpx;
+}
 .dv-panel .txt_title{
   font-size: 34rpx;
   text-align: right;
@@ -236,14 +239,24 @@
 		<!-- 琛ㄥご鏍峰紡 -->
 		<view class="v-headStyle" v-for="(item,index) in head_styledef.form.items" >
 			<text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text>
-			<view class="input-wrapper">
+			<!-- 涓嬫媺妗�鍗曢� 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="onEnterChange(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)">&#xe568;</text>
 				<input
 					class="uni-input"
-					:type="item.name=='Input'?'text':'text'" 
+					:class="item.disabled?'input-disabled':''"
+					:type="item.name=='Input'?'text':'number'" 
 					v-model="item.value"
 					:disabled="item.disabled"
 					:placeholder="item.placeholder"
@@ -286,9 +299,9 @@
 						:id="'tabpanel'+style.form.htmlobjId"
 						:class="style.form.htmlobjId==active_id?'bk-active':activelist[ii].active==true?'bk-active':''">
 						<div class="dv-panel-input">
-							<div v-for="(item,index) in style.form.items">
+							<div class="dv-input" v-for="(item,index) in style.form.items">
 								<!-- 鏅�甯冨眬 -->
-								<view v-if="item.name=='Input'">
+								<view v-if="item.name!='Layout'">
 									<text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text>
 									<span class="form-item-span" v-if="item.disabled">{{item.value}}</span>
 									<input
@@ -441,6 +454,28 @@
 	// this.focusMateria=true; 
   },	
   methods: {
+	  setData: function(obj) {
+	  	let that = this;
+	  	let keys = [];
+	  	let val, data;
+	  
+	  	Object.keys(obj).forEach(function(key) {
+	  		keys = key.split(".");
+	  		val = obj[key];
+	  		data = that.$data;
+	  		keys.forEach(function(key2, index) {
+	  			if (index + 1 == keys.length) {
+	  				that.$set(data, key2, val);
+	  			} else {
+	  				if (!data[key2]) {
+	  				that.$set(data, key2, {});
+	  				}
+	  			}
+	  		  data = data[key2];
+	  		});
+	  	});
+	  },
+	  
     async Head_UIStyleGetInfo(class_id,style_id){   //鑾峰彇鑷畾涔夎〃鍗曟牱寮� 		var $this = this;
 		var dataInfo={
@@ -460,11 +495,11 @@
 				$this.$data.head_styledef = ret.result.style_def? JSON.parse(styledef): {};
 				// this.form = this.head_styledef.form.model;
 				// console.log($this.$data.head_styledef);
-				// $this.head_styledef.form.items.forEach(async (ele,index) => {
-				//     if(ele.useDict==true){ //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
-				//         await this.DictGetInfo(ele.bind.dict,index,'mast');
-				//     }
-				// });
+				$this.head_styledef.form.items.forEach(async (ele,index) => {
+				    if(ele.useDict==true){ //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
+				        await this.DictGetInfo(ele.bind.dict,index,'mast');
+				    }
+				});
 			}else{
 				uni.showModal({title:"閿欒1",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"});
 			}
@@ -497,11 +532,11 @@
 				// var aa = JSON.stringify(this.detail1_styledef);
 				// $this.$data.detail1StyleDefList.push(JSON.parse(aa));
 				// console.log($this.$data.detail1StyleDefList);
-				// $this.detail1_styledef.form.items.forEach(async (ele,index) => {
-				//     if(ele.useDict==true){ //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
-				//         await this.DictGetInfo(ele.bind.dict,index,'sub');
-				//     }
-				// });
+				$this.detail1_styledef.form.items.forEach(async (ele,index) => {
+				    if(ele.useDict==true){ //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
+				        await this.DictGetInfo(ele.bind.dict,index,'sub');
+				    }
+				});
 			}else{
 				uni.showModal({title:"閿欒2",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"});
 			}
@@ -569,6 +604,9 @@
 						$this.head_styledef.form.model[attr] = itemName;
 					}
 					$this.head_styledef.form.items[index].dict=list;
+					var head_styledef = JSON.parse(JSON.stringify($this.head_styledef));
+					$this.head_styledef=[];
+					$this.head_styledef = head_styledef;
 				// console.log($this.$data.detail1StyleDefList);
 				}
 				else{
@@ -578,21 +616,23 @@
 						$this.detail1_styledef.form.model[attr] = itemName;
 					}
 					$this.detail1_styledef.form.items[index].dict=list;
-					console.log($this.$data.detail1_styledef);
+					var detail1_styledef = JSON.parse(JSON.stringify($this.detail1_styledef));
+					$this.detail1_styledef=[];
+					$this.detail1_styledef = detail1_styledef;
+					// console.log($this.$data.detail1_styledef);
 				}
 				
 			}else{
-				uni.showModal({title:"閿欒1.2",content:success.err_msg,showCancel:false,confirmText:"鍙栨秷"});
+				uni.showModal({title:"閿欒9.1",content:success.err_msg,showCancel:false,confirmText:"鍙栨秷"});
 			}
 		}).catch(ex=>{
 			// console.log(ex);
-			uni.showModal({title:"閿欒1.3",content:ex.errMsg,showCancel:false,confirmText:"鍙栨秷"});
+			uni.showModal({title:"閿欒9",content:ex.errMsg,showCancel:false,confirmText:"鍙栨秷"});
 		});
 	},
 	
 	ontap(item){ //鎵爜鍔熻兘
 		// var $ele = e;
-		//console.log(e.target)
 		getApp().onScan((result)=>{
 			console.log(result.decodedata);
 			item.value = result.decodedata;
@@ -618,7 +658,7 @@
 					// 	$this.focusMateria=true; //绗簩涓緭鍏ユ鑾峰彇鐒︾偣
 						setTimeout(function(){
 							uni.hideKeyboard();
-						},100);
+						},1000);
 					// },500);
 				}
 			    // if(onSuffixClickCallbackEvent.id){   //鍚庡浘鏍囩偣鍑讳簨浠�@@ -757,6 +797,52 @@
 									  }
 									});
 								}
+								else if(item.action_type == "set_subtable_page_row"){
+									// value = {"page_name":"鐮佺洏涓�, "row":[{"id":"xx"}]}
+									var value = item.value;
+									var detailStyleDefList = []
+									if(value.page_name == $this.$data.param.Sub_Page[1].Name)
+									{
+										detailStyleDefList = $this.$data.detail2StyleDefList
+									}
+									else if(value.page_name == $this.$data.param.Sub_Page[0].Name)
+									{
+										detailStyleDefList =$this.$data.detail1StyleDefList
+									}
+									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(value.page_name == $this.$data.param.Sub_Page[1].Name)
+									{
+										$this.setData({detail2StyleDefList:detailStyleDefList})
+									}
+									else if(value.page_name == $this.$data.param.Sub_Page[0].Name)
+									{
+										 $this.setData({detail1StyleDefList:detailStyleDefList})
+									}
+								}
 								else if(item.action_type == "set_dlg_attr"){
 								  // value = {"attr":"xxx", "value":"xxx"}
 								  var data = item.value;
@@ -791,6 +877,28 @@
 			
 	    }
 	},
+	operationNumber(value1, value2,operation){
+		if(operation == "+")
+		{
+			return value1 + value2
+		}
+		else if(operation == "-")
+		{
+			return value1 - value2
+		}
+		else if(operation == "*")
+		{
+			return value1 * value2
+		}
+		else if(operation == "/")
+		{
+			if(value2)
+				return value1 / value2
+			else
+				return value1 
+		}
+		else return value2 
+	},
 	//鍔犺浇姝e湪鍒嗘嫞鍐呭
 	viewAceionRow(data,type){
 		// console.log(data);

--
Gitblit v1.9.1