| | |
| | | } |
| | | .v-content{ |
| | | height: 945rpx; |
| | | overflow: auto; |
| | | /* border:1px solid red; */ |
| | | overflow: hide; |
| | | /* border:0.1px solid red; */ |
| | | } |
| | | .view-content{ |
| | | margin-top: 10rpx; |
| | |
| | | } |
| | | .dv-panel{ |
| | | background-color:#efefef; |
| | | padding: 20rpx 20rpx 4rpx 0px; |
| | | padding: 20rpx 20rpx 20rpx 0px; |
| | | border-radius: 12rpx; |
| | | margin-bottom: 20rpx; |
| | | text-align: right; |
| | | } |
| | | .dv-listHtml-Panel, |
| | | .dv-panel-input{ |
| | | vertical-align: middle; |
| | | width: 91%; |
| | |
| | | text-align: left; |
| | | } |
| | | .dv-panel-buticon{ |
| | | line-height: 50rpx; |
| | | line-height: 0rpx; |
| | | text-align: left; |
| | | /* font-size: 17px; */ |
| | | padding: 0 30rpx; |
| | | } |
| | | .dv-panel-buticon .btn-padding{ |
| | | padding: 20rpx; |
| | | padding: 0rpx 20rpx; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | } |
| | | .dv-panel-buticon a i { |
| | | font-size: 44rpx; |
| | | font-size: 38rpx; |
| | | } |
| | | .dv-panel-buticon button{ |
| | | min-width: 120rpx; |
| | | font-size: 32rpx; |
| | | padding: 20rpx 20rpx; |
| | | padding: 20rpx 20rpx 0rpx 20rpx; |
| | | line-height: 1; |
| | | background: #4D6AF4; |
| | | border: none; |
| | |
| | | .dv-panel-button checkbox-group { |
| | | display: inline-block; |
| | | } |
| | | .dv-panel-button uni-checkbox .uni-checkbox-input{ |
| | | width: 34rpx; |
| | | height: 34rpx; |
| | | } |
| | | .dv-panel-button a i { |
| | | font-size: 36rpx; |
| | | } |
| | |
| | | background-color: #D6FCB2; |
| | | } |
| | | .uni-padding-wrap{ |
| | | margin-top: 14rpx; |
| | | margin-top: 20rpx; |
| | | background-color: #98DAEA; |
| | | width: 104rpx; |
| | | height: 80rpx; |
| | |
| | | .input-disabled{ |
| | | background-color: #f3f3f3 !important; |
| | | } |
| | | |
| | | .dv_panel_condent{ |
| | | background-color:#D6FCB2; |
| | | padding: 20rpx; |
| | | border-radius: 12rpx; |
| | | } |
| | | .dv_panel_attr{ |
| | | margin-bottom: 10rpx; |
| | | } |
| | | .dv_panel_attr .dv_inline{ |
| | | display: inline-block; |
| | | text-align: center; |
| | | } |
| | | .dv_panel_attr i{ |
| | | vertical-align: 25px; |
| | | margin: 0 10px; |
| | | } |
| | | .dv_panel_attr .dv_inline p{ |
| | | background: #4D6AF4; |
| | | color: #fff; |
| | | padding: 10rpx 15rpx; |
| | | line-height: 1.5; |
| | | border-radius: 10rpx; |
| | | } |
| | | .scroll-Y { |
| | | height: 100%; |
| | | } |
| | | .scroll-view_H { |
| | | white-space: nowrap; |
| | | width: 100%; |
| | | } |
| | | |
| | | .dv_panel_content{ |
| | | margin: 0 10px; |
| | | } |
| | | .dv_panel_content .dv_panel_attr{ |
| | | margin-bottom: 5px; |
| | | } |
| | | .dv_panel_content .dv_panel_attr i{ |
| | | vertical-align: super; |
| | | margin: 0 10px; |
| | | } |
| | | .dv_panel_content .dv_panel_attr .circel_node{} |
| | | /* 是菱形的 */ |
| | | .dv_panel_content .dv_panel_attr .dv_diamond_node p{ |
| | | width: 50px; |
| | | height: 50px; |
| | | background-color: #4D6AF4; |
| | | transform: rotate(45deg); |
| | | -ms-transform: rotate(45deg); |
| | | -moz-transform: rotate(45deg); |
| | | -webkit-transform: rotate(45deg); |
| | | -o-transform: rotate(45deg); |
| | | margin: 15px auto; |
| | | padding: 9px; |
| | | // line-height: 28px; |
| | | text-align: center; |
| | | } |
| | | .dv_panel_content .dv_panel_attr .dv_diamond_node p span{ |
| | | color: #fff; |
| | | transform: rotate(-45deg); |
| | | display: inline-block; |
| | | text-align: center; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | // white-space: nowrap; |
| | | } |
| | | /* 默认形 */ |
| | | .dv_panel_content .dv_panel_attr .dv_box_node, |
| | | .dv_panel_content .dv_panel_attr .dv_diamond_node{ |
| | | vertical-align: middle; |
| | | display: inline-block; |
| | | text-align: center; |
| | | width: 100px; |
| | | } |
| | | .dv_panel_content .dv_panel_attr .dv_box_node p{ |
| | | background: #4D6AF4; |
| | | color: #fff; |
| | | padding: 3px 7px; |
| | | line-height: 1.5; |
| | | border-radius: 5px; |
| | | } |
| | | </style> |
| | | <style lang="scss"> |
| | | .demo-uni-row { |
| | |
| | | .demo-uni-row .uni-input{ |
| | | width: calc(100% - 120px); |
| | | } |
| | | |
| | | </style> |
| | | |
| | | <template> |
| | |
| | | :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> |
| | |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="view-content" id="tabpanel"> |
| | | <view class="dv-panel dv-panel-bkcolor" v-for="(style,ii) in detail1StyleDefList" |
| | | @click="onPanelClick(ii)" |
| | | :id="'panel'+style.form.htmlobjId" |
| | | :class="activelist[ii].active==true?'bk-active':''"> |
| | | <div class="dv-panel-button" v-if="param.ListPage.CheckBox==true"> |
| | | <checkbox-group> |
| | | <label> |
| | | <checkbox :value="style.SelBut_Checked" :checked="style.SelBut_Checked" /> |
| | | </label> |
| | | </checkbox-group> |
| | | </div> |
| | | <div class="dv-panel-input" |
| | | :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> |
| | | <span class="form-item-span" v-if="item.disabled">{{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.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> |
| | | <div class="dv-panel-button" v-if="param.ListPage.Click_View==true" > |
| | | <a @click="onViewPageClick(style)"><i class="mobox-normal-right-arrow" /></a> |
| | | </div> |
| | | <div class="dv-panel-buticon" v-if="param.ListPage.ListItem_Button" > |
| | | <view class="btn-padding" v-for="(btn,key) in param.ListPage.ListItem_Button"> |
| | | <a @click="onBtnClick(btn,style)" :title="btn.ShowName" v-if="btn.Style=='img'"> |
| | | <i :class="btn.Img" /> |
| | | </a> |
| | | <button type="default" @click="onBtnClick(btn,style)" class="btn-padding" v-else-if="btn.Style=='text'">{{btn.ShowName}}</button> |
| | | </view> |
| | | </div> |
| | | </view> |
| | | </view> |
| | | <scroll-view :scroll-top="scrollTop" :scroll-y="true" class="scroll-Y" |
| | | @scrolltolower="scrolltolower" @scroll="scroll"> |
| | | <view class="view-content" id="tabpanel"> |
| | | <view class="dv-panel dv-panel-bkcolor" v-for="(style,ii) in detail1StyleDefList" |
| | | @click="onPanelClick(ii)" |
| | | :id="'panel'+style.form.htmlobjId" |
| | | :class="activelist[ii].active==true?'bk-active':''"> |
| | | <div class="dv-panel-button" v-if="param.ListPage.CheckBox==true"> |
| | | <checkbox-group> |
| | | <label> |
| | | <checkbox :value="style.SelBut_Checked" :checked="style.SelBut_Checked" /> |
| | | </label> |
| | | </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_panel_content"> |
| | | <div class="dv_panel_attr"> |
| | | <label>No:</label> |
| | | <span>TA240129-00001</span> |
| | | </div> |
| | | <div class="dv_panel_attr"> |
| | | <div class="dv_box_node"> |
| | | <p><span>毛料线边</span></p> |
| | | <label>L002-1</label> |
| | | </div> |
| | | <i class="mobox-normal-right"></i> |
| | | <div class="dv_box_node"> |
| | | <p><span>毛料线边</span></p> |
| | | <label>L003-3</label> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | </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> |
| | | <span class="form-item-span" v-if="item.disabled">{{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.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> |
| | | <div class="dv-panel-button" v-if="param.ListPage.Click_View==true" > |
| | | <a @click="onViewPageClick(style)"><i class="mobox-normal-right-arrow" /></a> |
| | | </div> |
| | | <div class="dv-panel-buticon" v-if="param.ListPage.ListItem_Button" > |
| | | <view class="btn-padding" v-for="(btn,key) in param.ListPage.ListItem_Button"> |
| | | <a @click="onBtnClick(btn,style)" :title="btn.ShowName" v-if="btn.Style=='img'"> |
| | | <i :class="btn.Img" /> |
| | | </a> |
| | | <button type="default" @click="onBtnClick(btn,style)" class="btn-padding" v-else-if="btn.Style=='text'">{{btn.ShowName}}</button> |
| | | </view> |
| | | </div> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | |
| | | <view class="view-floor"> |
| | |
| | | else |
| | | this.isFilter=true; |
| | | }, |
| | | onBackPress(e){ |
| | | // console.log("监听返回按钮事件",e); |
| | | var eventChannel = this.$scope.eventChannel; |
| | | // const eventChannel = this.getOpenerEventChannel(); |
| | | eventChannel.emit('view_3201',""); |
| | | // uni.navigateBack({ |
| | | // delta:1 ,//返回层数,2则上上页 |
| | | // }); |
| | | // return true; |
| | | }, |
| | | data() { |
| | | return { |
| | | title:'新增', |
| | |
| | | items: [], |
| | | active_id:'', |
| | | activelist:[], |
| | | where:'', |
| | | wheres:'', |
| | | orderby:'', |
| | | query_id:'', |
| | | pageindex:1, |
| | | page_size:10, |
| | | page_count:0, |
| | | scrollTop: 0, |
| | | old: { |
| | | scrollTop: 0 |
| | | }, |
| | | isScroll:true, |
| | | //获取数据类的HTML页面 |
| | | ListHtml_Panel:"", |
| | | ListPageHtml_Show: { |
| | | name: "", |
| | | event: { |
| | | id: "", |
| | | name: "" |
| | | } |
| | | }, |
| | | }; |
| | | }, |
| | | async onLoad(options) { |
| | |
| | | if(this.param.ShowFilter) |
| | | this.isFilter=false; |
| | | //获取数据类的自定义表单参数 |
| | | this.Head_UIStyleGetInfo(this.param.DataCls.id,this.param.Query_Panel.id); |
| | | await this.Detail1_UIstyleGetInfo(this.param.DataCls.id,this.param.ListPage.ListItem_UIDef.id); |
| | | if(this.param.Query_Panel){ |
| | | this.Head_UIStyleGetInfo(this.param.DataCls.id,this.param.Query_Panel.id); |
| | | } |
| | | if(this.param.ListPage.ListItem_UIDef?.ui_type=="HTML页面"){ |
| | | // HTML页面 |
| | | //获取数据类的HTML页面 |
| | | await this.Html_UIstyleGetInfo(this.param.DataCls.id,this.param.ListPage.ListItem_UIDef.id); |
| | | }else{ |
| | | await this.Detail1_UIstyleGetInfo(this.param.DataCls.id,this.param.ListPage.ListItem_UIDef.id); |
| | | } |
| | | this.orderby = this.param.Order?this.param.Order:'T_CREATE Desc'; |
| | | if(this.param.Query_Event){ |
| | | await this.onSearChange(this.param.DataCls.id,this.param.Query_Event.id); |
| | | } else{ |
| | | this.wheres = this.param.Condition; |
| | | this.pageindex = 1; |
| | | this.page_size = 3; |
| | | this.query_id = ""; |
| | | await this.loadDataGetList(); |
| | | } |
| | | console.log(this.$data.param); |
| | |
| | | // this.focusMateria=true; |
| | | }, |
| | | methods: { |
| | | //滚动到底部后懒加载数据 |
| | | async scrolltolower(e) { |
| | | // console.log(e) |
| | | if(this.isScroll){ //判断刷新一次后不会持续刷新 |
| | | if(this.page_count==this.pageindex){ |
| | | return; |
| | | } |
| | | this.pageindex += 1; |
| | | if(this.where || this.page_count==1) { |
| | | this.query_id = ""; |
| | | this.detail1StyleDefList=[]; |
| | | } |
| | | await this.loadDataGetList(); |
| | | } |
| | | }, |
| | | scroll: function(e) { |
| | | // console.log(e.detail.scrollTop) |
| | | this.old.scrollTop = e.detail.scrollTop |
| | | }, |
| | | async Head_UIStyleGetInfo(class_id,style_id){ //获取自定义表单样式 |
| | | var $this = this; |
| | | var dataInfo={ |
| | |
| | | }); |
| | | |
| | | }, |
| | | async Html_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的style_def是json字符串 |
| | | styledef = ret.result.style_def.replace(/\\/g, ""); |
| | | //mobox3的style_def是base64字符串 |
| | | if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result |
| | | .style_def); |
| | | } |
| | | $this.ListPageHtml_Show = ret.result.style_def ? JSON.parse(styledef) : {}; |
| | | // console.log($this.ListPageHtml_Show); |
| | | } else { |
| | | uni.showModal({ |
| | | title: "错误10", |
| | | content: ret.err_msg, |
| | | showCancel: false, |
| | | confirmText: "取消" |
| | | }); |
| | | } |
| | | }).catch(ex => { |
| | | // console.log(ex); |
| | | uni.showModal({ |
| | | title: "错误10.1", |
| | | content: ex.errMsg, |
| | | showCancel: false, |
| | | confirmText: "取消" |
| | | }); |
| | | }); |
| | | |
| | | }, |
| | | async DictGetInfo(dict,index,type){ //Mobox3得到得到字典信息字典项列表 |
| | | this.data=[]; |
| | | var $this = this; |
| | |
| | | $this.head_styledef.form.model[attr] = itemName; |
| | | } |
| | | $this.head_styledef.form.items[index].dict=list; |
| | | // $this.head_styledef.form.items[index].dictitem=success.result; |
| | | // this.$store.commit("classAttrList", $this.$data.classAttrList); |
| | | var head_styledef = JSON.parse(JSON.stringify($this.head_styledef)); |
| | | $this.head_styledef=[]; |
| | | $this.head_styledef = head_styledef; |
| | | }else{ |
| | | // $this.$data.subClassAttrList[index].attr_list[key].dictitem=success.result; |
| | | // this.$store.commit("subClassAttrList", $this.$data.subClassAttrList); |
| | |
| | | uni.showModal({title:"错误3",content:ex.errMsg,showCancel:false,confirmText:"取消"}); |
| | | }); |
| | | }, |
| | | |
| | | // 执行查询事件 |
| | | async onSearChange(clsid,eventid) { |
| | | try { |
| | | if (event.id) { |
| | | if (eventid) { |
| | | var $this = this; |
| | | var dataInfo={ |
| | | ed_type: 0, |
| | |
| | | var value = item.value; |
| | | $this.wheres = value.condition; |
| | | $this.orderby = value.order?value.order:$this.orderby; |
| | | $this.pageindex = 1; |
| | | $this.query_id = ""; |
| | | $this.detail1StyleDefList=[]; |
| | | $this.loadDataGetList(); |
| | | } |
| | | |
| | |
| | | } |
| | | }, |
| | | //查询数据类数据信息 |
| | | async loadDataGetList(where){ |
| | | async loadDataGetList(){ |
| | | try{ |
| | | uni.showLoading({ |
| | | title:"加载中...", |
| | | mask:true |
| | | }); |
| | | //条件查询 |
| | | var condition = this.wheres; |
| | | if(where){ |
| | | if(this.where){ |
| | | if(condition) condition +=' and '; |
| | | condition+=where; |
| | | condition+=this.where; |
| | | } |
| | | // console.log(condition); |
| | | // console.log(this.orderby); |
| | |
| | | condition: this.toWhereBase64String(""+ condition +""), |
| | | prj_rel_type: "", |
| | | order_by: this.orderby, |
| | | page_size: 99999, |
| | | page: 1, |
| | | query_id: '', |
| | | page_size: this.page_size, |
| | | page: this.pageindex, |
| | | query_id: this.query_id, |
| | | }; |
| | | this.$store.dispatch('dataObjQuery',dataInfo).then(ret=>{ |
| | | // console.log(ret); |
| | | console.log(ret); |
| | | uni.hideLoading(); |
| | | if (ret.err_code == 0) { |
| | | // var list=[]; |
| | | $this.query_id = ''; |
| | | if(ret.result){ |
| | | $this.detail1StyleDefList=[]; |
| | | ret.result.obj_list.forEach((obj) => { |
| | | var styleStr = JSON.stringify($this.detail1_styledef); |
| | | var detailStyle = JSON.parse(styleStr); |
| | | // var info ={ |
| | | // S_ID:obj.id, |
| | | // }; |
| | | obj.attr_list.forEach((attr) => { |
| | | // info[attr.name]=attr.value; |
| | | detailStyle.form.items.forEach(ele=>{ |
| | | if(ele.name!='Layout'){ |
| | | if(ele.fieldId == attr.name) ele.value = attr.value; |
| | | } else if(ele.name=='Layout'){ |
| | | ele.setting.colList.forEach(col=>{ |
| | | if(col){ |
| | | if(col.fieldId == attr.name) col.value = attr.value; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | detailStyle.form.htmlobjId = obj.id?obj.id.replace(/-/g,'').replace('{','').replace('}',''):'null'; |
| | | detailStyle.form.objId = obj.id; |
| | | detailStyle.form.attrs = obj.attr_list; |
| | | $this.detail1StyleDefList.push(detailStyle); |
| | | $this.activelist.push({active:false}); |
| | | //list.push(info); |
| | | }); |
| | | // console.log($this.detail1StyleDefList); |
| | | $this.page_count = ret.result.page_count; |
| | | if(ret.result.page_count>1) $this.query_id = ret.result.query_id; |
| | | if($this.ListPageHtml_Show.event.id){ |
| | | ret.result.obj_list.forEach((obj) => { |
| | | var info ={ |
| | | id:obj.id, |
| | | }; |
| | | obj.attr_list.forEach((attr) => { |
| | | info[attr.name]=attr.value; |
| | | }); |
| | | var detailStyle ={ |
| | | SelBut_Checked:false, |
| | | form:{}, |
| | | info:info |
| | | }; |
| | | detailStyle.form.htmlobjId = obj.id?obj.id.replace(/-/g,'').replace('{','').replace('}',''):'null'; |
| | | detailStyle.form.objId = obj.id; |
| | | detailStyle.form.attrs = obj.attr_list; |
| | | $this.detail1StyleDefList.push(detailStyle); |
| | | $this.activelist.push({active:false}); |
| | | }); |
| | | // console.log(this.detail1StyleDefList); |
| | | var jsonlist=[]; |
| | | $this.detail1StyleDefList.forEach(attr=>{ |
| | | jsonlist.push({ |
| | | id:attr.info.id, |
| | | attrs: Object.keys(attr.info).map((a) => ({ |
| | | attr: a, |
| | | value: attr.info[a] || "", |
| | | })) |
| | | }); |
| | | }); |
| | | // console.log(jsonlist); |
| | | var data_json = Base64.encode(JSON.stringify(jsonlist)); |
| | | var eventid = $this.ListPageHtml_Show.event.id; |
| | | if (!$this.ListPageHtml_Show.event.id.includes('{')) |
| | | eventid = '{' + $this.ListPageHtml_Show.event.id + '}'; |
| | | //HTML页面事件 |
| | | $this.runCustomEvent({ |
| | | ed_type: 0, |
| | | start_transaction: true, |
| | | class_id: $this.param.DataCls.id, |
| | | event_id: eventid, |
| | | data_json, |
| | | }); |
| | | }else{ |
| | | // $this.detail1StyleDefList=[]; |
| | | ret.result.obj_list.forEach((obj) => { |
| | | var styleStr = JSON.stringify($this.detail1_styledef); |
| | | var detailStyle = JSON.parse(styleStr); |
| | | // var info ={ |
| | | // S_ID:obj.id, |
| | | // }; |
| | | obj.attr_list.forEach((attr) => { |
| | | // info[attr.name]=attr.value; |
| | | detailStyle.form.items.forEach(ele=>{ |
| | | if(ele.name!='Layout'){ |
| | | if(ele.fieldId == attr.name) ele.value = attr.value; |
| | | } else if(ele.name=='Layout'){ |
| | | ele.setting.colList.forEach(col=>{ |
| | | if(col){ |
| | | if(col.fieldId == attr.name) col.value = attr.value; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | detailStyle.form.htmlobjId = obj.id?obj.id.replace(/-/g,'').replace('{','').replace('}',''):'null'; |
| | | detailStyle.form.objId = obj.id; |
| | | detailStyle.form.attrs = obj.attr_list; |
| | | $this.detail1StyleDefList.push(detailStyle); |
| | | $this.activelist.push({active:false}); |
| | | //list.push(info); |
| | | }); |
| | | } |
| | | |
| | | // 解决view层不同步的问题 |
| | | // $this.scrollTop = $this.old.scrollTop; |
| | | $this.isScroll=false; |
| | | setTimeout(function(){ |
| | | $this.isScroll=true; |
| | | },1000); |
| | | // console.log($this.detail1StyleDefList); |
| | | } |
| | | |
| | | |
| | |
| | | }); |
| | | // console.log(obj_attr); |
| | | var input_param = Base64.encode(JSON.stringify(obj_attr)); |
| | | this.runCustomEvent({ |
| | | $this.runCustomEvent({ |
| | | ed_type: 0, |
| | | start_transaction: true, |
| | | class_id: this.param.DataCls.id, |
| | | class_id: $this.param.DataCls.id, |
| | | event_id: eventid, |
| | | obj_attr, |
| | | input_param, |
| | |
| | | if(onChangeEvent.id){ //内容变化后事件 |
| | | $this.onChange(onChangeEvent); |
| | | } else{ |
| | | var where =''; |
| | | $this.where =''; |
| | | if(item.value) |
| | | where =item.fieldId+" like '%"+item.value+"%'"; |
| | | $this.loadDataGetList(where); |
| | | $this.where =item.fieldId+" like '%"+item.value+"%'"; |
| | | $this.query_id=''; |
| | | $this.pageindex = 1; |
| | | $this.detail1StyleDefList=[]; |
| | | $this.loadDataGetList(); |
| | | } |
| | | if(item.value){ //第一个输入框不为空 |
| | | $this.focusMateria = true; //初始化,第二个输入框focus属性 |
| | |
| | | if(onChangeEvent.id){ //内容变化后事件 |
| | | this.onChange(onChangeEvent); |
| | | } else{ |
| | | var where =''; |
| | | this.where =''; |
| | | if(item.value) |
| | | where =item.fieldId+" like '%"+item.value+"%'"; |
| | | this.loadDataGetList(where); |
| | | this.where =item.fieldId+" like '%"+item.value+"%'"; |
| | | this.query_id=''; |
| | | this.pageindex = 1; |
| | | this.detail1StyleDefList=[]; |
| | | this.loadDataGetList(); |
| | | } |
| | | // if(onSuffixClickCallbackEvent.id){ //后图标点击事件 |
| | | // this.onSuffixClick(onSuffixClickCallbackEvent); |
| | |
| | | }) |
| | | // } else if(item.action_type == "refresh_cur_row"){ // |
| | | // var value = item.value; |
| | | } else if (item.action_type == "set_panel_html") { //显示Html页面 |
| | | // var value = item.value; |
| | | $this.ListHtml_Panel = item.value; |
| | | // $this.detail1StyleDefList.forEach((ele,index)=>{ |
| | | // ele.ListHtml_Panel = item.value[index]; |
| | | // }); |
| | | |
| | | } else{ |
| | | uni.showModal({title:"提示",content:"当前action_type:"+item.action_type+"未处理",showCancel:false,confirmText:"取消"}); |
| | |
| | | }, |
| | | |
| | | cancel(e){ //取消 |
| | | var eventChannel = this.$scope.eventChannel; |
| | | // const eventChannel = this.getOpenerEventChannel(); |
| | | eventChannel.emit('view_3201',""); |
| | | uni.navigateBack({ |
| | | delta:1 //返回层数,2则上上页 |
| | | delta:1 ,//返回层数,2则上上页 |
| | | }); |
| | | }, |
| | | /** |