基础管理-项目管理整体完善,优化
This commit is contained in:
parent
ab9d2d856c
commit
64f549744f
|
|
@ -1,35 +1,27 @@
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
|
||||||
// 新增项目部
|
// 新增和修改项目部
|
||||||
export const addDeptProjectAPI = (data) => {
|
export const addAndEditDeptProjectAPI = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/project/***',
|
url: '/bmw/pmOrg/addOrUpdatePmOrg',
|
||||||
method: 'POST',
|
|
||||||
data,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改项目部
|
|
||||||
export const editDeptProjectAPI = (data) => {
|
|
||||||
return request({
|
|
||||||
url: '/project/***',
|
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
data,
|
data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除项目部
|
// 删除项目部
|
||||||
export const deleteDeptProjectAPI = (id) => {
|
export const deleteDeptProjectAPI = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: `/project/****/${id}`,
|
url: '/bmw/pmOrg/delPmOrg',
|
||||||
method: 'DELETE',
|
method: 'POST',
|
||||||
|
data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取项目部列表
|
// 获取项目部列表
|
||||||
export const getDeptProjectListAPI = (data) => {
|
export const getDeptProjectListAPI = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/project/***',
|
url: '/bmw/pmOrg/list',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
params: data,
|
params: data,
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ export function getCompanySelectListAPI() {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取总包工程列表
|
// 获取总包工程列表
|
||||||
export function getMainProjectListAllAPI() {
|
export function getMainProjectListAllAPI() {
|
||||||
return request({
|
return request({
|
||||||
|
|
@ -16,3 +17,19 @@ export function getMainProjectListAllAPI() {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取分公司下拉列表
|
||||||
|
export function getSubCompanySelectListAPI() {
|
||||||
|
return request({
|
||||||
|
url: '/bmw/subCompany/listAll',
|
||||||
|
method: 'get',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取标段工程下拉列表
|
||||||
|
export function getLotProjectSelectListAPI() {
|
||||||
|
return request({
|
||||||
|
url: '/bmw/pmProject/listAll',
|
||||||
|
method: 'get',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,16 +4,24 @@ const common = {
|
||||||
companySelectList: [],
|
companySelectList: [],
|
||||||
// 总包工程列表
|
// 总包工程列表
|
||||||
mainProjectList: [],
|
mainProjectList: [],
|
||||||
|
// 分公司下拉列表
|
||||||
|
subCompanySelectList: [],
|
||||||
|
// 标段工程下拉列表
|
||||||
|
lotProjectSelectList: [],
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
SET_COMPANY_SELECT_LIST(state, companySelectList) {
|
SET_COMPANY_SELECT_LIST(state, companySelectList) {
|
||||||
state.companySelectList = companySelectList
|
state.companySelectList = companySelectList
|
||||||
},
|
},
|
||||||
SET_MAIN_PROJECT_LIST(state, mainProjectList) {
|
SET_MAIN_PROJECT_LIST(state, mainProjectList) {
|
||||||
console.log(mainProjectList, 'mainProjectList--store')
|
|
||||||
|
|
||||||
state.mainProjectList = mainProjectList
|
state.mainProjectList = mainProjectList
|
||||||
},
|
},
|
||||||
|
SET_SUB_COMPANY_SELECT_LIST(state, subCompanySelectList) {
|
||||||
|
state.subCompanySelectList = subCompanySelectList
|
||||||
|
},
|
||||||
|
SET_LOT_PROJECT_SELECT_LIST(state, lotProjectSelectList) {
|
||||||
|
state.lotProjectSelectList = lotProjectSelectList
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
import { getCompanySelectListAPI, getMainProjectListAllAPI } from '@/api/common'
|
import {
|
||||||
|
getCompanySelectListAPI,
|
||||||
|
getMainProjectListAllAPI,
|
||||||
|
getSubCompanySelectListAPI,
|
||||||
|
getLotProjectSelectListAPI,
|
||||||
|
} from '@/api/common'
|
||||||
|
|
||||||
// 获取公司下拉列表
|
// 获取公司下拉列表
|
||||||
export async function getCompanySelectListCommonFun() {
|
export async function getCompanySelectListCommonFun() {
|
||||||
|
|
@ -30,3 +35,31 @@ export async function getMainProjectListCommonFun() {
|
||||||
}
|
}
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取分公司下拉列表
|
||||||
|
export async function getSubCompanySelectListCommonFun() {
|
||||||
|
const { subCompanySelectList } = store.state.common
|
||||||
|
if (subCompanySelectList.length > 0) {
|
||||||
|
return subCompanySelectList
|
||||||
|
}
|
||||||
|
const res = await getSubCompanySelectListAPI()
|
||||||
|
if (res.code === 200) {
|
||||||
|
store.commit('SET_SUB_COMPANY_SELECT_LIST', res.rows)
|
||||||
|
return res.rows
|
||||||
|
}
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取标段工程下拉列表
|
||||||
|
export async function getLotProjectSelectListCommonFun() {
|
||||||
|
const { lotProjectSelectList } = store.state.common
|
||||||
|
if (lotProjectSelectList.length > 0) {
|
||||||
|
return lotProjectSelectList
|
||||||
|
}
|
||||||
|
const res = await getLotProjectSelectListAPI()
|
||||||
|
if (res.code === 200) {
|
||||||
|
store.commit('SET_LOT_PROJECT_SELECT_LIST', res.rows)
|
||||||
|
return res.rows
|
||||||
|
}
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -146,11 +146,13 @@
|
||||||
label="子项目名称"
|
label="子项目名称"
|
||||||
prop="proName"
|
prop="proName"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column label="工程类型" align="center">
|
||||||
label="工程类型"
|
<template slot-scope="{ row }">
|
||||||
align="center"
|
<el-tag size="mini" type="primary">
|
||||||
prop="proType"
|
{{ initProType(row.proType) }}
|
||||||
/>
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
label="所属分公司"
|
label="所属分公司"
|
||||||
|
|
@ -173,7 +175,7 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="{ row }">
|
<template slot-scope="{ row }">
|
||||||
<el-tag size="mini" type="primary">
|
<el-tag size="mini" type="primary">
|
||||||
{{ row.proStatus }}
|
{{ initProStatus(row.proStatus) }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -195,7 +197,7 @@ import {
|
||||||
} from '@/api/basic-manage/project-manage/all-project'
|
} from '@/api/basic-manage/project-manage/all-project'
|
||||||
export default {
|
export default {
|
||||||
name: 'AllProject',
|
name: 'AllProject',
|
||||||
dicts: ['voltage_level'],
|
dicts: ['voltage_level', 'project_type', 'project_status'],
|
||||||
components: {
|
components: {
|
||||||
TableModel,
|
TableModel,
|
||||||
DialogModel,
|
DialogModel,
|
||||||
|
|
@ -356,6 +358,26 @@ export default {
|
||||||
}
|
}
|
||||||
this.dialogConfig.outerVisible = false
|
this.dialogConfig.outerVisible = false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
initProType(data) {
|
||||||
|
if (typeof data === 'string') {
|
||||||
|
return this.dict.type.project_type.find(
|
||||||
|
(item) => item.value == data,
|
||||||
|
).label
|
||||||
|
}
|
||||||
|
|
||||||
|
return data || ''
|
||||||
|
},
|
||||||
|
|
||||||
|
initProStatus(data) {
|
||||||
|
if (typeof data === 'string') {
|
||||||
|
return this.dict.type.project_status.find(
|
||||||
|
(item) => item.value == data,
|
||||||
|
).label
|
||||||
|
}
|
||||||
|
|
||||||
|
return data || ''
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -8,42 +8,20 @@ export const formLabel = [
|
||||||
]
|
]
|
||||||
|
|
||||||
export const columnsList = [
|
export const columnsList = [
|
||||||
{ t_props: 'projectName', t_label: '分公司' },
|
{ t_props: 'subComName', t_label: '分公司' },
|
||||||
{ t_props: 'level', t_label: '项目部名称' },
|
{ t_props: 'orgName', t_label: '项目部名称' },
|
||||||
|
|
||||||
{
|
{
|
||||||
t_props: 'count',
|
|
||||||
t_label: '项目部工程数量',
|
t_label: '项目部工程数量',
|
||||||
t_slot: 'count',
|
t_slot: 'count',
|
||||||
},
|
},
|
||||||
{ t_props: 'status', t_label: '状态' },
|
{ t_slot: 'isEnable', t_label: '状态' },
|
||||||
]
|
|
||||||
|
|
||||||
export const testTableList = [
|
|
||||||
{
|
|
||||||
projectName: '总工程名称',
|
|
||||||
level: '电压等级',
|
|
||||||
status: '在建',
|
|
||||||
count: '6',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
projectName: '总工程名称2',
|
|
||||||
level: '电压等级',
|
|
||||||
status: '停工',
|
|
||||||
count: '5',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
projectName: '总工程名称3',
|
|
||||||
level: '电压等级',
|
|
||||||
status: '筹建',
|
|
||||||
count: '10',
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
export const dialogConfig = {
|
export const dialogConfig = {
|
||||||
outerVisible: false,
|
outerVisible: false,
|
||||||
outerTitle: '',
|
outerTitle: '',
|
||||||
outerWidth: '50%',
|
outerWidth: '40%',
|
||||||
minHeight: '',
|
minHeight: '',
|
||||||
maxHeight: '',
|
maxHeight: '',
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,8 @@
|
||||||
:formLabel="formLabel"
|
:formLabel="formLabel"
|
||||||
:showOperation="true"
|
:showOperation="true"
|
||||||
:showRightTools="true"
|
:showRightTools="true"
|
||||||
ref="allProjectTableRef"
|
ref="deptProjectTableRef"
|
||||||
:columnsList="columnsList"
|
:columnsList="columnsList"
|
||||||
:testTableList="testTableList"
|
|
||||||
:request-api="getDeptProjectListAPI"
|
:request-api="getDeptProjectListAPI"
|
||||||
>
|
>
|
||||||
<template slot="btn" slot-scope="{ queryParams }">
|
<template slot="btn" slot-scope="{ queryParams }">
|
||||||
|
|
@ -16,7 +15,7 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
type="success"
|
type="success"
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
@click="onHandleExportAllProject(queryParams)"
|
@click="onHandleExportDeptProject(queryParams)"
|
||||||
>
|
>
|
||||||
导出
|
导出
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -26,7 +25,8 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
@click="onHandleAddOrEditAllProject(1, null)"
|
v-hasPermi="['dept:project:add']"
|
||||||
|
@click="onHandleAddOrEditDeptProject(1, null)"
|
||||||
>
|
>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -35,17 +35,27 @@
|
||||||
<!-- 标段工程数量 -->
|
<!-- 标段工程数量 -->
|
||||||
<template slot="count" slot-scope="{ data }">
|
<template slot="count" slot-scope="{ data }">
|
||||||
<span class="cursor-blue" @click="onHandleViewLotProject(data)">
|
<span class="cursor-blue" @click="onHandleViewLotProject(data)">
|
||||||
{{ data.count }}
|
{{ data.pmProjectVoList.length }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template slot="isEnable" slot-scope="{ data }">
|
||||||
|
<el-tag
|
||||||
|
size="mini"
|
||||||
|
:type="data.isEnable === 1 ? 'success' : 'danger'"
|
||||||
|
>
|
||||||
|
{{ data.isEnable === 1 ? '启用' : '解散' }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template slot="handle" slot-scope="{ data }">
|
<template slot="handle" slot-scope="{ data }">
|
||||||
<el-button
|
<el-button
|
||||||
plain
|
plain
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
@click="onHandleAddOrEditAllProject(2, data)"
|
v-hasPermi="['dept:project:edit']"
|
||||||
|
@click="onHandleAddOrEditDeptProject(2, data)"
|
||||||
>
|
>
|
||||||
修改
|
修改
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -53,7 +63,8 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
type="danger"
|
type="danger"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
@click="onHandleDeleteAllProject(data)"
|
v-hasPermi="['dept:project:delete']"
|
||||||
|
@click="onHandleDeleteDeptProject(data)"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -75,38 +86,42 @@
|
||||||
:model="addOrEditForm"
|
:model="addOrEditForm"
|
||||||
:rules="addOrEditFormRules"
|
:rules="addOrEditFormRules"
|
||||||
>
|
>
|
||||||
<el-form-item label="所属分公司" prop="branchCompany">
|
<el-form-item label="所属分公司" prop="subComId">
|
||||||
<el-select
|
<el-select
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
placeholder="请选择所属分公司"
|
placeholder="请选择所属分公司"
|
||||||
v-model="addOrEditForm.branchCompany"
|
v-model="addOrEditForm.subComId"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
:key="item.value"
|
:key="item.id"
|
||||||
:label="item.label"
|
:value="item.id"
|
||||||
:value="item.value"
|
:label="item.subCompanyName"
|
||||||
v-for="item in branchCompanyOptions"
|
v-for="item in branchCompanyOptions"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="项目部名称" prop="projectName">
|
<el-form-item label="项目部名称" prop="orgName">
|
||||||
<el-input
|
<el-input
|
||||||
clearable
|
clearable
|
||||||
placeholder="请输入项目部名称"
|
placeholder="请输入项目部名称"
|
||||||
v-model="addOrEditForm.projectName"
|
v-model="addOrEditForm.orgName"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="项目部状态" prop="projectStatus">
|
<el-form-item label="项目部状态" prop="isEnable">
|
||||||
<el-radio-group
|
<el-radio-group
|
||||||
size="medium"
|
size="medium"
|
||||||
v-model="addOrEditForm.projectStatus"
|
v-model="addOrEditForm.isEnable"
|
||||||
>
|
>
|
||||||
<el-radio-button label="启用" />
|
<el-radio-button :label="1">
|
||||||
<el-radio-button label="解散" />
|
启用
|
||||||
|
</el-radio-button>
|
||||||
|
<el-radio-button :label="0">
|
||||||
|
解散
|
||||||
|
</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
@ -140,33 +155,41 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
label="子项目名称"
|
label="子项目名称"
|
||||||
prop="lotProjectName"
|
prop="proName"
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
label="专业"
|
|
||||||
align="center"
|
|
||||||
prop="professional"
|
|
||||||
/>
|
/>
|
||||||
|
<el-table-column label="工程类型" align="center">
|
||||||
|
<template slot-scope="{ row }">
|
||||||
|
<el-tag size="mini" type="primary">
|
||||||
|
{{ initProType(row.proType) }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
label="所属分公司"
|
label="所属分公司"
|
||||||
prop="branchCompany"
|
prop="subComName"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
label="电压等级"
|
label="电压等级"
|
||||||
prop="voltageLevel"
|
prop="volLevel"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="工程地址"
|
label="工程地址"
|
||||||
align="center"
|
align="center"
|
||||||
prop="engineeringAddress"
|
prop="proAddress"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
label="工程状态"
|
label="工程状态"
|
||||||
prop="engineeringStatus"
|
prop="proStatus"
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="{ row }">
|
||||||
|
<el-tag size="mini" type="primary">
|
||||||
|
{{ initProStatus(row.proStatus) }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -177,15 +200,16 @@
|
||||||
<script>
|
<script>
|
||||||
import TableModel from '@/components/TableModel'
|
import TableModel from '@/components/TableModel'
|
||||||
import DialogModel from '@/components/DialogModel'
|
import DialogModel from '@/components/DialogModel'
|
||||||
import { formLabel, columnsList, dialogConfig, testTableList } from './config'
|
import { formLabel, columnsList, dialogConfig } from './config'
|
||||||
import {
|
import {
|
||||||
addDeptProjectAPI,
|
addAndEditDeptProjectAPI,
|
||||||
editDeptProjectAPI,
|
|
||||||
deleteDeptProjectAPI,
|
deleteDeptProjectAPI,
|
||||||
getDeptProjectListAPI,
|
getDeptProjectListAPI,
|
||||||
} from '@/api/basic-manage/project-manage/dept-project'
|
} from '@/api/basic-manage/project-manage/dept-project'
|
||||||
|
import { getSubCompanySelectListCommonFun } from '@/utils/getCommonData'
|
||||||
export default {
|
export default {
|
||||||
name: 'DeptProject',
|
name: 'DeptProject',
|
||||||
|
dicts: ['project_type', 'project_status'],
|
||||||
components: {
|
components: {
|
||||||
TableModel,
|
TableModel,
|
||||||
DialogModel,
|
DialogModel,
|
||||||
|
|
@ -196,33 +220,33 @@ export default {
|
||||||
formLabel,
|
formLabel,
|
||||||
columnsList,
|
columnsList,
|
||||||
dialogConfig,
|
dialogConfig,
|
||||||
testTableList,
|
|
||||||
getDeptProjectListAPI,
|
getDeptProjectListAPI,
|
||||||
|
|
||||||
// 新增或修改表单
|
// 新增或修改表单
|
||||||
addOrEditForm: {
|
addOrEditForm: {
|
||||||
projectName: '', // 项目部名称
|
subComId: '', // 项目部名称
|
||||||
branchCompany: '', // 所属分公司
|
orgName: '', // 所属分公司
|
||||||
projectStatus: '启用', // 项目部状态
|
isEnable: 1, // 项目部状态
|
||||||
},
|
},
|
||||||
|
|
||||||
// 新增或修改表单验证
|
// 新增或修改表单验证
|
||||||
addOrEditFormRules: {
|
addOrEditFormRules: {
|
||||||
projectName: [
|
subComId: [
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
trigger: 'blur',
|
|
||||||
message: '请输入项目部名称',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
branchCompany: [
|
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
trigger: 'change',
|
trigger: 'change',
|
||||||
message: '请选择所属分公司',
|
message: '请选择所属分公司',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
projectStatus: [
|
orgName: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
trigger: 'blur',
|
||||||
|
message: '请输入项目部名称',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
isEnable: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
trigger: 'change',
|
trigger: 'change',
|
||||||
|
|
@ -232,65 +256,42 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
// 所属分公司
|
// 所属分公司
|
||||||
branchCompanyOptions: [
|
branchCompanyOptions: [],
|
||||||
{
|
|
||||||
label: '上海分公司',
|
|
||||||
value: '上海分公司',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '北京分公司',
|
|
||||||
value: '北京分公司',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '天津分公司',
|
|
||||||
value: '天津分公司',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '河北分公司',
|
|
||||||
value: '河北分公司',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
// 子项目(标段工程)概况
|
// 子项目(标段工程)概况
|
||||||
lotProjectList: [
|
lotProjectList: [],
|
||||||
{
|
|
||||||
lotProjectName: '子项目名称1',
|
|
||||||
professional: '专业',
|
|
||||||
branchCompany: '所属分公司1',
|
|
||||||
voltageLevel: '电压等级',
|
|
||||||
engineeringAddress: '工程地址',
|
|
||||||
engineeringStatus: '工程状态',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
lotProjectName: '子项目名称2',
|
|
||||||
professional: '专业',
|
|
||||||
branchCompany: '所属分公司1',
|
|
||||||
voltageLevel: '电压等级',
|
|
||||||
engineeringAddress: '工程地址',
|
|
||||||
engineeringStatus: '工程状态',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
lotProjectName: '子项目名称3',
|
|
||||||
professional: '专业',
|
|
||||||
branchCompany: '所属分公司',
|
|
||||||
voltageLevel: '电压等级',
|
|
||||||
engineeringAddress: '工程地址',
|
|
||||||
engineeringStatus: '工程状态',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async created() {
|
||||||
|
this.branchCompanyOptions = await getSubCompanySelectListCommonFun()
|
||||||
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
// 导出按钮
|
// 导出按钮
|
||||||
onHandleExportAllProject(queryParams) {
|
onHandleExportDeptProject(queryParams) {
|
||||||
console.log(queryParams, '导出')
|
this.download(
|
||||||
|
'/bmw/pmOrg/export',
|
||||||
|
{
|
||||||
|
...queryParams,
|
||||||
|
},
|
||||||
|
`项目部列表.xlsx`,
|
||||||
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
// 新增或修改
|
// 新增或修改
|
||||||
onHandleAddOrEditAllProject(type, data) {
|
onHandleAddOrEditDeptProject(type, data) {
|
||||||
this.dialogConfig.outerTitle =
|
this.dialogConfig.outerTitle =
|
||||||
type === 1 ? '新增项目部' : '修改项目部'
|
type === 1 ? '新增项目部' : '修改项目部'
|
||||||
|
if (type === 2) {
|
||||||
|
const { subComId, orgName, isEnable, id } = data
|
||||||
|
this.addOrEditForm = {
|
||||||
|
subComId,
|
||||||
|
orgName,
|
||||||
|
isEnable,
|
||||||
|
id,
|
||||||
|
}
|
||||||
|
}
|
||||||
this.dialogConfig.outerWidth = ''
|
this.dialogConfig.outerWidth = ''
|
||||||
this.dialogConfig.minHeight = ''
|
this.dialogConfig.minHeight = ''
|
||||||
this.dialogConfig.maxHeight = ''
|
this.dialogConfig.maxHeight = ''
|
||||||
|
|
@ -298,18 +299,18 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
onHandleDeleteAllProject(data) {
|
onHandleDeleteDeptProject(data) {
|
||||||
this.$confirm('确定删除该项目部吗?', '温馨提示', {
|
this.$confirm('确定删除该项目部吗?', '温馨提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
})
|
})
|
||||||
.then(async () => {
|
.then(async () => {
|
||||||
const res = await deleteDeptProjectAPI(data.id)
|
const res = await deleteDeptProjectAPI({ id: data.id })
|
||||||
console.log(res, '删除结果')
|
console.log(res, '删除结果')
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.$msgSuccess('删除成功')
|
this.$modal.msgSuccess('删除成功')
|
||||||
this.$refs.allProjectTableRef.getTableList() // 更新列表
|
this.$refs.deptProjectTableRef.getTableList() // 更新列表
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
|
@ -321,17 +322,24 @@ export default {
|
||||||
onHandleConfirmAddOrEdit() {
|
onHandleConfirmAddOrEdit() {
|
||||||
this.$refs.addOrEditFormRef.validate(async (valid) => {
|
this.$refs.addOrEditFormRef.validate(async (valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const API =
|
const params = {
|
||||||
this.dialogConfig.outerTitle === '新增项目部'
|
...this.addOrEditForm,
|
||||||
? addDeptProjectAPI
|
}
|
||||||
: editDeptProjectAPI
|
|
||||||
|
|
||||||
const res = await API(this.addOrEditForm)
|
if (this.dialogConfig.outerTitle === '新增项目部') {
|
||||||
|
delete params.id
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = await addAndEditDeptProjectAPI(params)
|
||||||
console.log(res, '新增或修改结果')
|
console.log(res, '新增或修改结果')
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.$msgSuccess('操作成功')
|
this.$modal.msgSuccess(
|
||||||
|
this.dialogConfig.outerTitle === '新增项目部'
|
||||||
|
? '新增成功'
|
||||||
|
: '修改成功',
|
||||||
|
)
|
||||||
this.handleCloseDialogOuter()
|
this.handleCloseDialogOuter()
|
||||||
this.$refs.allProjectTableRef.getTableList() // 更新列表
|
this.$refs.deptProjectTableRef.getTableList() // 更新列表
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -339,8 +347,14 @@ export default {
|
||||||
|
|
||||||
// 查看标段工程数量
|
// 查看标段工程数量
|
||||||
onHandleViewLotProject(data) {
|
onHandleViewLotProject(data) {
|
||||||
console.log(data, '查看标段工程数量')
|
// console.log(data, '查看标段工程数量')
|
||||||
|
|
||||||
|
if (data.pmProjectVoList.length === 0) {
|
||||||
|
this.$modal.msgError('暂无标段工程')
|
||||||
|
return
|
||||||
|
}
|
||||||
this.dialogConfig.outerTitle = '子项目(标段工程)概况'
|
this.dialogConfig.outerTitle = '子项目(标段工程)概况'
|
||||||
|
this.lotProjectList = data.pmProjectVoList
|
||||||
this.dialogConfig.outerWidth = '80%'
|
this.dialogConfig.outerWidth = '80%'
|
||||||
this.dialogConfig.minHeight = '90vh'
|
this.dialogConfig.minHeight = '90vh'
|
||||||
this.dialogConfig.maxHeight = '90vh'
|
this.dialogConfig.maxHeight = '90vh'
|
||||||
|
|
@ -354,6 +368,26 @@ export default {
|
||||||
}
|
}
|
||||||
this.dialogConfig.outerVisible = false
|
this.dialogConfig.outerVisible = false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
initProType(data) {
|
||||||
|
if (typeof data === 'string') {
|
||||||
|
return this.dict.type.project_type.find(
|
||||||
|
(item) => item.value == data,
|
||||||
|
).label
|
||||||
|
}
|
||||||
|
|
||||||
|
return data || ''
|
||||||
|
},
|
||||||
|
|
||||||
|
initProStatus(data) {
|
||||||
|
if (typeof data === 'string') {
|
||||||
|
return this.dict.type.project_status.find(
|
||||||
|
(item) => item.value == data,
|
||||||
|
).label
|
||||||
|
}
|
||||||
|
|
||||||
|
return data || ''
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="所属项目部" prop="orgId">
|
<el-form-item label="所属项目部" prop="orgId">
|
||||||
<el-select
|
<!-- <el-select
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
|
@ -41,7 +41,21 @@
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
v-for="item in xmbOptions"
|
v-for="item in xmbOptions"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select> -->
|
||||||
|
|
||||||
|
<treeselect
|
||||||
|
:flat="true"
|
||||||
|
:searchable="false"
|
||||||
|
:show-count="true"
|
||||||
|
noOptionsText="没有数据"
|
||||||
|
placeholder="请选择项目部"
|
||||||
|
noChildrenText="没有数据了"
|
||||||
|
noResultsText="没有搜索结果"
|
||||||
|
:disable-branch-nodes="true"
|
||||||
|
:options="subCompanyOptions"
|
||||||
|
v-model="addOrEditForm.orgId"
|
||||||
|
@select="onHandleSelectOrgId"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -193,10 +207,16 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { addAndEditLotLotProjectAPI } from '@/api/basic-manage/project-manage/lot-project'
|
import { addAndEditLotLotProjectAPI } from '@/api/basic-manage/project-manage/lot-project'
|
||||||
import { getMainProjectListCommonFun } from '@/utils/getCommonData'
|
import Treeselect from '@riophae/vue-treeselect'
|
||||||
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||||
|
import {
|
||||||
|
getMainProjectListCommonFun,
|
||||||
|
getSubCompanySelectListCommonFun,
|
||||||
|
} from '@/utils/getCommonData'
|
||||||
export default {
|
export default {
|
||||||
name: 'AddOrEditForm',
|
name: 'AddOrEditForm',
|
||||||
dicts: ['project_status', 'project_type', 'voltage_level'],
|
dicts: ['project_status', 'project_type', 'voltage_level'],
|
||||||
|
components: { Treeselect },
|
||||||
props: {
|
props: {
|
||||||
editFormData: {
|
editFormData: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
|
@ -227,7 +247,8 @@ export default {
|
||||||
return {
|
return {
|
||||||
addOrEditForm: {
|
addOrEditForm: {
|
||||||
mainProId: '', // 总包工程id
|
mainProId: '', // 总包工程id
|
||||||
orgId: '', // 项目部id
|
subComId: '', // 分公司id
|
||||||
|
orgId: undefined, // 项目部id
|
||||||
proName: '', // 标段工程名称
|
proName: '', // 标段工程名称
|
||||||
simpleName: '', // 标段工程简称
|
simpleName: '', // 标段工程简称
|
||||||
proType: '', // 工程类型
|
proType: '', // 工程类型
|
||||||
|
|
@ -358,13 +379,40 @@ export default {
|
||||||
label: '项目部2',
|
label: '项目部2',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
subCompanyOptions: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
async created() {
|
async created() {
|
||||||
// 获取总包工程下拉列表
|
// 获取总包工程下拉列表
|
||||||
const mainProjectList = await getMainProjectListCommonFun()
|
|
||||||
this.allProjectOptions = mainProjectList
|
this.allProjectOptions = await getMainProjectListCommonFun()
|
||||||
|
|
||||||
|
// 获取分公司下拉列表
|
||||||
|
const res = await getSubCompanySelectListCommonFun()
|
||||||
|
|
||||||
|
this.subCompanyOptions = res.map((item) => {
|
||||||
|
if (item.pmOrgList && item.pmOrgList.length > 0) {
|
||||||
|
return {
|
||||||
|
id: item.id,
|
||||||
|
label: item.subCompanyName,
|
||||||
|
children: item.pmOrgList.map((j) => {
|
||||||
|
return {
|
||||||
|
id: j.id,
|
||||||
|
label: j.orgName,
|
||||||
|
parentId: item.id,
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return {
|
||||||
|
id: item.id,
|
||||||
|
label: item.subCompanyName,
|
||||||
|
children: [],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -402,6 +450,11 @@ export default {
|
||||||
resetForm() {
|
resetForm() {
|
||||||
this.$refs.addOrEditFormRef.resetFields()
|
this.$refs.addOrEditFormRef.resetFields()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onHandleSelectOrgId(node) {
|
||||||
|
this.addOrEditForm.subComId = node.parentId
|
||||||
|
this.addOrEditForm.orgId = node.id
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
|
|
@ -410,6 +463,7 @@ export default {
|
||||||
if (Object.keys(newVal).length > 0) {
|
if (Object.keys(newVal).length > 0) {
|
||||||
const {
|
const {
|
||||||
mainProId,
|
mainProId,
|
||||||
|
subComId,
|
||||||
orgId,
|
orgId,
|
||||||
proName,
|
proName,
|
||||||
simpleName,
|
simpleName,
|
||||||
|
|
@ -428,6 +482,7 @@ export default {
|
||||||
this.addOrEditForm = {
|
this.addOrEditForm = {
|
||||||
mainProId,
|
mainProId,
|
||||||
orgId,
|
orgId,
|
||||||
|
subComId,
|
||||||
proName,
|
proName,
|
||||||
simpleName,
|
simpleName,
|
||||||
proType,
|
proType,
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,48 @@
|
||||||
export const formLabel = [
|
export const formLabel = [
|
||||||
{
|
{
|
||||||
f_label: '分公司',
|
f_label: '分公司',
|
||||||
f_model: 'company',
|
f_model: 'subComId',
|
||||||
f_type: 'sel',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '总包工程',
|
f_label: '总包工程',
|
||||||
f_model: 'allProject',
|
f_model: 'mainProId',
|
||||||
f_type: 'sel',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '标段工程',
|
f_label: '标段工程',
|
||||||
f_model: 'lotProject',
|
f_model: 'proName',
|
||||||
f_type: 'sel',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '工程状态',
|
f_label: '工程状态',
|
||||||
f_model: 'status',
|
f_model: 'proStatus',
|
||||||
f_type: 'sel',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '是否上海外项目',
|
f_label: '是否上海外项目',
|
||||||
f_model: 'isForeignProject',
|
f_model: 'isShanghai',
|
||||||
f_type: 'sel',
|
f_type: 'sel',
|
||||||
|
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [
|
||||||
|
{
|
||||||
|
label: '是',
|
||||||
|
value: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '否',
|
||||||
|
value: 0,
|
||||||
|
},
|
||||||
|
], // 状态列表
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,12 @@ import {
|
||||||
getLotLotProjectListAPI,
|
getLotLotProjectListAPI,
|
||||||
completeLotLotProjectAPI,
|
completeLotLotProjectAPI,
|
||||||
} from '@/api/basic-manage/project-manage/lot-project'
|
} from '@/api/basic-manage/project-manage/lot-project'
|
||||||
|
|
||||||
|
import {
|
||||||
|
getSubCompanySelectListCommonFun,
|
||||||
|
getMainProjectListCommonFun,
|
||||||
|
getLotProjectSelectListCommonFun,
|
||||||
|
} from '@/utils/getCommonData'
|
||||||
export default {
|
export default {
|
||||||
name: 'LotProject',
|
name: 'LotProject',
|
||||||
dicts: ['project_type', 'project_status'],
|
dicts: ['project_type', 'project_status'],
|
||||||
|
|
@ -132,7 +138,6 @@ export default {
|
||||||
columnsList,
|
columnsList,
|
||||||
dialogConfig,
|
dialogConfig,
|
||||||
editFormData: {},
|
editFormData: {},
|
||||||
|
|
||||||
getLotLotProjectListAPI,
|
getLotLotProjectListAPI,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -297,5 +302,44 @@ export default {
|
||||||
this.dialogConfig.outerVisible = false
|
this.dialogConfig.outerVisible = false
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async created() {
|
||||||
|
const subCompany = await getSubCompanySelectListCommonFun()
|
||||||
|
const mainProject = await getMainProjectListCommonFun()
|
||||||
|
const lotProject = await getLotProjectSelectListCommonFun()
|
||||||
|
console.log('lotProject', lotProject)
|
||||||
|
|
||||||
|
formLabel.forEach((item) => {
|
||||||
|
if (item.f_model === 'subComId') {
|
||||||
|
item.f_selList = subCompany.map((item) => {
|
||||||
|
return {
|
||||||
|
label: item.subCompanyName,
|
||||||
|
value: item.id,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (item.f_model === 'mainProId') {
|
||||||
|
item.f_selList = mainProject.map((item) => {
|
||||||
|
return {
|
||||||
|
label: item.mainProName,
|
||||||
|
value: item.id,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.f_model === 'proStatus') {
|
||||||
|
item.f_selList = this.dict.type.project_status
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.f_model === 'proName') {
|
||||||
|
item.f_selList = lotProject.map((item) => {
|
||||||
|
return {
|
||||||
|
label: item.proName,
|
||||||
|
value: item.proName,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue