基于uniapp+vue3+pinia2+qiun-data-charts
搭建一种全新os式手机后台admin系统。
uni-vue3-osadmin提供了图表、表格、表单、编辑器、用户管理、角色管理等常用场景示例。
运用技术
- 开发工具:HbuilderX 4.75
- 技术框架:uniapp+vue3+vite5+pinia2
- UI组件库:uni-ui+uv-ui(uniapp vue3组件库)
- 弹框组件:uv3-popup(基于uniapp+vue3自定义弹窗组件)
- 表格组件:uv3-table(基于uniapp+vue3跨端综合表格组件)
- 图表组件:qiun-data-charts
- 模拟数据:mockjs(用于自定义表格模拟数据)
- 缓存技术:pinia-plugin-unistorage
- 编译支持:h5+小程序+app端
项目框架结构
使用hbuilderx4.75搭建项目模板,采用vue3 setup
语法开发。
桌面布局
<script setup>
import { ref } from 'vue'
import Desk from './components/desk.vue'
import Dock from './components/dock.vue'
import Touch from './components/touch.vue'
</script>
<template>
<uv3-layout>
<!-- 桌面菜单 -->
<Desk />
<template #footer>
<!-- 底部导航 -->
<Dock />
</template>
<!-- 悬浮球(辅助触控) -->
<Touch />
</uv3-layout>
</template>
手机os桌面支持如下参数配置。
/**
* label 图标标题
* imgico 图标(本地或网络图片) 当type: 'icon'则为uni-icons图标名,当type: 'widget'则为自定义小部件标识名
* type 图标类型(icon | widget) icon为uni-icons图标、widget为自定义小部件
* path 跳转路由页面
* link 跳转外部链接
* hideLabel 是否隐藏图标标题
* background 自定义图标背景色
* color 自定义图标颜色
* padding 内边距
* size 栅格磁贴布局(16种) 1x1 1x2 1x3 1x4、2x1 2x2 2x3 2x4、3x1 3x2 3x3 3x4、4x1 4x2 4x3 4x4
* onClick 点击图标回调函数
* children 二级菜单
* */
支持配置children参数二级菜单。
<template>
<swiper
class="uv3__deskmenu"
:indicator-dots="true"
indicator-color="rgba(255,255,255,.5)"
indicator-active-color="#fff"
>
<swiper-item v-for="(mitem, mindex) in deskMenu" :key="mindex">
<view class="uv3__gridwrap">
<view v-for="(item, index) in mitem.list" :key="index" class="uv3__gridwrap-item" @click="handleClickDeskMenu(item)">
<!-- 图标 -->
<view class="ico" :style="{'background': item.background}">
<!-- 二级菜单 -->
<template v-if="Array.isArray(item.children)">
<view class="uv3__gridwrap-thumb">
...
</view>
</template>
<template v-else>
<template v-if="item.type == 'widget'">
<!-- 自定义部件 -->
<component :is="item.imgico" />
</template>
<template v-else>
<!-- 自定义图标 -->
...
</template>
</template>
</view>
<!-- 标签 -->
<view v-if="!item.hideLabel" class="label clamp2">{{item.label}}</view>
</view>
</view>
</swiper-item>
</swiper>
<!-- 桌面二级菜单 -->
<Popup v-model="deskPopupVisible">
<view class="uv3__deskpopup">
...
</view>
</Popup>
...
</template>
图标点击事件处理。
const handleClickDeskMenu = (item) => {
if(item.link) {
// 链接
openURL(item.link)
}else if(item.path) {
// 页面路由地址
uni.navigateTo({
url: item.path.substr(0, 1) == '/' ? item.path : '/' + item.path
})
}else if(Array.isArray(item.children)) {
// 二级菜单
deskPopupMenu.value = item
deskPopupVisible.value = true
}
// 绑定点击事件
typeof item.onClick === 'function' && item.onClick()
}
还支持运行到pc端以750px展示页面布局,当然也可以自行调整宽度。
uni-vue3-table自定义综合表格组件
项目中用到的表格组件,是基于uniapp+vue3自定义增强版table组件。
uni-vue3-table:基于uniapp+vue3全端通用自定义加强版table组件。支持固定表头/列、边框、斑马纹、单选/多选,自定义表头/表体内容插槽、左右固定列阴影高亮。支持编译运行h5+小程序端+app端。
最新原创uniapp+vue3跨端自定义综合table表格组件
基于flutter3.32+window_manager仿macOS/Wins风格桌面os系统
flutter3.27+bitsdojo_window电脑端仿微信Exe应用
基于uniapp+vue3+uvue短视频+聊天+直播app系统
基于uni-app+vue3+uvui跨三端仿微信app聊天模板
基于uniapp+vue3+deepseek+markdown搭建app版流式输出AI模板
vue3.5+deepseek+arco+markdown搭建web版流式输出AI模板
自研tauri2.0+vite6.x+vue3+rust+arco-design桌面版os管理系统Tauri2-ViteOS
自研tauri2.0+vite5+vue3+element-plus电脑版exe聊天系统Vue3-Tauri2Chat