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">
<el-dialog
width="600px"
:title="!dataForm.id ? '添加' :'编辑'"
:title="value === 0 ? '新增-项目' :value === 1?'修改-项目':'新增-子项目'"
: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-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-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 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 prop="customerName" :rules="projectRole.customerName">
<el-form-item prop="customerName">
<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-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-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-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>
<el-input v-model="dataForm.buDesc" style="width: 130px" readonly @focus="getBaseList(106,1)"></el-input>
</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 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 :label="'要求日期:'" prop="needDate" :rules="projectRole.needDate">
<el-form-item label="要求日期:" prop="needDate" :rules="projectRole.needDate">
<el-date-picker
style="width: 130px"
v-model="dataForm.needDate"
@ -61,8 +49,6 @@
placeholder="选择日期">
</el-date-picker>
</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">
<span slot="label" style="" @click="managerChooseModal()"><a herf="#">项目经理</a></span>
<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>
<el-input v-model="dataForm.projectOwnerName" readonly style="width: 274px" @focus="ownerChooseModal()"></el-input>
</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-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-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" :rules="projectRole">
<el-form-item prop="userRoleName" :rules="projectRole.userRoleName">
<span slot="label" style="" @click="userRollModal()"><a herf="#">项目权限</a></span>
<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 DictDataSelect from "../../sys/dict-data-select.vue";
export default {
model:{
prop:'value',
event:'change',
},
props:{
value:{
required:true,
type:Number,
}
},
components: {
DictDataSelect,
Chooselist
@ -279,7 +269,7 @@
{
required: true,
message: ' ',
trigger: 'change'
trigger: ['change','blur']
}
],
projectType: [
@ -289,18 +279,25 @@
trigger: 'change'
}
],
projectTypeDb: [
{
required: true,
message: ' ',
trigger: ['change','blur']
}
],
customerName: [
{
required: true,
message: ' ',
trigger: 'change'
trigger: ['change','blur']
}
],
projectName: [
{
required: true,
message: ' ',
trigger: 'change'
trigger: ['change','blur']
}
],
buDesc: [
@ -317,6 +314,13 @@
trigger: 'change'
}
],
projectSource: [
{
required: true,
message: ' ',
trigger: ['change','blur']
}
],
priorityDesc: [
{
required: true,
@ -324,11 +328,18 @@
trigger: 'change'
}
],
priority: [
{
required: true,
message: ' ',
trigger: ['change','blur']
}
],
needDate: [
{
required: true,
message: ' ',
trigger: 'change'
trigger: ['change','blur']
}
],
projectManagerName: [
@ -644,77 +655,84 @@
},
//
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>

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

@ -13,7 +13,7 @@
</el-form-item>
<el-form-item label=" ">
<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
:fields="fields()"
:data="exportData"
@ -47,6 +47,7 @@
label="操作">
<template slot-scope="scope">
<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>
</template>
</el-table-column>
@ -337,7 +338,7 @@
</el-dialog>
<!-- 上传文件的modal -->
<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>
</div>
</template>
@ -387,6 +388,8 @@
name: "null",
data() {
return {
// addOrUpdate
addOrUpdate:0,
//
contactChooseList1:[],
//
@ -1031,10 +1034,11 @@
}
},
// /
addOrUpdateHandle (id) {
addOrUpdateHandle (id,row) {
this.addOrUpdateVisible = true
this.addOrUpdate = id;
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
this.$refs.addOrUpdate.init()
})
},
UpdateHandle (row) {
@ -1046,6 +1050,7 @@
getProjectUserRole(inData).then(({data}) => {
if(this.$store.state.user.name=='admin'||data.row.updateFlag=='Y') {
this.addOrUpdateVisible = true
this.addOrUpdate = 1;
this.$nextTick(() => {
this.$refs.addOrUpdate.init(row.id)
})

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

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

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

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

Loading…
Cancel
Save