zb-admin/src/views/table/edit.vue

175 lines
4.2 KiB
Vue
Raw Normal View History

2022-04-26 07:32:51 +00:00
<template>
2022-06-10 03:01:39 +00:00
<u-container-layout>
2022-04-28 09:52:42 +00:00
<div>
<div style="display: flex; justify-content: flex-end">
2022-04-29 09:42:36 +00:00
<el-radio-group v-model="radio">
<el-radio label="top">添加到顶部</el-radio>
<el-radio label="bottom">添加到底部</el-radio>
<el-radio label="hide">隐藏</el-radio>
</el-radio-group>
</div>
<el-divider />
2022-04-28 09:52:42 +00:00
<edit-table
:mode="radio"
:columns="column"
:data="list"
@add="add"
ref="table"
:editableKeys="editableKeys"
@onChange="onChange"
@del="deleteAction"
2022-04-28 09:52:42 +00:00
/>
<div style="margin-top: 20px">
<el-button @click="reset">重置</el-button>
2022-04-28 09:52:42 +00:00
<el-button type="primary" @click="config">提交</el-button>
</div>
</div>
2022-06-10 03:01:39 +00:00
</u-container-layout>
2022-04-26 07:32:51 +00:00
</template>
<script lang="ts" setup>
2022-04-26 10:02:38 +00:00
import EditTable from './components/edit.vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { ref } from 'vue'
2022-04-28 09:52:42 +00:00
const table = ref()
2022-04-26 10:02:38 +00:00
const column = [
{ name: 'title', label: '活动名称', width: 160 },
{
name: 'state',
2022-04-26 10:02:38 +00:00
label: '状态',
options: [
{
value: -1,
label: '全部',
},
2022-04-26 10:02:38 +00:00
{
value: 1,
label: '未解决',
2022-04-26 10:02:38 +00:00
},
{
value: 0,
label: '已解决',
},
],
valueType: 'select',
2022-04-26 10:02:38 +00:00
},
{
name: 'decs',
label: '描述',
valueType: 'input',
2022-04-26 10:02:38 +00:00
},
{
name: 'created_at',
label: '活动时间',
valueType: 'date',
2022-04-26 10:02:38 +00:00
},
]
2022-04-26 07:32:51 +00:00
2022-04-26 10:02:38 +00:00
let data = [
{
2022-05-20 08:39:50 +00:00
id: 6247418504,
2022-04-26 10:02:38 +00:00
title: '活动名称一',
readonly: '活动名称一',
decs: '这个活动真好玩',
state: 1,
created_at: '2020-05-26T09:42:56Z',
update_at: '2020-05-26T09:42:56Z',
},
{
2022-05-20 08:39:50 +00:00
id: 6246921229,
2022-04-26 10:02:38 +00:00
title: '活动名称二',
readonly: '活动名称二',
decs: '这个活动真好玩',
state: 0,
created_at: '2020-05-27T08:19:22Z',
update_at: '2020-05-27T08:19:22Z',
},
2022-04-29 09:42:36 +00:00
{
2022-05-20 08:39:50 +00:00
id: 6242991229,
2022-04-29 09:42:36 +00:00
title: '活动名称三',
readonly: '活动名称三',
decs: '这个活动真好玩',
state: 1,
created_at: '2020-05-27T08:19:22Z',
update_at: '2020-05-27T08:19:22Z',
},
{
2022-05-20 08:39:50 +00:00
id: 6242981229,
2022-04-29 09:42:36 +00:00
title: '活动名称四',
readonly: '活动名称四',
decs: '这个活动真好玩',
state: 1,
created_at: '2020-05-27T08:19:22Z',
update_at: '2020-05-27T08:19:22Z',
},
{
2022-05-20 08:39:50 +00:00
id: 62429122229,
2022-04-29 09:42:36 +00:00
title: '活动名称五',
readonly: '活动名称五',
decs: '这个活动真好玩',
state: 1,
created_at: '2020-05-27T08:19:22Z',
update_at: '2020-05-27T08:19:22Z',
},
{
2022-05-20 08:39:50 +00:00
id: 62423391229,
2022-04-29 09:42:36 +00:00
title: '活动名称六',
readonly: '活动名称六',
decs: '这个活动真好玩',
state: 1,
created_at: '2020-05-27T08:19:22Z',
update_at: '2020-05-27T08:19:22Z',
},
{
2022-05-20 08:39:50 +00:00
id: 623291229,
2022-04-29 09:42:36 +00:00
title: '活动名称七',
readonly: '活动名称五',
decs: '这个活动真好玩',
state: 1,
created_at: '2020-05-27T08:19:22Z',
update_at: '2020-05-27T08:19:22Z',
},
{
2022-05-20 08:39:50 +00:00
id: 624291219,
2022-04-29 09:42:36 +00:00
title: '活动名称八',
readonly: '活动名称六',
decs: '这个活动真好玩',
state: 1,
created_at: '2020-05-27T08:19:22Z',
update_at: '2020-05-27T08:19:22Z',
},
2022-04-26 10:02:38 +00:00
]
let arrKeys = data
.map((item) => item.id)
.filter((item) => ![6247418504, 6246921229].includes(item))
2022-04-29 09:42:36 +00:00
const radio = ref('bottom')
2022-04-26 10:02:38 +00:00
const list = ref(data)
2022-04-29 09:42:36 +00:00
let editableKeys = ref(arrKeys)
2022-04-28 09:52:42 +00:00
const dataSource = ref(data)
const deleteAction = (row) => {
console.log('删除', row)
2022-04-28 09:52:42 +00:00
ElMessage.success('点击删除')
2022-04-26 10:02:38 +00:00
}
const onChange = (val) => {
2022-04-28 09:52:42 +00:00
dataSource.value = val
}
const add = (row) => {}
const reset = (val) => {
2022-04-28 09:52:42 +00:00
ElMessage.success('重置成功')
table.value.reset()
}
2022-04-26 10:02:38 +00:00
const config = () => {
2022-04-28 09:52:42 +00:00
list.value = dataSource.value
console.log('点击提交=========', dataSource.value)
2022-04-28 09:52:42 +00:00
ElMessage.success('点击提交数据')
2022-04-26 10:02:38 +00:00
}
2022-04-26 07:32:51 +00:00
</script>
2022-04-29 09:42:36 +00:00
<style lang="scss" scoped>
::v-deep(.el-divider--horizontal) {
margin: 10px 0;
}
2022-04-26 07:32:51 +00:00
</style>