From db95b21bd883df9cbbad97d86bb8e94709ffa312 Mon Sep 17 00:00:00 2001
From: jt <jt@activesoft.com.cn>
Date: 星期四, 14 三月 2024 10:53:20 +0800
Subject: [PATCH] test

---
 pages/modal/3200_view.vue |  377 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 339 insertions(+), 38 deletions(-)

diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue
index 95d8df8..632cfe1 100644
--- a/pages/modal/3200_view.vue
+++ b/pages/modal/3200_view.vue
@@ -105,6 +105,7 @@
   font-size: 34rpx;
   text-align: right;
   display: inline-block;
+  margin-bottom: 15rpx;
 }
 .dv-panel input{
 	vertical-align: middle;
@@ -149,11 +150,13 @@
 	padding: 0 12px;
 }
 .view-floor{
+	text-align: center;
 	padding: 0 20rpx;
+	margin-top: 25rpx;
 	/* border:1px solid red; */
 }
 button.btn_refresh {
-	width:49.5%;
+	width:48%;
 	margin-top: 25rpx;
 	padding: 20rpx;
 	line-height: 1.5;
@@ -162,8 +165,9 @@
 	color: #fff;
     font-size: 38rpx;
 	font-weight: bold;
-	float: left;
+	/* float: left; */
 	display: inline-block;
+	margin: 0 3px;
 }
 button.btn_cancel {
 	width:49.5%;
@@ -184,7 +188,7 @@
   background-color: #D6FCB2;
 }
 .uni-padding-wrap{
-  margin-top: 14rpx;
+  margin-top: -4rpx;
   background-color: #98DAEA;
   width: 52px;
   height: 40px;
@@ -228,13 +232,13 @@
 		        <!-- 鏅�甯冨眬 -->
 		        <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>
+		        	<span class="form-item-span" v-if="item.disabled">{{item.value2?'#'+item.value+'#'+item.value2:item.value}}</span>
 		        	<!-- 鏂囨湰妗�鏁板瓧妗�-->
 		        	<view class="dv_input" v-if="(item.name=='Input' || item.name=='InputNumber') && !item.disabled">
 		        		<text v-if="item.setting.prefix" 
 		        			class="uni-icon" 
 		        			:class="[item.setting.prefix]"
-		        			@change="onchange(item)">&#xe568;</text>
+		        			@change="onChange(item)">&#xe568;</text>
 		        		<input class="uni-input" :class="item.disabled?'input-disabled':''" 
 		        			:type="item.name=='Input'?'text':item.name=='InputNumber'?'number':'text'" 
 		        			v-model="item.value"
@@ -248,14 +252,14 @@
 		        		<text v-if="item.setting.suffix" 
 		        			class="uni-icon" 
 		        			:class="[item.setting.suffix]"
-		        			@click="onchange(item)">&#xe568;</text>
+		        			@click="onChange(item)">&#xe568;</text>
 		        	</view>
 		        	<!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections-->
 		        	<uni-data-select id="dv_select" v-if="item.name=='Select' && !item.disabled"
 		        		:class="item.disabled?'input-disabled':''" 
 		        		v-model="item.value"
 		        		:localdata="item.dict"
-		        		@change="onchange(item)"
+		        		@change="onChange(item)"
 		        		:disabled="item.disabled"
 		        		:clear="false"
 		        	></uni-data-select>
@@ -305,12 +309,12 @@
 		        		: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>
-		        			<span class="form-item-span" v-if="cols.disabled">{{cols.value}}</span>
+		        			<span class="form-item-span" v-if="cols.disabled">{{cols.value2?'#'+cols.value+'#'+cols.value2:cols.value}}</span>
 		        			<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)">&#xe568;</text>
+		        					@change="onChange(cols)">&#xe568;</text>
 		        				<input class="uni-input" :class="cols.disabled?'input-disabled':''" 
 		        					:type="cols.name=='Input'?'text':cols.name=='InputNumber'?'number':'text'" 
 		        					v-model="cols.value"
@@ -324,14 +328,14 @@
 		        				<text v-if="cols.setting.suffix" 
 		        					class="uni-icon" 
 		        					:class="[cols.setting.suffix]"
-		        					@click="onchange(cols)">&#xe568;</text>
+		        					@click="onChange(cols)">&#xe568;</text>
 		        			</view>
 		        			<!-- 涓嬫媺妗�鍗曢� cols.useDict?cols.dict:cols.selections-->
 		        			<uni-data-select id="dv_select" v-if="cols.name=='Select' && !cols.disabled"
 		        				:class="cols.disabled?'input-disabled':''" 
 		        				v-model="cols.value"
 		        				:localdata="cols.dict"
-		        				@change="onchange(cols)"
+		        				@change="onChange(cols)"
 		        				:disabled="cols.disabled"
 		        				:clear="false"
 		        			></uni-data-select>
@@ -383,19 +387,19 @@
 		</view>
 	  </view>
 		
-	  <view class="view-floor">
-	  	<button type="default" @click="cancel" class="btn_cancel" 
-		  :style="{'width':param.ViewPage.Page_Button.length>1?'39.5%':'48.5%'}">杩斿洖</button>
-		<view v-if="param.ViewPage.Page_Button">
-			<button type="default" class="btn_refresh" @click="onBtnClick(param.ViewPage.Page_Button[0])" 
-			  :style="{'width':param.ViewPage.Page_Button.length>1?'39.5%':'48.5%'}">{{param.ViewPage.Page_Button[0].ShowName}}</button>
-			
-			<view class="uni-padding-wrap" v-if="param.ViewPage.Page_Button.length>1">
-				<view class="uni-btn-v">
-					<a @tap="actionSheetTap"><Icon class="mobox-normal-more"/></a>
-				</view>
-			</view>
-		</view>
+	  <view class="view-floor" v-if="param.ViewPage.Page_Button">
+	  	<!-- <button type="default" @click="cancel" class="btn_cancel" 
+		  :style="{'width':param.ViewPage.Page_Button.length>1?'39.5%':'48.5%'}">杩斿洖</button> -->
+		  <button type="default" class="btn_refresh" v-for="(btn,index) in param.ViewPage.Page_Button" 
+		  	v-if="index<2" @click="onBtnClick(btn)" 
+		  	:style="{'width':param.ViewPage.Page_Button.length==1?'96%':param.ViewPage.Page_Button.length>2?'39.5%':'48%'}"
+		  >{{btn.ShowName}}</button>
+		  	
+		  <view class="uni-padding-wrap" v-if="param.ViewPage.Page_Button.length>2">
+		  	<view class="uni-btn-v">
+		  		<a @tap="actionSheetTap"><Icon class="mobox-normal-more"/></a>
+		  	</view>
+		  </view>
 	  </view>
     </view>
 </template>
@@ -446,14 +450,15 @@
 	var eventid = this.param.ViewPage.Enter_View_Event?.id;
 	if(eventid){
 	  try {
-	    var obj_attr = [{attr: 'S_ID',value:this.styleDef.form.objId}];
+		var obj_attr = {'S_ID':this.styleDef.form.objId};
 	    this.styleDef.form.attrs.forEach((attr) => {
-	        obj_attr.push({attr: attr.name,value: attr.value});
+		  obj_attr[attr.name]=attr.value;
 	    });
 	    // console.log(obj_attr);
 	    var input_param = Base64.encode(JSON.stringify(obj_attr));
 	    this.runCustomEvent({
 	        ed_type: 0,
+            start_transaction: true,
 	        class_id: this.param.DataCls.id,
 	        event_id: eventid,
 	        obj_attr,
@@ -483,22 +488,45 @@
 				     if(!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result.style_def);
 				}
 				$this.$data.detail2_styledef = ret.result.style_def? JSON.parse(styledef): {};
-				$this.$data.detail2_styledef.SelBut_Checked = true;
+				$this.$data.detail2_styledef.SelBut_Checked = false;
 				// console.log($this.$data.detail2_styledef);
 				$this.styleDef.form.attrs.forEach((attr) => {
 				  // info[attr.name]=attr.value;
-				  $this.detail2_styledef.form.items.forEach(ele=>{
+				  $this.detail2_styledef.form.items.forEach(async(ele,index)=>{
 				    if(ele.name!='Layout'){
-				      if(ele.fieldId == attr.name) ele.value = attr.value;
+				      if(ele.fieldId == attr.name){
+				         ele.value = attr.value;
+				        //浠诲姟琛ㄥ彧鏈変粨搴撳簱鍖鸿揣浣嶇紪鐮侊紝鏍规嵁缂栫爜鏌ヨ鍚嶇О
+				        if(ele.fieldId == 'S_START_WH' || ele.fieldId == 'S_END_WH') 
+				          await $this.dataObjQuery('Warehouse',"S_CODE='"+ele.value+"'",index,-1);
+				        else if(ele.fieldId == 'S_START_AREA' || ele.fieldId == 'S_END_AREA') 
+				          await $this.dataObjQuery('Area',"S_CODE='"+ele.value+"'",index,-1);
+				        else if(ele.fieldId == 'S_START_LOC' || ele.fieldId == 'S_END_LOC') 
+				          await $this.dataObjQuery('Location',"S_CODE='"+ele.value+"'",index,-1);
+				      }
 				    } else if(ele.name=='Layout'){
-				      ele.setting.colList.forEach(col=>{
+				      ele.setting.colList.forEach(async(col,key)=>{
 				        if(col){
-				          if(col.fieldId == attr.name) col.value = attr.value;
+				          if(col.fieldId == attr.name){
+				            col.value = attr.value;
+				            //浠诲姟琛ㄥ彧鏈変粨搴撳簱鍖鸿揣浣嶇紪鐮侊紝鏍规嵁缂栫爜鏌ヨ鍚嶇О
+				            if(col.fieldId == 'S_START_WH' || col.fieldId == 'S_END_WH') 
+				              await $this.dataObjQuery('Warehouse',"S_CODE='"+col.value+"'",index,key);
+				            else if(col.fieldId == 'S_START_AREA' || col.fieldId == 'S_END_AREA') 
+				              await $this.dataObjQuery('Area',"S_CODE='"+col.value+"'",index,key);
+				            else if(col.fieldId == 'S_START_LOC' || col.fieldId == 'S_END_LOC') 
+				              await $this.dataObjQuery('Location',"S_CODE='"+col.value+"'",index,key);
+				          }
 				        }
 				      });
 				    }
 				  });
 				});
+				setTimeout(function(){
+					var detail2_styledef = JSON.parse(JSON.stringify($this.detail2_styledef));
+					$this.detail2_styledef=[];
+					$this.detail2_styledef = detail2_styledef;
+				},100);
 			}else{
 				uni.showModal({title:"閿欒1",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"});
 			}
@@ -508,6 +536,136 @@
 		});
 	    
 	},
+	//鏌ヨ鏁版嵁绫绘暟鎹俊鎭�+	async dataObjQuery(clsid,where,index,key){   
+	  try{
+	    var $this = this;
+		var dataInfo={
+			class_id: clsid,
+			attrs: [],
+			condition: this.toWhereBase64String(""+ where +""), 
+			prj_rel_type: "",
+			order_by: this.orderby,
+			page_size: 99999,
+			page: 1,
+			query_id: '',
+		};
+		this.$store.dispatch('dataObjQuery',dataInfo).then(ret=>{
+			// console.log(ret);
+			if (ret.err_code == 0) {
+				if(ret.result){
+				  $this.detail1StyleDefList=[];
+				  ret.result.obj_list.forEach((obj) => {
+				    var info ={
+				        S_ID:obj.id,
+				    };
+				    obj.attr_list.forEach((attr) => {
+				      info[attr.name]=attr.value;
+				    });
+					if(key != -1)
+					  $this.detail2_styledef.form.items[index].setting.colList[key].value2=info.S_NAME;
+					else
+					  $this.detail2_styledef.form.items[index].value2=info.S_NAME;
+				  });
+				  // console.log($this.detail2_styledef);
+				}
+			}else{
+				uni.showModal({title:"閿欒5",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"});
+			}
+		}).catch(ex=>{
+			// console.log(ex);
+			uni.showModal({title:"閿欒5.1",content:ex.errMsg,showCancel:false,confirmText:"鍙栨秷"});
+		});
+	  } catch (ex) {
+	    var tip = typeof ex == "string" ? ex : ex.message;
+		uni.showModal({title:"閿欒5.2",content:tip,showCancel:false,confirmText:"鍙栨秷"});
+	  }
+	},
+	
+	// 鍐呭鍙樺寲鍚庝簨浠�+	async onChange(event) {
+	    try {
+	        if (event.id) {
+	          var obj_attr = this.detail2_styledef.form.model;
+	          // console.log(obj_attr);
+	          var input_param = Base64.encode(
+	            JSON.stringify(
+	              Object.keys(obj_attr).map((a) => ({
+	                attr: a,
+	                value: obj_attr[a] || "",
+	              }))
+	            )
+	          );
+			  var $this = this;
+			  var dataInfo={
+	            ed_type: 0,
+				start_transaction: true,
+	            class_id: this.$data.detail2_styledef.form.clsId,
+				class_name: '',
+	            event_id: event.id,
+				event_name: '',
+				data_obj_id: '',
+	            obj_attr: obj_attr,
+				prj_id: '',
+				ref_cls_id: '',
+				rel_obj_id: '',
+				user_login: '',
+				data_json: '',
+				compose_info: '',
+				ext_info: '',
+				global_attr: '',
+	            input_param: input_param,
+	          };
+			  this.$store.dispatch('runCustomEvent',dataInfo).then(ret=>{
+			  	// console.log(ret);
+			  	if (ret.err_code == 0) {
+					var result = ret.result; 
+					if (result.ret != 0) {
+					    var tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info : result.err_info.join('<br/>') : '';
+					    if (result.ret == 801) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"});
+					    else uni.showModal({title:'鎻愮ず',content:tip+',鎻愮ず:'+result.ret,showCancel:false,confirmText:"鍙栨秷"});
+						return false;
+					}else{
+						var tip = result.info ? typeof result.info == 'string' ? result.info : result.info.join('<br/>') : '';
+						if (tip) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"});
+					
+						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.detail2_styledef.form.items.forEach(async (ele,index) => {
+								    data.forEach(async (ele2,index) => {
+								      if(ele.fieldId == ele2.attr){
+								        ele.value = ele2.value;
+								      }
+								    });
+								  });
+								}
+							});
+						}else{
+							// this.detail2StyleDefList=[];
+							if(result.info){
+								uni.showModal({title:"鎻愮ず",content:result.info,showCancel:false,confirmText:"鍙栨秷"});
+							}
+						}
+					}
+			  		
+			  	}else{
+			  		uni.showModal({title:"閿欒8",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"});
+			  	}
+			  }).catch(ex=>{
+			  	// console.log(ex);
+			  	uni.showModal({title:"閿欒8.1",content:ex.errMsg,showCancel:false,confirmText:"鍙栨秷"});
+			  });
+	        }
+	    } catch (ex) {
+	        var tip = typeof ex == "string" ? ex : ex.message;
+			uni.showModal({title:"閿欒8.2",content:"鎵ц鈥滃唴瀹瑰彉鍖栧悗鈥濅簨浠跺け璐ワ細" + tip,showCancel:false,confirmText:"鍙栨秷"});
+			
+	    }
+	},
+	
 	//鐐瑰嚮鎸夐挳
 	onBtnClick(btn){
 	  var that = this
@@ -529,8 +687,9 @@
 	actionSheetTap() {
 	  	var that = this
 		var itemlist=[];
-		this.param.ViewPage.Page_Button.forEach((btn) => {
-			itemlist.push(btn.ShowName);
+		this.param.ViewPage.Page_Button.forEach((btn,index) => {
+			if(index>=2)
+				itemlist.push(btn.ShowName);
 		});
 	  	uni.showActionSheet({
 	  		// title: '鎸夐挳鍒楄〃',
@@ -578,15 +737,16 @@
 	//鎵ц瑙﹀彂浜嬩欢
 	async triggerEvent(btn, style, enviroment) {
 	  try {
-	    var obj_attr = [{attr: 'S_ID',value:this.styleDef.form.objId}];
+		var obj_attr = {'S_ID':this.styleDef.form.objId};
 	    style.form.attrs.forEach((attr) => {
-	      obj_attr.push({attr: attr.name,value: attr.value});
+		  obj_attr[attr.name]=attr.value;
 	    });
 	    // console.log(obj_attr);
 	    // let input_param = Base64.encode(JSON.stringify(obj_attr));
 	    // return;
 	    this.runCustomEvent({
 	        ed_type: 0,
+            start_transaction: true,
 	        class_id: btn.Cls_ID,
 	        event_id: btn.Event.ID,
 	        obj_attr: obj_attr,
@@ -601,14 +761,14 @@
 	    try {
 			var $this = this;
 			this.$store.dispatch('runCustomEvent',dataInfo).then(ret=>{
-			  	// console.log(ret);
+			  	console.log(ret);
 			  	if (ret.err_code == 0) {
 					var result = ret.result; 
 					if (result.ret != 0) {
 					    var tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info : result.err_info.join('<br/>') : '';
 					    if (result.ret == 801) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"});
 					    else uni.showModal({title:'鎻愮ず',content:tip+',鎻愮ず:'+result.ret,showCancel:false,confirmText:"鍙栨秷"});
-						return false
+						return false;
 					}else{
 						var tip = result.info ? typeof result.info == 'string' ? result.info : result.info.join('<br/>') : '';
 						if (tip) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"});
@@ -630,7 +790,7 @@
 									    if (index > -1) 
 											$this.param.ViewPage.Page_Button.splice(index, 1)
 									})
-								}
+								} 
 								
 							});
 						}else{
@@ -653,6 +813,147 @@
 	    }
 	},
 	
+	/**
+	 * 鍙敮鎸乕"column1='A' or column2='B'", "column3='C' and column4='D'", "column5='E'"]杩欑鏍煎紡
+	 * {
+	 *     "model": 0 / 1,
+	 *     "condition":
+	 *     [
+	 *         [
+	 *             { },
+	 *             { },
+	 *             { }
+	 *         ],
+	 *         [
+	 *             { }
+	 *         ],
+	 *         [
+	 *             { }
+	 *         ]
+	 *     ]
+	 * }
+	 */
+	toWhereBase64String(list) {
+	    if (typeof list == 'string') list = [list]
+	    var sql = []
+	    var seps = [' not in', ' in', '<>', '!=', '<=', '>=', '<', '=', '>', ' like']
+	    list.forEach(ls => {
+	        var where = ls.trim().toLowerCase()
+	        if (where.startsWith('(') && where.endsWith(')')) where = where.replace(/^\(/, '').replace(/\)$/, '')
+	        if (where.includes(' and ')) {
+	            // 浜岀骇and鏀惧湪绗竴绾ф暟缁勪腑
+	            where.split(' and ').forEach(li => {
+	                var l = li.trim()
+	                if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '')
+	                var sep = ''
+	                for (var i = 0; i < seps.length; i++) {
+	                    if (l.includes(seps[i])) {
+	                        sep = seps[i]
+	                        break
+	                    }
+	                }
+	                if (sep) {
+	                    var values = l.split(sep)
+	                    var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
+	                    var value = ''
+	                    var op = sep.trim()
+	
+	                    if ([' in', ' not in'].includes(sep) && values[1].includes('select ') && values[1].includes(' from ')) {
+	                        value = l.replace(field, '').replace(/^\s*(in|not in)\s*/, '').trim()
+	                        if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '').replace(/\)$/, '').trim()
+	                    }
+	                    else {
+	                        value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '')
+	
+	                        if (['in', 'not in'].includes(op)) {
+	                            value = value.replace(/^\(/, '').replace(/\)$/, '')
+	                            value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, ''))
+	                        }
+	                    }
+	                    sql.push([{ field, value, op }])
+	                }
+	            })
+	        }
+	        else if (where.includes(' or ')) {
+	            // 浜岀骇or鏀惧湪绗簩绾у悓涓�粍鏁扮粍涓�+	            var s = []
+	            where.split(' or ').forEach(li => {
+	                var l = li.trim()
+	                if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '')
+	                var sep = ''
+	                for (var i = 0; i < seps.length; i++) {
+	                    if (l.includes(seps[i])) {
+	                        sep = seps[i]
+	                        break
+	                    }
+	                }
+	                if (sep) {
+	                    var values = l.split(sep)
+	                    var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
+	                    var value = ''
+	                    var op = sep.trim()
+	
+	                    if ([' in', ' not in'].includes(sep) && values[1].includes('select ') && values[1].includes(' from ')) {
+	                        value = l.replace(field, '').replace(/^\s*(in|not in)\s*/, '').trim()
+	                        if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '').replace(/\)$/, '').trim()
+	                    }
+	                    else {
+	                        value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '')
+	
+	                        if (['in', 'not in'].includes(op)) {
+	                            value = value.replace(/^\(/, '').replace(/\)$/, '')
+	                            value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, ''))
+	                        }
+	                    }
+	                    sql.push([{ field, value, op }])
+	                }
+	            })
+	            sql.push(s)
+	        }
+	        else {
+	            var li = where
+	            // 鍗曚竴鏌ヨ鏉′欢鐩存帴鏀惧湪绗竴绾ф暟缁勪腑
+	            var l = li.trim()
+	            if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '')
+	            var sep = ''
+	            for (var i = 0; i < seps.length; i++) {
+	                if (l.includes(seps[i])) {
+	                    sep = seps[i]
+	                    break
+	                }
+	            }
+	            if (sep) {
+	                var values = l.split(sep)
+	                var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
+	                var value = ''
+	                var op = sep.trim()
+	
+	                if ([' in', ' not in'].includes(sep) && values[1].includes('select ') && values[1].includes(' from ')) {
+	                    value = l.replace(field, '').replace(/^\s*(in|not in)\s*/, '').trim()
+	                    if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '').replace(/\)$/, '').trim()
+	                }
+	                else {
+	                    value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '')
+	
+	                    if (['in', 'not in'].includes(op)) {
+	                        value = value.replace(/^\(/, '').replace(/\)$/, '')
+	                        value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, ''))
+	                    }
+	                }
+	                sql.push([{ field, value, op }])
+	            }
+	        }
+	    })
+	
+	    if (sql.length > 0)
+	        return Base64.encode(JSON.stringify({
+	            model: 1,
+	            condition: sql
+	        }))
+	    else
+	    return ''
+	},
+	
 	cancel(e){ //鍙栨秷
 		var eventChannel = this.$scope.eventChannel;
 		// const eventChannel = this.getOpenerEventChannel();

--
Gitblit v1.9.1