|
@@ -483,10 +483,9 @@
|
|
|
<script>
|
|
|
import {getLazytree,getDetail,update,selectByNodeTable,getAlltree,
|
|
|
saveFormAndElement,selectFormElements,removeTableById,
|
|
|
- importWbsTree} from "@/api/manager/wbstree";
|
|
|
+ importWbsTree,exportTemplate} from "@/api/manager/wbstree";
|
|
|
import {saveElement,remove as removeElement,updateBatchElements,getTemplate,
|
|
|
importWbsElement} from "@/api/manager/wbsformelement";
|
|
|
- import {getList as getAttchFromOriginalName} from "@/api/resource/attach";
|
|
|
import {getDictionary} from "@/api/system/dict";
|
|
|
import {mapGetters} from "vuex";
|
|
|
export default {
|
|
@@ -727,50 +726,12 @@
|
|
|
this.eleForm.deptCategory = -1;
|
|
|
this.eleForm.type = 2;// '1'节点 '2'表单
|
|
|
this.eleForm.parentId = this.nodeDetail.id;
|
|
|
- for (let i = 0; i < this.eleForm.elementList.length; i++) {
|
|
|
- let element = this.eleForm.elementList[i];
|
|
|
- //把字段拼接起来
|
|
|
+ this.eleForm.elementList.forEach((element)=>{
|
|
|
element.eAllowDeviation = (element.allow?element.allow:'') + (element.deviation?element.deviation:'');
|
|
|
-
|
|
|
- if(element.eLength != Number(element.eLength)){
|
|
|
- this.$message({
|
|
|
- type: "warning",
|
|
|
- message: "【"+element.eName+"】"+"的长度必须是数字"
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
if(element.eType == 4){
|
|
|
- //日期长度为0
|
|
|
element.eLength = 0;
|
|
|
- }else if(element.eType == 1){
|
|
|
- //字符串
|
|
|
- if(Number(element.eLength)<10 || Number(element.eLength)>1000){
|
|
|
- this.$message({
|
|
|
- type: "warning",
|
|
|
- message: "数据类型为 字符串 长度必须在10-1000之间"
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- }else if(element.eType == 2){
|
|
|
- if(Number(element.eLength)<10 || Number(element.eLength)>255){
|
|
|
- this.$message({
|
|
|
- type: "warning",
|
|
|
- message: "数据类型为 整数 长度必须在10-255之间"
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- }else if(element.eType == 3){
|
|
|
- if(Number(element.eLength)<10 || Number(element.eLength)>65){
|
|
|
- this.$message({
|
|
|
- type: "warning",
|
|
|
- message: "数据类型为 小数 长度必须在10-65之间"
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
+ })
|
|
|
saveFormAndElement(this.eleForm).then(()=>{
|
|
|
//console.log(res)
|
|
|
this.updateTreeNewNode();
|
|
@@ -790,6 +751,10 @@
|
|
|
|
|
|
updateTreeNewNode(){
|
|
|
getLazytree(this.id ,this.nodeDetail.parentId).then((res)=>{
|
|
|
+ let node = this.$refs.tree.getNode(this.nodeDetail.parentId);
|
|
|
+ node.isLeaf = false;
|
|
|
+ node.isLeafByUser = false;
|
|
|
+ //console.log(node)
|
|
|
this.$refs.tree.updateKeyChildren(this.nodeDetail.parentId,res.data.data)
|
|
|
})
|
|
|
},
|
|
@@ -938,19 +903,6 @@
|
|
|
importTemplate(data){
|
|
|
this.importTemplateVisible = true;
|
|
|
this.curTreeData = data;
|
|
|
-
|
|
|
- if(!this.fileUrl){
|
|
|
- getAttchFromOriginalName(1, 20, {
|
|
|
- originalName:'WBS划分模板.xls'
|
|
|
- }).then((res)=>{
|
|
|
- if(res.data.data.records.length){
|
|
|
- this.fileUrl = res.data.data.records[0].link;
|
|
|
- }else{
|
|
|
- this.fileUrl = '';
|
|
|
- }
|
|
|
-
|
|
|
- })
|
|
|
- }
|
|
|
|
|
|
},
|
|
|
|
|
@@ -984,14 +936,10 @@
|
|
|
},
|
|
|
|
|
|
handleDownload() {
|
|
|
- if(this.fileUrl){
|
|
|
- window.open(this.fileUrl);
|
|
|
- }else{
|
|
|
- this.$message({
|
|
|
- type: "warning",
|
|
|
- message: "请先在附件管理上传【WBS划分模板.xls】文件"
|
|
|
- });
|
|
|
- }
|
|
|
+ //WBS划分模板
|
|
|
+ exportTemplate().then((res)=>{
|
|
|
+ this.downloadExcel(res.data,'WBS划分模板')
|
|
|
+ })
|
|
|
},
|
|
|
|
|
|
fileClick(){
|
|
@@ -1028,22 +976,7 @@
|
|
|
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);
|
|
|
- }
|
|
|
+ this.downloadExcel(res.data,'元素模板')
|
|
|
})
|
|
|
},
|
|
|
|
|
@@ -1079,6 +1012,28 @@
|
|
|
this.$set(data, 'moreShow', value)
|
|
|
},
|
|
|
|
|
|
+ downloadExcel(data,filename=''){
|
|
|
+ let blob = new Blob([data], {
|
|
|
+ type: 'application/vnd.ms-excel'
|
|
|
+ });
|
|
|
+ //console.log(blob)
|
|
|
+ if(!filename){
|
|
|
+ filename = Date.parse(new Date());
|
|
|
+ }
|
|
|
+ filename = filename+ '.xls';
|
|
|
+ if (window.navigator.msSaveOrOpenBlob) {
|
|
|
+ // 兼容IE10
|
|
|
+ window.navigator.msSaveBlob(blob, filename);
|
|
|
+ } else {
|
|
|
+ // 兼容chrome/firefox
|
|
|
+ let aTag = document.createElement('a');
|
|
|
+ aTag.download = filename;
|
|
|
+ aTag.href = window.URL.createObjectURL(blob);
|
|
|
+ aTag.click();
|
|
|
+ URL.revokeObjectURL(aTag.href);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
getDeptCategorylist(){
|
|
|
if(this.deptCategorylist.length >1){
|
|
|
return;
|