0.5.19 • Published 2 years ago
application-theme v0.5.19
轻量级管理系统业务UI组件
一、开发指南
安装
推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用。
npm install -S application-theme
快速上手
引入 Application-theme
完整引入 在 main.js 中写入以下内容:
import Vue from 'vue';
import ApplicationTheme from 'application-theme';
import 'application-theme/theme/index.css';
import App from './App.vue';
Vue.use(ApplicationTheme);
new Vue({
el: '#app',
render: h => h(App)
});
使用 Element-UI 版本
element-ui 版本需要安装 V2.15.0 版本以上, 建议安装 V2.15.6 版本
二、业务布局组件结构
— theme 主题样式定制文件夹
— components 单独定制组件
— 404.vue 404页面组件
— BaseSetting.vue 基本设置页面模型
— Content.vue 内容盒模型
— DefaultEmpty.vue 默认表格空状态组件
— Divider.vue 表格操作按钮分隔组件
— FormItem.vue Model 态框表单结构
— NoFound.vue 未找到结果组件
— Pagination.vue 分页组件
— Search.vue 搜索单盒模型组件
— SearchController.vue 搜索展开控制器组件
— Selection.vue 多选框表格 alert 组件
— TableTool.vue 表格操作工具组件
— ToolTip.vue 表格内容超出文字提示组件
— element
— fonts element icon
— element.scss 全局定制样式
— index.css element 默认定制主题样式
— index.css 样式主入口
三、业务布局组件
注意事项
序号 | 注意事项 |
---|---|
1 | 所有表单 <el-form> 统一加上 status-icon 属性,校验表单所显示对应状态 |
2 | <el-form> 与 <el-col> 配合使用务必 组项之间务必使用 <el-form-item> 搭配使用,否则容易产生组项之间存在行高差 |
3 | <el-form> 未设置 inline 属性时右外边距为 0。若设置了 inline 属性右边默认 element 右外边距 |
4 | <el-pagination> 组件 layout 属性 设置 "total, prev, pager, next" 四个值。page-sizes 属性 统一设置 10,20,30,40 值 |
搜索盒模型组件
序号 | 使用说明 |
---|---|
1 | 将原 <el-form> 在内的标签 dom 元素包括在 <Search> 组件中 |
2 | 在原先 <el-form> 子标签中添加 <el-row> 作为唯一子节点 |
3 | 以 <el-row> 搭配 <el-col :span="8"> 使用将盒模型以 8 为比例切割,并且将原先 <el-form-item> 在内所有元素包括在 <el-col> 中 |
4 | 如果搜索表单选项超过 3 项,需搭配 <SearchController> 搜索展开控制器组件使用。 |
参考代码
<Search>
<el-form>
<el-row>
<el-col :span="8">
<el-form-item label="手机号码:">
<el-input
placeholder="请输入手机号码"
v-model="mobile"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手环id:">
<el-input
placeholder="请输入手环id"
v-model="braceletId"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="设备识别号:">
<el-input
placeholder="请输入设备识别号"
v-model="deviceCode"
clearable
></el-input>
</el-form-item>
</el-col>
<SearchController>
<el-button type="primary" @click="search">查询</el-button>
<el-button type="primary" @click="reset">重置</el-button>
</SearchController>
</el-row>
</el-form>
</Search>
表格列表组件
序号 | 使用说明 |
---|---|
1 | 将原先 <el-tabel> 标签所在的所有元素包裹在 <Content> 组件中 |
2 | <Content> 组件添加 start-min-height 属性既可开启最小高度模式 |
3 | 如需要在表格中添加 loading 交互,需在 <Content :loading="loading">属性,并且在计算属性中引入全局 loading store状态 |
4 | 将需要操作表格外的按钮标签 <el-button> 包裹在 <Tabel-Tool> 组件中,例如:新增某表格选项 |
5 | 在 </el-tabel> 闭合标签前新增 <DefaultEmpty slot="empty"/> 默认空状态组件 |
6 | 在 <el-tabel> 相邻兄弟元素中添加 <Pagination> 组件并且将 <el-pagination> 组件包裹其中 |
7 | 在 <el-pagination slot-scope="data" :page-sizes="data.sizes" :layout="data.layout"> 中添加以上三个属性值 |
参考代码
<template>
...
<Content :loading="loading">
<TableTool @refresh="刷新表格数据方法"></TableTool>
<el-table :data="tableData" v-loading="loading">
<el-table-column prop="mobile" label="手机号"></el-table-column>
<el-table-column prop="nickName" label="昵称"></el-table-column>
<DefaultEmpty slot="empty"/>
</el-table>
<Pagination>
<el-pagination
slot-scope="data"
:page-sizes="data.sizes"
:layout="data.layout"
hide-on-single-page
@size-change="分页条数切换方法"
></el-pagination>
</Pagination>
</Content>
...
</template>
<script>
export default {
...,
data() {
return {
loading: false
}
},
methods: {
getData() {
this.loading = true
try {
...await 表格数据获取逻辑
} finally {
this.loading = false
}
}
}
...
}
</script>
Model态框表单组件
序号 | 使用说明 |
---|---|
1 | 在迁移组件样式时 将原来 <el-form-item> 改成 <Form-Item> 即可 |
2 | 注意:需要在 <el-form> 添加属性 label-width 值为 '140px', 统一label项宽度样式 |
参考代码
<el-form status-icon label-width="140px">
<Form-Item label="业务员等级:" prop="promoLevel">
<el-input
v-model="ruleForm.promoLevel"
placeholder="请输入业务员等级"
:disabled="falg"
></el-input>
</Form-Item>
<FormItem label="业务员达成条件:" prop="promoShops">
<el-input
v-model="ruleForm.promoShops"
placeholder="请输入业务员达成条件"
></el-input>
</FormItem>
</el-form>
基本设置模型
序号 | 使用说明 |
---|---|
1 | 在 <BaseSetting> 标签添加对应设置标题属性 title |
2 | 在原来 <el-form> 表单基础上添加属性 label-position 值为 'top',并且包裹在 <BaseSetting> 组件中 |
参考代码
<BaseSetting title="弹窗广告设置">
<el-form label-position="top">
<el-form-item label="详情id">
<el-input
placeholder="请输入详情id"
v-model="ruleForm.id"
:maxlength="19"
></el-input>
</el-form-item>
<el-form-item label="模型类型">
<el-select v-model="ruleForm.contentModel">
<el-option label="文本" value="0"></el-option>
<el-option label="图片跳转" value="1"></el-option>
</el-select>
</el-form-item>
<el-button type="primary" @click="confrimSettled">保 存</el-button>
</el-form>
</BaseSetting>
搜索展开控制器组件
序号 | 使用说明 |
---|---|
1 | 将搜索相关按钮元素包裹在 <SearchController> 组件插槽中 |
参考代码
<SearchController>
<el-button type="primary" @click="search">查询</el-button>
<el-button type="primary" @click="reset">重置</el-button>
</SearchController>
表格多选框 alert 提示组件
序号 | 使用说明 |
---|---|
1 | 将 <el-table> 表格组件包裹在 <Selection :number="number" @clearEmpty="clearEmpty"> 中 |
2 | 并且包含属性 number 代表表格数据 length |
3 | 自定义事件 clearEmpty 代表清空表格事件 |
参考代码
<Selection :number="multipleSelection.length" @clearEmpty="清空多选项方法" />
表格操作项按钮间 Divider 分隔线组件
序号 | 使用说明 |
---|---|
1 | 迁移过程中将所有操作选项 <el-button> 组件包裹在 <Divider> 组件中 |
参考代码
<Divider>
// 保持 <Divider> 组件包裹子元素的平级关系,子元素中不能包含其他子元素
<el-button @click="edit">编辑</el-button>
<el-button @clcik="del">删除</el-button>
</Divider>
表格内容超出 tooltip 文字提示组件
序号 | 使用说明 |
---|---|
1 | 建议统一将表格栏宽度设置 200px |
参考代码
<el-table-column
label="问题类型"
width="200px">
<template slot-scope="scope">
<ToolTip :content="scope.row.typeName"/>
</template>
</el-table-column>
404 组件
参考代码
<NoFind/>
0.5.19
2 years ago
0.5.18
2 years ago
0.5.16
2 years ago
0.5.17
2 years ago
0.5.10
2 years ago
0.5.11
2 years ago
0.5.9
2 years ago
0.5.14
2 years ago
0.5.15
2 years ago
0.5.12
2 years ago
0.5.13
2 years ago
0.5.8
2 years ago
0.5.7
2 years ago
0.5.6
2 years ago
0.5.5
2 years ago
0.5.4
2 years ago
0.5.3
2 years ago
0.5.2
2 years ago
0.5.1
2 years ago
0.5.0
2 years ago
0.4.4
2 years ago
0.4.3
2 years ago
0.4.2
2 years ago
0.4.1
2 years ago
0.4.0
2 years ago
0.3.12
2 years ago
0.3.11
2 years ago
0.3.10
2 years ago
0.3.9
2 years ago
0.3.8
2 years ago
0.3.7
2 years ago
0.3.6
2 years ago
0.3.5
2 years ago
0.3.4
2 years ago
0.3.3
2 years ago
0.3.2
2 years ago
0.3.1
2 years ago
0.3.0
2 years ago
0.2.1
2 years ago
0.2.0
2 years ago
0.1.0
2 years ago