随笔 - 184  文章 - 165  评论 - 15  阅读 - 30万

SharePoint Project Server List 列表CURD操作使用rest api接口

复制代码
//#region 界面交互代码
var issuesUtils = issuesUtils || {};
(function () {
    /**
     * 点击问题提处理方案按钮事件
     */
    issuesUtils.issuuesSchemeBtn = function () {
        var item_id = commonUtils.getUrlParamValue('ID');
        issuesList.getIssuesItem(item_id, function (data) {
            console.log(JSON.stringify(data));
            var issuesSchemeUrl = '/sites/pwa/Lists/List/AllItems.aspx?IssuesId=' + data.ID;
            //location.href = issuesSchemeUrl;
        });

        issuesList.deleteItem(item_id, function (data) {
            alert("删除成功");
        });
    };
})();
//#endregion

//#region 问题list
/**
 * issues list
 */
var issuesList = issuesList || {};
(function () {

    var projectSiteName = function () {
        return location.pathname.replace('/', '').split('/')[2];
    };

    /**
     * 获取列表项目
     * @param {*} itemId 
     * @param {*} fun 
     */
    issuesList.getIssuesItem = function (itemId, fun) {
        var server_url = '/sites/pwa/' + projectSiteName() + '/_api/Lists/IssuesList/items(' + itemId + ')';
        commonUtils.executeRequest({
            type: commonUtils.ExecuteRequestType.READ,
            url: server_url,
            callBack: function (data) {
                if (fun) {
                    fun(data);
                }
            }
        });
    };

    issuesList.addIssuesItem = function (callBack) {
        var issuesData = {
            __metadata: { type: 'SP.Data.IssuesListItem' },
            Title: '我的测试问题1212'
        };
        var server_url = '/sites/pwa/' + projectSiteName() + '/_api/Lists/IssuesList/items';
        commonUtils.executeRequest({
            type: commonUtils.ExecuteRequestType.CREATE,
            data: issuesData,
            url: server_url,
            callBack: function (data) {

            }
        });
    };

    issuesList.updateItem = function (callBack) {
        var server_url = '/sites/pwa/' + projectSiteName() + '/_api/Lists/IssuesList/items(6)';
        var issuesData = {
            __metadata: { type: 'SP.Data.IssuesListItem' },
            Title: '修改标题111111111'
        };
        commonUtils.executeRequest({
            type: commonUtils.ExecuteRequestType.UPDATE,
            data: issuesData,
            url: server_url,
            callBack: function (data) {

            }
        });
    };

    /**
     * 删除问题
     * @param {*ID} itemId 
     * @param {*} callBack 
     */
    issuesList.deleteItem = function (itemId, callBack) {
        var server_url = '/sites/pwa/' + projectSiteName() + '/_api/Lists/IssuesList/items(' + itemId + ')';
        commonUtils.executeRequest({
            type: commonUtils.ExecuteRequestType.DELETE,
            url: server_url,
            callBack: callBack
        });
    }
})();
//#endregion

//#region 问题处理方案list
var issuesSchemeList = issuesSchemeList || {};
(function () {

})();
//#endregion

//#region 常用工具类
/**
 * 常用工具类
 */
var commonUtils = commonUtils || {};
(function () {
    /**
     * 根据参数名称获取URL参数值
     * @param {参数名称} paramName 
     */
    commonUtils.getUrlParamValue = function (paramName) {
        var reg = new RegExp("(^|&)" + paramName + "=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) return unescape(r[2]);
        return undefined;
    };

    /**
     * 
     * @param {type:commonUtils.ExecuteRequestType,data:提交的数据对象,url:rest api url 地址,callBack:回调函数function(data){}} option 
     */
    commonUtils.executeRequest = function (option) {
        var ajax_type = undefined;
        var ajax_header = undefined;
        var ajax_data = undefined;
        switch (option.type) {
            case commonUtils.ExecuteRequestType.CREATE:
                //添加数据
                ajax_type = 'POST';
                ajax_header = {
                    "Accept": "application/json; odata=verbose",
                    "X-RequestDigest": $("#__REQUESTDIGEST").val()
                };
                break;
            case commonUtils.ExecuteRequestType.UPDATE:
                //修改数据
                ajax_type = 'POST';
                ajax_header = {
                    "Accept": "application/json; odata=verbose",
                    "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                    "IF-MATCH": "*",
                    "X-HTTP-Method": "MERGE"
                };
                break;
            case commonUtils.ExecuteRequestType.READ:
                //读取数据
                ajax_type = 'GET';
                ajax_header = {
                    "Accept": "application/json; odata=verbose",
                };
                break;
            case commonUtils.ExecuteRequestType.DELETE:
                //删除数据
                ajax_type = 'POST';
                ajax_header = {
                    //"Accept": "application/json; odata=verbose",
                    "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                    "IF-MATCH": "*",
                    "X-HTTP-Method": "DELETE"
                };
                break;
        }
        if (option.data) {
            ajax_data = JSON.stringify(option.data);
        }
        if (ajax_header && ajax_header) {
            $.ajax({
                url: option.url,
                type: ajax_type,
                //contentType: "application/json;odata=verbose",
                data: ajax_data,
                headers: ajax_header,
                complete: function (xhr, textStatus) {
                    if (xhr.status == 200) {
                        var jsondata = xhr.responseText ? JSON.parse(xhr.responseText).d : {};
                        if (option.callBack) {
                            option.callBack(jsondata);
                        }
                    } else {
                        console.error("出现错误,错误代码为" + xhr.status);
                    }
                },
                error: function (data, errorCode, errorMessage) {
                    console.error("出现错误:" + errorMessage);
                }
            });
        } else {
            console.error("调用commonUtils.executeRequest方法参数不合法");
        }
    }

    /**
     * 调用rest api类型,增删改查
     */
    commonUtils.ExecuteRequestType = {
        CREATE: 1,
        UPDATE: 2,
        READ: 3,
        DELETE: 4
    };
})();
//#endregion
复制代码

 

posted on   larryle  阅读(670)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示