vxe-table在线表格的使用记录

vxe-table v3(在线编辑表格手动触发)

1.npm安装:(Vue2)

npm install xe-utils@3 vxe-table@3

2.全局引入

import Vue from 'vue'
import VXETable from 'vxe-table'
import 'vxe-table/lib/style.css'

Vue.use(VXETable)

3.开始使用:(下面图片的效果中我加了插入新一行、校验;以下所展示的代码并无)

 设置 edit-config={trigger: 'manual', mode: 'row'} 启用行编辑的功能

edit-config为可编辑配置项。其中showIcon:false,取消展示表格每一列的图标;autoClear:false,当用户点击非编辑行列处,对此时所编辑行列无影响。(这一个非常重要,不懂可以自己修改并尝试)

<vxe-table
            border
            resizable
            show-overflow
            ref="xTable"
            :loading="loading"
            :data="tableData"
            :edit-rules="validRules"
            :edit-config="{ trigger: 'manual', mode: 'row',showIcon: false, autoClear: false }"
            :row-config="{ isHover: true }"
            @edit-closed="updateData"
        >
            <vxe-column type="seq" width="100"></vxe-column>
            <vxe-column
                width="100"
                field="fieldName"
                title="字段名称"
                :edit-render="{}"
            >
                <template #edit="{ row }">
                    <vxe-input v-model="row.fieldName" type="text" @blur="getPinyin(row)"></vxe-input>
                </template>
            </vxe-column>
            <vxe-column width="100" field="field_code" title="字段编码" :edit-render="{}">
                <template #edit="{ row }">
                    <vxe-input v-model="row.field_code" type="text"></vxe-input>
                </template>
            </vxe-column>
            <vxe-column
                width="100"
                field="field_type"
                title="字段类型"
                :edit-render="{}"
            >
                <template #default="{ row }">
                    <span>{{ formatType(row.field_type) }}</span>
                </template>
                <template #edit="{ row }">
                    <vxe-select v-model="row.field_type" transfer>
                        <vxe-option
                            v-for="item in typeList"
                            :key="item.value"
                            :value="item.value"
                            :label="item.label"
                        ></vxe-option>
                    </vxe-select>
                </template>
            </vxe-column>
            <vxe-column
                width="100"
                field="field_length"
                title="字段长度"
                :edit-render="{}"
            >
                <template #edit="{ row }">
                    <vxe-input
                        v-model="row.field_length"
                        type="integer"
                        placeholder="请输入字段长度"
                    ></vxe-input>
                </template>
            </vxe-column>
            <vxe-column
                width="100"
                field="fractional_length"
                title="小数位数"
                :edit-render="{}"
            >
                <template #edit="{ row }">
                    <vxe-input
                        v-model="row.fractional_length"
                        type="integer"
                        placeholder="请输入小数位数"
                    ></vxe-input>
                </template>
            </vxe-column>
            <vxe-column
                width="140"
                field="required_sign"
                title="是否必填"
                :edit-render="{}"
            >
                <template #default="{ row }">
                    <span>{{ mandatoryType(row.required_sign) }}</span>
                </template>
                <template #edit="{ row }">
                    <vxe-radio-group v-model="row.required_sign">
                        <vxe-radio
                            v-for="item in mandatoryList"
                            :key="item.value"
                            :label="item.label"
                            :content="item.value"
                        ></vxe-radio>
                    </vxe-radio-group>
                </template>
            </vxe-column>
            <vxe-column
                width="140"
                field="app_sign"
                title="是否在APP显示"
                :edit-render="{}"
            >
                <template #default="{ row }">
                    <span>{{ mandatoryAppType(row.app_sign) }}</span>
                </template>
                <template #edit="{ row }">
                    <vxe-radio-group v-model="row.app_sign">
                        <vxe-radio
                            v-for="item in mandatory_appList"
                            :key="item.value"
                            :label="item.label"
                            :content="item.value"
                        ></vxe-radio>
                    </vxe-radio-group>
                </template>
            </vxe-column>
            <vxe-column
                width="140"
                field="remark"
                title="说明"
                :edit-render="{}"
            >
                <template #edit="{ row }">
                    <vxe-input v-model="row.remark" type="text"></vxe-input>
                </template>
            </vxe-column>
            <vxe-column
                width="140"
                field="dict_id"
                title="关联的字典项"
                :edit-render="{}"
            >
            </vxe-column>
            <vxe-column title="操作" width="200" fixed="right">
                <template #default="{ row }">
                    <template v-if="$refs.xTable.isActiveByRow(row)">
                        <vxe-button @click="saveRowEvent(row)">保存</vxe-button>
                        <vxe-button @click="removeRowEvent(row)"
                            >删除</vxe-button
                        >
                        <vxe-button @click="cancelRowEvent(row)"
                            >取消</vxe-button
                        >
                    </template>
                    <template v-else>
                        <vxe-button @click="editRowEvent(row)">编辑</vxe-button>
                    </template>
                </template>
            </vxe-column>
        </vxe-table>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是设置vxe-table表格透明的方法: ```css .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr:hover:not(.row--disabled) td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--selected td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--actived td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--selected td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--actived td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--selected td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--actived td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--selected.row--actived td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--selected.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--selected.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--actived.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--actived.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--selected td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--actived td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--selected.row--actived td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--selected.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--selected.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--actived.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--actived.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--selected.row--actived td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--selected.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--selected.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--actived.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--actived.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--selected.row--actived.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--selected.row--actived.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--selected.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--selected.row--actived td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--selected.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--selected.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--actived.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--actived.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--selected.row--actived.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--selected.row--actived.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--selected.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--selected.row--actived.row--pending td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--selected.row--actived.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--pending.row--highlight.row--actived td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--selected.row--pending.row--highlight.row--actived td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--selected.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--selected.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--selected.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--selected.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--selected.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--selected.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--selected.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--current.row--checked.row--selected.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr.row--checked.row--selected.row--actived.row--pending.row--highlight td, .vxe-table--striped:not(.vxe-table--border):not(.vxe-table--radius) .vxe-table--body tbody > tr td { background-color: transparent !important; border-color: transparent !important; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值