Commit a2163b05 authored by 高飞's avatar 高飞

修改信息ZP评审新增功能,左侧tree拖拽问题,头部展示一级标签

parent 2809615b
...@@ -9,10 +9,19 @@ export const HTTP_STATUS = { message: "服务请求失败", code: 9004 }; ...@@ -9,10 +9,19 @@ export const HTTP_STATUS = { message: "服务请求失败", code: 9004 };
/** /**
* 邮件系统 * 邮件系统
*/ */
export const MAIL_ADDRESS = "http://6.1.22.93:8000";
export const MAIL_MANAGER_ADDRESS = "http://6.1.22.93:8010"; //移机前内网地址
// export const MAIL_ADDRESS = "http://6.1.22.93:8000";
// export const MAIL_MANAGER_ADDRESS = "http://6.1.22.93:8010";
// export const MAIL_DOMAIN = "zyyt.com"
//内网地址
export const MAIL_ADDRESS = "http://192.168.23.93:8000";
export const MAIL_MANAGER_ADDRESS = "http://192.168.23.93:8010";
export const MAIL_DOMAIN = "zyyt.com" export const MAIL_DOMAIN = "zyyt.com"
//开发环境地址
// export const MAIL_ADDRESS = "http://192.168.168.100:8000"; // export const MAIL_ADDRESS = "http://192.168.168.100:8000";
// export const MAIL_MANAGER_ADDRESS = "http://192.168.168.100:8010"; // export const MAIL_MANAGER_ADDRESS = "http://192.168.168.100:8010";
// export const MAIL_DOMAIN = "zyyt.com" // export const MAIL_DOMAIN = "zyyt.com"
......
<template> <template>
<div id="wjfx_fzjc"> <div id="wjfx_fzjc">
<div style="width: 100%;float: left;"> <div style="width: 100%;float: left;">
<!-- <ul class="uls"> <ul class="uls">
<li @click="clickButtomTop()">文档列表> </li> <li @click="clickButtomTop()">文档列表> </li>
<li v-for="(item) in trees" @click="clickButtom(item)">{{ item.label + '>' }}</li> <li v-for="(item) in trees" @click="clickButtom(item)">{{ item.label + '>' }}</li>
</ul> --> </ul>
<!-- <ul class="uls uls1"> <ul class="uls uls1">
<li v-for="(item) in treesChildren" @click="clickButtom(item)" :class="[expandedArr[0]==item.id?'active':'']">{{ item.label }}</li> <li v-for="(item) in treesChildren" @click="clickButtom(item)" :class="[expandedArr[0]==item.id?'active':'']">{{ item.label }}</li>
</ul> --> </ul>
<!-- <div v-for="(item, index) in modules" style="width: 200px;float: left;"> <!-- <div v-for="(item, index) in modules" style="width: 200px;float: left;">
<el-menu background-color="red" text-color="#fff" active-text-color="#010008"> <el-menu background-color="red" text-color="#fff" active-text-color="#010008">
<NavMenu :navMenus="item"></NavMenu> <NavMenu :navMenus="item"></NavMenu>
...@@ -166,8 +166,10 @@ export default { ...@@ -166,8 +166,10 @@ export default {
this.$refs.tree.setCurrentKey(4); this.$refs.tree.setCurrentKey(4);
}); });
this.currentRole = "navs"; this.currentRole = "navs";
this.clientDetails = { type: 4 }; this.clientDetails = { type: [4] };
this.expandedArr = [4] this.expandedArr = [4];
this.checkList = [];
this.$refs.tree.setCheckedKeys([]);
}, },
clickButtom(item) { clickButtom(item) {
this.$nextTick(() => { this.$nextTick(() => {
...@@ -175,7 +177,9 @@ export default { ...@@ -175,7 +177,9 @@ export default {
}); });
// this.$refs.tree.setCurrentKey([item.id]); // this.$refs.tree.setCurrentKey([item.id]);
this.currentRole = "navs"; this.currentRole = "navs";
this.clientDetails = { type: item.id }; this.clientDetails = { type: [item.id] };
this.checkList = [item];
this.$refs.tree.setCheckedKeys(this.checkList.map((item) => { return item.id }));
this.expandedArr = [item.id]; this.expandedArr = [item.id];
// let arr = this.getPathById(this.tree, item.id); // let arr = this.getPathById(this.tree, item.id);
// if (arr != undefined) { // if (arr != undefined) {
......
...@@ -345,7 +345,7 @@ ...@@ -345,7 +345,7 @@
v-model="option_value_rwmb_pl" v-model="option_value_rwmb_pl"
@change="fun_change" @change="fun_change"
placeholder="请选择对应模板" placeholder="请选择对应模板"
style="maring-top=10px;" style="margin-top:10px"
> >
<el-option <el-option
v-for="item in option_rwmb_pl" v-for="item in option_rwmb_pl"
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
</div> </div>
</div> </div>
<div class="right-div"> <div class="right-div">
<component :is="currentRole" :clientDetails="clientDetails_s" :treeData="tree_data" ref="mychild" /> <component :is="currentRole" :clientDetails="clientDetails_s" :treeData="tree_data" :psxzTreeData="psxz_tree_data" ref="mychild" />
</div> </div>
<el-dialog title="新增文件夹" :visible.sync="dialogVisible"> <el-dialog title="新增文件夹" :visible.sync="dialogVisible">
<span class="dialogContent"><span><span style="color:red">*</span>名称:</span> <span class="dialogContent"><span><span style="color:red">*</span>名称:</span>
...@@ -89,6 +89,7 @@ export default { ...@@ -89,6 +89,7 @@ export default {
clientDetails_s: { type: [this.fl_type], module_name: this.module_name, type_folder: this.type_folder, fl_type: this.fl_type}, clientDetails_s: { type: [this.fl_type], module_name: this.module_name, type_folder: this.type_folder, fl_type: this.fl_type},
currentRole: "navs", currentRole: "navs",
tree_data: [], //左侧树结构的数据 tree_data: [], //左侧树结构的数据
psxz_tree_data:[],//特殊结构--评审库
dialogVisible: false, //新增子节点弹出框 dialogVisible: false, //新增子节点弹出框
dialogVisible_edit: false, dialogVisible_edit: false,
name_edit: '', name_edit: '',
...@@ -121,11 +122,18 @@ export default { ...@@ -121,11 +122,18 @@ export default {
} }
}, },
nodeDragEnd(sNode, eNode, position, evt){ nodeDragEnd(sNode, eNode, position, evt){
console.log(eNode)
if(eNode == null || sNode.id == eNode.id){ if(eNode == null || sNode.id == eNode.id){
return; return;
} }
let str = ''
if(position=='inner'){//内部
str = "此操作永久将"+ sNode.data.label+ "及其下所有文件夹转移到" + eNode.data.label + "中, 是否继续?";
}else{
str = "此操作永久将"+ sNode.data.label+ "及其下所有文件夹转移到和" + eNode.data.label + "同级中, 是否继续?";
}
this.$confirm( this.$confirm(
"此操作永久将"+ sNode.data.label+ "及其下所有文件夹到" + eNode.data.label + "中, 是否继续?", str,
"提示", "提示",
{ {
confirmButtonText: "确定", confirmButtonText: "确定",
...@@ -135,8 +143,8 @@ export default { ...@@ -135,8 +143,8 @@ export default {
).then(res=>{ ).then(res=>{
return post("api/rest/3z/document/moveDocumentTreeItem", { return post("api/rest/3z/document/moveDocumentTreeItem", {
id: sNode.data.id, //当前节点 id: sNode.data.id, //当前节点
destCode: eNode.data.parentCode, //目标节点 destCode: position=='inner'?eNode.data.code:eNode.data.level==1?null:eNode.data.parentCode, //目标节点
level: eNode.data.level//目标节点id level: position=='inner'?eNode.data.level+1:eNode.data.level//目标节点
}); });
}).then(res=>{ }).then(res=>{
this.$message.success("转移成功"); this.$message.success("转移成功");
...@@ -293,6 +301,8 @@ export default { ...@@ -293,6 +301,8 @@ export default {
level: 0, level: 0,
children: res children: res
}]; }];
this.psxz_tree_data = res.filter(item =>item.label=='评审库');
this.currentRole = "navs"; this.currentRole = "navs";
// let arr = [this.fl_type]; // let arr = [this.fl_type];
// if (res.length > 0) { // if (res.length > 0) {
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
</el-tooltip> --> </el-tooltip> -->
<div class="button-discuss1" @click="handleAdd()">新增</div> <div class="button-discuss1" @click="handleAdd()">新增</div>
<div class="button-discuss1" @click="bigFileUploadAdd()">大文件新增</div> <div class="button-discuss1" @click="bigFileUploadAdd()">大文件新增</div>
<div class="button-discuss1" @click="handleAddPsxz()">评审新增</div>
</div> </div>
<div class="bottom-div"> <div class="bottom-div">
<transition name="el-zoom-in-top" v-on:after-leave="afterLeave_lb"> <transition name="el-zoom-in-top" v-on:after-leave="afterLeave_lb">
...@@ -230,7 +231,7 @@ ...@@ -230,7 +231,7 @@
show-word-limit :rows="4"> show-word-limit :rows="4">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="选择文件" style="margin-bottom: 0px" prop="fileList"> <el-form-item label="选择文件" prop="fileList">
<el-upload class="upload-demo" ref="upload" action="uploadUrl" :file-list="form_add.fileList" <el-upload class="upload-demo" ref="upload" action="uploadUrl" :file-list="form_add.fileList"
:on-change="handleChange" :show-file-list="true" :auto-upload="false" :multiple="false" :on-change="handleChange" :show-file-list="true" :auto-upload="false" :multiple="false"
:on-remove="handleRemove" :accept="format_files"> :on-remove="handleRemove" :accept="format_files">
...@@ -253,6 +254,63 @@ ...@@ -253,6 +254,63 @@
</span> </span>
</el-dialog> </el-dialog>
<el-dialog v-if="Visible_PsxzAdd" title="评审新增" :visible.sync="Visible_PsxzAdd" width="30%"
center class="xzwd psxz">
<el-form :model="form_PsxzAdd" label-width="80px" style="margin-bottom: 0px" ref="formsPsxz" :rules="rulesPsxz">
<el-form-item label="文档名称" prop="name">
<el-input v-model="form_PsxzAdd.name" maxlength="20" show-word-limit placeholder="请输入文档名称"></el-input>
</el-form-item>
<!-- <el-form-item label="文档类别">
<el-select v-model="form_add.region" placeholder="请选择文档类别">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="关键词">
<el-input v-model="form_PsxzAdd.gjc" show-word-limit placeholder="请输入关键词,多个关键词使用英文逗号,隔开"></el-input>
</el-form-item>
<el-form-item label="文档描述">
<el-input type="textarea" placeholder="请输入文档描述" v-model="form_PsxzAdd.ms" maxlength="100"
show-word-limit :rows="4">
</el-input>
</el-form-item>
<el-form-item label="选择文件" prop="fileList">
<el-upload class="upload-demo" ref="upload" action="uploadUrl" :file-list="form_PsxzAdd.fileList"
:on-change="handleChangePsxz" :show-file-list="true" :auto-upload="false" :multiple="false"
:on-remove="handleRemovePsxz" :accept="format_files">
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<div slot="tip" class="el-upload__tip">
允许上传DOC、PPT、JPG、PNG、MP4等等 ,且不超过500M
</div>
</el-upload>
</el-form-item>
<el-form-item label="预选节点" prop="fileList1">
<el-upload class="upload-demo" ref="upload" action="uploadUrl" :file-list="form_PsxzAdd.fileList1"
:on-change="handleChangePsxzExcel" :show-file-list="true" :auto-upload="false" :multiple="false"
:on-remove="handleRemovePsxzExcel" accept="['.XLS','.XLSX']">
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<div slot="tip" class="el-upload__tip">
只允许上传XLSX文件
</div>
</el-upload>
</el-form-item>
<el-form-item label="选择目录">
<el-tree class="myTree" :data="psxz_tree_data" node-key="id" show-checkbox :expand-on-click-node="false"
highlight-current :props="defaultProps" :check-strictly="true" ref="treePsxz"
:default-expanded-keys="psxzIds" @check-change="handleCheckChangePsxz" :indent=1>
</el-tree>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="Visible_PsxzAdd = false">取 消</el-button>
<el-button type="primary" @click="submitPsxz">确 定</el-button>
</span>
</el-dialog>
<el-dialog title="编辑文档" :visible.sync="centerDialogVisible_edit" width="30%" center> <el-dialog title="编辑文档" :visible.sync="centerDialogVisible_edit" width="30%" center>
<el-form :model="form_edit" label-width="80px" ref="forms1" :rules="rules"> <el-form :model="form_edit" label-width="80px" ref="forms1" :rules="rules">
<el-form-item label="文档名称" prop="name"> <el-form-item label="文档名称" prop="name">
...@@ -337,6 +395,7 @@ import FileCopy from "../../components/common/filecopy.vue"; ...@@ -337,6 +395,7 @@ import FileCopy from "../../components/common/filecopy.vue";
import { fileMd5Sum, getFileMD5Progress } from '../../util/file_md5.js'; import { fileMd5Sum, getFileMD5Progress } from '../../util/file_md5.js';
import VideoPlayer from "../../components/common/video_player.vue"; import VideoPlayer from "../../components/common/video_player.vue";
import { downloadFile, downloadDocument } from "../../api/xxxl/llxx"; import { downloadFile, downloadDocument } from "../../api/xxxl/llxx";
import XLSX from "xlsx";
export default { export default {
data() { data() {
return { return {
...@@ -345,6 +404,7 @@ export default { ...@@ -345,6 +404,7 @@ export default {
centerDialogVisible_edit: false, centerDialogVisible_edit: false,
centerDialogVisible_video: false, centerDialogVisible_video: false,
centerDialogVisible_sound: false, centerDialogVisible_sound: false,
Visible_PsxzAdd:false,
title: "", //视频播放页面的titile title: "", //视频播放页面的titile
title_sound: "", //音频播放页面的titile title_sound: "", //音频播放页面的titile
title_txt: "", title_txt: "",
...@@ -364,6 +424,14 @@ export default { ...@@ -364,6 +424,14 @@ export default {
ms: "", ms: "",
gjc: "", gjc: "",
}, },
form_PsxzAdd:{
name: "",
region: "",
fileList: [],
fileList1:[],
ms: "",
gjc: "",
},
form_edit: { form_edit: {
name: "", name: "",
region: "", region: "",
...@@ -393,6 +461,7 @@ export default { ...@@ -393,6 +461,7 @@ export default {
znjsfx_name: "", znjsfx_name: "",
clientDetails_type: [], //默认查询id为21的方案预案 clientDetails_type: [], //默认查询id为21的方案预案
clientDetails_check_type: [], clientDetails_check_type: [],
clientDetails_check_typePsxz:[],
ids: "", ids: "",
module_name: '', module_name: '',
fl_type: '', fl_type: '',
...@@ -404,7 +473,21 @@ export default { ...@@ -404,7 +473,21 @@ export default {
{ required: true, message: '请选择文件', trigger: 'change' } { required: true, message: '请选择文件', trigger: 'change' }
] ]
}, },
rulesPsxz: {
name: [
{ required: true, message: '请输入文档', trigger: 'blur' },
],
fileList: [
{ required: true, message: '请选择文件', trigger: 'change' }
],
fileList1: [
{ required: true, message: '请选择文件', trigger: 'change' }
]
},
tree_data: [], tree_data: [],
psxz_tree_data:[],
psxz_tree_dataCopy:[],
psxzIds:[],
defaultProps: { defaultProps: {
children: 'children', children: 'children',
label: 'label' label: 'label'
...@@ -412,6 +495,7 @@ export default { ...@@ -412,6 +495,7 @@ export default {
centerDialogVisible_fileCopy:false, centerDialogVisible_fileCopy:false,
copyfileId:'', copyfileId:'',
defaultTreeId:'', defaultTreeId:'',
parameterArr:[],
}; };
}, },
components: { components: {
...@@ -427,6 +511,10 @@ export default { ...@@ -427,6 +511,10 @@ export default {
treeData: { treeData: {
type: Array, type: Array,
default: [] default: []
},
psxzTreeData: {
type: Array,
default: []
} }
}, },
methods: { methods: {
...@@ -444,7 +532,6 @@ export default { ...@@ -444,7 +532,6 @@ export default {
"&treeIds=" + "&treeIds=" +
data.data.join(','), data.data.join(','),
).then((data) => { ).then((data) => {
// console.log();
if(data==1){ if(data==1){
this.$message({ this.$message({
type: "success", type: "success",
...@@ -818,13 +905,6 @@ export default { ...@@ -818,13 +905,6 @@ export default {
//新增弹出框弹出 //新增弹出框弹出
handleAdd() { handleAdd() {
// if (this.clientDetails_check_type.length == 0 || this.clientDetails_check_type.includes(1) || this.clientDetails_check_type.includes(2) || this.clientDetails_check_type.includes(3) || this.clientDetails_check_type.includes(4)) {
// this.$message({
// type: "warning",
// message: "请选择文档列表子节点",
// });
// return;
// }
let _this = this; let _this = this;
//设置下拉框默认选择第一条 //设置下拉框默认选择第一条
// _this.form_add.region = _this.options[0].value; // _this.form_add.region = _this.options[0].value;
...@@ -834,14 +914,17 @@ export default { ...@@ -834,14 +914,17 @@ export default {
}, 200) }, 200)
}, },
//评审新增弹出框弹出
handleAddPsxz() {
let _this = this;
//设置下拉框默认选择第一条
// _this.form_add.region = _this.options[0].value;
_this.Visible_PsxzAdd = true;
setTimeout(function () {
_this.$refs.formsPsxz.resetFields();
}, 200)
},
bigFileUploadAdd() {//弹出 bigFileUploadAdd() {//弹出
// if (this.clientDetails_check_type.length == 0 || this.clientDetails_check_type.includes(1) || this.clientDetails_check_type.includes(2) || this.clientDetails_check_type.includes(3) || this.clientDetails_check_type.includes(4)) {
// this.$message({
// type: "warning",
// message: "请选择文档列表子节点",
// });
// return;
// }
let _this = this; let _this = this;
_this.centerDialogVisible_bigFile = true; _this.centerDialogVisible_bigFile = true;
}, },
...@@ -1002,7 +1085,117 @@ export default { ...@@ -1002,7 +1085,117 @@ export default {
} }
}); });
}, },
//评审弹出框确定(文件上传)
submitPsxz() {
this.$refs['formsPsxz'].validate((valid) => {
if (valid) {
//此处是获取选择的下拉框(文件类别)的laber,如:国际法
if (this.form_PsxzAdd.name == "") {
this.$message({
type: "warning",
message: "文件名称不能为空!",
});
return;
}
if (this.form_PsxzAdd.fileList.length == 0) {
this.$message({
type: "warning",
message: "未选择文件!",
});
return;
}
if (this.form_PsxzAdd.fileList1.length == 0) {
this.$message({
type: "warning",
message: "未选择文件!",
});
return;
} else {
let file_ext = this.form_PsxzAdd.fileList[0].name.substring(
lastIndexOf(this.form_PsxzAdd.fileList[0].name, ".") + 1,
this.form_PsxzAdd.fileList[0].name.length
);
let fileInfo = {
createId: this.$store.getters.userInfo.account,
description: this.form_PsxzAdd.ms,
file: {
name: this.form_PsxzAdd.fileList[0].name,
size: this.form_PsxzAdd.fileList[0].size,
type: file_ext,
uuid: uuid() + "." + file_ext,
},
treeId: this.clientDetails_check_typePsxz.join(','),
name: this.form_PsxzAdd.name,
keyword: this.form_PsxzAdd.gjc.trim(),
module: this.module_name
};
//单个文件上传
let load = startLoadingProgress("0%");
let self = this;
this.centerDialogVisible_add = false;
load.text = "";
let md5 = "";
let file = null;
//获取md5
getFileMD5Progress(this.form_PsxzAdd.fileList[0].raw, (progress) => {
load.text = "解析中:" + progress;
}).then(res => {
md5 = res.md5;
file = res.file;
return this.checkFileExist(md5);//检查文件是否存在
}).then(result => {
if (!result) {
// let fd = new FormData();
// fd.append("file", file);
// fd.append("filename", md5);
// fd.append("bucket", "MERGE");
// return fileUploadProgress("api/rest/file/upload", fd, res => {//文件上传
// load.text = "上传中:" + res;
// });
return uploadOSSProgress(md5, "MERGE", file, res => {//文件上传
load.text = "上传中:" + res;
});
} else {
return Promise.reject({ message: "文件已存在" });
}
})
.then(res => {
let fd1 = new FormData();
fd1.append("info", JSON.stringify(fileInfo));
fd1.append("md5", md5);
fd1.append("destFilename", fileInfo.file.uuid);
load.text = "完成中";
return fileUpload_PUT("api/rest/3z/document/upload", fd1);//文件信息上传
}).then(res => {
this.parameterArr.map(i=>{
i.documentId = res;
})
console.log(this.parameterArr)
return post(
"api/rest/3z/document/addAttachment",
this.parameterArr
)
}).then(res=>{
this.$message.success('上传成功');
endLoading();
this.Visible_PsxzAdd = false;
console.log("loaded");
self.handleCurrentChange_lb(1);
this.clientDetails_check_typePsxz = [];
}).catch(err => {
endLoading();
console.log("error");
this.$message.warning(err.message);
});
}
}
});
},
haveSameElements(arr1, arr2) {
const set1 = new Set(arr1);
return arr2.some(item => set1.has(item));
},
//上传文件中的删除 //上传文件中的删除
handleRemove(index, row) { handleRemove(index, row) {
this.form_add.fileList = []; this.form_add.fileList = [];
...@@ -1028,6 +1221,148 @@ export default { ...@@ -1028,6 +1221,148 @@ export default {
} }
} }
}, },
//上传文件中的删除
handleRemovePsxz(index, row) {
this.form_PsxzAdd.fileList = [];
},
//选择文件
handleChangePsxz(file, fileList) {
if (fileList.length > 0) {
if (fileList[fileList.length - 1].size > 500 * 1024 * 1024) {
this.$message({
type: "warning",
message: "文件只能小于500M!",
});
this.form_PsxzAdd.fileList = [];
return;
} else {
this.form_PsxzAdd.fileList = [fileList[fileList.length - 1]]; // 这一步,是展示最后一次选择的文件
this.$refs.formsPsxz.validateField('fileList')
//选中文件,将文件名绑定到文档名称中
this.form_PsxzAdd.name || (this.form_PsxzAdd.name = file.name);
// if (lastIndexOf(file.name, ".") != -1) {
// this.form_add.name = file.name.substring(0, lastIndexOf(file.name, "."));
// }
}
}
},
//上传文件中的删除
handleRemovePsxzExcel(index, row) {
this.form_PsxzAdd.fileList1 = [];
},
//选择文件
handleChangePsxzExcel(file, fileList) {
this.psxz_tree_data = this.deepClone(this.psxz_tree_dataCopy);
this.psxzIds = [];
if (fileList.length > 0) {
this.form_PsxzAdd.fileList1 = [fileList[fileList.length - 1]]; // 这一步,是展示最后一次选择的文件
this.$refs.formsPsxz.validateField('fileList1');
this.file2Xce(file).then((tabJson) => {
if (tabJson && tabJson.length > 0) {
let obj_tab = []; //Excel表格的基础数据集合
this.arr_table = [];
tabJson.forEach((item, index) => {
if (index == 0) {
obj_tab = item.sheet;
}
});
let obj = [];
obj_tab.forEach((item,index)=>{
if(index<=3){
let arr = Object.values(item);
obj.push(arr);
}
});
let idsArr = [];
this.parameterArr = [];
obj.forEach(item1=>{
let arr = this.psxz_tree_data[0].children.filter(item=>item.label==item1[0]);
if(arr.length>0 ){
if(item1[1]!='' && item1[1]!=undefined){
item1[1] = item1[1]+'';
// let arrItem = item1[1].split(',');
// arrItem.forEach(i=>{
// })
let arrChildren = arr[0].children.filter(item=>item.label==item1[1]);
if( arrChildren.length>0){
idsArr.push(arrChildren[0].id);
this.parameterArr.push({name:arr[0].label,value:arrChildren[0].label})
}
}
}else{
//当前4大类没找到其中对应的某一个如:没找到“产品类别代码”等
}
})
this.clientDetails_check_typePsxz = idsArr;
this.$refs.treePsxz.setCheckedKeys(idsArr);
let str = '';
this.psxzIds = [this.psxz_tree_data[0].id];
if(this.psxz_tree_data.length>0){
if(this.psxz_tree_data[0].children.length>0){
str = str + this.zjdsfxz('产品类别代码');
str = str + this.zjdsfxz('年份代码');
str = str + this.zjdsfxz('单位名称代码');
str = str + this.zjdsfxz('产品类型代码');
}
}
if(str!=''){
let mesg = str.replace(/\n/g, '<br />');
this.$message({
type:'warning',
dangerouslyUseHTMLString: true,
message: mesg
});
}
}
});
}
},
zjdsfxz(name){
let str = '';
let zjArr = this.psxz_tree_data[0].children.filter(item=>{
return item.label==name
});//获取当前类别对象
this.psxz_tree_data[0].id;
if(zjArr.length>0){
if(zjArr[0].children.length>0){
let arrId = [];
zjArr[0].children.forEach(i=>{
arrId.push(i.id);
})
if(!this.haveSameElements(this.clientDetails_check_typePsxz,arrId)){
str = str+''+name+'”子节点没有选中\n';
this.psxzIds.push(zjArr[0].id);
}
}
}
return str
},
//读取Excel数据
file2Xce(file) {
return new Promise(function (resolve) {
const reader = new FileReader();
reader.onload = function (e) {
const data = e.target.result;
this.wb = XLSX.read(data, {
type: "binary",
});
const result = [];
this.wb.SheetNames.forEach((sheetName) => {
result.push({
sheetName: sheetName,
sheet: XLSX.utils.sheet_to_json(this.wb.Sheets[sheetName]),
});
});
resolve(result);
};
reader.readAsBinaryString(file.raw);
// reader.readAsBinaryString(file) // 传统input方法
});
},
//智能检索分析 //智能检索分析
onSubmit() { onSubmit() {
if (this.gjc_input != "") { if (this.gjc_input != "") {
...@@ -1104,6 +1439,56 @@ export default { ...@@ -1104,6 +1439,56 @@ export default {
return item != node.id return item != node.id
}) })
} }
},
handleCheckChangePsxz(node, isSelected) {
if (isSelected) {
this.clientDetails_check_typePsxz.push(node.id);
} else {
this.clientDetails_check_typePsxz = this.clientDetails_check_typePsxz.filter(item => {
return item != node.id
})
}
},
initData(orgList) {
// 第一种
if (orgList.length) {
for (var i = 0; i < orgList.length; i++) {
orgList[i].disabled = true;
if (orgList[i].children.length) {
// 如果有 children 则继续递归遍历
this.initData(orgList[i].children);
}
}
}
return orgList;
},
/**
* 深拷贝
* @param obj 传入对象
* @returns
*/
deepClone (obj) {
if (obj === null || typeof obj !== 'object') {
return obj;
}
if (obj instanceof Date) {
return new Date(obj.getTime());
}
if (obj instanceof Array) {
return obj.reduce((arr, item, i) => {
arr[i] = this.deepClone(item);
return arr;
}, []);
}
if (obj instanceof Object) {
return Object.keys(obj).reduce((newObj, key) => {
newObj[key] = this.deepClone(obj[key]);
return newObj;
}, {});
}
} }
}, },
mounted() { mounted() {
...@@ -1141,6 +1526,19 @@ export default { ...@@ -1141,6 +1526,19 @@ export default {
}; };
} }
}, },
//评审新增弹出框隐藏事件
Visible_PsxzAdd: function (s) {
if (!s) {
this.form_PsxzAdd = {
name: "",
region: "",
fileList: [],
fileList1:[],
ms: "",
gjc: "",
};
}
},
//视频预览弹出框隐藏事件 //视频预览弹出框隐藏事件
// centerDialogVisible_video: function (s) { // centerDialogVisible_video: function (s) {
// if (!s) { // if (!s) {
...@@ -1173,6 +1571,22 @@ export default { ...@@ -1173,6 +1571,22 @@ export default {
}, },
treeData: function (val) { treeData: function (val) {
this.tree_data = val; this.tree_data = val;
},
psxzTreeData: function (val) {
this.psxz_tree_data = this.deepClone(val);
this.psxz_tree_dataCopy = this.deepClone(val);
this.psxzIds = [];
if(this.psxz_tree_data.length>0){
this.psxzIds.push(this.psxz_tree_data[0].id);
// if(this.psxz_tree_data[0].children.length>0){
// this.psxz_tree_data[0].children.map(item=>{
// this.psxzIds.push(item.id);
// })
// }
let arr = this.initData(this.psxz_tree_data);
this.psxz_tree_data = arr;
}
} }
}, },
}; };
...@@ -1248,7 +1662,7 @@ export default { ...@@ -1248,7 +1662,7 @@ export default {
} }
.sjxz { .sjxz {
width: 350px; width: 300px;
float: left; float: left;
.el-date-editor { .el-date-editor {
...@@ -1265,6 +1679,7 @@ export default { ...@@ -1265,6 +1679,7 @@ export default {
} }
.el-input__inner { .el-input__inner {
width: 300px;
border: 1px solid #146a80 !important; border: 1px solid #146a80 !important;
} }
} }
...@@ -1594,6 +2009,15 @@ export default { ...@@ -1594,6 +2009,15 @@ export default {
margin-left: 75px; margin-left: 75px;
} }
} }
.psxz{
.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{
background-color: #409EFF;
border-color: #409EFF;
}
.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{
border-color: #ffffff;
}
}
/deep/ .el-list-enter-active, /deep/ .el-list-enter-active,
/deep/ .el-list-leave-active { /deep/ .el-list-leave-active {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment