zhangyanpeng
2024-08-26 83957eba1ad5bde31feced0bf07e28bd95389009
调整
8个文件已修改
1个文件已添加
409 ■■■■■ 已修改文件
css/myelement.css 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
js/config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
js/myelement.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
js/vue/page.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/config/page/popup/popup_tablefield_edit.html 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/config/page/sys_menu_add.html 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/config/page/sys_menu_edit.html 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/model/page/table_simple.html 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/system/page/main.html 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
css/myelement.css
@@ -920,7 +920,9 @@
    font-size: 14px; 
    font-weight: bold;
}
.h_form .h_form_group {
    margin: 0px;
}
.h_form .h_form_group_name {
    font-size: 14px; 
}
js/config.js
@@ -14,7 +14,7 @@
config = {
    jscssversion: "2024082502", //.js/.css文件的版本号,去除前端缓存的一种机制
    jscssversion: "2024082602", //.js/.css文件的版本号,去除前端缓存的一种机制
    isupgrading: false, //是否升级中
    appName: "TPP",
    title: "营销一体化运营平台",
js/myelement.js
@@ -7910,7 +7910,7 @@
            '<div v-if="formAttr.istitle && formAttr.title" class="h_form_title_name">{{formAttr.title}}</div> '+
             
             '<template v-for="(g, k) in tableFieldsGroup"> '+
                 '<div v-if="g.name && g.name !=\' \' " style="margin: 0;"><i class="iconfont icon-fuzhushuxian" style="color: #0270c1;"></i><span class="h_form_group_name">{{g.name}}</span></div> '+
                 '<div v-if="g.name && g.name !=\' \' " class="h_form_group"><i class="iconfont icon-fuzhushuxian" style="color: #0270c1;"></i><span class="h_form_group_name">{{g.name}}</span></div> '+
                 '<div style="margin: 0; padding-left: 0px">'+ 
                    '<h-newform-a '+
                        //外部参数
js/vue/page.js
@@ -1645,6 +1645,9 @@
                            disabledone: config.disabledone,
                            operationtype: config.operationtype,
                            parentOption: window.top.tab.selected.option,
                            filter: config.filter || "",
                            dataname: config.dataname || "",
                            closecallback: function() {
                                if (closecallback_) {
                                    closecallback_();
module/config/page/popup/popup_tablefield_edit.html
New file
@@ -0,0 +1,216 @@
<!doctype html>
<html>
    <head>
        <meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
        <title>表单编辑字段设置弹窗</title>
        <script type="text/javascript">
            var pageVue = null;
            function loadJsCss(callback) {
                var jscss_urls = [];
                window.top.initJsCss(document, jscss_urls, callback);
            };
            function initVue() {
                new ListVue({
                    el: "#vbody",
                    data: {
                        dataname: "",
                        title: "表单编辑字段设置弹窗",
                        pageAttr: {
                            heightType: "popuppage"
                        },
                        delta: {},
                        orderby: "",
                        tableAttr: {
                            isborder: true
                        },
                        filterfieldClick: {},
                        tablefieldClick: {},
                        formfieldClick: {},
                        tableHeight: 0,
                        isPagination: false
                    },
                    created() {
                        this.popupParames = clone(Root.popupParames);
                        this.title = this.popupParames.title || this.popupParames.text
                        if (this.popupParames.filter) {
                            this.filterTxt = this.popupParames.filter
                        }
                        if (this.popupParames.dataname) {
                            this.dataname = this.popupParames.dataname;
                        }
                        if (this.popupParames.delta) {
                            this.delta = this.popupParames.delta;
                            if (this.delta.orderby) {
                                this.orderby = this.delta.orderby;
                            }
                        }
                        if (this.popupParames.sceneCode) {
                            if (this.popupParames.sceneCode == "add") {//新增
                                this.isedit = true;
                            }
                            if (this.popupParames.sceneCode == "browse") {//只读
                                this.isedit = false;
                            }
                        }
                    },
                    mounted() {
                        // this.getTableMeta();
                        //获取数据
                        this.initData();
                        this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
                            hideLoading();
                        });
                    },
                    methods:{
                        //关闭弹窗
                        closeDialog() {
                            this.docloseDialog(true);
                        },
                        //关闭前调回调
                        saveAfter() {
                            var me = this;
                            if(this.popupParames.callback) {
                                let obj = {
                                    tableData: clone(this.tableData)
                                }
                                this.popupParames.callback(obj, function() {
                                    me.docloseDialog();
                                });
                            }
                            else {
                                me.docloseDialog();
                            }
                        },
                        initData() {
                            var me = this;
                            if (this.delta.tabledata) {
                                this.tableData = clone(this.delta.tabledata);
                            }
                            if (this.delta.tablefields) {
                                this.tableFields = clone(this.delta.tablefields);
                            }
                            me.tableDataAfter();
                            // this.onQuery(function(result, callback) {//查询后的回调,用于获取字段的
                            //     if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) {
                            //         var metas = clone(result.meta[me.dataname].fields);
                            //         var tableFields_ = [];
                            //         metas.map(f=>{
                            //             f.isshow = "F";
                            //             tableFields_.push(clone(f));
                            //         })
                            //         if (!me.tableFields || (me.tableFields && me.tableFields.length == 0)) {
                            //             me.tableFields = clone(tableFields_);
                            //             //字段数组转字段obj,目的为了筛选时获取字段属性
                            //             me.fieldsToFieldsObj();
                            //             //设置字段事件
                            //             me.tableFieldClick();
                            //         }
                            //     }
                            //     if (callback) {
                            //         callback();
                            //     }
                            // });
                        },
                        tableFieldClick() {
                            var me = this;
                            //筛选字段事件设置
                            this.filterfieldClick = {
                            };
                            //表格字段事件设置
                            this.tablefieldClick = {
                            };
                            //表单字段事件设置
                            this.formfieldClick = {
                            };
                        },
                        onRowDblClick() {
                            if (this.isedit) {
                                this.saveAfter();
                            }
                        },
                    }
                });
            };
            loadJsCss(function () {
                initVue();
            });
        </script>
        <style>
            /* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */
            [v-cloak] {
                display: none !important;
            }
        </style>
    </head>
    <body style="margin: 0px;">
        <div v-cloak id="vbody">
            <div id="page_root">
                <div ref="popup_body" style="padding: 0 20px;">
                    <div class="h_dialog__body">
                        <h-table
                            v-if="isRefresh && tableFields.length"
                            ref="table1"
                            :table-fields="tableFields"
                            :table-data="tableData"
                            :table-attr="tableAttr"
                            :table-height="tableHeight"
                            :table-field-click="tablefieldClick"
                            :is-highlight-row="isedit"
                            :is-show-index="false"
                            :filtersobj="filterObj"
                            :is-pagination="isPagination"
                            :is-within-edit-table-data="true"
                            :isshowtool="false"
                            :isfilterfield="false"
                            :istablebuttons="false"
                            :isbasicfilterfields="false"
                            :isdraggableorder="false"
                        >
                        </h-table>
                    </div>
                    <!-- 底部工具栏 -->
                    <div class="el-dialog__footer" style="margin-top: 0px;">
                        <el-button size="small" type="default" @click="closeDialog">取 消</el-button>
                        <el-button size="small" v-if="isedit" type="primary" @click="saveAfter">确 定</el-button>
                    </div>
                </div>
            </div>
        </div>
        <div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;">
            <div class="spinner">
              <div class="cube1"></div>
              <div class="cube2"></div>
            </div>
        </div>
    </body>
</html>
module/config/page/sys_menu_add.html
@@ -50,6 +50,7 @@
                        dataRequestObj: {},
                        options_menumap: {},
                        options_menutree: [],
                        listoptions: [],
                        
                        //按键权限设置
                        isedit: false,//提交前编辑,保存/提交
@@ -80,6 +81,7 @@
                            if (this.popupParames.sceneCode) {
                                if (this.popupParames.sceneCode == 'addmenu') {
                                    this.isAddMenu = true;
                                    // this.pageid = createCode("M_P");
                                    this.parent_menuobj = this.popupParames.data;
                                    if (this.parent_menuobj && this.parent_menuobj.id) {
                                        this.formData.parent_id = this.parent_menuobj.id
@@ -159,7 +161,8 @@
                            var me = this;
                            if(this.popupParames.callback) {
                                let obj = {
                                    options: this.treeoptions,
                                    treeoptions: this.options_menutree,
                                    listoptions: this.listoptions
                                }
                                this.popupParames.callback(obj, function() {
                                    me.closeDialog();
@@ -349,6 +352,9 @@
                            if (entity_.id) {
                                entity.id = entity_.id
                            }
                            else {
                                entity.id = createCode("M")
                            }
                            
                            let param = {
                                dataname: this.dataname,
@@ -360,6 +366,9 @@
                                if (me.pageid) {
                                    me.onRefreshCacheByPageId(me.pageid);
                                }
                                else if (entity.id) {
                                    me.onRefreshCacheByMenuId(entity.id);
                                }
                                else {
                                    Root.message({
                                        type: 'success',
@@ -370,7 +379,7 @@
                            });
                        },
                        
                        // 刷新缓存
                        // 刷新缓存页面
                        onRefreshCacheByPageId(PageId) {
                            var me = this;
                            let param_ = {
@@ -383,6 +392,7 @@
                                        filter: "page_id is null",
                                    }
                                    Server.call("root/data/getEntitySet", param_, function(result2){
                                        me.listoptions = clone(result2.data.entityset);
                                        let agm_category_ = ArrayToTree(clone(result2.data.entityset), "title", "parent_id");
                                        me.options_menutree = agm_category_;
                                        Root.message({
@@ -395,6 +405,31 @@
                            });
                        },
                        
                        onRefreshCacheByMenuId(MenuId) {
                            var me = this;
                            let param_ = {
                                menu_id: MenuId
                            }
                            Server.call("root/system/reloadOneMenu", param_, function(result) {
                                if (result.success) {
                                    let param_ = {
                                        dataname: "sys_menu",
                                        filter: "page_id is null",
                                    }
                                    Server.call("root/data/getEntitySet", param_, function(result2){
                                        me.listoptions = clone(result2.data.entityset);
                                        let agm_category_ = ArrayToTree(clone(result2.data.entityset), "title", "parent_id");
                                        me.options_menutree = agm_category_;
                                        Root.message({
                                            type: 'success',
                                            message: '保存成功'
                                        });
                                        me.saveAfter();
                                    });
                                }
                            });
                        }
                    }
                });
            };
module/config/page/sys_menu_edit.html
@@ -43,7 +43,7 @@
                            {
                                name: "sys_menunotpage",
                                dataname: "sys_menu",
                                filter: " page_id is null",
                                filter: " page_id is null ",
                                isnotoption: false, //true:不是选项
                                code:"id",//是下拉选项时设置
                                label:"name",//是下拉选项时设置
@@ -51,7 +51,7 @@
                            {
                                name: "modelByPage",
                                dataname: "sys_model",
                                filter: "is_detail='F'",
                                filter: "open_type='page'",
                                isnotoption: false, //true:不是选项
                                code:"id",//是下拉选项时设置
                                label:"name",//是下拉选项时设置
@@ -59,7 +59,7 @@
                            {
                                name: "modelBydetail",
                                dataname: "sys_model",
                                filter: "is_detail='T'",
                                filter: "open_type in ('popup','tab')",
                                isnotoption: false, //true:不是选项
                                code:"id",//是下拉选项时设置
                                label:"name",//是下拉选项时设置
@@ -92,7 +92,7 @@
                            {isshow: "T", field: "model_id", labelchinese: "模型选择", inputtype: "select", optionsgroup: "", colspan: 1, group_name: "页面配置", buttonarrayname: [{type: "", buttonname:"模型维护", icon: "", code:"showfile", classname: "form_showfile"}]},
                            {isshow: "T", field: "dataname", labelchinese: "数据对象", inputtype: "", optionsgroup: "", group_name: "页面配置", buttonarrayname: [{type: "", buttonname:"对象维护", icon: "", code:"showfile", classname: "form_showfile"}]},
                            {isshow: "T", field: "buttons", labelchinese: "功能选择", inputtype: "checkboxobj", optionsgroup: "", colspan: 2, group_name: "页面配置"},
                            {isshow: "T", field: "detail_model_id", labelchinese: "详情模型选择", inputtype: "select", optionsgroup: "", colspan: 2, group_name: "页面配置", labelwidth: "120", visiblefilterrule: "buttons:Add、Edit、FormDetail"},
                            {isshow: "T", field: "detail_model_id", labelchinese: "详情模型选择", inputtype: "select", optionsgroup: "", colspan: 2, group_name: "页面配置", labelwidth: "120", visiblefilterrule: "buttons:Add、Edit、FormDetail", buttonarrayname: [{type: "", buttonname:"详情模型维护", icon: "", code:"detail_model", classname: "form_showfile"},{type: "", buttonname:"详情页配置", icon: "", code:"popup_detail_model", classname: ""}]},
                        ],
                        
                        tableFields_table: [
@@ -134,7 +134,7 @@
                    },
                    created() {
                        let clientHeight = document.documentElement.clientHeight;
                        this.tableHeight = clientHeight - 250 - 32;
                        this.tableHeight = clientHeight - 250 - 32 - 10;
                        
                    },
                    
@@ -211,12 +211,14 @@
                        menuToPageTree(oldmenus) {
                            var me = this;
                            oldmenus.map(om=>{
                                if (om.id && om.open_type && om.open_type == "arrange") {
                                if (om.id && om.open_type && om.open_type == "arrange" && om.page_id) {
                                    om.isnot_nodeadd = true; // 节点不可新增
                                }
                                else if (om.id && !om.page_id) {
                                else if (om.id && !om.page_id ) {
                                    // om.isnot_nodeadd = true; // 节点不可新增
                                    om.isnot_nodeedit = true; // 节点不可改
                                    // om.isnot_nodeedit = true; // 节点不可改
                                    om.ishnodeadd = true;
                                    om.isnot_nodedel = true; // 节点不可删
                                }
                                else {
@@ -471,7 +473,7 @@
                                var parent_ids_ = [];
                                var parent_ids = this.getParents(data_.parent_id, this.options_menumap, parent_ids_);
                                
                                data_.parent_id = parent_ids
                                data_.parent_id = parent_ids_
                            }
                            data_.buttons = []
                            data_.detail_model_id = ""
@@ -514,6 +516,21 @@
                                delta: {},
                                sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
                                callback: function(obj, callback) {
                                    me.options_menutree = clone(obj.treeoptions)
                                    var sys_menunotpage_ = clone(obj.listoptions);
                                    me.options_menumap = {}
                                    sys_menunotpage_.map(m=>{
                                        me.options_menumap[m.id] = m;
                                    })
                                    var formFields_ = clone(me.formFields)
                                    formFields_.map(f=>{
                                        if(f.field == "parent_id") {
                                            f.options = (me.options_menutree)
                                        }
                                    })
                                    me.formFields = clone(formFields_)
                                    me.getMenuAll();
                                    if (callback) {
                                        callback();
@@ -535,6 +552,19 @@
                                data: data,
                                sceneCode: "edit",
                                callback: function(options_obj, callback) {
                                    me.options_menutree = clone(obj.treeoptions)
                                    var sys_menunotpage_ = clone(obj.listoptions);
                                    me.options_menumap = {}
                                    sys_menunotpage_.map(m=>{
                                        me.options_menumap[m.id] = m;
                                    })
                                    var formFields_ = clone(me.formFields)
                                    formFields_.map(f=>{
                                        if(f.field == "parent_id") {
                                            f.options = (me.options_menutree)
                                        }
                                    })
                                    me.formFields = clone(formFields_)
                                    me.getMenuAll();
                                    if (callback) {
                                        callback();
@@ -615,6 +645,35 @@
                                    },
                                },
                                
                                detail_model_id: {
                                    buttonarray: {
                                        onclick: function(obj) {
                                            if (obj.buttonobj.code == "popup_detail_model") {
                                                let sceneCode = "add"
                                                var config = {
                                                    totab: false, //true: 以Tab导航的方式打开
                                                    width: "900px",
                                                    height: "500px",
                                                    icon: "icon-product",
                                                    text: "编辑页配置",
                                                    id: "popup_tablefield_edit" + sceneCode,//totab: true时需设置,用于判断是否已打开此页面
                                                    url: "module/config/page/popup/popup_tablefield_edit.html",
                                                    dataname: me.dataname,
                                                    data: {},
                                                    delta: {dataname: me.dataname, tabledata: me.tableData, tablefields: me.tableFields_form},
                                                    sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
                                                    callback: function(obj, callback) {
                                                        me.tableData = clone(obj.tableData)
                                                        if (callback) {
                                                            callback();
                                                        }
                                                    }
                                                };
                                                me.doPopupByPublic(config);
                                            }
                                        },
                                    },
                                },
                                model_id: {
                                    buttonarray: {
                                        onclick: function(obj) {
@@ -625,7 +684,7 @@
                                        onchange: function(obj,row,callback) { //下拉展开事件
                                            let param_ = {
                                                dataname: "sys_model",//获取经销商对应收货地址
                                                filter:"is_detail='F'",
                                                filter:"open_type='page'",
                                            }
                                            Server.call("root/data/getEntitySet", param_, function(result) {
                                                if (result && result.data && result.data.entityset) {
@@ -756,6 +815,19 @@
                                delta: {},
                                sceneCode: "addmenu",//"refuseedit",//"approval", //"add"//"browse",
                                callback: function(obj, callback) {
                                    me.options_menutree = clone(obj.treeoptions)
                                    var sys_menunotpage_ = clone(obj.listoptions);
                                    me.options_menumap = {}
                                    sys_menunotpage_.map(m=>{
                                        me.options_menumap[m.id] = m;
                                    })
                                    var formFields_ = clone(me.formFields)
                                    formFields_.map(f=>{
                                        if(f.field == "parent_id") {
                                            f.options = (me.options_menutree)
                                        }
                                    })
                                    me.formFields = clone(formFields_)
                                    me.getMenuAll();
                                    if (callback) {
                                        callback();
@@ -770,7 +842,7 @@
                            var entity_ = clone(this.formData);
                            var entity_menu = {
                                id: entity_.id,
                                parent_id: entity_.parent_id,
                                parent_id: entity_.parent_id[entity_.parent_id.length - 1],
                                icon: entity_.icon,
                                title: entity_.title
                            };
@@ -845,6 +917,7 @@
                                    last_update_time: datetime_,
                                    label_chinese: r.label_chinese,
                                    is_list: r.is_list ? r.is_list : false,
                                    is_form: r.is_form ? r.is_form : false,
                                    is_filter: r.is_filter ? r.is_filter : false,
                                    list_order_no: r.list_order_no ? r.list_order_no : 0,
                                    form_order_no: r.form_order_no ? r.form_order_no : 0,
@@ -984,6 +1057,11 @@
                position: relative;
                padding-left: 20px;
            }
            .h_form_group {
                height: 32px;
                line-height: 32px;
                margin-top: 5px !important;
            }
        </style>
        
    </head>
@@ -1035,7 +1113,7 @@
                                </div>
                            </div>
                                
                            <div style="margin: 16px;">
                            <div style="margin: 0 10px;">
                                <h-form
                                    ref="form1"
                                    :form-attr="formAttr"
module/model/page/table_simple.html
@@ -69,7 +69,10 @@
                                        me.dataRequestObj = data;
                                        //预加载数据后给哪些字段设置options或formatterjson
                                        if (me.dataRequestObj.sys_model) {
                                            me.sys_model_map = me.dataRequestObj.sys_model.map.sys_model;
                                            me.dataRequestObj.sys_model.map(m=>{
                                                me.sys_model_map[m.id] = m
                                            })
                                        }
                                        
                                        if (me.dataRequestObj.sys_page_model) {
@@ -232,14 +235,26 @@
                        
                        editData(sceneCode, row) {
                            var me = this;
                            let url = "";
                            let totab = true;
                            if (me.detail_model_id && me.sys_model_map[me.detail_model_id]) {
                                url = me.sys_model_map[me.detail_model_id].url;
                            }
                            if (!url) {
                                return
                            }
                            if (me.sys_model_map[me.detail_model_id].open_type == "popup") {
                                totab = false;
                            }
                            var config = {
                                totab: true, //true: 以Tab导航的方式打开
                                totab: totab, //true: 以Tab导航的方式打开
                                width: "900px",
                                height: "500px",
                                icon: "icon-product",
                                text: me.title + "详情",
                                id: "popup_form_simple" + sceneCode + row.id,//totab: true时需设置,用于判断是否已打开此页面
                                url: "module/model/page/popup_form_simple.html",
                                url: url, //"module/model/page/popup_form_simple.html",
                                dataname: me.dataname,
                                data: row,
                                delta: {dataname: me.dataname},
module/system/page/main.html
@@ -7,27 +7,27 @@
    <meta http-equiv="Cache-control" content="no-cache">
    <meta http-equiv="Cache" content="no-cache">
    <title>营销一体化运营平台</title>
    <link href="../css/main.css?v=2024082502" rel="stylesheet">
    <link href="../../../css/control.css?v=2024082502" rel="stylesheet">
    <link href="../../../css/page.css?v=2024082502" rel="stylesheet">
    <link href="../../../css/icon/iconfont.css?v=2024082502" rel="stylesheet">
    <link href="../css/main.css?v=2024082602" rel="stylesheet">
    <link href="../../../css/control.css?v=2024082602" rel="stylesheet">
    <link href="../../../css/page.css?v=2024082602" rel="stylesheet">
    <link href="../../../css/icon/iconfont.css?v=2024082602" rel="stylesheet">
    <link href="../../../js/vue/element-ui/lib/theme-chalk/index.css" rel="stylesheet">
    <link href="../../../img/org/head.png" rel="shortcut icon" type="image/x-icon">
    <link href="../../../css/myelement.css?v=2024082502" rel="stylesheet">
    <link href="../../../css/myelement.css?v=2024082602" rel="stylesheet">
    
    <script src="../../../js/jquery-3.5.1.min.js"></script>
    <script src="../../../js/vue/vue.js"></script>
    
    <script src="../../../js/config.js?v=2024082502"></script>
    <script src="../../../js/config.js?v=2024082602"></script>
    <script src="../../../data/data.js"></script>
    <script src="../../../js/vue/elementDefault.js"></script>
    <script src="../../../js/vue/element-ui/lib/index.js"></script>
    <script src="../../../js/Sortable.js"></script>
    <script src="../../../js/vue/page.js?v=2024082502"></script>
    <script src="../../../js/foundation.js?v=2024082502"></script>
    <script src="../../../js/control.js?v=2024082502"></script>
    <script src="../../../js/vue/page.js?v=2024082602"></script>
    <script src="../../../js/foundation.js?v=2024082602"></script>
    <script src="../../../js/control.js?v=2024082602"></script>
    <script src="../../../js/loadJsCss.js"></script>
    <script src="../../../js/myelement.js?v=2024082502"></script>
    <script src="../../../js/myelement.js?v=2024082602"></script>
    
</head>