<template>
|
<a-modal
|
:title='title'
|
:width='1200'
|
:visible='visible'
|
:confirmLoading='confirmLoading'
|
@ok='handleOk'
|
:keyboard='false'
|
:maskClosable='false'
|
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
|
@cancel='handleCancel'
|
>
|
<a-spin :spinning='confirmLoading'>
|
<a-form-model ref='form' :label-col='labelCol' :wrapper-col='wrapperCol' :model='model' :rules='validatorRules'>
|
<!-- 主表单区域 -->
|
<a-row class='form-row' :gutter='16'>
|
<a-col :lg='8'>
|
<a-form-model-item label='项目名称' prop='xmmc'>
|
<a-input v-model='model.xmmc' placeholder='请输入项目名称' />
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='项目编号' prop='xmbh'>
|
<a-input v-model='model.xmbh' placeholder='请输入项目编号' />
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='负责人' prop='xmfzr'>
|
<j-select-user-by-dep
|
placeholder='请选择项目负责人'
|
@ids='(v) => handleChangeUserCommon(v)'
|
v-model='model.xmfzr'
|
:multi='true'
|
:trigger-change='false'
|
></j-select-user-by-dep>
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='项目成员' prop='xmcy'>
|
<j-select-user-by-dep
|
placeholder='请选择项目成员'
|
@ids='(v) => handleChangeUserCommon(v)'
|
v-model='model.xmcy'
|
:multi='true'
|
:trigger-change='false'
|
></j-select-user-by-dep>
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='项目描述'>
|
<a-input v-model='model.xmms' placeholder='请输入项目描述' />
|
</a-form-model-item>
|
</a-col>
|
<a-col :lg='8'>
|
<a-form-model-item label='负责组别'>
|
|
<j-search-select-tag
|
placeholder='请选择负责组别'
|
v-model='model.xmfzz'
|
dict='sys_depart,depart_name,id'
|
:pageSize='1000'
|
:async='true'>
|
</j-search-select-tag>
|
</a-form-model-item>
|
</a-col>
|
|
|
<a-col :lg='8'>
|
<a-form-model-item label='立项'>
|
<a-select v-model="model.approval" placeholder="请选择">
|
<a-select-option value="">请选择</a-select-option>
|
<a-select-option :value="1">是</a-select-option>
|
<a-select-option :value="0">否</a-select-option>
|
</a-select>
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='项目类型'>
|
<j-dict-select-tag v-model='model.xmlx' title='项目类型' dictCode='xmlx' placeholder='请选择项目类型' />
|
</a-form-model-item>
|
</a-col>
|
|
<!-- <a-col :lg="8">
|
<a-form-model-item label="当前阶段">
|
<j-dict-select-tag
|
v-model="model.dqjd"
|
title="当前阶段"
|
dictCode="dqjd"
|
placeholder="请选择项目当前阶段"
|
/>
|
</a-form-model-item>
|
</a-col>-->
|
|
<a-col :lg='8'>
|
<a-form-model-item label='项目状态'>
|
<j-dict-select-tag
|
v-model='model.xmzt'
|
title='项目状态'
|
dictCode='xmzt'
|
placeholder='请选择项目项目状态'
|
/>
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='项目来源'>
|
<j-dict-select-tag
|
v-model='model.xmly'
|
title='项目来源'
|
dictCode='xmly'
|
placeholder='请选择项目项目来源'
|
/>
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='项目等级'>
|
<j-dict-select-tag
|
v-model='model.xmdj'
|
title='项目等级'
|
dictCode='xmdj'
|
placeholder='请选择项目项目等级'
|
/>
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='重点课题'>
|
<j-dict-select-tag
|
v-model='model.zdkt'
|
title='重点课题'
|
dictCode='zdkt'
|
placeholder='请选择项目重点课题'
|
/>
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='重点项目'>
|
<j-dict-select-tag v-model='model.zdxm' title='重点项目' dictCode='zdxm' placeholder='请选择重点项目' />
|
</a-form-model-item>
|
</a-col>
|
|
<!-- <a-col :lg="8">
|
<a-form-model-item label="里程碑">
|
<j-dict-select-tag v-model="model.lcb" title="里程碑" dictCode="lcb" placeholder="请选择项目里程碑" />
|
</a-form-model-item>
|
</a-col>-->
|
<a-col :lg='8'>
|
<a-form-model-item label='产品类别'>
|
<j-dict-select-tag v-model='model.cplb' title='产品类别' dictCode='cplb' placeholder='请选择项目产品类别' />
|
</a-form-model-item>
|
</a-col>
|
<a-col :lg='8'>
|
<a-form-model-item label='产品规格'>
|
<j-dict-select-tag v-model='model.cpgg' title='产品规格' dictCode='cpgg' placeholder='请选择项目产品规格' />
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='风险等级'>
|
<j-dict-select-tag v-model='model.fxdj' title='风险等级' dictCode='fxdj' placeholder='请选择项目风险等级' />
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='项目周期'>
|
<a-input v-model='model.zqjh' placeholder='请输入项目周期' />
|
</a-form-model-item>
|
</a-col>
|
<a-col :lg='8'>
|
<a-form-model-item label='工时计划'>
|
<a-input v-model='model.gsjh' placeholder='请输入工时计划' />
|
</a-form-model-item>
|
</a-col>
|
|
|
<a-col :lg='8'>
|
<a-form-model-item label='开始日期'>
|
<a-date-picker v-model='model.ksrq' valueFormat='YYYY-MM-DD' style='width: 100%' placeholder='请选择开始日期' />
|
</a-form-model-item>
|
</a-col>
|
<a-col :lg='8'>
|
<a-form-model-item label='结束日期'>
|
<a-date-picker v-model='model.jsrq' valueFormat='YYYY-MM-DD' style='width: 100%' placeholder='请选择结束日期' />
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='项目排序'>
|
<a-input-number v-model='model.sortNo' placeholder='请输入项目排序' />
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :lg='8'>
|
<a-form-model-item label='项目集'>
|
|
<j-search-select-tag
|
placeholder='请选择项目集'
|
v-model='model.groupCode'
|
dict='pro_project_group,group_name,group_code'
|
:pageSize='1000'
|
:async='true'>
|
</j-search-select-tag>
|
</a-form-model-item>
|
</a-col>
|
|
</a-row>
|
</a-form-model>
|
</a-spin>
|
|
<!-- 选择用户 -->
|
</a-modal>
|
</template>
|
|
<script>
|
import JSelectUserByDepModal from '@/components/jeecgbiz/modal/JSelectUserByDepModal'
|
import { httpAction, getAction, postAction, putAction } from '@/api/manage'
|
|
export default {
|
name: 'ProjectModal',
|
components: {
|
JSelectUserByDepModal
|
},
|
data() {
|
return {
|
title: '操作',
|
visible: false,
|
form: this.$form.createForm(this),
|
userIds: 'admin',
|
model: {},
|
disableSubmit: false,
|
labelCol: {
|
xs: { span: 24 },
|
sm: { span: 5 }
|
},
|
wrapperCol: {
|
xs: { span: 24 },
|
sm: { span: 16 }
|
},
|
confirmLoading: false,
|
validatorRules: {
|
xmmc: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }],
|
xmbh: [{ required: true, message: '项目编号不能为空', trigger: 'blur' }],
|
xmfzr: [{ required: true, message: '项目负责人不能为空', trigger: 'blur' }],
|
xmcy: [{ required: true, message: '项目成员不能为空', trigger: 'blur' }]
|
},
|
url: {
|
add: '/pro/project/add',
|
edit: '/pro/project/edit'
|
}
|
}
|
},
|
created() {
|
},
|
watch: {
|
/* model(newName, oldName) {
|
if(newName.projectManager_dictText){
|
let that = this;
|
setTimeout(() => {
|
that.userIds = newName.projectManager_dictText;
|
|
}, 1000)
|
|
}
|
|
}*/
|
},
|
methods: {
|
add() {
|
this.edit({})
|
},
|
edit(record) {
|
this.form.resetFields()
|
this.visible = true
|
//默认类型为市场型
|
this.model = Object.assign({}, record)
|
},
|
|
handleCancel() {
|
this.close()
|
},
|
handleOk() {
|
let that = this
|
this.$refs.form.validate((valid) => {
|
if (valid) {
|
that.confirmLoading = true
|
//add
|
if (!this.model.id) {
|
postAction(this.url.add, that.model)
|
.then((res) => {
|
that.confirmLoading = false
|
if (res.success) {
|
that.close()
|
that.$message.success(res.message)
|
that.$emit('ok', res.result)
|
that.close()
|
} else {
|
that.$message.warning(res.message)
|
}
|
})
|
.finally(() => {
|
that.confirmLoading = false
|
})
|
|
//edit
|
} else {
|
putAction(this.url.edit, that.model)
|
.then((res) => {
|
that.confirmLoading = false
|
if (res.success) {
|
that.close()
|
that.$message.success(res.message)
|
that.$emit('ok', res.result)
|
that.close()
|
} else {
|
that.$message.warning(res.message)
|
}
|
})
|
.finally(() => {
|
that.confirmLoading = false
|
})
|
}
|
}
|
})
|
},
|
close() {
|
this.$emit('close')
|
this.visible = false
|
},
|
handleAddUser() {
|
},
|
handleChangeUserCommon(v) {
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
</style>
|