| | |
| | | <template> |
| | | <view class="uni-page-modal-3200"> |
| | | <view class="uni-page-modal-3200" :class="largeMode?'large-mode':''"> |
| | | <view class="v-content"> |
| | | <!-- 表头样式 --> |
| | | <OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @on-focus="ontap" |
| | |
| | | <script> |
| | | import { |
| | | Base64 |
| | | } from '@/js/Base64.js'; |
| | | } from '@/js/Base64.js'; |
| | | import classUtils from "@/js/utils.js" |
| | | import { |
| | | appGetInfo, |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | largeMode: getApp().globalData.largeMode || false, |
| | | title: this.translateSys('add2'), |
| | | isFilter: true, |
| | | param: {}, |
| | |
| | | $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 |
| | | } |
| | | |
| | | } |
| | | } catch (ex) { |
| | |
| | | 'close') |
| | | }); |
| | | |
| | | 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 |
| | | .head_styledef.form |
| | | .items |
| | | .forEach( |
| | | async ( |
| | | ele, |
| | | index |
| | | ) => { |
| | | data.forEach( |
| | | async (ele2, |
| | | index |
| | | ) => { |
| | | if (ele |
| | | .fieldId == |
| | | ele2 |
| | | .attr |
| | | ) { |
| | | ele.value = |
| | | ele2 |
| | | .value; |
| | | } |
| | | }); |
| | | }); |
| | | if (result.result_type == 0 && result.action) { |
| | | var actionlist = result.action; |
| | | for (var j = 0; j < actionlist.length; j++) { |
| | | var action = actionlist[j]; |
| | | var action_type = action.action_type; |
| | | var value = action.value; |
| | | if (action_type == "set_dlg_attr") { |
| | | if (value) { |
| | | this.setFormValues(value) |
| | | } |
| | | } else if (action_type == "set_subtable_page_content") { |
| | | if (value.clear_confirm != false && value.clear == true && |
| | | $this.detail1StyleDefList.length > 0 |
| | | ) { //判断是否清空页签内容,正在码盘是否有数据 |
| | | uni.showModal({ |
| | | title: this.translateSys('tip'), |
| | | content: this.translate("are_you_sure_clear_data"), |
| | | cancelText: $this.translateSys('ok'), |
| | | confirmText: $this.translateSys('cancel'), |
| | | success: function(res) { |
| | | if (res.cancel) { |
| | | $this.detail1StyleDefList = []; |
| | | $this.viewAceionContent(value); |
| | | } else if (res.confirm) { |
| | | $this.detail1StyleDefList = []; |
| | | $this.viewAceionContent(value); |
| | | } |
| | | } |
| | | }); |
| | | } else { |
| | | $this.detail1StyleDefList = []; |
| | | $this.viewAceionContent(value); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // value = {"attr":"xxx", "value":"xxx"} |
| | | } else { |
| | | if (result.info) { |
| | | uni.showModal({ |
| | |
| | | |
| | | } |
| | | }, |
| | | setFormValues(attrs) { |
| | | const head_styledef = this.head_styledef |
| | | if (JSON.stringify(attrs) == '{}') { |
| | | return; |
| | | } |
| | | attrs.forEach(async (attr, key) => { |
| | | if (attr.choice_list) { |
| | | var dictItemList = []; |
| | | attr.choice_list.forEach(async (val, index) => { |
| | | dictItemList.push({ |
| | | text: val, |
| | | value: val |
| | | }); |
| | | }); |
| | | head_styledef.form.items.forEach(async (attr_item, index) => { |
| | | if (attr_item.name != "Layout") { |
| | | if (attr_item.fieldId == attr.attr) { |
| | | if (attr_item.useDict) { |
| | | attr_item.dict = dictItemList; |
| | | } else { |
| | | attr_item.selections = dictItemList; |
| | | } |
| | | } |
| | | } else if (attr_item.name == "Layout") { |
| | | attr_item.setting.colList.forEach((col) => { |
| | | if (col) { |
| | | if (col.fieldId == attr.attr) { |
| | | if (col.useDict) { |
| | | col.dict = dictItemList; |
| | | } else { |
| | | col.selections = dictItemList; |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | if (!head_styledef.form.model[attr.attr]) { |
| | | head_styledef.form.model[attr.attr] = attr.value; |
| | | } |
| | | head_styledef.form.items.forEach(async (ele) => { |
| | | if (ele.name != "Layout") { |
| | | if (ele.fieldId == attr.attr) { |
| | | ele.value = attr.value; |
| | | ele.oldvalue = attr.value; |
| | | if (ele.name == "Input") { |
| | | if (attr.prompt) ele.placeholder = attr.prompt; |
| | | } |
| | | if (attr.enable !== undefined) { |
| | | if (attr.enable) ele.disabled = false; |
| | | else ele.disabled = true; |
| | | } |
| | | } |
| | | } else if (ele.name == "Layout") { |
| | | ele.setting.colList.forEach((col) => { |
| | | if (col) { |
| | | if (col.fieldId == attr.attr) { |
| | | col.value = attr.value; |
| | | col.oldvalue = attr.value; |
| | | if (col.name == "Input") { |
| | | if (attr.prompt) col.placeholder = attr.prompt; |
| | | } |
| | | if (attr.enable !== undefined) { |
| | | if (attr.enable) col.disabled = false; |
| | | else col.disabled = true; |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | //判断表单里是否有返回字段,没有就装载到model里,点击确定提交的时候带上这些数据 |
| | | }) |
| | | console.log(head_styledef) |
| | | this.setData({ |
| | | head_styledef: head_styledef |
| | | }) |
| | | }, |
| | | //加载已码盘内容 |
| | | viewAceionContent(data) { |
| | | var $this = this; |
| | | if (JSON.stringify(data.content) == '{}') { |
| | | return; |
| | | } |
| | | var styleStr = JSON.stringify($this.detail1_styledef); |
| | | var detailStyle = JSON.parse(styleStr); |
| | | if (detailStyle.form) { |
| | | data.content.forEach(cont => { |
| | | detailStyle = JSON.parse(styleStr); |
| | | detailStyle.SelBut_Checked = data.checkbox ?? true; |
| | | |
| | | detailStyle.form.objId = cont.id; |
| | | detailStyle.form.htmlobjId = cont.id ? cont.id.replace(/-/g, |
| | | '') |
| | | .replace('{', '').replace('}', |
| | | '') : 'null'; |
| | | detailStyle.form.attrs = cont.attrs; |
| | | cont.attrs.forEach(attr => { |
| | | detailStyle.form.items.forEach(ele => { |
| | | if (ele.name != 'Layout') { |
| | | if (ele.fieldId == attr.attr) |
| | | ele.value = attr.value; |
| | | } else if (ele.name == 'Layout') { |
| | | ele.setting.colList.forEach( |
| | | col => { |
| | | if (col) { |
| | | if (col.fieldId == |
| | | attr.attr) |
| | | col.value = attr.value; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | //如果 clear = false 则不需要清除,根据id判断是否存在,不存在插入到页面,如果存在用新的属性覆盖 |
| | | if (data.clear == false) { |
| | | var isflag = true; |
| | | $this.detail1StyleDefList.forEach((style, index) => { |
| | | if (style.form.objId == detailStyle.form.objId) { |
| | | cont.attrs.forEach(attr => { |
| | | style.form.items.forEach(ele => { |
| | | if (ele.name != 'Layout') { |
| | | if (ele.fieldId == attr.attr) |
| | | ele.value = attr.value; |
| | | } else if (ele.name == 'Layout') { |
| | | ele.setting.colList.forEach( |
| | | col => { |
| | | if (col) { |
| | | if (col.fieldId == |
| | | attr |
| | | .attr) |
| | | col.value = |
| | | attr.value; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | isflag = false; |
| | | } |
| | | }); |
| | | if (isflag) $this.detail1StyleDefList.push(detailStyle); //待分拣 |
| | | } else { |
| | | $this.detail1StyleDefList.push(detailStyle); //待分拣 |
| | | } |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | |
| | | onDetail1EnterChange() {}, |
| | | //点中表单 |
| | | onPanelClick(value) { //点击面板高亮显示 |
| | |
| | | width: 91%; |
| | | 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 { |