vweb_visual是一个简单的后台管理项目,疫情在家为了避免无聊抽时间写的,一来呢本身的github有点空荡荡的,想一想本身已经步入社会,不能像学生时代同样以为时间充足。因此下定决心作一个长期维护的全栈项目,不只仅是为了本身的成长。css
1.将项目克隆到本地html
git clone https://github.com/wangly19/bweb_visual_vue.git
复制代码
2.安装依赖前端
npm install
yarn install
复制代码
3.跑动项目vue
npm run serve
复制代码
当我使用typescript做为和vue.js搭档的时候。我对于ts在vue的使用是一无所知的,随着项目的进行,也慢慢的对于ts驾轻就熟,可是我忽然发现了在vue2中使用ts,自己是一件很是坑的事情,类型验证的优点反而没有起到预想中的做用,甚至ts自己的功能都没有发挥出来,不过优势也是有的,代码折叠很是的优雅。因此既然都进坑了,那么爬出来是有必要的。react
如今的数据都是mock去模拟出来用来展现的,为了页面不显得突兀。因此数据是不规范的,难以阅读的。接口也是使用了分离式,没有和view层放在一块儿。统一放在了api文件中。 遵照restfulAPI(我只在设备管理中作了一个大概)后续会在nest.js中继续完善。ios
放出一个请求实例nginx
import service from '@/api/axios.config'
// get & post 请求 => 资源统一用parmas
export function tradDevice<T>(params: T, type: string): Promise<any> {
return service({
url: `/device`,
method: type,
params
})
}
// put & delete 须要带上数据的id
export function alterDevice<T>(id: number, params: T, type: string): Promise<any> {
return service({
url: `/device/${id}`,
method: type,
params
})
}
复制代码
看过不少大佬的项目,基本都是将请求层独立出来,其实我是比较喜欢的,当api请求出错时,我只须要去定位请求层而后更改请求的代码就OK了。而不须要在万军丛中去更改this.$axios(xxxx)等一系列的代码,保证在view层中利用async/await作出处理。架构清晰,保证可读性。git
在项目中是引入了normalize.css v8.0.1,这是一个很是好用的css,配合上本身经常使用的一些样式重置,可以知足大部分的项目所需。是一个很是好的项目。github
这里贴上我的的一个rem适配方案。方案不表明最优,只是本身用的舒服罢了。若是您以为有用,不妨在项目中继续完善它。web
resetPageSize.ts
/** * @author: wangly * 页面fontsize重置 */
(function (window: Window): void {
window.addEventListener('resize', function () {
document.documentElement.style.fontSize = `${getWindowSize() / 10}px` // 按照设计图
})
document.documentElement.style.fontSize = `${getWindowSize() / 10}px` // 按照设计图
console.warn('当前的设计图rem: ', getWindowSize())
})(window)
/** * 获取字体大小 * @return 获取当前页面的宽度 */
function getWindowSize (): number {
const __width: number = document.documentElement.clientWidth
return __width > 1920 ? 1920 : __width
}
复制代码
main.ts
// 引入rem根字体大小
import '@/tools/resetPageSize'
复制代码
scss转换方法
@function rem($px){
$remSize: $px / 192px;
@return $remSize * 1rem;
}
复制代码
使用方式
html{
height: rem(192px); // => 1rem
}
复制代码
当你须要反复的去写一个flex布局,position布局,不妨尝试一下sass mixins,它会很好的去帮助你生成须要的样式,且精简。
// flex布局
@mixin flex($justify: flex-start, $align: flex-start, $direction: row) {
display: flex;
justify-content: $justify;
align-items: $align;
flex-direction: $direction;
}
// position定位
@mixin position($position: relative, $top: initial, $right: initial, $bottom: initial, $left: initial) {
position: $position;
left: $left;
right: $right;
bottom: $bottom;
top: $top,
}
复制代码
固然,对于圆角和zinde我也会作留一手
// 设置层级
@mixin zIndex($zindex: 0) {
z-index: $zindex;
}
// 圆角
@mixin radius($px: 0) {
border-radius: $px;
}
复制代码
这个后续会抽成一个单章,提早拉出来溜溜。由于能说的太多了。每一个人都有本身的骚东西。 不是吗QAQ。
export function cssExpand<T>(css: T, id: string) {
let style: HTMLStyleElement = document.createElement('style')
style.type = "text/css"
style.innerHTML = `@charset "UTF-8"; ${css}`
if (id) {
let $style: HTMLElement | null = document.getElementById(id)
if ($style != null) $style.outerHTML = ''
style.id = id
}
// 应用新样式
document.head.appendChild(style)
}
复制代码
布局采用传统的葫芦式布局,顺序分别以下: 头部 >>> 导航 >>> 内容 + 抽屉设计。 比较符合审美,easymock的官网也是相同的设计。这点我确实是抄袭他的,在本身的想法上进行更改。无异因而很是适合iview的。若是你们以为不错,能够给个星星给我哦。当前缺点也很明显啦,toolbar的空间没有充分利用好,显得有点华而不实的感受。且一个动画都还没作好,这是一个长期的过程。
相对于注册帐号来说,admin帐号都是由管理本身构建,当忘记密码时,能够申请帐号重置。逻辑来说应该是通的吧,后台帐号是:admin 密码是: 123456 数据是Mock出来的
这里的仪表盘我是使用了基于AntV G2 的 Viser,为何不使用echarts,由于至关于echarts来讲,antV的设计更符合iviw,且配色都是我喜欢的样子。不得不说大厂的设计是真的好。并且当G6被TS重构性能后,说明antV全家桶支持TS是指日可待的事情。
后面设计到表单页面的布局都与其相似,做为一个风格统一和布局约束。左边表单,右边是搜索栏。表单能够是滚动,也能够是分页。
同上布局,一个典型的CURD界面,后面的都其实差很少。后台界面设计了大量的数据数据展现,展现就代表操做。无奈,curd可能是正常的。
同上,页面99%类似
预测该设备按照当前的动态,去判断何时达到阈值。这里被Row + col坑了。早知道本身写一个Grid。
主要是作设备定点啥的。如今还没想好原型。只是先画出一个demo。后续有想到的内容能够完善一下。地图使用的是高德系,百度系看backup分支旧版本。
详情是我比较喜欢的抽屉展现。也不能常常用对话框吧。哈哈。
不知道如何设计,主要是用来解锁和重置密码的。能够看到被锁定列表和申报列表。方便查看帐号被锁定缘由。帐号输错10次就会被锁定。
全是相同的表单,最后在想怎么作吧。权限式按照站点级别分的。哎。头发都快没了
抽屉确实是一个好东西。大部分功能都么的实现。啊哈哈哈。后续会继续更新的。都准备作一个react版本呢。
咱家暂时只想到这几套经常使用的主题风格啦,且都有统一命名
若是您看的爽了,以为不错,能够给文章点一个赞,或者是给该项目点个星星。其实这个项目推送了40次的。只是含泪重构,疫情在家,github一直都打开不了。因此天天都没有提交。后续更新会更加勤快的。都不知道何时上班。也许就我一个实习生在家苦苦等待着村里的水泥被挪开吧。
内推可丢...
恰好领取了阿里云的服务器,特此挂上了nginx,各位大哥们,请勿非法操做,惧怕.jpg.....
线上版本: 不知名后台管理系统
Github: 项目源码+平常更新中
语雀地址: 清风的语雀