<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>
|