Commit 328de3561a0f75c0938834df66c887223b03d34d

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

支持配置agentKey用于Table和Detail显示

examples/main.js
@@ -18,7 +18,7 @@ const request = axios.create({ @@ -18,7 +18,7 @@ const request = axios.create({
18 timeout: 1000 * 60, 18 timeout: 1000 * 60,
19 withCredentials: true, 19 withCredentials: true,
20 headers: { 20 headers: {
21 - token: 'd7c11a1011b66691a8f55a8cf1b35b30', 21 + token: 'ca0b8636568e89d8bdfe394750dea7a0',
22 'Accept-Language': 'zh-CN' 22 'Accept-Language': 'zh-CN'
23 } 23 }
24 }); 24 });
examples/views/docs/table.md
@@ -18,10 +18,10 @@ export default { @@ -18,10 +18,10 @@ export default {
18 data() { 18 data() {
19 return { 19 return {
20 tableData: [ 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 tableList: [ 26 tableList: [
27 { key: 'name', label: '名称', 27 { key: 'name', label: '名称',
@@ -30,7 +30,7 @@ export default { @@ -30,7 +30,7 @@ export default {
30 } 30 }
31 }, 31 },
32 { key: 'address', label: '住址' }, 32 { key: 'address', label: '住址' },
33 - { key: 'postcode', label: '邮编' }, 33 + { key: 'postcode', agentKey: 'postName', label: '邮编' },
34 { key: 'number', label: '楼栋号', minWidth: '180' }, 34 { key: 'number', label: '楼栋号', minWidth: '180' },
35 ] 35 ]
36 } 36 }
examples/views/page/test.vue
@@ -4,11 +4,6 @@ @@ -4,11 +4,6 @@
4 <eagle-select v-model="model.enableFlag" :dataSource="[{ label: '正常', value: true }, { label: '禁用', value: false }]"></eagle-select> 4 <eagle-select v-model="model.enableFlag" :dataSource="[{ label: '正常', value: true }, { label: '禁用', value: false }]"></eagle-select>
5 </template> 5 </template>
6 <el-table-column type="selection" width="50"></el-table-column> 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 <template #action-btn-new> 7 <template #action-btn-new>
13 <el-button>按钮</el-button> 8 <el-button>按钮</el-button>
14 </template> 9 </template>
@@ -37,7 +32,7 @@ export default { @@ -37,7 +32,7 @@ export default {
37 rules: [{ required: true, message: '编码不能为空', trigger: 'blur' }], 32 rules: [{ required: true, message: '编码不能为空', trigger: 'blur' }],
38 props: { placeholder: '编码', disabled: (model, { formMode } = {}) => { return formMode == 'edit' } }, 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 rules: [{ required: true, message: '产品不能为空', trigger: 'blur' }], 36 rules: [{ required: true, message: '产品不能为空', trigger: 'blur' }],
42 props: { url: '/overseas/product/select' }, 37 props: { url: '/overseas/product/select' },
43 }, 38 },
@@ -57,6 +52,7 @@ export default { @@ -57,6 +52,7 @@ export default {
57 props: { dictionaryCode: 'TO_COUNTRY' }, 52 props: { dictionaryCode: 'TO_COUNTRY' },
58 }, 53 },
59 { type: 'el-input', label: '状态', key: 'enableFlag', span: 24, searchScheme: { span: 6 }, 54 { type: 'el-input', label: '状态', key: 'enableFlag', span: 24, searchScheme: { span: 6 },
  55 + formatter: (r, c, v) => v ? '正常' : '禁用'
60 }, 56 },
61 { type: 'el-date-picker', label: '生效时间', key: 'enabledTime', exclude: 'search', minWidth: '180', 57 { type: 'el-date-picker', label: '生效时间', key: 'enabledTime', exclude: 'search', minWidth: '180',
62 rules: [{ required: true, message: '生效时间不能为空', trigger: 'change' }], 58 rules: [{ required: true, message: '生效时间不能为空', trigger: 'change' }],
packages/detail/index.vue
@@ -32,7 +32,14 @@ @@ -32,7 +32,14 @@
32 <el-col :key="index + 'data'" :span="!item.span ? span : item.span"> 32 <el-col :key="index + 'data'" :span="!item.span ? span : item.span">
33 <el-form-item :label="item.label" :label-width="item.label ? undefined : item.labelWidth || '0px'" :prop="item.key"> 33 <el-form-item :label="item.label" :label-width="item.label ? undefined : item.labelWidth || '0px'" :prop="item.key">
34 <slot v-if="$scopedSlots[`item-${item.key}`] || $slots[`item-${item.key}`]" :name="`item-${item.key}`" :model="model" v-bind="item"></slot> 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 </el-form-item> 43 </el-form-item>
37 </el-col> 44 </el-col>
38 </template> 45 </template>
packages/table/index.vue
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 <template v-if="list && list.length > 0"> 10 <template v-if="list && list.length > 0">
11 <template v-for="(item, index) in list"> 11 <template v-for="(item, index) in list">
12 <slot v-if="$scopedSlots[item.key] || $slots[item.key]" :name="item.key" v-bind="item" :row="item"></slot> 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 </template> 14 </template>
15 </template> 15 </template>
16 <slot name="$append"></slot> 16 <slot name="$append"></slot>