vue项目中所使用的element-UI / echarts
高清版思維導圖見后臺管理項目地址
1.login登錄頁面
< el-form >表單
在 Form 組件中,每一個表單域由一個 Form-Item 組件構成,表單域中可以放置各種類型的表單控件,包括 Input、Select、Checkbox、Radio、Switch、DatePicker、TimePicker
Form 組件提供了表單驗證的功能,只需要通過 rules 屬性傳入約定的驗證規則,并將 Form-Item 的 prop 屬性設置為需校驗的字段名即可。
2.主頁home頁面
2.1< el-container > 布局容器
用于布局的容器組件,方便快速搭建頁面的基本結構:
< el-container>:外層容器。當子元素中包含 或 時,全部子元素會垂直上下排列,否則會水平左右排列。
< el-header>:頂欄容器。
< el-aside>:側邊欄容器。
< el-main>:主要區域容器。
< el-footer>:底欄容器。
以上組件采用了 flex 布局,使用前請確定目標瀏覽器是否兼容。此外,< el-container> 的子元素只能是后四者,后四者的父元素也只能是 < el-container>。
<el-container><el-header>Header</el-header><el-container><el-aside width="200px">Aside</el-aside><el-main>Main</el-main></el-container> </el-container>2.2 Layout 布局
通過基礎的 24 分欄,迅速簡便地創建布局。
用于< el-header>
因此登錄頁面的【登錄】【重置】按鈕應使用layout布局
<el-row justify="center" -- 【flex 布局下的水平排列方式】 type="flex" -- 【布局模式,可選 flex,現代瀏覽器下有效】 ><el-button type="primary" class="login-btn" @click="handleLogin('formdata')" >登錄</el-button><el-button @click="resetForm('formdata')" type="info" class="login-btn" >重置</el-button> </el-row>2.3 < el-menu>導航菜單-側欄
2.4< el-main>
<el-main class="main"><router-view></router-view> </el-main>2.5 < el-card>
將信息聚合在卡片容器中展示。
3. < el-main>–users/goods 用戶/商品列表頁面
3.1 面包屑
為了可復用,自定義組件 src/components/cuscom/myBread.vue
通過Prop向子組件傳遞數據
Vue 的組件作用域都是孤立的,不允許在子組件的模板內直接引用父組件的數據。必須使用特定的方法才能實現組件之間的數據傳遞。
所有的 prop 都使得其父子 prop 之間形成了一個單向下行綁定:父級 prop 的更新會向下流動到子組件中,但是反過來則不行.當然對 props 傳遞的參數應該添加一些驗證規則;當 prop 驗證失敗的時候,(開發環境構建版本的) Vue 將會產生一個控制臺的警告。
3.2 搜索框
< el-input>3.3 < el-table>列表
<el-table :data="userlist" height="450" border style="width: 100%;margin-top: 15px" ><el-table-column type="index" -- 【對應列的類型。如果設置了 selection 則顯示多選框;如果設置了 index 則顯示該行的索引(從 1 開始計算);如果設置了 expand 則顯示為一個可展開的按鈕】prop="id" -- 【對應列內容的字段名,表格使用在于數據配置】label="序號"width="50"></el-table-column><el-table-column prop="userlist" label="創建日期"><template slot-scope="userlist">{{userlist.row.create_time | fmtdate}}</template></el-table-column> </el-table>3.3.1 el-switch狀態開關
<el-switch v-model="userlist.row.mg_state" active-color="#13ce66" inactive-color="#ff4949" @change="changeState(userlist.row)"> </el-switch>3.3.2 按鈕el-button中使用icon
使用type、plain、round和circle屬性來定義 Button 的樣式。
<el-buttontype="danger"icon="el-icon-delete"size="small"circle @click="delUser(userlist.row.id)"></el-button>3.3.3 表格 - 展開行
通過設置 type=“expand” 和 Scoped slot 可以開啟展開行功能,el-table-column 的模板會被渲染成為展開行的內容,展開行可訪問的屬性與使用自定義列模板時的 Scoped slot 相同。
角色列表展開效果:
!注意以下幾個el-table-column都是并列關系,展開內容就像是新增一列,但是現實效果展開后表頭的下方。
3.3.4 tag標簽
這里比較難的是結構
3.3.5 表格流體高度(滾動條)
通過設置max-height屬性為 Table 指定最大高度。此時若表格所需的高度大于最大高度,則會顯示一個滾動條。
3.3.6 Tree樹形控件
關鍵在于配置,和綁定請求到數據的屬性名,善用組件提供的方法
node-key的值,是treelist這個數據來源中的該值的key名
:default-expanded-keys=“allRoleId” 不需要forEach獲得所有id了,這一個屬性就完成所有功能
check-strictly在顯示復選框的情況下,是否嚴格的遵循父子不互相關聯的做法,默認為 false
注意:
3.4 < el-pagination>分頁
<el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="queryinfo.pagenum":page-sizes="[2, 5, 10, 15]":page-size="queryinfo.pagesize"layout="total, sizes, prev, pager, next, jumper":total="total"> </el-pagination>4.商品管理
4.1 params分類參數
4.1.1 Alert 警告
<el-alerttitle="只允許為第三級分類設置參數"type="error"> </el-alert>4.1.2 Cascader級聯選擇器
4.1.3 Tabs 標簽頁
<el-form ref="form" label-width="80px" ><el-form-item label="商品名稱"> -- 【有form就有form-item】<el-cascader:show-all-levels="false"clearablev-model="value":options="options":props="{expandTrigger: 'hover', label: 'cat_name',value: 'cat_id',children: 'children'}"@change="handleChange"></el-cascader><el-tabs v-model="active" @tab-click="tabsHandleClick"><el-tab-pane label="動態參數" name="1"></el-tab-pane><el-tab-pane label="靜態參數" name="2"></el-tab-pane></el-tabs></el-form-item> </el-form>4.2 categories商品分類 - tree-grid樹形結構
tree-grid 和table-column一樣使用
treeGrid
4.3 添加商品
4.3.1 步驟條
<!-- 步驟條 樣式改變取決于屬性active--><el-steps :active="parseInt(active)-1" finish-status="success" simple style="margin-top: 20px"><el-step title="基本信息" ></el-step><el-step title="商品參數" ></el-step><el-step title="商品屬性" ></el-step><el-step title="商品圖片" ></el-step><el-step title="商品內容" ></el-step></el-steps>4.3.2 縱向tabs標簽頁
<!-- 縱向tabs標簽頁 樣式改變取決于屬性name/activeName--><!-- 最外層要用form包裹 --><el-form ref="form" :model="form" label-width="80px"><el-tabs tab-position="left" style="height:500px;margin-top: 20px;margin-bottom: 30px; overflow: scroll;"v-model="active" @tab-click="handleClick" ><el-tab-pane label="基本信息" name="1"><el-form-item label="商品名稱"><el-input v-model="form.goods_name"></el-input></el-form-item> </el-tab-pane><el-tab-pane label="商品參數" name="2"><!-- 商品參數 顯示動態信息 checkbox多選框組 checkbox-group元素能把多個 checkbox 管理為一組,只需要在 Group 中使用v-model綁定Array類型的變量即可。--></el-tab-pane><!-- 上傳圖片 upload組件 --><el-tab-pane label="商品圖片" name="4"><el-form-item label-width="auto"><el-uploadaction="http://47.105.184.7:8888/api/private/v1/upload":headers="header":on-preview="handlePreview":on-remove="handleRemove":on-success="handleSuccess":file-list="fileList"list-type="picture"><el-button size="small" type="primary">點擊上傳</el-button><div slot="tip" class="el-upload__tip">只能上傳jpg/png文件,且不超過500kb</div></el-upload></el-form-item></el-tab-pane><el-tab-pane label="商品內容" name="5"><el-form-item label-width="auto"><el-button type="primary" size="small" @click="addGoods">添加商品</el-button><!-- 富文本編輯器 vue-quill-editor --><quill-editor v-model="form.goods_introduce"></quill-editor></el-form-item></el-tab-pane></el-tabs></el-form>4.3.3 el-upload上傳圖片
<el-tab-pane label="商品圖片" name="4"><el-form-item label-width="auto"><el-uploadaction="http://47.105.184.7:8888/api/private/v1/upload":headers="header":on-preview="handlePreview":on-remove="handleRemove":on-success="handleSuccess":file-list="fileList"list-type="picture"><el-button size="small" type="primary">點擊上傳</el-button><div slot="tip" class="el-upload__tip">只能上傳jpg/png文件,且不超過500kb</div></el-upload></el-form-item> </el-tab-pane>5.Dialog 對話框 - 彈框
<el-dialogtitle="提示":visible.sync="dialogVisible"width="30%":before-close="handleClose"><span>這是一段信息</span><span slot="footer" class="dialog-footer"><el-button @click="dialogVisible = false">取 消</el-button><el-button type="primary" @click="dialogVisible = false">確 定</el-button></span> </el-dialog>6.導入
6.1 自定義組件 - 面包屑
myBread.vue
<template><!-- 面包屑 --><el-breadcrumb separator-class="el-icon-arrow-right" class="mybreadcrumb"><el-breadcrumb-item :to="{ path: '/' }">首頁</el-breadcrumb-item><el-breadcrumb-item>{{level1}}</el-breadcrumb-item><el-breadcrumb-item>{{level2}}</el-breadcrumb-item></el-breadcrumb> </template> <script> export default {props: ['level1', 'level2'],name: 'my-bread' } </script> <style scoped> .mybreadcrumb {margin-bottom: 15px; } </style>main.js
import myBread from '@/components/cuscom/myBread.vue' Vue.component(myBread.name, myBread)6.2 富文本編輯器
npm上搜 vue-quill-editor
npm install vue-quill-editor --savehtml:
<quill-editor v-model="form.goods_introduce"></quill-editor>js:(按需)局部注冊組件
mount with component // require styles import 'quill/dist/quill.core.css' import 'quill/dist/quill.snow.css' import 'quill/dist/quill.bubble.css'import { quillEditor } from 'vue-quill-editor'export default {components: {quillEditor} }6.3 非element-UI的樹形結構
npm搜索element-tree-grid
npm install element-tree-grid --savehtml:
適用于< el-table>,可以直接像< el-table-column>一樣使用
js:
var ElTreeGrid = require('element-tree-grid') export default {// 局部注冊 組件名<el-tree-grid>components: {ElTreeGrid} }6.4 城市數據
html:
<el-cascader :options="citydata" > </el-cascader>js:
import cityData from '@/assets/city_data2017_element.js' export default {data () {return {citydata: []}}6.5 數據報表echarts
echarts文檔
6.5.1 安裝
npm install echarts --save6.5.2 引入 ECharts
html:
<!-- 為echart準備一個div容器 --> <div id="main" style="width: 600px;height:400px;"></div>js:
var echarts = require('echarts') export default {data () {return {}},methods: {async useEchart () {// initvar myChart = echarts.init(document.getElementById('main'))const res = await this.$http.get(`reports/type/1`)// legend:// data: (5) ["華東", "華南", "華北", "西部", "其他"]// __proto__: Object// series: (5) [{…}, {…}, {…}, {…}, {…}]// xAxis: [{…}]// yAxis: [{…}]let option1 = {title: {text: '用戶來源'},tooltip: {trigger: 'axis',axisPointer: {type: 'cross',label: {backgroundColor: '#E9EEF3'}}},toolbox: {feature: {saveAsImage: {}}},grid: {left: '3%',right: '4%',bottom: '3%',containLabel: true}}console.log('數據報表', res)let option2 = res.data.datalet option = {...option1, ...option2}console.log(option)// setOptionmyChart.setOption(option)}},mounted () {// 這里操作元素this.useEchart()} }總結
以上是生活随笔為你收集整理的vue项目中所使用的element-UI / echarts的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 复制字符串,Cocos2
- 下一篇: java标书_java软件项目投标技术标