Browse Source

2024-1-5

master
zelian_wu 2 years ago
parent
commit
9f16bb0a53
  1. 246
      src/views/modules/project/projectInfo/com_projectInfo-add-or-update.vue
  2. 13
      src/views/modules/project/projectInfo/projectInfo.vue
  3. 8
      src/views/modules/sys/dict-data-select.vue
  4. 1
      src/views/modules/sys/dict-data.vue

246
src/views/modules/project/projectInfo/com_projectInfo-add-or-update.vue

@ -2,57 +2,45 @@
<div class="mod-config"> <div class="mod-config">
<el-dialog <el-dialog
width="600px" width="600px"
:title="!dataForm.id ? '添加' :'编辑'"
:title="value === 0 ? '新增-项目' :value === 1?'修改-项目':'新增-子项目'"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible">
<el-form :inline="true" label-position="top" label-width="100px" :rules="projectRole">
<el-form-item :label="'项目层级'" prop="projectLevel" :rules="projectRole.projectLevel">
:visible.sync="visible"
@close="closeSaveDialog">
<el-form :inline="true" ref="saveForm" :model="dataForm" label-position="top" label-width="100px" :rules="projectRole">
<el-form-item label="项目层级" prop="projectLevel">
<el-select v-model="dataForm.projectLevel" style="width: 130px"> <el-select v-model="dataForm.projectLevel" style="width: 130px">
<el-option label="一级" value=1></el-option>
<el-option label="二级" value=2></el-option>
<el-option label="三级" value=3></el-option>
<el-option label="一级" :value="1"></el-option>
<el-option label="二级" :value="2"></el-option>
<el-option label="三级" :value="3"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="'项目号'">
<el-input v-model="dataForm.projectId" style="width: 130px" disabled></el-input>
<el-form-item label="项目号">
<el-input v-model="dataForm.projectId" style="width: 130px" disabled ></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="projectType" :rules="projectRole.projectType">
<span slot="label" style="" @click="getBaseList(1010,1)"><a herf="#">项目类型</a></span>
<el-input v-model="dataForm.projectType" style="width: 130px" readonly @focus="getBaseList(1010,1)"></el-input>
<el-form-item prop="projectTypeDb" label="项目类型">
<dict-data-select dict-type="project_info_type_db" v-if="visible" style="width: 130px" v-model="dataForm.projectTypeDb"></dict-data-select>
</el-form-item> </el-form-item>
<el-form-item prop="customerName" :rules="projectRole.customerName">
<el-form-item prop="customerName">
<span slot="label" style="" @click="getBaseList(102,1)"><a herf="#">所属客户</a></span> <span slot="label" style="" @click="getBaseList(102,1)"><a herf="#">所属客户</a></span>
<el-input v-model="dataForm.customerName" style="width: 130px" readonly @focus="getBaseList(102,1)"></el-input> <el-input v-model="dataForm.customerName" style="width: 130px" readonly @focus="getBaseList(102,1)"></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" :rules="projectRole">
<el-form-item :label="'项目名称'" prop="projectName" :rules="projectRole.projectName">
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="dataForm.projectName" style="width: 562px" ></el-input> <el-input v-model="dataForm.projectName" style="width: 562px" ></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" >
<el-form-item :label="'项目描述'" >
<el-form-item label="项目描述" >
<el-input v-model="dataForm.projectDesc" style="width: 562px" ></el-input> <el-input v-model="dataForm.projectDesc" style="width: 562px" ></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" :rules="projectRole">
<el-form-item prop="projectSourceDesc" :rules="projectRole.buDesc">
<el-form-item prop="buDesc" :rules="projectRole.buDesc">
<span slot="label" style="" @click="getBaseList(106,1)"><a herf="#">BU</a></span> <span slot="label" style="" @click="getBaseList(106,1)"><a herf="#">BU</a></span>
<el-input v-model="dataForm.buDesc" style="width: 130px" readonly @focus="getBaseList(106,1)"></el-input> <el-input v-model="dataForm.buDesc" style="width: 130px" readonly @focus="getBaseList(106,1)"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="projectSourceDesc" :rules="projectRole.projectSourceDesc">
<span slot="label" style="" @click="getBaseList(1011,1)"><a herf="#">项目来源</a></span>
<el-input v-model="dataForm.projectSourceDesc" style="width: 130px" readonly @focus="getBaseList(1011,1)"></el-input>
<el-form-item prop="projectSource" :rules="projectRole.projectSourceDesc" label="项目来源">
<dict-data-select dict-type="project_info_source" v-if="visible" style="width: 130px" v-model="dataForm.projectSource"></dict-data-select>
</el-form-item> </el-form-item>
<el-form-item prop="priorityDesc" :rules="projectRole.priorityDesc" label="优先级">
<!-- <span slot="label" style="" @click="getBaseList(1012,1)"><a herf="#">优先级</a></span>-->
<!-- <el-input v-model="dataForm.priorityDesc" style="width: 130px" readonly @focus="getBaseList(1012,1)"></el-input>-->
<dict-data-select dict-type="project_info_priority" style="width: 130px" v-model="dataForm.priority"></dict-data-select>
<el-form-item prop="priority" label="优先级">
<dict-data-select dict-type="project_info_priority" v-if="visible" style="width: 130px" v-model="dataForm.priority"></dict-data-select>
</el-form-item> </el-form-item>
<el-form-item :label="'要求日期:'" prop="needDate" :rules="projectRole.needDate">
<el-form-item label="要求日期:" prop="needDate" :rules="projectRole.needDate">
<el-date-picker <el-date-picker
style="width: 130px" style="width: 130px"
v-model="dataForm.needDate" v-model="dataForm.needDate"
@ -61,8 +49,6 @@
placeholder="选择日期"> placeholder="选择日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" :rules="projectRole">
<el-form-item prop="projectManagerName" :rules="projectRole.projectManagerName"> <el-form-item prop="projectManagerName" :rules="projectRole.projectManagerName">
<span slot="label" style="" @click="managerChooseModal()"><a herf="#">项目经理</a></span> <span slot="label" style="" @click="managerChooseModal()"><a herf="#">项目经理</a></span>
<el-input v-model="dataForm.projectManagerName" readonly style="width: 274px" @focus="managerChooseModal()"></el-input> <el-input v-model="dataForm.projectManagerName" readonly style="width: 274px" @focus="managerChooseModal()"></el-input>
@ -71,18 +57,12 @@
<span slot="label" style="" @click="ownerChooseModal()"><a herf="#">项目负责人</a></span> <span slot="label" style="" @click="ownerChooseModal()"><a herf="#">项目负责人</a></span>
<el-input v-model="dataForm.projectOwnerName" readonly style="width: 274px" @focus="ownerChooseModal()"></el-input> <el-input v-model="dataForm.projectOwnerName" readonly style="width: 274px" @focus="ownerChooseModal()"></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" >
<el-form-item :label="'客户应用/要求'">
<el-form-item label="客户应用/要求">
<el-input v-model="dataForm.customerRemark" style="width: 562px" ></el-input> <el-input v-model="dataForm.customerRemark" style="width: 562px" ></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" >
<el-form-item :label="'其他要求'">
<el-form-item label="其他要求">
<el-input v-model="dataForm.remark" style="width: 562px" ></el-input> <el-input v-model="dataForm.remark" style="width: 562px" ></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" :rules="projectRole">
<el-form-item prop="userRoleName" :rules="projectRole.userRoleName"> <el-form-item prop="userRoleName" :rules="projectRole.userRoleName">
<span slot="label" style="" @click="userRollModal()"><a herf="#">项目权限</a></span> <span slot="label" style="" @click="userRollModal()"><a herf="#">项目权限</a></span>
<el-input v-model="dataForm.userRoleName" style="width: 562px" @focus="userRollModal()"></el-input> <el-input v-model="dataForm.userRoleName" style="width: 562px" @focus="userRollModal()"></el-input>
@ -230,6 +210,16 @@
import Chooselist from '@/views/modules/common/Chooselist' import Chooselist from '@/views/modules/common/Chooselist'
import DictDataSelect from "../../sys/dict-data-select.vue"; import DictDataSelect from "../../sys/dict-data-select.vue";
export default { export default {
model:{
prop:'value',
event:'change',
},
props:{
value:{
required:true,
type:Number,
}
},
components: { components: {
DictDataSelect, DictDataSelect,
Chooselist Chooselist
@ -279,7 +269,7 @@
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
projectType: [ projectType: [
@ -289,18 +279,25 @@
trigger: 'change' trigger: 'change'
} }
], ],
projectTypeDb: [
{
required: true,
message: ' ',
trigger: ['change','blur']
}
],
customerName: [ customerName: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
projectName: [ projectName: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
buDesc: [ buDesc: [
@ -317,6 +314,13 @@
trigger: 'change' trigger: 'change'
} }
], ],
projectSource: [
{
required: true,
message: ' ',
trigger: ['change','blur']
}
],
priorityDesc: [ priorityDesc: [
{ {
required: true, required: true,
@ -324,11 +328,18 @@
trigger: 'change' trigger: 'change'
} }
], ],
priority: [
{
required: true,
message: ' ',
trigger: ['change','blur']
}
],
needDate: [ needDate: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
projectManagerName: [ projectManagerName: [
@ -644,77 +655,84 @@
}, },
// //
dataFormSubmit () { dataFormSubmit () {
if(this.dataForm.projectTypeDb==''||this.dataForm.projectTypeDb==null){
this.$alert('请选择项目类型!', '错误', {
confirmButtonText: '确定'
this.$refs.saveForm.validate((validate)=>{
if (validate){
saveProjectInfo(this.dataForm).then(({data}) => {
if (data && data.code === 0) {
this.$message.success( '操作成功')
this.visible = false
this.$emit('refreshDataList')
} else {
this.$message.error(data.msg)
}
}) })
return false;
}
if(this.dataForm.customerId==''||this.dataForm.customerId==null){
this.$alert('请选择所属客户!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.dataForm.projectName==''||this.dataForm.projectName==null){
this.$alert('请输入项目名称!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.dataForm.projectSource==''||this.dataForm.projectSource==null){
this.$alert('请选择项目来源!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.dataForm.buDesc==''||this.dataForm.buDesc==null){
this.$alert('请选择BU!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.dataForm.priority==''||this.dataForm.priority==null){
this.$alert('请选择优先级!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.dataForm.needDate==''||this.dataForm.needDate==null){
this.$alert('请选择要求日期!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.dataForm.projectManagerName==''||this.dataForm.projectManagerName==null){
this.$alert('请选择项目经理!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.dataForm.projectOwnerName==''||this.dataForm.projectOwnerName==null){
this.$alert('请选择项目负责人!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.dataForm.userRoleName==''||this.dataForm.userRoleName==null){
this.$alert('请选择权限!', '错误', {
confirmButtonText: '确定'
})
return false;
}
saveProjectInfo(this.dataForm).then(({data}) => {
if (data && data.code === 0) {
this.$message.success( '操作成功')
this.visible = false
this.$emit('refreshDataList')
} else {
this.$message.error(data.msg)
}else {
if(!this.dataForm.projectTypeDb){
this.$alert('请选择项目类型!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(!this.dataForm.customerId){
this.$alert('请选择所属客户!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(!this.dataForm.projectName){
this.$alert('请输入项目名称!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(!this.dataForm.projectSource){
this.$alert('请选择项目来源!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(!this.dataForm.buDesc){
this.$alert('请选择BU!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(!this.dataForm.priority){
this.$alert('请选择优先级!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(!this.dataForm.needDate){
this.$alert('请选择要求日期!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(!this.dataForm.projectManagerName){
this.$alert('请选择项目经理!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(!this.dataForm.projectOwnerName){
this.$alert('请选择项目负责人!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(!this.dataForm.userRoleName){
this.$alert('请选择权限!', '错误', {
confirmButtonText: '确定'
})
return false;
}
} }
}) })
}, },
closeSaveDialog(){
this.$refs.saveForm.resetFields();
}
}, },
} }
</script> </script>

13
src/views/modules/project/projectInfo/projectInfo.vue

@ -13,7 +13,7 @@
</el-form-item> </el-form-item>
<el-form-item label=" "> <el-form-item label=" ">
<el-button @click="search()" type="primary" style="margin-left: 2px;margin-top:0px">查询</el-button> <el-button @click="search()" type="primary" style="margin-left: 2px;margin-top:0px">查询</el-button>
<el-button @click="addOrUpdateHandle()" type="primary" style="margin-left: 2px;margin-top: 0px">新增</el-button>
<el-button @click="addOrUpdateHandle(0)" type="primary" style="margin-left: 2px;margin-top: 0px">新增</el-button>
<download-excel <download-excel
:fields="fields()" :fields="fields()"
:data="exportData" :data="exportData"
@ -47,6 +47,7 @@
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="text" size="small" @click="UpdateHandle(scope.row)">修改</a> <a type="text" size="small" @click="UpdateHandle(scope.row)">修改</a>
<a type="text" size="small" @click="addOrUpdateHandle(2,scope.row)">新增</a>
<a type="text" size="small" @click="deleteProjectInfo(scope.row)">删除</a> <a type="text" size="small" @click="deleteProjectInfo(scope.row)">删除</a>
</template> </template>
</el-table-column> </el-table-column>
@ -337,7 +338,7 @@
</el-dialog> </el-dialog>
<!-- 上传文件的modal --> <!-- 上传文件的modal -->
<projectUploadFile ref="projectUploadFile" @refreshPageTables="getFileContentData()" v-drag></projectUploadFile> <projectUploadFile ref="projectUploadFile" @refreshPageTables="getFileContentData()" v-drag></projectUploadFile>
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="search" v-drag></add-or-update>
<add-or-update v-if="addOrUpdateVisible" v-model="addOrUpdate" ref="addOrUpdate" @refreshDataList="search" v-drag></add-or-update>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div> </div>
</template> </template>
@ -387,6 +388,8 @@
name: "null", name: "null",
data() { data() {
return { return {
// addOrUpdate
addOrUpdate:0,
// //
contactChooseList1:[], contactChooseList1:[],
// //
@ -1031,10 +1034,11 @@
} }
}, },
// / // /
addOrUpdateHandle (id) {
addOrUpdateHandle (id,row) {
this.addOrUpdateVisible = true this.addOrUpdateVisible = true
this.addOrUpdate = id;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
this.$refs.addOrUpdate.init()
}) })
}, },
UpdateHandle (row) { UpdateHandle (row) {
@ -1046,6 +1050,7 @@
getProjectUserRole(inData).then(({data}) => { getProjectUserRole(inData).then(({data}) => {
if(this.$store.state.user.name=='admin'||data.row.updateFlag=='Y') { if(this.$store.state.user.name=='admin'||data.row.updateFlag=='Y') {
this.addOrUpdateVisible = true this.addOrUpdateVisible = true
this.addOrUpdate = 1;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addOrUpdate.init(row.id) this.$refs.addOrUpdate.init(row.id)
}) })

8
src/views/modules/sys/dict-data-select.vue

@ -27,9 +27,6 @@ export default {
options: [] options: []
} }
}, },
updated() {
this.dictDefaultValue()
},
created () { created () {
this.initOption() this.initOption()
}, },
@ -38,7 +35,9 @@ export default {
// value ,value // value ,value
if (!this.value && this.options.length > 0){ if (!this.value && this.options.length > 0){
let find = this.options.find(item=>item.isDefault === 'Y'); let find = this.options.find(item=>item.isDefault === 'Y');
this.$emit("change",find.dictValue);
if (find){
this.$emit("change",find.dictValue);
}
} }
}, },
//options //options
@ -54,6 +53,7 @@ export default {
if (data && data.code === 0){ if (data && data.code === 0){
this.options = data.rows; this.options = data.rows;
} }
this.dictDefaultValue();
}, },
// el-select @change, // el-select @change,
changeDictData(val){ changeDictData(val){

1
src/views/modules/sys/dict-data.vue

@ -84,6 +84,7 @@ export default {
closeSaveDataDialog(){ closeSaveDataDialog(){
this.$refs.saveDataForm.resetFields(); this.$refs.saveDataForm.resetFields();
this.saveData.remark = undefined; this.saveData.remark = undefined;
this.saveData.isDefault = 'N';
}, },
openSaveDataDialog(){ openSaveDataDialog(){
this.saveData.dictType = this.searchData.dictType; this.saveData.dictType = this.searchData.dictType;

Loading…
Cancel
Save