cuiqian2004
2025-08-29 f9aa1010e164e21a3c8147e0f2e13b828676800a
initialEvent 输入参数格式和web端保持一致
7个文件已修改
1696 ■■■■■ 已修改文件
What's New.txt 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3018_2.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3037_2.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3200.vue 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3202.vue 282 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3202_view.vue 887 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/5601.vue 317 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
What's New.txt
@@ -1,6 +1,9 @@
2025.08.29
1.处理 get_pre_page_subtable_next_row,remove_pre_page_subtable_row ,修改处理 goback_to_pre_page,
2,修改事件返回提示
3,initialEvent 输入参数格式和web端保持一致
2025.05.20
1.添加登陆时绑定班次
2025.05.15
pages/modal/3018_2.vue
@@ -260,9 +260,33 @@
            },
            async loadInitialEvent() {
                try {
                    if (this.initialEvent.id) {
                        this.onChange(this.initialEvent)
                    var eventid = this.initialEvent?.id; //内容变化后事件
                    if (eventid) {
                        // self.event_no_sub = 1;
                        let obj_attr = this.head_styledef.form.model;
                        let req = {
                            id: "",
                            attrs: Object.keys(obj_attr).map((a) => ({
                                attr: a,
                                value: obj_attr[a],
                            })),
                        };
                        var info = {
                            eventid: eventid,
                            edtype: "0",
                            projectid: '',
                            rclsid: '',
                            robjid: '',
                            userlogin: '',
                            clsid: this.param.DataCls.id,
                            objid: "",
                            attr: req,
                            dataJson: []
                        }
                        this.DataObjRunCustomEvent(info);
                    }
                } catch (ex) {
                    showError(ex, this.translateSys("error"))
pages/modal/3037_2.vue
@@ -248,9 +248,32 @@
            },
            async loadInitialEvent() {
                try {
                    if (this.initialEvent.id) {
                        this.onChange(this.initialEvent)
                    var eventid = this.initialEvent?.id; //内容变化后事件
                    if (eventid) {
                        // self.event_no_sub = 1;
                        var obj_attr = this.head_styledef.form.model;
                        // console.log(obj_attr);
                        let req = {
                            id: "",
                            attrs: Object.keys(obj_attr).map((a) => ({
                                attr: a,
                                value: obj_attr[a] || "",
                            }))
                        }
                        var info = {
                            eventid: eventid,
                            edtype: "0",
                            projectid: '',
                            rclsid: '',
                            robjid: '',
                            userlogin: '',
                            clsid: this.head_styledef.form.clsId,
                            objid: "",
                            attr: req,
                        }
                        this.DataObjRunCustomEvent(info);
                    }
                } catch (ex) {
                    showError(ex, this.translateSys('error'))
pages/modal/3200.vue
@@ -289,11 +289,151 @@
            },
            async loadInitialEvent() {
                try {
                    if (this.initialEvent.id) {
                        this.onChange(this.initialEvent)
                    const event = this.initialEvent
                    if (event.id) {
                        var obj_attr = this.head_styledef.form.model;
                        // console.log(obj_attr);
                        var input_param = Base64.encode(
                            JSON.stringify({
                                id: "",
                                attrs: Object.keys(obj_attr).map((a) => ({
                                    attr: a,
                                    value: obj_attr[a] || "",
                                }))
                            })
                        );
                        var $this = this;
                        var dataInfo = {
                            ed_type: 0,
                            start_transaction: true,
                            class_id: this.head_styledef.form.clsId,
                            class_name: '',
                            event_id: event.id,
                            event_name: '',
                            data_obj_id: '',
                            obj_attr: obj_attr,
                            prj_id: '',
                            ref_cls_id: '',
                            rel_obj_id: '',
                            user_login: '',
                            data_json: '',
                            compose_info: '',
                            ext_info: '',
                            global_attr: '',
                            input_param: input_param,
                        };
                        runCustomEvent(dataInfo).then(result => {
                            // console.log(result);
                            if (result.ret != 0 && result.ret != 1) {
                                let cls_name = result.event_info?.cls_name
                                let event_name = result.event_info?.event_name
                                tip = result.err_info ? typeof result.err_info == 'string' ?
                                    result.err_info :
                                    result
                                    .err_info
                                    .join('\n') : ''
                                if (result.ret == 801) {
                                    if (this.param.Only_Script_Error) {
                                        let pos = tip.indexOf(":");
                                        if (pos > -1) tip = tip.substring(pos + 1);
                                    }
                                }
                                if (cls_name && event_name) tip =
                                    `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                                if (result.ret == 801) showInfo(tip)
                                else showError(`${tip},提示:${result.ret}`, this.translateSys(
                                    'tip'))
                                this.saving = false
                                return false
                            } else {
                                var tip = result.info ? typeof result.info == 'string' ? result
                                    .info :
                                    result.info.join('\n') : '';
                                tip = tip || result.err_info
                                let time = result.info_time || 0
                                if (time)
                                    showError(tip, this.translateSys('tip'))
                                else
                                    showInfo(tip)
                                if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                                    if (result.result_type == 2) {
                                    } else if (typeof result.result == 'string') {
                                        showInfo(result.result)
                                    }
                                    try {
                                        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);
                                                }
                                            }
                                        }
                                    } catch (ex) {
                                        let actionList = (result.action || []).map(a => a
                                            .action_type).join(
                                            ';')
                                        let tip = typeof ex == 'string' ? ex : ex.message
                                        tip =
                                            `执行脚本返回的${actionList}时出现异常,请检查脚本返回的数据格式是否正确。${tip}`
                                        showError(tip, this.translateSys('tip'))
                                        return
                                    }
                                }
                            }
                        }).catch(ex => {
                            // console.log(ex);
                            showError(ex, this.translateSys("error") + "8.1")
                        });
                    }
                } catch (ex) {
                    showError(ex, this.translateSys('error'))
                    showError(ex, this.translateSys('error') + "8.2")
                }
            },
@@ -1000,7 +1140,11 @@
                        var tip = result.info ? typeof result.info == 'string' ? result.info :
                            result.info.join('\n') : '';
                        tip = tip || result.err_info
                        showInfo(tip)
                        let time = result.info_time || 0
                        if (time)
                            showError(tip, this.translateSys('tip'))
                        else
                            showInfo(tip)
                        if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                            if (result.result_type == 2) {
pages/modal/3202.vue
@@ -181,12 +181,143 @@
                await this.loadInitialEvent();
            },
            async loadInitialEvent() {
                try {
                    if (this.initialEvent.id) {
                        this.onChange(this.initialEvent)
                    const event = this.initialEvent
                    if (event.id) {
                        var obj_attr = this.head_styledef.form.model;
                        console.log(obj_attr);
                        var input_param = Base64.encode(
                            JSON.stringify({
                                id: "",
                                attrs: Object.keys(obj_attr).map((a) => ({
                                    attr: a,
                                    value: obj_attr[a] || "",
                                }))
                            })
                        );
                        var $this = this;
                        var dataInfo = {
                            ed_type: 0,
                            start_transaction: true,
                            class_id: this.head_styledef.form.clsId,
                            class_name: '',
                            event_id: event.id,
                            event_name: '',
                            data_obj_id: '',
                            obj_attr: obj_attr,
                            prj_id: '',
                            ref_cls_id: '',
                            rel_obj_id: '',
                            user_login: '',
                            data_json: '',
                            compose_info: '',
                            ext_info: '',
                            global_attr: '',
                            input_param: input_param,
                        };
                        runCustomEvent(dataInfo).then(result => {
                            console.log(result);
                            if (result.ret != 0 && result.ret != 1) {
                                let cls_name = result.event_info?.cls_name
                                let event_name = result.event_info?.event_name
                                tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info :
                                    result
                                    .err_info
                                    .join('\n') : ''
                                if (result.ret == 801) {
                                    if (this.param.Only_Script_Error) {
                                        let pos = tip.indexOf(":");
                                        if (pos > -1) tip = tip.substring(pos + 1);
                                    }
                                }
                                if (cls_name && event_name) tip =
                                    `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                                if (result.ret == 801) showInfo(tip)
                                else showError(`${tip},提示:${result.ret}`, this.translateSys('tip'))
                                this.saving = false
                                return false
                            } else {
                                var tip = result.info ? typeof result.info == 'string' ? result.info :
                                    result.info.join('\n') : '';
                                tip = tip || result.err_info
                                let time = result.info_time || 0
                                if (time)
                                    showError(tip, this.translateSys('tip'))
                                else
                                    showInfo(tip)
                                if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                                    if (result.result_type == 2) {
                                    } else if (typeof result.result == 'string') {
                                        showInfo(result.result)
                                    }
                                    try {
                                        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_query_condition") {
                                                $this.wheres = value.condition;
                                                $this.orderby = value.order ? value.order : ""
                                                $this.pageindex = 1;
                                                $this.query_id = "";
                                                $this.detail1StyleDefList = [];
                                                $this.loadDataGetList();
                                            } else if (action_type ==
                                                "set_dlg_attr") {
                                                $this.setFormValues(action.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);
                                                }
                                            }
                                        }
                                    } catch (ex) {
                                        let actionList = (result.action || []).map(a => a.action_type).join(
                                            ';')
                                        let tip = typeof ex == 'string' ? ex : ex.message
                                        tip = `执行脚本返回的${actionList}时出现异常,请检查脚本返回的数据格式是否正确。${tip}`
                                        showError(tip, this.translateSys('tip'))
                                        return
                                    }
                                }
                            }
                        }).catch(ex => {
                            // console.log(ex);
                            showError(ex, this.translateSys("error") + "8.1")
                        });
                    }
                } catch (ex) {
                    showError(ex, this.translateSys('error'))
                    showError(ex, this.translateSys('error') + "8.2")
                }
            },
@@ -540,10 +671,9 @@
                                        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);
                                                ExitViewPage: function() {
                                                    $this.loadInitialEvent()
                                                }
                                            }
                                        });
@@ -698,14 +828,13 @@
                                            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);
                                                ExitViewPage: function() {
                                                    $this.loadInitialEvent()
                                                }
                                            }
                                        });
                                    }
                                    else if (item.action_type == "goback_to_pre_page") {
                                    } else if (item.action_type == "goback_to_pre_page") {
                                        //返回上一页
                                        uni.navigateBack({
                                            delta: 1, //返回层数,2则上上页
@@ -1198,79 +1327,76 @@
            async runCustomEvent(dataInfo) {
                try {
                    var $this = this;
                    runCustomEvent(dataInfo).then(result => {
                        console.log(result);
                    const result = await runCustomEvent(dataInfo)
                    console.log(result);
                        if (result.ret != 0 && result.ret != 1) {
                            let cls_name = result.event_info?.cls_name
                            let event_name = result.event_info?.event_name
                            tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info :
                                result
                                .err_info
                                .join('\n') : ''
                            if (result.ret == 801) {
                                if (this.param.Only_Script_Error) {
                                    let pos = tip.indexOf(":");
                                    if (pos > -1) tip = tip.substring(pos + 1);
                                }
                    if (result.ret != 0 && result.ret != 1) {
                        let cls_name = result.event_info?.cls_name
                        let event_name = result.event_info?.event_name
                        tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info :
                            result
                            .err_info
                            .join('\n') : ''
                        if (result.ret == 801) {
                            if (this.param.Only_Script_Error) {
                                let pos = tip.indexOf(":");
                                if (pos > -1) tip = tip.substring(pos + 1);
                            }
                            if (cls_name && event_name) tip =
                                `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                            if (result.ret == 801) showInfo(tip)
                            else showError(`${tip},提示:${result.ret}`, this.translateSys('tip'))
                            this.saving = false
                            return false
                        } else {
                            var tip = result.info ? typeof result.info == 'string' ? result.info :
                                result.info.join('\n') : '';
                            tip = tip || result.err_info
                            let time = result.info_time || 0
                            if (time)
                                showError(tip, this.translateSys('tip'))
                            else
                                showInfo(tip)
                            if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                                if (result.result_type == 2) {
                        }
                        if (cls_name && event_name) tip =
                            `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                        if (result.ret == 801) showInfo(tip)
                        else showError(`${tip},提示:${result.ret}`, this.translateSys('tip'))
                        this.saving = false
                        return false
                    } else {
                        var tip = result.info ? typeof result.info == 'string' ? result.info :
                            result.info.join('\n') : '';
                        tip = tip || result.err_info
                        let time = result.info_time || 0
                        if (time)
                            showError(tip, this.translateSys('tip'))
                        else
                            showInfo(tip)
                        if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                            if (result.result_type == 2) {
                                } else if (typeof result.result == 'string') {
                                    showInfo(result.result)
                                }
                                var actionList = result.action || []
                                actionList.forEach(item => {
                                    if (item.action_type ==
                                        "goback_to_pre_page") { //返回上一页
                                        var value = item.value;
                                        uni.navigateBack({
                                            delta: 1, //返回层数,2则上上页
                                        });
                                    } else {
                                        showInfo(this
                                            .translateSys(
                                                "quotation_mark_left"
                                            ) +
                                            item
                                            .action_type +
                                            this
                                            .translateSys(
                                                "quotation_mark_right"
                                            ) +
                                            this
                                            .translate(
                                                "tip_action_unprocessed"
                                            ))
                                    }
                                });
                            } else if (typeof result.result == 'string') {
                                showInfo(result.result)
                            }
                            var actionList = result.action || []
                            actionList.forEach(item => {
                                if (item.action_type ==
                                    "goback_to_pre_page") { //返回上一页
                                    var value = item.value;
                                    uni.navigateBack({
                                        delta: 1, //返回层数,2则上上页
                                    });
                                } else {
                                    showInfo(this
                                        .translateSys(
                                            "quotation_mark_left"
                                        ) +
                                        item
                                        .action_type +
                                        this
                                        .translateSys(
                                            "quotation_mark_right"
                                        ) +
                                        this
                                        .translate(
                                            "tip_action_unprocessed"
                                        ))
                                }
                            });
                        }
                    }).catch(ex => {
                        // console.log(ex);
                        showError(ex, this.translateSys("error") + "9.1")
                    });
                    }
                } catch (ex) {
                    showError(ex, this.translateSys('error') + "9.2")
pages/modal/3202_view.vue
@@ -113,7 +113,7 @@
            },
        },
        onBackPress(e) {
            this.navigateBackEvent()
            this.beforeNavigateBack()
        },
        async onLoad(options) {
            console.log(options);
@@ -393,67 +393,69 @@
                    var $this = this;
                    runCustomEvent(dataInfo).then(result => {
                            console.log(result);
                        console.log(result);
                            if (result.ret != 0 && result.ret != 1) {
                                let cls_name = result.event_info?.cls_name
                                let event_name = result.event_info?.event_name
                                tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info : result
                                    .err_info
                                    .join('\n') : ''
                                if (result.ret == 801) {
                                    if (this.param.Only_Script_Error) {
                                        let pos = tip.indexOf(":");
                                        if (pos > -1) tip = tip.substring(pos + 1);
                                    }
                        if (result.ret != 0 && result.ret != 1) {
                            let cls_name = result.event_info?.cls_name
                            let event_name = result.event_info?.event_name
                            tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info :
                                result
                                .err_info
                                .join('\n') : ''
                            if (result.ret == 801) {
                                if (this.param.Only_Script_Error) {
                                    let pos = tip.indexOf(":");
                                    if (pos > -1) tip = tip.substring(pos + 1);
                                }
                                if (cls_name && event_name) tip = `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                                if (result.ret == 801) showInfo(tip)
                                else showError(`${tip},提示:${result.ret}`, this.translateSys('tip'))
                                this.saving = false
                                return false
                            } else {
                                var tip = result.info ? typeof result.info == 'string' ? result.info :
                                    result.info.join('\n') : '';
                                tip = tip || result.err_info
                                let time = result.info_time || 0
                                if (time)
                                    showError(tip, this.translateSys('tip'))
                                else
                            }
                            if (cls_name && event_name) tip =
                                `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                            if (result.ret == 801) showInfo(tip)
                            else showError(`${tip},提示:${result.ret}`, this.translateSys('tip'))
                            this.saving = false
                            return false
                        } else {
                            var tip = result.info ? typeof result.info == 'string' ? result.info :
                                result.info.join('\n') : '';
                            tip = tip || result.err_info
                            let time = result.info_time || 0
                            if (time)
                                showError(tip, this.translateSys('tip'))
                            else
                                showInfo(tip)
                                if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                                    if (result.result_type == 2) {
                            if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                                if (result.result_type == 2) {
                                    } else if (typeof result.result == 'string') {
                                        showInfo(result.result)
                                    }
                                    try {
                                        var actionList = result.action || []
                                        actionList.forEach(item => {
                                                if (item.action_type == "goback_to_pre_page") { //返回上一页
                                                    var value = item.value;
                                                    uni.navigateBack({
                                                        delta: 1, //返回层数,2则上上页
                                                    });
                                                } else {
                                                    showInfo(this
                                                        .translateSys(
                                                            "quotation_mark_left"
                                                        ) +
                                                        item
                                                        .action_type +
                                                        this
                                                        .translateSys(
                                                            "quotation_mark_right"
                                                        ) +
                                                        this
                                                        .translate(
                                                            "tip_action_unprocessed"
                                                        ))
                                } else if (typeof result.result == 'string') {
                                    showInfo(result.result)
                                            }
                                        });
                                }
                                try {
                                    var actionList = result.action || []
                                    actionList.forEach(item => {
                                        if (item.action_type == "goback_to_pre_page") { //返回上一页
                                            var value = item.value;
                                            uni.navigateBack({
                                                delta: 1, //返回层数,2则上上页
                                            });
                                        } else {
                                            showInfo(this
                                                .translateSys(
                                                    "quotation_mark_left"
                                                ) +
                                                item
                                                .action_type +
                                                this
                                                .translateSys(
                                                    "quotation_mark_right"
                                                ) +
                                                this
                                                .translate(
                                                    "tip_action_unprocessed"
                                                ))
                                        }
                                    });
                                } catch (ex) {
                                    let actionList = (result.action || []).map(a => a.action_type).join(';')
@@ -466,380 +468,431 @@
                        }
                    }).catch(ex => {
                    console.log(ex);
                    showError(ex, this.translateSys("error") + "9.1")
                        console.log(ex);
                        showError(ex, this.translateSys("error") + "9.1")
                });
            } catch (ex) {
                showError(ex, this.translateSys('error') + "9.2")
                    });
                } catch (ex) {
                    showError(ex, this.translateSys('error') + "9.2")
            }
        },
        //点击按钮列表
        clickDropdownBtns() {
            var that = this
            var itemlist = [];
            this.dropdownBtns.forEach((btn) => {
                itemlist.push(btn.ShowName);
            });
            uni.showActionSheet({
                // title: '按钮列表',
                itemList: itemlist,
                success: (e) => {
                    console.log(e.tapIndex);
                    var btn = that.dropdownBtns[e.tapIndex];
                    that.onButtonClicked(btn);
                }
            })
        },
        onButtonClicked(btn) {
            let enviroment = {
                button: "top",
                button_name: btn.ShowName,
                cls_id: btn.Cls_ID,
                function: "3202",
                master: {},
            };
            if (btn.FunCode == "TriggerEvent") {
                this.onTriggerEvent(btn, enviroment);
            } else {
                this.$Message.warning(this.$t("sys.unrealized"));
            }
        },
        async onTriggerEvent(btn, enviroment) {
            let data_json = [];
            let jsonlist = [];
            let detailStyleList = this.detail1StyleDefList;
            detailStyleList.forEach((style) => {
                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;
            },
            //点击按钮列表
            clickDropdownBtns() {
                var that = this
                var itemlist = [];
                this.dropdownBtns.forEach((btn) => {
                    itemlist.push(btn.ShowName);
                });
                jsonlist.push(detail_attr);
            });
            data_json = Base64.encode(JSON.stringify(jsonlist));
                uni.showActionSheet({
                    // title: '按钮列表',
                    itemList: itemlist,
                    success: (e) => {
                        console.log(e.tapIndex);
                        var btn = that.dropdownBtns[e.tapIndex];
                        that.onButtonClicked(btn);
                    }
                })
            },
            onButtonClicked(btn) {
            let input_param = {};
            this.head_styledef.form.items.forEach((item) => {
                if (item.name == "Layout") {
                    item.setting.colList.forEach((cols) => {
                        if (cols != null) input_param[cols.fieldId] = cols.value;
                    });
                } else input_param[item.fieldId] = item.value;
            });
            input_param = Base64.encode(JSON.stringify(input_param));
            await this.runCustomEvent({
                ed_type: 0,
                start_transaction: true,
                class_id: btn.Cls_ID,
                event_id: btn.Event.ID,
                input_param,
                data_json,
            });
        },
        navigateBackEvent() {
            if (!this.exit_view_event.id)
                return
            let data_json = [];
            let jsonlist = [];
            let detailStyleList = this.detail1StyleDefList;
            detailStyleList.forEach((style) => {
                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;
                });
                jsonlist.push(detail_attr);
            });
            data_json = Base64.encode(JSON.stringify(jsonlist));
            let input_param = {};
            this.head_styledef.form.items.forEach((item) => {
                if (item.name == "Layout") {
                    item.setting.colList.forEach((cols) => {
                        if (cols != null) input_param[cols.fieldId] = cols.value;
                    });
                } else input_param[item.fieldId] = item.value;
            });
            input_param = Base64.encode(JSON.stringify(input_param));
            const eventChannel = this.getOpenerEventChannel();
            eventChannel.emit('ExitViewEvent', {
                ed_type: 0,
                start_transaction: true,
                class_id: this.param.ClsID,
                event_id: this.exit_view_event.id,
                input_param,
                data_json,
            });
        },
        cancel(e) { //取消
            this.navigateBackEvent()
            uni.navigateBack({
                delta: 1, //返回层数,2则上上页
            });
        },
        /**
         * 只支持["column1='A' or column2='B'", "column3='C' and column4='D'", "column5='E'"]这种格式
         * {
         *     "model": 0 / 1,
         *     "condition":
         *     [
         *         [
         *             { },
         *             { },
         *             { }
         *         ],
         *         [
         *             { }
         *         ],
         *         [
         *             { }
         *         ]
         *     ]
         * }
         */
        toWhereBase64String(list) {
            if (typeof list == 'string') list = [list]
            var sql = []
            var seps = [' not in', ' in', '<>', '!=', '<=', '>=', '<', '=',
                '>', ' like'
            ]
            list.forEach(ls => {
                var where = ls.trim()
                if (where.startsWith('(') && where.endsWith(')'))
                    where = where.replace(
                        /^\(/,
                        '').replace(
                        /\)$/, '')
                if (where.toLowerCase().includes(' and ')) {
                    // 二级and放在第一级数组中
                    where.split(/ and /i).forEach(li => {
                        var l = li.trim()
                        if (l.startsWith('(') && l.endsWith(
                                ')')) l = l.replace(
                            /^\(/,
                            '').replace(
                            /\)$/, '')
                        var sep = ''
                        for (var i = 0; i < seps.length; i++) {
                            if (l.toLowerCase().includes(seps[
                                    i])) {
                                sep = seps[i]
                                break
                            }
                        }
                        if (sep) {
                            var values = l.split(new RegExp(
                                sep, 'i'))
                            var field = values[0]?.trim()
                                .replace(/^\[/, '')
                                .replace(
                                    /\]$/, '')
                            var value = ''
                            var op = sep.trim()
                            if ([' in', ' not in'].includes(
                                    sep) && values[1]
                                ?.toLowerCase().includes(
                                    'select ') && values[1]
                                ?.toLowerCase()
                                .includes(
                                    ' from ')) {
                                value = l.replace(field, '')
                                    .replace(
                                        /^\s*(in|not in)\s*/i,
                                        '').trim()
                                if (value.startsWith('(') &&
                                    value.endsWith(')'))
                                    value = value
                                    .replace(/^\(/, '')
                                    .replace(/\)$/, '').trim()
                            } else {
                                value = values[1]?.trim()
                                    .replace(/^\'/, '')
                                    .replace(
                                        /\'$/, '')
                                if (['in', 'not in'].includes(
                                        op)) {
                                    value = value.replace(
                                        /^\(/, '').replace(
                                        /\)$/,
                                        '')
                                    value = value.split(',')
                                        .map(v => v.trim()
                                            .replace(
                                                /^\'/, '')
                                            .replace(/\'$/, '')
                                        )
                                }
                            }
                            sql.push([{
                                field,
                                value,
                                op
                            }])
                        }
                    })
                } else if (where.toLowerCase().includes(' or ')) {
                    // 二级or放在第二级同一组数组中
                    var s = []
                    where.split(/ or /i).forEach(li => {
                        var l = li.trim()
                        if (l.startsWith('(') && l.endsWith(
                                ')')) l = l.replace(
                            /^\(/,
                            '').replace(
                            /\)$/, '')
                        var sep = ''
                        for (var i = 0; i < seps.length; i++) {
                            if (l.toLowerCase().includes(seps[
                                    i])) {
                                sep = seps[i]
                                break
                            }
                        }
                        if (sep) {
                            var values = l.split(new RegExp(
                                sep, 'i'))
                            var field = values[0]?.trim()
                                .replace(/^\[/, '')
                                .replace(
                                    /\]$/, '')
                            var value = ''
                            var op = sep.trim()
                            if ([' in', ' not in'].includes(
                                    sep) && values[1]
                                ?.toLowerCase().includes(
                                    'select ') && values[1]
                                ?.toLowerCase()
                                .includes(
                                    ' from ')) {
                                value = l.replace(field, '')
                                    .replace(
                                        /^\s*(in|not in)\s*/i,
                                        '').trim()
                                if (value.startsWith('(') &&
                                    value.endsWith(')'))
                                    value = value
                                    .replace(/^\(/, '')
                                    .replace(/\)$/, '').trim()
                            } else {
                                value = values[1]?.trim()
                                    .replace(/^\'/, '')
                                    .replace(
                                        /\'$/, '')
                                if (['in', 'not in'].includes(
                                        op)) {
                                    value = value.replace(
                                        /^\(/, '').replace(
                                        /\)$/,
                                        '')
                                    value = value.split(',')
                                        .map(v => v.trim()
                                            .replace(
                                                /^\'/, '')
                                            .replace(/\'$/, '')
                                        )
                                }
                            }
                            sql.push([{
                                field,
                                value,
                                op
                            }])
                        }
                    })
                    sql.push(s)
                let enviroment = {
                    button: "top",
                    button_name: btn.ShowName,
                    cls_id: btn.Cls_ID,
                    function: "3202",
                    master: {},
                };
                if (btn.FunCode == "TriggerEvent") {
                    this.onTriggerEvent(btn, enviroment);
                } else {
                    var li = where
                    // 单一查询条件直接放在第一级数组中
                    var l = li.trim()
                    if (l.startsWith('(') && l.endsWith(')')) l = l
                        .replace(/^\(/, '')
                        .replace(
                            /\)$/, '')
                    var sep = ''
                    for (var i = 0; i < seps.length; i++) {
                        if (l.toLowerCase().includes(seps[i])) {
                            sep = seps[i]
                            break
                        }
                    }
                    if (sep) {
                        var values = l.split(new RegExp(sep, 'i'))
                        var field = values[0]?.trim().replace(/^\[/,
                            '').replace(/\]$/, '')
                        var value = ''
                        var op = sep.trim()
                    this.$Message.warning(this.$t("sys.unrealized"));
                }
                        if ([' in', ' not in'].includes(sep) && values[
                                1]?.toLowerCase()
                            .includes('select ') &&
                            values[1]?.toLowerCase().includes(' from ')
                        ) {
                            value = l.replace(field, '').replace(
                                    /^\s*(in|not in)\s*/i, '')
                                .trim()
                            if (value.startsWith('(') && value
                                .endsWith(')')) value = value
                                .replace(/^\(/, '')
                                .replace(/\)$/, '').trim()
                        } else {
                            value = values[1]?.trim().replace(/^\'/,
                                '').replace(/\'$/, '')
            },
            async onTriggerEvent(btn, enviroment) {
                let data_json = [];
                let jsonlist = [];
                            if (['in', 'not in'].includes(op)) {
                                value = value.replace(/^\(/, '')
                                    .replace(/\)$/, '')
                                value = value.split(',').map(v => v
                                    .trim().replace(/^\'/,
                                        '')
                                    .replace(/\'$/,
                                        ''))
                let detailStyleList = this.detail1StyleDefList;
                detailStyleList.forEach((style) => {
                    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;
                    });
                    jsonlist.push(detail_attr);
                });
                data_json = Base64.encode(JSON.stringify(jsonlist));
                let input_param = {};
                this.head_styledef.form.items.forEach((item) => {
                    if (item.name == "Layout") {
                        item.setting.colList.forEach((cols) => {
                            if (cols != null) input_param[cols.fieldId] = cols.value;
                        });
                    } else input_param[item.fieldId] = item.value;
                });
                input_param = Base64.encode(JSON.stringify(input_param));
                await this.runCustomEvent({
                    ed_type: 0,
                    start_transaction: true,
                    class_id: btn.Cls_ID,
                    event_id: btn.Event.ID,
                    input_param,
                    data_json,
                });
            },
            async navigateBackEvent() {
                try {
                    var $this = this;
                    if (!this.exit_view_event.id)
                        return
                    let data_json = [];
                    let jsonlist = [];
                    let detailStyleList = this.detail1StyleDefList;
                    detailStyleList.forEach((style) => {
                        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;
                        });
                        jsonlist.push(detail_attr);
                    });
                    data_json = Base64.encode(JSON.stringify(jsonlist));
                    let input_param = {};
                    this.head_styledef.form.items.forEach((item) => {
                        if (item.name == "Layout") {
                            item.setting.colList.forEach((cols) => {
                                if (cols != null) input_param[cols.fieldId] = cols.value;
                            });
                        } else input_param[item.fieldId] = item.value;
                    });
                    input_param = Base64.encode(JSON.stringify(input_param));
                    const result = await runCustomEvent({
                        ed_type: 0,
                        start_transaction: true,
                        class_id: this.param.ClsID,
                        event_id: this.exit_view_event.id,
                        input_param,
                        data_json,
                    })
                    if (result.ret != 0 && result.ret != 1) {
                        let cls_name = result.event_info?.cls_name
                        let event_name = result.event_info?.event_name
                        tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info :
                            result
                            .err_info
                            .join('\n') : ''
                        if (result.ret == 801) {
                            if (this.param.Only_Script_Error) {
                                let pos = tip.indexOf(":");
                                if (pos > -1) tip = tip.substring(pos + 1);
                            }
                        }
                        sql.push([{
                            field,
                            value,
                            op
                        }])
                        if (cls_name && event_name) tip =
                            `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                        if (result.ret == 801) showInfo(tip)
                        else showError(`${tip},提示:${result.ret}`, this.translateSys('tip'))
                        this.saving = false
                        return false
                    } else {
                        var tip = result.info ? typeof result.info == 'string' ? result.info :
                            result.info.join('\n') : '';
                        tip = tip || result.err_info
                        let time = result.info_time || 0
                        if (time)
                            showError(tip, this.translateSys('tip'))
                        else
                            showInfo(tip)
                        if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                            if (result.result_type == 2) {
                            } else if (typeof result.result == 'string') {
                                showInfo(result.result)
                            }
                        }
                    }
                } catch (ex) {
                    showError(ex, this.translateSys('error') + "9.2")
                }
            })
            if (sql.length > 0)
                return Base64.encode(JSON.stringify({
                    model: 1,
                    condition: sql
                }))
            else
                return ''
        },
        translate(t) {
            if (typeof this.$t == "function") return this.$t(`page.${t}`)
            else return t;
        },
        translateSys(t) {
            if (typeof this.$t == "function") return this.$t(`sys.${t}`)
            else return t;
        },
            },
             cancel(e) { //取消
                this.beforeNavigateBack()
                uni.navigateBack({
                    delta: 1, //返回层数,2则上上页
                });
            },
            async beforeNavigateBack()
            {
                await this.navigateBackEvent()
                const eventChannel = this.getOpenerEventChannel();
                eventChannel.emit('ExitViewPage');
            },
            /**
             * 只支持["column1='A' or column2='B'", "column3='C' and column4='D'", "column5='E'"]这种格式
             * {
             *     "model": 0 / 1,
             *     "condition":
             *     [
             *         [
             *             { },
             *             { },
             *             { }
             *         ],
             *         [
             *             { }
             *         ],
             *         [
             *             { }
             *         ]
             *     ]
             * }
             */
    },
            toWhereBase64String(list) {
                if (typeof list == 'string') list = [list]
                var sql = []
                var seps = [' not in', ' in', '<>', '!=', '<=', '>=', '<', '=',
                    '>', ' like'
                ]
                list.forEach(ls => {
                    var where = ls.trim()
                    if (where.startsWith('(') && where.endsWith(')'))
                        where = where.replace(
                            /^\(/,
                            '').replace(
                            /\)$/, '')
                    if (where.toLowerCase().includes(' and ')) {
                        // 二级and放在第一级数组中
                        where.split(/ and /i).forEach(li => {
                            var l = li.trim()
                            if (l.startsWith('(') && l.endsWith(
                                    ')')) l = l.replace(
                                /^\(/,
                                '').replace(
                                /\)$/, '')
                            var sep = ''
                            for (var i = 0; i < seps.length; i++) {
                                if (l.toLowerCase().includes(seps[
                                        i])) {
                                    sep = seps[i]
                                    break
                                }
                            }
                            if (sep) {
                                var values = l.split(new RegExp(
                                    sep, 'i'))
                                var field = values[0]?.trim()
                                    .replace(/^\[/, '')
                                    .replace(
                                        /\]$/, '')
                                var value = ''
                                var op = sep.trim()
                                if ([' in', ' not in'].includes(
                                        sep) && values[1]
                                    ?.toLowerCase().includes(
                                        'select ') && values[1]
                                    ?.toLowerCase()
                                    .includes(
                                        ' from ')) {
                                    value = l.replace(field, '')
                                        .replace(
                                            /^\s*(in|not in)\s*/i,
                                            '').trim()
                                    if (value.startsWith('(') &&
                                        value.endsWith(')'))
                                        value = value
                                        .replace(/^\(/, '')
                                        .replace(/\)$/, '').trim()
                                } else {
                                    value = values[1]?.trim()
                                        .replace(/^\'/, '')
                                        .replace(
                                            /\'$/, '')
                                    if (['in', 'not in'].includes(
                                            op)) {
                                        value = value.replace(
                                            /^\(/, '').replace(
                                            /\)$/,
                                            '')
                                        value = value.split(',')
                                            .map(v => v.trim()
                                                .replace(
                                                    /^\'/, '')
                                                .replace(/\'$/, '')
                                            )
                                    }
                                }
                                sql.push([{
                                    field,
                                    value,
                                    op
                                }])
                            }
                        })
                    } else if (where.toLowerCase().includes(' or ')) {
                        // 二级or放在第二级同一组数组中
                        var s = []
                        where.split(/ or /i).forEach(li => {
                            var l = li.trim()
                            if (l.startsWith('(') && l.endsWith(
                                    ')')) l = l.replace(
                                /^\(/,
                                '').replace(
                                /\)$/, '')
                            var sep = ''
                            for (var i = 0; i < seps.length; i++) {
                                if (l.toLowerCase().includes(seps[
                                        i])) {
                                    sep = seps[i]
                                    break
                                }
                            }
                            if (sep) {
                                var values = l.split(new RegExp(
                                    sep, 'i'))
                                var field = values[0]?.trim()
                                    .replace(/^\[/, '')
                                    .replace(
                                        /\]$/, '')
                                var value = ''
                                var op = sep.trim()
                                if ([' in', ' not in'].includes(
                                        sep) && values[1]
                                    ?.toLowerCase().includes(
                                        'select ') && values[1]
                                    ?.toLowerCase()
                                    .includes(
                                        ' from ')) {
                                    value = l.replace(field, '')
                                        .replace(
                                            /^\s*(in|not in)\s*/i,
                                            '').trim()
                                    if (value.startsWith('(') &&
                                        value.endsWith(')'))
                                        value = value
                                        .replace(/^\(/, '')
                                        .replace(/\)$/, '').trim()
                                } else {
                                    value = values[1]?.trim()
                                        .replace(/^\'/, '')
                                        .replace(
                                            /\'$/, '')
                                    if (['in', 'not in'].includes(
                                            op)) {
                                        value = value.replace(
                                            /^\(/, '').replace(
                                            /\)$/,
                                            '')
                                        value = value.split(',')
                                            .map(v => v.trim()
                                                .replace(
                                                    /^\'/, '')
                                                .replace(/\'$/, '')
                                            )
                                    }
                                }
                                sql.push([{
                                    field,
                                    value,
                                    op
                                }])
                            }
                        })
                        sql.push(s)
                    } else {
                        var li = where
                        // 单一查询条件直接放在第一级数组中
                        var l = li.trim()
                        if (l.startsWith('(') && l.endsWith(')')) l = l
                            .replace(/^\(/, '')
                            .replace(
                                /\)$/, '')
                        var sep = ''
                        for (var i = 0; i < seps.length; i++) {
                            if (l.toLowerCase().includes(seps[i])) {
                                sep = seps[i]
                                break
                            }
                        }
                        if (sep) {
                            var values = l.split(new RegExp(sep, 'i'))
                            var field = values[0]?.trim().replace(/^\[/,
                                '').replace(/\]$/, '')
                            var value = ''
                            var op = sep.trim()
                            if ([' in', ' not in'].includes(sep) && values[
                                    1]?.toLowerCase()
                                .includes('select ') &&
                                values[1]?.toLowerCase().includes(' from ')
                            ) {
                                value = l.replace(field, '').replace(
                                        /^\s*(in|not in)\s*/i, '')
                                    .trim()
                                if (value.startsWith('(') && value
                                    .endsWith(')')) value = value
                                    .replace(/^\(/, '')
                                    .replace(/\)$/, '').trim()
                            } else {
                                value = values[1]?.trim().replace(/^\'/,
                                    '').replace(/\'$/, '')
                                if (['in', 'not in'].includes(op)) {
                                    value = value.replace(/^\(/, '')
                                        .replace(/\)$/, '')
                                    value = value.split(',').map(v => v
                                        .trim().replace(/^\'/,
                                            '')
                                        .replace(/\'$/,
                                            ''))
                                }
                            }
                            sql.push([{
                                field,
                                value,
                                op
                            }])
                        }
                    }
                })
                if (sql.length > 0)
                    return Base64.encode(JSON.stringify({
                        model: 1,
                        condition: sql
                    }))
                else
                    return ''
            },
            translate(t) {
                if (typeof this.$t == "function") return this.$t(`page.${t}`)
                else return t;
            },
            translateSys(t) {
                if (typeof this.$t == "function") return this.$t(`sys.${t}`)
                else return t;
            },
        },
    };
</script>
<style lang="scss">
pages/modal/5601.vue
@@ -108,7 +108,7 @@
                </view>
            </uni-popup>
        </view>
    </view>
</template>
@@ -295,11 +295,309 @@
            },
            async loadInitialEvent() {
                try {
                    if (this.initialEvent.id) {
                        this.onChange(this.initialEvent)
                    const event = this.initialEvent
                    if (event.id) {
                        //获取表头属性
                        var head_attr = {};
                        this.head_styledef.form.items.forEach(item => {
                            if (item.name == "Layout") { //判断是否是栅栏格式
                                item.setting.colList.forEach(col => {
                                    if (col != null) head_attr[col
                                        .fieldId] = col.value;
                                });
                            } else
                                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({
                                id: "",
                                attrs: Object.keys(head_attr).map((a) => ({
                                    attr: a,
                                    value: head_attr[a] || "",
                                }))
                            })
                        );
                        var $this = this;
                        const jsonList = []
                        this.pageDetail.forEach((page) => {
                            jsonList.push({
                                page_name: page.Name,
                                item_list: $this.getDetailAttrList(
                                    page),
                                ext_data: page.ExtData || {}
                            })
                        })
                        const data_json = Base64.encode(
                            JSON.stringify(jsonList)
                        );
                        console.log(jsonList)
                        var dataInfo = {
                            ed_type: 0,
                            start_transaction: true,
                            class_id: this.head_styledef.form.clsId,
                            class_name: '',
                            event_id: event.id,
                            event_name: '',
                            data_obj_id: '',
                            obj_attr: obj_attr,
                            prj_id: '',
                            ref_cls_id: '',
                            rel_obj_id: '',
                            user_login: '',
                            data_json: data_json,
                            compose_info: '',
                            ext_info: '',
                            global_attr: '',
                            input_param: input_param,
                        };
                        const result = await runCustomEvent(dataInfo)
                        console.log(result);
                        if (result.ret != 0 && result.ret != 1) {
                            let cls_name = result.event_info?.cls_name
                            let event_name = result.event_info?.event_name
                            tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info : result
                                .err_info
                                .join('\n') : ''
                            if (result.ret == 801) {
                                if (this.param.Only_Script_Error) {
                                    let pos = tip.indexOf(":");
                                    if (pos > -1) tip = tip.substring(pos + 1);
                                }
                            }
                            if (cls_name && event_name) tip = `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                            if (result.ret == 801) showInfo(tip)
                            else showError(`${tip},提示:${result.ret}`, this.translateSys('tip'))
                            this.saving = false
                            return false
                        } else {
                            var tip = result.info ? typeof result.info == 'string' ? result.info :
                                result.info.join('\n') : '';
                            tip = tip || result.err_info
                            let time = result.info_time || 0
                            if (time)
                                showError(tip, this.translateSys('tip'))
                            else
                                showInfo(tip)
                            if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                                if (result.result_type == 2) {
                                } else if (typeof result.result == 'string') {
                                    showInfo(result.result)
                                }
                                try {
                                    let actionList = result.action || []
                                    actionList.forEach(item => {
                                        if (item.action_type ==
                                            "insert_subtable_page_row"
                                        ) { //码盘中
                                            $this.param.Show_Welcom_Page =
                                                false;
                                            var value = item.value;
                                            $this.viewAceionRow(value);
                                        } else if (item.action_type ==
                                            "set_subtable_page_content"
                                        ) { //已码盘
                                            $this.param.Show_Welcom_Page =
                                                false;
                                            var value = item.value;
                                            const pageData = $this
                                                .pageDetail.find((
                                                    page) => {
                                                    return value
                                                        .page_name ==
                                                        page.Name;
                                                });
                                            if (value.clear_confirm !=
                                                false && value.clear ==
                                                true &&
                                                pageData && pageData
                                                .DefList.length > 0
                                            ) { //判断是否清空页签内容,正在码盘是否有数据
                                                uni.showModal({
                                                    title: this
                                                        .translateSys(
                                                            'tip'),
                                                    content: this
                                                        .translate(
                                                            "are_you_sure_clear_first"
                                                        ) +
                                                        this
                                                        .translateSys(
                                                            "quotation_mark_left"
                                                        ) +
                                                        value
                                                        .page_name +
                                                        this
                                                        .translateSys(
                                                            "quotation_mark_right"
                                                        ) +
                                                        this
                                                        .translate(
                                                            "are_you_sure_clear_last"
                                                        ),
                                                    cancelText: $this
                                                        .translateSys(
                                                            'ok'),
                                                    confirmText: $this
                                                        .translateSys(
                                                            'cancel'
                                                        ),
                                                    success: function(
                                                        res) {
                                                        if (res
                                                            .cancel
                                                        ) {
                                                            if (
                                                                pageData)
                                                                pageData
                                                                .DefList = [];
                                                            $this
                                                                .viewAceionContent(
                                                                    value
                                                                );
                                                        } else if (
                                                            res
                                                            .confirm
                                                        ) {
                                                            if (
                                                                pageData)
                                                                pageData
                                                                .DefList = [];
                                                            $this
                                                                .viewAceionContent(
                                                                    value
                                                                );
                                                        }
                                                    }
                                                });
                                            } else {
                                                if (pageData)
                                                    pageData.DefList = [];
                                                $this.viewAceionContent(
                                                    value);
                                            }
                                        } else if (item.action_type ==
                                            "select_subtable_page") {
                                            var value = item.value;
                                            const pageIndex = $this
                                                .pageDetail.findIndex((
                                                    page) => {
                                                    return value
                                                        .page_name ==
                                                        page.Name;
                                                });
                                            if (pageIndex > -1) {
                                                $this.setData({
                                                    current: pageIndex
                                                })
                                            }
                                        } else if (item.action_type ==
                                            "select_subtable_page_row") {
                                            // value = {"page_name":"码盘中", "row":{"id":"xx"}}
                                            var value = item.value;
                                            $this.viewActionSelectRow(
                                                value)
                                        } else if (item.action_type ==
                                            "remove_subtable_page_row"
                                        ) { //清除面板中指定id的数据
                                            var value = item.value;
                                            $this.viewActionRemoveRow(
                                                value)
                                        } else if (item.action_type ==
                                            "set_subtable_page_row") {
                                            $this.viewActionSetRow(item
                                                .value)
                                        } else if (item.action_type ==
                                            "set_subtable_page_ext_data") {
                                            var value = item.value;
                                            const pageData = $this
                                                .pageDetail.find((
                                                    page) => {
                                                    return value
                                                        .page_name ==
                                                        page.Name;
                                                });
                                            if (pageData)
                                                pageData.ExtData = value
                                                .ext_data
                                        } else if (item.action_type ==
                                            "clear_subpage_rows") {
                                            var value = item.value;
                                            const pageIndex = $this
                                                .pageDetail.findIndex((
                                                    page) => {
                                                    return value
                                                        .page_name ==
                                                        page.Name;
                                                });
                                            if (pageIndex > -1) {
                                                const pageData = $this
                                                    .pageDetail[pageIndex]
                                                pageData.DefList = []
                                                pageData.ExtData = {}
                                                $this.$set(this.pageDetail,
                                                    pageIndex, pageData
                                                )
                                            }
                                        } else if (item.action_type ==
                                            "set_dlg_current_edit_attr") {
                                            if ($this.focusOldFieldId ==
                                                item.value) {
                                                $this.setData({
                                                    focusFieldId: ""
                                                })
                                            } 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"}
                                            var data = item.value;
                                            $this.setFormValues(data)
                                        } else if (item.action_type ==
                                            'set_dlg_attr_show') {
                                            var data = item.value;
                                            $this.setFormItemVisible(data)
                                        }
                                    });
                                } catch (ex) {
                                    let actionList = (result.action || []).map(a =>
                                        a.action_type).join(';')
                                    let tip = typeof ex == 'string' ? ex : ex
                                        .message
                                    tip = `执行脚本返回的${actionList}时出现异常,请检查脚本返回的数据格式是否正确。${tip}`
                                    showError(tip, this.translateSys('tip'))
                                    return
                                }
                            }
                        }
                    }
                } catch (ex) {
                    showError(ex, this.translateSys('error'))
                    console.log(ex);
                    showError(ex, this.translateSys('error') + "4.2")
                }
            },
@@ -860,7 +1158,7 @@
                        if (time)
                            showError(tip, this.translateSys('tip'))
                        else
                        showInfo(tip)
                            showInfo(tip)
                        if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                            if (result.result_type == 2) {
@@ -1055,7 +1353,7 @@
                            if (time)
                                showError(tip, this.translateSys('tip'))
                            else
                            showInfo(tip)
                                showInfo(tip)
                            if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                                if (result.result_type == 2) {
@@ -2400,7 +2698,7 @@
                        if (time)
                            showError(tip, this.translateSys('tip'))
                        else
                        showInfo(tip)
                            showInfo(tip)
                        if ([0, 2, 3, 4, -1].includes(data
                                .result_type)) {
                            if (data.result_type == 2) {
@@ -3525,7 +3823,7 @@
                        if (time)
                            showError(tip, this.translateSys('tip'))
                        else
                        showInfo(tip)
                            showInfo(tip)
                        if ([0, 2, 3, 4, -1].includes(
                                result.result_type)) {
                            if (result.result_type == 2) {
@@ -3861,8 +4159,7 @@
                                            var data = item.value;
                                            const eventChannel = this.getOpenerEventChannel();
                                            eventChannel.emit('remove_pre_page_subtable_row', data);
                                        }
                                        else if (item.action_type == "goback_to_pre_page") {
                                        } else if (item.action_type == "goback_to_pre_page") {
                                            //返回上一页
                                            uni.navigateBack({
                                                delta: 1, //返回层数,2则上上页