Commit f373cea4 authored by ztf's avatar ztf

项目详情要素相关组件

parent e4c3a233
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
注:此处只是demo演示,如果模型名与微前端的dee-后的变量一致,无需再次配置 注:此处只是demo演示,如果模型名与微前端的dee-后的变量一致,无需再次配置
*/ */
export default { export default {
'basic-service': ['dee-user', 'dee-audit', 'dee-config', 'dee-pdc', 'dee-file', 'dee-context', 'dee-production', 'dee-quality'], 'basic-service': ['dee-user', 'dee-audit', 'dee-config', 'dee-pdc', 'dee-file', 'dee-context', 'dee-production', 'dee-quality', 'dee-project'],
'resource': ['dee-resource'], 'resource': ['dee-resource'],
'process': ['dee-craft', 'dee-config'], 'process': ['dee-craft', 'dee-config'],
'xbomthread': ['dee-pdc', 'dee-cmt', 'dee-doc', 'dee-production', 'dee-craft'], 'xbomthread': ['dee-pdc', 'dee-cmt', 'dee-doc', 'dee-production', 'dee-craft'],
......
<template>
<el-tabs type="card">
<el-tab-pane label="收入合同">
<div class="content">
<dee-as-page :key="incomeContractPageKey" :page-key="incomeContractPageKey" />
</div>
</el-tab-pane>
<el-tab-pane label="支出合同">
<div class="content">
<dee-as-page
:key="spendingContractPageKey"
:page-key="spendingContractPageKey"
/>
</div>
</el-tab-pane>
</el-tabs>
</template>
<script>
export default {
name: 'Funds',
componentName: '经费管理页面',
props: {
basicData: {
type: Object,
default: () => {}
}
},
data() {
return {
spendingContractPageKey: '87b4f333-5f0e-4055-b215-f66b5d45f919',
incomeContractPageKey: '80bff7f2-0038-4ca6-9544-1496ce0b6459'
}
},
watch: {
basicData(val) {
// 监听传进来的数据,如果是项目的话都展示
// 如果是子项的话只能看到支出合同
}
}
}
</script>
<style lang="scss" scoped>
.content{
height: calc(100vh - 100px);
}
</style>
<template>
<div class="link" @click="ToRelatedPage">{{ currentValue }}</div>
</template>
<script>
export default {
name: 'GotoProjectDetail',
componentName: '详情-项目要素',
props: {
value: {
type: [Object, String],
default: () => {}
},
form: {
type: Object,
default: () => {}
},
itemObj: {
type: Object,
default: () => {}
}
},
layoutConfigData: [
{
title: '高级组件配置',
data: [
{
key: 'pageLink',
title: '跳转页面编码',
component: {
name: 'el-input'
}
}]
}
],
data() {
return {
currentValue: this.value ? this.value.number || this.value : null
}
},
mounted() {
},
methods: {
ToRelatedPage() {
console.log('this.form列表数据', this.form)
const name = this.form.name
const id = this.form.id
const pageNumber = '7cbdc38f-0122-4e78-b162-57601a33bb7a'
this.$router.push({
path: `/page/${pageNumber}/${id}/?id=${id}&title=${name}`,
query: { title: name + '详情', id: id }
})
}
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div class="PlanTreeMenu">
<!-- 两种方式的自动超长省略 -->
<!-- <el-tooltip effect="dark" :content="projectTitle" placement="bottom" :disabled="!isShowTooltip">
<div ref="name" class="title ellipsis" @mouseover="onMouseOver">{{ projectTitle }}</div>
</el-tooltip> -->
<div ref="name" class="title ellipsis" :title="isShowTooltip?projectTitle:''" @mouseover="onMouseOver">{{ projectTitle }}</div>
<el-tree
ref="tree"
class="PlanTreeMenu-main"
node-key="id"
:data="treeData"
empty-text="暂无数据"
:highlight-current="true"
:expand-on-click-node="false"
:props="defaultProps"
default-expand-all
@node-click="nodeClick"
>
<div slot-scope="{node, data}" class="PlanTreeMenu-node hover-visible">
<div :title="node.label" class="PlanTreeMenu-label" :class="{'disabled-node': node.disabled}">
<div class="flex-start">
<img v-if="data.icon" width="21px" height="21px" :src="data.icon" alt="">
<span v-if="node.label" class="change-text">
{{ node.label }}
</span>
</div>
</div>
</div>
</el-tree>
</div>
</template>
<script>
// import { getPlanTree } from '@/api/plan'
import view from './view.js'
export default {
componentName: '左侧项目要素树',
name: 'ProjectTree',
mixins: [view],
props: {},
data() {
return {
evenList: [
{
even: 'nodeClick',
name: '节点被点击时的回调'
}
],
permissionObj: {},
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [],
isEdit: false,
basicData: null,
projectTitle: `${this.$route.query.projectCode} - ${this.$route.query.title}`,
isShowTooltip: false
}
},
computed: {
},
watch: {
},
mounted() {
this.initTreeData()
console.log('this.$route.query', this.$route.query)
},
methods: {
onMouseOver() {
const el = this.$refs.name
this.isShowTooltip = el.clientWidth < el.scrollWidth
},
// 判断是否显示按钮`
initTreeData(val, planTaskNodes) {
// getPlanTree(this.$route.query.id).then(res => {
// let plans = []
// if (Array.isArray(res.items) && res.items.length > 0) {
// plans = res.items.map(r => {
// r.componentType = 'customComponent'
// r.componentName = 'TaskGantt'
// return r
// })
// }
const planNode = {
disabled: false,
name: '计划',
// planId: this.$route.query.id,
// componentType: 'customComponent',
// componentName: 'TaskGantt',
icon: '/icons/dee-project/plan.png',
// subTypeName: 'DxProjectItem'
componentType: 'formConfig',
formConfigType: 'page',
pageKey: '22c90a9f-0907-49ea-8f8d-d5234e93e0e6',
// children: plans
children: [{
name: '采购',
planId: this.$route.query.id,
icon: '/icons/dee-project/baseline.png',
componentType: 'formConfig',
formConfigType: 'page',
pageKey: 'a5728005-cd38-4568-bc63-8888fd7e5b5a'
},
{
name: 'IED',
planId: this.$route.query.id,
icon: '/icons/dee-project/baseline.png',
componentType: 'formConfig',
formConfigType: 'page',
pageKey: 'd4e791a9-57bf-477c-b760-53bdc351bc7f'
},
{
name: 'ICM',
planId: this.$route.query.id,
icon: '/icons/dee-project/baseline.png',
componentType: 'formConfig',
formConfigType: 'page',
pageKey: 'fe0b5925-0b7f-42bd-adbc-8ecb738013a0'
}]
}
const treeData = [planNode].concat(this.projectMenus)
this.treeData = treeData
// plans.length && this.nodeClick(plans[0])
// })
},
completeEven() {
this.initTreeData()
},
nodeClick(data) {
// console.log('nodeClick', data) this.$emit('nodeClick', data)
// if (data.name !== '计划') {
this.$emit('nodeClick', data)
// console.log('data', data)
// }
}
}
}
</script>
<style lang="scss">
.PlanTreeMenu{
height: 100%;
box-sizing: border-box;
padding: 0!important;
background-color:white;
overflow: hidden;
.title{
padding: 0 8px;
height: 40px;
line-height: 40px;
font-size: 16px;
font-weight: bold;
border-bottom: 1px solid #DBE2E5;
}
.PlanTreeMenu-main{
height: calc(100% - 40px);
overflow: auto;
}
.PlanTreeMenu-label{
display: flex;
justify-content: space-between;
font-size:14px;
img{
display: block;
}
}
.tree-btn-box{
margin-left: 6px;
}
.search-form-box{
padding:0px;
}
.search-form-box .dee-search-form .el-form-item__label {
text-align: center;
}
.search-form-box .search-box-item {
width: 100%;
}
.dee-search-form{
&>div{
padding-bottom: 8px !important;
}
}
.dee-search-form{
border-bottom: 1px solid #dcdfe6;
}
.dee-search-form{
margin-bottom: 0px !important;
margin-top: 20px;
// padding-bottom: 20px;
.dee-form-item{
width: 100%;
}
}
.search-box-btn{
display: none;
}
.searchBtn{
display: none !important;
}
.el-tree{
background-color: transparent;
}
.el-scrollbar .el-scrollbar__wrap {
overflow-x: hidden;
}
.el-tree>.el-tree-node {
min-width: 100%;
display:inline-block;
}
.el-tree-node__content {
align-self: baseline;
}
.el-tree-node__content{
padding:1px 8px;
&:hover{
.PlanTreeMenu-btn{
display: block;
visibility: visible;
}
}
}
.el-tree-node__expand-icon{
font-size: 16px;
}
.PlanTreeMenu-btn_item{
width: 18px;
height: 18px;
border: none;
background-color: transparent;
background-size:100% 100%;
border-radius: 0;
outline:none;
cursor: pointer;
// &:hover{
// // border-top: 1px solid transparent;
// }
&.btn-add{
background-image: url("/icons/c-add.png");
}
&.btn-edit{
background-image: url("/icons/c-edit.png");
}
&.btn-delete{
background-image: url("/icons/c-creatbackups.png");
}
}
&-node{
width: 100%;
display: flex;
flex-direction:row;
align-items: center;
justify-content: space-between;
flex: 1;
box-sizing: border-box;
overflow: hidden;
}
&-label{
flex: 1;
overflow: hidden;
white-space:nowrap;
text-overflow:ellipsis;
display: flex;
align-items: center;
color:#424141;
font-weight: 500;
img{
margin-right: 6px;
}
}
&-btn{
// display: none;
visibility: hidden;
// width: 180px;
text-align: right;
button {
margin-left: 8px;
}
}
}
.disabled-node {
opacity: .5;
}
.PlanTreeMenu .el-tree>.el-tree-node>.el-tree-node__content>.PlanTreeMenu-node>.PlanTreeMenu-label{
font-size: 14px;
// font-weight: bold;
}
.PlanTreeMenu .el-tree .el-tree-node .el-tree-node__children {
background: #fafafa
}
.hover-visible{
.tree-btn-box{
visibility: hidden;
}
&:hover{
.tree-btn-box{
visibility: visible;
}
}
}
</style>
/*
* @Author: zhangtianfeng 3232807530@qq.com
* @Date: 2024-09-02 09:44:58
* @LastEditors: zhangtianfeng 3232807530@qq.com
* @LastEditTime: 2024-09-03 16:06:05
* @FilePath: \inet-two\applications\dee-project\src\privateComponents\components\leftProjectTree\view.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
export default {
props: {},
data() {
return {
projectMenus: [
{
name: '资源',
planId: this.$route.query.id,
componentName: 'PlanTeam',
icon: '/icons/dee-project/team.png',
componentType: 'formConfig',
formConfigType: 'page',
pageKey: '71091156-e060-40a8-9573-1136d345c1c4',
disabled: false
},
{
name: '经费',
planId: this.$route.query.id,
icon: '/icons/dee-project/baseline.png',
componentType: 'formConfig',
formConfigType: 'page',
pageKey: 'b893b248-6993-4f21-bc56-d543be6f6f45'
},
{
name: '基线',
planId: this.$route.query.id,
icon: '/icons/dee-project/baseline.png',
componentType: 'formConfig',
formConfigType: 'page',
pageKey: 'fe0b5925-0b7f-42bd-adbc-8ecb738013a0'
},
{
name: '文档',
planId: this.$route.query.id,
icon: '/icons/dee-project/baseline.png',
componentType: 'formConfig',
formConfigType: 'page',
pageKey: 'fe0b5925-0b7f-42bd-adbc-8ecb738013a0'
},
{
name: '归档',
planId: this.$route.query.id,
icon: '/icons/dee-project/baseline.png',
componentType: 'formConfig',
formConfigType: 'page',
pageKey: 'fe0b5925-0b7f-42bd-adbc-8ecb738013a0'
}
// {
// name: '子项',
// planId: this.$route.query.id,
// icon: '/icons/dee-project/baseline.png',
// componentType: 'formConfig',
// formConfigType: 'page',
// pageKey: 'fe0b5925-0b7f-42bd-adbc-8ecb738013a0'
// }
]
}
},
computed: {},
watch: {},
created() {
},
methods: {
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment