| <script> | 
| import { memberSync } from '@/api/business/member' | 
|   | 
| export default { | 
|   name: 'BaseOpera', | 
|   data () { | 
|     return { | 
|       title: '', | 
|       visible: false, | 
|       isWorking: false, | 
|       // 接口 | 
|       api: null, | 
|       // 配置数据 | 
|       configData: { | 
|         'field.id': 'id' | 
|       } | 
|     } | 
|   }, | 
|   methods: { | 
|     /** | 
|      * 配置 | 
|      * | 
|      * @param extParams 配置参数 | 
|      */ | 
|     config (extParams = {}) { | 
|       if (extParams == null) { | 
|         throw new Error('Parameter can not be null of method \'config\' .') | 
|       } | 
|       if (extParams.api == null) { | 
|         throw new Error('Missing config option \'api\'.') | 
|       } | 
|       this.api = require('@/api' + extParams.api) | 
|       extParams['field.id'] && (this.configData['field.id'] = extParams['field.id']) | 
|     }, | 
|     /** | 
|      * 打开窗口 | 
|      * | 
|      * @param title 窗口标题 | 
|      * @param target 行对象(仅编辑需该参数) | 
|      */ | 
|     open (title, target) { | 
|       this.title = title | 
|       this.visible = true | 
|       // 新建 | 
|       if (target == null) { | 
|         this.$nextTick(() => { | 
|           this.$refs.form.resetFields() | 
|           this.form[this.configData['field.id']] = null | 
|         }) | 
|         return | 
|       } | 
|       // 编辑 | 
|       this.$nextTick(() => { | 
|         for (const key in this.form) { | 
|           this.form[key] = target[key] | 
|         } | 
|       }) | 
|     }, | 
|     /** | 
|      * 确认(点击确认按钮后触发) | 
|      */ | 
|     confirm () { | 
|       if (this.form[this.configData['field.id']] == null || this.form[this.configData['field.id']] === '') { | 
|         this.__confirmCreate() | 
|         return | 
|       } | 
|       this.__confirmEdit() | 
|     }, | 
|     /** | 
|      * 确认新建 | 
|      * | 
|      * @private | 
|      */ | 
|     __confirmCreate () { | 
|       this.$refs.form.validate((valid) => { | 
|         if (!valid) { | 
|           return | 
|         } | 
|         // 调用新建接口 | 
|         this.isWorking = true | 
|         var that = this | 
|         this.api.create(this.form) | 
|           .then(() => { | 
|             // that.$tip.apiSuccess('新建成功') | 
|             that.$dialog.actionConfirmButton('是否停留该页面继续新建数据?', '新建成功','继续添加','关闭返回') | 
|               .then(() => { | 
|                 that.$refs.form.resetFields() | 
|                 that.form[this.configData['field.id']] = null | 
|                 that.$emit('success') | 
|               }) | 
|               .catch(() => { | 
|                 that.visible = false | 
|                 that.$emit('success') | 
|               }) | 
|           }) | 
|           .catch(e => { | 
|             this.$tip.apiFailed(e) | 
|           }) | 
|           .finally(() => { | 
|             this.isWorking = false | 
|           }) | 
|       }) | 
|     }, | 
|     /** | 
|      * 确认修改 | 
|      * | 
|      * @private | 
|      */ | 
|     __confirmEdit () { | 
|       this.$refs.form.validate((valid) => { | 
|         if (!valid) { | 
|           return | 
|         } | 
|         // 调用更新接口 | 
|         this.isWorking = true | 
|         this.api.updateById(this.form) | 
|           .then(() => { | 
|             this.visible = false | 
|             this.$tip.apiSuccess('修改成功') | 
|             this.$emit('success') | 
|           }) | 
|           .catch(e => { | 
|             this.$tip.apiFailed(e) | 
|           }) | 
|           .finally(() => { | 
|             this.isWorking = false | 
|           }) | 
|       }) | 
|     } | 
|   } | 
| } | 
| </script> |