157 lines
4.2 KiB
Vue
157 lines
4.2 KiB
Vue
<template>
|
|
<a-modal
|
|
title="新增机构"
|
|
:width="900"
|
|
:visible="visible"
|
|
:confirmLoading="confirmLoading"
|
|
@ok="handleSubmit"
|
|
@cancel="handleCancel"
|
|
>
|
|
<a-spin :spinning="formLoading">
|
|
<a-form :form="form">
|
|
<a-form-item
|
|
label="机构名称"
|
|
:labelCol="labelCol"
|
|
:wrapperCol="wrapperCol"
|
|
has-feedback
|
|
>
|
|
<a-input placeholder="请输入机构名称" v-decorator="['name', {rules: [{required: true, message: '请输入机构名称!'}]}]" />
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
label="唯一编码"
|
|
:labelCol="labelCol"
|
|
:wrapperCol="wrapperCol"
|
|
has-feedback
|
|
>
|
|
<a-input placeholder="请输入唯一编码" v-decorator="['code', {rules: [{required: true, message: '请输入唯一编码!'}]}]" />
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
label="上级机构"
|
|
:labelCol="labelCol"
|
|
:wrapperCol="wrapperCol"
|
|
has-feedback
|
|
>
|
|
<a-tree-select
|
|
v-decorator="['pid', {rules: [{ required: true, message: '请选择上级机构!' }]}]"
|
|
style="width: 100%"
|
|
:dropdownStyle="{ maxHeight: '300px', overflow: 'auto' }"
|
|
:treeData="orgTree"
|
|
placeholder="请选择上级机构"
|
|
treeDefaultExpandAll
|
|
>
|
|
<span slot="title" slot-scope="{ id }">{{ id }}
|
|
</span>
|
|
</a-tree-select>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
:labelCol="labelCol"
|
|
:wrapperCol="wrapperCol"
|
|
label="排序"
|
|
>
|
|
<a-input-number placeholder="请输入排序" style="width: 100%" v-decorator="['sort', { initialValue: 100 }]" :min="1" :max="1000" />
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
label="备注"
|
|
:labelCol="labelCol"
|
|
:wrapperCol="wrapperCol"
|
|
has-feedback
|
|
>
|
|
<a-textarea :rows="4" placeholder="请输入备注" v-decorator="['remark']"></a-textarea>
|
|
</a-form-item>
|
|
|
|
</a-form>
|
|
|
|
</a-spin>
|
|
</a-modal>
|
|
</template>
|
|
|
|
<script>
|
|
import store from '@/store'
|
|
import { sysOrgAdd, getOrgTree } from '@/api/modular/system/orgManage'
|
|
export default {
|
|
data () {
|
|
return {
|
|
labelCol: {
|
|
xs: { span: 24 },
|
|
sm: { span: 5 }
|
|
},
|
|
wrapperCol: {
|
|
xs: { span: 24 },
|
|
sm: { span: 15 }
|
|
},
|
|
orgTree: [],
|
|
visible: false,
|
|
confirmLoading: false,
|
|
formLoading: true,
|
|
form: this.$form.createForm(this)
|
|
}
|
|
},
|
|
methods: {
|
|
// 初始化方法
|
|
add () {
|
|
this.visible = true
|
|
this.getOrgTree()
|
|
},
|
|
|
|
/**
|
|
* 获取机构树,并加载于表单中
|
|
*/
|
|
getOrgTree () {
|
|
getOrgTree().then((res) => {
|
|
this.formLoading = false
|
|
if (!res.success) {
|
|
this.orgTree = []
|
|
return
|
|
}
|
|
const admintype = store.getters.admintype
|
|
// eslint-disable-next-line eqeqeq
|
|
if (admintype == '1') {
|
|
this.orgTree = [{
|
|
'id': '-1',
|
|
'parentId': '0',
|
|
'title': '顶级',
|
|
'value': '0',
|
|
'pid': '0',
|
|
'children': res.data
|
|
}]
|
|
} else {
|
|
this.orgTree = res.data
|
|
}
|
|
})
|
|
},
|
|
|
|
handleSubmit () {
|
|
const { form: { validateFields } } = this
|
|
this.confirmLoading = true
|
|
validateFields((errors, values) => {
|
|
if (!errors) {
|
|
sysOrgAdd(values).then((res) => {
|
|
if (res.success) {
|
|
this.$message.success('新增成功')
|
|
this.visible = false
|
|
this.confirmLoading = false
|
|
this.$emit('ok', values)
|
|
this.form.resetFields()
|
|
} else {
|
|
this.$message.error('新增失败:' + res.message)
|
|
}
|
|
}).finally((res) => {
|
|
this.confirmLoading = false
|
|
})
|
|
} else {
|
|
this.confirmLoading = false
|
|
}
|
|
})
|
|
},
|
|
handleCancel () {
|
|
this.form.resetFields()
|
|
this.visible = false
|
|
}
|
|
}
|
|
}
|
|
</script>
|