From 07925905f1a596e20e980de6d42db217abb753b0 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 12 十二月 2025 18:06:11 +0800
Subject: [PATCH] plugin
---
pages/modal/3200_view.vue | 1925 +++++++++++++++++++++++++++++----------------------------
1 files changed, 978 insertions(+), 947 deletions(-)
diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue
index 632cfe1..c12b727 100644
--- a/pages/modal/3200_view.vue
+++ b/pages/modal/3200_view.vue
@@ -1,969 +1,1000 @@
-<style>
-.v-headStyle .txt_title{
- font-size: 34rpx;
- text-align: right;
- display: inline-block;
- vertical-align: 12px;
-}
-.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-content{
- height: 945rpx;
- overflow: auto;
- /* border:1px solid red; */
-}
-
-/* .dv-panel-bkcolor{
- background-color:#efefef;
-} */
-.dv-panel{
- /* background-color:#efefef; */
- padding: 20rpx 20rpx 4rpx 0px;
- border-radius: 12rpx;
- margin-bottom: 20rpx;
- text-align: right;
-}
-.dv-panel-input{
- vertical-align: middle;
- width: 100%;
- display: inline-block;
- text-align: left;
-}
-.dv-panel-buticon{
- line-height: 25px;
- text-align: left;
- /* font-size: 17px; */
- padding: 0 15px;
-}
-.dv-panel-buticon .btn-padding{
- padding: 10px;
- display: inline-block;
- vertical-align: middle;
-}
-.dv-panel-buticon a i {
- font-size: 22px;
-}
-.dv-panel-buticon button{
- min-width: 60px;
- font-size: 16px;
- padding: 20rpx 20rpx;
- line-height: 1;
- background: #4D6AF4;
- border: none;
- color: #fff;
- font-weight: bold;
- border-radius: 4px;
-}
-.dv-panel .txt_title{
- font-size: 34rpx;
- text-align: right;
- display: inline-block;
- margin-bottom: 15rpx;
-}
-.dv-panel input{
- vertical-align: middle;
- display: inline-block;
- border: 1px solid #d5d5d5;
- width: 68%;
- height: 52rpx;
- line-height: 34rpx;
- background: #FFF;
- border-radius: 7px !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;
-}
-.dv-panel-button checkbox-group {
- display: inline-block;
-}
-.dv-panel-button a i {
- font-size: 18px;
-}
-.dv-panel-button button {
- height: 25px;
- font-size: 13px;
- padding: 0 12px;
-}
-.view-floor{
- text-align: center;
- padding: 0 20rpx;
- margin-top: 25rpx;
- /* border:1px solid red; */
-}
-button.btn_refresh {
- width:48%;
- margin-top: 25rpx;
- padding: 20rpx;
- line-height: 1.5;
- background: #4D6AF4;
- border: none;
- color: #fff;
- font-size: 38rpx;
- font-weight: bold;
- /* float: left; */
- display: inline-block;
- margin: 0 3px;
-}
-button.btn_cancel {
- width:49.5%;
- margin-top: 25rpx;
- padding: 20rpx;
- line-height: 1.5;
- background: #fff;
- border: none;
- color: #000;
- font-size: 38rpx;
- font-weight: bold;
- float: left;
- display: inline-block;
- margin-right: 10px;
-}
-
-.bk-active{
- background-color: #D6FCB2;
-}
-.uni-padding-wrap{
- margin-top: -4rpx;
- background-color: #98DAEA;
- width: 52px;
- height: 40px;
- text-align: center;
- border-radius: 27px;
- padding: 12px 0 0px 0;
- float: right;
- display: inline-block;
-}
-.uni-padding-wrap a{
- font-size: 20px;
-}
-</style>
-<style lang="scss">
- .demo-uni-row {
- margin-bottom: 0px;
- display: block;
- }
- ::v-deep .uni-row {
- margin-bottom: 0px;
- }
- .view-tabpage ::v-deep .uni-row {
- margin-bottom: 5px;
- }
- .demo-uni-col {
- height: 36px;
- border-radius: 5px;
- }
- .demo-uni-row .uni-input{
- width: calc(100% - 120px);
- }
-
-</style>
-
<template>
- <view class="content">
- <view class="v-content">
- <view class="dv-panel dv-panel-bkcolor">
- <div class="dv-panel-input">
- <div v-for="(item,index) in detail2_styledef.form.items">
- <!-- 鏅�甯冨眬 -->
- <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.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)"></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' && !item.disabled"
- :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' && !item.disabled">
- <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>
- <!-- 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>
- <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)"></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' && !cols.disabled"
- :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' && !cols.disabled">
- <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>
- <!-- 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>
-
- </view>
- </uni-col>
- </uni-row>
- </div>
- </div>
+ <view class="uni-page-modal-3200-view" :class="largeMode?'large-mode':''">
+ <view class="v-content">
+ <view class="dv-panel dv-panel-bkcolor">
+ <div class="dv-panel-input">
+ <!-- HTML椤甸潰绫诲瀷鏄剧ず -->
+ <view class="dv-viewHtml-Panel" v-if="ViewHtml_Panel" v-html="ViewHtml_Panel"></view>
+
+ <!-- 鑷畾涔夎〃鍗曠被鍨嬫樉绀�-->
+ <div v-if="!ViewHtml_Panel">
+ <OIForm :form="detail2_styledef.form" viewMode></OIForm>
+
+ </div>
+ </div>
+ </view>
</view>
- </view>
-
- <view class="view-floor" v-if="param.ViewPage.Page_Button">
- <!-- <button type="default" @click="cancel" class="btn_cancel"
+
+ <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>
+ <button type="default" class="btn_refresh" :class="btn.disabled?'btn_disabled':''" :disabled="btn.disabled"
+ 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">
+ <text class="mobox-normal-more" />
+ </a>
+ </view>
+ </view>
+ </view>
+ </view>
</template>
<script>
-import Base64 from '../../components/js-base64/base64.js'
-export default {
- modules:{
- Base64,
- },
- onBackPress(e){
- // console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e);
- var eventChannel = this.$scope.eventChannel;
- // const eventChannel = this.getOpenerEventChannel();
- eventChannel.emit('ExitViewEvent',"");
- // uni.navigateBack({
- // delta:1 ,//杩斿洖灞傛暟锛�鍒欎笂涓婇〉
- // });
- // return true;
- },
- data() {
- return {
- title:'鏂板',
- param: {},
- styleDef:{
- form:{
- items:[]
- }
- },
- detail2_styledef:{
- form:{
- items:[]
+ import {
+ Base64
+ } from '@/js/Base64.js';
+ import classUtils from "@/js/utils.js"
+ import {
+ showInfo,
+ showError,
+ showLoading,
+ hideLoading
+ } from "@/js/Page.js"
+ import {
+ appGetInfo,
+ dictGetInfo
+ } from "@/api/mobox.js"
+ import {
+ getUIStyleInfo,
+ runCustomEvent,
+ dataObjQuery
+ } from "@/api/data.js"
+ import OIForm from '@/components/oi-form/index.vue'
+ import buttonClickMixin from '@/mixins/button-click.js';
+
+ export default {
+ mixins: [buttonClickMixin],
+ components: {
+ OIForm
},
- },
- // detail2StyleDefList:[],
- };
- },
- async onLoad(options) {
- // console.log(options);
- uni.setNavigationBarTitle({ title: options.titlename}); //璁剧疆椤堕儴鏍囬
- this.$data.title = options.titlename;
- this.$data.param = JSON.parse(options.param);
- console.log(this.$data.param);
- this.$data.styleDef = JSON.parse(options.style);
- // console.log(this.$data.styleDef);
- this.Detail2_UIstyleGetInfo(this.param.DataCls.id,this.param.ViewPage.View_UIDef.id);
- //杩涘叆椤甸潰鍚庝簨浠�- var eventid = this.param.ViewPage.Enter_View_Event?.id;
- if(eventid){
- try {
- var obj_attr = {'S_ID':this.styleDef.form.objId};
- this.styleDef.form.attrs.forEach((attr) => {
- 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,
- input_param,
- });
- } catch (ex) {
- var tip = typeof ex == "string" ? ex : ex.message;
- uni.showModal({title:"閿欒",content:tip,showCancel:false,confirmText:"鍙栨秷"});
- }
- }
- },
- methods: {
- async Detail2_UIstyleGetInfo(class_id,style_id){ //鑾峰彇鑷畾涔夎〃鍗曟牱寮�- var $this = this;
- var dataInfo={
- class_id:class_id,
- ui_style_id:style_id,
- };
- this.$store.dispatch('UIStyleGetInfo',dataInfo).then(ret=>{
- // console.log(ret);
- if (ret.err_code == 0) {
- var styledef="";
- if(ret.result.style_def){
- //mobox2鐨剆tyle_def鏄痡son瀛楃涓�- styledef = ret.result.style_def.replace(/\\/g,"");
- //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�- if(!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result.style_def);
+ onBackPress(e) {
+ // console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e);
+ const eventChannel = this.getOpenerEventChannel();
+ // const eventChannel = this.getOpenerEventChannel();
+ eventChannel.emit('ExitViewEvent', "");
+ // uni.navigateBack({
+ // delta:1 ,//杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+ // });
+ // return true;
+ },
+ data() {
+ return {
+ largeMode: getApp().globalData.largeMode || false,
+ title: this.translateSys('add2'),
+ param: {},
+ styleDef: {
+ form: {
+ items: []
+ }
+ },
+ detail2_styledef: {
+ form: {
+ items: []
+ },
+ },
+ // detail2StyleDefList:[],
+ //鑾峰彇鏁版嵁绫荤殑HTML椤甸潰
+ ViewHtml_Panel: "",
+ ViewPageHtml_Show: {
+ name: "",
+ event: {
+ id: "",
+ name: ""
+ }
+ },
+ };
+ },
+ onReady() {
+ uni.setNavigationBarTitle({
+ title: this.title
+ }); //璁剧疆椤堕儴鏍囬
+ },
+ async onLoad(options) {
+ // console.log(options);
+ try {
+ showLoading("loading...")
+
+ this.title = options.titlename;
+ this.param = JSON.parse(options.param);
+ console.log(this.param);
+ this.styleDef = JSON.parse(options.style);
+ // console.log(this.styleDef);
+ if (this.param.ViewPage.View_UIDef.ui_type == "HTML椤甸潰") {
+ // HTML椤甸潰
+ //鑾峰彇鏁版嵁绫荤殑HTML椤甸潰
+ await this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id,
+ 'viewPage');
+ } else {
+ await this.Detail2_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id);
}
- $this.$data.detail2_styledef = ret.result.style_def? JSON.parse(styledef): {};
- $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(async(ele,index)=>{
- if(ele.name!='Layout'){
- 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(async(col,key)=>{
- if(col){
- 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:"鍙栨秷"});
- }
- }).catch(ex=>{
- // console.log(ex);
- uni.showModal({title:"閿欒1.1",content:ex.errMsg,showCancel:false,confirmText:"鍙栨秷"});
- });
-
- },
- //鏌ヨ鏁版嵁绫绘暟鎹俊鎭�- 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);
+
+
+ //杩涘叆椤甸潰鍚庝簨浠�+ var eventid = this.param.ViewPage.Enter_View_Event?.id;
+ if (eventid) {
+ try {
+ var obj_attr = {
+ 'S_ID': this.styleDef.form.objId
+ };
+ this.styleDef.form.attrs.forEach((attr) => {
+ obj_attr[attr.name] = attr.value;
+ });
+ // console.log(obj_attr);
+ var input_param = Base64.encode(JSON.stringify(obj_attr));
+ await this.runCustomEvent({
+ ed_type: 0,
+ start_transaction: true,
+ class_id: this.param.DataCls.id,
+ event_id: eventid,
+ data_obj_id: this.styleDef.form.objId,
+ obj_attr,
+ input_param,
+ });
+ } catch (ex) {
+ showError(ex, this.translateSys('error'))
+ }
}
- }else{
- uni.showModal({title:"閿欒5",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"});
+ hideLoading()
+ } catch (ex) {
+
+ hideLoading()
+ showError(ex, this.translateSys("error"));
}
- }).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:"鍙栨秷"});
+ },
+ methods: {
+ setData(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 Detail2_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�+ try {
+ var $this = this;
+ var dataInfo = {
+ class_id: class_id,
+ ui_style_id: style_id,
+ };
+ const result = await getUIStyleInfo(dataInfo)
+ var styledef = "";
+ if (result.style_def) {
+ //mobox2鐨剆tyle_def鏄痡son瀛楃涓�+ styledef = result.style_def.replace(/\\/g, "");
+ //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�+ if (!result.style_def.includes('"')) styledef = Base64.decode(result
+ .style_def);
}
-
- }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
- if (btn.Prompt) {
- uni.showModal({
- title: '鎻愮ず',
- content: btn.PromptContent || "鏄惁纭畾锛�,
- success: function (res) {
- if (res.confirm) {
- that.onButtonClicked(btn);
- // } else if (res.cancel) {
- // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
- }
- }
- });
- } else that.onButtonClicked(btn);
- },
- //鐐瑰嚮鎸夐挳鍒楄〃
- actionSheetTap() {
- var that = this
- var itemlist=[];
- this.param.ViewPage.Page_Button.forEach((btn,index) => {
- if(index>=2)
- itemlist.push(btn.ShowName);
- });
- uni.showActionSheet({
- // title: '鎸夐挳鍒楄〃',
- itemList: itemlist,
- success: (e) => {
- console.log(e.tapIndex);
- var btn = that.param.ListPage.Page_Button[e.tapIndex];
- if (btn.Prompt) {
+ $this.detail2_styledef = result.style_def ? JSON.parse(styledef) : {};
+ $this.detail2_styledef.SelBut_Checked = false;
+ // console.log($this.detail2_styledef);
+ if ($this.detail2_styledef.form?.items) {
+ $this.styleDef.form.attrs.forEach((attr) => {
+ // info[attr.name]=attr.value;
+ $this.detail2_styledef.form.items.forEach(async (ele, index) => {
+ if (ele.name != 'Layout') {
+ if (ele.fieldId == attr.name) {
+ ele.value = attr.value;
+ }
+ } else if (ele.name == 'Layout') {
+ ele.setting.colList.forEach(async (col, key) => {
+ if (col) {
+ if (col.fieldId == attr.name) {
+ col.value = attr.value;
+ }
+ }
+ });
+ }
+ });
+ });
+ }
+ setTimeout(function() {
+ var detail2_styledef = JSON.parse(JSON.stringify($this.detail2_styledef));
+ $this.detail2_styledef = [];
+ $this.detail2_styledef = detail2_styledef;
+ }, 100);
+ } catch (ex) {
+ // console.log(ex);
+ showError(ex, this.translateSys('error') + "1.1")
+ }
+
+ },
+ async Html_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�+
+ try {
+ var $this = this;
+ var dataInfo = {
+ class_id: class_id,
+ ui_style_id: style_id,
+ };
+ const result = await getUIStyleInfo(dataInfo)
+ var styledef = "";
+ if (result.style_def) {
+ //mobox2鐨剆tyle_def鏄痡son瀛楃涓�+ styledef = result.style_def.replace(/\\/g, "");
+ //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�+ if (!result.style_def.includes('"')) styledef = Base64.decode(result
+ .style_def);
+ }
+ $this.ViewPageHtml_Show = result.style_def ? JSON.parse(styledef) : {};
+ // console.log($this.ViewPageHtml_Show);
+ var obj_attr = {};
+ $this.styleDef.form.attrs.forEach((attr) => {
+ obj_attr[attr.name] = attr.value;
+ });
+ obj_attr['id'] = $this.styleDef.form.objId;
+
+ var eventid = $this.ViewPageHtml_Show.event.id;
+ if (!$this.ViewPageHtml_Show.event.id.includes('{'))
+ eventid = '{' + $this.ViewPageHtml_Show.event.id + '}';
+ //HTML椤甸潰浜嬩欢
+ $this.runCustomEvent({
+ ed_type: 0,
+ start_transaction: true,
+ class_id: $this.param.DataCls.id,
+ event_id: eventid,
+ data_obj_id: $this.styleDef.form.objId,
+ obj_attr,
+ });
+ } catch (ex) {
+ // console.log(ex);
+ showError(ex, this.translateSys('error') + "6.1")
+ }
+
+
+ },
+ //鏌ヨ鏁版嵁绫绘暟鎹俊鎭�+ 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: '',
+ };
+ const result = await dataObjQuery(dataInfo)
+ // console.log(result);
+ if (result) {
+ $this.detail1StyleDefList = [];
+ 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);
+ }
+ } catch (ex) {
+ showError(ex, this.translateSys('error') + "5.2")
+ }
+ },
+ onCheckBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || []
+ var attr = item.fieldId;
+ this.detail2_styledef.form.model[attr] = values;
+
+ },
+ onRadioBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || ""
+ var attr = item.fieldId;
+ this.detail2_styledef.form.model[attr] = values;
+ },
+ onModelValue(item) {
+ var attr = item.fieldId;
+ this.detail2_styledef.form.model[attr] = item.value;
+ },
+ onEnterChange(item) {
+ var attr = item.fieldId;
+ this.detail2_styledef.form.model[attr] = item.value;
+ },
+ //鐐瑰嚮鎸夐挳
+ onBtnClick(btn) {
+ var that = this
+ if (btn.Prompt) {
uni.showModal({
- title: '鎻愮ず',
- content: btn.PromptContent || "鏄惁纭畾锛�,
- success: function (res) {
- if (res.confirm) {
+ 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.cancel) {
that.onButtonClicked(btn);
- // } else if (res.cancel) {
- // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+ // } else if (res.cancel) {
+ // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
}
}
});
- } else that.onButtonClicked(btn);
- }
- })
- },
- //澶勭悊鐩稿叧鎸夐挳
- async onButtonClicked(btn) {
- var style = this.styleDef || '';
- try {
- var enviroment = {
- button: "top",
- button_name: btn.ShowName,
- cls_id: btn.Cls_ID,
- function: "3200",
- master: {},
- };
- if (btn.FunCode == "TriggerEvent") {
- this.triggerEvent(btn, style, enviroment);
- } else {
- uni.showModal({title:"鎻愮ず",content:"鏈疄鐜�,showCancel:false,confirmText:"鍙栨秷"});
- }
- } catch (ex) {
- var tip = typeof ex == "string" ? ex : ex.message;
- uni.showModal({title:"閿欒2",content:tip,showCancel:false,confirmText:"鍙栨秷"});
- }
- },
- //鎵ц瑙﹀彂浜嬩欢
- async triggerEvent(btn, style, enviroment) {
- try {
- var obj_attr = {'S_ID':this.styleDef.form.objId};
- style.form.attrs.forEach((attr) => {
- 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,
- });
- } catch (ex) {
- var tip = typeof ex == "string" ? ex : ex.message;
- uni.showModal({title:"閿欒3",content:tip,showCancel:false,confirmText:"鍙栨秷"});
- }
- },
- //浜嬩欢
- async runCustomEvent(dataInfo) {
- try {
- var $this = this;
- 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 == "goback_to_pre_page"){ //杩斿洖涓婁竴椤�- var value = item.value;
- // const eventChannel = this.$scope.eventChannel;
- // // const eventChannel = this.getOpenerEventChannel();
- // eventChannel.emit('ExitViewEvent',"");
- uni.navigateBack({
- delta:1 ,//杩斿洖灞傛暟锛�鍒欎笂涓婇〉
- });
- } else if(item.action_type == "hidden_button"){ //闅愯棌鎸夐挳
- var value = item.value;
- value.forEach(btn => {
- var index = $this.param.ViewPage.Page_Button.findIndex(button => button.ShowName == btn)
- if (index > -1)
- $this.param.ViewPage.Page_Button.splice(index, 1)
- })
- }
-
+ } else {
+ this.handleButtonClick((done) => {
+ that.onButtonClicked(btn);
+ setTimeout(() => {
+ done(); // 閲嶇疆鐘舵�
+ }, 1000);
+ });
+
+ }
+ },
+ //鐐瑰嚮鎸夐挳鍒楄〃
+ actionSheetTap() {
+ var that = this
+ var itemlist = [];
+ this.param.ViewPage.Page_Button.forEach((btn, index) => {
+ if (index >= 2)
+ itemlist.push(btn.ShowName);
+ });
+ uni.showActionSheet({
+ // title: '鎸夐挳鍒楄〃',
+ itemList: itemlist,
+ success: (e) => {
+ console.log(e.tapIndex);
+ var btn = that.param.ListPage.Page_Button[e.tapIndex];
+ if (btn.Prompt) {
+ 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.cancel) {
+ that.onButtonClicked(btn);
+ // } else if (res.cancel) {
+ // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+ }
+ }
});
- }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:"鍙栨秷"});
+ } else that.onButtonClicked(btn);
+ }
+ })
+ },
+ //澶勭悊鐩稿叧鎸夐挳
+ onButtonClicked(btn) {
+ this.handleButtonClick((done) => {
+ this.buttonClicked(btn);
+ setTimeout(() => {
+ done(); // 閲嶇疆鐘舵�
+ }, 1000);
+ });
+ },
+ async buttonClicked(btn) {
+ var style = this.styleDef || '';
+
+ try {
+ btn.disabled = true
+ var enviroment = {
+ button: "top",
+ button_name: btn.ShowName,
+ cls_id: btn.Cls_ID,
+ function: "3200",
+ master: {},
+ };
+ if (btn.FunCode == "TriggerEvent") {
+ await this.triggerEvent(btn, style, enviroment);
+ } else {
+ btn.disabled = false
+ showInfo(this.translateSys("unrealized"))
+
+ }
+ } catch (ex) {
+ btn.disabled = false
+ showError(ex, this.translateSys('error') + "2")
+ }
+ },
+ //鎵ц瑙﹀彂浜嬩欢
+ async triggerEvent(btn, style, enviroment) {
+ try {
+ showLoading("loading...")
+ btn.disabled = true
+ var obj_attr = {
+ 'S_ID': this.styleDef.form.objId
+ };
+ style.form.attrs.forEach((attr) => {
+ obj_attr[attr.name] = attr.value;
+ });
+ // console.log(obj_attr);
+ // let input_param = Base64.encode(JSON.stringify(obj_attr));
+ // return;
+
+ await this.runCustomEvent({
+ ed_type: 0,
+ start_transaction: true,
+ class_id: btn.Cls_ID,
+ event_id: btn.Event.ID,
+ data_obj_id: this.styleDef.form.objId,
+ obj_attr: obj_attr,
+ });
+ btn.disabled = false
+ hideLoading()
+ } catch (ex) {
+ hideLoading()
+ showError(ex, this.translateSys('error') + "3")
+ }
+ },
+ //浜嬩欢
+ async runCustomEvent(dataInfo) {
+ try {
+ var $this = this;
+ const result = await runCustomEvent(dataInfo)
+ console.log(result);
+ if (result.ret != 0 && result.ret != 1) {
+ let cls_name = result.event_info?.cls_name
+ let event_name = result.event_info?.event_name
+ tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info : result
+ .err_info
+ .join('\n') : ''
+ if (result.ret == 801) {
+ if (this.param.Only_Script_Error) {
+ let pos = tip.indexOf("锛�);
+ if (pos > -1) tip = tip.substring(pos + 1);
+ }
+ }
+ if (cls_name && event_name) tip = `鎵ц鈥�{cls_name}鈥濇暟鎹被鐨勨�${event_name}鈥濊剼鏈椂杩斿洖閿欒锛�{tip}`
+ if (result.ret == 801) showInfo(tip)
+ else showError(`${tip}锛屾彁绀猴細${result.ret}`, this.translateSys('tip'))
+ this.saving = false
+ return false
+ } else {
+ var tip = result.info ? typeof result.info == 'string' ? result.info :
+ result.info.join('\n') : '';
+ tip = tip || result.err_info
+ let time = result.info_time || 0
+ if (time)
+ showError(tip, this.translateSys('tip'))
+ else
+ showInfo(tip)
+
+ if ([0, 2, 3, 4, -1].includes(result.result_type)) {
+ if (result.result_type == 2) {
+
+ } else if (typeof result.result == 'string') {
+ showInfo(result.result)
+
+ }
+ try {
+ var actionList = result.action || []
+ actionList.forEach(item => {
+ if (item.action_type == "goback_to_pre_page") { //杩斿洖涓婁竴椤�+ var value = item.value;
+ // const eventChannel = this.getOpenerEventChannel();
+ // // const eventChannel = this.getOpenerEventChannel();
+ // eventChannel.emit('ExitViewEvent',"");
+ uni.navigateBack({
+ delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+ });
+ } else if (item.action_type == "hidden_button") { //闅愯棌鎸夐挳
+ var value = item.value;
+ value.forEach(btn => {
+ var index = $this.param.ViewPage.Page_Button
+ .findIndex(button => button.ShowName ==
+ btn)
+ if (index > -1)
+ $this.param.ViewPage.Page_Button.splice(
+ index, 1)
+ })
+ } else if (item.action_type == "set_panel_html") { //鏄剧ずHtml椤甸潰
+ // var value = item.value;
+ $this.ViewHtml_Panel = item.value;
+
+ }
+
+ });
+
+ } catch (ex) {
+ let actionList = (result.action || []).map(a => a.action_type).join(';')
+ let tip = typeof ex == 'string' ? ex : ex.message
+ tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}`
+ showError(tip, this.translateSys('tip'))
+ return
+ }
+ }
+
+ }
+
+ } catch (ex) {
+ showError(ex, this.translateSys('error') + "4.1")
+
+ }
+ },
+
+ /**
+ * 鍙敮鎸乕"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()
+ if (where.startsWith('(') && where.endsWith(')')) where = where.replace(/^\(/, '').replace(
+ /\)$/, '')
+ if (where.toLowerCase().includes(' and ')) {
+ // 浜岀骇and鏀惧湪绗竴绾ф暟缁勪腑
+ where.split(/ and /i).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.toLowerCase().includes(seps[i])) {
+ sep = seps[i]
+ break
+ }
+ }
+ if (sep) {
+ var values = l.split(new RegExp(sep, 'i'))
+ var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
+ var value = ''
+ var op = sep.trim()
+
+ if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes(
+ 'select ') && values[1]?.toLowerCase().includes(' from ')) {
+ value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').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.toLowerCase().includes(' or ')) {
+ // 浜岀骇or鏀惧湪绗簩绾у悓涓�粍鏁扮粍涓�+ var s = []
+ where.split(/ or /i).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.toLowerCase().includes(seps[i])) {
+ sep = seps[i]
+ break
+ }
+ }
+ if (sep) {
+ var values = l.split(new RegExp(sep, 'i'))
+ var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
+ var value = ''
+ var op = sep.trim()
+
+ if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes(
+ 'select ') && values[1]?.toLowerCase().includes(' from ')) {
+ value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').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.toLowerCase().includes(seps[i])) {
+ sep = seps[i]
+ break
+ }
+ }
+ if (sep) {
+ var values = l.split(new RegExp(sep, 'i'))
+ var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
+ var value = ''
+ var op = sep.trim()
+
+ if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes('select ') &&
+ values[1]?.toLowerCase().includes(' from ')) {
+ value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').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{
- uni.showModal({title:"閿欒4",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"});
- }
- }).catch(ex=>{
- // console.log(ex);
- uni.showModal({title:"閿欒4.1",content:ex.errMsg,showCancel:false,confirmText:"鍙栨秷"});
- });
- } catch (ex) {
- var tip = typeof ex == "string" ? ex : ex.message;
- uni.showModal({title:"閿欒4.2",content:"鎵ц鈥滃唴瀹瑰彉鍖栧悗鈥濅簨浠跺け璐ワ細" + tip,showCancel:false,confirmText:"鍙栨秷"});
-
- }
- },
-
- /**
- * 鍙敮鎸乕"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();
- eventChannel.emit('ExitViewEvent',"");
- uni.navigateBack({
- delta:1 ,//杩斿洖灞傛暟锛�鍒欎笂涓婇〉
- });
- },
-
-
- },
-};
+ })
+
+ if (sql.length > 0)
+ return Base64.encode(JSON.stringify({
+ model: 1,
+ condition: sql
+ }))
+ else
+ return ''
+ },
+
+ cancel(e) { //鍙栨秷
+ const eventChannel = this.getOpenerEventChannel();
+ // const eventChannel = this.getOpenerEventChannel();
+ eventChannel.emit('ExitViewEvent', "");
+ uni.navigateBack({
+ delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+ });
+ },
+ translate(t) {
+ if (typeof this.$t == "function") return this.$t(`page.${t}`)
+ else return t;
+ },
+ translateSys(t) {
+ if (typeof this.$t == "function") return this.$t(`sys.${t}`)
+ else return t;
+ },
+
+ },
+ };
</script>
+
+<style lang="scss">
+ .uni-page-modal-3200-view {
+ .v-headStyle .txt_title {
+ font-size: 34rpx;
+ text-align: right;
+ display: inline-block;
+ vertical-align: 12px;
+ }
+
+ .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: 30rpx;
+ padding: 10rpx 5rpx;
+ 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-content {
+ height: 945rpx;
+ overflow: auto;
+ /* border:1px solid red; */
+ }
+
+ /* .dv-panel-bkcolor{
+ background-color:#efefef;
+} */
+ .dv-panel {
+ /* background-color:#efefef; */
+ padding: 20rpx 20rpx 4rpx 0px;
+ border-radius: 12rpx;
+ margin-bottom: 20rpx;
+ text-align: right;
+ }
+
+ .dv-panel-input {
+ vertical-align: middle;
+ width: 100%;
+ 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 {
+ line-height: 25px;
+ text-align: left;
+ /* font-size: 17px; */
+ padding: 0 15px;
+ }
+
+ .dv-panel-buticon .btn-padding {
+ padding: 10px;
+ display: inline-block;
+ vertical-align: middle;
+ }
+
+ .dv-panel-buticon a i {
+ font-size: 22px;
+ }
+
+ .dv-panel-buticon button {
+ min-width: 60px;
+ font-size: 16px;
+ padding: 20rpx 20rpx;
+ line-height: 1;
+ background: #4D6AF4;
+ border: none;
+ color: #fff;
+ font-weight: bold;
+ border-radius: 4px;
+ }
+
+ .dv-panel .txt_title {
+ font-size: 34rpx;
+ text-align: right;
+ display: inline-block;
+ margin-bottom: 15rpx;
+ }
+
+ .dv-panel input {
+ vertical-align: middle;
+ display: inline-block;
+ border: 1px solid #d5d5d5;
+ width: 68%;
+ height: 52rpx;
+ line-height: 34rpx;
+ background: #FFF;
+ border-radius: 7px !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;
+ }
+
+ .dv-panel-button checkbox-group {
+ display: inline-block;
+ }
+
+ .dv-panel-button a i {
+ font-size: 18px;
+ }
+
+ .dv-panel-button button {
+ height: 25px;
+ font-size: 13px;
+ padding: 0 12px;
+ }
+
+ .view-floor {
+ text-align: center;
+ padding: 0 20rpx;
+ margin-top: 25rpx;
+ /* border:1px solid red; */
+ }
+
+ button.btn_refresh {
+ width: 48%;
+ margin-top: 25rpx;
+ padding: 20rpx;
+ line-height: 1.5;
+ background: #27A6E1;
+ border: none;
+ color: #fff;
+ font-size: 38rpx;
+ font-weight: bold;
+ /* float: left; */
+ display: inline-block;
+ margin: 0 3px;
+ }
+
+ button.btn_disabled {
+ background-color: #ddd;
+ color: #888;
+ }
+
+ button.btn_cancel {
+ width: 49.5%;
+ margin-top: 25rpx;
+ padding: 20rpx;
+ line-height: 1.5;
+ // background: #fff;
+ // border: none;
+ // color: #000;
+ font-size: 38rpx;
+ font-weight: bold;
+ float: left;
+ display: inline-block;
+ margin-right: 10px;
+ }
+
+ .bk-active {
+ background-color: #D6FCB2;
+ }
+
+ .uni-padding-wrap {
+ margin-top: -4rpx;
+ background-color: #98DAEA;
+ width: 52px;
+ height: 40px;
+ text-align: center;
+ border-radius: 27px;
+ padding: 12px 0 0px 0;
+ float: right;
+ display: inline-block;
+ }
+
+ .uni-padding-wrap a {
+ font-size: 20px;
+ }
+
+ .dv-viewHtml-Panel .item-label {
+ padding: 3px 5px;
+ width: 90px;
+ display: inline-block;
+ text-align: right;
+ }
+
+ .dv-viewHtml-Panel .item-span {
+ // line-height: 30px;
+ color: #2d8cf0;
+ }
+
+ .demo-uni-row {
+ margin-bottom: 0px;
+ display: block;
+ }
+
+ ::v-deep .uni-row {
+ margin-bottom: 0px;
+ }
+
+ .view-tabpage ::v-deep .uni-row {
+ margin-bottom: 5px;
+ }
+
+ .demo-uni-col {
+ height: 36px;
+ border-radius: 5px;
+ }
+
+ .demo-uni-row .uni-input {
+ width: calc(100% - 120px);
+ }
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.1