¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | :title="title" |
| | | :width="800" |
| | | :ok=false |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | :okButtonProps="{ props: {disabled: disableSubmit} }" |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | cancelText="å
³é"> |
| | | |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules"> |
| | | <a-form-model-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="æºæåç§°" |
| | | prop="departName" |
| | | :hidden="false" |
| | | hasFeedback > |
| | | <a-input id="departName" placeholder="请è¾å
¥æºæ/é¨é¨åç§°" v-model="model.departName"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" :hidden="seen" label="ä¸çº§é¨é¨" hasFeedback> |
| | | <a-tree-select |
| | | style="width:100%" |
| | | :dropdownStyle="{maxHeight:'200px',overflow:'auto'}" |
| | | :treeData="departTree" |
| | | v-model="model.parentId" |
| | | placeholder="è¯·éæ©ä¸çº§é¨é¨" |
| | | :disabled="condition"> |
| | | </a-tree-select> |
| | | </a-form-model-item> |
| | | <a-form-model-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="æºæç±»å"> |
| | | <template v-if="seen"> |
| | | <a-radio-group v-model="model.orgCategory" placeholder="è¯·éæ©æºæç±»å"> |
| | | <a-radio value="1"> |
| | | å
¬å¸ |
| | | </a-radio> |
| | | </a-radio-group> |
| | | </template> |
| | | <template v-else> |
| | | <a-radio-group v-model="model.orgCategory" placeholder="è¯·éæ©æºæç±»å"> |
| | | <a-radio value="2"> |
| | | é¨é¨ |
| | | </a-radio> |
| | | <a-radio value="3"> |
| | | å²ä½ |
| | | </a-radio> |
| | | </a-radio-group> |
| | | </template> |
| | | </a-form-model-item> |
| | | <!--<a-form-model-item--> |
| | | <!--:labelCol="labelCol"--> |
| | | <!--:wrapperCol="wrapperCol"--> |
| | | <!--prop="mobile"--> |
| | | <!--label="çµè¯">--> |
| | | <!--<a-input placeholder="请è¾å
¥çµè¯" v-model="model.mobile"/>--> |
| | | <!--</a-form-model-item>--> |
| | | <!--<a-form-model-item--> |
| | | <!--:labelCol="labelCol"--> |
| | | <!--:wrapperCol="wrapperCol"--> |
| | | <!--label="ä¼ ç">--> |
| | | <!--<a-input placeholder="请è¾å
¥ä¼ ç" v-model="model.fax"/>--> |
| | | <!--</a-form-model-item>--> |
| | | <!--<a-form-model-item--> |
| | | <!--:labelCol="labelCol"--> |
| | | <!--:wrapperCol="wrapperCol"--> |
| | | <!--label="å°å">--> |
| | | <!--<a-input placeholder="请è¾å
¥å°å" v-model="model.address"/>--> |
| | | <!--</a-form-model-item>--> |
| | | <a-form-model-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="æåº"> |
| | | <a-input-number v-model="model.departOrder"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="夿³¨"> |
| | | <a-textarea placeholder="请è¾å
¥å¤æ³¨" v-model="model.memo"/> |
| | | </a-form-model-item> |
| | | |
| | | </a-form-model> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { httpAction } from '@/api/manage' |
| | | import { queryIdTree } from '@/api/api' |
| | | import pick from 'lodash.pick' |
| | | import ATextarea from 'ant-design-vue/es/input/TextArea' |
| | | export default { |
| | | name: "SysDepartModal", |
| | | components: { ATextarea }, |
| | | data () { |
| | | return { |
| | | departTree:[], |
| | | orgTypeData:[], |
| | | phoneWarning:'', |
| | | departName:"", |
| | | title:"æä½", |
| | | seen:false, |
| | | visible: false, |
| | | condition:true, |
| | | disableSubmit:false, |
| | | model: {}, |
| | | defaultModel:{ |
| | | departOrder:0, |
| | | orgCategory:'1' |
| | | }, |
| | | menuhidden:false, |
| | | menuusing:true, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | |
| | | confirmLoading: false, |
| | | validatorRules:{ |
| | | departName:[{ required: true, message: '请è¾å
¥æºæ/é¨é¨åç§°!' }], |
| | | // orgCode:[{ required: true, message: '请è¾å
¥æºæç¼ç !' }], |
| | | // mobile: [{validator:this.validateMobile}], |
| | | // orgCategory:[{required: true, message: '请è¾å
¥æºæç±»å!'}] |
| | | }, |
| | | url: { |
| | | add: "/sys/sysDepart/add", |
| | | }, |
| | | dictDisabled:true, |
| | | } |
| | | }, |
| | | created () { |
| | | }, |
| | | methods: { |
| | | loadTreeData(){ |
| | | var that = this; |
| | | queryIdTree().then((res)=>{ |
| | | if(res.success){ |
| | | that.departTree = []; |
| | | for (let i = 0; i < res.result.length; i++) { |
| | | let temp = res.result[i]; |
| | | that.departTree.push(temp); |
| | | } |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | add (depart) { |
| | | if(depart){ |
| | | this.seen = false; |
| | | this.dictDisabled = false; |
| | | }else{ |
| | | this.seen = true; |
| | | this.dictDisabled = true; |
| | | } |
| | | this.edit(depart); |
| | | }, |
| | | edit (record) { |
| | | this.visible = true; |
| | | this.model = Object.assign({}, this.defaultModel, record) |
| | | this.loadTreeData(); |
| | | this.model.parentId = record!=null?record.toString():null; |
| | | if(this.seen){ |
| | | this.model.orgCategory = '1'; |
| | | }else{ |
| | | this.model.orgCategory = '2'; |
| | | } |
| | | }, |
| | | close () { |
| | | this.$emit('close'); |
| | | this.disableSubmit = false; |
| | | this.visible = false; |
| | | this.$refs.form.resetFields(); |
| | | }, |
| | | handleOk () { |
| | | const that = this; |
| | | // 触å表åéªè¯ |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true; |
| | | httpAction(this.url.add,this.model,"post").then((res)=>{ |
| | | if(res.success){ |
| | | that.$message.success(res.message); |
| | | that.loadTreeData(); |
| | | that.$emit('ok'); |
| | | }else{ |
| | | that.$message.warning(res.message); |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false; |
| | | that.close(); |
| | | }) |
| | | |
| | | }else{ |
| | | return false; |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel () { |
| | | this.close() |
| | | }, |
| | | validateMobile(rule,value,callback){ |
| | | if (!value || new RegExp(/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/).test(value)){ |
| | | callback(); |
| | | }else{ |
| | | callback("æ¨çææºå·ç æ ¼å¼ä¸æ£ç¡®!"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |