Commit d5eb758448c90abdaf7fa61b9a2056a0803ed03a

Authored by Aaron
1 parent cb43ed7d
Exists in master and in 1 other branch legacy

scheme支持具名table插槽和具名弹出框插槽

examples/views/docs/scheme.md
@@ -12,6 +12,11 @@ Scheme是一个数æ®é©±åŠ¨çš„è§£å†³æ–¹æ¡ˆï¼Œé€šè¿‡æ—¢å®šçš„ä¸šåŠ¡é…ç½®å‚æ•°ï¼ @@ -12,6 +12,11 @@ Scheme是一个数æ®é©±åŠ¨çš„è§£å†³æ–¹æ¡ˆï¼Œé€šè¿‡æ—¢å®šçš„ä¸šåŠ¡é…ç½®å‚æ•°ï¼
12 <template> 12 <template>
13 <eagle-scheme :list="schemeList"> 13 <eagle-scheme :list="schemeList">
14 <el-table-column type="selection" width="50" align="center"></el-table-column> 14 <el-table-column type="selection" width="50" align="center"></el-table-column>
  15 + <template #table-status="{ setDialog }">
  16 + <el-table-column prop="status" label="激活状æ€" min-width="120">
  17 + <el-tag @click="setDialog({ title: 'Status模å¼', type: 'dialog-status' })" slot-scope="{ row: { status } }" :type="status === 'active' ? 'success' : 'danger'">{{ status === 'active' ? '激活' : 'ç¦ç”¨' }}</el-tag>
  18 + </el-table-column>
  19 + </template>
15 <template #search-status="{ model }"> 20 <template #search-status="{ model }">
16 <eagle-select v-model="model.status" :dataSource="dataSource"></eagle-select> 21 <eagle-select v-model="model.status" :dataSource="dataSource"></eagle-select>
17 </template> 22 </template>
@@ -28,6 +33,9 @@ Scheme是一个数æ®é©±åŠ¨çš„è§£å†³æ–¹æ¡ˆï¼Œé€šè¿‡æ—¢å®šçš„ä¸šåŠ¡é…ç½®å‚æ•°ï¼ @@ -28,6 +33,9 @@ Scheme是一个数æ®é©±åŠ¨çš„è§£å†³æ–¹æ¡ˆï¼Œé€šè¿‡æ—¢å®šçš„ä¸šåŠ¡é…ç½®å‚æ•°ï¼
28 <div>这是一个自定义弹出框内容</div> 33 <div>这是一个自定义弹出框内容</div>
29 <div>{{ row }}</div> 34 <div>{{ row }}</div>
30 </template> 35 </template>
  36 + <template #dialog-status>
  37 + <div>这是Status的内容</div>
  38 + </template>
31 <!-- 自定义按钮组 --> 39 <!-- 自定义按钮组 -->
32 <!-- <el-table-column slot="table-operation" prop="$operation" label="æ“作" min-width="140"> 40 <!-- <el-table-column slot="table-operation" prop="$operation" label="æ“作" min-width="140">
33 <el-tag>自定义按钮组</el-tag> 41 <el-tag>自定义按钮组</el-tag>
packages/scheme/index.vue
@@ -75,6 +75,10 @@ @@ -75,6 +75,10 @@
75 }" 75 }"
76 > 76 >
77 <slot></slot> 77 <slot></slot>
  78 + <!-- 表格具名插槽 -->
  79 + <template v-for="item in _tableList">
  80 + <slot v-if="$scopedSlots[`table-${item.key}`] || $slots[`table-${item.key}`]" :name="`table-${item.key}`" :slot="item.key" :setDialog="setDialog"></slot>
  81 + </template>
78 <!-- 表格后置插槽 --> 82 <!-- 表格后置插槽 -->
79 <template v-if="$scopedSlots['table-append'] || $slots['table-append']"> 83 <template v-if="$scopedSlots['table-append'] || $slots['table-append']">
80 <slot name="table-append" slot="$append"></slot> 84 <slot name="table-append" slot="$append"></slot>
@@ -197,18 +201,18 @@ export default { @@ -197,18 +201,18 @@ export default {
197 { name: '钱仲', code: 'U00002', type: 'user', sort: 1, status: 'active' }, 201 { name: '钱仲', code: 'U00002', type: 'user', sort: 1, status: 'active' },
198 { name: '孙叔', code: 'U00003', type: 'user', sort: 2, status: 'active' }, 202 { name: '孙叔', code: 'U00003', type: 'user', sort: 2, status: 'active' },
199 { name: '李季', code: 'U00004', type: 'user', sort: 3, status: 'active' }, 203 { name: '李季', code: 'U00004', type: 'user', sort: 3, status: 'active' },
200 - { name: '赵伯', code: 'U00001', type: 'admin', sort: 0, status: 'active' }, 204 + { name: '赵伯', code: 'U00001', type: 'admin', sort: 0, status: '' },
201 { name: '钱仲', code: 'U00002', type: 'user', sort: 1, status: 'active' }, 205 { name: '钱仲', code: 'U00002', type: 'user', sort: 1, status: 'active' },
202 - { name: '孙叔', code: 'U00003', type: 'user', sort: 2, status: 'active' }, 206 + { name: '孙叔', code: 'U00003', type: 'user', sort: 2, status: '' },
203 { name: '李季', code: 'U00004', type: 'user', sort: 3, status: 'active' }, 207 { name: '李季', code: 'U00004', type: 'user', sort: 3, status: 'active' },
204 { name: '赵伯', code: 'U00001', type: 'admin', sort: 0, status: 'active' }, 208 { name: '赵伯', code: 'U00001', type: 'admin', sort: 0, status: 'active' },
205 { name: '钱仲', code: 'U00002', type: 'user', sort: 1, status: 'active' }, 209 { name: '钱仲', code: 'U00002', type: 'user', sort: 1, status: 'active' },
206 - { name: '孙叔', code: 'U00003', type: 'user', sort: 2, status: 'active' },  
207 - { name: '李季', code: 'U00004', type: 'user', sort: 3, status: 'active' }, 210 + { name: '孙叔', code: 'U00003', type: 'user', sort: 2, status: '' },
  211 + { name: '李季', code: 'U00004', type: 'user', sort: 3, status: '' },
208 { name: '赵伯', code: 'U00001', type: 'admin', sort: 0, status: 'active' }, 212 { name: '赵伯', code: 'U00001', type: 'admin', sort: 0, status: 'active' },
209 - { name: '钱仲', code: 'U00002', type: 'user', sort: 1, status: 'active' },  
210 - { name: '孙叔', code: 'U00003', type: 'user', sort: 2, status: 'active' },  
211 - { name: '李季', code: 'U00004', type: 'user', sort: 3, status: 'active' }, 213 + { name: '钱仲', code: 'U00002', type: 'user', sort: 1, status: '' },
  214 + { name: '孙叔', code: 'U00003', type: 'user', sort: 2, status: '' },
  215 + { name: '李季', code: 'U00004', type: 'user', sort: 3, status: '' },
212 ], 216 ],
213 // 表格选中项 217 // 表格选中项
214 tableSelection: [], 218 tableSelection: [],
@@ -348,6 +352,12 @@ export default { @@ -348,6 +352,12 @@ export default {
348 this.dialogType = ''; 352 this.dialogType = '';
349 }); 353 });
350 }, 354 },
  355 + // 设置弹出框模式
  356 + setDialog({ title, type }) {
  357 + this.dialogTitle = title;
  358 + this.dialogType = type;
  359 + this.dialogVisible = true;
  360 + }
351 } 361 }
352 }; 362 };
353 </script> 363 </script>