mjz update

This commit is contained in:
mjz
2023-06-18 13:41:09 +08:00
parent 0533aa0ebf
commit 1fdc7f8831
87 changed files with 2130 additions and 213 deletions
@@ -10,8 +10,11 @@ article: false
## 宫格列表
1. 宫格列表就是列表结合 grid 布局设计出的样式
2. 通过 `col-1|...` 可以设置每行的个数,取值 1~5,默认有边框,可以加类名 `no-border` 去除边框
3. `cu-item` 里就是图标加文字,图标可以设置数字角标
4. 可以在通过遍历循环的变量设置对应的图标、名称等
> 演示代码
@@ -42,8 +45,11 @@ return {
## 菜单列表
1. 菜单列表就是列表加上类名 `menu` 设计出的样式
2. 加上 class 类名 `sm-border` 设置每一行的短边框
3. 加上 class 类名 `card-menu` 将列表设置成卡片样式
4. 加上 class 类名 `arrow` 在列表子元素上添加arrow设置箭头
> 演示代码
@@ -172,8 +178,11 @@ SwitchSex(e) {
## 消息列表
1. 菜单列表就是列表加上类名 `menu-avatar` 设计出的样式
2. `cu-item` 里其实就 `cu-avatar``content` 两块内容
3. `cu-avatar` 是左侧头像,加上 `round lg` 即可,同时可以是方形、圆形、右上角加上数字标签
4. `content` 是右侧内容,基本可以完全自定义
> 演示代码,可直接复制使用
@@ -276,7 +285,9 @@ SwitchSex(e) {
:::
1. 基于消息列表
2. 用户开始触摸时,获取触摸点到盒子左侧的距离,根据触摸结束时的距离与开始距离作比较,判断出用户滑动的方向,如果是左滑,则添加类名 `move-cur`,就是将该项左移 **260upx**,右滑则回到原位不变。
3. 除了置顶、删除,还可以自定义其它的,不过得注意计算左移的宽度
> 演示代码
@@ -10,8 +10,11 @@ article: false
## 案例类卡片
1. `cu-card``case` 结合,在配合子元素的 `cu-item` 类名,写出案例类的样式
2. 内部其他样式可以根据其他类名自行设置,`cu-item` 自带 `margin:30px`,可以通过类名 `no-card` 去除
3. 卡片上面是图片展示,右上角是标签,文字悬浮于图片上
4. 卡片下面就是一个消息列表
```html
@@ -46,8 +49,11 @@ article: false
## 动态类卡片
1. 该样式类似于 QQ 动态,由 `cu-card``dynamic` 结合,再配合子元素 `cu-item` 编写而成
2. 动态下方的评论需要添加类名 `comment`
3. 内部其他样式可以根据其他类名自行设置,`cu-item` 自带 `margin:30px`,可以通过类名 `no-card` 去除
4. **动态图片内容**,官网给出两种样式,第一就是等高 `grid` 宫格图片,第二就是一张图片
```html
@@ -110,7 +116,9 @@ article: false
## 文章类卡片
1. 该卡片由 `cu-card``article` 结合,再配合子元素 `cu-item`
2. `cu-item` 自带 `margin:30px`,可以通过类名 `no-card` 去除
3. 卡片里面内容分为 `title``content`,两个内容皆可自定义
+10 -2
View File
@@ -5,13 +5,14 @@ permalink: /pages/component/form
article: false
---
<!-- form表单是用form标签包裹,每一个子元素添加类名cu-form-group,行内自定义,title类名用于设置每行的文字说明,如果想统一宽度,像示例一样,需要自定义宽度 -->
## input输入框
1. `form` 表单最外层是用 `form` 标签包裹
2. 每一个子元素添加类名 `cu-form-group`,行内可以自定义,`input` 标签就是输入框
3. `title` 类名用于设置每行的文字说明,如果想统一宽度,像示例一样,需要自定义宽度
4. **行内没有 `input` 标签的话,`title` 后面的元素定位在行内右侧,有 `input` 标签的话,标签后的元素也是在行内右侧**
```html
@@ -58,6 +59,7 @@ article: false
## picker选择器
1. 对于表单中从底部谈起的选择器,写法与上述简单的input相同,而选择器picker的使用,建议查看官方代码
2. 后期会封装一个组件给大家用(暂无)
```html
@@ -254,6 +256,7 @@ RegionChange(e) {
## switch开关
1. 对于开关的样式,参考 `switch` 官方文档
2. 在微信小程序上,switch的color属性不生效,想要更改开关颜色,可以用颜色类名,直接写颜色就可以
```html
@@ -310,7 +313,9 @@ SwitchD(e) {
## radio单选框
1. 主要还是 `radio` 官方文档为主
2. 更改颜色同上,使用提供的颜色类名即可
3. 其默认样式是圆形全色中间有个√,可以通过类名radio更改形状为镂空中间一个点
```html
@@ -351,7 +356,9 @@ RadioChange(e) {
## checkbox复选框
1. 官方示例
2. 更改颜色同上,使用提供的颜色类名即可
3. 其默认样式是方形,可以通过类名 `round` 更改形状为圆形
```html
@@ -409,6 +416,7 @@ CheckboxChange(e) {
## 图片上传
1. 官方示例
2. `uniapp` [图片相关操作的API](https://uniapp.dcloud.net.cn/api/media/image.html#)
```vue
@@ -8,6 +8,7 @@ article: false
## 默认时间轴
1. 时间轴默认结构如下代码,对应右侧预览图第一个6-17时间轴的样式
2.`cu-timeline` 包裹 `cu-time``cu-item`,在 `item` 内编写内容,由 `content` 包裹
```html
@@ -24,6 +25,7 @@ article: false
## 彩色时间轴
1. 与默认的基本格式相同,只是自定义了内容框颜色和图标
2. 对应右侧彩色时间轴
```html
@@ -10,10 +10,15 @@ article: false
## 基本样式
1. 聊天的外部大框架是 `cu-chat`
2. `cu-item` 包裹某人的聊天信息
3. `self` 表示右侧自己的聊天样式
4. `main` 包含聊天内容
5. `date` 表示消息时间
6. `cu-info` 表示提示词
```html
@@ -50,7 +55,9 @@ article: false
## 其他聊天内容
1. 聊天内容除了语句,还有图片,语音消息,地理位置消息等
2. `main` 包含的聊天内容不止是消息框里的,还有消息框旁边的提示图标文字等
3. 消息框里的内容由 `content` 包裹
```html
+16 -1
View File
@@ -8,6 +8,7 @@ article: false
## 全屏限高轮播
1. 添加类名 `screen-swiper`,宽度为全屏,高度自定义
2. 请直接参考 `swiper` [官方文档](https://uniapp.dcloud.net.cn/component/swiper.html#),可以通过类名 `square-dot``round-dot` 定义小圆点样式
```vue
@@ -54,7 +55,9 @@ article: false
## 卡片式轮播
1.`swiper` 标签上添加类名 `card-swiper`
2.`swiper-item` 标签内的子元素上添加类名 `swiper-item`
3. 示例中 `cardSwiper` 函数的主要作用是切换类名 `cur``cur` 的作用是实现轮播图片中间大,两边小的效果,就是 `transform的scale()`
```vue
@@ -195,4 +198,16 @@ cardSwiper(e) {
z-index: var(--index);
}
</style>
```
```
## 轮播图相关class
|class| 说明| 可选值|
|--| --| --|
|screen-swiper| 全屏限高轮播| ——|
|square-dot| 方形指示点| ——|
|round-dot| 圆形指示点| ——|
|card-swiper| 卡片式轮播| ——|
|swiper-item| 滑动切换区域(具体看示例) |——|
|tower-swiper| 堆叠式轮播 |——|
|tower-item| 堆叠式轮播子元素| ——|
+236 -5
View File
@@ -5,10 +5,241 @@ permalink: /pages/component/modal
article: false
---
## 操作条
::: details 点此查看页面源代码
页面位置:`/pages/component/modal`
```vue
1. `cu-modal``cu-dialog` 为模态框必选值,所有模态框的大体框架都是 `cu-modal` 包裹 `cu-dialog`
2. `cu-dialog` 内部填充操作部分和信息展示部分,操作部分可以用 `cu-bar` 操作条来布局,信息展示就直接写
3. 弹框的显示隐藏是通过添加或移除类名 `show` 来实现的,示例中隐藏弹框是绑定 `tap` 调用 `hideModal` 事件,`hideModal` 函数内执行的语句就是将变量 `modalName` 赋值为 `null`,从而移除类名 `show`,你想让用户点击哪里隐藏弹框,就可以把 `hideModal` 事件绑定在哪里(比如设置点击遮罩层隐藏弹框,就把 `hideModal` 事件绑定在有类名 `cu-modal` 的标签上)
## 普通窗口
1. 就是 `cu-modal` 包裹 `cu-dialog`,只做信息的展示,没有交互效果
```html
<view class="cu-modal" :class="modalName=='Modal'?'show':''">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end">
<view class="content">Modal标题</view>
<view class="action" @tap="hideModal">
<text class="cuIcon-close text-red"></text>
</view>
</view>
<view class="padding-xl">
Modal 内容。
</view>
</view>
</view>
```
:::
## 底部窗口
1. `cu-modal` 结合 `bottom-modal` 实现底部弹窗
```html
<view class="cu-modal bottom-modal" :class="modalName=='bottomModal'?'show':''">
<view class="cu-dialog">
<view class="cu-bar bg-white">
<view class="action text-green">确定</view>
<view class="action text-blue" @tap="hideModal">取消</view>
</view>
<view class="padding-xl">
Modal 内容。
</view>
</view>
</view>
```
## 对话窗口
1. 对话窗口相较于普通窗口底部多了一些用户交互的操作
```html
//示例一
<view class="cu-modal" :class="modalName=='DialogModal1'?'show':''">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end">
<view class="content">Modal标题</view>
<view class="action" @tap="hideModal">
<text class="cuIcon-close text-red"></text>
</view>
</view>
<view class="padding-xl">
Modal 内容。
</view>
<view class="cu-bar bg-white justify-end">
<view class="action">
<button class="cu-btn line-green text-green" @tap="hideModal">取消</button>
<button class="cu-btn bg-green margin-left" @tap="hideModal">确定</button>
</view>
</view>
</view>
</view>
//示例二
<view class="cu-modal" :class="modalName=='DialogModal2'?'show':''">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end">
<view class="content">Modal标题</view>
<view class="action" @tap="hideModal">
<text class="cuIcon-close text-red"></text>
</view>
</view>
<view class="padding-xl">
Modal 内容。
</view>
<view class="cu-bar bg-white">
<view class="action margin-0 flex-sub text-green " @tap="hideModal">
<text class="cuIcon-moneybag"></text>微信支付</view>
<view class="action margin-0 flex-sub text-green solid-left" @tap="hideModal">取消</view>
<view class="action margin-0 flex-sub solid-left" @tap="hideModal">确定</view>
</view>
</view>
</view>
```
## 图片窗口
1. `cu-dialog` 里放置图片,也可自定义
```html
<view class="cu-modal" :class="modalName=='Image'?'show':''">
<view class="cu-dialog">
<view class="bg-img" style="background-image: url('https://ossweb-img.qq.com/images/lol/web201310/skin/big91012.jpg');height:200px;">
<view class="cu-bar justify-end text-white">
<view class="action" @tap="hideModal">
<text class="cuIcon-close "></text>
</view>
</view>
</view>
<view class="cu-bar bg-white">
<view class="action margin-0 flex-sub solid-left" @tap="hideModal">我知道了</view>
</view>
</view>
</view>
```
## 单选窗口
1. 就是普通窗口内部结合 `radio` 标签编写的
```html
<view class="cu-modal" :class="modalName=='RadioModal'?'show':''" @tap="hideModal">
<view class="cu-dialog" @tap.stop="">
<radio-group class="block" @change="RadioChange">
<view class="cu-list menu text-left">
<view class="cu-item" v-for="(item,index) in 5" :key="index">
<label class="flex justify-between align-center flex-sub">
<view class="flex-sub">Item {{index +1}}</view>
<radio class="round" :class="radio=='radio' + index?'checked':''" :checked="radio=='radio' + index?true:false"
:value="'radio' + index"></radio>
</label>
</view>
</view>
</radio-group>
</view>
</view>
```
## 多选窗口
1. 配合 `grid` 布局自定义的
```vue
<view class="cu-modal bottom-modal" :class="modalName=='ChooseModal'?'show':''" @tap="hideModal">
<view class="cu-dialog" @tap.stop="">
<view class="cu-bar bg-white">
<view class="action text-blue" @tap="hideModal">取消</view>
<view class="action text-green" @tap="hideModal">确定</view>
</view>
<view class="grid col-3 padding-sm">
<view v-for="(item,index) in checkbox" class="padding-xs" :key="index">
<button class="cu-btn orange lg block" :class="item.checked?'bg-orange':'line-orange'" @tap="ChooseCheckbox"
:data-value="item.value"> {{item.name}}
<view class="cu-tag sm round" :class="item.checked?'bg-white text-orange':'bg-orange'" v-if="item.hot">HOT</view>
</button>
</view>
</view>
</view>
</view>
<script>
export default {
data() {
return {
modalName: null,
checkbox: [{value: 0,name: '10元',checked: false,hot: false,},
{value: 1,name: '20元',checked: true,hot: false,},
{value: 2,name: '30元',checked: true,hot: true,},
{value: 3,name: '60元',checked: false,hot: true,},
{value: 4,name: '80元',checked: false,hot: false,},
{value: 5,name: '100元',checked: false,hot: false,}
]
};
},
methods: {
showModal(e) {
this.modalName = e.currentTarget.dataset.target
},
hideModal(e) {
this.modalName = null
},
ChooseCheckbox(e) {
let items = this.checkbox;
let values = e.currentTarget.dataset.value;
for (let i = 0, lenI = items.length; i < lenI; ++i) {
if (items[i].value == values) {
items[i].checked = !items[i].checked;
break
}
}
}
}
}
</script>
```
## 侧边抽屉
1. `cu-modal` 结合 `drawer-modal`,由 `justify-start``justify-end`决定抽屉方向
```html
//左侧抽屉
<view class="cu-modal drawer-modal justify-start" :class="modalName=='DrawerModalL'?'show':''" @tap="hideModal">
<view class="cu-dialog basis-lg" @tap.stop="">
<view class="cu-list menu text-left">
<view class="cu-item arrow" v-for="(item,index) in 5" :key="index">
<view class="content">
<view>Item {{index +1}}</view>
</view>
</view>
</view>
</view>
</view>
//右侧抽屉
<view class="cu-modal drawer-modal justify-end" :class="modalName=='DrawerModalR'?'show':''" @tap="hideModal">
<view class="cu-dialog basis-lg" @tap.stop="" >
<view class="cu-list menu text-left">
<view class="cu-item arrow" v-for="(item,index) in 5" :key="index">
<view class="content">
<view>Item {{index +1}}</view>
</view>
</view>
</view>
</view>
</view>
```
## 模态框相关class
|class |说明 |可选值|
|-- |-- |--|
|cu-modal |模态框必选值 |——|
|cu-dialog| 模态框子元素| ——|
|bottom-modal |底部弹框| ——|
|drawer-modal| 侧边弹框| ——|
|show| 显示弹框| ——|
+114 -4
View File
@@ -5,10 +5,120 @@ permalink: /pages/component/steps
article: false
---
## 操作条
`cu-steps` 步骤条必选值
## 基本用法
1. `cu-steps``cu-item` 配合使用
2. 对应右侧基本用法第一个
::: details 点此查看页面源代码
页面位置:`/pages/component/steps`
```vue
<view class="bg-white padding">
<view class="cu-steps">
<view class="cu-item" :class="index>basics?'':'text-red'" v-for="(item,index) in basicsList" :key="index">
<text :class="'cuIcon-' + item.cuIcon"></text> {{item.name}}
</view>
</view>
</view>
<script>
export default {
data() {
return {
basicsList: [{cuIcon: 'usefullfill',name: '开始'},
{cuIcon: 'radioboxfill',name: '等待'},
{cuIcon: 'roundclosefill',name: '错误'},
{cuIcon: 'roundcheckfill',name: '完成'
}],
basics: 0
};
},
methods: {
BasicsSteps() {
this.basics= this.basics == this.basicsList.length - 1 ? 0 : this.basics + 1
}
}
}
</script>
```
:::
1. 步骤条的颜色和图标都可以自定义
2. 对应右侧基本用法第二个
```html
<view class="bg-white padding margin-top-xs">
<view class="cu-steps">
<view class="cu-item" :class="index>basics?'':'text-orange'" v-for="(item,index) in basicsList" :key="index">
<text :class="index>basics?'cuIcon-title':'cuIcon-' + item.cuIcon"></text> {{item.name}}
</view>
</view>
</view>
```
1. 步骤之间的连接默认是横线,也可以通过类名 `steps-arrow` 换成箭头
2. 对应右侧基本用法第三个
```html
<view class="bg-white padding margin-top-xs">
<view class="cu-steps steps-arrow">
<view class="cu-item" :class="index>basics?'':'text-blue'" v-for="(item,index) in basicsList" :key="index">
<text :class="'cuIcon-' + item.cuIcon"></text> {{item.name}}
</view>
</view>
</view>
```
## 数字完成
1. 通过类名 `num` 可以设置默认图标为数字,已完成且正确的图标为勾,已完成但错误的图标由类名 `err` 定义
```html
<view class="bg-white padding">
<view class="cu-steps">
<view class="cu-item" :class="index>num?'':'text-blue'" v-for="(item,index) in numList" :key="index">
<text class="num" :class="index==2?'err':''" :data-index="index + 1"></text> {{item.name}}
</view>
</view>
</view>
```
## 多级显示
1. 多级显示需要配合 `scroll-view` 标签使用 ,并增加类名 `steps-bottom`
```vue
<scroll-view scroll-x class="bg-white padding response cu-steps steps-bottom" :scroll-into-view="'scroll-' + scroll"
scroll-with-animation>
<view class="cu-item padding-lr-xl" :class="index>scroll?'':'text-blue'" v-for="(item,index) in 10" :key="index" :id="'scroll-' + index">
Level {{index + 1}} <text class="num" :data-index="index + 1"></text>
</view>
</scroll-view>
<script>
export default {
data() {
return {
scroll: 0
};
},
methods: {
ScrollSteps() {
this.scroll= this.scroll == 9 ? 0 : this.scroll + 1
}
}
}
</script>
```
## 步骤条相关class
|class |说明| 可选值|
|-- |--| --|
|cu-steps |步骤条必选值| ——|
|cu-item| 步骤条子元素| ——|
|num |数字步骤条未完成图标 |——|
|err| 错误图标| ——|
|steps-arrow |步骤条连接箭头 ——|
|steps-bottom |配合多级步骤条使用(图标在下,文字在上,放在其他步骤条样式会错乱)| ——|