Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@hb99/core

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hb99/core

环博软件前端开发VUE核心基础包

  • 1.0.2
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-33.33%
Maintainers
1
Weekly downloads
 
Created
Source

@hb_soft/core

描述:

vue项目核心包,包含启动配置、appInfo、http、util、core、message 采用ts编写,通过tsc编译,gulp打包,生成npm包

API

1.BOOTSTRAP()

描述:项目启动方法,支持移动端和PC端,网关支持JS和json。(免挂载vue)

BOOTSTRAP(Vue: any, vueConfig: any, hbConfig: HBConfig ): Promise<any>

​ 文件:bootstrap.ts ( export default bootstrap )

​ 参数:

参数说明类型默认值版本
Vue传入Vueany
vueConfignew Vue传入的对象any
hbConfig项目配置对象:包含msg、notify、loading、session、local、httpHBConfig

示例:

import { BOOTSTRAP } from ''@hb_soft/core';

 bootstrap(
		Vue,
		{ 
			router,
            store,
            render: h => h(App)
		},
		{
			msg: {
				duration:2,
				...msgImpl
			}
		},
		...
  )

2.appStart()

描述:项目启动方法,支持移动端和PC端,网关支持JS和json。(需要手动挂载Vue)

文件:core/app-start.ts

appStart(callback?: Function): Promise<any> 
参数描述类型默认值版本
callback回调函数 【可选】fucntion

示例:

import { appStart,Loading,Msg,Notify,Http,Setting } from ''@hb_soft/core';

Vue.use(Loading,{
	namespace:'loading',//this.$loading
	start(){},
	end(){}
})
Vue.use(Msg,{
	namespace:'msg',//this.$msg
	duration:2,
	info(){},
	success(){},
	warning(){},
	error(){}
})
Vue.use(Notify,{
	namespace:'notify',//this.$notify
    title:'提示',
	duration:2,
	info(){},
	success(){},
	warning(){},
	error(){}
})
Vue.use(Http,{
	namespace:'http' //this.$http();
})

bootstrap().then(() => {
   Vue.use(Setting,{namespace:'setting'}) //加载完后挂载,才会有所有配置,this.$setting
   new Vue({
     router,
     store,
     render: h => h(App)
   }).$mount('#app')
 })

3. Setting

描述:获取项目配置,获取网关配置

文件:core/app-info.service.ts

默认命名空间为:setting。 this.$setting

appcode()

描述:获取项目APP_CODE

 appcode(): string

无参数

gatewayUrl()

描述:获取网关URL配置

gatewayUrl(): string 

无参数

getAppConfig()

描述:获取项目的配置:不传参数获取所有配置,传某个key则获取该项的配置

getAppConfig(configKey?: string): any
参数描述类型默认值版本
configKey项目配置项的键 【可选】string

示例:

假设项目配置如下:
module.exports ={
    GATEWAY_BASE: 'http://192.168.16.188:729/',
    // GATEWAY_API:'/config/GetJs.json',
    GATEWAY_API:'api/sysconfig/GetJs',
    APP_CODE: '',
    SINGLE_SIGN_KEY: 'SERVER_JS_SSO'
}

1. this.$setting.getAppConfig() 
//返回{
    GATEWAY_BASE: 'http://192.168.16.188:729/',
    // GATEWAY_API:'/config/GetJs.json',
    GATEWAY_API:'api/sysconfig/GetJs',
    APP_CODE: '123456',
    SINGLE_SIGN_KEY: 'SERVER_JS_SSO'
}

2.this.$setting.getAppConfig('APP_CODE') 等价于 this.$setting.appcode()
//123456

3.this.$setting.gatewayUrl('GATEWAY_BASE') 等价于 this.$setting.gatewayUrl()
//'http://192.168.16.188:729/'
getGatewayResource()

描述:获取网关配置:不传参数返回所有配置,传key则返回该项配置

getGatewayResource(configKey?: string, ): any
参数描述类型默认值版本
configKey网关配置项的键 【可选】string

示例:

假设网关配置为:{
"SERVER_API_ImportExport": {
    "Name":"导入导出服务接口地址",
	"Code":"SERVER_API_ImportExport",
	"Value":"ImportExport"
 },
 SERVER_JS_SSO: {
 	Name: "单点登陆地址",
    Code: "SERVER_JS_SSO",
    Value: "http://192.168.16.188:1001/Client/JiaFaSoftSignin"
  }
}

1. this.$setting.getGatewayResource();
//{
	"SERVER_API_ImportExport":{
    	"Name":"导入导出服务接口地址",
		"Code":"SERVER_API_ImportExport",
		"Value":"ImportExport"
 	},
 	SERVER_JS_SSO: {
        Name: "单点登陆地址",
        Code: "SERVER_JS_SSO",
        Value: "http://192.168.16.188:1001/Client/JiaFaSoftSignin"
     }
}

2. this.$setting.getGatewayResource(SERVER_API_ImportExport);
// {
    	"Name":"导入导出服务接口地址",
		"Code":"SERVER_API_ImportExport",
		"Value":"ImportExport"
}

getGatewayValue()

描述:获取网关配置项的Value值

getGatewayValue(configKey?: string): any
参数描述类型默认值版本
configKey网关配置项的键 【可选】string
singleSignUrl

描述:获取单点登录的地址

singleSignUrl(): string

无参数

4.Http

描述:http请求方法,统一处理错误,loading,请求拦截,结果处理

文件:core/http.ts

默认命名空间为:http。 使用:this.$http()

$http(api:string|ApiOptions,params?:any,body?:any,httpOptions?: HttpOptions):Promise<any>
参数描述类型默认值版本
api为字符串的时候,method=get;为ApiOpions时参考接口传参string|ApiOptions
datamethod为post/put/patch的时候, 为body,其余为paramsany
httpOptionshttp请求参数配置,参数参考接口【可选】HttpOptions

示例:

如:
api配置文件: api.js,内容如下:
const DATACENTER_KEY = 'SERVER_API_DATACENTER';
const MSG_KEY = 'SERVER_API_MSG';

export default {
	GetYearsListFromName: '/api/Years/GetYearsListFromName',
	Wether: {
		api:'http://www.baidu.com/api/getWetherList',
		method: 'get',
		full: true
	},
	GetTeacherTurnPageList:{
		api: '/api/TeacherTurn/GetTeacherTurnPageList',
		gateway: DATACENTER_KEY,
		method: 'post'
	}
}
////////////////////////////////////////////////////////////////////////////
import API from './api.js'

1. this.$http(API.GetYearsListFromName) //get请求

2. this.$http(API.Wether,{city: 'chengdu'} ) //get请求

3. this.$http(API.GetTeacherTurnPageList,{id:1,data:2}) //post请求,自动包层model
//返回数据 {
	MZM: “01",
	SFGE: null,
	SFSG: '1'
}

//初始化请求
4. this.$http(
    API.GetTeacherTurnPageList,
    {id:1,data:[2,3,4]},
    {
		 fieldConfig: {
          MZM: "MZ",
          SFGE:{
            type: 'boolean',
            nameKey: '1',
            valueKey:'是'
          },
          SFSG:{
            filedAlias:'是否帅哥',
            type: 'boolean',
            nameKey: '1',
            valueKey:'否'
          }
        }
  })
    
//返回数据 {
	MZM: “01",
	SFGE: null,
	SFLSET: “1”,
	是否帅哥:“是",
	_SFGE: "否"
}

5. local

描述:localStorage方法,免JSON.stringify(),免JSON.parse()并进行容错处理,设置过期时间

文件:core/storage.ts

默认命名空间为:ls。 使用: this.$ls

setItem()

​ 描述: 设置locastorage的值

setItem(key: string, data: any): void
参数描述类型默认值版本
keystring
dataany

示例:

this.$ls.setItem('abc',123);
getItem()

描述:获取localStorage的值

getItem(key: string): any
参数描述类型默认值版本
keystring

示例:

this.$ls.getItem('abc'); 
// 123
removeItem()

描述:移除localStorage的值

removeItem(key: string): void
参数描述类型默认值版本
keystring

示例:

this.$ls.removeItem('abc');

this.$ls.getItem('abc');
//undefined
refreshItem()

描述: 刷新某项的过期时间

refreshItem(key: string): void
参数描述类型默认值版本
keystring

示例:

this.$ls.refreshItem('abc');
clear()

描述:清空缓存,一般要先加确认框

无参数

示例:

this.$ls.clear();

6.session

描述:sessionStorage方法,免JSON.stringify(),免JSON.parse()并进行容错处理,设置过期时间

文件:core/storage.ts

默认命名空间为:ss。 使用: this.$ss

session的所有方法同local

7.msg

描述:统一的消息处理器,全局配置控制,一般该消息用于用户操作界面提示信息。

文件:message/msg.ts

info()

描述:普通消息提示,一般不需要自己传duration,统一读取全局的持续时间

info(content: string, duration?: number): void
参数描述类型默认值版本
content消息的内容string
duration持续时间,特殊情况才需要自己传该值number
success()

描述:成功的消息,一般不需要自己传duration,统一读取全局的持续时间

参数描述类型默认值版本
content消息的内容string
duration持续时间,特殊情况才需要自己传该值number
warning()

描述:警告的消息,一般不需要自己传duration,统一读取全局的持续时间

参数描述类型默认值版本
content消息的内容string
duration持续时间,特殊情况才需要自己传该值number
error()

描述:错误的消息,一般不需要自己传duration,统一读取全局的持续时间

参数描述类型默认值版本
content消息的内容string
duration持续时间,特殊情况才需要自己传该值number

示例:

this.$msg.info();
this.$msg.success();
this.$msg.warning();
this.$msg.error();

8.notify

描述:统一的全局消息提示。一般不用此方法,http里调用的是该方法。

文件:message/notify.ts

命名空间: 默认为notify。 使用: this.$notify.info('消息提示')

info()

描述:普通消息提示,一般不需要自己传duration,统一读取全局的持续时间

info(content: string, title?: string, duration?: number): void
参数描述类型默认值版本
content消息的内容string
title消息的标题【可选】string
duration持续时间【可选】number
success()

描述:成功消息提示,一般不需要自己传duration,统一读取全局的持续时间

方法、参数同 8.1 info()

warning()

描述:警告消息提示,一般不需要自己传duration,统一读取全局的持续时间

方法、参数同 8.1 info()

error()

描述:错误消息提示,一般不需要自己传duration,统一读取全局的持续时间

方法、参数同 8.1 info()

9.Loading

描述:http请求loading。一般情况业务代码中不需要使用该方法。

文件:message/loading.ts

命名空间:默认loading。使用: this.$loading.start()

start()

描述:loading开始

无参数

end()

描述:loading结束

无参数

10.Util

getUrlByApi()

描述:传入api配置项,获取完整的URL字符串

文件:http/http.ts

getUrlByApi( api:  string | ApiOptions): string
参数描述类型默认值版本
apiAPI配置项string | ApiOptions

示例:

import { getUrlByApi } from '@hb_soft/core';
getPCDName()

描述:获取省(Province)市(City)区(District)名称

文件:utils/city.util.ts

getPCDName  (city: string, joinStr?: string):string
参数描述类型默认值版本
city格式为50001,50002,50003字符串
joinStr省市区连接符,默认为 /,即:四川省/成都市/武侯区 【可选】字符串/

示例:

import { getPCDName } from '@hb_soft/core';

1. getPCDName('500000,500100,500154'); 
//  重庆市/市辖区/开州区

2. getPCDName('500000,500100,500154','-'); 
//  重庆市-市辖区-开州区

getBirthDayFromIdCard()

描述:根据从身份证里获取出生年月日

文件:utils/common.util.ts

 getBirthDayFromIdCard (idCard: string, format?: string): string
参数描述类型默认值版本
idCard身份证号string
format格式化【可选】stringYYYY-MM-DD

示例:

import { getBirthDayFromIdCard } from '@hb_soft/core';

getBirthDayFromIdCard('511623199103125236');
// 1991-03-12

getBirthDayFromIdCard('511623199103125236','YYYY年MM月DD日');
// 1991年03月12日

debounce()

描述:防抖处理函数

文件:utils/common.util.ts

debounce (func: Function, wait: number, immediate?: boolean): Function
参数描述类型默认值版本
func要进行防抖处理的函数Function
wait防抖延迟时间,单位msnumber
immediate第一次是否执行 【可选】numberfalse

示例:

html: 
	<input @onChange="changeDebounce" />
	
script:
	import { debounce } from '@hb_soft/core'
export default {
    data(){
        changeDebounce: debounce(this.getData,1000)
    },
    methods:{
    	getData(){}
    }
}
作用:输入的时候每输入一个字符就调取数据开销大。 防抖以后输入的时候每1秒才会请求一次
pubSub

描述:观察者 - 订阅者 设计模式

文件:util/common.util.ts

next()

描述:发射数据

 next(type: string, data: any):void
参数描述类型默认值版本
type观察标志string
data发射数据any
subscribe()

描述:订阅某个事件的数据

subscribe(type: string, fn: Function): void

示例:

import { pubSub } from '@hb_soft/core';

//在某个地方
pubSub.subscribe('event1',data => { console.log(data) }) //订阅event1的数据。


//在另一个地方
pubSub.next('event1',123) //无论什么时候,这个地方的数据发射,订阅的地方都会观察到该数据改变

getDictionary()

描述:获取字典数据,不传参数获取所有字典,传key则获取该键对应的字典(枚举)

文件:utils/hb.util.ts

getDictionary = (key?: string): Array<object>|object
参数描述类型默认值版本
key字典(枚举)的键 【可选】stringnull

示例:

字典数据: {
	XBM:[
		{
            Id: "E768D6C4A203415EA1A602A9BB979158",
            Level: 1,
            NameC: "男",
            PId: "4E035811-37D8-41A3-BB2D-1F583097DA70",
            Value: "1"
    	},
    	{
            Id: "7FACA79564204F4AABA02F0B63D48948",
            Level: 1,
            NameC: "女",
            PId: "4E035811-37D8-41A3-BB2D-1F583097DA70",
            Value: "2"
    	}
    ],
    ...
}

import { getDictionary } from '@hb_soft/core';

getDictionary(); //返回所有的字典

getDictionary('XBM'); 
// [
		{
            Id: "E768D6C4A203415EA1A602A9BB979158",
            Level: 1,
            NameC: "男",
            PId: "4E035811-37D8-41A3-BB2D-1F583097DA70",
            Value: "1"
    	},
    	{
            Id: "7FACA79564204F4AABA02F0B63D48948",
            Level: 1,
            NameC: "女",
            PId: "4E035811-37D8-41A3-BB2D-1F583097DA70",
            Value: "2"
    	}
]

getDicName()

描述:查找字典的名称(一般用于渲染HTML)

文件:utils/hb.util.ts

getDicName(dicKey: string, value: string | number | boolean, dicValueKey?: string, nameKey?: string, emptyFormat?: string): string
参数描述类型默认值版本
dicKey字典的key
value当前的值string|number|boolean
dicValueKey查找字典dicKey的dicValueKey与当前值相等的项,如果字典不规范则可以根据需要传入其他值 【可选】stringValue
nameKey返回查找目标的nameKey,如字典不规范可根据需要传入其他值 【可选】stringNameC
emptyFormat如果没有查找到字典则返回该字符串 【可选】string------
loadScript()

描述:加载script 通用方法

文件:utils/common.util.ts

loadScript(url: string, callback?: Function): Promise<any>
参数描述类型默认值版本
urljs地址stringnull
callback回调函数 【可选】functionnull
obj2ParamUrl()

描述:对象转化为url的参数

文件:utils/common.util.ts

obj2ParamUrl(url: string, obj: Object, encode?: boolean): string
参数描述类型默认值版本
url原url地址string
obj要转参数的对象Object
encode是否进行编码 【可选】booleanfalse

示例:

let param = {
	name: 'jay',
	age: '18'
}

let url1 = 'http://www.hb.com';
let url2 = 'htpp://www.hb.com?client=c';

import { obj2ParamUrl } from '@hb_soft/core';
obj2ParamUrl(url1,param); 
// http://www.hb.com?name=jay&age=18

obj2ParamUrl(url2,param); 
// http://www.hb.com?client=c&name=jay&age=18

paramUrl2Obj()

描述:url上的参数转化为对象

文件:utils/common.util.ts

paramUrl2Obj(url: string, decode?: boolean): object
参数描述类型默认值版本
url要获取对象的url地址string
decode是否进行解码 【可选】booleanfalse

示例:

let url = 'http://www.hb.com?client=c&name=jay&age=18'
import { paramUrl2Obj } from '@hb_soft/core';


paramUrl2Obj(url);
// { 
    client: 'c',
    name: 'jay',
    age: '18' 
}
RegExpUtil

描述:表单正则验证表达式集合

文件:utils/reg-exp.util.ts

参数描述版本
idcard身份证校验
name姓名校验
phone手机号校验
postcode邮编校验
schoolCode毕业学校代码校验
tel固定电话校验

接口(interface)

1.HBConfig

描述:项目启动配置

文件:hb-config.interface.ts

参数描述类型默认值版本
msg消息提示设置MessageInterface
notify消息提示设置NotifyInterface
loadingloading设置LoadingInterface
httphttp设置RequestInterface
setting项目配置设置【可选】AppInfoInterface
locallocalStorage配置【可选】Options
sessionsessionStorage配置【可选】Options

2.MessageInterface

描述:msg消息提示配置

文件:message/message.interface.ts

参数描述类型默认版本
namespacevue.namespace、this.$namespace【可选】string
duration消息持续时间【可选】number
info普通消息function(content:string,duration?:number)
success成功消息function(content:string,duration?:number)
warning警告消息function(content:string,duration?:number)
error错误消息function(content:string,duration?:number)

3.NotifyInterface

描述:notify消息提示配置

文件:message/message.interface.ts

参数描述类型默认版本
namespacevue.namespace、this.$namespace【可选】string
duration消息持续时间【可选】number
title提示的标题【可选】string
info普通消息function(content:string,duration?:number)
success成功消息function(content:string,duration?:number)
warning警告消息function(content:string,duration?:number)
error错误消息function(content:string,duration?:number)

4.LoadingInterface

描述:请求loading的配置

文件:message/message.interface.ts

参数描述类型默认版本
namespacevue.namespace、this.$namespace【可选】string
startloading开始function()
endloading结束function()

5.HttpOptions

描述:http请求参数配置项

文件:http/http.interface.ts

参数描述类型默认版本
AxiosRequestConfigaxios的http配置项【可选】AxiosRequestConfigaxios的默认值
handleError是否需要错误处理【可选】booleantrue
loadingDisabled是否禁用请求loading【可选】booleanfalse
async是否支持同步【可选】booleanfalse
isNotHB是否不是环博的http接口,如果是环博的接口返回res.data.Data的结果,否则返回res.data【可选】booleanfalse
fieldConfig数据初始化配置 FieldConfig 【可选】FieldConfig
fieldMatchDeep是否深层次匹配,当fieldConfig配置时生效 【可选】booleanfalse

6.FieldConfig

描述:数据初始化配置,默认是初始化字典,可初始化其他数据

文件:http/http.interface.ts

参数描述类型默认版本
[key: string]任何字段都能初始化stringCustomFieldConfig

7.CustomFieldConfig

描述:自定义字段配置,支持字典、自定义数组、布尔值

文件:http/http.interface.ts

参数描述类型默认版本
fieldAlias初始化数据后的别名 【可选】,默认 为下划线 _string_
type数据初始化类型dic|columns|booleandic
source当type=dic时,source是字典的key; 当type=columns时,source是数组; 当type=boolean时,source为valueKey不匹配时取值,默认是 “否”。string | Array
nameKey当type=dic时,nameKey是字典的字段,默认NameC;当type=columns时,nameKey是数组的字段,默认Name; 当type=boolean时,nameKey为判断值,如果为真取valueKey的值,为假取source的值string
valueKey当type=dic时,valueKey是字典取值的字段,默认是Value; 当type=columns时,valueKey是数组取值的字段,默认是Value; 当type=boolean时,valueKey是布尔值的字段匹配时的取值,默认是 “是”。string

8.RequestInterface

描述:环博http请求配置

文件:http/http.interface.ts

参数描述类型默认版本
namespaceVue.namespace、this.$namespace【可选】stringhttp
userModelConfig存储userModel的配置,位置为sessionStorage【可选】UserModelConfig
loadingDisabled全局配置,是否禁用请求loading【可选】booleanfalse

9.ApiOptions

描述:API配置

文件:http/http.interface.ts

参数描述类型默认版本
api后端api地址string
gateway网关配置项 【可选】string
methodget|post|delete|put|patch|head 【可选】stringget
full是否是完整 地址【可选】booleanfalse

10.UserModelConfig

描述:存储userModel的配置

文件:http/http.interface.ts

参数描述类型默认版本
key储存userModel的keystring
storageTypeuserModel存储方式:local | sessionstringsession

开发(贡献)

1.每次修改任何东西需要升级版本

npm version patch   //修改bug  1.0.0 -> 1.0.1
 
npm version  minor  //功能增加、变更 1.0.0 -> 1.1.0

npm version major   //架构更改,不兼容之前版本  1.0.0 -> 2.0.0

2.修改 所有的API 文档,变更或者新增的地方填入对应的版本

3.修改CHANGELOG.md 变更记录

4.打包命令:

//编译开发的包到项目下,需要修改gulpfile.js文件中的devPath,开发项目路径。
npm run dev


//编译正式包
npm run deploy 


//手动发布
cd deployment && npm publish --access public


//一键打包到npm上,需要提前登陆npm: npm login
npm run publish 

FAQs

Package last updated on 19 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc