From 8d4eb92176fafe475b94d6c699d85199a422db7d Mon Sep 17 00:00:00 2001 From: yangnr <yangnr@haomo-studio.com> Date: Mon, 2 Apr 2018 18:28:14 +0800 Subject: [PATCH] coding --- .../components/tables/HmComplexTable.vue | 94 ++++++++----------- src/views/haomo/components/tables/index.vue | 22 +++-- 2 files changed, 52 insertions(+), 64 deletions(-) diff --git a/src/views/haomo/components/tables/HmComplexTable.vue b/src/views/haomo/components/tables/HmComplexTable.vue index 0aee151..224b93b 100644 --- a/src/views/haomo/components/tables/HmComplexTable.vue +++ b/src/views/haomo/components/tables/HmComplexTable.vue @@ -134,16 +134,14 @@ <!-- @TODO 补充详情弹窗 --> <el-dialog :title="dialogName" :visible.sync="dialogFormVisible" :close-on-click-modal="closeOnClickModal" width="dialogWidth" v-if="dialogFormVisible"> - <el-form v-if="dialogName == '详情'"> - <el-form-item :label="dialog.name" :label-width="formLabelWidth" v-for="dialog in dialogForm"> - <el-input v-model="dialog.value" disabled auto-complete="off"></el-input> - </el-form-item> - </el-form> <hm-complex-form :schema="formSchema" :columns="showUserColumns" :buttons="showUserButtons" :layout="layout" - :tableId="tableId" v-if="dialogName != '详情'" ref="selectfood"> + :tableId="tableId" + :tips="formTips" + :formStyle="formStyle" + ref="selectfood"> </hm-complex-form> </el-dialog> @@ -277,7 +275,7 @@ }, /** * è¡¨æ ¼çš„é€‰é¡¹ï¼ŒåŒ…æ‹¬ï¼špageSizeã€showExportã€sortItemã€sortOrderã€showRefreshã€showDeleteButton〠- * buttonGroupã€showDetailã€dataProcessingã€changeValueã€newDataã€editData完整的示例为: + * buttonGroupã€showDetailã€dataProcessingã€promiseProcessingã€changeValueã€newDataã€editData完整的示例为: * { * "pageSize": 10, // 默认为10æ¡æ•°æ®/页 * "showExport": false, // é»˜è®¤ä¸ºä¸æ˜¾ç¤ºå¯¼å‡ºæŒ‰é’® @@ -287,11 +285,8 @@ * "showDeleteButton": false, //é»˜è®¤ä¸æ˜¾ç¤ºåˆ 除按钮 * "buttonGroup": false //默认ä¸ä»¥æŒ‰é’®ç»„的方å¼å‘ˆçްbutton * tableCurrentChange(value){} // 设置点击æŸè¡Œæ‰€æ‰§è¡Œæ–¹æ³• - * showDetail: { - * isShow: false, // é»˜è®¤ä¸æ˜¾ç¤ºè¯¦æƒ… - * showColumns: ['mobile', 'loginid', 'username', 'email'] - * }, - * dataProcessing(value){} // 对接å£è¿”回数æ®è¿›è¡Œå¤„ç†ï¼ˆå¿…须有返回值,返回值需为 [{}] 的形å¼ï¼Œæ”¯æŒæ”¾å›žPromise对象) + * dataProcessing(value, params, definedOperate){} // 对接å£è¿”回数æ®è¿›è¡Œå¤„ç†ï¼ˆå¿…须有返回值,返回值需为 [{}] 的形å¼ï¼Œæ”¯æŒæ”¾å›žPromise对象) + * promiseProcessing(value, params, definedOperate){} // 对接å£è¿”回数æ®è¿›è¡Œå¤„ç†ï¼ˆå¿…须有返回值,返回Promise对象) * "changeValue": { // æ•°æ®åº“å—æ®µè½¬åŒ–显示,例如(0=å¦,1=是) * username: {1: '是', 0: 'å¦'}, * type: { 1: 'Hm-isChecked', 0: 'Hm-noChecked' } // 以多选框的形å¼å±•示Hm-isChecked(选择状æ€)ã€Hm-noChecked(未选择状æ€) @@ -307,7 +302,10 @@ * showUserColumns: [], // 编辑表å•çš„Columnsé…ç½®,详情å‚考Form组件 * formSchema: {}, // 编辑表å•çš„schemaé…ç½® * layout: {} // å¸ƒå±€æ–¹å¼ - * } + * }, + * showDetail: { // åŒç¼–辑的的é…ç½® + * isShow: false, // é»˜è®¤ä¸æ˜¾ç¤ºè¯¦æƒ… + * }, * } */ options: { @@ -362,12 +360,11 @@ isShowExport: false, // æ˜¯å¦æ˜¾ç¤ºå¯¼å‡ºæŒ‰é’® formSchema: {}, // form弹窗的Schema定义 showUserColumns: [], // form弹窗的Columns定义 - showUserButtons: [ // from弹窗显示按钮 - { text: '确定', type: 1, method: this.formConfirm }, - { text: 'å–æ¶ˆ', type: 2, method: this.formCancel } - ], + showUserButtons: [], // from弹窗显示按钮, layout: { left: 0, middle: 24, right: 0 }, // formå¼¹çª—çš„å¸ƒå±€æ–¹å¼ tableId: '', + formTips: '', + formStyle: '', isShowRefresh: false, buttonGroup: false, @@ -402,17 +399,15 @@ }, created() { // this.validate() - - if (this.userDefined && Object.prototype.toString.apply(this.userDefined.pretreatment()) === '[object Promise]') { - this.userDefined.pretreatment().then(function() { - this.init() - - this.getList() - }) + const self = this + if (this.userDefined && this.userDefined.pretreatment) { + self.userDefined.pretreatment().then(function() {}) + self.init() + self.getList() + console.log('IS-[object Promise]') } else { - this.init() - - this.getList() + self.init() + self.getList() } }, methods: { @@ -553,15 +548,13 @@ // æ•°æ®å¤„ç† if (self.options && self.options.dataProcessing) { - if (Object.prototype.toString.apply(self.options.dataProcessing(resp.data, params, self.definedOperate)) === '[object Promise]') { - console.log('IS-[object Promise]') - self.options.dataProcessing(resp.data, params, self.definedOperate).then(function(dataList) { - self.list = dataList - }) - } else { - console.log('NO-[object Promise]') - self.list = self.options.dataProcessing(resp.data, params, self.definedOperate) - } + console.log('NO-[object Promise]') + self.list = self.options.dataProcessing(resp.data, params, self.definedOperate) + } + if (self.options && self.options.promiseProcessing) { + self.options.promiseProcessing(resp.data, params, self.definedOperate).then(function(dataList) { + self.list = dataList + }) } self.total = parseInt(resp.headers.total) self.listLoading = false @@ -617,12 +610,9 @@ self.tableId = '' if (type === 'editData') { self.dialogName = '编辑' - self.showUserColumns = self.options.editData.showUserColumns if (self.options.editData.showUserButtons) { self.showUserButtons = self.options.editData.showUserButtons } - self.formSchema = self.options.editData.formSchema - self.layout = self.options.editData.layout self.tableId = data.id } if (type === 'newData') { @@ -630,26 +620,22 @@ if (self.options.newData.showUserButtons) { self.showUserButtons = self.options.newData.showUserButtons } - self.showUserColumns = self.options.newData.showUserColumns - self.formSchema = self.options.newData.formSchema - self.layout = self.options.newData.layout } if (type === 'detail') { self.dialogName = '详情' - self.dialogForm = [] - _.each(self.options.showDetail.showColumns, function(columns) { - _.each(self.schema.columns, function(item, index) { - if (columns === item.codeCamel) { - self.dialogForm.push(item) - } - }) - }) - _.map(self.dialogForm, function(item, index) { - item.value = data[item.code] - item.id = data.id - }) + if (self.options.detailData.showUserButtons) { + self.showUserButtons = self.options.detailData.showUserButtons + } + self.tableId = data.id } + + self.showUserColumns = self.options.editData.showUserColumns + self.formSchema = self.options.editData.formSchema + self.layout = self.options.editData.layout + self.formTips = self.options.editData.tips + self.formStyle = self.options.editData.formStyle + self.dialogFormVisible = true }, // 表å•çš„æäº¤ diff --git a/src/views/haomo/components/tables/index.vue b/src/views/haomo/components/tables/index.vue index ed6c823..20f44a5 100644 --- a/src/views/haomo/components/tables/index.vue +++ b/src/views/haomo/components/tables/index.vue @@ -62,26 +62,30 @@ ], showUserButtons: [], formSchema: schema['HmUser'], - layout: { left: 0, middle: 24, right: 0 } + layout: { left: 0, middle: 24, right: 0 }, + tips: {}, + formStyle: {} }, editData: { isShow: true, showUserColumns: [{ name: 'å§“å', codeCamel: 'username', widgetType: 1 }], showUserButtons: [], formSchema: schema['HmUser'], - layout: { left: 0, middle: 24, right: 0 } + layout: { left: 0, middle: 24, right: 0 }, + tips: {}, + formStyle: {} + }, + showDetail: { + isShow: true }, showRefresh: true, showExport: true, showDeleteButton: true, buttonGroup: false, showSelection: false, - showDetail: { - isShow: true, - showColumns: ['mobile', 'loginid', 'username', 'email'] - }, tableCurrentChange(value) {} - // dataProcessing(value, params, definedOperate) {} // 处ç†è¿”回åŽçš„æ•°æ®,å¿…é¡»return 处ç†åŽçš„æ•°æ® + // dataProcessing(value, params, definedOperate) {}, // 处ç†è¿”回åŽçš„æ•°æ®,å¿…é¡»return 处ç†åŽçš„æ•°æ® + // promiseProcessing(value, params, definedOperate) {} // 处ç†è¿”回åŽçš„æ•°æ®,å¿…é¡»return Promise对象 } this.userDefined = { definedParams(params, operate) { @@ -101,10 +105,8 @@ }, definedDetail() { - }, - pretreatment() { - } + // pretreatment() {} } }, methods: { -- 2.21.0