|
@@ -1,108 +1,5 @@
|
|
|
<template>
|
|
|
<div class="h-full">
|
|
|
- <HcCard 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" @change="wbsTypeTabChange"/>
|
|
|
- </template>
|
|
|
- <NodeTree
|
|
|
- ref="NodeTreeRef"
|
|
|
- :accordion='NodeTreeAccordion'
|
|
|
- :autoExpandKeys="TreeAutoExpandKeys"
|
|
|
- :contractId="contractId"
|
|
|
- :isMark="TreeMark"
|
|
|
- :menus="ElTreeMenu"
|
|
|
- :projectId="projectId"
|
|
|
- @menuClick="NodeTreeMenuClick"
|
|
|
- @nodeClick="NodeTreeClick"
|
|
|
- @nodeDblClick="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 :show="isDrawer" actionUi="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"
|
|
|
- :contractId="contractId"
|
|
|
- :datas="ListItemDatas"
|
|
|
- :drawType="isDrawType"
|
|
|
- :primaryKeyId="primaryKeyId"
|
|
|
- :status="NodeStatus"
|
|
|
- :tenantId="userInfo?.tenant_id"
|
|
|
- :wbsTempId="projectInfo?.referenceWbsTemplateIdTrial"
|
|
|
- :wbsType="2"
|
|
|
- @offsetTop="ListItemOffsetTop"
|
|
|
- @renew="getTableDataAll"/>
|
|
|
- </el-scrollbar>
|
|
|
- <HcStatus v-else text="暂无表单"/>
|
|
|
- <!--底部按钮区域-->
|
|
|
- <template #action>
|
|
|
- <HcTooltip v-if="NodeStatus !== '3'" keys="wbs_save">
|
|
|
- <el-button :disabled="NodeStatus === '3' || ListItemDatas.length <= 0"
|
|
|
- :loading="tableFormSaveLoading"
|
|
|
- hc-btn
|
|
|
- type="primary"
|
|
|
- @click="tableFormSaveClick">
|
|
|
- <HcIcon name="save"/>
|
|
|
- <span>保存</span>
|
|
|
- </el-button>
|
|
|
- </HcTooltip>
|
|
|
- <HcTooltip v-if="NodeStatus !== '3'" keys="wbs_report">
|
|
|
- <el-button :disabled="NodeStatus === '3' || NodeStatus === '1'"
|
|
|
- :loading="reportLoading"
|
|
|
- hc-btn
|
|
|
- @click="reportModalClick">
|
|
|
- <HcIcon name="send-plane-2"/>
|
|
|
- <span>上报</span>
|
|
|
- </el-button>
|
|
|
- </HcTooltip>
|
|
|
- <HcTooltip keys="wbs_preview">
|
|
|
- <el-button :disabled="NodeStatus === '1'"
|
|
|
- :loading="bussPdfsLoading"
|
|
|
- hc-btn
|
|
|
- @click="bussPdfsClick">
|
|
|
- <HcIcon name="eye"/>
|
|
|
- <span>预览</span>
|
|
|
- </el-button>
|
|
|
- </HcTooltip>
|
|
|
- <HcTooltip v-if="NodeStatus === '3'" keys="wbs_abolish">
|
|
|
- <el-button hc-btn>
|
|
|
- <HcIcon name="arrow-go-back"/>
|
|
|
- <span>撤回上报流程</span>
|
|
|
- </el-button>
|
|
|
- </HcTooltip>
|
|
|
- <HcTooltip keys="wbs_views_drawings">
|
|
|
- <el-button :disabled="!nodeDataInfo?.fileUrl" hc-btn @click="viewsDrawings">
|
|
|
- <HcIcon name="image"/>
|
|
|
- <span>图纸</span>
|
|
|
- </el-button>
|
|
|
- </HcTooltip>
|
|
|
- <el-button hc-btn>
|
|
|
- <HcIcon name="file"/>
|
|
|
- <span>附件</span>
|
|
|
- </el-button>
|
|
|
- <el-button hc-btn @click="drawerClose">
|
|
|
- <HcIcon name="close"/>
|
|
|
- <span>关闭填报页面</span>
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- </HcDrawer>
|
|
|
- </HcCard>
|
|
|
<div v-if="wbsTypeTabKey === 'tree'" class="hc-layout-box">
|
|
|
<div id="wbs-left-tree" :class="[isWbsTreeShow?'show':'', isMouseTree ? 'on-transition':'']"
|
|
|
:style="'width:' + (isWbsTreeShow ? leftWidth : 0) + 'px;'"
|
|
@@ -126,35 +23,31 @@
|
|
|
</el-input>
|
|
|
</div>
|
|
|
<div v-loading="treeLoading" id="hc-tree-scrollbar" class="hc-tree-scrollbar" element-loading-text="获取数据中...">
|
|
|
- <HcTreeDataV2
|
|
|
+ <HcTreeV2
|
|
|
:isShow="isSearchTree"
|
|
|
:datas="searchTreeData"
|
|
|
:height="searchTreeHeight"
|
|
|
:isMark="TreeMark"
|
|
|
:menus="ElTreeMenu"
|
|
|
- :searchTreeVal="searchTreeVal"
|
|
|
- :submitCounts="true"
|
|
|
- :ElTreeLoadNode="searchElTreeLoadNode"
|
|
|
- isColor
|
|
|
- @changeSearch="changeisSearch"
|
|
|
- @changetreelaod="changetreelaod"
|
|
|
+ :searchVal="searchTreeVal"
|
|
|
+ isCounts
|
|
|
+ isType
|
|
|
@menuTap="ElTreeMenuClick"
|
|
|
- @nodeTap="wbsElTreeClick"/>
|
|
|
+ @nodeTap="wbsElTreeClick"
|
|
|
+ />
|
|
|
<el-scrollbar class="scroll-bar-right-16" v-show="!isSearchTree">
|
|
|
- <WbsTree
|
|
|
+ <HcLazyTree
|
|
|
ref="wbstree"
|
|
|
:autoExpandKeys="TreeAutoExpandKeys"
|
|
|
- :classifyType="authBtnTabKey"
|
|
|
- :contractId="contractId"
|
|
|
:isMark="TreeMark"
|
|
|
:menus="ElTreeMenu"
|
|
|
- :projectId="projectId"
|
|
|
- :submitCounts="true"
|
|
|
- :treeKey="wbstreeKey"
|
|
|
- isColor
|
|
|
+ isCounts
|
|
|
+ isType
|
|
|
+ @load="treeLoadNode"
|
|
|
@menuTap="ElTreeMenuClick"
|
|
|
@nodeLoading="ElTreeNodeLoading"
|
|
|
- @nodeTap="wbsElTreeClick"/>
|
|
|
+ @nodeTap="wbsElTreeClick"
|
|
|
+ />
|
|
|
</el-scrollbar>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -259,14 +152,118 @@
|
|
|
</HcCard>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <HcCard 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" @change="wbsTypeTabChange"/>
|
|
|
+ </template>
|
|
|
+ <NodeTree
|
|
|
+ ref="NodeTreeRef"
|
|
|
+ :accordion='NodeTreeAccordion'
|
|
|
+ :autoExpandKeys="TreeAutoExpandKeys"
|
|
|
+ :contractId="contractId"
|
|
|
+ :isMark="TreeMark"
|
|
|
+ :menus="ElTreeMenu"
|
|
|
+ :projectId="projectId"
|
|
|
+ @menuClick="NodeTreeMenuClick"
|
|
|
+ @nodeClick="NodeTreeClick"
|
|
|
+ @nodeDblClick="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 :show="isDrawer" actionUi="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"
|
|
|
+ :contractId="contractId"
|
|
|
+ :datas="ListItemDatas"
|
|
|
+ :drawType="isDrawType"
|
|
|
+ :primaryKeyId="primaryKeyId"
|
|
|
+ :status="NodeStatus"
|
|
|
+ :tenantId="userInfo?.tenant_id"
|
|
|
+ :wbsTempId="projectInfo?.referenceWbsTemplateIdTrial"
|
|
|
+ :wbsType="2"
|
|
|
+ @offsetTop="ListItemOffsetTop"
|
|
|
+ @renew="getTableDataAll"/>
|
|
|
+ </el-scrollbar>
|
|
|
+ <HcStatus v-else text="暂无表单"/>
|
|
|
+ <!--底部按钮区域-->
|
|
|
+ <template #action>
|
|
|
+ <HcTooltip v-if="NodeStatus !== '3'" keys="wbs_save">
|
|
|
+ <el-button :disabled="NodeStatus === '3' || ListItemDatas.length <= 0"
|
|
|
+ :loading="tableFormSaveLoading"
|
|
|
+ hc-btn
|
|
|
+ type="primary"
|
|
|
+ @click="tableFormSaveClick">
|
|
|
+ <HcIcon name="save"/>
|
|
|
+ <span>保存</span>
|
|
|
+ </el-button>
|
|
|
+ </HcTooltip>
|
|
|
+ <HcTooltip v-if="NodeStatus !== '3'" keys="wbs_report">
|
|
|
+ <el-button :disabled="NodeStatus === '3' || NodeStatus === '1'"
|
|
|
+ :loading="reportLoading"
|
|
|
+ hc-btn
|
|
|
+ @click="reportModalClick">
|
|
|
+ <HcIcon name="send-plane-2"/>
|
|
|
+ <span>上报</span>
|
|
|
+ </el-button>
|
|
|
+ </HcTooltip>
|
|
|
+ <HcTooltip keys="wbs_preview">
|
|
|
+ <el-button :disabled="NodeStatus === '1'"
|
|
|
+ :loading="bussPdfsLoading"
|
|
|
+ hc-btn
|
|
|
+ @click="bussPdfsClick">
|
|
|
+ <HcIcon name="eye"/>
|
|
|
+ <span>预览</span>
|
|
|
+ </el-button>
|
|
|
+ </HcTooltip>
|
|
|
+ <HcTooltip v-if="NodeStatus === '3'" keys="wbs_abolish">
|
|
|
+ <el-button hc-btn>
|
|
|
+ <HcIcon name="arrow-go-back"/>
|
|
|
+ <span>撤回上报流程</span>
|
|
|
+ </el-button>
|
|
|
+ </HcTooltip>
|
|
|
+ <HcTooltip keys="wbs_views_drawings">
|
|
|
+ <el-button :disabled="!nodeDataInfo?.fileUrl" hc-btn @click="viewsDrawings">
|
|
|
+ <HcIcon name="image"/>
|
|
|
+ <span>图纸</span>
|
|
|
+ </el-button>
|
|
|
+ </HcTooltip>
|
|
|
+ <el-button hc-btn>
|
|
|
+ <HcIcon name="file"/>
|
|
|
+ <span>附件</span>
|
|
|
+ </el-button>
|
|
|
+ <el-button hc-btn @click="drawerClose">
|
|
|
+ <HcIcon name="close"/>
|
|
|
+ <span>关闭填报页面</span>
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </HcDrawer>
|
|
|
+ </HcCard>
|
|
|
|
|
|
- <!--上传图纸-->
|
|
|
- <div class="upload-drawing">
|
|
|
- <el-upload :accept="accept" :action="action" :before-upload="beforeUpload" :headers="getTokenHeader()"
|
|
|
- :on-error="uploadError" :on-success="uploadFinish">
|
|
|
- <div id="upload-drawing">上传图纸</div>
|
|
|
- </el-upload>
|
|
|
- </div>
|
|
|
+ <!--上传文件-->
|
|
|
+ <HcUploadFile ref="HcUploadFileRef"
|
|
|
+ :options="uploadFileOptions"
|
|
|
+ :params="uploadFileParams"
|
|
|
+ :echoParams="uploadFileEchoParams"
|
|
|
+ @success="uploadFileSuccess"
|
|
|
+ @item="uploadFileItem"
|
|
|
+ />
|
|
|
|
|
|
<!--查看图纸-->
|
|
|
<HcDragModal :isShow="drawingsShow" closeIcon lefts="145" title="查看图纸" tops="100" ui="hc-image-preview-box"
|
|
@@ -356,12 +353,9 @@
|
|
|
</el-form>
|
|
|
</div>
|
|
|
<div v-if="copyNodeTabKey !== '1'" class="copy-node-many-box">
|
|
|
-
|
|
|
<div class="copy-node-many-tree">
|
|
|
<el-scrollbar>
|
|
|
- <WbsTree :autoExpandKeys="TreeAutoExpandKeys" :contractId="contractId" :isAutoClick="false"
|
|
|
- :isAutoKeys="false" :projectId="projectId" :classifyType="authBtnTabKey"
|
|
|
- idPrefix="tree-node-copy-" @nodeTap="copyNodeElTreeClick"/>
|
|
|
+ <HcLazyTree :autoExpandKeys="TreeAutoExpandKeys" isType @load="treeLoadNode" @nodeTap="copyNodeElTreeClick"/>
|
|
|
</el-scrollbar>
|
|
|
</div>
|
|
|
<div class="copy-node-many-table">
|
|
@@ -425,11 +419,22 @@
|
|
|
widths="720px" @close="addNodeModal = false">
|
|
|
<el-alert :closable="false" title="双击节点,可编辑节点名称,编辑完成后,请按回车或输入框消失后,再点提交"
|
|
|
type="warning"/>
|
|
|
- <HcTreeNode v-if="addTreeNodeType === '1'" :nodeId="addTreeNodeId" :oldId="addTreeNodeOldId" :contractId="contractId" :wbsId="projectInfo.referenceWbsTemplateId"
|
|
|
- :projectId="projectId" @check-change="addTreeNodeCheckChange"/>
|
|
|
- <HcTreeNode v-if="addTreeNodeType === '2'" :nodeId="addTreeNodeId" :oldId="addTreeNodeOldId" :contractId="contractId" :wbsId="projectInfo.referenceWbsTemplateId"
|
|
|
+ <HcTreeNode v-if="addTreeNodeType === '1'"
|
|
|
+ :nodeId="addTreeNodeId"
|
|
|
+ :oldId="addTreeNodeOldId"
|
|
|
+ :contractId="contractId"
|
|
|
+ :wbsId="projectInfo.referenceWbsTemplateId"
|
|
|
:projectId="projectId"
|
|
|
- strictly @check-change="addTreeNodeCheckChange"/>
|
|
|
+ @check-change="addTreeNodeCheckChange"
|
|
|
+ />
|
|
|
+ <HcTreeNode v-if="addTreeNodeType === '2'"
|
|
|
+ :nodeId="addTreeNodeId"
|
|
|
+ :oldId="addTreeNodeOldId"
|
|
|
+ :contractId="contractId"
|
|
|
+ :wbsId="projectInfo.referenceWbsTemplateId"
|
|
|
+ :projectId="projectId"
|
|
|
+ strictly @check-change="addTreeNodeCheckChange"
|
|
|
+ />
|
|
|
<template #footer>
|
|
|
<div class="lr-dialog-footer">
|
|
|
<div class="left flex items-center">
|
|
@@ -667,9 +672,6 @@ import {HcIsButton} from "~src/plugins/IsButtons";
|
|
|
import CollapseForm from "./collapse-form/index.vue"
|
|
|
import NodeTree from "./components/nodeTree/index.vue"
|
|
|
import HcTreeNode from "./components/HcTreeNode.vue"
|
|
|
-import HcTreeData from "./components/HcTreeData.vue"
|
|
|
-import HcTreeDataV2 from "./components/HcTreeDataV2.vue"
|
|
|
-import WbsTree from "./components/WbsTree.vue"
|
|
|
import {getTokenHeader} from '~src/api/request/header';
|
|
|
import {getStoreValue, setStoreValue} from '~src/utils/storage'
|
|
|
import {deepClone, formValidate, setCopyText, getObjValue, getArrValue, getObjVal, isString} from "js-fast-way"
|
|
@@ -707,7 +709,8 @@ const searchTreeHeight = ref()
|
|
|
|
|
|
const getSearchTreeData = async () => {
|
|
|
searchElTreeLoadNode.value = true
|
|
|
- if (contractInfo.value?.contractType == 2 || contractInfo.value?.contractType == 3) {
|
|
|
+ const contractType = Number(contractInfo.value?.contractType)
|
|
|
+ if (contractType === 2 || contractType === 3) {
|
|
|
const {error, code, data} = await queryApi.getTreeallJl({
|
|
|
contractId: contractId.value,
|
|
|
})
|
|
@@ -733,7 +736,7 @@ const getSearchTreeData = async () => {
|
|
|
const {error, code, data} = await queryApi.getTreeall({
|
|
|
contractId: contractId.value,
|
|
|
projectId: projectId.value,
|
|
|
- wbsId: projectInfo?.value.referenceWbsTemplateId
|
|
|
+ wbsId: projectInfo.value?.referenceWbsTemplateId
|
|
|
})
|
|
|
//判断状态
|
|
|
if (!error && code === 200) {
|
|
@@ -835,8 +838,50 @@ const wbsTypeTabChange = (item) => {
|
|
|
}
|
|
|
|
|
|
//上传文件的
|
|
|
-const action = ref("/api/blade-resource/oss/endpoint/put-file")
|
|
|
-const accept = ref("image/png,image/jpg,image/jpeg")
|
|
|
+const HcUploadFileRef = ref(null)
|
|
|
+const uploadFileOptions = ref({})
|
|
|
+const uploadFileParams = ref({})
|
|
|
+const uploadFileEchoParams = ref({})
|
|
|
+//上传成功
|
|
|
+const uploadFileSuccess = ({echoParams, resData}) => {
|
|
|
+ if (echoParams['type'] === 'upload-drawing' && resData?.link) {
|
|
|
+ setUploadDrawingsData(echoParams, resData?.link)
|
|
|
+ } else {
|
|
|
+ window?.$message?.error('文件上传失败')
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//点击使用文件
|
|
|
+const uploadFileItem = ({item}) => {
|
|
|
+ const {echoParams, resData} = item
|
|
|
+ if (echoParams['type'] === 'upload-drawing' && resData?.link) {
|
|
|
+ setUploadDrawingsData(echoParams, resData?.link)
|
|
|
+ } else {
|
|
|
+ window?.$message?.error('文件上传失败')
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//设置图纸数据
|
|
|
+const setUploadDrawingsData = async (echoParams, link) => {
|
|
|
+ const info = nodeDataInfo.value;
|
|
|
+ const {error, code, data} = await wbsApi.saveContractTreeDrawings({
|
|
|
+ fileUrl: link,
|
|
|
+ id: echoParams['drawingsId'],
|
|
|
+ primaryKeyId: echoParams['primaryKeyId']
|
|
|
+ }, false)
|
|
|
+ //处理数据
|
|
|
+ if (!error && code === 200) {
|
|
|
+ if (info['primaryKeyId'] === echoParams['primaryKeyId']) {
|
|
|
+ nodeDataInfo.value['drawingsId'] = data
|
|
|
+ nodeDataInfo.value['fileUrl'] = link
|
|
|
+ window?.$message?.success('图纸上传成功')
|
|
|
+ } else {
|
|
|
+ window?.$message?.success('图纸上传成功,由于您切换了其他节点,需要手动刷新才能查看到图纸')
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ window?.$message?.error('图纸保存失败')
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
const NodeTreeAccordion = ref(true)
|
|
|
|
|
@@ -897,24 +942,25 @@ const searchTreeKeyUp = (e) => {
|
|
|
searchTreeClick()
|
|
|
}
|
|
|
}
|
|
|
-const changeisSearch = () => {
|
|
|
- isSearchTree.value = false
|
|
|
-}
|
|
|
+
|
|
|
const changetreelaod = (val) => {
|
|
|
treeLoading.value = val
|
|
|
-
|
|
|
}
|
|
|
const treeLoading = ref(false)
|
|
|
const searchTreeClick = async () => {
|
|
|
- searchTreeHeight.value = document.getElementById('hc-tree-scrollbar').offsetHeight;
|
|
|
- isSearchTree.value = true
|
|
|
- //treeLoading.value = true
|
|
|
- if (searchElTreeLoadNode.value === true) {
|
|
|
- treeLoading.value = true
|
|
|
- window?.$message?.warning('请加载完数据再次进行搜索')
|
|
|
- searchTreeVal.value=''
|
|
|
- } else {
|
|
|
+ if (searchTreeVal.value) {
|
|
|
+ searchTreeHeight.value = document.getElementById('hc-tree-scrollbar').offsetHeight;
|
|
|
isSearchTree.value = true
|
|
|
+ //treeLoading.value = true
|
|
|
+ if (searchElTreeLoadNode.value === true) {
|
|
|
+ treeLoading.value = true
|
|
|
+ window?.$message?.warning('请加载完数据再次进行搜索')
|
|
|
+ searchTreeVal.value=''
|
|
|
+ } else {
|
|
|
+ isSearchTree.value = true
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ isSearchTree.value = false
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -938,6 +984,25 @@ const searchTreeClick = async () => {
|
|
|
// isSearchTree.value = false
|
|
|
// }
|
|
|
|
|
|
+//懒加载的数据
|
|
|
+const treeLoadNode = async ({node, item, level},resolve) => {
|
|
|
+ let contractIdRelation = '', parentId = '', primaryKeyId = '';
|
|
|
+ if (level !== 0) {
|
|
|
+ const nodeData = getObjValue(item);
|
|
|
+ contractIdRelation = nodeData?.contractIdRelation || ''
|
|
|
+ parentId = contractIdRelation ? nodeData?.primaryKeyId : nodeData?.id
|
|
|
+ primaryKeyId = nodeData?.id || ''
|
|
|
+ }
|
|
|
+ //获取数据
|
|
|
+ const {data} = await queryApi.queryWbsTreeData({
|
|
|
+ contractId: contractId.value || '',
|
|
|
+ contractIdRelation,
|
|
|
+ primaryKeyId,
|
|
|
+ parentId,
|
|
|
+ classifyType: authBtnTabKey.value
|
|
|
+ })
|
|
|
+ resolve(getArrValue(data))
|
|
|
+}
|
|
|
|
|
|
//树被点击
|
|
|
const wbsElTreeClick = ({node, data, keys}) => {
|
|
@@ -1032,7 +1097,22 @@ const setTreeMenuDataClick = ({key, node, data}) => {
|
|
|
addNodeLoading.value = false
|
|
|
addNodeModal.value = true
|
|
|
} else if (key === 'upload') {
|
|
|
- document.getElementById('upload-drawing').click()
|
|
|
+ const info = nodeDataInfo.value;
|
|
|
+ //上传的配置
|
|
|
+ uploadFileOptions.value = {
|
|
|
+ url: '/api/blade-resource/oss/endpoint/put-file',
|
|
|
+ accept: 'image/png,image/jpg,image/jpeg',
|
|
|
+ accept_tip: "png、jpg、jpeg",
|
|
|
+ headers: getTokenHeader(),
|
|
|
+ multiple: false
|
|
|
+ }
|
|
|
+ uploadFileEchoParams.value = {
|
|
|
+ type: 'upload-drawing',
|
|
|
+ drawingsId: info['drawingsId'],
|
|
|
+ primaryKeyId: info['primaryKeyId'],
|
|
|
+ }
|
|
|
+ uploadFileParams.value = {}
|
|
|
+ HcUploadFileRef.value?.selectFile()
|
|
|
} else if (key === 'del') {
|
|
|
if (data['colorStatus'] === 1 || data['colorStatus'] === 2) {
|
|
|
delModalClick()
|
|
@@ -1072,46 +1152,6 @@ const getPathName = (node, pathArr) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-//上传前
|
|
|
-const loadingReactive = ref(null)
|
|
|
-const beforeUpload = () => {
|
|
|
- loadingReactive.value = window.$loading?.service({
|
|
|
- lock: true,
|
|
|
- text: '图纸上传中...',
|
|
|
- background: 'rgba(0, 0, 0, 0.7)',
|
|
|
- })
|
|
|
- return true
|
|
|
-}
|
|
|
-//上传完成
|
|
|
-const uploadFinish = async (response) => {
|
|
|
- const res = getObjValue(response.data)
|
|
|
- const info = nodeDataInfo.value;
|
|
|
- if (res?.link) {
|
|
|
- const {error, code, data} = await wbsApi.saveContractTreeDrawings({
|
|
|
- fileUrl: res?.link,
|
|
|
- id: info['drawingsId'],
|
|
|
- primaryKeyId: info['primaryKeyId']
|
|
|
- }, false)
|
|
|
- //处理数据
|
|
|
- loadingReactive.value.close();
|
|
|
- if (!error && code === 200) {
|
|
|
- nodeDataInfo.value['drawingsId'] = data
|
|
|
- nodeDataInfo.value['fileUrl'] = res?.link
|
|
|
- window?.$message?.success('图纸上传成功')
|
|
|
- } else {
|
|
|
- window?.$message?.error('图纸保存失败')
|
|
|
- }
|
|
|
- } else {
|
|
|
- loadingReactive.value.close();
|
|
|
- window?.$message?.error('图纸上传失败')
|
|
|
- }
|
|
|
-}
|
|
|
-//上传失败
|
|
|
-const uploadError = () => {
|
|
|
- loadingReactive.value.close();
|
|
|
- window?.$message?.error('图纸上传失败')
|
|
|
-}
|
|
|
-
|
|
|
//确认标记为首件
|
|
|
const firstItemBox = () => {
|
|
|
const info = nodeDataInfo.value;
|
|
@@ -1233,9 +1273,9 @@ const copyNodeElTreeClick = ({data,node}) => {
|
|
|
// //只能往上一级点击,不能跨层级点击
|
|
|
// //已上报的工序节点不能点击选择
|
|
|
// //如果选择的是父级节点,那不能复制到子级节点
|
|
|
- if(data['colorStatus']===2||data['colorStatus']==1){//已上报的工序不能点击
|
|
|
- if (data['id'] !== formCopyNodeModel.value.id) {//不能复制到本身节点下
|
|
|
- //只能往上一级点击,不能跨层级点击
|
|
|
+ if(data['colorStatus']===2||data['colorStatus']==1){//已上报的工序不能点击
|
|
|
+ if (data['id'] !== formCopyNodeModel.value.id) {//不能复制到本身节点下
|
|
|
+ //只能往上一级点击,不能跨层级点击
|
|
|
//如果选择的是父级节点,那不能复制到子级节点
|
|
|
if (type === 6 && (data['type'] === 4 || data['type'] === 5 || data['type'] == 6)) {
|
|
|
setCopyNodeTable(data, title)
|
|
@@ -1257,10 +1297,10 @@ const copyNodeElTreeClick = ({data,node}) => {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ window?.$message?.warning('该节点已存在上报数据,不允许复制')
|
|
|
}
|
|
|
- }else{
|
|
|
- window?.$message?.warning('该节点已存在上报数据,不允许复制')
|
|
|
- }
|
|
|
|
|
|
|
|
|
} else if (TabKey === '3') {
|
|
@@ -1339,9 +1379,24 @@ const copyNodeClick = async () => {
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
- if(isCopyData.value===1){
|
|
|
- if (classify) {
|
|
|
- //效验数据
|
|
|
+ if(isCopyData.value===1){
|
|
|
+ if (classify) {
|
|
|
+ //效验数据
|
|
|
+ if (type === '1') {
|
|
|
+ const validate = await formValidate(formCopyNodeModelRef.value)
|
|
|
+ if (validate) await copyContractTreeNode(type, form, [], classify)
|
|
|
+ } else if (type === '2') {
|
|
|
+ if (table.length > 0) {
|
|
|
+ const validate = await formValidate(copyNodeTableRef.value)
|
|
|
+ if (validate) await copyContractTreeNode(type, form, table, classify)
|
|
|
+ } else {
|
|
|
+ window?.$message?.warning('请先在左侧选择要复制到的节点')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ window?.$message?.warning('请选择所属方')
|
|
|
+ }
|
|
|
+ }else{
|
|
|
if (type === '1') {
|
|
|
const validate = await formValidate(formCopyNodeModelRef.value)
|
|
|
if (validate) await copyContractTreeNode(type, form, [], classify)
|
|
@@ -1353,22 +1408,7 @@ const copyNodeClick = async () => {
|
|
|
window?.$message?.warning('请先在左侧选择要复制到的节点')
|
|
|
}
|
|
|
}
|
|
|
- } else {
|
|
|
- window?.$message?.warning('请选择所属方')
|
|
|
}
|
|
|
- }else{
|
|
|
- if (type === '1') {
|
|
|
- const validate = await formValidate(formCopyNodeModelRef.value)
|
|
|
- if (validate) await copyContractTreeNode(type, form, [], classify)
|
|
|
- } else if (type === '2') {
|
|
|
- if (table.length > 0) {
|
|
|
- const validate = await formValidate(copyNodeTableRef.value)
|
|
|
- if (validate) await copyContractTreeNode(type, form, table, classify)
|
|
|
- } else {
|
|
|
- window?.$message?.warning('请先在左侧选择要复制到的节点')
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
//单个复制、多份复制请求
|
|
|
const copyContractTreeNode = async (type, form, table, classify) => {
|