• Dynamics CRM 365 JS 将窗体里面的选项集内容作为参数,传到另外一个HTML界面(数组序列化+编码)


    JS代码:

    var reasonOptions = [];
                var scw_back_reason = Xrm.Page.getAttribute("scw_back_reason").getOptions();
                if (scw_back_reason && scw_back_reason.length > 0) {
                    for (var i = 0; i < scw_back_reason.length; i++) {
                        if (scw_back_reason[i].value == -1) {
                            continue;
                        }
                        reasonOptions.push({
                            value: scw_back_reason[i].value,
                            label: scw_back_reason[i].text
                        });
                    }
                }
                var ops = escape(JSON.stringify(reasonOptions));  //数组序列化+编码
    
                var DialogOptions = new Xrm.DialogOptions();
                DialogOptions.width = 470;
                DialogOptions.height = 400;
    
                var uri = Mscrm.CrmUri.create("/WebResources/scw_Lead_ReturnReason_Html?ops=" + ops).toString();
                Xrm.Internal.openDialog(uri, DialogOptions, null, null, CallbackFunction);
                function CallbackFunction(result) {
                    if (!result.selectValue) {
                        alert("请选择退回原因。");
                        return;
                    }
                    
                }

    HTML代码:

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title>选择退回原因</title>
        <link type="text/css" rel="styleSheet" href="./scw_batchCreateTarget.css" />
        <link type="text/css" rel="styleSheet" href="./scw_element.css" />
        <script src="./scw_vue.js"></script>
        <script src="./scw_element.js"></script>
        <script src="./scw_axios.min.js"></script>
        <script src="./scw_api.js"></script>
        <script type="text/javascript" src="ClientGlobalContext.js.aspx"></script>
        <style type="text/css">
            body{
                margin:0px;
            }
            .ms-crm-RefreshDialog-Footer {
                position: absolute;
                bottom: 0px;
                width: 100%;
                height: 44px;
                text-align: center;
                border-top-color: #FFFFFF;
            }
    
            .ms-crm-RefreshDialog-Button {
                color: #444444;
                background-color: #FFFFFF;
                height: 24px;
                font-family: Segoe UI,Tahoma,Arial;
                border: 1px solid #C6C6C6;
                background-image: none;
                margin-top: 10px;
                width: auto;
                min-width: 80px;
                white-space: nowrap;
                font-size: 12px;
                line-height: 16px;
                width: 84px;
                text-align: center;
                cursor: pointer;
                background-repeat: repeat-x;
                padding-left: 5px;
                padding-right: 5px;
            }
        </style>
    </head>
    
    <body>
        <div id="form">
            <div class="batchCreateTarget" style="margin:50px 10px 0 10px;">
                <table style="100%;">
                    <tr>
                        <td style="80px;">退回原因:</td>
                        <td>
                            <el-select v-model="selectValue" placeholder="请选择" style="100%">
                                <el-option v-for="item in dataList"
                                           :key="item.value"
                                           :label="item.label"
                                           :value="item.value">
                                </el-option>
                            </el-select>
                        </td>
                    </tr>
                </table>
    
            </div>
    
            <div class="ms-crm-RefreshDialog-Footer" id="tdDialogFooter"> 
    
                <button tabindex="1" class="ms-crm-RefreshDialog-Button" id="btnOK" 
                        style="margin-left: 8px;" @click="closeOk" type="button">确定</button>
    
                <button tabindex="1" class="ms-crm-RefreshDialog-Button" id="cmdDialogCancel" 
                        style="margin-right: 30px; margin-left: 8px;" @click="closeCancel" type="button">取消</button>
            </div>
        </div>
        <script>
    
            new Vue({
                el: "#form",
                data: {
                    selectValue: null,
                    dataList: [],
                },
                onShow() {
    
                },
                created() {
                    this.init();
                },
                mounted() {
    
                },
                methods: {
                    init() {
                        //组装退回原因 
                        const url = decodeURI(decodeURI(window.location.href));
                        var param = this.getQuery(url);
                        if (param) {
                            var ops = JSON.parse(unescape(param.ops));  //解码+反序列化
                            this.dataList = ops;
                        }
                    },
                    handleSelect(item) {
                        this.username = item.value;
                        this.userid = item.userid;
                        console.log(item);
                    },
    
                    //获取url获取参数
                    getQuery(url) {
                        var str = url.split('?')[1];
                        var keys = str.split('&');
                        var obj = {};
                        keys.forEach((item, idx, data) => {
                            var arr = item.split('=');
                            obj[arr[0]] = arr[1];
                        });
                        return obj;
                    },
                    closeOk() {
                        var result = {};
                        result["selectValue"] = this.selectValue;
                        Mscrm.Utilities.setReturnValue(result);
                        closeWindow(true);
                    },
    
                    closeCancel() {
                        closeWindow(true);
                    },
                },
                computed: {}
            });
    
        </script>
    </body>
    
    </html>
  • 相关阅读:
    kolla
    lbaas
    celery
    redis发布订阅
    数据库简单介绍
    celery
    ansible初识
    315
    request
    navicat连接mysql报错1251解决方案
  • 原文地址:https://www.cnblogs.com/parkerchen/p/16393926.html
Copyright © 2020-2023  润新知