本文主要是介绍buildadmin:表格中实现详情按钮,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
其一:创建组件并在当前控制器中引入组件
<!-- 示例核心代码(1/3) -->
<!-- 详情组件在此处使用,但显示与否的判断是写在组件内的 -->
<Detail /><!-- 引入组件 -->
import Detail from './detail.vue'
其二:注册按钮
const optButtons: OptButton[] = defaultOptButtons(['edit', 'delete'])
放在此处之后
/*** 示例核心代码(2/3)* 表格操作按钮组 optButtons 只是个普通的数组,此处向其 push 一个 OptButton*/
optButtons.push({render: 'tipButton',// name 是任意的name: 'detail',// title 是语言翻译 keytitle: 'treetable.detailBtnTitle',text: '',type: 'warning',icon: 'fa fa-search-plus icon',click(row, field) {console.info('%c-------详情按钮被点击了--------', 'color:blue')console.log('接受到行数据和列数据', row, field)console.log('%c赋值:baTable.table.extend!.showInfo = true', 'color:red')// 在 extend 上自定义一个变量标记详情弹窗显示状态,详情组件内以此判断显示即可!baTable.table.extend!.showInfo = true// 您也可以使用 baTable.form.operate,默认情况它有三个值`Add、Edit、空字符串`,前两个值将显示添加和编辑弹窗// 您也可以再来个 loading 态,然后请求详情数据等baTable.table.extend!.infoLoading = truesetTimeout(() => {baTable.table.extend!.infoData = rowbaTable.table.extend!.infoLoading = false}, 1000)},
})
其三:详情组件代码
<!-- 示例核心代码(3/3) -->
<script setup lang="ts">
import { inject } from 'vue'
import { timeFormat } from '/@/utils/common'
import type baTableClass from '/@/utils/baTable'const baTable = inject('baTable') as baTableClass
</script><template><el-dialog class="ba-operate-dialog" v-model="baTable.table.extend!.showInfo" width="50%"><template #header><div class="title" v-drag="['.ba-operate-dialog', '.el-dialog__header']" v-zoom="'.ba-operate-dialog'">详情</div></template><div v-loading="baTable.table.extend!.infoLoading" class="info-box ba-markdown"><div v-if="baTable.table.extend!.infoData">
<!-- <div><code>baTable.table.extend!.showInfo == true</code>时,本弹窗就显示了,它是在按钮被点击时赋值的</div>--><div class="mt-40">id:{{ baTable.table.extend!.infoData.id }}</div><div>父级ID:{{ baTable.table.extend!.infoData.pid }}</div><div>上下级:{{ baTable.table.extend!.infoData.name}}</div><div>创建时间:{{ timeFormat(baTable.table.extend!.infoData.create_time) }}</div></div></div></el-dialog>
</template><style scoped lang="scss">
.info-box {margin-top: 60px;div {width: 100%;text-align: center;}.mt-40 {margin-top: 40px;}
}
</style>
这篇关于buildadmin:表格中实现详情按钮的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!