| | |
| | | <style> |
| | | .v-headStyle:first-child{ |
| | | margin-top: 15rpx; |
| | | } |
| | | .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; |
| | | } |
| | | .view-content{ |
| | | min-height: 700rpx; |
| | | /* border:1px solid red; */ |
| | | } |
| | | .dv-panel{ |
| | | background-color:#efefef; |
| | | padding: 20rpx 20rpx 4rpx 0px; |
| | | border-radius: 12rpx; |
| | | margin: 10rpx 0 20rpx 0; |
| | | text-align: right; |
| | | } |
| | | .dv-panel-input{ |
| | | width: 100%; |
| | | display: inline-block; |
| | | text-align: left; |
| | | } |
| | | .dv-panel-input .dv-input{ |
| | | margin-bottom: 2rpx; |
| | | } |
| | | .dv-panel .txt_title{ |
| | | font-size: 34rpx; |
| | | text-align: right; |
| | | display: inline-block; |
| | | } |
| | | |
| | | .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; |
| | | margin-right: 20rpx; */ |
| | | width: 100%; |
| | | text-align: left; |
| | | padding-bottom: 20rpx; |
| | | } |
| | | .dv-panel-button checkbox-group { |
| | | /* float: left; */ |
| | | padding-left: 20px; |
| | | display: inline-block; |
| | | } |
| | | .dv-panel-button button { |
| | | text-align: left; |
| | | line-height: 1.8; |
| | | border: none; |
| | | font-size: 34rpx; |
| | | width: 180rpx; |
| | | display: inline-block; |
| | | float: right; |
| | | text-align: center; |
| | | } |
| | | button.btn_cancel { |
| | | width:49.5%; |
| | | margin-top: 50rpx; |
| | | padding: 20rpx; |
| | | line-height: 1.5; |
| | | border: none; |
| | | font-size: 38rpx; |
| | | font-weight: bold; |
| | | float: left; |
| | | display: inline-block; |
| | | } |
| | | button.btn_add { |
| | | width:49.5%; |
| | | margin-top: 50rpx; |
| | | padding: 20rpx; |
| | | line-height: 1.5; |
| | | border: none; |
| | | font-size: 38rpx; |
| | | font-weight: bold; |
| | | float: right; |
| | | display: inline-block; |
| | | } |
| | | .logo { |
| | | height: 100rpx; |
| | | width: 460rpx; |
| | | display: flex; |
| | | margin: 38% auto; |
| | | } |
| | | .dv-border{ |
| | | border: 1px solid red; |
| | | } |
| | | .view-imagetext{ |
| | | text-align: center; |
| | | width: 88%; |
| | | padding: 20rpx 40rpx 0px 40rpx; |
| | | /* border:1px solid red; */ |
| | | } |
| | | .view-imagetext .view-imagetext-uploadlist { |
| | | padding: 30rpx 0px 10rpx 0px; |
| | | vertical-align: middle; |
| | | display: inline-block; |
| | | width: 100%; |
| | | height: 100%; |
| | | text-align: center; |
| | | line-height: 100%; |
| | | border: 2rpx solid transparent; |
| | | border-radius: 8rpx; |
| | | overflow: hidden; |
| | | background: #fff; |
| | | position: relative; |
| | | /* box-shadow: 0 2rpx 2rpx rgba(0, 0, 0, 0.2); |
| | | margin-right: 8rpx; */ |
| | | } |
| | | .view-imagetext .txt-text{ |
| | | display: block; |
| | | margin: 20rpx; |
| | | font-weight: bold; |
| | | } |
| | | .view-detalist-centen{ |
| | | text-align: center; |
| | | width: 100%; |
| | | } |
| | | |
| | | .view-detalist-centen .txt-detalist{ |
| | | background: #94D5EF; |
| | | display: block; |
| | | width: 100%; |
| | | font-size: 36rpx; |
| | | line-height: 80rpx; |
| | | font-weight: 500; |
| | | } |
| | | .panel-active{ |
| | | border:2px solid red; |
| | | } |
| | | .bk-active{ |
| | | background-color: #D6FCB2; |
| | | } |
| | | </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="uni-page-modal-5602"> |
| | | <!-- 表头样式 --> |
| | | <view class="v-headStyle" v-for="(item,index) in head_styledef.form.items" > |
| | | <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}:</text> |
| | | <!-- 下拉框-单选 item.useDict?item.dict:item.selections--> |
| | | <uni-data-select id="dv_select" v-if="item.name=='Select'" |
| | | :class="item.disabled?'input-disabled':''" |
| | | v-model="item.value" |
| | | :localdata="item.dict" |
| | | @change="onEnterChange(item)" |
| | | :disabled="item.disabled" |
| | | :clear="false" |
| | | ></uni-data-select> |
| | | <view class="input-wrapper" v-if="item.name=='Input' || item.name=='InputNumber'"> |
| | | <text v-if="item.setting.prefix" |
| | | class="uni-icon" |
| | | :class="[item.setting.prefix]" |
| | | @click="onEnterChange(item)"></text> |
| | | <input |
| | | class="uni-input" |
| | | <view class="view-header"> |
| | | <view class="v-headStyle" v-for="(item,index) in head_styledef.form.items" > |
| | | <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}:</text> |
| | | <!-- 下拉框-单选 item.useDict?item.dict:item.selections--> |
| | | <!-- <uni-data-select id="dv_select" v-if="item.name=='Select'" |
| | | :class="item.disabled?'input-disabled':''" |
| | | :type="item.name=='Input'?'text':'number'" |
| | | v-model="item.value" |
| | | :localdata="item.dict" |
| | | @change="onEnterChange(item)" |
| | | :disabled="item.disabled" |
| | | :placeholder="item.placeholder" |
| | | :style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}" |
| | | :focus="focusFieldId == item.fieldId" |
| | | @focus="ontap(index,item)" |
| | | @keyup.enter="onEnterChange(item)" |
| | | @blur="onEnterChange(item)" |
| | | /> |
| | | <text v-if="item.setting.suffix" |
| | | class="uni-icon" |
| | | :class="[item.setting.suffix]" |
| | | @click="onEnterChange(item)"></text> |
| | | </view> |
| | | :clear="false" |
| | | ></uni-data-select> --> |
| | | <uni-data-picker class="dv_select" v-if="item.name=='Select'" :class="item.disabled?'input-disabled':''" |
| | | v-model="item.value" :localdata="item.dict" @change="onEnterChange(item)" :readonly="item.disabled" :clear-icon="false" :popup-title="item.label" ></uni-data-picker> |
| | | |
| | | <view class="input-wrapper" v-if="item.name=='Input' || item.name=='InputNumber'"> |
| | | <text v-if="item.setting.prefix" |
| | | class="uni-icon" |
| | | :class="[item.setting.prefix]" |
| | | @click="onEnterChange(item)"></text> |
| | | <input |
| | | class="uni-input" |
| | | :class="item.disabled?'input-disabled':''" |
| | | :type="item.name=='Input'?'text':'number'" |
| | | 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="focusFieldId == item.fieldId" |
| | | @focus="ontap(index,item)" |
| | | @keyup.enter="onEnterChange(item)" |
| | | @blur="onEnterChange(item)" |
| | | /> |
| | | <text v-if="item.setting.suffix" |
| | | class="uni-icon" |
| | | :class="[item.setting.suffix]" |
| | | @click="onEnterChange(item)"></text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="view-content"> |
| | | <!-- 分拣界面 --> |
| | | <view v-if="param.Show_Welcom_Page==false" class="uni-panel-content"> |
| | | <!-- 页签 --> |
| | | <view class="dv-tab"> |
| | | <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem" |
| | | styvarype="button"> |
| | | </uni-segmented-control> |
| | | </view> |
| | | <swiper class="view-tabpage" :current="current" @change="changeSwiper"> |
| | | <!-- 待分拣界面 --> |
| | | <swiper-item > |
| | | <view class="uni-panel-content"> |
| | | <view class="view-tab-content" id="tabpanel" > |
| | | <image class="logo" v-if="detail1StyleDefList.length==0" src="../../images/mobox_log_200x40.png"></image> |
| | | <div class="dv-panel" v-for="(style,ii) in detail1StyleDefList" |
| | | @tap="onPanelClick(ii)" |
| | | :id="'tabpanel'+style.form.htmlobjId" |
| | | :class="style.form.htmlobjId==active_id?'bk-active':activelist[ii].active==true?'bk-active':''"> |
| | | <div class="dv-panel-input"> |
| | | <div class="dv-input" 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> |
| | | <input |
| | | class="uni-input" |
| | | v-if="!item.disabled" |
| | | :type="item.name=='InputNumber'?'number':'text'" |
| | | :value="item.value" |
| | | :disabled="item.disabled" |
| | | :placeholder="item.placeholder" |
| | | /> |
| | | </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> |
| | | <input |
| | | class="uni-input" |
| | | v-if="!cols.disabled" |
| | | :type="cols.name=='InputNumber'?'number':'text'" |
| | | :value="cols.value" |
| | | :disabled="cols.disabled" |
| | | :placeholder="cols.placeholder" |
| | | /> |
| | | </view> |
| | | </uni-col> |
| | | </uni-row> |
| | | </div> |
| | | </div> |
| | | <div class="dv-panel-button"> |
| | | <checkbox-group v-if="param.Sub_Page[0].Select_Button==true"> |
| | | <label> |
| | | <checkbox :value="style.SelBut_Checked" :checked="style.SelBut_Checked" /> |
| | | <!-- <text></text> --> |
| | | </label> |
| | | </checkbox-group> |
| | | <!-- <button type="primary" @click="savaItem(ii)" v-if="param.Sub_Page[0].OK_Button==true">保存</Button> --> |
| | | <button type="warn" @tap="delItem(ii)" v-if="param.Sub_Page[0].Del_Button==true">删除</button> |
| | | </div> |
| | | </div> |
| | | </view> |
| | | <view v-if="param.Sub_Page[0].OK_Button==true"> |
| | | <button type="default" @tap="cancel" class="btn_cancel">取消</button> |
| | | <button type="primary" @tap="ok" class="btn_add">确定</button> |
| | | </view> |
| | | </view></swiper-item> |
| | | <!-- 已分拣界面 --> |
| | | <swiper-item > |
| | | <view class="uni-panel-content"> |
| | | <view class="view-tab-content" > |
| | | <image class="logo" v-if="detail2StyleDefList.length==0" src="../../images/mobox_log_200x40.png"></image> |
| | | <div class="dv-panel" v-for="(style,ii) in detail2StyleDefList"> |
| | | <div class="dv-panel-input"> |
| | | <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">{{item.value}}</span> |
| | | </view> |
| | | <!-- 栅格布局 --> |
| | | <uni-row class="demo-uni-row" v-if="item.name=='Layout'"> |
| | | <uni-col |
| | | :span="24 / item.setting.col" |
| | | v-for="(cols,key) in item.setting.colList" |
| | | > |
| | | <view v-if="cols!=null" > |
| | | <text class="txt_title" :style="{'width':cols.labelWidth+'px'}">{{cols.label}}:</text> |
| | | <span class="form-item-span">{{cols.value}}</span> |
| | | </view> |
| | | </uni-col> |
| | | </uni-row> |
| | | </div> |
| | | </div> |
| | | <div class="dv-panel-button"> |
| | | <checkbox-group v-if="param.Sub_Page[1].Select_Button==true"> |
| | | <label> |
| | | <checkbox :value="style.SelBut_Checked" :checked="style.SelBut_Checked" /> |
| | | <!-- <text></text> --> |
| | | </label> |
| | | </checkbox-group> |
| | | <!-- <button type="primary" @click="savaDataObj(style,ii)" v-if="param.Sub_Page[1].OK_Button==true">保存</Button> --> |
| | | <button type="warn" @tap="delDataObj(style,ii)" v-if="param.Sub_Page[1].Del_Button==true">删除</button> |
| | | </div> |
| | | </div> |
| | | </view> |
| | | <view v-if=" param.Sub_Page[1].OK_Button==true"> |
| | | <button type="default" @tap="cancel" class="btn_cancel">取消</button> |
| | | <button type="primary" @tap="ok2" class="btn_add">确定</button> |
| | | </view> |
| | | </view> |
| | | </swiper-item> |
| | | </swiper> |
| | | </view> |
| | | <!-- 图文/文本 --> |
| | | <view class="view-imagetext" v-if="param.Show_Welcom_Page==true"> |
| | | <div class="view-imagetext-uploadlist"> |
| | |
| | | >{{param.Welcome_Page.Text}}</Text> |
| | | </div> |
| | | </view> |
| | | <!-- 分拣界面 --> |
| | | <view v-if="param.Show_Welcom_Page==false"> |
| | | <!-- 页签 --> |
| | | <view class="dv-tab"> |
| | | <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem" |
| | | styvarype="button"> |
| | | </uni-segmented-control> |
| | | </view> |
| | | <!-- 待分拣界面 --> |
| | | <view class="view-tabpage" id="tabpanel" v-if="current==0"> |
| | | <image class="logo" v-if="detail1StyleDefList.length==0" src="../../images/mobox_log_200x40.png"></image> |
| | | <div class="dv-panel" v-for="(style,ii) in detail1StyleDefList" |
| | | @tap="onPanelClick(ii)" |
| | | :id="'tabpanel'+style.form.htmlobjId" |
| | | :class="style.form.htmlobjId==active_id?'bk-active':activelist[ii].active==true?'bk-active':''"> |
| | | <div class="dv-panel-input"> |
| | | <div class="dv-input" 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> |
| | | <input |
| | | class="uni-input" |
| | | v-if="!item.disabled" |
| | | :type="item.name=='InputNumber'?'number':'text'" |
| | | :value="item.value" |
| | | :disabled="item.disabled" |
| | | :placeholder="item.placeholder" |
| | | /> |
| | | </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> |
| | | <input |
| | | class="uni-input" |
| | | v-if="!cols.disabled" |
| | | :type="cols.name=='InputNumber'?'number':'text'" |
| | | :value="cols.value" |
| | | :disabled="cols.disabled" |
| | | :placeholder="cols.placeholder" |
| | | /> |
| | | </view> |
| | | </uni-col> |
| | | </uni-row> |
| | | </div> |
| | | </div> |
| | | <div class="dv-panel-button"> |
| | | <checkbox-group v-if="param.Sub_Page[0].Select_Button==true"> |
| | | <label> |
| | | <checkbox :value="style.SelBut_Checked" :checked="style.SelBut_Checked" /> |
| | | <!-- <text></text> --> |
| | | </label> |
| | | </checkbox-group> |
| | | <!-- <button type="primary" @click="savaItem(ii)" v-if="param.Sub_Page[0].OK_Button==true">保存</Button> --> |
| | | <button type="warn" @tap="delItem(ii)" v-if="param.Sub_Page[0].Del_Button==true">删除</button> |
| | | </div> |
| | | </div> |
| | | </view> |
| | | <!-- 已分拣界面 --> |
| | | <view class="view-tabpage2" v-if="current==1"> |
| | | <image class="logo" v-if="detail2StyleDefList.length==0" src="../../images/mobox_log_200x40.png"></image> |
| | | <div class="dv-panel" v-for="(style,ii) in detail2StyleDefList"> |
| | | <div class="dv-panel-input"> |
| | | <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">{{item.value}}</span> |
| | | </view> |
| | | <!-- 栅格布局 --> |
| | | <uni-row class="demo-uni-row" v-if="item.name=='Layout'"> |
| | | <uni-col |
| | | :span="24 / item.setting.col" |
| | | v-for="(cols,key) in item.setting.colList" |
| | | > |
| | | <view v-if="cols!=null" > |
| | | <text class="txt_title" :style="{'width':cols.labelWidth+'px'}">{{cols.label}}:</text> |
| | | <span class="form-item-span">{{cols.value}}</span> |
| | | </view> |
| | | </uni-col> |
| | | </uni-row> |
| | | </div> |
| | | </div> |
| | | <div class="dv-panel-button"> |
| | | <checkbox-group v-if="param.Sub_Page[1].Select_Button==true"> |
| | | <label> |
| | | <checkbox :value="style.SelBut_Checked" :checked="style.SelBut_Checked" /> |
| | | <!-- <text></text> --> |
| | | </label> |
| | | </checkbox-group> |
| | | <!-- <button type="primary" @click="savaDataObj(style,ii)" v-if="param.Sub_Page[1].OK_Button==true">保存</Button> --> |
| | | <button type="warn" @tap="delDataObj(style,ii)" v-if="param.Sub_Page[1].Del_Button==true">删除</button> |
| | | </div> |
| | | </div> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | <view v-if="current==0 && param.Sub_Page[0].OK_Button==true"> |
| | | <!-- <view v-if="current==0 && param.Sub_Page[0].OK_Button==true"> |
| | | <button type="default" @tap="cancel" class="btn_cancel">取消</button> |
| | | <button type="primary" @tap="ok" class="btn_add">确定</button> |
| | | </view> |
| | | <view v-if="current==1 && param.Sub_Page[1].OK_Button==true"> |
| | | <button type="default" @tap="cancel" class="btn_cancel">取消</button> |
| | | <button type="primary" @tap="ok2" class="btn_add">确定</button> |
| | | </view> |
| | | </view> --> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | ClsID2: "Sorting_Result", |
| | | param: {}, |
| | | focusFieldId:"", |
| | | focusOldFieldId:"", |
| | | head_styledef:{ |
| | | form:{ |
| | | items:[] |
| | |
| | | current: 0, |
| | | Before_OK_Event:{}, |
| | | After_OK_Event:{}, |
| | | Before_Del_Event: {}, |
| | | After_Del_Event: {}, |
| | | items: [], |
| | | active_id:'', |
| | | activelist:[], |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | changeSwiper(evt) { |
| | | let index = evt.target.current || evt.detail.current; |
| | | this.setData({ |
| | | current: index |
| | | }) |
| | | }, |
| | | async Head_UIStyleGetInfo(class_id,style_id){ //获取自定义表单样式 |
| | | var $this = this; |
| | | var dataInfo={ |
| | |
| | | |
| | | ontap(index,item){ //扫码功能 |
| | | // var $ele = e; |
| | | this.focusOldFieldId = item.fieldId |
| | | getApp().onScan((result)=>{ |
| | | console.log(result.decodedata); |
| | | item.value = result.decodedata; |
| | |
| | | try { |
| | | if (event.id) { |
| | | |
| | | //获取表头属性 |
| | | var head_attr = {}; |
| | | this.head_styledef.form.items.forEach(item => { |
| | | head_attr[item.fieldId] = item.value; |
| | | }); |
| | | var obj_attr = this.head_styledef.form.model; |
| | | // console.log(obj_attr); |
| | | var input_param = Base64.encode( |
| | | JSON.stringify( |
| | | Object.keys(obj_attr).map((a) => ({ |
| | | Object.keys(head_attr).map((a) => ({ |
| | | attr: a, |
| | | value: obj_attr[a] || "", |
| | | value: head_attr[a] || "", |
| | | })) |
| | | ) |
| | | ); |
| | |
| | | else if(item.action_type == "set_subtable_page_content"){ //已分拣 |
| | | $this.$data.param.Show_Welcom_Page=false; |
| | | var value = item.value; |
| | | if(value.clear == true && $this.$data.detail1StyleDefList.length>0 && value.page_name == $this.$data.param.Sub_Page[0].Name){ //判断是否清空页签内容,正在分拣是否有数据 |
| | | if( value.clear_confirm != false && value.clear == true && $this.$data.detail1StyleDefList.length>0 && value.page_name == $this.$data.param.Sub_Page[0].Name){ //判断是否清空页签内容,正在分拣是否有数据 |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '系统检测到有待分拣中的数据,继续操作会清空,是否继续?', |
| | |
| | | } |
| | | }); |
| | | } |
| | | else if(item.action_type == "remove_subtable_page_row"){ //清除面板中指定id的数据 |
| | | var value = item.value; |
| | | if(value.page_name == $this.param.Sub_Page[0].Name){ //判断返回的action的page_name是否是待分拣 |
| | | //清除面板中指定id的数据 |
| | | value.row.forEach(row=>{ |
| | | $this.$data.detail1StyleDefList.forEach((ele,index)=>{ |
| | | if(ele.form.objId == row.id){ |
| | | $this.$data.detail1StyleDefList.splice(index,1); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | else if (item.action_type == "set_subtable_page_row") { |
| | | $this.viewActionSetRow( item.value) |
| | | |
| | |
| | | } |
| | | } |
| | | else if (item.action_type == "set_dlg_current_edit_attr") { |
| | | if($this.focusFieldId == item.value) |
| | | if($this.focusOldFieldId == item.value) |
| | | $this.setData({focusFieldId: ""}) |
| | | $this.setData({focusFieldId:item.value}) |
| | | else{ |
| | | $this.setData({focusFieldId:$this.focusOldFieldId}) |
| | | } |
| | | $this.$nextTick(()=> { |
| | | $this.setData({focusFieldId:item.value}) |
| | | }); |
| | | } |
| | | else if(item.action_type == "set_dlg_attr"){ |
| | | // value = {"attr":"xxx", "value":"xxx"} |
| | |
| | | viewAceionContent(data){ |
| | | var $this = this; |
| | | |
| | | if (data.page_name == $this.$data.param.Sub_Page[0].Name) { |
| | | if (data.page_name == $this.param.Sub_Page[0].Name) { |
| | | $this.detail1ExtData = data.ext_data || {} |
| | | } |
| | | else if (data.page_name == $this.$data.param.Sub_Page[1].Name) { |
| | | else if (data.page_name == $this.param.Sub_Page[1].Name) { |
| | | $this.detail2ExtData = data.ext_data || {} |
| | | } |
| | | if(JSON.stringify(data.content) =='{}'){ |
| | |
| | | console.log(item); |
| | | }, |
| | | delItem(index){ //删除分拣中样式面板 |
| | | this.detail1StyleDefList.splice(index,1); |
| | | //删除码盘中样式面板 |
| | | this.Before_Del_Event = this.param.Sub_Page[0].Before_Delete; |
| | | this.After_Del_Event = this.param.Sub_Page[0].After_Delete; |
| | | const style = this.detail1StyleDefList[index]; |
| | | //删除码盘中样式面板 |
| | | this.detail1StyleDefList.splice(index, 1); |
| | | if (this.Before_Del_Event?.ID) |
| | | //是否有删除前事件 |
| | | this.del(style, this.Before_Del_Event); |
| | | else if (this.After_Del_Event?.ID) |
| | | //是否有删除后事件 |
| | | this.del(style, this.After_Del_Event); |
| | | }, |
| | | delDataObj(style,index){ //删除已分拣数 |
| | | // console.log(style); |
| | | var $this = this; |
| | | $this.Before_Del_Event = $this.param.Sub_Page[0].Before_Delete; |
| | | $this.After_Del_Event = $this.param.Sub_Page[0].After_Delete; |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '确定删除该已分拣数据!', |
| | |
| | | $this.$store.dispatch('dataObjDel',dataInfo).then(ret=>{ |
| | | // console.log(ret); |
| | | if (ret.err_code == 0) { |
| | | $this.detail2StyleDefList.splice(index,1); |
| | | |
| | | const style = $this.detail2StyleDefList[index]; |
| | | $this.detail2StyleDefList.splice(index, 1); |
| | | if ($this.Before_Del_Event?.ID) |
| | | //是否有删除前事件 |
| | | $this.del2(style, $this.Before_Del_Event); |
| | | else if ($this.After_Del_Event?.ID) |
| | | //是否有删除后事件 |
| | | $this.del2(style, $this.After_Del_Event); |
| | | uni.showModal({title:"提示",content:"删除成功!",showCancel:false,confirmText:"取消"}); |
| | | |
| | | }else{ |
| | | uni.showModal({title:"错误5",content:ret.err_msg,showCancel:false,confirmText:"取消"}); |
| | | } |
| | |
| | | }); |
| | | |
| | | }, |
| | | async del(style, event) { |
| | | //获取表头属性 |
| | | var head_attr = {}; |
| | | this.$data.head_styledef.form.items.forEach(item => { |
| | | head_attr[item.fieldId] = item.value; |
| | | }); |
| | | // console.log(head_attr); |
| | | //获取正在分拣属性 |
| | | var detailAttrList = []; |
| | | var detail_attr={}; |
| | | style.form.items.forEach(item => { |
| | | if(item.name == "Layout"){ //判断是否是栅栏格式 |
| | | item.setting.colList.forEach(cols => { |
| | | if(cols!=null) detail_attr[cols.fieldId] = cols.value; |
| | | }); |
| | | }else |
| | | detail_attr[item.fieldId] = item.value; |
| | | }); |
| | | |
| | | detail_attr['id'] = style.form.objId; |
| | | if($this.param.Sub_Page[0].Select_Button==true){ //判断选择按钮是否为true |
| | | if(style.SelBut_Checked==true) |
| | | detailAttrList.push(detail_attr); |
| | | } else |
| | | detailAttrList.push(detail_attr); |
| | | |
| | | // console.log(detailAttrList); |
| | | //获取正在分拣里没有显示的字段 |
| | | style.form.attrs.forEach(attr => { |
| | | for(var key in detailAttrList){ |
| | | if(style.form.objId == detailAttrList[key]['id']){ |
| | | var keys = Object.keys(detailAttrList[key]); |
| | | var isflag = true; |
| | | keys.forEach((ele) => { |
| | | if(ele == attr.attr) isflag = false; |
| | | }); |
| | | if(isflag) { |
| | | detailAttrList[attr.attr] = attr.value; |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | var input_param = Base64.encode( |
| | | JSON.stringify( |
| | | Object.keys(head_attr).map((a) => ({ |
| | | attr: a, |
| | | value: head_attr[a] || "", |
| | | })) |
| | | ) |
| | | ); |
| | | var jsonlist=[]; |
| | | detailAttrList.forEach(attr=>{ |
| | | jsonlist.push({ |
| | | id:attr["id"]|| "", |
| | | attrs: Object.keys(attr).map((a) => ({ |
| | | attr: a, |
| | | value: attr[a] || "", |
| | | })).filter((a)=>{return a.attr != "id"}) |
| | | }); |
| | | }); |
| | | // console.log(jsonlist); |
| | | const list = [] |
| | | list.push({page_name:$this.param.Sub_Page[0].Name,item_list:jsonlist,ext_data:$this.detail1ExtData}) |
| | | $this.runCustomEvent(event,input_param,list,'1'); |
| | | }, |
| | | |
| | | async del2(style, event) { |
| | | //获取表头属性 |
| | | var head_attr = {}; |
| | | this.$data.head_styledef.form.items.forEach(item => { |
| | | head_attr[item.fieldId] = item.value; |
| | | }); |
| | | // console.log(head_attr); |
| | | //获取已分拣属性 |
| | | var detailAttrList = []; |
| | | var detail_attr={}; |
| | | style.form.items.forEach(item => { |
| | | if(item.name == "Layout"){ //判断是否是栅栏格式 |
| | | item.setting.colList.forEach(cols => { |
| | | if(cols!=null) detail_attr[cols.fieldId] = cols.value; |
| | | }); |
| | | }else |
| | | detail_attr[item.fieldId] = item.value; |
| | | }); |
| | | |
| | | detail_attr['id'] = style.form.objId; |
| | | if($this.param.Sub_Page[1].Select_Button==true){ //判断选择按钮是否为true |
| | | if(style.SelBut_Checked==true) |
| | | detailAttrList.push(detail_attr); |
| | | } else |
| | | detailAttrList.push(detail_attr); |
| | | //获取已分拣里没有显示的字段 |
| | | style.form.attrs.forEach(attr => { |
| | | for(var key in detailAttrList){ |
| | | if(style.form.objId == detailAttrList[key]['id']){ |
| | | var keys = Object.keys(detailAttrList[key]); |
| | | var isflag = true; |
| | | keys.forEach((ele) => { |
| | | if(ele == attr.attr) isflag = false; |
| | | }); |
| | | if(isflag) { |
| | | detailAttrList[attr.attr] = attr.value; |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | // console.log(detailAttrList); |
| | | // return; |
| | | var input_param = Base64.encode( |
| | | JSON.stringify( |
| | | Object.keys(head_attr).map((a) => ({ |
| | | attr: a, |
| | | value: head_attr[a] || "", |
| | | })) |
| | | ) |
| | | ); |
| | | var jsonlist=[]; |
| | | detailAttrList.forEach(attr=>{ |
| | | jsonlist.push({ |
| | | id:attr["id"]|| "", |
| | | attrs: Object.keys(attr).map((a) => ({ |
| | | attr: a, |
| | | value: attr[a] || "", |
| | | })).filter((a)=>{return a.attr != "id"}) |
| | | }); |
| | | }); |
| | | const list = [] |
| | | list.push({page_name:$this.param.Sub_Page[1].Name,item_list:jsonlist,ext_data:$this.detail2ExtData}) |
| | | |
| | | // console.log(jsonlist); |
| | | $this.runCustomEvent(event,input_param,list,'2'); |
| | | }, |
| | | |
| | | onPanelClick(value){ //点击面板高亮显示 |
| | | // console.log(value); |
| | | this.active_id=''; |
| | |
| | | } else if(item.action_type == "set_subtable_page_content"){ //加载多条数据 |
| | | $this.param.Show_Welcom_Page=false; |
| | | var value = item.value; |
| | | if(value.clear == true && $this.detail1StyleDefList.length>0){ //判断是否清空页签内容,待分拣是否有数据 |
| | | if(value.clear_confirm != false && value.clear == true && $this.detail1StyleDefList.length>0){ //判断是否清空页签内容,待分拣是否有数据 |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '系统检测到有待分拣中的数据,继续操作会清空,是否继续?', |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | $this.$data.detail1StyleDefList=[]; |
| | | $this.$data.detail2StyleDefList=[]; |
| | | $this.setData({detail1StyleDefList:[],detail2StyleDefList:[]}) |
| | | $this.viewAceionContent(value); |
| | | } else if (res.cancel) { |
| | | $this.viewAceionContent(value); |
| | |
| | | $this.viewAceionContent(value); |
| | | } |
| | | } else if(item.action_type == "remove_subtable_page_row"){ //清除面板中指定id的数据 |
| | | var value = item.value; |
| | | if(value.page_name == $this.page.Sub_Page[0].Name){ //判断返回的action的page_name是否是待分拣 |
| | | var value = item.value; |
| | | if(value.page_name == $this.param.Sub_Page[0].Name){ //判断返回的action的page_name是否是待分拣 |
| | | //清除面板中指定id的数据 |
| | | value.row.forEach(row=>{ |
| | | $this.detail1StyleDefList.forEach((ele,index)=>{ |
| | | if(ele.form.objId == row.id){ |
| | | $this.detail1StyleDefList.splice(index,1); |
| | | } |
| | | }); |
| | | $this.$data.detail1StyleDefList.forEach((ele,index)=>{ |
| | | if(ele.form.objId == row.id){ |
| | | $this.$data.detail1StyleDefList.splice(index,1); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | else if (item.action_type == "set_dlg_current_edit_attr") { |
| | | if($this.focusFieldId == item.value) |
| | | if($this.focusOldFieldId == item.value) |
| | | $this.setData({focusFieldId: ""}) |
| | | $this.setData({focusFieldId:item.value}) |
| | | else{ |
| | | $this.setData({focusFieldId:$this.focusOldFieldId}) |
| | | } |
| | | $this.$nextTick(()=> { |
| | | $this.setData({focusFieldId:item.value}) |
| | | }); |
| | | } |
| | | else if(item.action_type == "refresh"){ //刷新 |
| | | var value = item.value; |
| | |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss"> |
| | | .uni-page-modal-5602{ |
| | | |
| | | display: flex; |
| | | height: 100vh; |
| | | width: 750rpx; |
| | | flex-direction: column !important; |
| | | .view-header{ |
| | | display: flex; |
| | | width: 100%; |
| | | flex-direction: column; |
| | | margin-top: 15rpx; |
| | | } |
| | | .v-headStyle{ |
| | | width: 100%; |
| | | } |
| | | .view-content{ |
| | | display:flex; |
| | | flex: 1; |
| | | width: 100%; |
| | | flex-direction: column; |
| | | min-height: 100px; |
| | | } |
| | | .view-tab-content{ |
| | | display:flex; |
| | | flex: 1; |
| | | width: calc(100% - 30rpx); |
| | | padding:0 15rpx; |
| | | flex-direction: column; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .dv-tab { |
| | | width: calc(100% - 30rpx); |
| | | padding:0 15rpx; |
| | | } |
| | | .view-tabpage { |
| | | width: 100%; |
| | | flex: 1; |
| | | } |
| | | .uni-panel-content { |
| | | display: flex; |
| | | width: 100%; |
| | | height: 100%; |
| | | flex-direction: column !important; |
| | | } |
| | | .view-bottom{ |
| | | display:flex; |
| | | flex-direction:row; |
| | | width: calc(100% - 30rpx); |
| | | padding:10rpx 15rpx 30rpx 15rpx; |
| | | } |
| | | .v-headStyle:first-child{ |
| | | margin-top: 15rpx; |
| | | } |
| | | .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; |
| | | } |
| | | .dv-panel{ |
| | | background-color:#efefef; |
| | | padding: 20rpx 20rpx 4rpx 0px; |
| | | border-radius: 12rpx; |
| | | margin: 10rpx 0 20rpx 0; |
| | | text-align: right; |
| | | } |
| | | .dv-panel-input{ |
| | | width: 100%; |
| | | display: inline-block; |
| | | text-align: left; |
| | | } |
| | | .dv-panel-input .dv-input{ |
| | | margin-bottom: 2rpx; |
| | | } |
| | | .dv-panel .txt_title{ |
| | | font-size: 34rpx; |
| | | text-align: right; |
| | | display: inline-block; |
| | | } |
| | | .dv_select { |
| | | display: inline-block; |
| | | width: 66%; |
| | | 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: 0rpx; |
| | | vertical-align: 20rpx; |
| | | } |
| | | |
| | | .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; |
| | | margin-right: 20rpx; */ |
| | | width: 100%; |
| | | text-align: left; |
| | | padding-bottom: 20rpx; |
| | | } |
| | | .dv-panel-button checkbox-group { |
| | | /* float: left; */ |
| | | padding-left: 20px; |
| | | display: inline-block; |
| | | } |
| | | .dv-panel-button button { |
| | | text-align: left; |
| | | line-height: 1.8; |
| | | border: none; |
| | | font-size: 34rpx; |
| | | width: 180rpx; |
| | | display: inline-block; |
| | | float: right; |
| | | text-align: center; |
| | | } |
| | | button.btn_cancel { |
| | | width:49.5%; |
| | | margin-top: 50rpx; |
| | | padding: 20rpx; |
| | | line-height: 1.5; |
| | | border: none; |
| | | font-size: 38rpx; |
| | | font-weight: bold; |
| | | float: left; |
| | | display: inline-block; |
| | | } |
| | | button.btn_add { |
| | | width:49.5%; |
| | | margin-top: 50rpx; |
| | | padding: 20rpx; |
| | | line-height: 1.5; |
| | | border: none; |
| | | font-size: 38rpx; |
| | | font-weight: bold; |
| | | float: right; |
| | | display: inline-block; |
| | | } |
| | | .logo { |
| | | height: 100rpx; |
| | | width: 460rpx; |
| | | display: flex; |
| | | margin: 38% auto; |
| | | } |
| | | .dv-border{ |
| | | border: 1px solid red; |
| | | } |
| | | .view-imagetext{ |
| | | text-align: center; |
| | | width: calc(100% - 80rpx); |
| | | padding: 20rpx 40rpx 0px 40rpx; |
| | | height:calc(100% - 30rpx); |
| | | overflow: hidden; |
| | | } |
| | | .view-imagetext .view-imagetext-uploadlist { |
| | | padding: 30rpx 0px 10rpx 0px; |
| | | vertical-align: middle; |
| | | display: inline-block; |
| | | width: 100%; |
| | | height: 100%; |
| | | text-align: center; |
| | | line-height: 100%; |
| | | border: 2rpx solid transparent; |
| | | border-radius: 8rpx; |
| | | overflow: hidden; |
| | | background: #fff; |
| | | position: relative; |
| | | /* box-shadow: 0 2rpx 2rpx rgba(0, 0, 0, 0.2); |
| | | margin-right: 8rpx; */ |
| | | } |
| | | .view-imagetext .txt-text{ |
| | | display: block; |
| | | margin: 20rpx; |
| | | font-weight: bold; |
| | | } |
| | | .view-detalist-centen{ |
| | | text-align: center; |
| | | width: 100%; |
| | | } |
| | | |
| | | .view-detalist-centen .txt-detalist{ |
| | | background: #94D5EF; |
| | | display: block; |
| | | width: 100%; |
| | | font-size: 36rpx; |
| | | line-height: 80rpx; |
| | | font-weight: 500; |
| | | } |
| | | .panel-active{ |
| | | border:2px solid red; |
| | | } |
| | | .bk-active{ |
| | | background-color: #D6FCB2; |
| | | } |
| | | |
| | | |
| | | .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> |
| | | |
| | | |