|
@@ -1,28 +1,136 @@
|
|
<template>
|
|
<template>
|
|
- <div class="hc-layout-box">
|
|
|
|
- 系统分部分项划分
|
|
|
|
|
|
+ <div class="hc-page-layout-box">
|
|
|
|
+ <div class="hc-layout-left-box" :style="'width:' + leftWidth + 'px;'">
|
|
|
|
+ <div class="hc-project-box">
|
|
|
|
+ <div class="hc-project-icon-box">
|
|
|
|
+ <HcIcon name="stack"/>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="ml-2 project-name-box">
|
|
|
|
+ <span class="text-xl text-cut project-alias">{{projectInfo['projectAlias']}}</span>
|
|
|
|
+ <div class="text-xs text-cut project-name">{{projectInfo['name']}}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="hc-tree-box">
|
|
|
|
+ <el-scrollbar>
|
|
|
|
+ <WbsTree :menus="ElTreeMenu" :autoExpandKeys="treeAutoExpandKeys" :projectId="projectId" :contractId="contractId" isColor @nodeTap="wbsElTreeClick" @menuTap="ElTreeMenuClick"/>
|
|
|
|
+ </el-scrollbar>
|
|
|
|
+ </div>
|
|
|
|
+ <!--左右拖动-->
|
|
|
|
+ <div class="horizontal-drag-line" @mousedown="onmousedown"/>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="hc-page-content-box hc-division-page">
|
|
|
|
+ <div class="basic-info">
|
|
|
|
+ <HcCard title="当前节点基础信息">
|
|
|
|
+ 123456
|
|
|
|
+ </HcCard>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="project-info">
|
|
|
|
+ <HcCard title="当前节点工程用表信息">
|
|
|
|
+ 123456
|
|
|
|
+ </HcCard>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
-//import {ref,watch,onMounted} from "vue";
|
|
|
|
-//import {useRouter, useRoute} from 'vue-router'
|
|
|
|
-//import {useAppStore} from "~src/store";
|
|
|
|
|
|
+import {ref,watch,onMounted} from "vue";
|
|
|
|
+import {useAppStore} from "~src/store";
|
|
|
|
+import {useRouter, useRoute} from 'vue-router'
|
|
|
|
+import WbsTree from "./components/WbsTree.vue"
|
|
|
|
+import {isType, downloadBlob} from "vue-utils-plus"
|
|
|
|
+import {getStoreData, setStoreData} from '~src/utils/storage'
|
|
|
|
+import {HcIsButton} from "~src/plugins/IsButtons";
|
|
|
|
+
|
|
|
|
|
|
//初始变量
|
|
//初始变量
|
|
-//const router = useRouter()
|
|
|
|
-//const useRoutes = useRoute()
|
|
|
|
-//const useAppState = useAppStore()
|
|
|
|
-//const {getObjValue, getArrValue} = isType()
|
|
|
|
|
|
+const router = useRouter()
|
|
|
|
+const useRoutes = useRoute()
|
|
|
|
+const useAppState = useAppStore()
|
|
|
|
+const {getObjValue, getArrValue} = isType()
|
|
|
|
|
|
//全局变量
|
|
//全局变量
|
|
-//const projectId = ref(useAppState.getProjectId);
|
|
|
|
-//const contractId = ref(useAppState.getContractId);
|
|
|
|
|
|
+const projectId = ref(useAppState.getProjectId);
|
|
|
|
+const contractId = ref(useAppState.getContractId);
|
|
|
|
+const projectInfo = ref(useAppState.getProjectInfo);
|
|
|
|
+const isCollapse = ref(useAppState.getCollapse)
|
|
|
|
+
|
|
|
|
+//监听
|
|
|
|
+watch(() => [
|
|
|
|
+ useAppState.getCollapse
|
|
|
|
+], ([Collapse]) => {
|
|
|
|
+ isCollapse.value = Collapse
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+//自动展开缓存
|
|
|
|
+const treeAutoExpandKeys = ref(getStoreData('wbsTreeExpandKeys') || [])
|
|
|
|
+
|
|
|
|
+//渲染完成
|
|
|
|
+onMounted(() => {
|
|
|
|
+ setElTreeMenu()
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+//树被点击
|
|
|
|
+const wbsElTreeClick = ({node, data, keys}) => {
|
|
|
|
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//树菜单配置
|
|
|
|
+const ElTreeMenu = ref([])
|
|
|
|
+const setElTreeMenu = () => {
|
|
|
|
+ let newArr = [];
|
|
|
|
+ if (HcIsButton('wbs_tree_add')) {
|
|
|
|
+ newArr.push({icon: 'add-circle', label: '新增节点', key: "add"})
|
|
|
|
+ }
|
|
|
|
+ if (HcIsButton('wbs_tree_copy')) {
|
|
|
|
+ newArr.push({icon: 'file-copy-2', label: '复制节点', key: "copy"})
|
|
|
|
+ }
|
|
|
|
+ if (HcIsButton('wbs_tree_edit')) {
|
|
|
|
+ newArr.push({icon: 'draft', label: '修改节点', key: "edit"})
|
|
|
|
+ }
|
|
|
|
+ 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"})
|
|
|
|
+ }
|
|
|
|
+ ElTreeMenu.value = newArr
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//树菜单被点击
|
|
|
|
+const ElTreeMenuClick = async ({key,node,data}) => {
|
|
|
|
+ //nodeItemInfo.value = node
|
|
|
|
+ //nodeDataInfo.value = data
|
|
|
|
+ //setTreeMenuDataClick({key,node,data})
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//左右拖动,改变树形结构宽度
|
|
|
|
+const leftWidth = ref(382);
|
|
|
|
+const onmousedown = () => {
|
|
|
|
+ const leftNum = isCollapse.value ? 142 : 272
|
|
|
|
+ document.onmousemove = (ve) => {
|
|
|
|
+ let diffVal = ve.clientX - leftNum;
|
|
|
|
+ if(diffVal >= 310 && diffVal <= 900) {
|
|
|
|
+ leftWidth.value = diffVal;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ document.onmouseup = () => {
|
|
|
|
+ document.onmousemove = null;
|
|
|
|
+ document.onmouseup = null;
|
|
|
|
+ }
|
|
|
|
+}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
+.hc-page-content-box.hc-division-page {
|
|
|
|
+ .basic-info {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ .project-info {
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+}
|
|
</style>
|
|
</style>
|
|
|
|
|
|
<style lang="scss">
|
|
<style lang="scss">
|