| <template> | 
|     <GlobalWindow | 
|         :title="title" | 
|         :visible.sync="visible" | 
|         :confirm-working="isWorking" | 
|         @confirm="confirm" | 
|     > | 
|         <el-form :model="form" ref="form" :rules="rules"> | 
|             <el-form-item label="上级组织" prop="parentId"> | 
|                 <el-cascader | 
|                     :options="organization" | 
|                     v-model="form.parentId" | 
|                     :disabled="form.disabled" | 
|                     placeholder="请选择上级组织" | 
|                     :props="{ label: 'name', value: 'id', checkStrictly: true }" | 
|                     clearable /> | 
|             </el-form-item> | 
|             <el-form-item label="组织名称" prop="name"> | 
|                 <el-input v-model="form.name" placeholder="请输入名称" v-trim/> | 
|             </el-form-item> | 
|         </el-form> | 
|     </GlobalWindow> | 
| </template> | 
|   | 
| <script> | 
|   import BaseOpera from '@/components/base/BaseOpera' | 
|   import GlobalWindow from '@/components/common/GlobalWindow' | 
|   import { tree } from '@/api/business/companyDepartment' | 
|   import { mapState } from 'vuex' | 
|   export default { | 
|     name: 'OperaCompanyDepartmentWindow', | 
|     extends: BaseOpera, | 
|     components: { GlobalWindow }, | 
|     computed: { | 
|       ...mapState(['userInfo']) | 
|     }, | 
|     data () { | 
|       return { | 
|         // 表单数据 | 
|         form: { | 
|           id: null, | 
|           name: '', | 
|           parentId: [], | 
|           type: '', | 
|           disabled: false | 
|         }, | 
|         // 验证规则 | 
|         rules: { | 
|           name: [ | 
|             { required: true, message: '请输入组织名称' } | 
|           ] | 
|         }, | 
|         organization: [] | 
|       } | 
|     }, | 
|     created () { | 
|       this.config({ | 
|         api: '/business/companyDepartment', | 
|         'field.id': 'id' | 
|       }) | 
|     }, | 
|     methods: { | 
|       __confirmCreate () { | 
|         this.$refs.form.validate((valid) => { | 
|           if (!valid) { | 
|             return | 
|           } | 
|           let obj = JSON.parse(JSON.stringify(this.form)) | 
|           obj.parentId = obj.parentId && obj.parentId.length > 0 ? obj.parentId[0] : '' | 
|           obj.type = this.userInfo.type | 
|           // 调用新建接口 | 
|           this.isWorking = true | 
|           this.api.create(obj) | 
|             .then(() => { | 
|               this.visible = false | 
|               this.$tip.apiSuccess('新建成功') | 
|               this.$emit('success') | 
|             }) | 
|             .catch(e => { | 
|               this.$tip.apiFailed(e) | 
|             }) | 
|             .finally(() => { | 
|               this.isWorking = false | 
|             }) | 
|         }) | 
|       }, | 
|       __confirmEdit () { | 
|         this.$refs.form.validate((valid) => { | 
|           if (!valid) { | 
|             return | 
|           } | 
|           // 调用新建接口 | 
|           let obj = JSON.parse(JSON.stringify(this.form)) | 
|           obj.parentId = obj.parentId && obj.parentId.length > 0 ? obj.parentId[0] : '' | 
|           obj.type = this.userInfo.type | 
|           this.isWorking = true | 
|           this.api.updateById(obj) | 
|             .then(() => { | 
|               this.visible = false | 
|               this.$tip.apiSuccess('修改成功') | 
|               this.$emit('success') | 
|             }) | 
|             .catch(e => { | 
|               this.$tip.apiFailed(e) | 
|             }) | 
|             .finally(() => { | 
|               this.isWorking = false | 
|             }) | 
|         }) | 
|       }, | 
|       open (title, target) { | 
|         this.title = title | 
|         this.visible = true | 
|         this.getTree() | 
|         // 新建 | 
|         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] | 
|           } | 
|         }) | 
|       }, | 
|       getTree() { | 
|         tree() | 
|           .then(records => { | 
|             this.organization = records | 
|           }) | 
|       } | 
|     } | 
|   } | 
| </script> |