cuiqian2004
2024-07-22 9ae83a12c2b9c764e28760fb9c3c09fe697c8990
3018 按钮修改
6个文件已修改
405 ■■■■ 已修改文件
manifest.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3018.vue 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3018_2.vue 326 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/3200.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json
@@ -2,8 +2,8 @@
    "name" : "MoboxPDA",
    "appid" : "__UNI__56D451E",
    "description" : "",
    "versionName" : "1.1.06",
    "versionCode" : 1106,
    "versionName" : "1.1.07",
    "versionCode" : 1107,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
pages.json
@@ -84,14 +84,14 @@
                "enablePullDownRefresh": false
            }
        },
        // ,{
        //     "path" : "pages/modal/3018",
        //     "style" :
        //     {
        //         "navigationBarTitleText": "新增",
        //         "enablePullDownRefresh": false
        //     }
        // }
        {
            "path" : "pages/modal/3018",
            "style" :
            {
                "navigationBarTitleText":"%sys.add2%",
                "enablePullDownRefresh": false
            }
        },
        // {
        //     "path": "pages/modal/small-wnd/index",
        //     "style": {
pages/index/index.vue
@@ -16,7 +16,7 @@
                        :style="{'background-color':app.bk_color,'color':app.bk_color}">
                        <i :class="app.img_font_style" :style="{'color':app.txt_color}"></i>
                    </a>
                    <p :data-key="app.id">{{ app.name || app.list_name}}</p>
                    <p :data-key="app.id">{{  app.list_name||  app.name}}</p>
                </li>
            </ul>
@@ -130,7 +130,7 @@
            appCreate(app) { //点击功能点跳转页面
                console.log(app);
                var paramStr = this.$store.state.OIMoboxSAPI ? app.param : app.Param;
                var appName = this.$store.state.OIMoboxSAPI ? (app.name || app.list_name) : app.Name;
                var appName = this.$store.state.OIMoboxSAPI ? (app.list_name || app.name ) : app.Name;
                var defCode = this.$store.state.OIMoboxSAPI ? app.def_code : app.DefCode;
                var param = "";
                if (paramStr) {
pages/modal/3018.vue
@@ -1,5 +1,5 @@
<template>
    <view class="content">
    <view class="uni-page-modal-3018">
        <view class="v-area" v-for="(classattr,index) in classAttrList">
            <div class="class_attr_title" style="display: none;">
                <div class="title_line"></div>
@@ -254,8 +254,11 @@
            </div>
        </view>
        <button type="default" @tap="cancel" class="btn_cancel">{{translateSys('cancel')}}</button>
        <view class="v-bottom"><button type="default" @tap="cancel"
                class="btn_cancel">{{translateSys('cancel')}}</button>
        <button type="default" @tap="sava" class="btn_add">{{title}}</button>
        </view>
        <!-- 普通弹窗 top bottom center left right -->
        <view>
            <uni-popup class="view-popup" ref="popup" background-color="#fff" @change="popupChange">
@@ -338,8 +341,11 @@
                popupParam: {},
            }
        },
        mounted() {
            console.log("3018 mounted");
        },
        onLoad(options) {
            // console.log(options);
            console.log("3018", options);
            uni.setNavigationBarTitle({
                title: options.titlename
            }); //设置顶部标题 
@@ -363,8 +369,7 @@
            }
            if (!param.Edit_dlg.Name) {
                uni.showModal({
                    title: this.translateSys('tip')
                    ",
                    title: this.translateSys('tip'),
                    content: this.translate('function_not_edit_dlg'),
                    showCancel: false,
                    confirmText: this.translateSys('cancel')
@@ -950,7 +955,6 @@
                            for (var j = 0; j < attr.length; j++) {
                                var ar = attr[j];
                                req.push(this.formatAttr(ar))
                            }
                        }
                        var info = {
@@ -1246,7 +1250,7 @@
            },
            add() {
                uni.showLoading({
                    title: this.translateSys("loading")
                    title: this.translateSys("loading"),
                    mask: true
                });
                var req = [];
@@ -2347,7 +2351,25 @@
        }
    }
</script>
<style>
<style lang="less">
    .uni-page-modal-3018 {
        display: flex;
        height: calc(100vh - 30rpx);
        width: 720rpx;
        flex-direction: column !important;
        padding: 15rpx;
        .v-area {
            width: 100%;
            flex-direction: column !important;
        }
        .v-bottom {
            display: block;
            width: calc(100% - 30rpx);
            padding: 10rpx 15rpx 20rpx 15rpx;
        }
    .class_attr_title {
        font-size: 44rpx;
        padding-bottom: 22rpx;
@@ -2658,8 +2680,8 @@
        /* float: right; */
        display: inline-block;
    }
</style>
<style>
    .touch-item {
        background-color: #F8F9FC;
        display: flex;
@@ -2703,4 +2725,5 @@
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
    }
</style>
pages/modal/3018_2.vue
@@ -1,11 +1,12 @@
<template>
    <view class="uni-page-modal-3018-2">
        <view class="view-content">
        <!-- 表头样式 -->
        <uni-forms ref="baseForm" label-align="right">
            <view class="v-headStyle" v-for="(item,index) in head_styledef.form.items">
                <!-- 普通布局 -->
                <uni-forms-item class="head-form" v-if="item.name != 'Layout'&& item.show==true" :label="item.label +':' "
                    :label-width="item.labelWidth+'px'">
                    <uni-forms-item class="head-form" v-if="item.name != 'Layout'&& item.show==true"
                        :label="item.label +':' " :label-width="item.labelWidth+'px'">
                    <!-- <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}:</text> -->
                    <span class="form-item-span" v-if="item.disabled"
                        :style="'width: calc(100% - '+item.labelWidth+'px);'">{{item.value}}</span>
@@ -32,8 +33,8 @@
                    <view class="input-wrapper" v-if="item.name=='Textarea' && !item.disabled">
                        <textarea class="uni-input" :class="item.disabled?'input-disabled':''" :value="item.value"
                            :focus="focusFieldId == item.fieldId" :placeholder="item.placeholder"
                            @blur="onModelValue(item)" @click="onClick(item)" :data-index="index" style="height:60px;"
                            :style="{'width':'96%'}" :disabled="item.disabled"></textarea>
                                @blur="onModelValue(item)" @click="onClick(item)" :data-index="index"
                                style="height:60px;" :style="{'width':'96%'}" :disabled="item.disabled"></textarea>
                    </view>
                    <!-- 复选框 -->
@@ -46,8 +47,9 @@
                        </label>
                    </checkbox-group>
                    <!-- Switch开关 -->
                    <switch class="input-switch" v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''"
                        :disabled="item.disabled" v-model="item.value" @change="onModelValue(item)" />
                        <switch class="input-switch" v-if="item.name=='Switch'"
                            :class="item.disabled?'input-disabled':''" :disabled="item.disabled" v-model="item.value"
                            @change="onModelValue(item)" />
                    <!-- 日期时间 -->
                    <view class="input-wrapper"
                        v-if="(item.name=='TimePicker' || item.name=='DatePicker') && !item.disabled">
@@ -61,7 +63,8 @@
                <uni-row class="demo-uni-row" v-if="item.name=='Layout' && item.show==true">
                    <uni-col v-for="(cols,key) in item.setting.colList"
                        :span="item.setting.spanList?item.setting.spanList[key]:24 / item.setting.col">
                        <uni-forms-item class="head-form" v-if="cols!=null" :label="cols.label +':'" :label-width="cols.labelWidth+'px'">
                            <uni-forms-item class="head-form" v-if="cols!=null" :label="cols.label +':'"
                                :label-width="cols.labelWidth+'px'">
                            <!-- <text class="txt_title" :style="{'width':cols.labelWidth+'px'}">{{cols.label}}:</text> -->
                            <span class="form-item-span" v-if="cols.disabled">{{cols.value}}</span>
                            <view class="input-wrapper"
@@ -72,15 +75,16 @@
                                    :type="cols.name=='Input'?'text':cols.name=='InputNumber'?'number':'text'"
                                    v-model="cols.value" :disabled="cols.disabled" :placeholder="cols.placeholder"
                                    :style="{'width':cols.setting.prefix && cols.setting.suffix?'78%':cols.setting.prefix || cols.setting.suffix?'87%':'96%'}"
                                    :focus="focusFieldId == cols.fieldId" @focus="ontap(cols)" @click="onClick(cols)"
                                    @blur="onevent(cols)" />
                                        :focus="focusFieldId == cols.fieldId" @focus="ontap(cols)"
                                        @click="onClick(cols)" @blur="onevent(cols)" />
                                <text v-if="cols.setting.suffix" class="uni-icon" :class="[cols.setting.suffix]"
                                    @click="onchange(cols)">&#xe568;</text>
                            </view>
                            <!-- 下拉框-单选 cols.useDict?cols.dict:cols.selections-->
                            <uni-data-select id="dv_select" v-if="cols.name=='Select' && !cols.disabled"
                                :class="cols.disabled?'input-disabled':''" v-model="cols.value" :localdata="cols.dict"
                                @change="onchange(cols)" :disabled="cols.disabled" :clear="false"></uni-data-select>
                                    :class="cols.disabled?'input-disabled':''" v-model="cols.value"
                                    :localdata="cols.dict" @change="onchange(cols)" :disabled="cols.disabled"
                                    :clear="false"></uni-data-select>
                            <!-- 多行文本 -->
                            <view class="input-wrapper" v-if="cols.name=='Textarea' && !cols.disabled">
                                <textarea class="uni-input" :value="cols.value"
@@ -117,9 +121,18 @@
                </uni-row>
            </view>
        </uni-forms>
        <view class="view-floor">
            <button type="default" @tap="sava" class="btn_add">{{title}}</button>
        </view>
        <view class="view-bottom">
            <view class="uni-padding-wrap" v-if="dropdownBtns.length>0">
                <view class="uni-btn-v">
                    <a @tap="clickDropdownBtns">
                        <Icon class="mobox-normal-more" />
                    </a>
                </view>
            </view>
            <button type="default" @tap="sava" class="btn_add" v-if="dropdownBtns.length==0">{{title}}</button>
            <button type="default" @tap="cancel" class="btn_cancel">{{translateSys('cancel')}}</button>
        </view>
        <!-- 普通弹窗 top bottom center left right -->
        <view>
@@ -239,6 +252,12 @@
            this.$data.title = this.$data.param.Add_BtnName ? this.$data.param.Add_BtnName : options
                .titlename; //设置按钮文字
            this.loadData(options.paramValue)
        },
        computed: {
            dropdownBtns() {
                const btns = this.head_styledef.button || [];
                return btns
            },
        },
        methods: {
@@ -1821,6 +1840,168 @@
                    });
                });
            },
            //点击按钮列表
            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: "3018",
                    master: {},
                };
                console.log("onBtnClick", btn);
                if (btn.FunCode == "Add") {
                    if (btn.Edit_dlg.Model == "small") {
                        this.showAddSmallDialog(btn, enviroment);
                    } else {
                        uni.showModal({
                            title: this.translateSys("tip"),
                            content: this.translateSys("unrealized"),
                            showCancel: false,
                            confirmText: this.translateSys("cancel")
                        });
                    }
                } else if (btn.FunCode == "TriggerEvent") {
                    this.onTriggerEvent(btn, enviroment);
                } else {
                    this.$Message.warning(this.$t("sys.unrealized"));
                }
            },
            onTriggerEvent(btn, enviroment) {
                var obj_attr = this.head_styledef.form.model;
                // console.log(obj_attr);
                var input_param = {
                    id: "",
                    attrs: Object.keys(obj_attr).map((a) => ({
                        attr: a,
                        value: obj_attr[a],
                    })),
                };
                var dataInfo = {
                    ed_type: "0",
                    start_transaction: true,
                    class_id: btn.Cls_ID,
                    class_name: '',
                    event_id: btn.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: '',
                    input_param: '',
                };
                console.log(dataInfo);
                // return;
                this.$store.dispatch('runCustomEvent', dataInfo).then(success => {
                    console.log(success);
                    if (success.err_code == 0) {
                        var data = success.result;
                        if (data.ret != 0) {
                            var tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info :
                                data
                                .err_info.join('<br/>') : '';
                            if (data.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("cancel")
                                });
                            } else uni.showModal({
                                title: this.translateSys("tip"),
                                content: tip + ',' + this.translateSys('tip') + ':' + data.ret,
                                showCancel: false,
                                confirmText: this.translateSys("cancel")
                            });
                            return false
                        } else {
                            var tip = data.info ? typeof data.info == 'string' ? data.info : data.info
                                .join(
                                    '<br/>') : '';
                            if (tip) uni.showModal({
                                title: this.translateSys("tip"),
                                content: tip,
                                showCancel: false,
                                confirmText: this.translateSys("cancel")
                            });
                            var result = data.result;
                        }
                    } else {
                        uni.showModal({
                            title: this.translateSys("error") + "7",
                            content: success.err_msg,
                            showCancel: false,
                            confirmText: this.translateSys("cancel")
                        });
                    }
                }).catch(ex => {
                    // console.log(ex);
                    uni.showModal({
                        title: this.translateSys('tip') + "7.1",
                        content: ex.errMsg,
                        showCancel: false,
                        confirmText: this.translateSys("cancel")
                    });
                });
            },
            //新增修改小窗口数据
            showAddSmallDialog(btn, enviroment) {
                var data = {
                    Add_BtnName: btn.ShowName,
                    EditDlgMode: btn.Edit_dlg.Model,
                    clsid: btn.Cls_ID,
                    cls_name: btn.Cls_Name,
                    Edit_dlg: btn.Edit_dlg
                };
                const url = '../modal/3018?param=' + JSON.stringify(data) + "&titlename=" + btn.Edit_dlg.Name +
                    "&type=addDataObj"
                console.log("showAddSmallDialog", url);
                var $this = this;
                uni.navigateTo({
                    url: url,
                    events: {
                        // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
                        addDataObj: function(resData) {
                            console.log(resData);
                            //刷新
                            if (!this.$data.param.After_Btn_Not_Refresh) {
                                uni.redirectTo({
                                    url: '../modal/3018_2?param=' + JSON.stringify(this.$data.param) +
                                        "&titlename=" + this.$data.title
                                });
                            }
                        },
                    }
                });
            },
            cancel(e) { //取消
                uni.navigateBack({
@@ -1864,46 +2045,11 @@
            width: 98%;
        }
        // .v-headStyle:first-child {
        //     margin-top: 15rpx;
        // }
        // .v-headStyle .txt_title {
        //     font-size: 34rpx;
        //     text-align: right;
        //     display: inline-block;
        //     /* vertical-align: 24rpx; */
        //     /* border: 0.1rpx solid red; */
        // }
        // .v-headStyle input {
        //     vertical-align: middle;
        //     display: inline-block;
        //     /* border: 1px solid #d5d5d5; */
        //     /* width: 65%; */
        //     width: 85%;
        //     height: 52rpx;
        //     line-height: 34rpx;
        //     background: #FFF;
        //     border-radius: 0 !important;
        //     color: #2d8cf0;
        //     padding: 10rpx 8rpx 12rpx;
        //     font-size: 34rpx;
        //     font-family: inherit;
        //     box-shadow: none !important;
        //     transition-duration: 0.1s;
        //     margin-top: 4rpx;
        // }
        // .v-headStyle input::-webkit-input-placeholder {
        //     font-size: 12rpx;
        // }
        .v-headStyle .head-form {
            // border: 0.5px solid red;
            margin-bottom: 11rpx;
        }
        .v-headStyle .form-item-span {
            // border: 0.5px solid red;
            padding:7rpx 0;
@@ -1914,13 +2060,6 @@
            // width: calc(100% - 100px);
        }
        
        // .input-wrapper {
        //     border: 1px solid #d5d5d5;
        //     display: inline-block;
        //     width: 100%;
        //     line-height: 22rpx;
        //     vertical-align: middle;
        // }
        .input-wrapper {
            border: 1px solid #d5d5d5;
            width: 100%;
@@ -1954,9 +2093,6 @@
            box-sizing: border-box;
        }
        .uni-input {
            /* border: none; */
        }
        .uni-icon {
            /* border: 1px solid red; */
@@ -1974,43 +2110,68 @@
            vertical-align: middle;
        }
        .view-content {
            min-height: 700rpx;
            /* border:1px solid red; */
        }
        .input-disabled {
            background-color: #f3f3f3 !important;
        }
        button.btn_add {
            width: 49.5%;
            margin-top: 50rpx;
            padding: 20rpx;
            line-height: 1.5;
        .view-content {
            display: flex;
            flex: 1;
            width: calc(100% - 30rpx);
            padding: 10rpx 15rpx;
            flex-direction: column;
            overflow-y: auto;
        }
        .view-bottom {
            // display: flex;
            // flex-direction: row;
            display: block;
            width: calc(100% - 30rpx);
            padding: 10rpx 15rpx 20rpx 15rpx;
            .btn_add {
                width: 45%;
                margin: 0 10rpx;
                // padding: 5rpx 10rpx;
            background: #4D6AF4;
            border: none;
            color: #fff;
            font-size: 38rpx;
            font-weight: bold;
            float: right;
                float: left;
            display: inline-block;
        }
        button.btn_cancel {
            width: 49.5%;
            margin-top: 50rpx;
            padding: 20rpx;
            line-height: 1.5;
            .btn_cancel {
                width: 45%;
                margin: 0 10rpx;
            background: #fff;
            border: none;
            color: #000;
            font-size: 38rpx;
            font-weight: bold;
            float: left;
                float: right;
            display: inline-block;
        }
            .uni-padding-wrap {
                margin: 2rpx 0 0 10rpx;
                background-color: #98DAEA;
                width: 104rpx;
                height: 80rpx;
                text-align: center;
                border-radius: 54rpx;
                padding: 24rpx 0 0 0;
                float: right;
                display: inline-block;
            }
            .uni-padding-wrap a {
                font-size: 40rpx;
            }
        }
        .view-popup {
            position: relative;
@@ -2222,9 +2383,8 @@
            /* line-height: 22rpx; */
        }
        .view-floor {
            padding: 0 20rpx;
        }
        .demo-uni-row {
            margin-bottom: 0px;
pages/modal/3200.vue
@@ -300,7 +300,8 @@
            if (this.param.ListPage.ListItem_UIDef?.ui_type == "HTML页面") {
                // HTML页面
                //获取数据类的HTML页面
                await this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ListPage.ListItem_UIDef.id,options.paramValue);
                await this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ListPage.ListItem_UIDef.id, options
                    .paramValue);
            } else {
                await this.Detail1_UIstyleGetInfo(this.param.DataCls.id, this.param.ListPage.ListItem_UIDef.id);
            
@@ -993,6 +994,13 @@
                    if (btn.FunCode == "Add" || btn.FunCode == "Modify") {
                        if (btn.Edit_dlg.Model == "small") {
                            this.showAddSmallDialog(btn, style, enviroment);
                        } else {
                            uni.showModal({
                                title: this.translateSys("tip"),
                                content: this.translateSys("unrealized"),
                                showCancel: false,
                                confirmText: this.translateSys("cancel")
                            });
                        }
                    } else if (btn.FunCode == "Delete") {
                        this.DeleteObj(btn, style, enviroment);
@@ -1242,7 +1250,7 @@
                            if ((success.result || []).length > 0) {
                                const app = success.result[0]
                                var param = "";
                                var appName = app.name || app.list_name
                                var appName = app.list_name || app.name
                                    .Name;
                                var paramStr = app.param
                                if (paramStr) {