From 310ab72840d7c7025273ac79363107a1f9e4bc8e Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 18 七月 2025 17:34:47 +0800
Subject: [PATCH] test
---
pages/modal/3200.vue | 331 ++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 229 insertions(+), 102 deletions(-)
diff --git a/pages/modal/3200.vue b/pages/modal/3200.vue
index c5309ae..7f2c728 100644
--- a/pages/modal/3200.vue
+++ b/pages/modal/3200.vue
@@ -1,5 +1,5 @@
<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"
@@ -25,42 +25,8 @@
</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%;'">
- <uni-forms class="v-area dv-panel" label-align="right">
- <view v-for="(item,index) in style.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>
+ <OIForm class="v-area dv-panel" :form="style.form.items" viewMode></OIForm>
- </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>
</div>
<div class="dv-panel-button" v-if="param.ListPage.Click_View==true">
<a @click="onViewPageClick(style)"><i class="mobox-normal-right-arrow" /></a>
@@ -100,7 +66,7 @@
<script>
import {
Base64
- } from '@/js/Base64.js';
+ } from '@/js/Base64.js';
import classUtils from "@/js/utils.js"
import {
appGetInfo,
@@ -142,6 +108,7 @@
},
data() {
return {
+ largeMode: getApp().globalData.largeMode || false,
title: this.translateSys('add2'),
isFilter: true,
param: {},
@@ -375,7 +342,8 @@
$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
@@ -386,6 +354,25 @@
}
});
+ 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) {
@@ -1232,8 +1219,8 @@
// var $ele = e;
//console.log(e.target)
getApp().onScan((result) => {
- console.log(result.decodedata);
- item.value = result.decodedata;
+ console.log(result);
+ item.value = result;
uni.hideKeyboard();
var $this = this;
console.log(item);
@@ -1395,38 +1382,43 @@
'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
+ ) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�+ 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({
@@ -1472,6 +1464,159 @@
}
},
+ 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;
+ }
+ }
+ }
+ });
+ }
+
+ })
+ //鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+ })
+ 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);
+ data.content.forEach(cont => {
+ let detailStyle = JSON.parse(styleStr);
+ if (detailStyle.form) {
+
+
+ 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 鍒欎笉闇�娓呴櫎锛屾牴鎹甶d鍒ゆ柇鏄惁瀛樺湪锛屼笉瀛樺湪鎻掑叆鍒伴〉闈紝濡傛灉瀛樺湪鐢ㄦ柊鐨勫睘鎬ц鐩�+ 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) { //鐐瑰嚮闈㈡澘楂樹寒鏄剧ず
@@ -1958,37 +2103,9 @@
.dv-panel {
background-color: #efefef;
padding: 20rpx 20rpx 20rpx 0px;
-
- .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);
- }
- }
-
+ border-radius: 12rpx;
+ margin-bottom: 20rpx;
+ text-align: right;
}
.dv-listHtml-Panel,
@@ -1997,6 +2114,16 @@
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 {
--
Gitblit v1.9.1