更新记录

1.4.0(2023-03-24)

代码优化

1.3.9(2023-02-17)

  1. 新增DropdownMenu 下拉菜单,NoticeBar 通知栏,Readmore 展开阅读更多 等组件
  2. Picker 等滑动组件增加默认选中项,加粗选中
  3. 代码精简优化

1.3.8(2022-05-09)

代码优化

查看更多

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

s-ui

uni-app uni_modules 插件,集 组件,工具方法,接口请求,基础样式及个人常用封装为一体,便于项目开发,所有组件及全局样式都有独立命名前缀。

官方qq群 864429513

有任何问题或细节优化可进群与作者共同探讨完善,由于个人精力有限,盼有志之士可根据组件描述制作一份专业使用文档

gitee地址

小程扫码体验 [s-ui示例] 序

使用说明

// main.js中引入
import Vue from 'vue';
import sUi from '@/uni_modules/s-ui';

Vue.use(sUi, {
  // 是否给页面page全局混入一个onEmitPage钩子,使用this.$emitPage(pagePath,...args)触发
  useEmitPageMixin: false,
  // 是否替换uni默认的showLoading,hideLoading
  replaceUniLoading: false,
  // 是否替换uni默认的showToast,hideToast
  replaceUniToast: false,
  // 是否替换uni默认的showModal
  replaceUniModal: false,
  // 返回首页
  homePath: '/pages/index/index',
});

// 替换uni默认的showLoading,showToast,showModal需在页面上引入<s-toast/> <s-dialog/>
// 推荐直接使用<s-page custom-class="Index-Page">内容</s-page>

scss变量需要在uni.scss中引入

@import '@/uni_modules/s-ui/styles/var.scss';
@import '@/uni_modules/s-ui/styles/component-var.scss';

全局公用样式

@import "@/uni_modules/s-ui/styles/index.scss";

组件在page.json中使用easycom引入

"easycom": {
  "^s-(.*)": "@/uni_modules/s-ui/components/s-$1/s-$1.vue"
}

工具方法使用

import formatDate from "@/uni_modules/s-ui/utils/formatDate";

接口请求

import createRequest from "@/uni_modules/s-ui/plugins/createRequest";

// 简单使用
const request = createRequest({
  baseURL: 'https://www.baidu.com'
})

// 使用方式
request.get('/xxx/xxx', {
  a: 1,
  b: 2
}, {
  loadingText: '请求中'
}).then(res => {
  console.log(res.data)
}).catch(err => {
  console.log(err.message)
})

// 全部默认参数
const request = createRequest({
  // uni自带
  header: {}, // 请求头
  method: 'GET', // 请求方式
  url: '', // 接口路径
  timeout: 20 * 1000, // 超时时间
  // 自定义添加
  baseURL: '', // 域名
  urlParams: {}, // 接口路径中的参数
  useDefaultLoading: true, // 是否使用自定义内置loading
  showLoading: true, // 是否显示加载loading
  loadingText: '请求中', // loading 文字
  loadingTime: 200, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
  loadingHideDelayTime: 0, // 请求完成后,延迟多久执行关闭,如有连续请求可使loading避免闪烁
  useDefaultToast: true, // 是否使用自定义内置toast
  toastTime: 2000, // 提示时间
  showError: true, // 是否显示错误提示
  delayTime: 0, // 延时多久发起请求
  getTask(task) {}, // 获取请求返回对象
  // 判断请求状态是成功还是失败
  validateStatus(res) {
    return res.statusCode === 200;
  },
}, {
  /**
   * @description: 发起请求前拦截器
   * @param {object} options
   * @return {?object|Promise}
   */
  request(options) {
    return options;
  },
  /**
   * @description: 请求成功拦截器
   * @param {object}
   * @return {object|Promise}
   */
  success({
    options,
    data,
    createError,
    createSuccess
  }) {
    return createSuccess(data);
  },
  /**
   * @description: 请求失败拦截器
   * @param {object}
   * @return {object|Promise}
   */
  fail({
    options,
    error,
    createError,
    createSuccess
  }) {
    return error;
  },
})

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问