cuiqian2004
2025-08-14 d066a9659f793dee40ac7fa0bc399ebd30664b4a
3202加列表按钮跳转功能点
7个文件已修改
394 ■■■■■ 已修改文件
manifest.json 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3018_2.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3037_2.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3202.vue 353 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/5600.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/5601.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/5602.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json
@@ -2,8 +2,8 @@
    "name" : "MoboxPDA",
    "appid" : "__UNI__56D451E",
    "description" : "",
    "versionName" : "1.1.65",
    "versionCode" : 1165,
    "versionName" : "1.1.66",
    "versionCode" : 1166,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
@@ -54,6 +54,13 @@
            /* SDK配置 */
            "sdkConfigs" : {
                "ad" : {}
            },
            "icons" : {
                "android" : {
                    "hdpi" : "C:/Users/adminc/Desktop/mbc.png",
                    "xhdpi" : "C:/Users/adminc/Desktop/mbc.png",
                    "xxhdpi" : "C:/Users/adminc/Desktop/mbc.png"
                }
            }
        },
        "nativePlugins" : {
pages/modal/3018_2.vue
@@ -180,7 +180,8 @@
            this.title = this.param.Add_BtnName ? this.param.Add_BtnName : options
                .titlename; //设置按钮文字
            this.btnName = this.param.Add_BtnName || ""
            this.loadData(options.paramValue)
            const paramValue = options.paramValue ? JSON.parse(options.paramValue) : undefined
            this.loadData(paramValue)
        },
        computed: {
            dropdownBtns() {
@@ -441,7 +442,7 @@
                    };
                    console.log(dataInfo);
                    var data = await runCustomEvent(dataInfo)
                    if (data.ret != 0&& data.ret != 1) {
                    if (data.ret != 0 && data.ret != 1) {
                        var tip = data.err_info ? typeof data.err_info == 'string' ? data
                            .err_info : data
                            .err_info.join('<br/>') : '';
@@ -900,7 +901,7 @@
                console.log(dataInfo);
                // return;
                runCustomEvent(dataInfo).then(data => {
                    if (data.ret != 0&& data.ret != 1) {
                    if (data.ret != 0 && data.ret != 1) {
                        var tip = data.err_info ? typeof data.err_info == 'string' ? data
                            .err_info :
                            data
@@ -1091,7 +1092,7 @@
                console.log(dataInfo);
                // return;
                runCustomEvent(dataInfo).then(data => {
                    if (data.ret != 0&& data.ret != 1) {
                    if (data.ret != 0 && data.ret != 1) {
                        var tip = data.err_info ? typeof data.err_info == 'string' ? data
                            .err_info :
                            data
@@ -1418,7 +1419,7 @@
                    uni.hideLoading();
                    let data = res.lua_result
                    if (data) {
                        if (data.ret != 0&& ret.ret != 1) {
                        if (data.ret != 0 && ret.ret != 1) {
                            var tip = data.err_info ? typeof data.err_info == 'string' ? data
                                .err_info :
                                data
@@ -1714,7 +1715,7 @@
                // return;
                runCustomEvent(dataInfo).then(data => {
                    if (data.ret != 0&& data.ret != 1) {
                    if (data.ret != 0 && data.ret != 1) {
                        var tip = data.err_info ? typeof data.err_info == 'string' ? data
                            .err_info :
                            data
@@ -1917,7 +1918,7 @@
                };
                console.log(dataInfo);
                // return;
                runCustomEvent(dataInfo&& data.ret != 1).then(data => {
                runCustomEvent(dataInfo && data.ret != 1).then(data => {
                    if (data.ret != 0) {
                        var tip = data.err_info ? typeof data.err_info == 'string' ? data
                            .err_info :
pages/modal/3037_2.vue
@@ -173,7 +173,8 @@
            }); //设置顶部标题 
            this.title = options.titlename;
            this.param = JSON.parse(options.param);
            this.loadData(options.paramValue)
            const  paramValue = options.paramValue ?JSON.parse(options.paramValue) :undefined
            this.loadData(paramValue)
            //页面初始化获取焦点
            // this.focusMateria=true; 
pages/modal/3202.vue
@@ -13,8 +13,16 @@
                            :class="activeItem == style?'bk-active':''">
                            <div class="dv-panel-input">
                                <OIForm class="v-area dv-panel" :form="style.form" viewMode></OIForm>
                                <div class="dv-panel-button" v-if="rowButtons.length > 0">
                                    <button size="mini" v-for="(btn,btnIndex) in rowButtons" :key="btnIndex"
                                        type="primary" @click="onRowBtnClick(btn, ii)">
                                        <text v-if="btn.Style == 'img' || btn.Style == 'img_text'" class="img"></text>
                                        {{btn.ShowName}}
                                    </button>
                                </div>
                            </div>
                            <div class="dv-panel-button" v-if="click_item_view">
                            <div class="dv-panel-right-button" v-if="click_item_view">
                                <a @click="onViewPageClick(style)"><i class="mobox-normal-right-arrow" /></a>
                            </div>
                        </view>
@@ -90,6 +98,9 @@
                    name: this.param?.ClickItem_Event?.name,
                    id: this.param?.ClickItem_Event?.id,
                };
            },
            rowButtons() {
                return this.param?.ListItem_Button || [];
            },
        },
@@ -489,7 +500,7 @@
                    data_json,
                }).then(result => {
                    // console.log(result);
                    if (result.ret != 0&& result.ret != 1) {
                    if (result.ret != 0 && result.ret != 1) {
                        var tip = result.err_info ? typeof result
                            .err_info ==
                            'string' ?
@@ -597,9 +608,303 @@
                            'close')
                    });
                });
            },
            onRowBtnClick(btn, index) {
                const $this = this
                if (btn.Prompt) {
                    const sContent = btn.PromptContent || this.translate("confirm")
                    uni.showModal({
                        title: this.translateSys("tip"),
                        content: btn.PromptContent || this.translate("confirm"),
                        cancelText: this.translateSys('ok'),
                        confirmText: this.translateSys('cancel'),
                        success: function(res) {
                            if (res.cancel) {
                                $this.onButtonClicked(btn, index);
                            }
                        },
                    })
                } else {
                    this.handleButtonClick((done) => {
                        this.onButtonClicked(btn, index);
                        setTimeout(() => {
                            done(); // 重置状态
                        }, 1000);
                    });
                }
            },
            onButtonClicked(btn, index) {
                let enviroment = {
                    button: "row",
                    button_name: btn.ShowName,
                    cls_id: btn.Cls_ID,
                    function: "3022",
                    master: {},
                };
                if (btn.FunCode == "TriggerEvent") {
                    const style = this.detail1StyleDefList[index];
                    this.triggerEvent(btn, style, enviroment);
                } else if (btn.FunCode == "RelatedFunction") {
                    const style = this.detail1StyleDefList[index];
                    this.relatedFunction(btn, style, enviroment);
                } else {
                    uni.showModal({
                        title: this.translateSys("tip"),
                        content: this.translateSys("unrealized"),
                        showCancel: false,
                        confirmText: this.translateSys('close')
                    });
                }
            },
            //执行触发事件
            async triggerEvent(btn, style, enviroment) {
                const $this = this
                var obj_attr = this.head_styledef.form.model;
                // console.log(obj_attr);
                var input_param = Base64.encode(
                    JSON.stringify(
                        Object.keys(obj_attr).map((a) => ({
                            attr: a,
                            value: obj_attr[a] || "",
                        }))
                    )
                );
                let detail_attr = {};
                style.form.items.forEach((item) => {
                    if (item.name == "Layout") {
                        item.setting.colList.forEach((cols) => {
                            if (cols != null) detail_attr[cols.fieldId] = cols.value;
                        });
                    } else detail_attr[item.fieldId] = item.value;
                });
                detail_attr["id"] = style.form.objId;
                const attrs = Object.keys(detail_attr)
                    .map((a) => ({
                        attr: a,
                        value: detail_attr[a] || "",
                    }))
                    .filter((a) => {
                        return a.attr != "id";
                    });
                let data_json = Base64.encode(JSON.stringify(attrs));
                runCustomEvent({
                    ed_type: 0,
                    start_transaction: true,
                    class_id: btn.Cls_ID,
                    event_id: btn.Event.ID,
                    input_param,
                    data_json,
                }).then(result => {
                    // console.log(result);
                    if (result.ret != 0 && result.ret != 1) {
                        var tip = result.err_info ? typeof result
                            .err_info ==
                            'string' ?
                            result
                            .err_info : result.err_info.join(
                                '<br/>') : '';
                        if (result.ret == 801) {
                            if (this.param.Only_Script_Error) {
                                let pos = tip.indexOf(":");
                                if (pos > -1) tip = tip.substring(
                                    pos + 1);
                            }
                            uni.showModal({
                                title: this.translateSys(
                                    "tip"),
                                content: tip,
                                showCancel: false,
                                confirmText: this
                                    .translateSys('close')
                            });
                        } else uni.showModal({
                            title: this.translateSys(
                                "tip"),
                            content: tip + ',' + this
                                .translateSys('tip') +
                                ':' +
                                result
                                .ret,
                            showCancel: false,
                            confirmText: this.translateSys(
                                'close')
                        });
                        return false;
                    } else {
                        var tip = result.info ? typeof result
                            .info == 'string' ? result
                            .info :
                            result.info.join('<br/>') : '';
                        tip = tip || result.err_info
                        if (tip) uni.showModal({
                            title: this.translateSys(
                                "tip"),
                            content: tip,
                            showCancel: false,
                            confirmText: this.translateSys(
                                'close')
                        });
                        if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                            if (result.result_type == 2) {
                            } else if (typeof result.result == 'string') {
                                if (result.result) {
                                    uni.showModal({
                                        title: this.translateSys('tip'),
                                        content: result.result,
                                        showCancel: false,
                                        confirmText: this.translateSys('close')
                                    });
                                }
                            }
                            try {
                                var actionList = result.action || []
                                actionList.forEach(item => {
                                    if (item.action_type == "jump_pda_page") {
                                        // value = {"attr":"xxx", "value":"xxx"}
                                        var data = item.value;
                                        uni.navigateTo({
                                            url: `../modal/3202_view?param=${JSON.stringify($this.param)}&titlename=${data.page?.page_name || ""}&dataObj=${JSON.stringify(data)}`,
                                            events: {
                                                // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
                                                ExitViewEvent: function(data) {
                                                    console.log(data);
                                                    this.runCustomEvent(data);
                                                }
                                            }
                                        });
                                    }
                                })
                            } catch (ex) {
                                let actionList = (result.action || []).map(a => a.action_type).join(';')
                                let tip = typeof ex == 'string' ? ex : ex.message
                                tip = `执行脚本返回的${actionList}时出现异常,请检查脚本返回的数据格式是否正确。${tip}`
                                uni.showModal({
                                    title: this.translateSys('tip'),
                                    content: tip,
                                    showCancel: false,
                                    confirmText: this.translateSys('close')
                                });
                                console.log(ex)
                                return
                            }
                        }
                    }
                }).catch(ex => {
                    // console.log(ex);
                    uni.showModal({
                        title: this.translateSys("error") +
                            "8.1",
                        content: ex.errMsg,
                        showCancel: false,
                        confirmText: this.translateSys(
                            'close')
                    });
                });
            },
            async relatedFunction(btn, style, enviroment) {
                //跳转功能点
                try {
                    const defCode = btn.Related_Function?.Def_Code
                    var $this = this;
                    if (
                        defCode == "3018" ||
                        defCode == "3037" ||
                        defCode == "3200" ||
                        defCode == "3201" ||
                        defCode == "5600" ||
                        defCode == "5601" ||
                        defCode == "5602"
                    ) {
                        let name = defCode
                        if (defCode == "3018" || defCode == "3037")
                            name = defCode + "_2"
                        var json = {
                            app_id: [btn.Related_Function.ID],
                        };
                        const result = await appGetInfo(json)
                        if ((result || []).length > 0) {
                            var app = result[0];
                            var param = "";
                            var appName = app.list_name || app.name
                                .Name;
                            var paramStr = app.param
                            if (paramStr) {
                                //mobox2的param是json字符串
                                param = paramStr.replace(/\\/g, "");
                                //mobox3的param是base64字符串
                                if (!paramStr.includes('"')) param = Base64.decode(
                                    paramStr);
                            }
                            if (!param) {
                                uni.showModal({
                                    title: this.translateSys("tip"),
                                    content: this.translate(
                                        'tip_no_app_param'),
                                    showCancel: false,
                                    confirmText: this.translateSys(
                                        'close')
                                });
                                return;
                            }
                            uni.navigateTo({
                                url: '../modal/' + name + '?param=' +
                                    param + "&titlename=" +
                                    appName +
                                    "&type=relatedFunction&paramValue=" +
                                    JSON.stringify(style
                                        .form),
                                events: {
                                    relatedFunction: function(data) {
                                        console.log(data);
                                        $this.Refresh();
                                    },
                                }
                            });
                        } else {
                            uni.showModal({
                                title: this.translateSys("error"),
                                content: this.translate(
                                    "function_not_exist"),
                                showCancel: false,
                                confirmText: this.translateSys('close')
                            });
                        }
                    } else {
                        uni.showModal({
                            title: this.translateSys("error"),
                            content: this.translate("cannot_related_function"),
                            showCancel: false,
                            confirmText: this.translateSys('close')
                        });
                    }
                } catch (ex) {
                    console.log(ex);
                    let exStr = JSON.stringify(ex)
                    if (exStr == "{}")
                        exStr = ex
                    let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
                    uni.showModal({
                        title: this.translateSys("error"),
                        content: tip,
                        showCancel: false,
                        confirmText: this.translateSys('close')
                    });
                    return undefined
                }
            },
            ontap(item) { //扫码功能
                // var $ele = e;
@@ -642,7 +947,7 @@
            },
            onEnterChange(item) { //回车,点击按钮,取消节点事件
                // console.log(item);
                console.log(item);
                let newVal = item.value
                if (typeof item.value == "string") {
                    newVal = item.value.trim()
@@ -676,7 +981,7 @@
                try {
                    if (event.id) {
                        var obj_attr = this.head_styledef.form.model;
                        // console.log(obj_attr);
                        console.log(obj_attr);
                        var input_param = Base64.encode(
                            JSON.stringify(
                                Object.keys(obj_attr).map((a) => ({
@@ -706,8 +1011,8 @@
                            input_param: input_param,
                        };
                        runCustomEvent(dataInfo).then(result => {
                            // console.log(result);
                            if (result.ret != 0&& result.ret != 1) {
                            console.log(result);
                            if (result.ret != 0 && result.ret != 1) {
                                var tip = result.err_info ? typeof result
                                    .err_info ==
                                    'string' ?
@@ -1034,7 +1339,7 @@
                    runCustomEvent(dataInfo).then(result => {
                        console.log(result);
                        if (result.ret != 0&& result.ret != 1) {
                        if (result.ret != 0 && result.ret != 1) {
                            var tip = result.err_info ? typeof result
                                .err_info ==
                                'string' ?
@@ -1465,7 +1770,7 @@
        .dv-panel-bkcolor {
            border: 1px solid #ccc;
            border-radius: 5px;
            background-color: #F5F5F5;
            background-color: #F8F8F8;
        }
        .dv-panel {
@@ -1494,17 +1799,33 @@
        .dv-panel-button {
            width: 100%;
            min-height: 16px;
            padding-bottom: 10rpx;
            display: flex;
            flex-direction: row;
            // justify-content: right;
            button {
                 line-height:1.6;
                // border: none;
                // margin-right: 10rpx;
                // text-align: center;
            }
        }
        .dv-panel-right-button {
            display: inline-block;
        }
        .dv-panel-button a i {
            font-size: 36rpx;
        }
            a i {
                font-size: 36rpx;
            }
        .dv-panel-button button {
            height: 50rpx;
            font-size: 26rpx;
            padding: 0 24rpx;
            button {
                height: 50rpx;
                font-size: 26rpx;
                padding: 0 24rpx;
            }
        }
        .bk-active {
pages/modal/5600.vue
@@ -255,7 +255,8 @@
            this.title = options.titlename;
            this.param = JSON.parse(options.param);
            // console.log(this.param);
            this.loadData(options.paramValue)
            const  paramValue = options.paramValue ?JSON.parse(options.paramValue) :undefined
            this.loadData(paramValue)
        },
        //页面初始化获取焦点
        methods: {
pages/modal/5601.vue
@@ -185,7 +185,8 @@
            //获取主数据类ID
            this.ClsID = this.param.master_cls?.id;
            if (this.ClsID) {
                this.loadData(options.paramValue)
                const  paramValue = options.paramValue ?JSON.parse(options.paramValue) :undefined
                this.loadData(paramValue)
            } else {
                uni.showModal({
                    title: this.translateSys("error"),
@@ -224,6 +225,7 @@
                //获取数据类的自定义表单参数
                await this.Head_UIStyleGetInfo(this.ClsID, this.param.Input_UI_Style.ID);
                //传入参数值
                console.log(paramValue)
                if (paramValue) {
                    const attrs = paramValue.attrs || [];
                    (this.head_styledef?.form?.items || []).forEach(async (ele, index) => {
@@ -3450,7 +3452,7 @@
                button {
                    text-align: left;
                    line-height: 1.5;
                    line-height: 1.6;
                    border: none;
                    margin-right: 10rpx;
pages/modal/5602.vue
@@ -259,7 +259,8 @@
            this.title = options.titlename;
            this.param = JSON.parse(options.param);
            // console.log(this.param);
            this.loadData(options.paramValue)
            const  paramValue = options.paramValue ?JSON.parse(options.paramValue) :undefined
            this.loadData(paramValue)
        },
        methods: {
            setData: function(obj) {