|
@@ -1,18 +1,20 @@
|
|
<template>
|
|
<template>
|
|
<div class="hc-page-layout-box">
|
|
<div class="hc-page-layout-box">
|
|
- <div class="hc-layout-left-box" :style="'width:' + leftWidth + 'px;'">
|
|
|
|
|
|
+ <div :style="'width:' + leftWidth + 'px;'" class="hc-layout-left-box">
|
|
<div class="hc-project-box">
|
|
<div class="hc-project-box">
|
|
<div class="hc-project-icon-box">
|
|
<div class="hc-project-icon-box">
|
|
<HcIcon name="stack"/>
|
|
<HcIcon name="stack"/>
|
|
</div>
|
|
</div>
|
|
<div class="ml-2 project-name-box">
|
|
<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>
|
|
|
|
|
|
+ <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>
|
|
</div>
|
|
<div class="hc-tree-box">
|
|
<div class="hc-tree-box">
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
- <WbsTree ui="page-division-tree" :menus="ElTreeMenu" :autoExpandKeys="treeAutoExpandKeys" :projectId="projectId" :contractId="contractId" isColor @nodeTap="wbsElTreeClick" @menuTap="ElTreeMenuClick"/>
|
|
|
|
|
|
+ <WbsTree :autoExpandKeys="treeAutoExpandKeys" :contractId="contractId" :menus="ElTreeMenu"
|
|
|
|
+ :projectId="projectId" isColor ui="page-division-tree" @menuTap="ElTreeMenuClick"
|
|
|
|
+ @nodeTap="wbsElTreeClick"/>
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
</div>
|
|
</div>
|
|
<!--左右拖动-->
|
|
<!--左右拖动-->
|
|
@@ -22,11 +24,12 @@
|
|
<div class="basic-info">
|
|
<div class="basic-info">
|
|
<HcCard title="当前节点基础信息">
|
|
<HcCard title="当前节点基础信息">
|
|
<template #extra>
|
|
<template #extra>
|
|
- <el-checkbox v-model="treeItemInfo.isConcealedWorksNode" label="标记为隐蔽工程节点" :true-label="1" :false-label="0" size="large" @change="concealedChange"/>
|
|
|
|
|
|
+ <el-checkbox v-model="treeItemInfo.isConcealedWorksNode" :false-label="0"
|
|
|
|
+ :true-label="1" label="标记为隐蔽工程节点" size="large" @change="concealedChange"/>
|
|
</template>
|
|
</template>
|
|
<HcTable :column="tableBasicColumn" :datas="tableBasicData" :isIndex="false" border>
|
|
<HcTable :column="tableBasicColumn" :datas="tableBasicData" :isIndex="false" border>
|
|
- <template #type="{row}">{{getRowType(row['type'])}}</template>
|
|
|
|
- <template #majorDataType="{row}">{{getRowMajorType(row['majorDataType'])}}</template>
|
|
|
|
|
|
+ <template #type="{row}">{{ getRowType(row['type']) }}</template>
|
|
|
|
+ <template #majorDataType="{row}">{{ getRowMajorType(row['majorDataType']) }}</template>
|
|
|
|
|
|
</HcTable>
|
|
</HcTable>
|
|
</HcCard>
|
|
</HcCard>
|
|
@@ -34,21 +37,21 @@
|
|
<div class="project-info">
|
|
<div class="project-info">
|
|
<HcCard title="当前节点工程用表信息">
|
|
<HcCard title="当前节点工程用表信息">
|
|
<template #extra>
|
|
<template #extra>
|
|
- <el-button type="primary" hc-btn @click="addingFormClick">
|
|
|
|
|
|
+ <el-button hc-btn type="primary" @click="addingFormClick">
|
|
<HcIcon name="add"/>
|
|
<HcIcon name="add"/>
|
|
<span>引用元素表</span>
|
|
<span>引用元素表</span>
|
|
</el-button>
|
|
</el-button>
|
|
</template>
|
|
</template>
|
|
<HcTable :column="tableProjectColumn" :datas="tableProjectData" :isIndex="false" border>
|
|
<HcTable :column="tableProjectColumn" :datas="tableProjectData" :isIndex="false" border>
|
|
- <template #tableType="{row}">{{getRowTableType(row['tableType'])}}</template>
|
|
|
|
- <template #tableOwner="{row}">{{getRowTableOwnerType(row['tableOwner'])}}</template>
|
|
|
|
|
|
+ <template #tableType="{row}">{{ getRowTableType(row['tableType']) }}</template>
|
|
|
|
+ <template #tableOwner="{row}">{{ getRowTableOwnerType(row['tableOwner']) }}</template>
|
|
<template #action="{row}">
|
|
<template #action="{row}">
|
|
- <HcTooltip keys="wbs_views_delexcel">
|
|
|
|
- <el-button type="primary" plain size="small" @click="deltableexcel(row)">
|
|
|
|
- <HcIcon name="delete-bin"/>
|
|
|
|
- <span>删除</span>
|
|
|
|
- </el-button>
|
|
|
|
- </HcTooltip>
|
|
|
|
|
|
+ <HcTooltip keys="wbs_views_delexcel">
|
|
|
|
+ <el-button plain size="small" type="primary" @click="deltableexcel(row)">
|
|
|
|
+ <HcIcon name="delete-bin"/>
|
|
|
|
+ <span>删除</span>
|
|
|
|
+ </el-button>
|
|
|
|
+ </HcTooltip>
|
|
</template>
|
|
</template>
|
|
</HcTable>
|
|
</HcTable>
|
|
</HcCard>
|
|
</HcCard>
|
|
@@ -58,7 +61,7 @@
|
|
<HcIcon name="download-2"/>
|
|
<HcIcon name="download-2"/>
|
|
<span>下载导入划分模板</span>
|
|
<span>下载导入划分模板</span>
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button type="primary" hc-btn :disabled="!treePrimaryKeyId" @click="toImportTempClick">
|
|
|
|
|
|
+ <el-button :disabled="!treePrimaryKeyId" hc-btn type="primary" @click="toImportTempClick">
|
|
<HcIcon name="folder-upload"/>
|
|
<HcIcon name="folder-upload"/>
|
|
<span>导入划分模板</span>
|
|
<span>导入划分模板</span>
|
|
</el-button>
|
|
</el-button>
|
|
@@ -70,10 +73,12 @@
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!--编辑节点-->
|
|
<!--编辑节点-->
|
|
- <HcDialog :show="editNodeModal" title="编辑节点" widths="600px" :loading="editNodeLoading" @close="editNodeModal = false" @save="editNodeClick">
|
|
|
|
- <el-form ref="formEditNodeRef" :model="formEditNodeModel" :rules="formEditNodeRules" label-width="auto" size="large">
|
|
|
|
|
|
+ <HcDialog :loading="editNodeLoading" :show="editNodeModal" title="编辑节点"
|
|
|
|
+ widths="600px" @close="editNodeModal = false" @save="editNodeClick">
|
|
|
|
+ <el-form ref="formEditNodeRef" :model="formEditNodeModel" :rules="formEditNodeRules" label-width="auto"
|
|
|
|
+ size="large">
|
|
<el-form-item label="节点名称" prop="title">
|
|
<el-form-item label="节点名称" prop="title">
|
|
- <el-input v-model="formEditNodeModel.title" placeholder="请输入节点名称"/>
|
|
|
|
|
|
+ <el-input v-model="formEditNodeModel.title" placeholder="请输入节点名称"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="上级节点">
|
|
<el-form-item label="上级节点">
|
|
<el-input v-model="formEditNodeModel.parent.title" disabled/>
|
|
<el-input v-model="formEditNodeModel.parent.title" disabled/>
|
|
@@ -90,58 +95,65 @@
|
|
</HcDialog>
|
|
</HcDialog>
|
|
|
|
|
|
<!--复制节点-->
|
|
<!--复制节点-->
|
|
- <!--复制节点-->
|
|
|
|
- <HcDialog :show="copyNodeModal" title="复制节点" :widths="copyNodeTabKey === '1'?'600px':'1200px'" @close="copyNodeModal = false">
|
|
|
|
- <el-form ref="formCopyNodeModelRef" :model="formCopyNodeModel" :rules="formCopyNodeModelRules" label-width="auto" size="large" v-if="copyNodeTabKey !== '3'">
|
|
|
|
- <el-form-item label="节点名称" prop="title" style="margin-bottom: 0;" v-if="copyNodeTabKey === '1'">
|
|
|
|
|
|
+ <HcDialog :loading="copyNodeLoading" :show="copyNodeModal" :widths="copyNodeTabKey === '1'?'600px':'1200px'"
|
|
|
|
+ loading-text="复制节点中,请耐心等待..." title="复制节点" @close="copyNodeModal = false">
|
|
|
|
+ <el-form v-if="copyNodeTabKey !== '3'" ref="formCopyNodeModelRef" :model="formCopyNodeModel"
|
|
|
|
+ :rules="formCopyNodeModelRules" label-width="auto" size="large">
|
|
|
|
+ <el-form-item v-if="copyNodeTabKey === '1'" label="节点名称" prop="title" style="margin-bottom: 0;">
|
|
<el-input v-model="formCopyNodeModel.title" placeholder="请输入节点名称"/>
|
|
<el-input v-model="formCopyNodeModel.title" placeholder="请输入节点名称"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="划分编号" prop="partitionCode" style="margin-top: 10px;" v-if="copyNodeTabKey === '1'">
|
|
|
|
|
|
+ <el-form-item v-if="copyNodeTabKey === '1'" label="划分编号" prop="partitionCode"
|
|
|
|
+ style="margin-top: 10px;">
|
|
<el-input v-model="formCopyNodeModel.partitionCode" placeholder="请输入划分编号"/>
|
|
<el-input v-model="formCopyNodeModel.partitionCode" placeholder="请输入划分编号"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
|
|
|
|
- <el-form ref="formCopyNodeModelRef" :model="formCopyNodeModel" :rules="formCopyNodeModelRules" label-width="auto" size="large" v-if="copyNodeTabKey === '3'">
|
|
|
|
|
|
+ <el-form v-if="copyNodeTabKey === '3'" ref="formCopyNodeModelRef" :model="formCopyNodeModel"
|
|
|
|
+ :rules="formCopyNodeModelRules" label-width="auto" size="large">
|
|
<el-form-item label="所属方" prop="classify" style="margin-bottom: 0;">
|
|
<el-form-item label="所属方" prop="classify" style="margin-bottom: 0;">
|
|
<!-- <el-input v-model="formCopyNodeModel.classify" placeholder="请输入节点名称"/> -->
|
|
<!-- <el-input v-model="formCopyNodeModel.classify" placeholder="请输入节点名称"/> -->
|
|
- <el-checkbox-group v-model="classifyList">
|
|
|
|
- <el-checkbox label="施工" />
|
|
|
|
- <el-checkbox label="监理" />
|
|
|
|
|
|
+ <el-checkbox-group v-model="classifyList">
|
|
|
|
+ <el-checkbox label="施工"/>
|
|
|
|
+ <el-checkbox label="监理"/>
|
|
</el-checkbox-group>
|
|
</el-checkbox-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
- <div class="copy-node-many-box" v-if="copyNodeTabKey !== '1'">
|
|
|
|
|
|
+ <div v-if="copyNodeTabKey !== '1'" class="copy-node-many-box">
|
|
|
|
|
|
<div class="copy-node-many-tree">
|
|
<div class="copy-node-many-tree">
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
- <WbsTree :autoExpandKeys="TreeAutoExpandKeys" :projectId="projectId" :contractId="contractId" idPrefix="tree-node-copy-" :isAutoClick="false" :isAutoKeys="false" @nodeTap="copyNodeElTreeClick"/>
|
|
|
|
|
|
+ <WbsTree :autoExpandKeys="TreeAutoExpandKeys" :contractId="contractId" :isAutoClick="false"
|
|
|
|
+ :isAutoKeys="false" :projectId="projectId" idPrefix="tree-node-copy-"
|
|
|
|
+ @nodeTap="copyNodeElTreeClick"/>
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
</div>
|
|
</div>
|
|
<div class="copy-node-many-table">
|
|
<div class="copy-node-many-table">
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
<el-table :data="copyNodeTable" border stripe>
|
|
<el-table :data="copyNodeTable" border stripe>
|
|
- <el-table-column prop="title" label="复制到的位置"/>
|
|
|
|
- <el-table-column prop="nodeName" label="节点名称" v-if="copyNodeTabKey === '2'">
|
|
|
|
|
|
+ <el-table-column label="复制到的位置" prop="title"/>
|
|
|
|
+ <el-table-column v-if="copyNodeTabKey === '2'" label="节点名称" prop="nodeName">
|
|
<template #default="{row}">
|
|
<template #default="{row}">
|
|
- <el-form ref="copyNodeTableRef" :model="row" :rules="copyNodeTableRules" label-width="0" size="large">
|
|
|
|
|
|
+ <el-form ref="copyNodeTableRef" :model="row" :rules="copyNodeTableRules"
|
|
|
|
+ label-width="0" size="large">
|
|
<el-form-item prop="nodeName" style="margin-bottom: 0;">
|
|
<el-form-item prop="nodeName" style="margin-bottom: 0;">
|
|
<el-input v-model="row.nodeName" placeholder="请输入节点名称"/>
|
|
<el-input v-model="row.nodeName" placeholder="请输入节点名称"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="nodeName" label="划分编号" v-if="copyNodeTabKey === '2'">
|
|
|
|
|
|
+ <el-table-column v-if="copyNodeTabKey === '2'" label="划分编号" prop="nodeName">
|
|
<template #default="{row}">
|
|
<template #default="{row}">
|
|
- <el-form ref="copyNodeTableRef" :model="row" :rules="copyNodeTableRules" label-width="0" size="large">
|
|
|
|
|
|
+ <el-form ref="copyNodeTableRef" :model="row" :rules="copyNodeTableRules"
|
|
|
|
+ label-width="0" size="large">
|
|
<el-form-item prop="partitionCode" style="margin-bottom: 0;">
|
|
<el-form-item prop="partitionCode" style="margin-bottom: 0;">
|
|
<el-input v-model="row.partitionCode" placeholder="请输入划分编号"/>
|
|
<el-input v-model="row.partitionCode" placeholder="请输入划分编号"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="action" label="操作" width="120" align="center">
|
|
|
|
|
|
+ <el-table-column align="center" label="操作" prop="action" width="120">
|
|
<template #default="{_,$index}">
|
|
<template #default="{_,$index}">
|
|
- <el-button type="danger" plain @click="copyNodeTableDel($index)">删除</el-button>
|
|
|
|
|
|
+ <el-button plain type="danger" @click="copyNodeTableDel($index)">删除</el-button>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -152,43 +164,55 @@
|
|
<div class="lr-dialog-footer">
|
|
<div class="lr-dialog-footer">
|
|
<div class="left">
|
|
<div class="left">
|
|
<template v-for="item in copyNodeTab">
|
|
<template v-for="item in copyNodeTab">
|
|
- <el-button size="large" type="primary" plain v-if="item?.key === copyNodeTabKey" @click="copyNodeTabChange(item?.key)">{{item.name}}</el-button>
|
|
|
|
- <el-button size="large" text bg @click="copyNodeTabChange(item?.key)" v-else>{{item.name}}</el-button>
|
|
|
|
|
|
+ <el-button v-if="item?.key === copyNodeTabKey" plain size="large" type="primary"
|
|
|
|
+ @click="copyNodeTabChange(item?.key)">{{ item.name }}
|
|
|
|
+ </el-button>
|
|
|
|
+ <el-button v-else bg size="large" text @click="copyNodeTabChange(item?.key)">
|
|
|
|
+ {{ item.name }}
|
|
|
|
+ </el-button>
|
|
</template>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
<div class="right">
|
|
<div class="right">
|
|
<el-button size="large" @click="copyNodeModal = false">取消</el-button>
|
|
<el-button size="large" @click="copyNodeModal = false">取消</el-button>
|
|
- <el-button type="primary" hc-btn :loading="copyNodeLoading" @click="copyNodeClick">提交</el-button>
|
|
|
|
|
|
+ <el-button :loading="copyNodeLoading" hc-btn type="primary" @click="copyNodeClick">提交
|
|
|
|
+ </el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</HcDialog>
|
|
</HcDialog>
|
|
|
|
|
|
<!--新增子节点-->
|
|
<!--新增子节点-->
|
|
- <HcDialog :show="addNodeModal" title="新增子节点" widths="720px" @close="addNodeModal = false">
|
|
|
|
- <el-alert title="双击节点,可编辑节点名称,编辑完成后,请按回车或输入框消失后,再点提交" type="warning" :closable="false"/>
|
|
|
|
- <HcTreeNode :projectId="projectId" :nodeId="addTreeNodeId" :oldId="addTreeNodeOldId" @check-change="addTreeNodeCheckChange" v-if="addTreeNodeType === '1'"/>
|
|
|
|
- <HcTreeNode :projectId="projectId" :nodeId="addTreeNodeId" :oldId="addTreeNodeOldId" strictly @check-change="addTreeNodeCheckChange" v-if="addTreeNodeType === '2'"/>
|
|
|
|
|
|
+ <HcDialog :loading="addNodeLoading" :show="addNodeModal" loading-text="新增节点中,请耐心等待..."
|
|
|
|
+ title="新增子节点" widths="720px" @close="addNodeModal = false">
|
|
|
|
+ <el-alert :closable="false" title="双击节点,可编辑节点名称,编辑完成后,请按回车或输入框消失后,再点提交"
|
|
|
|
+ type="warning"/>
|
|
|
|
+ <HcTreeNode v-if="addTreeNodeType === '1'" :nodeId="addTreeNodeId" :oldId="addTreeNodeOldId"
|
|
|
|
+ :projectId="projectId" @check-change="addTreeNodeCheckChange"/>
|
|
|
|
+ <HcTreeNode v-if="addTreeNodeType === '2'" :nodeId="addTreeNodeId" :oldId="addTreeNodeOldId"
|
|
|
|
+ :projectId="projectId"
|
|
|
|
+ strictly @check-change="addTreeNodeCheckChange"/>
|
|
<template #footer>
|
|
<template #footer>
|
|
<div class="lr-dialog-footer">
|
|
<div class="lr-dialog-footer">
|
|
<div class="left flex items-center">
|
|
<div class="left flex items-center">
|
|
<div class="mr-4">选中方式:</div>
|
|
<div class="mr-4">选中方式:</div>
|
|
<el-radio-group v-model="addTreeNodeType">
|
|
<el-radio-group v-model="addTreeNodeType">
|
|
<el-radio label="1">当前及子节点</el-radio>
|
|
<el-radio label="1">当前及子节点</el-radio>
|
|
- <el-radio label="2" class="ml-4">仅当前节点</el-radio>
|
|
|
|
|
|
+ <el-radio class="ml-4" label="2">仅当前节点</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</div>
|
|
</div>
|
|
<div class="right">
|
|
<div class="right">
|
|
<el-button size="large" @click="addNodeModal = false">取消</el-button>
|
|
<el-button size="large" @click="addNodeModal = false">取消</el-button>
|
|
- <el-button type="primary" hc-btn :loading="addNodeLoading" @click="addNodeClick">提交</el-button>
|
|
|
|
|
|
+ <el-button :loading="addNodeLoading" hc-btn type="primary" @click="addNodeClick">提交
|
|
|
|
+ </el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</HcDialog>
|
|
</HcDialog>
|
|
|
|
|
|
<!--调整排序-->
|
|
<!--调整排序-->
|
|
- <HcDialog :show="sortNodeModal" title="调整排序" widths="700px" :loading="sortNodeLoading" @close="sortNodeModal = false" @save="sortNodeClick">
|
|
|
|
- <el-alert title="可拖动排序,也可在后面点击图标,切换排序" type="warning" :closable="false"/>
|
|
|
|
|
|
+ <HcDialog :loading="sortNodeLoading" :show="sortNodeModal" title="调整排序" widths="700px"
|
|
|
|
+ @close="sortNodeModal = false" @save="sortNodeClick">
|
|
|
|
+ <el-alert :closable="false" title="可拖动排序,也可在后面点击图标,切换排序" type="warning"/>
|
|
<div class="sort-node-body-box list-group header">
|
|
<div class="sort-node-body-box list-group header">
|
|
<div class="list-group-item">
|
|
<div class="list-group-item">
|
|
<div class="index-box">序号</div>
|
|
<div class="index-box">序号</div>
|
|
@@ -196,11 +220,12 @@
|
|
<div class="icon-box">排序</div>
|
|
<div class="icon-box">排序</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <Draggable class="sort-node-body-box list-group" ghost-class="ghost" :list="sortNodeData" item-key="id" @start="sortNodeDrag = true" @end="sortNodeDrag = false">
|
|
|
|
|
|
+ <Draggable :list="sortNodeData" class="sort-node-body-box list-group" ghost-class="ghost" item-key="id"
|
|
|
|
+ @end="sortNodeDrag = false" @start="sortNodeDrag = true">
|
|
<template #item="{element, index}">
|
|
<template #item="{element, index}">
|
|
<div class="list-group-item">
|
|
<div class="list-group-item">
|
|
- <div class="index-box">{{index + 1}}</div>
|
|
|
|
- <div class="title-box">{{element.title}}</div>
|
|
|
|
|
|
+ <div class="index-box">{{ index + 1 }}</div>
|
|
|
|
+ <div class="title-box">{{ element.title }}</div>
|
|
<div class="icon-box">
|
|
<div class="icon-box">
|
|
<span class="icon" @click="downSortClick(index)">
|
|
<span class="icon" @click="downSortClick(index)">
|
|
<HcIcon name="arrow-down" ui="text-lg"/>
|
|
<HcIcon name="arrow-down" ui="text-lg"/>
|
|
@@ -215,7 +240,8 @@
|
|
</HcDialog>
|
|
</HcDialog>
|
|
|
|
|
|
<!--导入划分模板-->
|
|
<!--导入划分模板-->
|
|
- <HcDialog :show="importTempModal" title="导入划分模板" widths="84%" ui="hc-modal-table" @close="importTempModal = false">
|
|
|
|
|
|
+ <HcDialog :show="importTempModal" title="导入划分模板" ui="hc-modal-table" widths="84%"
|
|
|
|
+ @close="importTempModal = false">
|
|
<div class="hc-import-temp-box">
|
|
<div class="hc-import-temp-box">
|
|
<!--div class="hc-choose-type-box">
|
|
<!--div class="hc-choose-type-box">
|
|
<div class="text-title text-orange">请选择需要导入的工程类别:</div>
|
|
<div class="text-title text-orange">请选择需要导入的工程类别:</div>
|
|
@@ -225,7 +251,7 @@
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</div>
|
|
</div>
|
|
</div-->
|
|
</div-->
|
|
- <div class="hc-import-node-tree-box" v-loading="uploadLoading" element-loading-text="Loading...">
|
|
|
|
|
|
+ <div v-loading="uploadLoading" class="hc-import-node-tree-box" element-loading-text="Loading...">
|
|
<div class="import-node-tree-box">
|
|
<div class="import-node-tree-box">
|
|
<div class="hc-tree-title-box">导入并识别成功</div>
|
|
<div class="hc-tree-title-box">导入并识别成功</div>
|
|
<div class="hc-tree-bar-box">
|
|
<div class="hc-tree-bar-box">
|
|
@@ -247,19 +273,22 @@
|
|
<template #footer>
|
|
<template #footer>
|
|
<div class="lr-dialog-footer">
|
|
<div class="lr-dialog-footer">
|
|
<div class="left">
|
|
<div class="left">
|
|
- <HcUpload ref="uploadRef" :contractId="contractId" :type="importRadio" :primaryKeyId="treePrimaryKeyId" :isSplicingNumber="isSplicingNumber"
|
|
|
|
- @change="uploadChange" @progress="uploadprogress" @finished="uploadFinished"/>
|
|
|
|
|
|
+ <HcUpload ref="uploadRef" :contractId="contractId" :isSplicingNumber="isSplicingNumber"
|
|
|
|
+ :primaryKeyId="treePrimaryKeyId" :type="importRadio"
|
|
|
|
+ @change="uploadChange" @finished="uploadFinished" @progress="uploadprogress"/>
|
|
</div>
|
|
</div>
|
|
<div class="right flex">
|
|
<div class="right flex">
|
|
<div class="mr-6">
|
|
<div class="mr-6">
|
|
<span class="text-grey">是否拼接划分编号:</span>
|
|
<span class="text-grey">是否拼接划分编号:</span>
|
|
- <el-switch v-model="isSplicingNumber" inline-prompt :active-value="1" active-text="是" :inactive-value="0" inactive-text="否" size="large"/>
|
|
|
|
|
|
+ <el-switch v-model="isSplicingNumber" :active-value="1" :inactive-value="0" active-text="是"
|
|
|
|
+ inactive-text="否" inline-prompt size="large"/>
|
|
</div>
|
|
</div>
|
|
<el-button size="large" @click="importTempModalClose">
|
|
<el-button size="large" @click="importTempModalClose">
|
|
<HcIcon name="close"/>
|
|
<HcIcon name="close"/>
|
|
<span>取消</span>
|
|
<span>取消</span>
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button type="primary" hc-btn :disabled="uploadLoading" :loading="uploadLoading" @click="importTempFolder">
|
|
|
|
|
|
+ <el-button :disabled="uploadLoading" :loading="uploadLoading" hc-btn type="primary"
|
|
|
|
+ @click="importTempFolder">
|
|
<HcIcon name="folder-upload"/>
|
|
<HcIcon name="folder-upload"/>
|
|
<span>导入模板</span>
|
|
<span>导入模板</span>
|
|
</el-button>
|
|
</el-button>
|
|
@@ -269,39 +298,43 @@
|
|
</HcDialog>
|
|
</HcDialog>
|
|
|
|
|
|
<!--替换并关联节点-->
|
|
<!--替换并关联节点-->
|
|
- <HcDialog :show="relationModal" title="替换并关联节点" widths="47rem" ui="hc-modal-table" saveText="确认关联" :loading="relationLoading" @close="relationModal = false" @save="relationSaveClick">
|
|
|
|
|
|
+ <HcDialog :loading="relationLoading" :show="relationModal" saveText="确认关联" title="替换并关联节点"
|
|
|
|
+ ui="hc-modal-table"
|
|
|
|
+ widths="47rem" @close="relationModal = false" @save="relationSaveClick">
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
<DivisionTree :datas="unmatchedTreeData" @nodeTap="divisionTreeClick"/>
|
|
<DivisionTree :datas="unmatchedTreeData" @nodeTap="divisionTreeClick"/>
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
</HcDialog>
|
|
</HcDialog>
|
|
|
|
|
|
<!--添加独立表单-->
|
|
<!--添加独立表单-->
|
|
- <HcDialog :show="addingFormModal" title="引用元素表" widths="84%" isTable :padding="false" :loading="addingFormLoading" @close="addingFormClose" @save="addingFormSave">
|
|
|
|
|
|
+ <HcDialog :loading="addingFormLoading" :padding="false" :show="addingFormModal" isTable title="引用元素表"
|
|
|
|
+ widths="84%" @close="addingFormClose" @save="addingFormSave">
|
|
<div class="adding-form-dialog-box">
|
|
<div class="adding-form-dialog-box">
|
|
<div class="dialog-tree-box">
|
|
<div class="dialog-tree-box">
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
- <ElTree class="hc-tree-node"
|
|
|
|
- ref="addingFormTreeRef"
|
|
|
|
- :props="addingFormTreeProps"
|
|
|
|
- :load="addingFormTreeLoadNode"
|
|
|
|
- lazy highlight-current accordion
|
|
|
|
- @node-click="addingFormTreeClick">
|
|
|
|
|
|
+ <ElTree ref="addingFormTreeRef"
|
|
|
|
+ :load="addingFormTreeLoadNode"
|
|
|
|
+ :props="addingFormTreeProps"
|
|
|
|
+ accordion
|
|
|
|
+ class="hc-tree-node" highlight-current lazy
|
|
|
|
+ @node-click="addingFormTreeClick">
|
|
</ElTree>
|
|
</ElTree>
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
</div>
|
|
</div>
|
|
<div class="dialog-table-box">
|
|
<div class="dialog-table-box">
|
|
<div class="dialog-search">
|
|
<div class="dialog-search">
|
|
<el-autocomplete
|
|
<el-autocomplete
|
|
- class="block" clearable
|
|
|
|
- v-model="searchTreeTitle"
|
|
|
|
- :fetch-suggestions="querySearchTree"
|
|
|
|
- placeholder="请输入关键词检索"
|
|
|
|
|
|
+ v-model="searchTreeTitle" :fetch-suggestions="querySearchTree"
|
|
|
|
+ class="block"
|
|
|
|
+ clearable
|
|
node-key="primaryKeyId"
|
|
node-key="primaryKeyId"
|
|
|
|
+ placeholder="请输入关键词检索"
|
|
value-key="title"
|
|
value-key="title"
|
|
@select="searchTreeSelect"/>
|
|
@select="searchTreeSelect"/>
|
|
</div>
|
|
</div>
|
|
<div class="dialog-table">
|
|
<div class="dialog-table">
|
|
- <HcTable ref="dialogTableRef" :loading="dialogTableLoading" :column="dialogTableColumn" :datas="dialogTableData" isCheck
|
|
|
|
|
|
+ <HcTable ref="dialogTableRef" :column="dialogTableColumn" :datas="dialogTableData"
|
|
|
|
+ :loading="dialogTableLoading" isCheck
|
|
@select="dialogTableSelect"
|
|
@select="dialogTableSelect"
|
|
@select-all="dialogTableSelectAll"
|
|
@select-all="dialogTableSelectAll"
|
|
/>
|
|
/>
|
|
@@ -317,7 +350,7 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
-import {ref,watch,onMounted,nextTick} from "vue";
|
|
|
|
|
|
+import {ref, watch, onMounted, nextTick} from "vue";
|
|
import {useAppStore} from "~src/store";
|
|
import {useAppStore} from "~src/store";
|
|
import {useRouter, useRoute} from 'vue-router'
|
|
import {useRouter, useRoute} from 'vue-router'
|
|
import WbsTree from "./components/WbsTree.vue"
|
|
import WbsTree from "./components/WbsTree.vue"
|
|
@@ -326,7 +359,7 @@ import HcTreeData from "./components/division/HcTreeData.vue"
|
|
import HcTreeData1 from "./components/division/HcTreeData1.vue"
|
|
import HcTreeData1 from "./components/division/HcTreeData1.vue"
|
|
import DivisionTree from "./components/division/DivisionTree.vue"
|
|
import DivisionTree from "./components/division/DivisionTree.vue"
|
|
import HcTreeNode from "./components/HcTreeNode.vue"
|
|
import HcTreeNode from "./components/HcTreeNode.vue"
|
|
-import {isType, getIndex, deepClone, formValidate, utilsArray } from "vue-utils-plus"
|
|
|
|
|
|
+import {isType, getIndex, deepClone, formValidate, utilsArray} from "vue-utils-plus"
|
|
import {getStoreData, setStoreData} from '~src/utils/storage'
|
|
import {getStoreData, setStoreData} from '~src/utils/storage'
|
|
import {getDictionary} from "~api/other"
|
|
import {getDictionary} from "~api/other"
|
|
import wbsApi from "~api/data-fill/wbs";
|
|
import wbsApi from "~api/data-fill/wbs";
|
|
@@ -338,7 +371,7 @@ const router = useRouter()
|
|
const useRoutes = useRoute()
|
|
const useRoutes = useRoute()
|
|
const useAppState = useAppStore()
|
|
const useAppState = useAppStore()
|
|
const {getObjValue, getArrValue} = isType()
|
|
const {getObjValue, getArrValue} = isType()
|
|
-const { isIndex } = utilsArray()
|
|
|
|
|
|
+const {isIndex} = utilsArray()
|
|
|
|
|
|
//全局变量
|
|
//全局变量
|
|
const projectId = ref(useAppState.getProjectId);
|
|
const projectId = ref(useAppState.getProjectId);
|
|
@@ -369,7 +402,7 @@ onMounted(() => {
|
|
//获取节点类型
|
|
//获取节点类型
|
|
const nodeTypeData = ref([])
|
|
const nodeTypeData = ref([])
|
|
const getWbsNodeTypeApi = async () => {
|
|
const getWbsNodeTypeApi = async () => {
|
|
- const { data } = await getDictionary({
|
|
|
|
|
|
+ const {data} = await getDictionary({
|
|
code: 'wbs_node_type'
|
|
code: 'wbs_node_type'
|
|
})
|
|
})
|
|
//处理数据
|
|
//处理数据
|
|
@@ -394,7 +427,7 @@ const getRowType = (type) => {
|
|
//获取资料类型
|
|
//获取资料类型
|
|
const majorDataTypeData = ref([])
|
|
const majorDataTypeData = ref([])
|
|
const getMajorDataTypeApi = async () => {
|
|
const getMajorDataTypeApi = async () => {
|
|
- const { data } = await getDictionary({
|
|
|
|
|
|
+ const {data} = await getDictionary({
|
|
code: 'major_data_type'
|
|
code: 'major_data_type'
|
|
})
|
|
})
|
|
//处理数据
|
|
//处理数据
|
|
@@ -413,7 +446,7 @@ const getRowMajorType = (type) => {
|
|
//获取表类型数据
|
|
//获取表类型数据
|
|
const nodeTableTypeData = ref([])
|
|
const nodeTableTypeData = ref([])
|
|
const getWbsNodeTableTypeApi = async () => {
|
|
const getWbsNodeTableTypeApi = async () => {
|
|
- const { data } = await getDictionary({
|
|
|
|
|
|
+ const {data} = await getDictionary({
|
|
code: 'table_type'
|
|
code: 'table_type'
|
|
})
|
|
})
|
|
nodeTableTypeData.value = getArrValue(data)
|
|
nodeTableTypeData.value = getArrValue(data)
|
|
@@ -433,7 +466,7 @@ const getRowTableType = (type) => {
|
|
//获取表类型数据
|
|
//获取表类型数据
|
|
const tableOwnerTypeData = ref([])
|
|
const tableOwnerTypeData = ref([])
|
|
const getTableOwnerTypeApi = async () => {
|
|
const getTableOwnerTypeApi = async () => {
|
|
- const { data } = await getDictionary({
|
|
|
|
|
|
+ const {data} = await getDictionary({
|
|
code: 'owner_type'
|
|
code: 'owner_type'
|
|
})
|
|
})
|
|
tableOwnerTypeData.value = getArrValue(data)
|
|
tableOwnerTypeData.value = getArrValue(data)
|
|
@@ -458,7 +491,7 @@ const wbsElTreeClick = ({node, data, keys}) => {
|
|
treeNodeInfo.value = node
|
|
treeNodeInfo.value = node
|
|
treeItemInfo.value = data
|
|
treeItemInfo.value = data
|
|
tableBasicData.value = [data]
|
|
tableBasicData.value = [data]
|
|
- setStoreData('wbsTreeExpandKeys',keys)
|
|
|
|
|
|
+ setStoreData('wbsTreeExpandKeys', keys)
|
|
treeAutoExpandKeys.value = keys || []
|
|
treeAutoExpandKeys.value = keys || []
|
|
if (node.level === 3) {
|
|
if (node.level === 3) {
|
|
treePrimaryKeyId.value = data['primaryKeyId']
|
|
treePrimaryKeyId.value = data['primaryKeyId']
|
|
@@ -472,17 +505,17 @@ const wbsElTreeClick = ({node, data, keys}) => {
|
|
|
|
|
|
//当前节点基础信息
|
|
//当前节点基础信息
|
|
const tableBasicColumn = ref([
|
|
const tableBasicColumn = ref([
|
|
- {key:'title', name: '节点名称'},
|
|
|
|
- {key:'partitionCode', name: '划分编号'},
|
|
|
|
- {key:'type', name: '节点类型'},
|
|
|
|
- {key:'majorDataType', name: '资料类型'},
|
|
|
|
|
|
+ {key: 'title', name: '节点名称'},
|
|
|
|
+ {key: 'partitionCode', name: '划分编号'},
|
|
|
|
+ {key: 'type', name: '节点类型'},
|
|
|
|
+ {key: 'majorDataType', name: '资料类型'},
|
|
|
|
|
|
])
|
|
])
|
|
const tableBasicData = ref([])
|
|
const tableBasicData = ref([])
|
|
|
|
|
|
//标记为隐蔽工程节点
|
|
//标记为隐蔽工程节点
|
|
const concealedChange = async () => {
|
|
const concealedChange = async () => {
|
|
- const { primaryKeyId, isConcealedWorksNode } = treeItemInfo.value
|
|
|
|
|
|
+ const {primaryKeyId, isConcealedWorksNode} = treeItemInfo.value
|
|
if (primaryKeyId) {
|
|
if (primaryKeyId) {
|
|
const {error, code, msg} = await divisionApi.concealedWorksNnode({
|
|
const {error, code, msg} = await divisionApi.concealedWorksNnode({
|
|
pKeyId: primaryKeyId,
|
|
pKeyId: primaryKeyId,
|
|
@@ -500,11 +533,11 @@ const concealedChange = async () => {
|
|
|
|
|
|
//当前节点工程用表信息
|
|
//当前节点工程用表信息
|
|
const tableProjectColumn = ref([
|
|
const tableProjectColumn = ref([
|
|
- {key:'nodeName', name: '工程用表名称'},
|
|
|
|
- {key:'tableType', name: '用表类型'},
|
|
|
|
- {key:'tableOwner', name: '用表单位'},
|
|
|
|
- {key:'fillRate', name: '填报完整率'},
|
|
|
|
- {key:'action', name: '操作', width: 100}
|
|
|
|
|
|
+ {key: 'nodeName', name: '工程用表名称'},
|
|
|
|
+ {key: 'tableType', name: '用表类型'},
|
|
|
|
+ {key: 'tableOwner', name: '用表单位'},
|
|
|
|
+ {key: 'fillRate', name: '填报完整率'},
|
|
|
|
+ {key: 'action', name: '操作', width: 100}
|
|
])
|
|
])
|
|
const tableProjectData = ref([])
|
|
const tableProjectData = ref([])
|
|
//获取数据
|
|
//获取数据
|
|
@@ -531,10 +564,10 @@ const ElTreeMenu = ref([
|
|
])
|
|
])
|
|
|
|
|
|
//树菜单被点击
|
|
//树菜单被点击
|
|
-const ElTreeMenuClick = async ({key,node,data,keys}) => {
|
|
|
|
|
|
+const ElTreeMenuClick = async ({key, node, data, keys}) => {
|
|
treeNodeInfo.value = node
|
|
treeNodeInfo.value = node
|
|
treeItemInfo.value = data
|
|
treeItemInfo.value = data
|
|
- setStoreData('wbsTreeExpandKeys',keys)
|
|
|
|
|
|
+ setStoreData('wbsTreeExpandKeys', keys)
|
|
if (key === 'add') {
|
|
if (key === 'add') {
|
|
addTreeNodeId.value = data?.id
|
|
addTreeNodeId.value = data?.id
|
|
addTreeNodeOldId.value = data?.oldId
|
|
addTreeNodeOldId.value = data?.oldId
|
|
@@ -565,9 +598,9 @@ const ElTreeMenuClick = async ({key,node,data,keys}) => {
|
|
sortNodeModal.value = true
|
|
sortNodeModal.value = true
|
|
} else if (key === 'del') {
|
|
} else if (key === 'del') {
|
|
// delModalClick()
|
|
// delModalClick()
|
|
- if(data['colorStatus']===1||data['colorStatus']===2){
|
|
|
|
- delModalClick()
|
|
|
|
- }else{
|
|
|
|
|
|
+ if (data['colorStatus'] === 1 || data['colorStatus'] === 2) {
|
|
|
|
+ delModalClick()
|
|
|
|
+ } else {
|
|
window?.$message?.warning('该节点已存在上报数据,不允许删除')
|
|
window?.$message?.warning('该节点已存在上报数据,不允许删除')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -592,8 +625,8 @@ const editNodeClick = async () => {
|
|
if (validate) {
|
|
if (validate) {
|
|
//发起请求
|
|
//发起请求
|
|
editNodeLoading.value = true
|
|
editNodeLoading.value = true
|
|
- const { primaryKeyId, title, partitionCode } = formEditNodeModel.value
|
|
|
|
- const { error, code } = await wbsApi.wbsTreeUpdateNode({
|
|
|
|
|
|
+ const {primaryKeyId, title, partitionCode} = formEditNodeModel.value
|
|
|
|
+ const {error, code} = await wbsApi.wbsTreeUpdateNode({
|
|
nodeName: title || '',
|
|
nodeName: title || '',
|
|
pKeyId: primaryKeyId || '',
|
|
pKeyId: primaryKeyId || '',
|
|
partitionCode: partitionCode || ''
|
|
partitionCode: partitionCode || ''
|
|
@@ -616,9 +649,9 @@ const copyNodeModal = ref(false)
|
|
//复制节点类型tab数据和相关处理
|
|
//复制节点类型tab数据和相关处理
|
|
const copyNodeTabKey = ref('1')
|
|
const copyNodeTabKey = ref('1')
|
|
const copyNodeTab = ref([
|
|
const copyNodeTab = ref([
|
|
- {key:'1', name: '单份复制'},
|
|
|
|
- {key:'2', name: '多份复制'},
|
|
|
|
- {key:'3', name: '复制数据'}
|
|
|
|
|
|
+ {key: '1', name: '单份复制'},
|
|
|
|
+ {key: '2', name: '多份复制'},
|
|
|
|
+ {key: '3', name: '复制数据'}
|
|
]);
|
|
]);
|
|
const copyNodeTabChange = (key) => {
|
|
const copyNodeTabChange = (key) => {
|
|
if (key !== copyNodeTabKey.value) {
|
|
if (key !== copyNodeTabKey.value) {
|
|
@@ -632,7 +665,7 @@ const copyNodeTabChange = (key) => {
|
|
const copyNodeLoading = ref(false)
|
|
const copyNodeLoading = ref(false)
|
|
const formCopyNodeModel = ref({})
|
|
const formCopyNodeModel = ref({})
|
|
const copyNodeTable = ref([])
|
|
const copyNodeTable = ref([])
|
|
-const classifyList=ref([])
|
|
|
|
|
|
+const classifyList = ref([])
|
|
|
|
|
|
//复制树被点击
|
|
//复制树被点击
|
|
const copyNodeElTreeClick = ({data}) => {
|
|
const copyNodeElTreeClick = ({data}) => {
|
|
@@ -664,7 +697,7 @@ const copyNodeElTreeClick = ({data}) => {
|
|
}
|
|
}
|
|
} else if (TabKey === '3') {
|
|
} else if (TabKey === '3') {
|
|
//限制复制数据不能复制到本身节点下
|
|
//限制复制数据不能复制到本身节点下
|
|
- if(data['id']!==formCopyNodeModel.value.id){
|
|
|
|
|
|
+ if (data['id'] !== formCopyNodeModel.value.id) {
|
|
// console.log(formCopyNodeModel.value,'formCopyNodeModel.value');
|
|
// console.log(formCopyNodeModel.value,'formCopyNodeModel.value');
|
|
// console.log(data,'data');
|
|
// console.log(data,'data');
|
|
// if(data['colorStatus']===1||data['colorStatus']===2){
|
|
// if(data['colorStatus']===1||data['colorStatus']===2){
|
|
@@ -672,14 +705,14 @@ const copyNodeElTreeClick = ({data}) => {
|
|
// }else{
|
|
// }else{
|
|
// window?.$message?.warning('该节点已存在上报数据,不允许复制')
|
|
// window?.$message?.warning('该节点已存在上报数据,不允许复制')
|
|
// }
|
|
// }
|
|
- if (data['notExsitChild']) {
|
|
|
|
- //限制一个节点不能点击多次
|
|
|
|
- let oldarr= copyNodeTable.value
|
|
|
|
- let result = oldarr.some(item => item.primaryKeyId===data['primaryKeyId']) //true
|
|
|
|
- if(!result){
|
|
|
|
- setCopyNodeTable(data, data?.title)
|
|
|
|
- }
|
|
|
|
|
|
+ if (data['notExsitChild']) {
|
|
|
|
+ //限制一个节点不能点击多次
|
|
|
|
+ let oldarr = copyNodeTable.value
|
|
|
|
+ let result = oldarr.some(item => item.primaryKeyId === data['primaryKeyId']) //true
|
|
|
|
+ if (!result) {
|
|
|
|
+ setCopyNodeTable(data, data?.title)
|
|
}
|
|
}
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -713,7 +746,7 @@ const copyNodeTableRules = {
|
|
}
|
|
}
|
|
//删除选中的节点
|
|
//删除选中的节点
|
|
const copyNodeTableDel = (index) => {
|
|
const copyNodeTableDel = (index) => {
|
|
- copyNodeTable.value.splice(index,1)
|
|
|
|
|
|
+ copyNodeTable.value.splice(index, 1)
|
|
}
|
|
}
|
|
//复制节点
|
|
//复制节点
|
|
//复制节点
|
|
//复制节点
|
|
@@ -721,41 +754,40 @@ const copyNodeClick = async () => {
|
|
const type = copyNodeTabKey.value
|
|
const type = copyNodeTabKey.value
|
|
const form = formCopyNodeModel.value
|
|
const form = formCopyNodeModel.value
|
|
const table = copyNodeTable.value
|
|
const table = copyNodeTable.value
|
|
- let classify=''
|
|
|
|
- let arr=[]
|
|
|
|
- if(classifyList.value.length>0){
|
|
|
|
- classifyList.value.forEach((item)=>{
|
|
|
|
- if(item==='施工'){
|
|
|
|
- arr.push(1)
|
|
|
|
- }else if(item==='监理'){
|
|
|
|
- arr.push(2)
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- classify=arr.join(',')
|
|
|
|
- }
|
|
|
|
|
|
+ let classify = ''
|
|
|
|
+ let arr = []
|
|
|
|
+ if (classifyList.value.length > 0) {
|
|
|
|
+ classifyList.value.forEach((item) => {
|
|
|
|
+ if (item === '施工') {
|
|
|
|
+ arr.push(1)
|
|
|
|
+ } else if (item === '监理') {
|
|
|
|
+ arr.push(2)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ classify = arr.join(',')
|
|
|
|
+ }
|
|
|
|
|
|
//效验数据
|
|
//效验数据
|
|
if (type === '1') {
|
|
if (type === '1') {
|
|
const validate = await formValidate(formCopyNodeModelRef.value)
|
|
const validate = await formValidate(formCopyNodeModelRef.value)
|
|
- if (validate) await copyContractTreeNode(type, form,[])
|
|
|
|
|
|
+ if (validate) await copyContractTreeNode(type, form, [])
|
|
} else if (type === '2') {
|
|
} else if (type === '2') {
|
|
if (table.length > 0) {
|
|
if (table.length > 0) {
|
|
const validate = await formValidate(copyNodeTableRef.value)
|
|
const validate = await formValidate(copyNodeTableRef.value)
|
|
- if (validate) await copyContractTreeNode(type, form,table)
|
|
|
|
|
|
+ if (validate) await copyContractTreeNode(type, form, table)
|
|
} else {
|
|
} else {
|
|
window?.$message?.warning('请先在左侧选择要复制到的节点')
|
|
window?.$message?.warning('请先在左侧选择要复制到的节点')
|
|
}
|
|
}
|
|
} else if (type === '3') {
|
|
} else if (type === '3') {
|
|
- if (table.length > 0&&classify.length>0) {
|
|
|
|
-
|
|
|
|
- await copyContractNodeSubmitBusinessData(form,table,classify)
|
|
|
|
|
|
+ if (table.length > 0 && classify.length > 0) {
|
|
|
|
+ await copyContractNodeSubmitBusinessData(form, table, classify)
|
|
} else {
|
|
} else {
|
|
window?.$message?.warning('请先在左侧选择要复制的节点或选择所属方')
|
|
window?.$message?.warning('请先在左侧选择要复制的节点或选择所属方')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//单个复制、多份复制请求
|
|
//单个复制、多份复制请求
|
|
-const copyContractTreeNode = async (type, form,table) => {
|
|
|
|
|
|
+const copyContractTreeNode = async (type, form, table) => {
|
|
copyNodeLoading.value = true
|
|
copyNodeLoading.value = true
|
|
const {error, code} = await wbsApi.copyContractTreeNode({
|
|
const {error, code} = await wbsApi.copyContractTreeNode({
|
|
copyType: type,
|
|
copyType: type,
|
|
@@ -765,31 +797,28 @@ const copyContractTreeNode = async (type, form,table) => {
|
|
copyBatchToPaths: table
|
|
copyBatchToPaths: table
|
|
})
|
|
})
|
|
//判断状态
|
|
//判断状态
|
|
|
|
+ copyNodeLoading.value = false
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
window?.$message?.success('复制成功')
|
|
window?.$message?.success('复制成功')
|
|
- copyNodeLoading.value = false
|
|
|
|
copyNodeModal.value = false
|
|
copyNodeModal.value = false
|
|
window?.location?.reload() //刷新页面
|
|
window?.location?.reload() //刷新页面
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//复制数据
|
|
//复制数据
|
|
-const copyContractNodeSubmitBusinessData = async (form,table,classify) => {
|
|
|
|
|
|
+const copyContractNodeSubmitBusinessData = async (form, table, classify) => {
|
|
copyNodeLoading.value = true
|
|
copyNodeLoading.value = true
|
|
const {error, code} = await wbsApi.copyContractNodeSubmitBusinessData({
|
|
const {error, code} = await wbsApi.copyContractNodeSubmitBusinessData({
|
|
needCopyPrimaryKeyId: form?.primaryKeyId || '',
|
|
needCopyPrimaryKeyId: form?.primaryKeyId || '',
|
|
copyBatchToPaths: table,
|
|
copyBatchToPaths: table,
|
|
- classify:classify
|
|
|
|
|
|
+ classify: classify
|
|
})
|
|
})
|
|
//判断状态
|
|
//判断状态
|
|
|
|
+ copyNodeLoading.value = false
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
window?.$message?.success('复制成功')
|
|
window?.$message?.success('复制成功')
|
|
- copyNodeLoading.value = false
|
|
|
|
copyNodeModal.value = false
|
|
copyNodeModal.value = false
|
|
window?.location?.reload() //刷新页面
|
|
window?.location?.reload() //刷新页面
|
|
- }else{
|
|
|
|
- copyNodeLoading.value = false
|
|
|
|
- // copyNodeModal.value = false
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -853,7 +882,7 @@ const addNodeClick = async () => {
|
|
}
|
|
}
|
|
|
|
|
|
//删除节点
|
|
//删除节点
|
|
-const delModalClick = () => {
|
|
|
|
|
|
+const delModalClick = () => {
|
|
window?.$messageBox?.alert('请谨慎考虑后,确认是否需要删除?', '删除节点', {
|
|
window?.$messageBox?.alert('请谨慎考虑后,确认是否需要删除?', '删除节点', {
|
|
showCancelButton: true,
|
|
showCancelButton: true,
|
|
confirmButtonText: '确认删除',
|
|
confirmButtonText: '确认删除',
|
|
@@ -866,9 +895,15 @@ const delModalClick = () => {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
const removeContractTreeNode = async () => {
|
|
const removeContractTreeNode = async () => {
|
|
|
|
+ const loadingInstance = window.$loading.service({
|
|
|
|
+ fullscreen: true,
|
|
|
|
+ text: '删除节点中,请耐心等待...',
|
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
|
+ })
|
|
const {error, code} = await wbsApi.removeContractTreeNode({
|
|
const {error, code} = await wbsApi.removeContractTreeNode({
|
|
ids: treeItemInfo.value?.primaryKeyId || ''
|
|
ids: treeItemInfo.value?.primaryKeyId || ''
|
|
})
|
|
})
|
|
|
|
+ loadingInstance.close()
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
window?.$message?.success('删除成功')
|
|
window?.$message?.success('删除成功')
|
|
window?.location?.reload() //刷新页面
|
|
window?.location?.reload() //刷新页面
|
|
@@ -884,9 +919,9 @@ const sortNodeDrag = ref(false)
|
|
const downSortClick = (index) => {
|
|
const downSortClick = (index) => {
|
|
const indexs = index + 1
|
|
const indexs = index + 1
|
|
const data = sortNodeData.value || []
|
|
const data = sortNodeData.value || []
|
|
- if(indexs !== data.length) {
|
|
|
|
- const tmp = data.splice(indexs,1);
|
|
|
|
- sortNodeData.value.splice(index,0,tmp[0]);
|
|
|
|
|
|
+ if (indexs !== data.length) {
|
|
|
|
+ const tmp = data.splice(indexs, 1);
|
|
|
|
+ sortNodeData.value.splice(index, 0, tmp[0]);
|
|
} else {
|
|
} else {
|
|
window?.$message?.warning('已经处于置底,无法下移')
|
|
window?.$message?.warning('已经处于置底,无法下移')
|
|
}
|
|
}
|
|
@@ -894,9 +929,9 @@ const downSortClick = (index) => {
|
|
//向上
|
|
//向上
|
|
const upSortClick = (index) => {
|
|
const upSortClick = (index) => {
|
|
const data = sortNodeData.value || []
|
|
const data = sortNodeData.value || []
|
|
- if(index !== 0) {
|
|
|
|
- const tmp = data.splice(index - 1,1);
|
|
|
|
- sortNodeData.value.splice(index,0,tmp[0]);
|
|
|
|
|
|
+ if (index !== 0) {
|
|
|
|
+ const tmp = data.splice(index - 1, 1);
|
|
|
|
+ sortNodeData.value.splice(index, 0, tmp[0]);
|
|
} else {
|
|
} else {
|
|
window?.$message?.warning('已经处于置顶,无法上移')
|
|
window?.$message?.warning('已经处于置顶,无法上移')
|
|
}
|
|
}
|
|
@@ -910,7 +945,7 @@ const sortNodeClick = async () => {
|
|
})
|
|
})
|
|
//发起请求
|
|
//发起请求
|
|
sortNodeLoading.value = true
|
|
sortNodeLoading.value = true
|
|
- const { error, code } = await wbsApi.diySortTreeNode({sortList})
|
|
|
|
|
|
+ const {error, code} = await wbsApi.diySortTreeNode({sortList})
|
|
sortNodeLoading.value = false
|
|
sortNodeLoading.value = false
|
|
//判断状态
|
|
//判断状态
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
@@ -1039,7 +1074,7 @@ const relationSaveClick = () => {
|
|
|
|
|
|
const setImportRelationApi = async (form) => {
|
|
const setImportRelationApi = async (form) => {
|
|
relationLoading.value = true
|
|
relationLoading.value = true
|
|
- const { error, code } = await divisionApi.setImportRelation(form)
|
|
|
|
|
|
+ const {error, code} = await divisionApi.setImportRelation(form)
|
|
relationLoading.value = false
|
|
relationLoading.value = false
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
window.$message?.success('关联成功')
|
|
window.$message?.success('关联成功')
|
|
@@ -1049,7 +1084,7 @@ const setImportRelationApi = async (form) => {
|
|
|
|
|
|
//下载模板
|
|
//下载模板
|
|
const downloadXlsx = () => {
|
|
const downloadXlsx = () => {
|
|
- window.open('https://bladex-test-info.oss-cn-chengdu.aliyuncs.com//upload/20221017/854463fdfdf90843e6783fbcb4d7d00c.xlsx','_blank')
|
|
|
|
|
|
+ window.open('https://bladex-test-info.oss-cn-chengdu.aliyuncs.com//upload/20221017/854463fdfdf90843e6783fbcb4d7d00c.xlsx', '_blank')
|
|
}
|
|
}
|
|
|
|
|
|
//返回上页
|
|
//返回上页
|
|
@@ -1060,7 +1095,7 @@ const toBackClick = () => {
|
|
//添加独立表单
|
|
//添加独立表单
|
|
const addingFormModal = ref(false)
|
|
const addingFormModal = ref(false)
|
|
const addingFormClick = () => {
|
|
const addingFormClick = () => {
|
|
- const { isLeaf } = treeNodeInfo.value
|
|
|
|
|
|
+ const {isLeaf} = treeNodeInfo.value
|
|
if (isLeaf) {
|
|
if (isLeaf) {
|
|
addingFormLoading.value = false
|
|
addingFormLoading.value = false
|
|
addingFormModal.value = true
|
|
addingFormModal.value = true
|
|
@@ -1069,40 +1104,40 @@ const addingFormClick = () => {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//删除当前节点用表
|
|
//删除当前节点用表
|
|
-const deltableexcel =async (row) => {
|
|
|
|
- console.log(row,'row');
|
|
|
|
- if(row['isEle']==='1'){
|
|
|
|
- if(row['pdfUrl']!==''){
|
|
|
|
- window?.$messageBox?.alert('该表已填写数据'+',请谨慎考虑后,确认是否需要删除?', '删除', {
|
|
|
|
|
|
+const deltableexcel = async (row) => {
|
|
|
|
+ console.log(row, 'row');
|
|
|
|
+ if (row['isEle'] === '1') {
|
|
|
|
+ if (row['pdfUrl'] !== '') {
|
|
|
|
+ window?.$messageBox?.alert('该表已填写数据' + ',请谨慎考虑后,确认是否需要删除?', '删除', {
|
|
showCancelButton: true,
|
|
showCancelButton: true,
|
|
confirmButtonText: '确认删除',
|
|
confirmButtonText: '确认删除',
|
|
cancelButtonText: '取消',
|
|
cancelButtonText: '取消',
|
|
- callback:async (action) => {
|
|
|
|
|
|
+ callback: async (action) => {
|
|
if (action === 'confirm') {
|
|
if (action === 'confirm') {
|
|
- const {error, code,msg} = await divisionApi.removeWbsTreeContract({
|
|
|
|
- id: row.pkeyId,
|
|
|
|
- stats:0
|
|
|
|
- })
|
|
|
|
|
|
+ const {error, code, msg} = await divisionApi.removeWbsTreeContract({
|
|
|
|
+ id: row.pkeyId,
|
|
|
|
+ stats: 0
|
|
|
|
+ })
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
window?.$message?.success('删除成功')
|
|
window?.$message?.success('删除成功')
|
|
window?.location?.reload() //刷新页面
|
|
window?.location?.reload() //刷新页面
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
window?.$message?.warning(msg)
|
|
window?.$message?.warning(msg)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
})
|
|
- }else{
|
|
|
|
- const {error, code,msg} = await divisionApi.removeWbsTreeContract({id: row.pkeyId,stats:0})
|
|
|
|
- if (!error && code === 200) {
|
|
|
|
- window?.$message?.success('删除成功')
|
|
|
|
- window?.location?.reload() //刷新页面
|
|
|
|
- }else{
|
|
|
|
- window?.$message?.warning(msg)
|
|
|
|
- }
|
|
|
|
|
|
+ } else {
|
|
|
|
+ const {error, code, msg} = await divisionApi.removeWbsTreeContract({id: row.pkeyId, stats: 0})
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window?.$message?.success('删除成功')
|
|
|
|
+ window?.location?.reload() //刷新页面
|
|
|
|
+ } else {
|
|
|
|
+ window?.$message?.warning(msg)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }else{
|
|
|
|
- window?.$message?.warning('该表不允许删除')
|
|
|
|
|
|
+ } else {
|
|
|
|
+ window?.$message?.warning('该表不允许删除')
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1121,7 +1156,7 @@ const addingFormTreeLoadNode = async (node, resolve) => {
|
|
const resData = await tabTypeLazyTree()
|
|
const resData = await tabTypeLazyTree()
|
|
resolve(resData?.data)
|
|
resolve(resData?.data)
|
|
} else {
|
|
} else {
|
|
- const resData = await tabTypeLazyTree(node?.data?.primaryKeyId, '' , false, {
|
|
|
|
|
|
+ const resData = await tabTypeLazyTree(node?.data?.primaryKeyId, '', false, {
|
|
current: 1, size: 2000,
|
|
current: 1, size: 2000,
|
|
})
|
|
})
|
|
resolve(resData?.data)
|
|
resolve(resData?.data)
|
|
@@ -1130,15 +1165,15 @@ const addingFormTreeLoadNode = async (node, resolve) => {
|
|
|
|
|
|
//树被点击
|
|
//树被点击
|
|
const addingFormTreeItem = ref({})
|
|
const addingFormTreeItem = ref({})
|
|
-const selectItems=ref([])
|
|
|
|
-const selectItem=ref({})
|
|
|
|
-const selectIds=ref([])
|
|
|
|
|
|
+const selectItems = ref([])
|
|
|
|
+const selectItem = ref({})
|
|
|
|
+const selectIds = ref([])
|
|
const addingFormTreeClick = async (data, node) => {
|
|
const addingFormTreeClick = async (data, node) => {
|
|
searchTreeTitle.value = ''
|
|
searchTreeTitle.value = ''
|
|
addingFormTreeItem.value = data
|
|
addingFormTreeItem.value = data
|
|
dialogTableData.value = []
|
|
dialogTableData.value = []
|
|
searchFormPage.value.current = 1
|
|
searchFormPage.value.current = 1
|
|
- console.log(addingFormTreeItem.value.primaryKeyId,'addingFormTreeItem.value');
|
|
|
|
|
|
+ console.log(addingFormTreeItem.value.primaryKeyId, 'addingFormTreeItem.value');
|
|
if (node?.level === 1) {
|
|
if (node?.level === 1) {
|
|
getDialogTableData().then()
|
|
getDialogTableData().then()
|
|
|
|
|
|
@@ -1146,8 +1181,8 @@ const addingFormTreeClick = async (data, node) => {
|
|
searchFormPage.value.total = 1
|
|
searchFormPage.value.total = 1
|
|
dialogTableData.value = [data]
|
|
dialogTableData.value = [data]
|
|
|
|
|
|
- nextTick(()=>{
|
|
|
|
- dialogTableRef.value?.toggleRowSelection(data,true);
|
|
|
|
|
|
+ nextTick(() => {
|
|
|
|
+ dialogTableRef.value?.toggleRowSelection(data, true);
|
|
|
|
|
|
})
|
|
})
|
|
selectItems.value.push(data)
|
|
selectItems.value.push(data)
|
|
@@ -1157,18 +1192,18 @@ const addingFormTreeClick = async (data, node) => {
|
|
//搜索
|
|
//搜索
|
|
const searchTreeTitle = ref('')
|
|
const searchTreeTitle = ref('')
|
|
const querySearchTree = async (key, resolve) => {
|
|
const querySearchTree = async (key, resolve) => {
|
|
- if(key) {
|
|
|
|
|
|
+ if (key) {
|
|
const primaryKeyId = addingFormTreeItem.value?.primaryKeyId ?? ''
|
|
const primaryKeyId = addingFormTreeItem.value?.primaryKeyId ?? ''
|
|
- const size=100000
|
|
|
|
- const { data } = await divisionApi.tabTypeLazyTree({
|
|
|
|
|
|
+ const size = 100000
|
|
|
|
+ const {data} = await divisionApi.tabTypeLazyTree({
|
|
projectId: projectId.value,
|
|
projectId: projectId.value,
|
|
contractId: contractId.value,
|
|
contractId: contractId.value,
|
|
- titleName:key,
|
|
|
|
|
|
+ titleName: key,
|
|
current: 1,
|
|
current: 1,
|
|
size: 10000
|
|
size: 10000
|
|
})
|
|
})
|
|
resolve(data?.records)
|
|
resolve(data?.records)
|
|
- } else{
|
|
|
|
|
|
+ } else {
|
|
resolve([])
|
|
resolve([])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1177,10 +1212,10 @@ const searchTreeSelect = (item) => {
|
|
dialogTableRef.value?.clearSelection()
|
|
dialogTableRef.value?.clearSelection()
|
|
dialogTableKeys.value = []
|
|
dialogTableKeys.value = []
|
|
dialogTableData.value = [item]
|
|
dialogTableData.value = [item]
|
|
- selectItems.value=[item]
|
|
|
|
- nextTick(()=>{
|
|
|
|
- dialogTableRef.value?.toggleRowSelection(item,true);
|
|
|
|
- })
|
|
|
|
|
|
+ selectItems.value = [item]
|
|
|
|
+ nextTick(() => {
|
|
|
|
+ dialogTableRef.value?.toggleRowSelection(item, true);
|
|
|
|
+ })
|
|
searchFormPage.value.current = 1
|
|
searchFormPage.value.current = 1
|
|
searchFormPage.value.total = 0
|
|
searchFormPage.value.total = 0
|
|
}
|
|
}
|
|
@@ -1196,11 +1231,11 @@ const searchFormPageChange = ({current, size}) => {
|
|
//表格数据
|
|
//表格数据
|
|
const dialogTableRef = ref(null)
|
|
const dialogTableRef = ref(null)
|
|
const dialogTableColumn = ref([
|
|
const dialogTableColumn = ref([
|
|
- {key:'title', name: '表单名称'},
|
|
|
|
- {key:'tabType', name: '元素表类型'},
|
|
|
|
- {key:'elementTotal', name: '元素总量'},
|
|
|
|
- {key:'tabOwner', name: '所属方'},
|
|
|
|
- {key:'fillRate', name: '填报率'}
|
|
|
|
|
|
+ {key: 'title', name: '表单名称'},
|
|
|
|
+ {key: 'tabType', name: '元素表类型'},
|
|
|
|
+ {key: 'elementTotal', name: '元素总量'},
|
|
|
|
+ {key: 'tabOwner', name: '所属方'},
|
|
|
|
+ {key: 'fillRate', name: '填报率'}
|
|
])
|
|
])
|
|
const dialogTableData = ref([])
|
|
const dialogTableData = ref([])
|
|
|
|
|
|
@@ -1223,11 +1258,11 @@ const getDialogTableData = async () => {
|
|
searchFormPage.value.total = resData.total || 0
|
|
searchFormPage.value.total = resData.total || 0
|
|
|
|
|
|
//表格勾选回显
|
|
//表格勾选回显
|
|
- selectItems.value.forEach((item)=>{
|
|
|
|
- dialogTableData.value.forEach((item1)=>{
|
|
|
|
- if(item.id===item1.id){
|
|
|
|
- nextTick(()=>{
|
|
|
|
- dialogTableRef.value?.toggleRowSelection(item1,true);
|
|
|
|
|
|
+ selectItems.value.forEach((item) => {
|
|
|
|
+ dialogTableData.value.forEach((item1) => {
|
|
|
|
+ if (item.id === item1.id) {
|
|
|
|
+ nextTick(() => {
|
|
|
|
+ dialogTableRef.value?.toggleRowSelection(item1, true);
|
|
})
|
|
})
|
|
|
|
|
|
}
|
|
}
|
|
@@ -1279,13 +1314,13 @@ const dialogTableSelect = ({selection, row}) => {
|
|
console.log(selectItems.value, "dialogTableSelect selectItems")
|
|
console.log(selectItems.value, "dialogTableSelect selectItems")
|
|
}
|
|
}
|
|
//获取数据
|
|
//获取数据
|
|
-const tabTypeLazyTree = async (parentId = '12345678910', titleName = '', search = false, form = {},size) => {
|
|
|
|
|
|
+const tabTypeLazyTree = async (parentId = '12345678910', titleName = '', search = false, form = {}, size) => {
|
|
let obj = {}, searchObj = {}
|
|
let obj = {}, searchObj = {}
|
|
- if(parentId) obj.parentId = parentId
|
|
|
|
- if(titleName) obj.titleName = titleName
|
|
|
|
- if(search) searchObj = searchFormPage.value
|
|
|
|
|
|
+ if (parentId) obj.parentId = parentId
|
|
|
|
+ if (titleName) obj.titleName = titleName
|
|
|
|
+ if (search) searchObj = searchFormPage.value
|
|
//发起请求
|
|
//发起请求
|
|
- const { data } = await divisionApi.tabTypeLazyTree({
|
|
|
|
|
|
+ const {data} = await divisionApi.tabTypeLazyTree({
|
|
projectId: projectId.value,
|
|
projectId: projectId.value,
|
|
contractId: contractId.value,
|
|
contractId: contractId.value,
|
|
...obj,
|
|
...obj,
|
|
@@ -1305,20 +1340,20 @@ const addingFormSave = async () => {
|
|
// const rows = dialogTableKeys.value
|
|
// const rows = dialogTableKeys.value
|
|
console.log(dialogTableKeys.value, "addingFormSave")
|
|
console.log(dialogTableKeys.value, "addingFormSave")
|
|
const rows = selectItems.value
|
|
const rows = selectItems.value
|
|
- console.log(rows,'rows');
|
|
|
|
|
|
+ console.log(rows, 'rows');
|
|
if (rows.length > 0) {
|
|
if (rows.length > 0) {
|
|
addingFormLoading.value = true
|
|
addingFormLoading.value = true
|
|
- const { primaryKeyId } = treeItemInfo.value
|
|
|
|
|
|
+ const {primaryKeyId} = treeItemInfo.value
|
|
const ids = rowsToId(rows, 'primaryKeyId')
|
|
const ids = rowsToId(rows, 'primaryKeyId')
|
|
- const arrids=ids.split(',')
|
|
|
|
|
|
+ const arrids = ids.split(',')
|
|
let newStr = [...new Set(arrids)].join(',');
|
|
let newStr = [...new Set(arrids)].join(',');
|
|
// console.log(newStr,'ids');
|
|
// console.log(newStr,'ids');
|
|
//发起请求
|
|
//发起请求
|
|
- const { error, code } = await divisionApi.addWbsContractInfo({
|
|
|
|
|
|
+ const {error, code} = await divisionApi.addWbsContractInfo({
|
|
projectId: projectId.value,
|
|
projectId: projectId.value,
|
|
contractId: contractId.value,
|
|
contractId: contractId.value,
|
|
nodeId: primaryKeyId,
|
|
nodeId: primaryKeyId,
|
|
- primaryKeyIds: newStr
|
|
|
|
|
|
+ primaryKeyIds: newStr
|
|
// primaryKeyIds: ids
|
|
// primaryKeyIds: ids
|
|
})
|
|
})
|
|
//处理结果
|
|
//处理结果
|
|
@@ -1351,7 +1386,7 @@ const onmousedown = () => {
|
|
const leftNum = isCollapse.value ? 142 : 272
|
|
const leftNum = isCollapse.value ? 142 : 272
|
|
document.onmousemove = (ve) => {
|
|
document.onmousemove = (ve) => {
|
|
let diffVal = ve.clientX - leftNum;
|
|
let diffVal = ve.clientX - leftNum;
|
|
- if(diffVal >= 310 && diffVal <= 900) {
|
|
|
|
|
|
+ if (diffVal >= 310 && diffVal <= 900) {
|
|
leftWidth.value = diffVal;
|
|
leftWidth.value = diffVal;
|
|
}
|
|
}
|
|
}
|
|
}
|