|
|
@@ -1,189 +1,213 @@
|
|
|
<template>
|
|
|
- <div class="ele-body">
|
|
|
- <el-card shadow="never">
|
|
|
- <index-search @search="reload"/>
|
|
|
- <!-- 数据表格 -->
|
|
|
- <ele-pro-table
|
|
|
- ref="table"
|
|
|
- row-key="id"
|
|
|
- :columns="columns"
|
|
|
- :datasource="datasource"
|
|
|
- height="calc(100vh - 400px)"
|
|
|
- full-height="calc(100vh - 116px)"
|
|
|
- :default-expand-all="true"
|
|
|
- cache-key="project-initiationTable"
|
|
|
- :selection.sync="selection"
|
|
|
- :tree-props="{children: 'projectList'}"
|
|
|
- @done="onDone"
|
|
|
- :indent="15"
|
|
|
- >
|
|
|
- <!-- :lazy="true"-->
|
|
|
- <!-- 表头工具栏 -->
|
|
|
- <template v-slot:toolbar>
|
|
|
- <el-button
|
|
|
- size="small"
|
|
|
- type="primary"
|
|
|
- icon="el-icon-plus"
|
|
|
- class="ele-btn-icon"
|
|
|
- @click="openEdit('','add')">
|
|
|
- 新建
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- size="small"
|
|
|
- type="danger"
|
|
|
- icon="el-icon-delete"
|
|
|
- class="ele-btn-icon"
|
|
|
- @click="allDelBtn"
|
|
|
+ <el-card shadow="never">
|
|
|
+ <ele-split-layout
|
|
|
+ width="180px"
|
|
|
+ allow-collapse
|
|
|
+ :right-style="{ overflow: 'hidden' }"
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <div class="ele-border-lighter sys-organization-list" style="margin-left: 10px">
|
|
|
+ <AssetTree
|
|
|
+ @handleNodeClick="handleNodeClick"
|
|
|
+ :defaultExpandAll=true
|
|
|
+ code="XM1"
|
|
|
+ :isFirstRefreshTable="false"
|
|
|
+ ref="treeList"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <template v-slot:content>
|
|
|
+ <el-card shadow="never">
|
|
|
+ <index-search @search="reload"/>
|
|
|
+ <!-- 数据表格 -->
|
|
|
+ <ele-pro-table
|
|
|
+ ref="table"
|
|
|
+ row-key="id"
|
|
|
+ :columns="columns"
|
|
|
+ :datasource="datasource"
|
|
|
+ height="calc(100vh - 400px)"
|
|
|
+ full-height="calc(100vh - 116px)"
|
|
|
+ :default-expand-all="true"
|
|
|
+ cache-key="project-initiationTable"
|
|
|
+ :selection.sync="selection"
|
|
|
+ :tree-props="{children: 'projectList'}"
|
|
|
+ @done="onDone"
|
|
|
+ :indent="15"
|
|
|
>
|
|
|
- 删除
|
|
|
- </el-button>
|
|
|
- <!-- <el-button-->
|
|
|
- <!-- size="small"-->
|
|
|
- <!-- type="danger"-->
|
|
|
- <!-- icon="el-icon-remove-outline"-->
|
|
|
- <!-- class="ele-btn-icon"-->
|
|
|
- <!-- @click="handleStatus('4')"-->
|
|
|
- <!-- >-->
|
|
|
- <!-- 终止-->
|
|
|
- <!-- </el-button>-->
|
|
|
- <!-- <el-button-->
|
|
|
- <!-- size="small"-->
|
|
|
- <!-- type="warning"-->
|
|
|
- <!-- icon="el-icon-video-play"-->
|
|
|
- <!-- class="ele-btn-icon"-->
|
|
|
- <!-- @click="handleStatus('2')"-->
|
|
|
- <!-- >-->
|
|
|
- <!-- 暂停-->
|
|
|
- <!-- </el-button>-->
|
|
|
- <!-- <el-button-->
|
|
|
- <!-- size="small"-->
|
|
|
- <!-- type="primary"-->
|
|
|
- <!-- icon="el-icon-video-pause"-->
|
|
|
- <!-- class="ele-btn-icon"-->
|
|
|
- <!-- @click="handleStatus('1')"-->
|
|
|
- <!-- >-->
|
|
|
- <!-- 启动-->
|
|
|
- <!-- </el-button>-->
|
|
|
- <!-- <el-button class="el-icon-sort" size="small" @click="expandAll">-->
|
|
|
- <!-- 展开/折叠-->
|
|
|
- <!-- </el-button>-->
|
|
|
- <!-- <div class="el-button--primary">122222</div> -->
|
|
|
- </template>
|
|
|
- <template v-slot:code="{ row }">
|
|
|
- <el-button type="text" @click="handelBOMConstructDetail(row,'view')">{{ row.code }}</el-button>
|
|
|
- </template>
|
|
|
- <template v-slot:status="{ row }">
|
|
|
- {{ getDictV('pro_projects_status', row.status) }}
|
|
|
- </template>
|
|
|
- <template v-slot:type="{ row }">
|
|
|
- {{ getDictV('pro_projects_type', row.type) }}
|
|
|
- </template>
|
|
|
- <template v-slot:isOverTime="{ row }">
|
|
|
- <el-tag v-if="row.isOverTime==0" type="success">正常</el-tag>
|
|
|
- <el-tag v-else type="danger">超时</el-tag>
|
|
|
- </template>
|
|
|
- <template v-slot:isOverbudget="{ row }">
|
|
|
- <el-tag v-if="row.isOverbudget==0" type="success">否</el-tag>
|
|
|
- <el-tag v-else type="danger">是</el-tag>
|
|
|
- </template>
|
|
|
- <template v-slot:speedPercent="{ row }">
|
|
|
- <el-progress :stroke-width="20" text-color="#606266" :text-inside="true" :percentage="row.speedPercent||0"
|
|
|
- :color="customColorMethod"></el-progress>
|
|
|
- </template>
|
|
|
-
|
|
|
- <!-- 操作列 -->
|
|
|
- <template v-slot:action="{ row }">
|
|
|
+ <!-- :lazy="true"-->
|
|
|
+ <!-- 表头工具栏 -->
|
|
|
+ <template v-slot:toolbar>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-plus"
|
|
|
+ class="ele-btn-icon"
|
|
|
+ v-if="$hasPermission('pro:projects:save')"
|
|
|
+ @click="openEdit('','add')">
|
|
|
+ 新建
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ type="danger"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ class="ele-btn-icon"
|
|
|
+ v-if="$hasPermission('pro:projects:delete')"
|
|
|
+ @click="allDelBtn"
|
|
|
+ >
|
|
|
+ 删除
|
|
|
+ </el-button>
|
|
|
+ <!-- <el-button-->
|
|
|
+ <!-- size="small"-->
|
|
|
+ <!-- type="danger"-->
|
|
|
+ <!-- icon="el-icon-remove-outline"-->
|
|
|
+ <!-- class="ele-btn-icon"-->
|
|
|
+ <!-- @click="handleStatus('4')"-->
|
|
|
+ <!-- >-->
|
|
|
+ <!-- 终止-->
|
|
|
+ <!-- </el-button>-->
|
|
|
+ <!-- <el-button-->
|
|
|
+ <!-- size="small"-->
|
|
|
+ <!-- type="warning"-->
|
|
|
+ <!-- icon="el-icon-video-play"-->
|
|
|
+ <!-- class="ele-btn-icon"-->
|
|
|
+ <!-- @click="handleStatus('2')"-->
|
|
|
+ <!-- >-->
|
|
|
+ <!-- 暂停-->
|
|
|
+ <!-- </el-button>-->
|
|
|
+ <!-- <el-button-->
|
|
|
+ <!-- size="small"-->
|
|
|
+ <!-- type="primary"-->
|
|
|
+ <!-- icon="el-icon-video-pause"-->
|
|
|
+ <!-- class="ele-btn-icon"-->
|
|
|
+ <!-- @click="handleStatus('1')"-->
|
|
|
+ <!-- >-->
|
|
|
+ <!-- 启动-->
|
|
|
+ <!-- </el-button>-->
|
|
|
+ <!-- <el-button class="el-icon-sort" size="small" @click="expandAll">-->
|
|
|
+ <!-- 展开/折叠-->
|
|
|
+ <!-- </el-button>-->
|
|
|
+ <!-- <div class="el-button--primary">122222</div> -->
|
|
|
+ </template>
|
|
|
+ <template v-slot:code="{ row }">
|
|
|
+ <el-button type="text" @click="handelBOMConstructDetail(row,'view')">{{ row.code }}</el-button>
|
|
|
+ </template>
|
|
|
+ <template v-slot:status="{ row }">
|
|
|
+ {{ getDictV('pro_projects_status', row.status) }}
|
|
|
+ </template>
|
|
|
+ <template v-slot:type="{ row }">
|
|
|
+ {{ getDictV('pro_projects_type', row.type) }}
|
|
|
+ </template>
|
|
|
+ <template v-slot:isOverTime="{ row }">
|
|
|
+ <el-tag v-if="row.isOverTime==0" type="success">正常</el-tag>
|
|
|
+ <el-tag v-else type="danger">超时</el-tag>
|
|
|
+ </template>
|
|
|
+ <template v-slot:isOverbudget="{ row }">
|
|
|
+ <el-tag v-if="row.isOverbudget==0" type="success">否</el-tag>
|
|
|
+ <el-tag v-else type="danger">是</el-tag>
|
|
|
+ </template>
|
|
|
+ <template v-slot:speedPercent="{ row }">
|
|
|
+ <el-progress :stroke-width="20" text-color="#606266" :text-inside="true" :percentage="row.speedPercent||0"
|
|
|
+ :color="customColorMethod"></el-progress>
|
|
|
+ </template>
|
|
|
|
|
|
- <el-link
|
|
|
- type="primary"
|
|
|
- :underline="false"
|
|
|
- icon="el-icon-plus"
|
|
|
- @click="processSubmit(row)"
|
|
|
- v-if="[0, 3].includes(row.processStatus)"
|
|
|
- >
|
|
|
- 提交
|
|
|
- </el-link>
|
|
|
- <el-link
|
|
|
- type="primary"
|
|
|
- :underline="false"
|
|
|
- icon="el-icon-edit"
|
|
|
- v-if="[0, 3].includes(row.processStatus)"
|
|
|
- @click="openEdit(row,'edit')"
|
|
|
- >
|
|
|
- 修改
|
|
|
- </el-link>
|
|
|
+ <!-- 操作列 -->
|
|
|
+ <template v-slot:action="{ row }">
|
|
|
|
|
|
- <el-popconfirm
|
|
|
- class="ele-action"
|
|
|
- title="确定要删除吗?"
|
|
|
- v-if="[0, 3].includes(row.processStatus)"
|
|
|
- @confirm="remove([row.id])">
|
|
|
- <template v-slot:reference>
|
|
|
- <el-link type="danger" :underline="false" icon="el-icon-delete">
|
|
|
- 删除
|
|
|
+ <el-link
|
|
|
+ type="primary"
|
|
|
+ :underline="false"
|
|
|
+ icon="el-icon-plus"
|
|
|
+ @click="processSubmit(row)"
|
|
|
+ v-if="[0, 3].includes(row.processStatus)"
|
|
|
+ >
|
|
|
+ 提交
|
|
|
+ </el-link>
|
|
|
+ <el-link
|
|
|
+ type="primary"
|
|
|
+ :underline="false"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ v-if="[0, 3].includes(row.processStatus)&&$hasPermission('pro:projects:update')"
|
|
|
+ @click="openEdit(row,'edit')"
|
|
|
+ >
|
|
|
+ 修改
|
|
|
</el-link>
|
|
|
- </template>
|
|
|
- </el-popconfirm>
|
|
|
|
|
|
- <el-dropdown trigger="click" >
|
|
|
+ <el-popconfirm
|
|
|
+ class="ele-action"
|
|
|
+ title="确定要删除吗?"
|
|
|
+ v-if="[0, 3].includes(row.processStatus)&&$hasPermission('pro:projects:delete')"
|
|
|
+ @confirm="remove([row.id])">
|
|
|
+ <template v-slot:reference>
|
|
|
+ <el-link type="danger" :underline="false" icon="el-icon-delete">
|
|
|
+ 删除
|
|
|
+ </el-link>
|
|
|
+ </template>
|
|
|
+ </el-popconfirm>
|
|
|
+
|
|
|
+ <el-dropdown trigger="click" >
|
|
|
<span class="el-dropdown-link">
|
|
|
操作菜单<i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
</span>
|
|
|
- <el-dropdown-menu slot="dropdown">
|
|
|
- <el-dropdown-item v-if="![0,1, 3].includes(row.processStatus)&&![4,2,3].includes(row.status)">
|
|
|
- <el-link icon="el-icon-success" type="success" :underline="false" @click="handleStatus(projectsFinishAPI,'完成',row)">完成
|
|
|
- </el-link>
|
|
|
- </el-dropdown-item>
|
|
|
- <el-dropdown-item v-if="![0,1, 3].includes(row.processStatus)&&![4,2,3].includes(row.status)">
|
|
|
- <el-link icon="el-icon-video-pause" type="warning" :underline="false" @click="handleStatus(projectsPauseAPI,'暂停',row)">暂停
|
|
|
- </el-link>
|
|
|
- </el-dropdown-item>
|
|
|
- <el-dropdown-item v-if="![0,1, 3].includes(row.processStatus)&&![4,1,0,3].includes(row.status)">
|
|
|
- <el-link icon="el-icon-video-play" type="success" :underline="false" @click="handleStatus(projectsStartupAPI,'启动',row)">启动
|
|
|
- </el-link>
|
|
|
- </el-dropdown-item>
|
|
|
- <el-dropdown-item v-if="![0,1, 3].includes(row.processStatus)&&![4,3].includes(row.status)">
|
|
|
- <el-link icon="el-icon-error" type="danger" :underline="false" @click="handleStatus(projectsTerminationAPI,'终止',row)">终止</el-link>
|
|
|
- </el-dropdown-item>
|
|
|
- <el-dropdown-item>
|
|
|
- <el-link icon="el-icon-info" type="primary" :underline="false" @click="handelBOMConstructDetail(row)">
|
|
|
- 项目信息
|
|
|
- </el-link>
|
|
|
- </el-dropdown-item>
|
|
|
- <el-dropdown-item divided v-if="[0,1,2,3].includes(row.processStatus)&&[0,1].includes(row.status)">
|
|
|
- <el-link
|
|
|
- icon="el-icon-circle-plus"
|
|
|
- type="primary"
|
|
|
- :underline="false"
|
|
|
- @click="handleAddPlan(row)">
|
|
|
- 新增计划
|
|
|
- </el-link>
|
|
|
- </el-dropdown-item>
|
|
|
- </el-dropdown-menu>
|
|
|
- </el-dropdown>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item v-if="![0,1, 3].includes(row.processStatus)&&![4,2,3].includes(row.status)&&$hasPermission('pro:projects:update')">
|
|
|
+ <el-link icon="el-icon-success" type="success" :underline="false" @click="handleStatus(projectsFinishAPI,'完成',row)">完成
|
|
|
+ </el-link>
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item v-if="![0,1, 3].includes(row.processStatus)&&![4,2,3].includes(row.status)&&$hasPermission('pro:projects:update')">
|
|
|
+ <el-link icon="el-icon-video-pause" type="warning" :underline="false" @click="handleStatus(projectsPauseAPI,'暂停',row)">暂停
|
|
|
+ </el-link>
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item v-if="![0,1, 3].includes(row.processStatus)&&![4,1,0,3].includes(row.status)&&$hasPermission('pro:projects:update')">
|
|
|
+ <el-link icon="el-icon-video-play" type="success" :underline="false" @click="handleStatus(projectsStartupAPI,'启动',row)">启动
|
|
|
+ </el-link>
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item v-if="![0,1, 3].includes(row.processStatus)&&![4,3].includes(row.status)&&$hasPermission('pro:projects:update')">
|
|
|
+ <el-link icon="el-icon-error" type="danger" :underline="false" @click="handleStatus(projectsTerminationAPI,'终止',row)">终止</el-link>
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item>
|
|
|
+ <el-link icon="el-icon-info" type="primary" :underline="false" @click="handelBOMConstructDetail(row)">
|
|
|
+ 项目信息
|
|
|
+ </el-link>
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item divided v-if="[0,1,2,3].includes(row.processStatus)&&[0,1].includes(row.status)">
|
|
|
+ <el-link
|
|
|
+ icon="el-icon-circle-plus"
|
|
|
+ type="primary"
|
|
|
+ :underline="false"
|
|
|
+ @click="handleAddPlan(row)">
|
|
|
+ 新增计划
|
|
|
+ </el-link>
|
|
|
+ </el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+
|
|
|
+
|
|
|
+ </template>
|
|
|
|
|
|
|
|
|
- </template>
|
|
|
+ </ele-pro-table>
|
|
|
+ </el-card>
|
|
|
+ </template>
|
|
|
+ <!-- 编辑弹窗 -->
|
|
|
+ <add-or-edit-dialog v-if="addOrEditDialogFlag" @reload="reload" :addOrEditDialogFlag.sync="addOrEditDialogFlag"
|
|
|
+ ref="addOrEditDialogRef"></add-or-edit-dialog>
|
|
|
+ <detail-dialog v-if="detailDialogFlag" :detailDialogFlag.sync="detailDialogFlag"
|
|
|
+ ref="detailDialogRef"></detail-dialog>
|
|
|
+ <!-- 新增计划 -->
|
|
|
+ <add-plan-dialog v-if="addPlanDialogFLag" @reload="reload" :addOrEditDialogFlag.sync="addPlanDialogFLag"
|
|
|
+ ref="addPlanDialogRef"></add-plan-dialog>
|
|
|
+ <!-- 多选删除弹窗 -->
|
|
|
+ <pop-modal
|
|
|
+ :visible.sync="delVisible"
|
|
|
+ content="是否确定删除?"
|
|
|
+ @done="commitBtn"
|
|
|
+ />
|
|
|
+ <process-submit-dialog :processSubmitDialogFlag.sync="processSubmitDialogFlag" v-if="processSubmitDialogFlag" ref="processSubmitDialogRef" @reload="reload"></process-submit-dialog>
|
|
|
+
|
|
|
+ </ele-split-layout>
|
|
|
+ </el-card>
|
|
|
|
|
|
|
|
|
- </ele-pro-table>
|
|
|
- </el-card>
|
|
|
- <!-- 编辑弹窗 -->
|
|
|
- <add-or-edit-dialog v-if="addOrEditDialogFlag" @reload="reload" :addOrEditDialogFlag.sync="addOrEditDialogFlag"
|
|
|
- ref="addOrEditDialogRef"></add-or-edit-dialog>
|
|
|
- <detail-dialog v-if="detailDialogFlag" :detailDialogFlag.sync="detailDialogFlag"
|
|
|
- ref="detailDialogRef"></detail-dialog>
|
|
|
- <!-- 新增计划 -->
|
|
|
- <add-plan-dialog v-if="addPlanDialogFLag" @reload="reload" :addOrEditDialogFlag.sync="addPlanDialogFLag"
|
|
|
- ref="addPlanDialogRef"></add-plan-dialog>
|
|
|
- <!-- 多选删除弹窗 -->
|
|
|
- <pop-modal
|
|
|
- :visible.sync="delVisible"
|
|
|
- content="是否确定删除?"
|
|
|
- @done="commitBtn"
|
|
|
- />
|
|
|
- <process-submit-dialog :processSubmitDialogFlag.sync="processSubmitDialogFlag" v-if="processSubmitDialogFlag" ref="processSubmitDialogRef" @reload="reload"></process-submit-dialog>
|
|
|
- </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
@@ -197,7 +221,7 @@ import {reviewStatusEnum} from '@/enum/dict';
|
|
|
import {mapGetters} from "vuex";
|
|
|
import {getByCode} from "@/api/system/dictionary-data";
|
|
|
import popModal from "@/components/pop-modal/index.vue";
|
|
|
-
|
|
|
+import AssetTree from '@/components/AssetTree';
|
|
|
export default {
|
|
|
name: 'index',
|
|
|
components: {
|
|
|
@@ -206,7 +230,8 @@ export default {
|
|
|
detailDialog,
|
|
|
indexSearch,
|
|
|
processSubmitDialog,
|
|
|
- addPlanDialog
|
|
|
+ addPlanDialog,
|
|
|
+ AssetTree
|
|
|
},
|
|
|
computed: {
|
|
|
...mapGetters(['getDictValue']),
|
|
|
@@ -369,11 +394,10 @@ export default {
|
|
|
{
|
|
|
columnKey: 'action',
|
|
|
label: '操作',
|
|
|
- width: 200,
|
|
|
+ width: 280,
|
|
|
align: 'center',
|
|
|
resizable: false,
|
|
|
slot: 'action',
|
|
|
- showOverflowTooltip: true,
|
|
|
fixed: 'right'
|
|
|
}
|
|
|
]
|
|
|
@@ -456,6 +480,9 @@ export default {
|
|
|
this.$refs.table.reload({where, size: 1, pageNum: 10, parentId: '0'});
|
|
|
this.$refs.table.reRenderTable()
|
|
|
},
|
|
|
+ handleNodeClick(data, node) {
|
|
|
+ this.reload({type: data.id});
|
|
|
+ },
|
|
|
/* 显示编辑 */
|
|
|
openEdit(row = {}, type) {
|
|
|
this.addOrEditDialogFlag = true;
|
|
|
@@ -494,6 +521,7 @@ export default {
|
|
|
let params = {
|
|
|
businessId:row.id,
|
|
|
businessKey : 'pro_project_approve',
|
|
|
+ formCreateUserId: row.createUserId,
|
|
|
}
|
|
|
this.$refs.processSubmitDialogRef.init(params)
|
|
|
})
|
|
|
@@ -539,6 +567,9 @@ export default {
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
+:deep(.el-link--inner) {
|
|
|
+ margin-left: 0px !important;
|
|
|
+}
|
|
|
::v-deep .el-dropdown-link {
|
|
|
cursor: pointer;
|
|
|
color: #188ffd;
|
|
|
@@ -552,5 +583,19 @@ export default {
|
|
|
justify-content: flex-start;
|
|
|
}
|
|
|
}
|
|
|
+.sys-organization-list {
|
|
|
+ height: calc(100vh - 230px);
|
|
|
+ box-sizing: border-box;
|
|
|
+ border-width: 1px;
|
|
|
+ border-style: solid;
|
|
|
+ overflow: auto;
|
|
|
+}
|
|
|
|
|
|
+.sys-organization-list :deep(.el-tree-node__content) {
|
|
|
+ height: 40px;
|
|
|
+
|
|
|
+ & > .el-tree-node__expand-icon {
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|