目的:封装一个高可用tabs组件
大致步骤:
xtx-tabs
组件容器 可以有多个 xtx-tabs-panel
组件面板xtx-tabs-panel
需要暴露 标题 props.label
,名称 props.name
,内容
xtx-tabs
组件组织结构,控制点击事件,标签页激活。铺垫知识:
jsx
语法,需要简单了解其基本使用 https://cn.vuejs.org/v2/guide/render-function.htmlrender () {const name = 'tom'return {name}
}
落的代码:
src/components/library/xtx-tabs.vue
src/components/library/xtx-tabs-panel.vue
src/views/member/order/index.vue
全部订单 待付款 待发货 待收货 待评价 已完成 已取消
组件升级:
src/components/library/xtx-tabs.vue
const panels = this.$slots.default()const dynamicPanels = []
+ panels.forEach(item => {
+ if (item.type.name === 'XtxTabsPanel') {
+ dynamicPanels.push(item)
+ } else {
+ item.children.forEach(com => {
+ dynamicPanels.push(com)
+ })
+ }
+ })// 选项卡const nav = (
src/views/member/order/index.vue
{{item.label}}
src/api/constant.js
订单状态常量数据
// 订单状态
export const orderStatus = [{ name: 'all', label: '全部订单' },{ name: 'unpay', label: '待付款' },{ name: 'deliver', label: '待发货' },{ name: 'receive', label: '待收货' },{ name: 'comment', label: '待评价' },{ name: 'complete', label: '已完成' },{ name: 'cancel', label: '已取消' }
]
目的:完成订单静态布局。
基础样式:
.order-list {background: #fff;padding: 20px;
}
.order-item {margin-bottom: 20px;border: 1px solid #f5f5f5;.head {height: 50px;line-height: 50px;background: #f5f5f5;padding: 0 20px;overflow: hidden;span {margin-right: 20px;&.down-time {margin-right: 0;float: right;i {vertical-align: middle;margin-right: 3px;}b {vertical-align: middle;font-weight: normal;}}}.del {margin-right: 0;float: right;color: #999;}}.body {display: flex;align-items: stretch;.column {border-left: 1px solid #f5f5f5;text-align: center;padding: 20px;> p {padding-top: 10px;}&:first-child {border-left: none;}&.goods {flex: 1;padding: 0;align-self: center;ul {li {border-bottom: 1px solid #f5f5f5;padding: 10px;display: flex;&:last-child {border-bottom: none;}.image {width: 70px;height: 70px;border: 1px solid #f5f5f5;}.info {width: 220px;text-align: left;padding: 0 10px;p {margin-bottom: 5px;&.name {height: 38px;}&.attr {color: #999;font-size: 12px;span {margin-right: 5px;}}}}.price {width: 100px;}.count {width: 80px;}}}}&.state {width: 120px;.green {color: @xtxColor;}}&.amount {width: 200px;.red {color: @priceColor;}}&.action {width: 140px;a {display: block;&:hover {color: @xtxColor;}}}}}
}
基础结构:
上一篇:MES与ERP的系统整合解决方案,ERP和MES开发定制对企业带来的效益
下一篇:FPV Camera(RPI 3B+/Zero W+V2.1) | wfb_ng Release 23.01 | H264硬解测试