UNPKG

ed-frame-vue

Version:

easydata 基础组件

90 lines (84 loc) 2.77 kB
export default { methods: { /** * @name getFormData * @param moduleId 一级/二级模块ID * @param isValidate 是否进行校验,默认false * @return {Promise<unknown>|*|string|Promise<*|string>} * @description 获取模板数据 */ getFormData(moduleId, isValidate = false) { if (moduleId && typeof moduleId === "string") { const module = this.modules.find(i => i.id === moduleId); return module ? this._getOneFormData(module.id, isValidate) : this._getTowFormData(moduleId, isValidate); } else if (typeof moduleId === "boolean") { return this._getAllFormData(moduleId) } else { return this._getAllFormData(isValidate) } }, // 获取所有模板数据 _getAllFormData(isValidate) { const PromiseAll = [] this.modules.map(module => PromiseAll.push(this.$refs[module.id][0].getFormData(isValidate))) return new Promise((resolve, reject) => { Promise.all(PromiseAll).then(data => { let formData = [] data.map(one => one.map(tow => formData.push(tow))) resolve(formData) }).catch(err => { console.log(err) reject(err) }) }) }, // 获取单个一级模块数据 async _getOneFormData(moduleId, isValidate) { return new Promise((resolve, reject) => { const module = this.modules.find(i => i.id === moduleId); if (module) { this.$refs[module.id][0].getFormData(isValidate).then(data => { console.log(data) resolve(data) }).catch(err => { console.log(err) this.$message.error(err) reject(err) }) } else { this.$message.error('未查询到此模块') reject('未查询到此模块') } }) }, // 获取单个二级模块数据 _getTowFormData(moduleId, isValidate) { let oneRefs, module = null this.modules.map(oneModule => { oneModule.twoModules.map(twoModule => { if (twoModule.id === moduleId) { oneRefs = this.$refs[oneModule.id][0] module = twoModule } }) }) if (module) { return oneRefs.$refs[module.id][0].getFormData(isValidate) } else { return '未查询到此模块' } }, /** 获取动态模板超级提交时,所有参数,提交url */ async _getSubmitData(isValidate = false) { const viewModels = await this.getFormData(isValidate) return { url: this.moduleInfo.save_url, params: { bizParams: this.bizParams, viewModels: viewModels, extraParams: this.extraParams } } } } }