From d066a9659f793dee40ac7fa0bc399ebd30664b4a Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期四, 14 八月 2025 10:01:10 +0800
Subject: [PATCH] 3202加列表按钮跳转功能点
---
pages/modal/3202.vue | 353 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 337 insertions(+), 16 deletions(-)
diff --git a/pages/modal/3202.vue b/pages/modal/3202.vue
index 967c3b5..5ac47af 100644
--- a/pages/modal/3202.vue
+++ b/pages/modal/3202.vue
@@ -13,8 +13,16 @@
:class="activeItem == style?'bk-active':''">
<div class="dv-panel-input">
<OIForm class="v-area dv-panel" :form="style.form" viewMode></OIForm>
+ <div class="dv-panel-button" v-if="rowButtons.length > 0">
+
+ <button size="mini" v-for="(btn,btnIndex) in rowButtons" :key="btnIndex"
+ type="primary" @click="onRowBtnClick(btn, ii)">
+ <text v-if="btn.Style == 'img' || btn.Style == 'img_text'" class="img"></text>
+ {{btn.ShowName}}
+ </button>
+ </div>
</div>
- <div class="dv-panel-button" v-if="click_item_view">
+ <div class="dv-panel-right-button" v-if="click_item_view">
<a @click="onViewPageClick(style)"><i class="mobox-normal-right-arrow" /></a>
</div>
</view>
@@ -90,6 +98,9 @@
name: this.param?.ClickItem_Event?.name,
id: this.param?.ClickItem_Event?.id,
};
+ },
+ rowButtons() {
+ return this.param?.ListItem_Button || [];
},
},
@@ -489,7 +500,7 @@
data_json,
}).then(result => {
// console.log(result);
- if (result.ret != 0&& result.ret != 1) {
+ if (result.ret != 0 && result.ret != 1) {
var tip = result.err_info ? typeof result
.err_info ==
'string' ?
@@ -597,9 +608,303 @@
'close')
});
});
+ },
+ onRowBtnClick(btn, index) {
+ const $this = this
+ if (btn.Prompt) {
+ const sContent = btn.PromptContent || this.translate("confirm")
+ uni.showModal({
+ title: this.translateSys("tip"),
+ content: btn.PromptContent || this.translate("confirm"),
+ cancelText: this.translateSys('ok'),
+ confirmText: this.translateSys('cancel'),
+ success: function(res) {
+ if (res.cancel) {
+ $this.onButtonClicked(btn, index);
+ }
+
+ },
+ })
+
+ } else {
+ this.handleButtonClick((done) => {
+ this.onButtonClicked(btn, index);
+ setTimeout(() => {
+ done(); // 閲嶇疆鐘舵�
+ }, 1000);
+ });
+
+ }
+ },
+ onButtonClicked(btn, index) {
+
+ let enviroment = {
+ button: "row",
+ button_name: btn.ShowName,
+ cls_id: btn.Cls_ID,
+ function: "3022",
+ master: {},
+ };
+ if (btn.FunCode == "TriggerEvent") {
+ const style = this.detail1StyleDefList[index];
+ this.triggerEvent(btn, style, enviroment);
+ } else if (btn.FunCode == "RelatedFunction") {
+ const style = this.detail1StyleDefList[index];
+ this.relatedFunction(btn, style, enviroment);
+ } else {
+ uni.showModal({
+ title: this.translateSys("tip"),
+ content: this.translateSys("unrealized"),
+ showCancel: false,
+ confirmText: this.translateSys('close')
+ });
+ }
+ },
+ //鎵ц瑙﹀彂浜嬩欢
+ async triggerEvent(btn, style, enviroment) {
+ const $this = this
+
+ 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) => ({
+ attr: a,
+ value: obj_attr[a] || "",
+ }))
+ )
+ );
+ let 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;
+
+ const attrs = Object.keys(detail_attr)
+ .map((a) => ({
+ attr: a,
+ value: detail_attr[a] || "",
+ }))
+ .filter((a) => {
+ return a.attr != "id";
+ });
+ let data_json = Base64.encode(JSON.stringify(attrs));
+ runCustomEvent({
+ ed_type: 0,
+ start_transaction: true,
+ class_id: btn.Cls_ID,
+ event_id: btn.Event.ID,
+ input_param,
+ data_json,
+ }).then(result => {
+ // console.log(result);
+ if (result.ret != 0 && result.ret != 1) {
+ var tip = result.err_info ? typeof result
+ .err_info ==
+ 'string' ?
+ result
+ .err_info : result.err_info.join(
+ '<br/>') : '';
+ if (result.ret == 801) {
+ if (this.param.Only_Script_Error) {
+ let pos = tip.indexOf("锛�);
+ if (pos > -1) tip = tip.substring(
+ pos + 1);
+ }
+ uni.showModal({
+ title: this.translateSys(
+ "tip"),
+ content: tip,
+ showCancel: false,
+ confirmText: this
+ .translateSys('close')
+ });
+ } else uni.showModal({
+ title: this.translateSys(
+ "tip"),
+ content: tip + ',' + this
+ .translateSys('tip') +
+ ':' +
+ result
+ .ret,
+ showCancel: false,
+ confirmText: this.translateSys(
+ 'close')
+ });
+ return false;
+ } else {
+ var tip = result.info ? typeof result
+ .info == 'string' ? result
+ .info :
+ result.info.join('<br/>') : '';
+ tip = tip || result.err_info
+ if (tip) uni.showModal({
+ title: this.translateSys(
+ "tip"),
+ content: tip,
+ showCancel: false,
+ confirmText: this.translateSys(
+ 'close')
+ });
+ if ([0, 2, 3, 4, -1].includes(result.result_type)) {
+ if (result.result_type == 2) {
+
+ } else if (typeof result.result == 'string') {
+ if (result.result) {
+ uni.showModal({
+ title: this.translateSys('tip'),
+ content: result.result,
+ showCancel: false,
+ confirmText: this.translateSys('close')
+ });
+ }
+ }
+ try {
+ var actionList = result.action || []
+ actionList.forEach(item => {
+ if (item.action_type == "jump_pda_page") {
+ // value = {"attr":"xxx", "value":"xxx"}
+ var data = item.value;
+ uni.navigateTo({
+ url: `../modal/3202_view?param=${JSON.stringify($this.param)}&titlename=${data.page?.page_name || ""}&dataObj=${JSON.stringify(data)}`,
+ events: {
+ // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�鍒板綋鍓嶉〉闈㈢殑鏁版嵁
+ ExitViewEvent: function(data) {
+ console.log(data);
+ this.runCustomEvent(data);
+ }
+ }
+ });
+ }
+ })
+ } catch (ex) {
+ let actionList = (result.action || []).map(a => a.action_type).join(';')
+ let tip = typeof ex == 'string' ? ex : ex.message
+ tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}`
+ uni.showModal({
+ title: this.translateSys('tip'),
+ content: tip,
+ showCancel: false,
+ confirmText: this.translateSys('close')
+ });
+ console.log(ex)
+ return
+ }
+ }
+
+ }
+ }).catch(ex => {
+ // console.log(ex);
+ uni.showModal({
+ title: this.translateSys("error") +
+ "8.1",
+ content: ex.errMsg,
+ showCancel: false,
+ confirmText: this.translateSys(
+ 'close')
+ });
+ });
+ },
+ async relatedFunction(btn, style, enviroment) {
+ //璺宠浆鍔熻兘鐐�+ try {
+ const defCode = btn.Related_Function?.Def_Code
+ var $this = this;
+ if (
+ defCode == "3018" ||
+ defCode == "3037" ||
+ defCode == "3200" ||
+ defCode == "3201" ||
+ defCode == "5600" ||
+ defCode == "5601" ||
+ defCode == "5602"
+ ) {
+ let name = defCode
+ if (defCode == "3018" || defCode == "3037")
+ name = defCode + "_2"
+ var json = {
+ app_id: [btn.Related_Function.ID],
+ };
+ const result = await appGetInfo(json)
+ if ((result || []).length > 0) {
+ var app = result[0];
+ var param = "";
+ var appName = app.list_name || app.name
+ .Name;
+ var paramStr = app.param
+ if (paramStr) {
+ //mobox2鐨刾aram鏄痡son瀛楃涓�+ param = paramStr.replace(/\\/g, "");
+ //mobox3鐨刾aram鏄痓ase64瀛楃涓�+ if (!paramStr.includes('"')) param = Base64.decode(
+ paramStr);
+ }
+ if (!param) {
+ uni.showModal({
+ title: this.translateSys("tip"),
+ content: this.translate(
+ 'tip_no_app_param'),
+ showCancel: false,
+ confirmText: this.translateSys(
+ 'close')
+ });
+ return;
+ }
+
+ uni.navigateTo({
+ url: '../modal/' + name + '?param=' +
+ param + "&titlename=" +
+ appName +
+ "&type=relatedFunction¶mValue=" +
+ JSON.stringify(style
+ .form),
+ events: {
+ relatedFunction: function(data) {
+ console.log(data);
+ $this.Refresh();
+ },
+ }
+ });
+ } else {
+ uni.showModal({
+ title: this.translateSys("error"),
+ content: this.translate(
+ "function_not_exist"),
+ showCancel: false,
+ confirmText: this.translateSys('close')
+ });
+ }
+
+ } else {
+ uni.showModal({
+ title: this.translateSys("error"),
+ content: this.translate("cannot_related_function"),
+ showCancel: false,
+ confirmText: this.translateSys('close')
+ });
+
+ }
+ } catch (ex) {
+ console.log(ex);
+ let exStr = JSON.stringify(ex)
+ if (exStr == "{}")
+ exStr = ex
+ let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
+ uni.showModal({
+ title: this.translateSys("error"),
+ content: tip,
+ showCancel: false,
+ confirmText: this.translateSys('close')
+ });
+ return undefined
+ }
},
ontap(item) { //鎵爜鍔熻兘
// var $ele = e;
@@ -642,7 +947,7 @@
},
onEnterChange(item) { //鍥炶溅锛岀偣鍑绘寜閽紝鍙栨秷鑺傜偣浜嬩欢
- // console.log(item);
+ console.log(item);
let newVal = item.value
if (typeof item.value == "string") {
newVal = item.value.trim()
@@ -676,7 +981,7 @@
try {
if (event.id) {
var obj_attr = this.head_styledef.form.model;
- // console.log(obj_attr);
+ console.log(obj_attr);
var input_param = Base64.encode(
JSON.stringify(
Object.keys(obj_attr).map((a) => ({
@@ -706,8 +1011,8 @@
input_param: input_param,
};
runCustomEvent(dataInfo).then(result => {
- // console.log(result);
- if (result.ret != 0&& result.ret != 1) {
+ console.log(result);
+ if (result.ret != 0 && result.ret != 1) {
var tip = result.err_info ? typeof result
.err_info ==
'string' ?
@@ -1034,7 +1339,7 @@
runCustomEvent(dataInfo).then(result => {
console.log(result);
- if (result.ret != 0&& result.ret != 1) {
+ if (result.ret != 0 && result.ret != 1) {
var tip = result.err_info ? typeof result
.err_info ==
'string' ?
@@ -1465,7 +1770,7 @@
.dv-panel-bkcolor {
border: 1px solid #ccc;
border-radius: 5px;
- background-color: #F5F5F5;
+ background-color: #F8F8F8;
}
.dv-panel {
@@ -1494,17 +1799,33 @@
.dv-panel-button {
+ width: 100%;
+ min-height: 16px;
+ padding-bottom: 10rpx;
+ display: flex;
+ flex-direction: row;
+ // justify-content: right;
+
+ button {
+ line-height:1.6;
+ // border: none;
+ // margin-right: 10rpx;
+ // text-align: center;
+ }
+ }
+
+ .dv-panel-right-button {
display: inline-block;
- }
- .dv-panel-button a i {
- font-size: 36rpx;
- }
+ a i {
+ font-size: 36rpx;
+ }
- .dv-panel-button button {
- height: 50rpx;
- font-size: 26rpx;
- padding: 0 24rpx;
+ button {
+ height: 50rpx;
+ font-size: 26rpx;
+ padding: 0 24rpx;
+ }
}
.bk-active {
--
Gitblit v1.9.1