|
@@ -16,10 +16,11 @@
|
|
:props="defaultProps" :expand-on-click-node="false"
|
|
:props="defaultProps" :expand-on-click-node="false"
|
|
highlight-current node-key="id"
|
|
highlight-current node-key="id"
|
|
ref="tree">
|
|
ref="tree">
|
|
- <span class="custom-tree-node" slot-scope="{ node, data }">
|
|
|
|
|
|
+ <span class="custom-tree-node" :class="data.moreShow?'show':''" slot-scope="{ node, data }">
|
|
|
|
+ <!--@mouseover="mouseover(data)" @mouseleave="mouseout(data)"-->
|
|
<span>
|
|
<span>
|
|
{{ node.label }}
|
|
{{ node.label }}
|
|
- <el-dropdown @click="command=>{setLeftType(command,data)}">
|
|
|
|
|
|
+ <el-dropdown @click="command=>{setLeftType(command,data)}" @visible-change="visiblechange($event,data)">
|
|
<el-button
|
|
<el-button
|
|
type="text" icon="el-icon-more" class="normal-black">
|
|
type="text" icon="el-icon-more" class="normal-black">
|
|
</el-button>
|
|
</el-button>
|
|
@@ -43,10 +44,10 @@
|
|
highlight-current node-key="id"
|
|
highlight-current node-key="id"
|
|
:filter-node-method="filterNode"
|
|
:filter-node-method="filterNode"
|
|
ref="treeall">
|
|
ref="treeall">
|
|
- <span class="custom-tree-node" slot-scope="{ node, data }">
|
|
|
|
|
|
+ <span class="custom-tree-node" slot-scope="{ node, data }" :class="data.moreShow?'show':''">
|
|
<span>
|
|
<span>
|
|
{{ node.label }}
|
|
{{ node.label }}
|
|
- <el-dropdown @click="command=>{setLeftType(command,data)}">
|
|
|
|
|
|
+ <el-dropdown @click="command=>{setLeftType(command,data)}" @visible-change="visiblechange($event,data)">
|
|
<el-button
|
|
<el-button
|
|
type="text" icon="el-icon-more" class="normal-black">
|
|
type="text" icon="el-icon-more" class="normal-black">
|
|
</el-button>
|
|
</el-button>
|
|
@@ -68,7 +69,7 @@
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="14">
|
|
<el-col :span="14">
|
|
- <template v-if="leftType==2 || leftType==1">
|
|
|
|
|
|
+ <template v-if="leftType==5">
|
|
<p>节点信息</p>
|
|
<p>节点信息</p>
|
|
<el-table :data="tableData" border style="width: 100%">
|
|
<el-table :data="tableData" border style="width: 100%">
|
|
<el-table-column align="center" prop="deptName" label="当前节点" ></el-table-column>
|
|
<el-table-column align="center" prop="deptName" label="当前节点" ></el-table-column>
|
|
@@ -191,7 +192,7 @@
|
|
<div></div>
|
|
<div></div>
|
|
<div>
|
|
<div>
|
|
<el-link type="primary" @click="importVisible = true">快捷导入</el-link>
|
|
<el-link type="primary" @click="importVisible = true">快捷导入</el-link>
|
|
- <el-link type="primary" class="mg-l-20">下载导入模版</el-link>
|
|
|
|
|
|
+ <el-link type="primary" class="mg-l-20" @click="downloadTmp">下载导入模版</el-link>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="border-grey">
|
|
<div class="border-grey">
|
|
@@ -212,7 +213,7 @@
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="eLength" label="长度" width="120">
|
|
<el-table-column align="center" prop="eLength" label="长度" width="120">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <el-input v-model="scope.row.eLength" size="small" placeholder="请输入内容"></el-input>
|
|
|
|
|
|
+ <el-input v-model="scope.row.eLength" size="small" placeholder="请输入内容" :disabled="scope.row.eType == 4" ></el-input>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="eAllowDeviation" label="允许偏差值">
|
|
<el-table-column align="center" prop="eAllowDeviation" label="允许偏差值">
|
|
@@ -250,9 +251,10 @@
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog title="模版导入" :visible.sync="importVisible" width="50%" append-to-body :close-on-click-modal="false">
|
|
<el-dialog title="模版导入" :visible.sync="importVisible" width="50%" append-to-body :close-on-click-modal="false">
|
|
- <p>提示:必须按照系统要求的模版格式上传,否则系统识别无效 <el-link type="primary">下载导入模版</el-link></p>
|
|
|
|
|
|
+ <p>提示:必须按照系统要求的模版格式上传,否则系统识别无效 <el-link type="primary" @click="downloadTmp">下载导入模版</el-link></p>
|
|
<div>
|
|
<div>
|
|
- <el-button size="small" type="primary">本地上传</el-button>
|
|
|
|
|
|
+ <el-button size="small" type="primary" @click="fileClick2">本地上传</el-button>
|
|
|
|
+ <input @change="tmpImport" type="file" hidden ref="file2" accept=".xls, .xlsx">
|
|
</div>
|
|
</div>
|
|
<el-table :data="tempList" border style="width: 100%" >
|
|
<el-table :data="tempList" border style="width: 100%" >
|
|
<el-table-column align="center" prop="eName" label="元素名称" >
|
|
<el-table-column align="center" prop="eName" label="元素名称" >
|
|
@@ -290,7 +292,7 @@
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="eLength" label="长度" width="120">
|
|
<el-table-column align="center" prop="eLength" label="长度" width="120">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <el-input v-model="scope.row.eLength" size="small" placeholder="请输入内容"></el-input>
|
|
|
|
|
|
+ <el-input v-model="scope.row.eLength" size="small" placeholder="请输入内容" :disabled="scope.row.eType == 4"></el-input>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="eAllowDeviation" label="允许偏差值">
|
|
<el-table-column align="center" prop="eAllowDeviation" label="允许偏差值">
|
|
@@ -482,7 +484,8 @@
|
|
import {getLazytree,getDetail,update,selectByNodeTable,getAlltree,
|
|
import {getLazytree,getDetail,update,selectByNodeTable,getAlltree,
|
|
saveFormAndElement,selectFormElements,removeTableById,
|
|
saveFormAndElement,selectFormElements,removeTableById,
|
|
importWbsTree} from "@/api/manager/wbstree";
|
|
importWbsTree} from "@/api/manager/wbstree";
|
|
- import {saveElement,remove as removeElement,updateBatchElements} from "@/api/manager/wbsformelement";
|
|
|
|
|
|
+ import {saveElement,remove as removeElement,updateBatchElements,getTemplate,
|
|
|
|
+ importWbsElement} from "@/api/manager/wbsformelement";
|
|
import {getList as getAttchFromOriginalName} from "@/api/resource/attach";
|
|
import {getList as getAttchFromOriginalName} from "@/api/resource/attach";
|
|
import {getDictionary} from "@/api/system/dict";
|
|
import {getDictionary} from "@/api/system/dict";
|
|
import {mapGetters} from "vuex";
|
|
import {mapGetters} from "vuex";
|
|
@@ -493,6 +496,7 @@
|
|
filterText:'',
|
|
filterText:'',
|
|
treeData:[],
|
|
treeData:[],
|
|
treeLoad:false,
|
|
treeLoad:false,
|
|
|
|
+ menuShow:false,
|
|
defaultProps: {
|
|
defaultProps: {
|
|
children: 'children',
|
|
children: 'children',
|
|
label: 'title',
|
|
label: 'title',
|
|
@@ -500,7 +504,7 @@
|
|
return !data.hasChildren;
|
|
return !data.hasChildren;
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- leftType:2,
|
|
|
|
|
|
+ leftType:5,
|
|
curTreeData:{},
|
|
curTreeData:{},
|
|
tableData:[],
|
|
tableData:[],
|
|
nodeDetail:{},
|
|
nodeDetail:{},
|
|
@@ -543,6 +547,7 @@
|
|
curEleTable:{},
|
|
curEleTable:{},
|
|
editEleVisible:false,
|
|
editEleVisible:false,
|
|
editEleList:[],
|
|
editEleList:[],
|
|
|
|
+ eleReg:/(≥|≤|±|【】)?([^≥≤±【】]*)/,
|
|
|
|
|
|
editEleFormulaVisible:false,
|
|
editEleFormulaVisible:false,
|
|
formulaInput:'',
|
|
formulaInput:'',
|
|
@@ -653,11 +658,13 @@
|
|
},
|
|
},
|
|
|
|
|
|
setLeftType(type,data,node){
|
|
setLeftType(type,data,node){
|
|
- this.leftType = type;
|
|
|
|
|
|
+ if(type == 4 || type == 5){
|
|
|
|
+ this.leftType = type;
|
|
|
|
+ }
|
|
this.curTreeData = data;
|
|
this.curTreeData = data;
|
|
this.$refs.tree.setCurrentKey(data.id);
|
|
this.$refs.tree.setCurrentKey(data.id);
|
|
|
|
|
|
- if(this.leftType == 1 || this.leftType == 2){
|
|
|
|
|
|
+ if(type == 1 || type == 2){
|
|
this.getMajorDataTypeList();
|
|
this.getMajorDataTypeList();
|
|
this.dialogVisible = true;
|
|
this.dialogVisible = true;
|
|
}
|
|
}
|
|
@@ -669,7 +676,7 @@
|
|
}
|
|
}
|
|
res.data.data.parentName = parentName;
|
|
res.data.data.parentName = parentName;
|
|
this.tableData = [res.data.data];
|
|
this.tableData = [res.data.data];
|
|
- if(this.leftType == 1){
|
|
|
|
|
|
+ if(type == 1){
|
|
this.nodeDetail = {
|
|
this.nodeDetail = {
|
|
parentId:res.data.data.id,
|
|
parentId:res.data.data.id,
|
|
parentName:parentName
|
|
parentName:parentName
|
|
@@ -720,6 +727,9 @@
|
|
this.eleForm.parentId = this.nodeDetail.id;
|
|
this.eleForm.parentId = this.nodeDetail.id;
|
|
this.eleForm.elementList.forEach((element)=>{
|
|
this.eleForm.elementList.forEach((element)=>{
|
|
element.eAllowDeviation = (element.allow?element.allow:'') + (element.deviation?element.deviation:'');
|
|
element.eAllowDeviation = (element.allow?element.allow:'') + (element.deviation?element.deviation:'');
|
|
|
|
+ if(element.eType == 4){
|
|
|
|
+ element.eLength = 0;
|
|
|
|
+ }
|
|
})
|
|
})
|
|
saveFormAndElement(this.eleForm).then(()=>{
|
|
saveFormAndElement(this.eleForm).then(()=>{
|
|
//console.log(res)
|
|
//console.log(res)
|
|
@@ -761,9 +771,8 @@
|
|
handleEdit(index,row){
|
|
handleEdit(index,row){
|
|
this.curEleTable = row;
|
|
this.curEleTable = row;
|
|
selectFormElements(this.curEleTable.id).then((res)=>{
|
|
selectFormElements(this.curEleTable.id).then((res)=>{
|
|
- let reg = /(≥|≤|±|【】)?([^≥≤±【】]*)/;
|
|
|
|
res.data.data.forEach((element)=>{
|
|
res.data.data.forEach((element)=>{
|
|
- reg.exec(element.eAllowDeviation);
|
|
|
|
|
|
+ this.eleReg.exec(element.eAllowDeviation);
|
|
// console.log(RegExp.$1)
|
|
// console.log(RegExp.$1)
|
|
// console.log(RegExp.$2)
|
|
// console.log(RegExp.$2)
|
|
element.allow = RegExp.$1?RegExp.$1:'';
|
|
element.allow = RegExp.$1?RegExp.$1:'';
|
|
@@ -802,9 +811,14 @@
|
|
saveNewEle(row){
|
|
saveNewEle(row){
|
|
row.eAllowDeviation = (row.allow?row.allow:'') + (row.deviation?row.deviation:'');
|
|
row.eAllowDeviation = (row.allow?row.allow:'') + (row.deviation?row.deviation:'');
|
|
row.fId = this.curEleTable.id;
|
|
row.fId = this.curEleTable.id;
|
|
|
|
+ row.initTableName = this.curEleTable.initTableName;
|
|
|
|
+ if(row.eType == 4){
|
|
|
|
+ row.eLength = 0;
|
|
|
|
+ }
|
|
saveElement(row).then((res)=>{
|
|
saveElement(row).then((res)=>{
|
|
if(res.data.data){
|
|
if(res.data.data){
|
|
- this.$set(row,'id',res.data.data);
|
|
|
|
|
|
+ this.$set(row,'id',res.data.data.id);
|
|
|
|
+ this.$set(row,'ekey',res.data.data.ekey);
|
|
this.$message({
|
|
this.$message({
|
|
type: "success",
|
|
type: "success",
|
|
message: "保存成功!"
|
|
message: "保存成功!"
|
|
@@ -821,7 +835,7 @@
|
|
confirmButtonText: '删除',
|
|
confirmButtonText: '删除',
|
|
cancelButtonText: '取消'
|
|
cancelButtonText: '取消'
|
|
}).then(() => {
|
|
}).then(() => {
|
|
- removeElement(row.id).then(()=>{
|
|
|
|
|
|
+ removeElement(row.id,this.curEleTable.initTableName,row.ekey).then(()=>{
|
|
list.splice(index,1);
|
|
list.splice(index,1);
|
|
})
|
|
})
|
|
})
|
|
})
|
|
@@ -840,7 +854,13 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(this.editEleList.length > 0){
|
|
if(this.editEleList.length > 0){
|
|
- updateBatchElements(this.editEleList).then(()=>{
|
|
|
|
|
|
+ this.editEleList.forEach((element)=>{
|
|
|
|
+ element.eAllowDeviation = (element.allow?element.allow:'') + (element.deviation?element.deviation:'');
|
|
|
|
+ if(element.eType == 4){
|
|
|
|
+ element.eLength = 0;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ updateBatchElements(this.editEleList,this.curEleTable.initTableName).then(()=>{
|
|
this.editEleVisible = false;
|
|
this.editEleVisible = false;
|
|
this.updateNodeTable();
|
|
this.updateNodeTable();
|
|
this.$message({
|
|
this.$message({
|
|
@@ -917,6 +937,7 @@
|
|
let node = this.$refs.tree.getNode(this.curTreeData.id);
|
|
let node = this.$refs.tree.getNode(this.curTreeData.id);
|
|
node.isLeaf = false;
|
|
node.isLeaf = false;
|
|
this.importTemplateVisible = false;
|
|
this.importTemplateVisible = false;
|
|
|
|
+ this.upFile = null;
|
|
}).finally(()=>{
|
|
}).finally(()=>{
|
|
this.importLoading = false;
|
|
this.importLoading = false;
|
|
})
|
|
})
|
|
@@ -964,6 +985,60 @@
|
|
row.isEdit = false;
|
|
row.isEdit = false;
|
|
},
|
|
},
|
|
|
|
|
|
|
|
+ downloadTmp(){
|
|
|
|
+ getTemplate().then((res)=>{
|
|
|
|
+ //console.log(res)
|
|
|
|
+ let blob = new Blob([res.data], {
|
|
|
|
+ type: 'application/vnd.ms-excel'
|
|
|
|
+ });
|
|
|
|
+ //console.log(blob)
|
|
|
|
+ let filename = Date.parse(new Date()) + '.xls';
|
|
|
|
+ if (window.navigator.msSaveOrOpenBlob) {
|
|
|
|
+ // 兼容IE10
|
|
|
|
+ window.navigator.msSaveBlob(blob, filename);
|
|
|
|
+ } else {
|
|
|
|
+ // 兼容chrome/firefox
|
|
|
|
+ let aTag = document.createElement('a');
|
|
|
|
+ aTag.download = Date.parse(new Date()) + '.xls';
|
|
|
|
+ aTag.href = window.URL.createObjectURL(blob);
|
|
|
|
+ aTag.click();
|
|
|
|
+ URL.revokeObjectURL(aTag.href);
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ fileClick2(){
|
|
|
|
+ this.$refs.file2.click();
|
|
|
|
+ },
|
|
|
|
+ tmpImport(e){
|
|
|
|
+ const file = e.target.files[0];
|
|
|
|
+ const formData = new FormData();
|
|
|
|
+ formData.append('file', file);
|
|
|
|
+ //console.log(file.name)
|
|
|
|
+ importWbsElement(formData).then((res)=>{
|
|
|
|
+ res.data.data.forEach((element)=>{
|
|
|
|
+ element.eName = element.elementName;
|
|
|
|
+ element.eLength = element.elementLength;
|
|
|
|
+ element.eType = Number(element.elementType);
|
|
|
|
+ element.eAllowDeviation = element.elementAllowDeviation;
|
|
|
|
+ element.eInspectionMethod = element.elementInspectionMethod;
|
|
|
|
+ this.eleReg.exec(element.eAllowDeviation);
|
|
|
|
+ // console.log(RegExp.$1)
|
|
|
|
+ // console.log(RegExp.$2)
|
|
|
|
+ element.allow = RegExp.$1?RegExp.$1:'';
|
|
|
|
+ element.deviation = RegExp.$2?RegExp.$2:'';
|
|
|
|
+ })
|
|
|
|
+ this.eleForm.elementList = res.data.data;
|
|
|
|
+ this.importVisible = false;
|
|
|
|
+ }).finally(()=>{
|
|
|
|
+ e.target.value='';
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ visiblechange(value,data){
|
|
|
|
+ this.$set(data, 'moreShow', value)
|
|
|
|
+ },
|
|
|
|
+
|
|
getDeptCategorylist(){
|
|
getDeptCategorylist(){
|
|
if(this.deptCategorylist.length >1){
|
|
if(this.deptCategorylist.length >1){
|
|
return;
|
|
return;
|
|
@@ -1090,4 +1165,19 @@
|
|
top: 10px;
|
|
top: 10px;
|
|
font-size: 20px;
|
|
font-size: 20px;
|
|
}
|
|
}
|
|
|
|
+ .custom-tree-node {
|
|
|
|
+ .normal-black {
|
|
|
|
+ display: none;
|
|
|
|
+ }
|
|
|
|
+ &:hover {
|
|
|
|
+ .normal-black {
|
|
|
|
+ display: block;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ &.show .normal-black{
|
|
|
|
+ display: block;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
</style>
|
|
</style>
|