【原生】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);
        }*/
      });
    }
相关文章
|
Web App开发 数据采集 JavaScript
动态网页爬取:Python如何获取JS加载的数据?
动态网页爬取:Python如何获取JS加载的数据?
1806 58
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
存储 JavaScript 前端开发
JavaScript中的数据类型以及存储上的差别
通过本文的介绍,希望您能够深入理解JavaScript中的数据类型及其存储差别,并在实际编程中灵活运用这些知识,以提高代码的性能和稳定性。
453 3
|
监控 JavaScript 算法
深度剖析 Vue.js 响应式原理:从数据劫持到视图更新的全流程详解
本文深入解析Vue.js的响应式机制,从数据劫持到视图更新的全过程,详细讲解了其实现原理和运作流程。
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
629 0
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
Android开发 iOS开发 物联网
安卓比IOS好的12个原因
 安卓比IOS好的12个原因 1.安卓有更多的app应用2.安卓更加可定制化3.几乎每个人都有一台安卓手机4.安卓的价格选择范围更大5.你可以不用iTunes6.
1165 0
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
971 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
510 66
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
629 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡