atdalīts no mt-fe-group/mt-yd-ui
		
	update dialog
Šī revīzija ir iekļauta:
		@@ -1,14 +1,64 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
	<el-dialog :title="isDetail ? '详情' : !dataForm.id ? '新增' : '修改'" :visible.sync="visible" @close="handleClose"> </el-dialog>
 | 
						<el-dialog :title="isDetail ? title.detail : !dataForm.id ? title.add : title.edit" :visible.sync="visible" @close="handleClose">
 | 
				
			||||||
 | 
							<el-form>
 | 
				
			||||||
 | 
								<!-- 如果需要更精细一点的布局,可以根据配置项实现地再复杂一点,但此处暂时全部采用一行两列布局  -->
 | 
				
			||||||
 | 
							</el-form>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							<span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
								<el-button v-for="(operate, index) in configs.operations" :key="`operate-${index}`" :type="btnType[operate.name]" @click="handleClick(operate)">
 | 
				
			||||||
 | 
									<!-- {{ operate.name | btnNameFilter }} -->
 | 
				
			||||||
 | 
									{{ btnName[operate.name] }}
 | 
				
			||||||
 | 
								</el-button>
 | 
				
			||||||
 | 
							</span>
 | 
				
			||||||
 | 
						</el-dialog>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
 | 
					// 标题 for i18n
 | 
				
			||||||
 | 
					const title = {
 | 
				
			||||||
 | 
						detail: '详情',
 | 
				
			||||||
 | 
						add: '新增',
 | 
				
			||||||
 | 
						edit: '编辑'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 或者也可以改造成自定义颜色:
 | 
				
			||||||
 | 
					const btnType = {
 | 
				
			||||||
 | 
						save: 'success',
 | 
				
			||||||
 | 
						update: 'primary',
 | 
				
			||||||
 | 
						reset: 'text'
 | 
				
			||||||
 | 
						// add more...
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const btnName = {
 | 
				
			||||||
 | 
						// for i18n
 | 
				
			||||||
 | 
						save: '保存',
 | 
				
			||||||
 | 
						update: '更新',
 | 
				
			||||||
 | 
						reset: '重置'
 | 
				
			||||||
 | 
						// add more...
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 每行的列数
 | 
				
			||||||
 | 
					const COLUMN_PER_ROW = 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
	name: 'AddOrUpdateDialog',
 | 
						name: 'AddOrUpdateDialog',
 | 
				
			||||||
 | 
						props: {
 | 
				
			||||||
 | 
							configs: {
 | 
				
			||||||
 | 
								/**
 | 
				
			||||||
 | 
								 * type: 'dialog' | 'drawer' | 'page'
 | 
				
			||||||
 | 
								 * fields: Array<string|object>
 | 
				
			||||||
 | 
								 * - fields.object: { name, type: 'number'|'textarea'|'select'|'date'|.., required: boolean,  validator: boolean(是否需要验证), [options]: any[], api: string(自动获取数据的接口,一般为getcode接口)}
 | 
				
			||||||
 | 
								 * operations: Array[object], 操作名和对应的接口地址
 | 
				
			||||||
 | 
								 */
 | 
				
			||||||
 | 
								type: Object,
 | 
				
			||||||
 | 
								default: () => ({}) // 此处省去类型检查,使用者自行注意就好
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	data() {
 | 
						data() {
 | 
				
			||||||
		return {
 | 
							return {
 | 
				
			||||||
 | 
								title,
 | 
				
			||||||
 | 
								btnName,
 | 
				
			||||||
 | 
								btnType,
 | 
				
			||||||
			visible: false,
 | 
								visible: false,
 | 
				
			||||||
			isEdit: false,
 | 
								isEdit: false,
 | 
				
			||||||
			isDetail: false,
 | 
								isDetail: false,
 | 
				
			||||||
@@ -16,6 +66,12 @@ export default {
 | 
				
			|||||||
			isUpdated: false
 | 
								isUpdated: false
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						computed: {
 | 
				
			||||||
 | 
							rows() {
 | 
				
			||||||
 | 
								// 本组件只实现了'一行两列'的表单布局
 | 
				
			||||||
 | 
								return Math.ceil(this.configs.fields.length / COLUMN_PER_ROW)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	updated() {
 | 
						updated() {
 | 
				
			||||||
		this.isUpdated = true // 此时如果点击保存就会 emit(refreshDataList)
 | 
							this.isUpdated = true // 此时如果点击保存就会 emit(refreshDataList)
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -35,6 +91,16 @@ export default {
 | 
				
			|||||||
		init() {
 | 
							init() {
 | 
				
			||||||
			this.visible = true
 | 
								this.visible = true
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							handleClick(btn) {
 | 
				
			||||||
 | 
								switch (btn.name) {
 | 
				
			||||||
 | 
									case 'save':
 | 
				
			||||||
 | 
										break
 | 
				
			||||||
 | 
									case 'update':
 | 
				
			||||||
 | 
										break
 | 
				
			||||||
 | 
									case 'reset':
 | 
				
			||||||
 | 
										break
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		handleClose() {
 | 
							handleClose() {
 | 
				
			||||||
			if (this.isAdd || this.isUpdated) this.$emit('refreshDataList')
 | 
								if (this.isAdd || this.isUpdated) this.$emit('refreshDataList')
 | 
				
			||||||
			this.visible = false
 | 
								this.visible = false
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -127,9 +127,9 @@ const addOrUpdateConfigs = {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	],
 | 
						],
 | 
				
			||||||
	operations: [
 | 
						operations: [
 | 
				
			||||||
		{ add: 'api/product/add' },
 | 
							{ name: 'save', url: 'api/product/add' },
 | 
				
			||||||
		{ update:  'api/product/update' },
 | 
							{ name: 'update', url: 'api/product/update' },
 | 
				
			||||||
		{ reset: true }
 | 
							{ name: 'reset', url: true }
 | 
				
			||||||
	]
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Atsaukties uz šo jaunā problēmā
	
	Block a user