前端培训文档(3.2.1)

前端培训文档(3.2.1)


DeeTable

<h2>DeeTable 表格</h2> <p>&gt; &lt;font color=#2A75CE&gt;定义: 参数中&lt;font color=red&gt;*&lt;/font&gt;表示必填项,&lt;font color=black&gt;{key}&lt;/font&gt;表示对象的键,&lt;font color=black&gt;{value}&lt;/font&gt;表示对象的值;类型为array或object有子属性&lt;/font&gt;</p> <h3>Attributes</h3> <table> <thead> <tr> <th style="text-align: center;">参数</th> <th style="text-align: center;">说明</th> <th style="text-align: center;">类型</th> <th style="text-align: center;">可选择</th> <th style="text-align: center;">默认值</th> </tr> </thead> <tbody> <tr> <td style="text-align: center;">&lt;font color=red&gt;*&lt;/font&gt;columns</td> <td style="text-align: center;">表格列</td> <td style="text-align: center;">array</td> <td style="text-align: center;">—</td> <td style="text-align: center;">—</td> </tr> <tr> <td style="text-align: center;">&lt;font color=red&gt;*&lt;/font&gt;data</td> <td style="text-align: center;">表格数据</td> <td style="text-align: center;">array</td> <td style="text-align: center;">—</td> <td style="text-align: center;">—</td> </tr> <tr> <td style="text-align: center;">loading</td> <td style="text-align: center;">表格是否显示加载状态</td> <td style="text-align: center;">boolean</td> <td style="text-align: center;">true/false</td> <td style="text-align: center;">false</td> </tr> <tr> <td style="text-align: center;">loadingOptions</td> <td style="text-align: center;">表格加载状态配置,具体配置参考element-ui</td> <td style="text-align: center;">object</td> <td style="text-align: center;">—</td> <td style="text-align: center;">—</td> </tr> <tr> <td style="text-align: center;">options</td> <td style="text-align: center;">表格配置,具体配置参考element-ui</td> <td style="text-align: center;">object</td> <td style="text-align: center;">—</td> <td style="text-align: center;">—</td> </tr> <tr> <td style="text-align: center;">options.checkStrictly</td> <td style="text-align: center;">表示是否严格的遵守父子节点不互相关联(懒加载的树表格该配置不适用)</td> <td style="text-align: center;">boolean</td> <td style="text-align: center;">true/false</td> <td style="text-align: center;">false(表示勾选父节点同时勾选子节点)</td> </tr> <tr> <td style="text-align: center;">indexRow</td> <td style="text-align: center;">序号列</td> <td style="text-align: center;">object</td> <td style="text-align: center;">—</td> <td style="text-align: center;">—</td> </tr> <tr> <td style="text-align: center;">selectionRow</td> <td style="text-align: center;">选择列</td> <td style="text-align: center;">object</td> <td style="text-align: center;">—</td> <td style="text-align: center;">—</td> </tr> <tr> <td style="text-align: center;">rowHandle</td> <td style="text-align: center;">自定义操作列</td> <td style="text-align: center;">object</td> <td style="text-align: center;">—</td> <td style="text-align: center;">—</td> </tr> <tr> <td style="text-align: center;">pagination</td> <td style="text-align: center;">分页对象</td> <td style="text-align: center;">object</td> <td style="text-align: center;">—</td> <td style="text-align: center;">—</td> </tr> </tbody> </table> <h3>Events</h3> <table> <thead> <tr> <th style="text-align: center;">事件名称</th> <th style="text-align: center;">说明</th> <th style="text-align: center;">回调参数</th> </tr> </thead> <tbody> <tr> <td style="text-align: center;">cell-data-change</td> <td style="text-align: center;">表格行数据改变</td> <td style="text-align: center;">{rowIndex,key,value,row}</td> </tr> <tr> <td style="text-align: center;">current-change</td> <td style="text-align: center;">行选中状态</td> <td style="text-align: center;">currentRow, oldCurrentRow</td> </tr> <tr> <td style="text-align: center;">select</td> <td style="text-align: center;">勾选数据时触发的事件</td> <td style="text-align: center;">selection, row</td> </tr> <tr> <td style="text-align: center;">select-all</td> <td style="text-align: center;">勾选全选时触发的事件</td> <td style="text-align: center;">selection</td> </tr> <tr> <td style="text-align: center;">selection-change</td> <td style="text-align: center;">复选框选择项发生变化时触发的事件</td> <td style="text-align: center;">selection</td> </tr> <tr> <td style="text-align: center;">cell-mouse-enter</td> <td style="text-align: center;">单元格 hover 进入时触发的事件</td> <td style="text-align: center;">row, column, cell, event</td> </tr> <tr> <td style="text-align: center;">cell-mouse-leave</td> <td style="text-align: center;">单元格 hover 退出时触发的事件</td> <td style="text-align: center;">row, column, cell, event</td> </tr> <tr> <td style="text-align: center;">cell-click</td> <td style="text-align: center;">单元格点击时触发的事件</td> <td style="text-align: center;">row, column, cell, event</td> </tr> <tr> <td style="text-align: center;">cell-dblclick</td> <td style="text-align: center;">单元格双击时触发的事件</td> <td style="text-align: center;">row, column, cell, event</td> </tr> <tr> <td style="text-align: center;">row-click</td> <td style="text-align: center;">行点击时触发的事件</td> <td style="text-align: center;">row, event, column</td> </tr> <tr> <td style="text-align: center;">row-contextmenu</td> <td style="text-align: center;">行右键点击时触发的事件</td> <td style="text-align: center;">row, event</td> </tr> <tr> <td style="text-align: center;">row-dblclick</td> <td style="text-align: center;">行双击时触发的事件</td> <td style="text-align: center;">row, event</td> </tr> <tr> <td style="text-align: center;">header-click</td> <td style="text-align: center;">表头点击时触发的事件</td> <td style="text-align: center;">column, event</td> </tr> <tr> <td style="text-align: center;">header-contextmenu</td> <td style="text-align: center;">表头右键点击时触发的事件</td> <td style="text-align: center;">column, event</td> </tr> <tr> <td style="text-align: center;">sort-change</td> <td style="text-align: center;">排序状态</td> <td style="text-align: center;">{ column, prop, order }</td> </tr> <tr> <td style="text-align: center;">pagination-size-change</td> <td style="text-align: center;">每页条数改变</td> <td style="text-align: center;">pageSize</td> </tr> <tr> <td style="text-align: center;">pagination-current-change</td> <td style="text-align: center;">当前页码改变</td> <td style="text-align: center;">currentPage</td> </tr> <tr> <td style="text-align: center;">pagination-prev-click</td> <td style="text-align: center;">上一页</td> <td style="text-align: center;">currentPage</td> </tr> <tr> <td style="text-align: center;">pagination-next-click</td> <td style="text-align: center;">下一页</td> <td style="text-align: center;">currentPage</td> </tr> <tr> <td style="text-align: center;">pageChange</td> <td style="text-align: center;">当前页面改变或每页条数改变</td> <td style="text-align: center;">currentPage</td> </tr> </tbody> </table> <p>&lt;!-- 具体属性配置参考:<a href="https://d2admin.fairyever.com/#/demo/d2-crud/index">https://d2admin.fairyever.com/#/demo/d2-crud/index</a> --&gt;</p> <p>&gt; &lt;font color=#2A75CE&gt;表头包含具名插槽,插槽名称:header&lt;/font&gt; &lt;font color=#2A75CE&gt;表格在使用自定义组件时,需要在数据行中添加属性:show,确保单行渲染,不添加组件不显示&lt;/font&gt;</p> <h3>代码参考</h3> <pre><code> &amp;lt;template&amp;gt; &amp;lt;div class=&amp;quot;table&amp;quot;&amp;gt; &amp;lt;h1&amp;gt;Table表格&amp;lt;/h1&amp;gt; &amp;lt;h5&amp;gt;用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。&amp;lt;/h5&amp;gt; &amp;lt;h2&amp;gt;基础表格&amp;lt;/h2&amp;gt; &amp;lt;h5&amp;gt;基础的表格展示用法。&amp;lt;/h5&amp;gt; &amp;lt;dee-table :columns=&amp;quot;deeColums&amp;quot; :data=&amp;quot;deeData&amp;quot; /&amp;gt; &amp;lt;h2&amp;gt;添加各个属性的表格&amp;lt;/h2&amp;gt; &amp;lt;h5&amp;gt;以下实例包括'带斑马纹','带边框','固定表头', '固定列','多级表头'&amp;lt;/h5&amp;gt; &amp;lt;dee-table :columns=&amp;quot;deeColums1&amp;quot; :data=&amp;quot;deeData&amp;quot; :options=&amp;quot;deeOptions&amp;quot; /&amp;gt; &amp;lt;h2&amp;gt;带有输入框的表格&amp;lt;/h2&amp;gt; &amp;lt;h5&amp;gt;以下实例包括input框的校验,select框的校验&amp;lt;/h5&amp;gt; &amp;lt;dee-table :columns=&amp;quot;deeColums2&amp;quot; :data=&amp;quot;deeData2&amp;quot; @checkResult=&amp;quot;checkResult&amp;quot; /&amp;gt; &amp;lt;h2&amp;gt;带有button按钮的表格&amp;lt;/h2&amp;gt; &amp;lt;h5&amp;gt;以下实例在操作一列可以实现针对当前行的操作&amp;lt;/h5&amp;gt; &amp;lt;dee-table :columns=&amp;quot;deeColums3&amp;quot; :data=&amp;quot;deeData3&amp;quot; /&amp;gt; &amp;lt;h2&amp;gt;带有复选框的表格&amp;lt;/h2&amp;gt; &amp;lt;h5&amp;gt;以下实例可以实现选择多行的需求&amp;lt;/h5&amp;gt; &amp;lt;dee-table ref=&amp;quot;multipleTable&amp;quot; :columns=&amp;quot;deeColums4&amp;quot; :data=&amp;quot;deeData4&amp;quot; :selection-row=&amp;quot;selectionRow&amp;quot; @select=&amp;quot;select&amp;quot; @select-all=&amp;quot;selectAll&amp;quot; @selection-change=&amp;quot;selectionChange&amp;quot; /&amp;gt; &amp;lt;div style=&amp;quot;margin-top:20px&amp;quot;&amp;gt; &amp;lt;el-button @click=&amp;quot;handleClear()&amp;quot;&amp;gt;清除选择&amp;lt;/el-button&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;h2&amp;gt;带有树形数据与懒加载的表格&amp;lt;/h2&amp;gt; &amp;lt;h5&amp;gt;以下实例可以实现树形数据&amp;lt;/h5&amp;gt; &amp;lt;dee-table :columns=&amp;quot;deeColums5&amp;quot; :data=&amp;quot;deeData5&amp;quot; :options=&amp;quot;optionsTree&amp;quot; /&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/template&amp;gt; &amp;lt;script&amp;gt; import link from './link' import tableCellFormCheck from '@/components/Table/tableCellFormCheck' export default { name: 'Table', components: {}, data() { const validateAcquaintance = (rule, value, callback) =&amp;gt; { if (!value) { callback(new Error('必须输入承接部门')) } value = Number(value) if (typeof value === 'number' &amp;amp;&amp;amp; !isNaN(value)) { if (value &amp;lt; 0 || value &amp;gt; 3) { callback(new Error('承接部门在 0 至 3之间')) } else { callback() } } else { callback(new Error('承接部门必须为数字')) } } return { // 基础表格 deeColums: [ { title: '编号', key: 'number' }, { title: '名称', key: 'name' }, { title: '状态', key: 'status' } ], deeColums1: [ { title: '编号', key: 'number', width: '300', fixed: 'left' }, // 固定列 { title: '名称', width: '1300', children: [ { title: '名称2', key: 'name', width: '300' }, { title: '名称1', key: 'name', width: '300' } ] }, // 多级表头 { title: '状态', key: 'status', width: '1300' } ], deeData: [ { number: '302A-001', name: '302A专用零件', status: '编制' }, { number: '302A-002', name: '302A专用零件02', status: '驳回' }, { number: '302A-003', name: '302A专用零件03', status: '已发放' }, { number: '302A-004', name: '302A专用零件04', status: '编制' } ], deeOptions: { stripe: true, // 带斑马纹 border: true, // 带边框 height: '200' // 固定表头 }, deeColums2: [ { title: '承接部门', key: 'depart', component: { name: tableCellFormCheck, show: true, props: { 'is-require': true, formRules: [{ required: true, message: '请选择活动区域', trigger: 'change' }, { validator: validateAcquaintance, trigger: 'change' }], bindKey: 'depart', component: { name: 'el-input' } }, handler: { changeForm: (val) =&amp;gt; { } } } }, { title: '供应部门', key: 'apply', component: { name: tableCellFormCheck, show: true, props: { 'is-require': false, bindKey: 'apply', component: { name: 'el-input' } } } }, { title: '设计师', key: 'designer', component: { name: tableCellFormCheck, show: true, props: { 'is-require': true, formRules: [{ required: true, message: '请选择活动区域', trigger: 'change' }], bindKey: 'designer', component: { name: 'el-select', options: [ { label: '张三', value: 'zs001' }, { label: '李四', value: 'ls002' }, { label: '王五', value: 'ww001' } ] } }, handler: { changeForm: (val) =&amp;gt; { } } } } ], deeData2: [ { depart: '111' }, { apply: '' }, { designer: '' } ], deeColums3: [ { title: '编号', key: 'number' }, { title: '名称', key: 'name' }, { title: '状态', key: 'status' }, { title: '操作', component: { name: link, show: true } } ], deeData3: [ { number: '302A-001', name: '302A专用零件', status: '编制' }, { number: '302A-002', name: '302A专用零件02', status: '驳回' }, { number: '302A-003', name: '302A专用零件03', status: '已发放' }, { number: '302A-004', name: '302A专用零件04', status: '编制' } ], deeColums4: [ { title: '编号', key: 'number' }, { title: '名称', key: 'name' }, { title: '状态', key: 'status' } ], deeData4: [ { number: '302A-001', name: '302A专用零件', status: '编制' }, { number: '302A-002', name: '302A专用零件02', status: '驳回' }, { number: '302A-003', name: '302A专用零件03', status: '已发放' }, { number: '302A-004', name: '302A专用零件04', status: '编制' } ], selectionRow: {}, deeColums5: [ { title: '编号', key: 'number' }, { title: '名称', key: 'name' }, { title: '状态', key: 'status' } ], deeData5: [ { number: '302A-001', name: '302A专用零件', status: '编制' // children: [ // { // number: '302A-001-001', // name: '302A-001专用零件', // status: '编制' // } // ] }, { number: '302A-002', name: '302A专用零件02', status: '驳回', hasChildren: true }, { number: '302A-003', name: '302A专用零件03', status: '已发放' }, { number: '302A-004', name: '302A专用零件04', status: '编制' } ], optionsTree: { 'row-key': 'number', // value值需为可以标识该对象唯一的值 lazy: true, load: (tree, treeNode, resolve) =&amp;gt; { setTimeout(() =&amp;gt; { resolve([ { number: '302A-002-002', name: '302A专用零件02-002', status: '驳回' } ]) }, 3000) }, 'tree-props': { children: 'children', hasChildren: 'hasChildren' } } } }, methods: { checkResult(val) { console.log(val) }, select(val) { console.log(val) }, selectAll(val) { console.log(val) }, selectionChange(val) { console.log(val) }, handleClear() { console.log(this.$refs.multipleTable.$refs.deeTable.clearSelection()) } } } &amp;lt;/script&amp;gt; &amp;lt;style lang=&amp;quot;scss&amp;quot;&amp;gt; .table{ overflow-y:scroll; height:100% } &amp;lt;/style&amp;gt; </code></pre>

页面列表

ITEM_HTML