上班写的文章,只能这样了
<template>
<div>
<el-form :model="info" ref="forms">
<el-table
ref="multipleTableRef"
:data="info.data"
style="width: 100%"
@row-click="rowClickHandle"
border
>
<el-table-column align="center" property="name" label="*姓名">
<template #default="scope">
<template v-if="isEdit && currentRow == scope.row.id">
<el-form-item :prop="'data.' + scope.$index + '.name'" :rules="formRules.name">
<el-input placeholder="请输入姓名" v-model="info.data[scope.$index].name" />
</el-form-item>
</template>
<template v-else>
<div>
{{ scope.row.name }}
</div>
</template>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</template>
<script setup lang="ts">
import type { FormInstance } from 'element-plus'
let info: any = reactive({
data: [
{
id: 0,
name: '小刘',
role: '0',
sex: '1',
card_type: '2',
card_id: '12345678912345678',
phone: '12345678912',
validity: ['2023-11-23', '2023-12-23'],
remark: '备注'
}
]
})
const formRules = reactive({
name: [{ required: true, message: '请输入姓名', trigger: 'change' }],
sex: [{ required: true, message: '请选择性别', trigger: 'blur' }],
role: [{ required: true, message: '请选择', trigger: 'blur' }]
})
const isEdit = ref(false)
const currentRow = ref(0)
const rowClickHandle = (row) => {
isEdit.value = true
currentRow.value = row.id
}
const forms = ref<FormInstance>()
const finishEdit = () => {
if (!forms) return
forms.value?.validate((valid) => {
if (valid) {
console.log('submit!')
isEdit.value = false
} else {
console.log('error submit!')
return false
}
})
}
有问题再说把。。。