| | |
| | | <template> |
| | | <view class="uni-page-modal-3017-2"> |
| | | <view class="uni-page-modal-3017-2" :class="largeMode?'large-mode':''"> |
| | | <!-- 表头样式 --> |
| | | <OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @on-focus="ontap" |
| | | <OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" :hiddenIds="head_styledef.hiddenIds ?head_styledef.hiddenIds :[] " @on-focus="ontap" |
| | | @on-change="onEnterChange" @on-click-prefix="classAttr_extButton" @on-click-suffix="classAttr_extButton"> |
| | | </OIForm> |
| | | <!-- 从数据 --> |
| | |
| | | <!-- 从数据显示详情区 --> |
| | | <view class="v-panellist" v-for="(subpanel,iiindex) in subPanelList" @tap="onPanelClick(iiindex)" |
| | | :class="activelist[iiindex].active==true?'bk-active':''"> |
| | | <OIForm class="v-area dv-panel" :form="subpanel.subClassAttr.form" viewMode></OIForm> |
| | | <uni-forms class="v-area dv-panel" label-align="right"> |
| | | <view v-for="(item,index) in subpanel.subClassAttr.form.items" :key="index"> |
| | | <!-- 栅格布局 --> |
| | | <uni-row v-if="item.name == 'Layout'" :gutter="item.setting.gutter"> |
| | | <uni-col |
| | | :span="item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col" |
| | | v-for="(col,key) in item.setting.colList" :key="key"> |
| | | <uni-forms-item v-if="col != null" |
| | | :label="col.labelWidth === 0 ? '' : col.label? col.label+':':''" |
| | | :label-width="col.labelWidth || col.labelWidth === 0 ? col.labelWidth : 100+'px'"> |
| | | <view v-if="col.disabled">{{col.value}}</view> |
| | | <input class="uni-input" v-else-if="col.name=='Input' || col.name=='InputNumber'" |
| | | :type="col.name=='InputNumber'?'number':'text'" v-model="col.value" |
| | | :placeholder="col.placeholder" :maxlength="-1" /> |
| | | <view v-else>{{col.value}}</view> |
| | | |
| | | </uni-forms-item> |
| | | <uni-forms-item v-else label=""></uni-forms-item> |
| | | </uni-col> |
| | | </uni-row> |
| | | <uni-forms-item v-else :label="item.labelWidth === 0 ? '' : item.label? item.label+':':''" |
| | | :label-width="item.labelWidth || item.labelWidth === 0 ? item.labelWidth : 100+'px'" |
| | | :style="{ textAlign: item.setting.align }"> |
| | | <view v-if="item.disabled">{{item.value}}</view> |
| | | <input v-else-if="item.name=='Input' || item.name=='InputNumber' " class="uni-input" |
| | | :type="item.name=='InputNumber'?'number':'text'" v-model="item.value" |
| | | :disabled="item.disabled" :placeholder="item.placeholder" :maxlength="-1" /> |
| | | <view v-else>{{item.value}}</view> |
| | | |
| | | </uni-forms-item> |
| | | </view> |
| | | </uni-forms> |
| | | <view class="v-paneldel" v-if="param.Sub_Cls.Can_Add_Delete == true"> |
| | | <a href="javascript:;" class="panel_del" @tap="panel_del(iiindex)"><i |
| | | class="ace-icon fu-delete"></i></a> |
| | |
| | | <script> |
| | | import { |
| | | Base64 |
| | | } from '@/js/Base64.js'; |
| | | } from '@/js/Base64.js'; |
| | | import utils from "@/js/utils.js" |
| | | import { |
| | | appGetInfo, |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | largeMode: getApp().globalData.largeMode || false, |
| | | title: this.translateSys('add2'), |
| | | param: {}, |
| | | edit_inital_event: "", //弹窗初始化事件ID |
| | |
| | | $this.head_styledef.form |
| | | .model[ele.fieldId] = itemName; |
| | | } |
| | | $this.head_styledef.form.items[index].dict = selections.map((a) => { |
| | | $this.head_styledef.form.items[index].selections = selections.map(( |
| | | a) => { |
| | | return { |
| | | value: a.value, |
| | | text: a.label |
| | |
| | | |
| | | } |
| | | }); |
| | | const app = getApp() |
| | | if (app.globalData.bindClasses) { |
| | | $this.head_styledef.form.items.push({ |
| | | name: "Input", |
| | | label: this.translate("classes"), |
| | | labelWidth: 100, |
| | | disabled: true, |
| | | value: app.globalData.classes, |
| | | setting: { |
| | | width: 100, |
| | | height: 50, |
| | | }, |
| | | bind: { |
| | | attr: "", |
| | | }, |
| | | fieldId: "S_CLASSES", |
| | | }) |
| | | $this.head_styledef.form.model["S_CLASSES"] = app.globalData.classes |
| | | } |
| | | } |
| | | if ($this.head_styledef.event?.length > 0) { |
| | | $this.head_styledef.event.forEach(async (a) => { //判断是否是初始化事件 |
| | |
| | | if (itemName) { |
| | | $this.detail1_styledef.form.items[ele.fieldId] = itemName; |
| | | } |
| | | $this.detail1_styledef.form.items[index].dict = selections.map((a) => { |
| | | $this.detail1_styledef.form.items[index].selections = selections.map(( |
| | | a) => { |
| | | return { |
| | | value: a.value, |
| | | text: a.label |
| | |
| | | }); |
| | | } |
| | | } |
| | | var length = 0; |
| | | if (!$this.refdatastore.filter(function(s) { |
| | | return result[i].attr == s.attr |
| | | }).length) { |
| | | length = 1; |
| | | $this.refdatastore.push(result[i]); |
| | | } |
| | | if (length == 0) { |
| | | for (var j = 0; j < $this.refdatastore.length; j++) { |
| | | if ($this.refdatastore[j].attr == result[i].attr) { |
| | | $this.refdatastore[j].value = result[i].value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } else if (data.action[i].action_type == 'set_dlg_attr_show') { |
| | | var result = action.value; |
| | | result.forEach(async (attr, key) => { |
| | | styledef.form.items.forEach(async (ele, index) => { |
| | | //判断是否是栅格表单 |
| | | if (ele.name != 'Layout') { |
| | | if (ele.fieldId == attr.attr) { |
| | | ele.show = attr.show; |
| | | } |
| | | } else if (ele.name == 'Layout') { |
| | | ele.setting.colList.forEach( |
| | | col => { |
| | | if (col) { |
| | | if (col.fieldId == |
| | | attr.attr) { |
| | | col.show = attr |
| | | .show; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | var style_def = JSON.parse(JSON.stringify(styledef)); |
| | | if (type == 'head') { |
| | | $this.head_styledef = []; |
| | | $this.head_styledef = style_def; |
| | | $this.setFormItemVisible(result) |
| | | // console.log($this.head_styledef); |
| | | } else { |
| | | result.forEach(async (attr, key) => { |
| | | styledef.form.items.forEach(async (ele, index) => { |
| | | //判断是否是栅格表单 |
| | | if (ele.name != 'Layout') { |
| | | if (ele.fieldId == attr.attr) { |
| | | ele.show = attr.show; |
| | | } |
| | | } else if (ele.name == 'Layout') { |
| | | ele.setting.colList.forEach( |
| | | col => { |
| | | if (col) { |
| | | if (col.fieldId == |
| | | attr.attr) { |
| | | col.show = attr |
| | | .show; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | var style_def = JSON.parse(JSON.stringify(styledef)); |
| | | |
| | | |
| | | $this.detail1_styledef = []; |
| | | $this.detail1_styledef = style_def; |
| | | // console.log($this.detail1_styledef); |
| | |
| | | ontap(item) { //扫码功能 |
| | | //console.log(e.target) |
| | | getApp().onScan((result) => { |
| | | //console.log(result.decodedata); |
| | | //console.log(result); |
| | | uni.hideKeyboard(); |
| | | var $this = this; |
| | | console.log(item); |
| | | item.value = result.decodedata |
| | | item.value = result |
| | | let newVal = item.value.trim() |
| | | if (newVal) { |
| | | item.oldvalue = newVal; |
| | |
| | | rclsid: "", |
| | | robjid: "", |
| | | userlogin: "", |
| | | clsid: $this.$data |
| | | .param |
| | | clsid: $this.param |
| | | .DataCls.id, |
| | | objid: "", |
| | | attr: param.req, |
| | |
| | | scan_ontap(e) { //扫码区扫码功能 |
| | | //console.log(e.target) |
| | | getApp().onScan((result) => { |
| | | console.log(result.decodedata); |
| | | item.value = result.decodedata |
| | | console.log(result); |
| | | item.value = result |
| | | let newVal = item.value |
| | | if (typeof item.value == "string") { |
| | | newVal = item.value.trim() |
| | |
| | | } |
| | | |
| | | } |
| | | var length = 0; |
| | | if (!$this.refdatastore.filter(function(s) { |
| | | return result[i].attr == s.attr |
| | | }).length) { |
| | | length = 1; |
| | | $this.refdatastore.push(result[i]); |
| | | } |
| | | if (length == 0) { |
| | | for (var j = 0; j < $this.refdatastore.length; j++) { |
| | | if ($this.refdatastore[j].attr == result[i].attr) { |
| | | $this.refdatastore[j].value = result[i].value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } else if (action.action_type == 'set_dlg_attr_show') { |
| | | var result = action.value; |
| | | result.forEach(async (attr, key) => { |
| | | $this.head_styledef.form.items.forEach(async (ele, |
| | | index) => { |
| | | //判断是否是栅格表单 |
| | | if (ele.name != 'Layout') { |
| | | if (ele.fieldId == attr.attr) { |
| | | ele.show = attr.show; |
| | | } |
| | | } else if (ele.name == 'Layout') { |
| | | ele.setting.colList.forEach(col => { |
| | | if (col) { |
| | | if (col.fieldId == attr |
| | | .attr) { |
| | | col.show = attr |
| | | .show; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | var head_styledef = JSON.parse(JSON.stringify($this.head_styledef)); |
| | | $this.head_styledef = []; |
| | | $this.head_styledef = head_styledef; |
| | | var data = action.value; |
| | | $this.setFormItemVisible(data) |
| | | // console.log($this.head_styledef); |
| | | } else if (action.action_type == 'set_global_attr') { |
| | | $this.global_attr = action.value || []; |
| | |
| | | confirmText: this.translateSys('close') |
| | | }); |
| | | }); |
| | | }, |
| | | setFormItemVisible(attrs) { |
| | | if (!Array.isArray(attrs)) { |
| | | return |
| | | } |
| | | const head_styledef = this.head_styledef |
| | | if (!head_styledef.hiddenIds) { |
| | | head_styledef.hiddenIds = [] |
| | | } |
| | | attrs.forEach((attr) => { |
| | | let index = head_styledef.hiddenIds.findIndex((id) => id == attr.attr); |
| | | if (attr.show) { |
| | | if (index > -1) head_styledef.hiddenIds.splice(index, 1); |
| | | } else { |
| | | if (index == -1) head_styledef.hiddenIds.push(attr.attr); |
| | | } |
| | | }); |
| | | |
| | | this.setData({ |
| | | head_styledef: head_styledef |
| | | }) |
| | | }, |
| | | scan_DataObjRunCustomEvent(info, data_attr) { |
| | | var $this = this; |
| | |
| | | } |
| | | } |
| | | var length = 0; |
| | | if (!$this.refdatastore.filter(function(s) { |
| | | return result[i].attr == s.attr |
| | | }).length) { |
| | | length = 1; |
| | | $this.refdatastore.push(result[i]); |
| | | } |
| | | if (length == 0) { |
| | | for (var j = 0; j < $this.refdatastore.length; j++) { |
| | | if ($this.refdatastore[j].attr == result[i].attr) { |
| | | $this.refdatastore[j].value = result[i].value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } else if (action.action_type == 'set_global_attr') { |
| | | $this.$actiontr = action.value || []; |
| | |
| | | /* padding: 10rpx 20rpx 4rpx 0px; */ |
| | | border-radius: 12rpx; |
| | | /* margin-bottom: 20rpx; */ |
| | | text-align: right; |
| | | |
| | | .uni-forms-item { |
| | | padding-bottom: 5rpx; |
| | | margin-bottom: 0; |
| | | |
| | | .uni-forms-item__label { |
| | | height: 20px !important; |
| | | padding: 0 10rpx 0 0 !important; |
| | | } |
| | | |
| | | .uni-input { |
| | | width: calc(100% - 12rpx); |
| | | padding: 5rpx; |
| | | border: 1px solid #d5d5d5; |
| | | color: #2d8cf0; |
| | | height: 20px; |
| | | background: #FFF; |
| | | line-height: 20px; |
| | | border-radius: 6px !important; |
| | | font-size: 14px; |
| | | font-family: inherit; |
| | | box-shadow: none !important; |
| | | transition-duration: 0.1s; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .uni-input:hover { |
| | | border: 1px solid rgb(41, 121, 255); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | .dv-panel:first-child { |
| | | padding-top: 10rpx; |
| | | } |
| | | |
| | | .dv-panel-input { |
| | | width: 100%; |
| | | display: inline-block; |
| | | text-align: left; |
| | | } |
| | | |
| | | .dv-panel .txt_title { |
| | | font-size: 34rpx; |
| | | text-align: right; |
| | | display: inline-block; |
| | | vertical-align: 12px; |
| | | } |
| | | |
| | | .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; |
| | | } |
| | | |
| | | .input-disabled { |
| | | background-color: #f3f3f3 !important; |
| | | } |
| | | |
| | | .dv-panel .form-item-span { |
| | | vertical-align: top; |
| | | color: #2d8cf0; |
| | | white-space: normal; |
| | | word-break: break-all; |
| | | display: inline-block; |
| | | width: calc(100% - 100px); |
| | | /* border: 1rpx solid red; */ |
| | | } |
| | | |
| | | #dv_select { |
| | | display: inline-block; |
| | |
| | | margin-top: 5px; |
| | | } |
| | | |
| | | // .uni-px-5 { |
| | | // margin: 0; |
| | | // display: inline-block; |
| | | // margin: 0; |
| | | // font-size: 14px; |
| | | // } |
| | | // .uni-select{ |
| | | // border: 1px solid #ccc; |
| | | // border-radius: 0; |
| | | // } |
| | | // .uni-section-content{ |
| | | // display: inline-block; |
| | | // width: 100px; |
| | | // border: 1px solid red; |
| | | // } |
| | | } |
| | | </style> |