news 2026/4/19 9:51:09

SAPUI5 1.71.78老版本的消费restful服务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAPUI5 1.71.78老版本的消费restful服务

为了兼容老浏览器,没用Javascript的现代fetch api,用的jquery

controller.js代码如下

sap.ui.define([ "sap/ui/core/mvc/Controller", "sap/ui/model/json/JSONModel", "sap/m/MessageToast" ], function (Controller, JSONModel, MessageToast) { "use strict"; return Controller.extend("zfiori_stock.controller.StockList", { onInit: function () { // 初始化stock模型 var oStockModel = new JSONModel([]); this.getView().setModel(oStockModel, "stock"); }, /** * 重置查询条件并清空表格数据 */ _resetQuery: function () { this._clearInputs(); // 清空表格数据 var oStockModel = this.getView().getModel("stock"); oStockModel.setData({}); MessageToast.show("查询条件已重置"); }, /** * 清空所有输入框 */ _clearInputs: function () { this.getView().byId("werksInput").setValue(""); this.getView().byId("matnrInput").setValue(""); this.getView().byId("chargInput").setValue(""); this.getView().byId("lgortInput").setValue(""); }, /** * 获取库存数据 * 兼容Android 8平台的老浏览器 */ _fetchStockData: function () { // 后端API信息 var sUrl = "/api/zbakpda?ACTION=GET_STOCK"; // 从输入框获取查询条件 var oRequestData = { "werks": this.getView().byId("werksInput").getValue(), "matnr": this.getView().byId("matnrInput").getValue(), "charg": this.getView().byId("chargInput").getValue(), "lgort": this.getView().byId("lgortInput").getValue() }; // 显示加载提示 MessageToast.show("正在查询数据..."); // 使用jQuery.ajax以兼容老浏览器 jQuery.ajax({ url: sUrl, type: "POST", data: JSON.stringify(oRequestData), headers: { "Content-Type": "application/json", "Accept-Language": "zh" // "Authorization": sAuthHeader }, // 兼容老浏览器的参数设置 dataType: "json", xhrFields: { withCredentials: true }, timeout: 30000, //通过 jQuery.proxy(fn, this),强制绑定了函数执行时的 this 上下文为当前控制器。 success: jQuery.proxy(function (oData) { // 将返回数据绑定到stock模型 var oStockModel = this.getView().getModel("stock"); if (oStockModel) { if (oData.length != 0) { MessageToast.show("库存数据获取成功"); } else { MessageToast.show("返回数据为空"); } oStockModel.setData(oData); } }, this), error: jQuery.proxy(function (xhr, status, error) { console.error("获取库存数据失败:", error); console.error("状态码:", xhr.status); // 友好的错误提示 var sErrorMessage = "获取库存数据失败"; if (xhr.status === 401) { sErrorMessage = "认证失败,请检查账号密码"; } else if (xhr.status === 404) { sErrorMessage = "服务器地址错误"; } else if (xhr.status === 500) { sErrorMessage = "服务器内部错误"; } MessageToast.show(sErrorMessage); }, this) }); } }); });

xml视图代码

<mvc:View controllerName="zfiori_stock.controller.StockList" xmlns="sap.m" xmlns:l="sap.ui.layout" xmlns:mvc="sap.ui.core.mvc"> <Panel class="sapUiResponsiveContentPadding"> <headerToolbar> <Toolbar> <Button text="查询" press="_fetchStockData" icon="sap-icon://search" class="sapUiSmallMarginEnd" /> <Button text="重置" press="_resetQuery" icon="sap-icon://refresh" /> </Toolbar> </headerToolbar> <l:Grid defaultSpan="L6 M6 S6" class="sapUiResponsiveMargin" vSpacing="1"> <l:content> <!-- 工厂 --> <FlexBox class="sapUiTinyMarginBottom" alignItems="Center"> <Label text="工厂:" labelFor="werksInput" width="80px" /> <Input id="werksInput" width="100%" /> </FlexBox> <!-- 库存地点 --> <FlexBox class="sapUiTinyMarginBottom" alignItems="Center"> <Label text="库存地点:" labelFor="lgortInput" width="80px" /> <Input id="lgortInput" width="100%" /> </FlexBox> <!-- 物料 --> <FlexBox class="sapUiTinyMarginBottom" alignItems="Center"> <Label text="物料:" labelFor="matnrInput" width="80px" /> <Input id="matnrInput" width="100%" /> </FlexBox> <!-- 批次 --> <FlexBox class="sapUiTinyMarginBottom" alignItems="Center"> <Label text="批次:" labelFor="chargInput" width="80px" /> <Input id="chargInput" width="100%" /> </FlexBox> </l:content> </l:Grid> <Table id="stockList" class="sapUiResponsiveMargin" width="100%" items="{ path : 'stock>/' }" noDataText="暂无数据"> <columns> <Column minScreenWidth="Phone" demandPopin="true" hAlign="Left"> <Text text="物料编码" /> </Column> <Column minScreenWidth="Phone" demandPopin="true" hAlign="Left"> <Text text="物料描述" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="工厂" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="库存地点" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="库存地点名称" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="批次" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="库存数量" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="单位" /> </Column> </columns> <items> <ColumnListItem> <cells> <Text text="{stock>matnr}" /> <Text text="{stock>maktx}" /> <Text text="{stock>werks}" /> <Text text="{stock>lgort}" /> <Text text="{stock>lgobe}" /> <Text text="{stock>charg}" /> <Text text="{stock>clabs}" /> <Text text="{stock>meins}" /> </cells> </ColumnListItem> </items> </Table> </Panel> </mvc:View>

ui5.yaml配置代理,解决cors跨域

specVersion: "4.0" metadata: name: zfiori_stock type: application server: customMiddleware: - name: ui5-middleware-simpleproxy afterMiddleware: compression mountPath: /api configuration: baseUri: "http://后端ip:port" preserveHostHeader: true ignoreCertErrors: true headers: X-Requested-With: XMLHttpRequest
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:56:32

Qwen3-14B-MLX-4bit长文本处理与YaRN扩展

Qwen3-14B-MLX-4bit长文本处理与YaRN扩展 在当前AI模型“军备竞赛”愈演愈烈的背景下&#xff0c;一味追求参数规模已不再是唯一解。越来越多的企业开始意识到&#xff1a;一个能在本地稳定运行、支持复杂任务编排、同时具备超长上下文理解能力的中型模型&#xff0c;往往比“云…

作者头像 李华
网站建设 2026/4/17 12:18:01

php小程序红色文物活动文创产品商城系统APP_2fil7831

文章目录 具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 具体实现截图 同行可拿货,招校园代理 php小程序红色文物活动文创产品商城系统APP_2fil7831 …

作者头像 李华
网站建设 2026/4/18 3:42:20

Excalidraw:手绘风格开源白板工具详解

Excalidraw&#xff1a;当手绘遇上数字白板 你有没有过这样的经历&#xff1f;开会时想快速画个架构图&#xff0c;却卡在工具复杂的菜单里&#xff1b;写技术文档时需要一张示意图&#xff0c;结果花两小时调线条对齐&#xff1b;团队头脑风暴&#xff0c;想法满天飞&#xf…

作者头像 李华
网站建设 2026/4/18 20:58:19

springboot基于微信小程序的员工签到企业项目多人协同办公系统

文章目录具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 同行可拿货,招校园代理 springboot基于微信小程序的员工签到企业项目多人协同办公…

作者头像 李华
网站建设 2026/4/16 22:47:11

Qwen-Image API:文生图与智能编辑全解析

Qwen-Image API&#xff1a;文生图与智能编辑全解析 在一家快消品牌的营销部门&#xff0c;设计师小李正对着电脑叹气。 距离中秋上线只剩48小时&#xff0c;电商平台要求更换主图文案——从“团圆价到手”改成“月满价更满”。可这张主图是三天前用AI生成的&#xff0c;原始Pr…

作者头像 李华
网站建设 2026/4/18 3:38:25

基于Android的乡村研学旅行APP系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦乡村研学旅行资源分散、报名流程繁琐、行程管理不便的痛点&#xff0c;设计实现基于 Android 的乡村研学旅行 APP。系统以 Java 为核心开发语言&#xff0c;基于 Android 原生框架搭建移动端应用&#xff0c;搭配轻量后端服务架构&#xff0c;处理研学线路发…

作者头像 李华