uniapp老项目整合DIY可视化框架

uniapp老项目整合DIY可视化框架,首先把DIY可视化源码先导出一份源码出来。

1. 拷贝依赖进项目

拷贝common、uni_modules两个目录下进你的项目里。

在main.js中全局注册uView、diygw相关JS依赖


2. 引入主JS库

在main.js中全局注册uView、diygw相关JS依赖。参照导出源码的main.js配置把里面的配置整合进你的项目里。里面有包括了vue2、vue3两种写法配置,建议使用vue3配置,因为官方扩展的uview专用组件库大部分只兼容了vue3.


// #ifdef VUE3
import App from './App'
import {
	setCurrentPage,
	Validate,
	setData,
	navigateTo,
	showModal,
	showToast,
	getPickerChildren,
	uploadImage,
	getOption
} from '@/common/Page.js'

import Tools from '@/common/Tools.js'
import HttpService from '@/common/HttpService.js'
import DiyService from '@/common/DiyService.js'
import Session from '@/common/Session.js'
import uView from './uni_modules/diy-uview-ui'
import Auth from './common/Auth'

import {
	createSSRApp
} from 'vue'
export function createApp() {
	const app = createSSRApp(App)

	app.config.globalProperties.$tools = new Tools()
	app.config.globalProperties.$http = new HttpService()
	app.config.globalProperties.$diy = new DiyService()
	app.config.globalProperties.$session = Session
	app.config.globalProperties.$auth = Auth
	
	uni.getSystemInfo({
		success: function(e) {
			// #ifndef MP
			app.config.globalProperties.StatusBar = e.statusBarHeight;
			if (e.platform == 'android') {
				app.config.globalProperties.CustomBar = e.statusBarHeight + 50;
			} else {
				app.config.globalProperties.CustomBar = e.statusBarHeight + 45;
			};
			// #endif

			// #ifdef MP-WEIXIN
			app.config.globalProperties.StatusBar = e.statusBarHeight;
			let custom = wx.getMenuButtonBoundingClientRect();
			app.config.globalProperties.Custom = custom;
			app.config.globalProperties.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
			// #endif

			// #ifdef MP-ALIPAY
			app.config.globalProperties.StatusBar = e.statusBarHeight;
			app.config.globalProperties.CustomBar = e.statusBarHeight + e.titleBarHeight;
			// #endif
		}
	})

	app.mixin({
		methods: {
			setCurrentPage,
			Validate,
			setData,
			navigateTo,
			showModal,
			showToast,
			getPickerChildren,
			uploadImage,
			getOption
		}
	})
	app.use(uView)
	return {
		app
	}
}
// #endif


3. 引入全局样式

App.vue:引入基础样式(需SCSS支持)

引入相关的样式比如

@import 'common/diygw-ui/iconfont.scss';
	@import 'common/diygw-ui/animate.css';
	@import 'common/diygw-ui/index.scss';

	@import './uni_modules/diy-uview-ui/index.scss';
	@import 'common/diygw-ui/uview.scss';


4、修改uni.scss

uni.scss引入主题变量文件以自定义样式:

@import "@/uni_modules/diy-uview-ui/theme.scss";