npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

starpost-ui

v1.1.67

Published

A Vue component to starpost-ui

Downloads

3

Readme

starpost-ui

A Vue2.0 UI Components for Web.

项目演示

演示地址

安装

npm install starpost-ui -S

使用

//ES6
import starpostUI from 'starpost-ui.js'

// require
var starpostUI = require('Starpost')

Vue.use(starpostUI)

// 或者直接使用script导入
<script src="https://unpkg.com/starpost-ui/dist/starpost-ui.js"></script>

sp-img 组件

<sp-img :urlArr="urlArr" @get-urlArr="getUrlArr" @active-index="getActiveIndex"></sp-img>
<sp-dialog :title="title" :visible.sync="visible">
  <sp-img-content :urlArr="spImgArr" :activeIndex="activeIndex" @active-index="getActiveIndex"></sp-img-content>
</sp-dialog>
<script>
export default {
  data () {
    return {
      visible: false,
      title: "",
      spImgArr: [],
      activeIndex: null, //当前展示图片的index
      urlArr: [
        {
          src: "http://pic2.97uimg.com/58pic/19/69/83/38658PICuUm.jpg!w1200",
          title: "标题1"
        },
        {
          src: "http://pic2.97uimg.com/58pic/21/56/66/15D58PICHdR.jpg!w1200",
          title: "标题2"
        },
        {
          src: "http://pic2.97uimg.com/58pic/18/23/47/56r58PICHN3.jpg!w1200",
          title: "标题3"
        }
      ]
    }
  },
  methods: {
    getUrlArr(val) {
      this.visible = true;
      this.spImgArr != val && (this.spImgArr = val);
    },
    //图片组件获取当前index
    getActiveIndex(index) {
      this.activeIndex = index;
      this.$nextTick(function() {
        this.title =
          this.spImgArr.length > 0 && this.spImgArr[index].title
            ? this.spImgArr[index].title
            : "标题";
      });
      console.log("图片组件获取当前index: " + index);
    }
  }
}
</script>

sp-dialo gAttribute

| name | Description | type |default| | ----------------- | ---------------- | :--------: | :----------: | | title | 标题 |String| '' | visible | 是否打开 | Boolean| false | width | 弹窗宽度 | String| -- | top | 顶部距离 | String| '15vh' | footer | 弹窗底部是否显示 |Boolean | false | scrollbar | 是否允许浏览器出现滚动条 |Boolean | false | shadeClose | 是否点击遮罩关闭 |Boolean | false

sp-dialo Events

| 事件名 | 说明 | 参数 | |-------- |------ |------ | |open|打开时触发|--| |close|关闭时触发|--|

sp-img Attribute

| name | Description | type |default| | ----------------- | ---------------- | :--------: | :----------: | | urlArr | 图片地址 |Array| [] | showOne | 只展示第一张图片 |Boolean | false | alignRow | 横排展示 |Boolean | true | imgSize | 展示图片大小 |Array | [30, 30]

sp-img Events

| 事件名 | 说明 | 参数 | |-------- |------ |------ | |active-index|图片打开/切换时触发|index值(当前index)| |get-urlArr|图片打开/切换时触发|获取图片数组urlArr|

sp-img-content Attribute

| name | Description | type |default| | ----------------- | ---------------- | :--------: | :----------: | | urlArr | 图片数组 |Array| [] | smallImgShow | 是否展示缩略图 | Boolean| true | imgSize | 缩略图图大小 | Array| [30, 30] | defaultColor | 弹窗缩略图边框颜色 | String| '#15A6BB' | cutBoxShow | 是否开启左右切换箭头 | Boolean| 'mouseenter'(可选'click') | switchEvent | 缩略图切换大图方式 |Boolean | false | activeIndex | 当前展示图片的index |Number | 0

sp-img-content Events

| 事件名 | 说明 | 参数 | |-------- |------ |------ | |active-index|打开/切换时触发|index|

Menu 菜单(无限循环)

<sp-menu-group
  :menuWidth="['40px', '200px']"
  :menuStatus.sync="status">
  <sp-menu :menus="menus"
    :menuStatus="status"
    :select-id="selectId"
    @select-id="getSelectId"/>
</sp-menu-group>
<script>
export default {
  data () {
    return {
      status: true,
      selectId: '1',
      menus: [{
        label: '一级 1',
        active: false,
        icon: 'icon-wutu',
        children: [{
          label: '二级 1-0',
          active: false,
          url:'#',
          children: [//如果使用权限,这样写,有url的children会转成configs数组,不会渲染出来,权限后台tree建议用element tree
            {'label': '新建'}
          ]
        },{
          label: '二级 1-1',
          active: false,
          children: [{
            label: '三级 1-1-1',
            active: false,
            url:'#'
          },{
            label: '三级 1-1-2',
            active: false,
            children: [{
              label: '4级 1-1-1-1',
              active: false,
              url:'#'
            }]
          }]
        }]
      }],
    }
  },
  methods: {
    //菜单选中的ID
    getSelectId(val) {
      this.selectId = val;
      console.log('选中的ID: '+ val);
    },
    menuOpen(val) {
      console.log("菜单组件 打开的ID: " + val);
    },
    menuClose(val) {
      console.log("菜单组件 关闭的ID: " + val);
    },
  }
}
</script>

Props

| name | Description | type |default| | ----------------- | ---------------- | :--------: | :----------: | | menus | 菜单数组 |Array| [] | backgroundColor | 背景颜色 | String | '#222' | hoverBgColor | hove背景颜色 | String | '#000' | menuColor | 字体颜色 |String | '#fff' | activeMenuColor | 选中改变字体颜色 | Array | [false, '#2e323e'] | accordion | 是否开启手风琴模式 | Boolean | false | width | 菜单尺寸 | String | '200px' | height | 每行高度 | String | '36px' | menuStatus | 菜单是否默认展开 | Boolean | true | router | 是否使用router | Boolean | false | selectId | 选中的ID | String | '' | pagePermissions | 是否开启页面权限功能 | Boolean | false

Events

| 事件名 | 说明 | 参数 | |-------- |------ |------ | |select-id|选中的ID|--| |page-config|获取页面权限配置|--| |open|打开的ID|--| |close|关闭的ID|--|

Amap 地图(高德)

<sp-amap :markers="markers" @get-map-form="getMapForm" @get-geocoder="getGeocoder"></sp-amap>
import VueAMap from 'vue-amap';

VueAMap.initAMapApiLoader({
  key: 'mykey',
  plugin: ['Autocomplete', 'PlaceSearch', 'Scale', 'OverView', 'ToolBar', 'MapType', 'PolyEditor', 'AMap.CircleEditor', 'AMap.Geolocation', 'Geocoder']
});

Vue.use(VueAMap);
<script>
export default {
  data () {
    return {
      markers: [
        {
          title: "东莞",
          position: [113.753228, 22.9833],
          phone: "13713262222"
        },
        {
          title: "龙岗",
          position: [114.234824, 22.723301],
          phone: "13713263333"
        },
        {
          title: "坂田",
          position: [114.07314, 22.62579],
          phone: "13713261111"
        }
      ],
    }
  },
  methods: {
    //返回数据及距离中心点最近的距离
    getMapForm(val) {
      console.log("选择仓库: " + JSON.stringify(val));
    },
    //获取经纬度:
    getGeocoder(val) {
      console.log("获取经纬度: " + JSON.stringify(val));
    },
  }
}
</script>

Props

| name | Description | type |default| | ----------------- | ---------------- | :--------: | :----------: | | markers | 点信息 |Array| [] | zoom | 地图显示的缩放级别 | Number | 9 | width | 宽度 | String | '500px' | height | 高度 | String | '400px'

Events

| 事件名 | 说明 | 参数 | |-------- |------ |------ | |getMapForm|返回点数据|--| |getGeocoder|返回经纬度|--|

Transfer 穿梭框(拖动)

<sp-transfer :data="transferData" @clear="clear" :callbakData.sync="callbakData" :title="['列表1', '列表2']" />
npm install -S vuedraggable
<script>
export default {
  data () {
    return {
      transferData: [
        { id: 1, label: "item1" },
        { id: 2, label: "item2" },
        { id: 3, label: "item3" },
        { id: 4, label: "item4" },
        { id: 5, label: "item5" }
      ],
      callbakData: []
    }
  },
  watch: {
    callbakData(val) {
      console.log("穿梭框数组:" + JSON.stringify(val));
    }
  }
}
</script>

Props

| name | Description | type |default| | ----------------- | ---------------- | :--------: | :----------: | | data | 数组 |Array| [] | callbakData | 返回的数组 | Array | [] | title | 返回的数组 | Array | ["列表1", "列表2"] | width | 宽度 | String | '200px' | height | 高度 | String | '300px' | stripe | 斑马线 | Boolean | false | limit | 固定行数(每行支持多条) | Boolean | false | number | 行数 | Number | 5

Events

| 事件名 | 说明 | 参数 | |-------- |------ |------ | |clear|清空数据|--|

【全选/复选框】组件配置

<sp-checkbox
	:checkboxAll="true"
	:checkedArr="checkArr"
	v-model="checkAlled"
	@change="getCheckArr">全选&nbsp;&nbsp;
</sp-checkbox>
<sp-checkbox-group v-for="(item, index) in checkArr">
    <sp-checkbox
	  	v-model="item.checked"
	  	:checkedArr="checkArr"
	  	:checkAlled="checkAlled"
	  	@change="getCheckAlled">选项{{index}}
    </sp-checkbox>
</sp-checkbox-group>
<script>
export default {
  data () {
    return {
      checkAlled: false,
      checkArr: [
        { checked: false },
        { checked: false },
        { checked: false },
        { checked: false },
        { checked: false }
      ]
    }
  },
  methods: {
    getCheckArr(val){
        this.checkArr = val
    },
    getCheckAlled(val) {
        this.checkAlled = val
    }
  }
}
</script>

Props

| name | Description | type |default| | ----------------- | ---------------- | :--------: | :----------: | | checkedArr | checked数组 |Array| [] | checkboxAll | 是否为全选按钮 |Boolean | false | checkAlled | 全选 |Boolean | false | checkSize | checked大小 |Array | [14, 14]

【单选/复选按钮】组件配置

<sp-checkbox-button
  :checkList="checkList"
  :checkValues="checkValues"
  @callback="getSaskStatus">
</sp-checkbox-button>
<script>
export default {
  data () {
    return {
      checkValues: ['01'],
      checkList: [
        {
          id: '01',
          name: '已付款',
        },{
          id: '02',
          name: '已发货',
        },{
          id: '03',
          name: '已签收',
        },
      ]
    }
  },
  methods: {
    //当前选中的值
    getSaskStatus(val) {
      this.checkValues = val;
      console.log('按钮 选中的值: '+val)
    },
  }
}
</script>

Props

| name | Description | type |default| | ----------------- | ---------------- | :--------: | :----------: | | checkList | checked数组 |Array| [] | checkValues | 默认选中项 |Array | [] | checkMany | 是否为多选按钮 |Boolean | false | checkboxSize | checked大小 |String | 'lg'