@tplc/business
Version:
56 lines (52 loc) • 1.36 kB
text/typescript
import { LcbGlobal } from './action'
import { merge } from 'lodash-es'
export const $lcb: LcbGlobal = {
navigateTo: (url) => {
uni.navigateTo({ url })
},
internalPages: {
webview: '/pages/system/webview',
search: '/pages/search/index',
setting: '/pages/mine/setting',
home: '/pages/index/index',
orderList: '/pages-sub/order/list',
authPhone: '/pages/system/authPhone',
userEdit: '/pages/user/edit',
drawdown: '/pages/drawdown/drawdown',
notification:'/pages-sub/notification/index',
},
} as LcbGlobal
uni.$lcb = $lcb
export const setup = (params: Partial<LcbGlobal>) => {
merge(uni.$lcb, params)
}
// #ifdef H5
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const importFn = import.meta.glob('./components/lcb-*/lcb-*.vue', { eager: true })
const components: {
name: string
}[] = []
for (const key in importFn) {
const component = importFn[key].default
if (component.name) {
component.install = function (Vue) {
Vue.component(component.name, component)
}
components.push(component)
}
}
// #endif
const install = (Vue) => {
// #ifdef H5
components.forEach(function (component) {
Vue.component(component.name, component)
})
// #endif
// #ifndef APP-NVUE
Vue.config.globalProperties.$lcb = $lcb
// #endif
}
export default {
install,
}