Ant Design Vue
radio&&radioGroup
- radioGroup
<template>
<div>
<!-- 單選 -->
<a-radio :value="isTrue" @change="change1">確定</a-radio><br />
<!-- 單選組 -->
<a-radio-group
name="radioGroup"
:default-value="1"
@change="change"
:options="options"
>
<a-radio v-for="(item, index) in options" :key="index" :value="value">
</a-radio>
</a-radio-group>
</div>
</template>
<script>
import options from './options.json'
// const options=[
// {
// "label": "是",
// "value": 1
// },
// {
// "label": "否",
// "value": 2
// },
// {
// "label": "是也不是",
// "value": 3
// }
// ]
export default {
data () {
return {
options: options,
value: '',
isTrue: 1
}
},
methods: {
change1 (e) {
window.console.log(e)
window.console.log(this.isTrue === e.target.value)
},
change (e) {
window.console.log(e)
console.log(e.target.value)
this.value = 'aaaa'
window.console.log(this.value)
}
}
}
</script>
<style></style>
- 匯入json(json中的欄位需用雙引號)
import options from './options.json'
table
<template>
<div>
<a-button type="primary" @click="add">
新增
</a-button>
<a-button @click="del">
刪除
</a-button>
<a-table
v-if="bol"
:columns="columns"
:data-source="data"
bordered
:pagination="false"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange
}"
>
<span slot-scope="text" slot="age">
{{ text > 18 ? '成年' : '未成年' }}
</span>
<span slot="action" slot-scope="text, record">
<a @click="edit(record)">編輯</a>
<a-popconfirm title="確認刪除?" @confirm="() => sysAppDelete(text)">
<a>刪除</a>
</a-popconfirm>
</span>
</a-table>
</div>
</template>
<script>
// columns陣列中的每個物件的屬性dataIndex對應:data-source陣列中物件的屬性名就可以實現渲染
const data = []
for (let i = 1; i < 4; i++) {
data.push({
key: i,
name: `小明${i}`,
age: 32,
gender: 1,
tel: '0571-22098909',
address: 'New York No. 1 Lake Park'
})
}
export default {
data () {
return {
columns: [
{
title: '姓名',
align: 'center',
dataIndex: 'name'
},
{
title: '是否成年',
align: 'center',
dataIndex: 'age',
scopedSlots: { customRender: 'age' }
},
{
title: '電話',
align: 'center',
dataIndex: 'tel'
},
{
title: '地址',
align: 'center',
dataIndex: 'address'
},
{
title: '性別',
align: 'center',
dataIndex: 'gender',
customRender: text => {
if (text == 1) {
// 前4行資料以a標籤的形式被渲染
return <span>男</span>
}
}
},
{
title: '操作',
align: 'center',
scopedSlots: { customRender: 'action' }
}
],
data,
selectedRowKeys: [],
bol: true
}
},
methods: {
onSelectChange (selectedRowKeys, selectedRows) {
window.console.log(selectedRowKeys) //選中行的key
window.console.log(selectedRows) //整行資料
this.selectedRowKeys = selectedRowKeys
},
statusFilter (status) {
window.console.log(status)
},
// 增加
add () {
this.data[3] = {
key: 3,
name: '小明4',
age: 32,
gender: 2,
tel: '0571-22098909',
address: 'New York No. 1 Lake Park'
}
this.bol = false
this.$nextTick(() => {
this.bol = true
})
window.console.log(this.data)
},
// 批量刪除
del () {
},
//編輯
edit (record) {
window.console.log(record)
},
// 刪除
sysAppDelete (text) {
window.console.log(text)
}
}
}
</script>
<style></style>
- columns陣列中的每個物件的屬性
dataIndex
對應:data-source陣列中物件的屬性名
就可以實現渲染 - 行選擇
- :row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange
}" - selectedRowKeys :選中行的key放在這個陣列中
- onChange:選中項發生變化時觸發(通過this.selectedRowKeys = selectedRowKeys將key新增到selectedRowKeys)
- :row-selection="{
- 插槽
- customRender函式形式
- scopedSlots物件
- text:當前行的值,
- record:當前行資料
html結構-------------------------
<span slot="action" slot-scope="text, record">
<a @click="edit(record)">編輯</a>
<a-popconfirm title="確認刪除?" @confirm="() => sysAppDelete(text)">
<a>刪除</a>
</a-popconfirm>
</span>
js-------------------------------
scopedSlots: { customRender: 'action' }
modal
<template>
<div class="add">
<a-modal v-model="visible" :width="900">
<div slot="title" class="title">
增加
</div>
<div slot="footer" class="footer">
<a-button @click="cancel">取消</a-button>
<a-button @click="sumit">確定</a-button>
</div>
<p>Bla bla ...</p>
<p>Bla bla ...</p>
<p>Bla bla ...</p>
</a-modal>
</div>
</template>
<script>
export default {
data () {
return {
visible: true
}
},
methods: {
cancel () {
this.visible = false
window.console.log('點選了取消')
},
sumit () {
this.visible = false
window.console.log('點選了確定')
}
}
}
</script>
<style>
.title {
text-align: center;
}
.footer {
text-align: center;
}
</style>
- 通過
slot
可以重寫title
和footer
- width控制對話方塊的寬度
相關文章
- ant-design-vueVue
- Ant Design Vue專案解析-前言Vue
- Vue+Ant Design實現CRUDVue
- vue使用ant design vue(upload)檔案上傳Vue
- vue3+Ant Design Vue整合MarkDone編輯框Vue
- Ant Design Vue 的 table 隱藏特定列Vue
- Ant Design Vue 的 slots 是幹嘛的?Vue
- ant-design-vue元件庫原始碼分析Vue元件原始碼
- Element Plus 和 Ant Design Vue哪個好Vue
- Ant Design 官方《Ant Design 實戰教程》釋出
- 官宣!vue.ant.design 低調上線Vue
- Ant Design Vue 表單元件未提及的方法Vue元件
- 使用 Vue + Ant Design UI 元件展示足球比賽資料VueUI元件
- 全網最硬核的Ant-Design-Vue從Vue-cli遷移至ViteVueVite
- 又雙叒叕一個Ant Design的Vue輪子(vue-antd-ui)VueUI
- 使用Vue+Django+Ant Design做一個留言評論模組VueDjango
- 喜大普奔,Ant Design of Vue 1.0版本釋出???Vue
- Vue3: 如何以 Vite 建立,以 Vue Router, Vuex, Ant Design 開始應用VueVite
- Vue3實戰系列:結合 Ant-Design-of-Vue 實踐 Composition APIVueAPI
- Ant Design Amiya 釋出啦~???
- ant design pro入門(2)
- 【譯】Ant Design 3.0 駕到
- ant-design按需載入
- Ant-Design-Vue 自定義上傳和圖片預覽功能Vue
- 基於Ant Design Vue封裝一個表單控制元件Vue封裝控制元件
- Ant Design 4.0 正式版初探
- Ant design的Notification原始碼分析原始碼
- Ant Design的爬坑之路(一)
- Ant Design 元件 —— Form表單(一)元件ORM
- 基於vue.ant.design的單檔案方式遞迴生成選單Vue遞迴
- ant-design-vue antd-theme-webpack-plugin 動態改變主題VueWebPlugin
- Vue 折騰記 - (17) 基於Ant Design Vue 封裝一個配置式的表單元件Vue封裝元件
- React降級配置及Ant Design配置React
- Ant-design dropdown 原始碼學習原始碼
- 閱讀ant-design原始碼_Button原始碼
- Ant Design 3.X 主題修改
- Ant-design-vue 專案實戰筆記 (後繼將繼續補充)Vue筆記
- Ant Design Vue Tree 選中子節點同時半選中父級節點Vue