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
| @@ -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> |