【原生】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);
        }*/
      });
    }
相关文章
|
24天前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
281 2
|
1月前
|
存储 API 文件存储
47. 【Android教程】SharedPreferences 存储
47. 【Android教程】SharedPreferences 存储
26 2
|
6天前
|
JavaScript
js 一键复制到剪贴板(原生js实现)
js 一键复制到剪贴板(原生js实现)
8 0
|
2月前
|
缓存 Android开发 开发者
安卓系统优化:提升手机性能的秘诀
【5月更文挑战第31天】本文将探讨如何通过一系列简单的步骤和技巧,对安卓系统进行优化,以提升手机的性能。我们将从清理无用文件、管理后台应用、调整系统设置等方面入手,帮助你的安卓设备运行更加流畅。
|
2月前
|
Android开发
【苹果安卓通用】xlsx 和 vCard 文件转换器,txt转vCard文件格式,CSV转 vCard格式,如何批量号码导入手机通讯录,一篇文章说全
本文介绍了如何快速将批量号码导入手机通讯录,适用于企业客户管理、营销团队、活动组织、团队协作和新员工入职等场景。步骤包括:1) 下载软件,提供腾讯云盘和百度网盘链接;2) 打开软件,复制粘贴号码并进行加载预览和制作文件;3) 将制作好的文件通过QQ或微信发送至手机,然后按苹果、安卓或鸿蒙系统的指示导入。整个过程简便快捷,可在1分钟内完成。
|
2月前
|
Android开发
【通讯录教程】苹果安卓鸿蒙系统通用,如何大批量导入手机号码到手机的通讯录,下面教你方法,只需1分钟搞定几万个号码的导入手机电话本
该文介绍了一种快速批量导入手机通讯录的方法,适用于处理大量手机号的需求,如微商管理、客户资料整理等。在QQ同步助手开始收费后,提供了免费的替代方案。步骤包括:下载批量导入软件(链接提供腾讯云盘和百度网盘地址),清空通讯录(非必需),制作符合格式的通讯录文件,并按操作系统(苹果、安卓或鸿蒙)进行导入。整个过程只需1分钟,简便快捷。
|
23天前
|
前端开发 JavaScript Android开发
手机APP开发|基于安卓APP实现掌上党支部——党员app
手机APP开发|基于安卓APP实现掌上党支部——党员app
|
2月前
|
数据采集 人工智能 自然语言处理
手机可跑,3.8B参数量超越GPT-3.5!微软发布Phi-3技术报告:秘密武器是洗干净数据
【5月更文挑战第16天】微软发布 Phi-3 技术报告,介绍了一个拥有3.8B参数的新语言模型,超越GPT-3.5,成为最大模型之一。 Phi-3 在手机上运行的特性开启了大型模型移动应用新纪元。报告强调数据清洗是关键,通过优化设计实现高效运行。实验显示 Phi-3 在多项NLP任务中表现出色,但泛化能力和数据隐私仍是挑战。该模型预示着AI领域的未来突破。[[论文链接](https://arxiv.org/pdf/2404.14219.pdf)]
36 2
|
2月前
|
安全 Android开发 iOS开发
探索安卓与iOS手机操作系统的发展趋势与差异
在移动互联网时代,安卓和iOS手机操作系统一直处于激烈的竞争之中。本文将从技术角度出发,探讨两大操作系统的发展趋势、特点以及差异,并分析其对用户体验和开发者生态的影响,旨在为读者提供对移动操作系统发展方向的深入了解。
|
2月前
|
Java iOS开发
iOS的数据序列化(又称持久化)的两类使用方式
iOS的数据序列化(又称持久化)的两类使用方式
30 0