1.2.11 • Published 3 months ago

talk2all-base v1.2.11

Weekly downloads
-
License
ISC
Repository
-
Last release
3 months ago

快速上手

talk2all-base 基于 vue3 + ts + Element-plus 再次封装的基础组件

vite4+ ndoe16+

安装 正式版 1.2.10+

npm i talk2all-base -S
&
pnpm add talk2all-base -S

使用

// main.ts
import talk2all from 'talk2all-base';
import 'talk2all-base/lib/style.css';
const app = createApp(App);
app.use(talk2all, {
  proxyKey: '/api',
  pageKey: 'page', // 分页字段
  sizeKey: 'size', // 分页字段
  tokenKey: 'token', // token 存储在localStorage
  ISOK: 200, // 响应成功返回
  ISERROR: 500, // 响应错误状态返回
  codeKey: 'code', // 响应状态返回字段
  msgKey: 'msg', // 响应提示文字返回字段
  /* 分页接口
  data => 表格 数据层级 数据结构 data.data
  total => 总页数 数据层级 数据结构 data.data
  */
  pageResponse: {
    data: 'data', // 返回
    total: 'total',
  },
  /* 详情接口 detailedInterface
  data => 详情 数据层级 数据结构 data.data
  */
  infoResponse: {
    data: 'data', // 返回数据结构 data.data
  },
});
app.mount('#app');

talk2AllBase 组件使用

<script setup lang="tsx">
import { ref, reactive } from 'vue';
import type {
  TableBaseType,
  BaseColumns,
} from 'talk2all-base/lib/tableBase/index';
import type { FormRules } from 'element-plus';

interface addFormVO {
  title: string;
}
const talk2AllBaseRef: any = ref<TableBaseType>();

const columns: BaseColumns[] = reactive<BaseColumns[]>([
  {
    label: '名称',
    prop: 'name',
    align: 'center',
    width: '200px',
  },
  {
    label: '描述',
    prop: 'prompt',
    align: 'left',
  },
  {
    label: '时间',
    prop: 'time',
    width: '180px',
  },
  {
    label: '标题',
    prop: 'title',
    width: '180px',
  },
  {
    label: '操作',
    prop: '',
    width: '100px',
    render: (row: any) => {
      return (
        <div>
          <el-button type="text" onclick={() => edit(row)}>
            编辑
          </el-button>
          <el-button type="text" onclick={() => info(row)}>
            查看
          </el-button>
        </div>
      );
    },
  },
]);

const formInline = ref({
  name: '',
});

const addForm = ref<addFormVO>({
  title: '',
});

const rules = ref<FormRules<addFormVO>>({
  title: { required: true, message: '标题不能为空', trigger: 'blur' },
});

const edit = (row: any) => {
  talk2AllBaseRef.value?.edit(row.id);
};
const info = (row: any) => {
  talk2AllBaseRef.value?.info(row.id);
};
</script>

<template>
  <div class="table-box">
    <talk2-all-base
      ref="talk2AllBaseRef"
      :hasselection="true"
      :has-batch-delete="true"
      :has-add="true"
      :form-inline="formInline"
      :columns="columns"
      :addForm="addForm"
      :rules="rules"
      api-for-page=""
      api-for-save=""
      api-for-info=""
      api-for-put=""
      api-for-delete=""
    >
      <template #searchForm="data">
        <el-form-item label="客户名称" prop="name">
          <el-input v-model="data.formInline.name" placeholder="请输入客户名称">
          </el-input>
        </el-form-item>
      </template>
      <template #addForm="data">
        <el-form-item label="标题" prop="title">
          <el-input
            v-model="data.addForm.title"
            placeholder="请输入标题"
            clearable
          >
          </el-input>
        </el-form-item>
      </template>
    </talk2-all-base>
  </div>
</template>

<style lang="scss" scoped>
.table-box {
  width: 100%;
  height: 600px;
}
</style>

tablebase 组件参数说明

参数说明类型默认值
apiForPage分页查询string
apiForSave新增保存string
apiForDelete删除string
apiForPut修改string
apiForInfo详情string
rowKey表格主键 多层级用到此 idstringid
rowId表格 id 详情删除用到此 idstringid
operationtype表单状态stringadd
autoInit默认查询表格booleantrue
hasAdd新增按钮 是否显示booleantrue
hasBatchDelete批量删除 是否显示booleantrue
hasSearch搜索按钮 是否显示booleantrue
hasClear清空按钮 是否显示booleantrue
hasformInlineBox搜索区域 是否显示booleantrue
haspagination分页 是否显示booleantrue
hasindex序号 是否显示booleantrue
hasselection勾选框 是否显示booleantrue
columns表头数据Array[]
addForm新增数据object{}
rules新增数据校验规则object{}
labelWidth新增数据表单表头宽度sting,number100px
formInline查询数据object{}
pageResponse分页返回数据结构 同上object{}
infoResponse详情返回数据结构object{}
addBeforCallBack新增前回调 返回 false 阻止后续事件Function
editBeforCallBack编辑前回调 返回 false 阻止后续事件Function
infoBeforCallBack查看详情前回调 返回 false 阻止后续事件Function
submitBeforCallBack编辑新增提交前回调 返回 false 阻止后续事件Function

tablebase 事件说明

事件名说明返回
pageCallBack表格数据请求成功返回表格数据
selection-change表格勾选数据返回返回勾选表格数据
submitCallBack新增 编辑完成成功null
infoCallBack详情接口请求成功请求数据详情
resetFields清空按钮回调null
clsoeDialog弹窗关闭回调null
error接口请求失败的回调res(返回数据),type (接口类型)page,info,add,edit,delete

tablebase 方法说明

方法名说明参数返回
search刷新表格 页面重置为 1nullnull
query刷新表格 页面不重置nullnull
add新增方法(打开新增弹窗)nullnull
delete删除列(调用删除接口)idnull
edit编辑列(调用编辑接口)string ,number,objectnull
info查看列(调用编辑接口,表单会禁止输入)string ,number,objectnull
formInlineRef查询表单对象 refnullnull
addFormRef新增编辑表单对象 refnullnull
openDialog打开新增编辑弹窗string 'add','info','edit'null
clsoeDialog关闭新增编辑弹窗nullnull

tablebase 插槽说明

插槽名说明
formInline搜索区域(左侧) 作用域参数为 {formInline}
optionForm功能按钮区域(右侧)
addForm弹窗表单 作用域参数为 {addForm}
dialogFoot弹窗按钮区域

operationtype 表单状态

参数说明类型
add新增string
edit编辑 data.datastring
info详情 data.datastring

columns 参数说明

参数说明类型可选值默认值
label显示的标题string--
prop字段名称 对应列内容的字段名string--
align对齐方式stringleft / center / rightcenter
width对应列的宽度string / number--
minWidth对应列的最小宽度string / number--
sortable对应列是否可以排序boolean-fasle
fixed列是否固定在左侧或者右侧string--
showOverflowTooltip当内容过长被隐藏时显示 tooltipboolean-true
render使用 render 函数function返回当前行的数据 ,index-
children多层级表头Array--
// 需要在使用的项目的tsconfig.json文件中添加以下
compilerOptions:{
  "types": [
      "talk2all-base/global",
    ],
}
// 如果表单的清空提交不做处理  需要在使用的项目的vite.config文件中 注释此段的代码
import Components from 'unplugin-vue-components/vite';
 Components({
	resolvers: [ElementPlusResolver()],
}),

// 或者删除局部引入 elfrom 或者 elfromitem
import { ElForm, ElFormItem } from 'element-plus';
// 如果tsx 语法eslint报错 tsconfig.json
{
  "compilerOptions": {
    "noImplicitAny": false, // 隐式具有“any”类型
  }
}

联系我 506970220@qq.com

1.2.11

3 months ago

1.2.10

4 months ago

1.2.9

4 months ago

1.2.8

4 months ago

1.2.7

4 months ago

1.2.6

4 months ago

1.2.5

4 months ago

1.2.4

4 months ago

1.2.3

4 months ago

1.2.2

4 months ago

1.2.0

4 months ago

1.2.1

4 months ago

1.1.52

4 months ago

1.1.51

4 months ago

1.1.33

4 months ago

1.1.32

4 months ago

1.1.38

4 months ago

1.1.37

4 months ago

1.1.36

4 months ago

1.1.35

4 months ago

1.1.39

4 months ago

1.1.41

4 months ago

1.1.40

4 months ago

1.1.45

4 months ago

1.1.44

4 months ago

1.1.43

4 months ago

1.1.42

4 months ago

1.1.49

4 months ago

1.1.47

4 months ago

1.1.46

4 months ago

1.1.50

4 months ago

1.1.29

5 months ago

1.1.28

5 months ago

1.1.30

5 months ago

1.1.31

5 months ago

1.1.27

5 months ago

1.1.26

5 months ago

1.1.25

5 months ago

1.1.24

5 months ago

1.1.23

5 months ago

1.1.16

5 months ago

1.1.19

5 months ago

1.1.18

5 months ago

1.1.17

5 months ago

1.1.22

5 months ago

1.1.21

5 months ago

1.1.20

5 months ago

1.1.9

5 months ago

1.1.8

5 months ago

1.1.12

5 months ago

1.1.11

5 months ago

1.1.10

5 months ago

1.1.15

5 months ago

1.1.14

5 months ago

1.1.13

5 months ago

1.1.1

5 months ago

1.1.0

5 months ago

1.0.9

5 months ago

1.1.7

5 months ago

1.0.8

5 months ago

1.1.6

5 months ago

1.0.7

5 months ago

1.1.5

5 months ago

1.1.4

5 months ago

1.1.3

5 months ago

1.1.2

5 months ago

1.0.6

5 months ago

1.0.5

5 months ago

1.0.4

5 months ago

1.0.3

5 months ago

1.0.2

5 months ago

1.0.1

5 months ago

1.0.0

5 months ago