【原生】sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)

简介: 【原生】sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)

原生sd.js----------------------------------------------------------------

const API_ROOT_URL = "http://www.api.com";
const $d= {
    __getData(type, url, data, doing) {
        /**调用舒工AJAX-lite 1.0*/
        //别名转义 ----------------------------------------------------------------
        doing.s && (doing.success = doing.s); //精简别名
        doing.f && (doing.fail = doing.f); //精简别名
        doing.e && (doing.error = doing.e); //精简别名 
        $g.$utils.ajax({
            post: {type, url, data},
            get: {
                success(d) {
                    if (d.code == 0) {
                        doing.success && doing.success(d.data || d);
                    } else {
                        doing.fail && doing.fail(d);
                    }
                }, error(d) {
                    doing.error && doing.error(d);
                    console.log("【报错】" + JSON.stringify(d, null, 4));
                }
            }
        });
    },
    get(doing) {
        this.__getData("get", `${API_ROOT_URL}/apiPath/getName`, null, doing);
    },
    post(data, doing) {
        this.__getData("post", `${API_ROOT_URL}/apiPath/postName`, data, doing);
    }
};
<!--引入sd文件-->
<script src="js/sd.js"></script>
//调用sd
$d.get(
    {
        s: d => {
            /* loading.close();//停止加载*/
            console.log("拿到数据了", d);
        },
        f: d => {
            console.log("失败了", d);
        }
        /*,e:d=> {
            console.log("报错了", d);
        }*/
    }
);
$d.post(
    {param1: "参数值1"},
    {
        s: d => {
            /* loading.close();//停止加载*/
            console.log("拿到数据了", d);
        },
        f: d => {
            console.log("失败了", d);
        }
        /*,e:d=> {
            console.log("报错了", d);
        }*/
    }
);

vue axios的sd.js----------------------------------------------------------------

import axios from 'axios';
// const API_ROOT_URL = "http://xxxxxxxxxxxxx"; //公司测试服务器
const API_ROOT_URL = "https://xxxxxxxxxxxxx"; //学校正式服务器
axios.defaults.timeout = 10 * 60 * 1000; //设置默认超时时间10分钟
export default {
    _login_jwt: API_ROOT_URL + "/xxxxxxxxxxxxx", //首次登陆
    _gate_record_new: API_ROOT_URL + "/xxxxxxxxxxxxx", //入校登记记录
    _system_currentTime: API_ROOT_URL + "/xxxxxxxxxxxxx", //获取当前服务器系统时间
    _weixin_mp_config: API_ROOT_URL + "/xxxxxxxxxxxxx", //获取微信配置
    _turnoverSchool_getCode: API_ROOT_URL + "/xxxxxxxxxxxxx", //判断用户是不是被绿了
    __getData(type, url, data, doing, otherConfig = {}) {
        var headers = data ? data.headers : null;
        data && data.headers && delete data.headers
        JSON.stringify(data) === '{}' && (data = null)
        var axiosData = {
            method: type || "post",
            url,
            data
        }
        headers || (headers = {});
        headers['Content-type'] || (headers['Content-type'] = 'application/json');
        headers && (axiosData.headers = headers);
        axios(axiosData).then(d => {
            d = d.data;
            if (d.code == 0) {
                doing.success && doing.success(otherConfig.isGetAllData ? d : (d.data || d));
            } else {
                doing.fail && doing.fail(d);
            }
        }).catch(d => {
            doing.error && doing.error(d);
            console.log("【报错】" + JSON.stringify(d, null, 4));
        })
    },
    // 用户登录接口
    login_jwt(data, doing) {
        var url = this._login_jwt;
        this.__getData("post", url, data, doing);
    },
    // 存储扫码用户记录
    gate_record_new(data, doing) {
        var url = this._gate_record_new;
        this.__getData("post", url, data, doing);
    },
    // 获取服务器系统时间
    system_currentTime(data, doing) {
        var url = this._system_currentTime;
        this.__getData("get", url, data, doing);
    },
    // 获取微信配置(获取用户坐标之前需要)
    weixin_mp_config(data, doing) {
        var url = this._weixin_mp_config + '?url=' + data.url;
        this.__getData("get", url, null, doing);
    },
    // 判断绿码
    turnoverSchool_getCode(data, doing) {
        var url = this._turnoverSchool_getCode;
        this.__getData("get", url, data, doing);
    },
}

main.js引入

 import sdfrom './sd';
 Vue.prototype.$d= sd;

. vue调用

methods: {
    firstLogin() {
      this.showLoading = true;
      var data = { username: this.ucode, password: this.psw };
      this.$d.login_jwt(data, {
        success: d => {
          this.showLoading = false;
          this.success = true;
          this.$common.cookie.set("token", d.token); //存储余老师酷爱的token,他特别讨厌每次都重新登陆!
          this.playSuccessSound();
          // console.log("拿到数据了", d);
        },
        fail: d => {
          console.log("失败了", d.msg);
        }/*,error:d=> {
            console.log("报错了", d);
        }*/
      });
    },
    autoLogin() {
      this.showLoading = true;
      var data = {};
      data.headers = {
        "X-Authorization": this.$common.cookie.get("token")
      };
      this.$d.login_jwt(data, {
        success: d => {
          this.showLoading = false;
          this.success = true;
          this.playSuccessSound();
          console.log("拿到数据了", d);
        },
        fail: d => {
          console.log("失败了", d.msg);
        }/*,error:d=> {
            console.log("报错了", d);
        }*/
      });
    }
相关文章
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
1753 4
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
1118 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
887 1
|
编解码 前端开发 JavaScript
js react antd 实现页面低分变率和高分变率下字体大小自适用,主要是配置antd
在React中结合Ant Design与媒体查询,通过less变量和响应式断点动态调整`@font-size-base`,实现多分辨率下字体自适应,提升跨设备体验。
692 2
|
机器学习/深度学习 数据采集 存储
动态渲染页面智能嗅探:机器学习判定AJAX加载触发条件
本文介绍了一种基于机器学习的智能嗅探系统,用于自动判定动态渲染页面中AJAX加载的最佳触发时机。系统由请求分析、机器学习判定、数据采集和文件存储四大模块构成,采用爬虫代理技术实现高效IP切换,并通过模拟真实浏览器访问抓取微博热搜及评论数据。核心代码示例展示了如何调用微博接口获取榜单与评论,并利用预训练模型预测AJAX触发条件,最终将结果以JSON或CSV格式存储。该方案提升了动态页面加载效率,为信息采集与热点传播提供了技术支持。
552 15
动态渲染页面智能嗅探:机器学习判定AJAX加载触发条件
|
Android开发 数据安全/隐私保护
安卓手机修改设备id, 安卓硬改一键新机,手机机型修改(伪装)
提供了完整的设备信息修改功能,包含设备模板配置、基础信息修改、网络信息修改、模拟器检测绕
|
存储 人工智能 文字识别
三款安卓手机word编辑器下载,Microsoft Word,wps office,Word手机版,手机word编辑查看阅读器,PDF转换器apk下载
WPS Office是一款功能强大的办公软件,支持文档编辑、表格处理和演示文稿制作,兼容多种格式并提供丰富的云服务。它具备低内存占用、快速运行的特点,支持跨设备同步与多人协作,内置海量模板及AI辅助功能,如智能写作和PPT自动生成。此外,还可扫描文件、编辑PDF并转换为其他格式,极大提升办公效率,适合手机用户便捷操作。
1427 1
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
1123 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
850 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
1043 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子