Commit 328de3561a0f75c0938834df66c887223b03d34d
1 parent
52226eef
Exists in
master
and in
1 other branch
支持配置agentKey用于Table和Detail显示
Showing
5 changed files
with
17 additions
and
14 deletions
Show diff stats
examples/main.js
examples/views/docs/table.md
| ... | ... | @@ -18,10 +18,10 @@ export default { |
| 18 | 18 | data() { |
| 19 | 19 | return { |
| 20 | 20 | tableData: [ |
| 21 | - { name: '项伯', address: '大楚小区', postcode: 555, number: '北城1号院' }, | |
| 22 | - { name: '项仲', address: '大楚小区', postcode: 555, number: '北城2号院' }, | |
| 23 | - { name: '项叔', address: '大楚小区', postcode: 555, number: '北城3号院' }, | |
| 24 | - { name: '项季', address: '大楚小区', postcode: 555, number: '北城4号院' }, | |
| 21 | + { name: '项伯', address: '大楚小区', postcode: 555, postName: '哟哟哟', number: '北城1号院' }, | |
| 22 | + { name: '项仲', address: '大楚小区', postcode: 555, postName: '哟哟哟', number: '北城2号院' }, | |
| 23 | + { name: '项叔', address: '大楚小区', postcode: 555, postName: '哟哟哟', number: '北城3号院' }, | |
| 24 | + { name: '项季', address: '大楚小区', postcode: 555, postName: '哟哟哟', number: '北城4号院' }, | |
| 25 | 25 | ], |
| 26 | 26 | tableList: [ |
| 27 | 27 | { key: 'name', label: '名称', |
| ... | ... | @@ -30,7 +30,7 @@ export default { |
| 30 | 30 | } |
| 31 | 31 | }, |
| 32 | 32 | { key: 'address', label: '住址' }, |
| 33 | - { key: 'postcode', label: '邮编' }, | |
| 33 | + { key: 'postcode', agentKey: 'postName', label: '邮编' }, | |
| 34 | 34 | { key: 'number', label: '楼栋号', minWidth: '180' }, |
| 35 | 35 | ] |
| 36 | 36 | } | ... | ... |
examples/views/page/test.vue
| ... | ... | @@ -4,11 +4,6 @@ |
| 4 | 4 | <eagle-select v-model="model.enableFlag" :dataSource="[{ label: '正常', value: true }, { label: '禁用', value: false }]"></eagle-select> |
| 5 | 5 | </template> |
| 6 | 6 | <el-table-column type="selection" width="50"></el-table-column> |
| 7 | - <template #table-productCode> | |
| 8 | - <el-table-column prop="productName" label="产品" min-width="100"> | |
| 9 | - <span slot-scope="{ row: { productName, productCode } }">{{ productName || productCode }}</span> | |
| 10 | - </el-table-column> | |
| 11 | - </template> | |
| 12 | 7 | <template #action-btn-new> |
| 13 | 8 | <el-button>按钮</el-button> |
| 14 | 9 | </template> |
| ... | ... | @@ -37,7 +32,7 @@ export default { |
| 37 | 32 | rules: [{ required: true, message: '编码不能为空', trigger: 'blur' }], |
| 38 | 33 | props: { placeholder: '编码', disabled: (model, { formMode } = {}) => { return formMode == 'edit' } }, |
| 39 | 34 | }, |
| 40 | - { type: 'el-input', label: '产品', key: 'productCode', | |
| 35 | + { type: 'el-input', label: '产品', key: 'productCode', agentKey: 'productName', | |
| 41 | 36 | rules: [{ required: true, message: '产品不能为空', trigger: 'blur' }], |
| 42 | 37 | props: { url: '/overseas/product/select' }, |
| 43 | 38 | }, |
| ... | ... | @@ -57,6 +52,7 @@ export default { |
| 57 | 52 | props: { dictionaryCode: 'TO_COUNTRY' }, |
| 58 | 53 | }, |
| 59 | 54 | { type: 'el-input', label: '状态', key: 'enableFlag', span: 24, searchScheme: { span: 6 }, |
| 55 | + formatter: (r, c, v) => v ? '正常' : '禁用' | |
| 60 | 56 | }, |
| 61 | 57 | { type: 'el-date-picker', label: '生效时间', key: 'enabledTime', exclude: 'search', minWidth: '180', |
| 62 | 58 | rules: [{ required: true, message: '生效时间不能为空', trigger: 'change' }], | ... | ... |
packages/detail/index.vue
| ... | ... | @@ -32,7 +32,14 @@ |
| 32 | 32 | <el-col :key="index + 'data'" :span="!item.span ? span : item.span"> |
| 33 | 33 | <el-form-item :label="item.label" :label-width="item.label ? undefined : item.labelWidth || '0px'" :prop="item.key"> |
| 34 | 34 | <slot v-if="$scopedSlots[`item-${item.key}`] || $slots[`item-${item.key}`]" :name="`item-${item.key}`" :model="model" v-bind="item"></slot> |
| 35 | - <label v-else>{{ model[item.key] }}</label> | |
| 35 | + <label v-else> | |
| 36 | + <template v-if="item.formatter"> | |
| 37 | + {{ item.formatter(item.key, model, item.key) }} | |
| 38 | + </template> | |
| 39 | + <template v-else> | |
| 40 | + {{ model[item.agentKey || item.key] }} | |
| 41 | + </template> | |
| 42 | + </label> | |
| 36 | 43 | </el-form-item> |
| 37 | 44 | </el-col> |
| 38 | 45 | </template> | ... | ... |
packages/table/index.vue
| ... | ... | @@ -10,7 +10,7 @@ |
| 10 | 10 | <template v-if="list && list.length > 0"> |
| 11 | 11 | <template v-for="(item, index) in list"> |
| 12 | 12 | <slot v-if="$scopedSlots[item.key] || $slots[item.key]" :name="item.key" v-bind="item" :row="item"></slot> |
| 13 | - <el-table-column v-else v-bind="item" :prop="item.key" :key="index" :min-width="item.minWidth || '120'"></el-table-column> | |
| 13 | + <el-table-column v-else v-bind="item" :prop="item.agentKey || item.key" :key="index" :min-width="item.minWidth || '120'"></el-table-column> | |
| 14 | 14 | </template> |
| 15 | 15 | </template> |
| 16 | 16 | <slot name="$append"></slot> | ... | ... |