|
@@ -39,15 +39,33 @@
|
|
|
:auto-expand-keys="TreeAutoExpandKeys"
|
|
|
default-expand-all
|
|
|
@node-tap="wbsElTreeClick"
|
|
|
- />
|
|
|
+ >
|
|
|
+ <template #default="{ node, data, level }">
|
|
|
+ <div class="data-custom-tree-node">
|
|
|
+ <!-- 树组件,节点名称 -->
|
|
|
+ <div :class="node.level === 1 ? 'level-name' : ''" class="label">
|
|
|
+ <span v-if="(data.type > 0 && data.majorDataType > 0) || (data.type > 0 && data.majorDataType <= 0)" class="hc-tree-node-type">
|
|
|
+ {{ getTreeNodeType(data.type, data.majorDataType) }}
|
|
|
+ </span>
|
|
|
+
|
|
|
+ <span :class="data.isHide === 1 ? 'text-red' : ''">
|
|
|
+ {{ node.label }}
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <!-- 树组件,统计数量 -->
|
|
|
+ <div class="submit-counts text-blue">【{{ data.submitCounts ?? 0 }}】</div>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 树组件,操作菜单 END -->
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </HcDataTree>
|
|
|
</el-scrollbar>
|
|
|
<el-scrollbar v-show="!isSearchTree" class="scroll-bar-right-16">
|
|
|
<HcLazyTree
|
|
|
ref="wbstree"
|
|
|
-
|
|
|
:auto-expand-keys="TreeAutoExpandKeys"
|
|
|
:is-mark="TreeMark"
|
|
|
-
|
|
|
is-counts
|
|
|
is-type
|
|
|
show-checkbox
|
|
@@ -57,15 +75,33 @@
|
|
|
@node-loading="ElTreeNodeLoading"
|
|
|
@node-tap="wbsElTreeClick"
|
|
|
@check="ElTreeNodeCheck"
|
|
|
- />
|
|
|
+ >
|
|
|
+ <template #default="{ node, data, level }">
|
|
|
+ <div class="data-custom-tree-node">
|
|
|
+ <!-- 树组件,节点名称 -->
|
|
|
+ <div :class="node.level === 1 ? 'level-name' : ''" class="label">
|
|
|
+ <span v-if="(data.type > 0 && data.majorDataType > 0) || (data.type > 0 && data.majorDataType <= 0)" class="hc-tree-node-type">
|
|
|
+ {{ getTreeNodeType(data.type, data.majorDataType) }}
|
|
|
+ </span>
|
|
|
+
|
|
|
+ <span :class="data.isHide === 1 ? 'text-red' : ''">
|
|
|
+ {{ node.label }}
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <!-- 树组件,统计数量 -->
|
|
|
+ <div class="submit-counts text-blue">【{{ data.submitCounts ?? 0 }}】</div>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 树组件,操作菜单 END -->
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </HcLazyTree>
|
|
|
</el-scrollbar>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="hc-tree-foot-tip-box">
|
|
|
- <div class="dot-view green">已审批</div>
|
|
|
- <div class="dot-view black">未填报</div>
|
|
|
- <div class="dot-view orange">已填报-待审批</div>
|
|
|
- <div class="dot-view blue">已填报-未上报</div>
|
|
|
+ <div class="dot-view red">已隐藏</div>
|
|
|
+ <div class="dot-view black">未隐藏</div>
|
|
|
</div>
|
|
|
<!-- 左右拖动 -->
|
|
|
<div class="horizontal-drag-line" @mousedown="onmousedown" />
|
|
@@ -101,61 +137,6 @@
|
|
|
</hc-tab-card>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <HcNewCard v-if="wbsTypeTabKey === 'map'" id-ref="wbs-node-tree-card-target">
|
|
|
- <template #header>
|
|
|
- <HcTooltip keys="wbs_views_division_btn">
|
|
|
- <el-button class="mr-10" hc-btn type="primary" @click="divisionClick">
|
|
|
- <HcIcon :line="false" name="node-tree" />
|
|
|
- <span>划分变更</span>
|
|
|
- </el-button>
|
|
|
- </HcTooltip>
|
|
|
- <HcNewSwitch v-if="isDrawer" :datas="authBtnTabdata" :keys="authBtnTabKey" :round="false" size="default" @change="authBtnTabClick" />
|
|
|
- </template>
|
|
|
- <template #extra>
|
|
|
- <HcNewSwitch :datas="wbsTypeTab" :keys="wbsTypeTabKey" size="default" @change="wbsTypeTabChange" />
|
|
|
- </template>
|
|
|
- <NodeTree
|
|
|
- ref="NodeTreeRef"
|
|
|
- :accordion="NodeTreeAccordion"
|
|
|
- :auto-expand-keys="TreeAutoExpandKeys"
|
|
|
- :contract-id="contractId"
|
|
|
- :is-mark="TreeMark"
|
|
|
-
|
|
|
- :project-id="projectId"
|
|
|
-
|
|
|
- @node-click="NodeTreeClick"
|
|
|
- @node-dbl-click="NodeTreeDblClick"
|
|
|
- />
|
|
|
- <template #action>
|
|
|
- <div class="hc-tree-mp-tip-box">
|
|
|
- <div class="dot-view green">已审批</div>
|
|
|
- <div class="dot-view black">未填报</div>
|
|
|
- <div class="dot-view orange">已填报-待审批</div>
|
|
|
- <div class="dot-view blue">已填报-未上报</div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <HcDrawer v-model="isDrawer" action-ui="text-center" to-id="wbs-node-tree-card-target" @close="drawerClose">
|
|
|
- <!-- 清表列表 -->
|
|
|
- <el-scrollbar v-if="ListItemDatas.length > 0" ref="ListItemScrollRef">
|
|
|
- <CollapseForm
|
|
|
- ref="ListItemsRef"
|
|
|
- :classify="authBtnTabKey"
|
|
|
- :contract-id="contractId"
|
|
|
- :datas="ListItemDatas"
|
|
|
- :draw-type="isDrawType"
|
|
|
- :primary-key-id="primaryKeyId"
|
|
|
- :status="NodeStatus"
|
|
|
- :tenant-id="userInfo?.tenant_id"
|
|
|
- :wbs-temp-id="projectInfo?.referenceWbsTemplateIdTrial"
|
|
|
- :wbs-type="2"
|
|
|
- @offset-top="ListItemOffsetTop"
|
|
|
- @renew="getTableDataAll"
|
|
|
- />
|
|
|
- </el-scrollbar>
|
|
|
- <hc-status v-else text="暂无表单" />
|
|
|
- <!-- 底部按钮区域 -->
|
|
|
- </HcDrawer>
|
|
|
- </HcNewCard>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -167,7 +148,7 @@ import { HcIsButton } from '~src/plugins/IsButtons'
|
|
|
import CollapseForm from './collapse-form/index.vue'
|
|
|
import NodeTree from './components/nodeTree/index.vue'
|
|
|
|
|
|
-
|
|
|
+import { getTreeNodeType } from 'hc-vue3-ui'
|
|
|
import { getStoreValue, setStoreValue } from '~src/utils/storage'
|
|
|
import {
|
|
|
getArrValue,
|
|
@@ -291,7 +272,7 @@ const setContractType = (contractType) => {
|
|
|
authBtnTabKey.value = contractType + ''
|
|
|
classType.value = contractType + ''
|
|
|
}
|
|
|
- setElTreeMenu(contractType)
|
|
|
+
|
|
|
}
|
|
|
|
|
|
const getTableDataAll = async (key) => {
|
|
@@ -340,10 +321,7 @@ const wbsTypeTabChange = (item) => {
|
|
|
})
|
|
|
getSearchTreeData()
|
|
|
}
|
|
|
-//切换导图结构
|
|
|
-const wbsMapTypeTab = () => {
|
|
|
- wbsTypeTabChange({ key: 'map', name: '导图结构填报' })
|
|
|
-}
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -355,52 +333,9 @@ const wbsMapTypeTab = () => {
|
|
|
const NodeTreeAccordion = ref(true)
|
|
|
|
|
|
//设置树菜单数据
|
|
|
-const ElTreeMenu = ref([])
|
|
|
-const TreeMark = ref(false)
|
|
|
-const setElTreeMenu = (contractType) => {
|
|
|
- let newArr = []
|
|
|
- if (contractType === 1) {
|
|
|
|
|
|
- if (HcIsButton('wbs_tree_add')) {
|
|
|
- newArr.push({ icon: 'add-circle', label: '新增节点', key: 'add' })
|
|
|
- newArr.push( { icon: 'add-circle', label: '新增自定义节点', key: 'add1' })
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if (HcIsButton('wbs_tree_edit')) {
|
|
|
- newArr.push({ icon: 'draft', label: '编辑节点', key: 'edit' })
|
|
|
- }
|
|
|
- if (HcIsButton('wbs_tree_copy')) {
|
|
|
- newArr.push({ icon: 'file-copy-2', label: '复制节点', key: 'copy' })
|
|
|
- }
|
|
|
- if (HcIsButton('wbs_tree_mark')) {
|
|
|
- newArr.push({ icon: 'star', label: '标记为首件', key: 'mark' })
|
|
|
- TreeMark.value = true
|
|
|
- }
|
|
|
- if (HcIsButton('wbs_tree_upload')) {
|
|
|
- newArr.push({ icon: 'file-upload', label: '上传图纸', key: 'upload' })
|
|
|
- }
|
|
|
- if (HcIsButton('wbs_tree_sort')) {
|
|
|
- newArr.push({ icon: 'sort-asc', label: '调整排序', key: 'sort' })
|
|
|
- }
|
|
|
- if (HcIsButton('wbs_tree_del')) {
|
|
|
- newArr.push({ icon: 'delete-bin', label: '删除节点', key: 'del' })
|
|
|
- }
|
|
|
- if (HcIsButton('wbs_views_division_btn')) {
|
|
|
- newArr.push({ icon: 'folder-shared', label: '工程划分', key: 'nodetree' })
|
|
|
- }
|
|
|
- } else if (contractType === 2) {
|
|
|
+const TreeMark = ref(false)
|
|
|
|
|
|
- if (HcIsButton('wbs_tree_add')) {
|
|
|
- newArr.push({ icon: 'add-circle', label: '新增节点', key: 'add' })
|
|
|
- newArr.push( { icon: 'add-circle', label: '新增自定义节点', key: 'add1' })
|
|
|
- }
|
|
|
- if (HcIsButton('wbs_tree_copy')) {
|
|
|
- newArr.push({ icon: 'file-copy-2', label: '复制节点', key: 'copy' })
|
|
|
- }
|
|
|
- }
|
|
|
- ElTreeMenu.value = newArr
|
|
|
-}
|
|
|
|
|
|
//树相关变量
|
|
|
const primaryKeyId = ref('')
|
|
@@ -474,39 +409,15 @@ const wbsElTreeClick = ({ node, data, keys }) => {
|
|
|
}
|
|
|
setStoreValue('wbsTreeExpandKeys', keys)
|
|
|
TreeAutoExpandKeys.value = keys || []
|
|
|
- saveHistory(keys.join(','))
|
|
|
+
|
|
|
// getTableDataAll()
|
|
|
}
|
|
|
//树加载完成
|
|
|
const ElTreeNodeLoading = () => {
|
|
|
treeLoading.value = false
|
|
|
}
|
|
|
-//保存用户填报历史
|
|
|
-const saveHistory = async (endNode)=>{
|
|
|
- await wbsApi.saveUserHistory({
|
|
|
- contractId: contractId.value,
|
|
|
- projectId: projectId.value,
|
|
|
- endNode,
|
|
|
- })
|
|
|
-}
|
|
|
-//回到上次填报历史
|
|
|
-const gobackHistory = async ()=>{
|
|
|
- isSearchTree.value = false
|
|
|
- const { error, code, data, msg } = await wbsApi.getUserHistory({
|
|
|
- contractId: contractId.value,
|
|
|
- projectId: projectId.value,
|
|
|
- })
|
|
|
- if (!error && code === 200) {
|
|
|
- TreeAutoExpandKeys.value = data['endNode'].split(',') || []
|
|
|
- //重新加载左边树
|
|
|
- isShowLeft.value = false
|
|
|
- setTimeout(()=>{
|
|
|
- isShowLeft.value = true
|
|
|
- }, 500)
|
|
|
- } else {
|
|
|
- window.$message.warning(msg)
|
|
|
- }
|
|
|
-}
|
|
|
+
|
|
|
+
|
|
|
|
|
|
//导图结构数据
|
|
|
const NodeTreeRef = ref(null)
|
|
@@ -779,7 +690,9 @@ html.theme-dark {
|
|
|
}
|
|
|
.hc-layout-box .hc-layout-content-box .hc-card-max-h-box.node-tree .hc-tree-foot-tip-box {
|
|
|
border-top: 1px solid #303030;
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
</style>
|
|
|
|