1591 lines
48 KiB
JavaScript
1591 lines
48 KiB
JavaScript
// 系统设置功能
|
||
import {
|
||
addModel,
|
||
createModel,
|
||
importModel,
|
||
modelList,
|
||
updatePoster,
|
||
delModel,
|
||
junbiaoList,
|
||
checkAuth,
|
||
userList,
|
||
userState,
|
||
delUser,
|
||
createUser,
|
||
delRole,
|
||
roleList,
|
||
createRole,
|
||
importPOI,
|
||
listDepart,
|
||
delDepart,
|
||
addDepart,
|
||
editDepart,
|
||
uploadExcel,
|
||
tongbus,
|
||
addModelType,
|
||
getModelType,
|
||
editModelType,
|
||
delModelType,
|
||
createGraphLabel,
|
||
importGraphLabel,
|
||
addGraphLabel,
|
||
addJunbiaoType,
|
||
getGraphLabelType2,
|
||
editGraphLabelType,
|
||
delGraphLabelType,
|
||
delGraphLabels,
|
||
editGraphLabel,
|
||
importLuWang,
|
||
getStatus,
|
||
add_default,
|
||
getBatteryInfo,
|
||
setBattery,
|
||
projectImport,
|
||
getIniInfo,
|
||
} from "../../../../api/gisAPI";
|
||
import {
|
||
getElectronPath,
|
||
copyContent,
|
||
getBase64Image,
|
||
getNamefromPath,
|
||
setDeepObjectPropertyValue,
|
||
setProperty,
|
||
} from "../../../../utils";
|
||
import { $removeChanel } from "../../../../utils/communication";
|
||
import { getInfo } from "../../../../utils/auth";
|
||
import { format } from "date-fns";
|
||
import fs from "fs";
|
||
import { config } from "process";
|
||
const { ipcRenderer } = require("electron");
|
||
let Store = require("electron-store");
|
||
let store = new Store();
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
sandTable_udp_client_status: true,
|
||
url: "",
|
||
junbiaoLoading: false,
|
||
modelLoading: false,
|
||
modelTypeList: [],
|
||
graphLabelTypeList: [],
|
||
graphLabelProps: {
|
||
id: "type_id",
|
||
children: "sonNode",
|
||
label: "type_name",
|
||
},
|
||
selectedModelType: "",
|
||
selectedGraphLabelType: null,
|
||
graphLabelDataMaps: new Map(),
|
||
exportWin: false,
|
||
importWin: false,
|
||
native: {
|
||
port: null,
|
||
host: null,
|
||
},
|
||
client: {
|
||
port: null,
|
||
host: null,
|
||
},
|
||
headers: {
|
||
token: "",
|
||
},
|
||
config: {},
|
||
};
|
||
},
|
||
// computed: {
|
||
// graphLabelTypeListLength() {
|
||
// return this.graphLabelTypeList.length;
|
||
// },
|
||
// modelTypeListLength() {
|
||
// return this.modelTypeList.length;
|
||
// },
|
||
// },
|
||
created() {
|
||
this.$sendElectronChanel("getIniConfig");
|
||
let url = "";
|
||
this.$recvElectronChanel("IniConfig", (e, iniContent) => {
|
||
url = `http://${iniContent.protocol.host}:${iniContent.protocol.port}`;
|
||
console.log("---------------", url);
|
||
this.url = url + "/yjearth4.0/api/v1/auth/import";
|
||
});
|
||
},
|
||
mounted() {
|
||
this.sandTable_udp_client_status = JSON.parse(
|
||
localStorage.getItem("sandTable_udp_client_status")
|
||
);
|
||
// this.getGraphList()
|
||
this.$removeChanel("updatePoster");
|
||
this.$recvChanel("updatePoster", (res) => {
|
||
this.updatePoster1(res.modelInfo, true, res.path);
|
||
});
|
||
|
||
// 添加token Admin-Token
|
||
this.headers.token = localStorage.getItem("Admin-Token");
|
||
},
|
||
beforeDestroy() {
|
||
// this.$removeChanel("updatePoster")
|
||
console.log("system破坏了");
|
||
},
|
||
watch: {
|
||
selectedModelType(newValue) {
|
||
this.modelTypeList.forEach((item) => {
|
||
if (item.type_id == newValue) this.modelTableData = item.children;
|
||
});
|
||
},
|
||
/* selectedGraphLabelType(newValue) {
|
||
this.graphLabelTypeList.forEach(item => {
|
||
if (item.type_id == newValue)
|
||
this.graphTableData = item.children
|
||
})
|
||
}*/
|
||
},
|
||
methods: {
|
||
change_sandTable_udp_client_status() {
|
||
localStorage.setItem(
|
||
"sandTable_udp_client_status",
|
||
this.sandTable_udp_client_status
|
||
);
|
||
},
|
||
// 获取配置信息
|
||
getConfig() {
|
||
getIniInfo().then((res) => {
|
||
console.log("resresresresres", res);
|
||
if (res.code == 0) {
|
||
this.config = res.data;
|
||
}
|
||
});
|
||
},
|
||
// 进入后台管理
|
||
management() {
|
||
let service = localStorage.getItem("service");
|
||
let location = service;
|
||
console.clear();
|
||
window.open(location); //可以了 打包
|
||
// if (service) {
|
||
// window.location = service + "/dist";
|
||
// } else {
|
||
// this.$message.error("请先配置后台服务地址");
|
||
// }
|
||
},
|
||
|
||
getBattery() {
|
||
/* getBatteryInfo((res) => {
|
||
this.showBattery = res.hasOwnProperty("if_read") ? res.if_read : false;
|
||
}); */
|
||
},
|
||
batteryChange() {
|
||
if (!this.showBattery) {
|
||
clearInterval(window.batteryInterval);
|
||
let windows = $root_home.$remote.getCurrentWindow();
|
||
let title = windows.getTitle();
|
||
windows.setTitle(title.split("-")[0]);
|
||
}
|
||
localStorage.setItem("batteryStatus", this.showBattery);
|
||
/* console.log(this.showBattery);
|
||
setBattery(
|
||
{
|
||
if_read: this.showBattery,
|
||
},
|
||
(res) => {}
|
||
); */
|
||
},
|
||
graphLabelClick(data, event) {
|
||
console.log(data)
|
||
// if (this.selectedGraphLabelType == data.type_id) {
|
||
// this.graphTableData = [];
|
||
// this.$nextTick(() => {
|
||
// this.$refs.myTree && this.$refs.myTree.setCurrentKey(null);
|
||
// });
|
||
// this.selectedGraphLabelType = null;
|
||
// } else {
|
||
// this.selectedGraphLabelType = data.type_id;
|
||
// this.graphTableData = data.children || [];
|
||
// }
|
||
|
||
|
||
this.graphTableData = [...data.children];
|
||
this.graphTableSelectData = data.children;
|
||
if (data.sonNode.length) {
|
||
let junbiaos = [];
|
||
this.selectedGraphLabelType = data.type_id;
|
||
this.JByuanshishuju.forEach((item) => {
|
||
if (item.p_id == data.type_id && item.children)
|
||
junbiaos = junbiaos.concat(item.children);
|
||
});
|
||
this.graphTableData.push(...junbiaos);
|
||
}
|
||
},
|
||
tongbu() {
|
||
tongbus((res) => {
|
||
this.$sendChanel("renderNode");
|
||
});
|
||
},
|
||
close() {
|
||
this.$changeComponentShow("#modal", false);
|
||
},
|
||
submitForm(formName) {
|
||
this.$refs[formName].validate((valid) => {
|
||
if (valid) {
|
||
/* if (formName.indexOf("Role") > -1) {
|
||
createRole(this.formRole, res => {
|
||
this.dialogRoleFormVisible = false
|
||
this.getRoleList()
|
||
this.resetForm(formName)
|
||
})
|
||
} else { */
|
||
console.log(this.userTableData);
|
||
this.form.depart_id = this.node.depart_id;
|
||
createUser(this.form, (res) => {
|
||
this.dialogFormVisible = false;
|
||
this.getUserList(this.node.depart_id);
|
||
this.resetForm(formName);
|
||
});
|
||
// }
|
||
} else {
|
||
console.log("error submit!!");
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
resetForm(formName) {
|
||
this.$refs[formName].resetFields();
|
||
},
|
||
|
||
rowClick(row, column, event) {
|
||
console.log(row);
|
||
},
|
||
dblClick(row, column, event) {
|
||
console.log(row);
|
||
|
||
let option = {
|
||
url: row.url,
|
||
name: row.name,
|
||
length: 160,
|
||
};
|
||
/* if (row.detail)
|
||
Object.assign(option, JSON.parse(row.detail))
|
||
if (_groundImageOnEarthMap.get(row.jun_biao_id)) {
|
||
_groundImageOnEarthMap.get(row.jun_biao_id).flyTo()
|
||
} else {
|
||
console.log("添加", option)
|
||
$treeMethods.addGroundImages(option, (arg) => {
|
||
console.log(arg)
|
||
if (!option.center) {
|
||
this.center = arg
|
||
this.selectedJunBiao = row
|
||
this.endEditing()
|
||
} else {
|
||
_groundImageOnEarthMap.set(row.jun_biao_id, arg)
|
||
}
|
||
/!*let obj = new window.JunBiao(window.sdk.earth,)
|
||
if (row.detail) {
|
||
obj = new window.JunBiao(window.sdk.earth, row.detail)
|
||
}
|
||
_groundImageMap.set(row.jun_biao_id, obj)*!/
|
||
})
|
||
}*/
|
||
},
|
||
//打开系统设置框时,获取数据
|
||
getData() {
|
||
this.getConfig();
|
||
this.getModelTypeList();
|
||
// 标准版本husju
|
||
this.getGraphLabelTypeList(); //军标树
|
||
// this.getModelList();
|
||
this.getAuth();
|
||
// this.getUserList();
|
||
// this.getRoleList();
|
||
// this.getDepartlist();
|
||
// 标准版本
|
||
// this.getSatellite();
|
||
// 电池
|
||
// this.getBattery();
|
||
this.native.port = this.getPort();
|
||
this.native.host = this.getHostIP();
|
||
this.client.port = store.get("sandTable_udp_client_port");
|
||
this.client.host = store.get("sandTable_udp_client_host");
|
||
},
|
||
//保存对方地址
|
||
submitClient() {
|
||
if (this.client.host && this.client.port) {
|
||
store.set("sandTable_udp_client_port", this.client.port);
|
||
store.set("sandTable_udp_client_host", this.client.host);
|
||
this.$message.success("操作成功");
|
||
}
|
||
},
|
||
//保存本机端口
|
||
submitPort() {
|
||
ipcRenderer.send("submitPort", this.native.port);
|
||
ipcRenderer.once("submitPortRes", (event, op) => {
|
||
this.$message.success("操作成功");
|
||
});
|
||
},
|
||
|
||
getPort() {
|
||
let Store = require("electron-store");
|
||
let store = new Store();
|
||
return store.get("sandTable_udp_server_port");
|
||
},
|
||
|
||
getHostIP() {
|
||
const os = require("os");
|
||
const interfaces = os.networkInterfaces();
|
||
let hostIP = "";
|
||
|
||
for (const networkInterface in interfaces) {
|
||
const iface = interfaces[networkInterface];
|
||
for (let i = 0; i < iface.length; i++) {
|
||
const { address, family, internal } = iface[i];
|
||
if (family === "IPv4" && !internal) {
|
||
hostIP = address;
|
||
break;
|
||
}
|
||
}
|
||
|
||
if (hostIP) {
|
||
break;
|
||
}
|
||
}
|
||
|
||
return hostIP;
|
||
},
|
||
|
||
//获取模型列表
|
||
getModelList() {
|
||
if (!["", null, "null"].includes(this.modelLibPath))
|
||
this.initModelData(this.modelLibPath);
|
||
},
|
||
//获取卫星连接信息
|
||
getSatellite() {
|
||
getStatus((res) => {
|
||
console.log("111111111111", res);
|
||
});
|
||
},
|
||
// selectModelType(){},
|
||
//获取模型类型列表
|
||
getModelTypeList() {
|
||
getModelType((res) => {
|
||
console.log("", res);
|
||
this.modelTypeList = res.list;
|
||
setTimeout(() => {
|
||
this.modelLoading = false;
|
||
});
|
||
this.selectedModelType = res.list.length ? res.list[0].type_id : "";
|
||
this.modelTableData = res.list.length ? res.list[0].children : [];
|
||
// this.modelTotal = res.total.list[0].length
|
||
});
|
||
},
|
||
//编辑模型类型
|
||
editModelTypes() {
|
||
if (!this.selectedModel) {
|
||
this.$message.warning("请选择模型节点!");
|
||
return;
|
||
}
|
||
let type_id = this.selectedModel.type_id,
|
||
type_name = this.selectedModel.type_name;
|
||
this.$prompt("请输入模型类型", "修改模型类型", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
inputValidator: (value) => {
|
||
// 验证规则:不能为空(不能是纯空白字符),其他内容都允许
|
||
return /.*\S+.*/.test(value);
|
||
},
|
||
inputErrorMessage: '请输入模型类型',
|
||
inputValue: type_name,
|
||
})
|
||
.then(({ value }) => {
|
||
editModelType({ type_name: value, type_id }, (res) => {
|
||
this.modelTypeList.forEach((item) => {
|
||
if (item.type_id == type_id) {
|
||
item.type_name = value;
|
||
}
|
||
});
|
||
});
|
||
})
|
||
.catch(() => {
|
||
/*this.$message({
|
||
type: 'info',
|
||
message: '取消输入'
|
||
});*/
|
||
});
|
||
},
|
||
//删除模型类型
|
||
delModelTypes() {
|
||
if (!this.selectedModel) {
|
||
this.$message.warning("请选择模型节点!");
|
||
return;
|
||
}
|
||
let type_id = this.selectedModel.type_id;
|
||
this.$confirm("此操作会删除该类型及其对应的模型,是否继续?", "警告", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then((res) => {
|
||
delModelType({ type_id }, (res) => {
|
||
this.modelTypeList = this.modelTypeList.filter(
|
||
(item) => item.type_id !== type_id
|
||
);
|
||
this.modelTableData = [];
|
||
// if (this.selectedGraphLabelType == type_id) {
|
||
// this.selectedGraphLabelType = "";
|
||
// this.modelTableData = [];
|
||
// }
|
||
});
|
||
/* this.modelTypeList.forEach((item, index) => {
|
||
if (item.type_id == type_id) {
|
||
this.modelTypeList.splice(index, 1)
|
||
}
|
||
})*/
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
|
||
//获取军标类型列表
|
||
getGraphLabelTypeList() {
|
||
this.graphLabelDataMaps.clear();
|
||
this.graphLabelTypeList = [];
|
||
this.graphTableData = [];
|
||
this.graphTableSelectData = [];
|
||
this.JByuanshishuju = [];
|
||
getGraphLabelType2((res) => {
|
||
console.log("", res);
|
||
setTimeout(() => {
|
||
this.junbiaoLoading = false;
|
||
}, 1500);
|
||
if (res.list.length) {
|
||
this.JByuanshishuju = res.list;
|
||
console.log("this.graphLabelDataMaps", this.graphLabelDataMaps);
|
||
res.list.forEach((item) => {
|
||
item.sonNode = [];
|
||
if (!this.graphLabelDataMaps.has(item.p_id))
|
||
this.graphLabelDataMaps.set(item.p_id, []);
|
||
let arr = this.graphLabelDataMaps.get(item.p_id);
|
||
arr.push(item);
|
||
this.graphLabelDataMaps.set(item.p_id, arr);
|
||
});
|
||
console.log("this.graphLabelDataMaps", this.graphLabelDataMaps);
|
||
if (this.graphLabelDataMaps.get("-1")) {
|
||
this.graphLabelTypeList = this.graphLabelDataMaps.get("-1");
|
||
}
|
||
|
||
let appendsonNode = (arr) => {
|
||
arr.forEach((item) => {
|
||
if (this.graphLabelDataMaps.has(item.type_id)) {
|
||
item.sonNode = this.graphLabelDataMaps.get(item.type_id);
|
||
this.graphLabelDataMaps.delete(item.type_id);
|
||
}
|
||
if (item.sonNode && item.sonNode.length) {
|
||
appendsonNode(item.sonNode);
|
||
}
|
||
});
|
||
};
|
||
|
||
appendsonNode(this.graphLabelTypeList);
|
||
|
||
/* this.graphLabelTypeList.forEach(item => {
|
||
if (this.graphLabelDataMaps.has(item.type_id)) {
|
||
item.sonNode = this.graphLabelDataMaps.get(item.type_id)
|
||
}
|
||
})*/
|
||
|
||
console.log(
|
||
"this.graphLabelTypeList之后的array",
|
||
this.graphLabelTypeList
|
||
);
|
||
if (this.graphLabelTypeList > 0) {
|
||
this.selectedGraphLabelType = this.graphLabelTypeList[0].type_id;
|
||
// this.selectedGraphLabelType = res.list[0].type_id .sonNode[0]
|
||
this.graphTableData = this.graphLabelTypeList[0].sonNode[0].children;
|
||
// this.modelTotal = res.total.list[0].length
|
||
console.log("this.graphTableData", this.graphTableData);
|
||
|
||
setTimeout(() => {
|
||
this.$nextTick(() => {
|
||
this.$refs.myTree &&
|
||
this.$refs.myTree.setCurrentKey(
|
||
this.graphLabelTypeList[0].type_id
|
||
);
|
||
});
|
||
}, 1500);
|
||
}
|
||
}
|
||
});
|
||
},
|
||
io(dataArr, value) {},
|
||
editGraphLabelTypes() {
|
||
console.log(123);
|
||
|
||
let node = this.$refs.myTree.getCurrentNode();
|
||
if (node && node.type_id) {
|
||
let { type_id, p_id, sonNode, type_name } = node;
|
||
|
||
this.$prompt("", "修改军标类型", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
inputValue: type_name,
|
||
inputPattern: /^[^\s]+$/,
|
||
inputErrorMessage: "内容不能为空",
|
||
})
|
||
.then(({ value }) => {
|
||
if (value !== "") {
|
||
// 输入不为空,处理确认逻辑
|
||
editGraphLabelType({ type_name: value, type_id }, (res) => {
|
||
this.$refs.myTree.getCurrentNode().type_name = value;
|
||
});
|
||
} else {
|
||
this.$message.error("内容不能为空");
|
||
}
|
||
})
|
||
.catch(() => {
|
||
/*this.$message({
|
||
type: 'info',
|
||
message: '取消输入'
|
||
});*/
|
||
});
|
||
} else {
|
||
this.$message.warning("请先选择军标类型");
|
||
}
|
||
},
|
||
delGraphLabelTypes() {
|
||
let node = this.$refs.myTree.getCurrentNode();
|
||
console.log(node);
|
||
let { type_id, p_id, sonNode } = node;
|
||
if (sonNode && sonNode.length) {
|
||
this.$message.warning("该类型存在子类型,无法删除");
|
||
} else {
|
||
this.$confirm("此操作会删除该类型及其对应的军标,是否继续?", "警告", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then((res) => {
|
||
delGraphLabelType({ type_id }, (res) => {
|
||
if (p_id == "-1")
|
||
this.graphLabelTypeList = this.graphLabelTypeList.filter(
|
||
(item) => item.type_id !== type_id
|
||
);
|
||
else {
|
||
this.$refs.myTree.remove(node);
|
||
}
|
||
if (this.selectedGraphLabelType == type_id) {
|
||
this.selectedGraphLabelType = "";
|
||
this.graphTableData = [];
|
||
}
|
||
});
|
||
/* this.modelTypeList.forEach((item, index) => {
|
||
if (item.type_id == type_id) {
|
||
this.modelTypeList.splice(index, 1)
|
||
}
|
||
})*/
|
||
})
|
||
.catch(() => {});
|
||
}
|
||
},
|
||
delGraphLabel(jun_biao_id) {
|
||
console.log(this.graphLabelTypeList);
|
||
let msg = "确定删除?";
|
||
this.$confirm(msg, "警告", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then((res) => {
|
||
delGraphLabels({ jun_biao_id }, (res) => {
|
||
//刷新当前页
|
||
// this.pageModelList();
|
||
this.getGraphLabelTypeList();
|
||
this.graphTableData = this.graphTableData.filter(
|
||
(item) => item.jun_biao_id !== jun_biao_id
|
||
);
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
editGraphLabel(row) {
|
||
// editGraphLabel()
|
||
this.$prompt("", "修改军标", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
inputValidator: (value) => {
|
||
// 验证规则:不能为空(不能是纯空白字符),其他内容都允许
|
||
return /.*\S+.*/.test(value);
|
||
},
|
||
inputErrorMessage: '内容不能为空',
|
||
inputValue: row.name,
|
||
})
|
||
.then(({ value }) => {
|
||
editGraphLabel(
|
||
{ name: value, jun_biao_id: row.jun_biao_id },
|
||
(res) => {
|
||
row.name = value;
|
||
// this.$refs.myTree.getCurrentNode().type_name = value
|
||
}
|
||
);
|
||
})
|
||
.catch(() => {
|
||
/*this.$message({
|
||
type: 'info',
|
||
message: '取消输入'
|
||
});*/
|
||
});
|
||
},
|
||
|
||
//获取角色列表
|
||
getRoleList() {
|
||
roleList(
|
||
(res) => {
|
||
console.log("userList##############", res);
|
||
this.roleTableData = res.list;
|
||
this.roleTotal = res.total;
|
||
},
|
||
{ page: this.roleListPage, page_size: this.roleListPageSize }
|
||
);
|
||
},
|
||
//创建角色
|
||
createRole() {
|
||
this.$prompt("请输入角色名称", "提示", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
inputPattern: /^[\u4E00-\u9FA5A-Za-z0-9]{2,32}$/,
|
||
inputErrorMessage: "角色名称(长度为2~32)",
|
||
})
|
||
.then(({ value }) => {
|
||
createRole({ role_name: value }, () => {
|
||
this.getRoleList();
|
||
});
|
||
})
|
||
.catch(() => {
|
||
this.$message({
|
||
type: "info",
|
||
message: "取消输入",
|
||
});
|
||
});
|
||
// this.dialogRoleFormVisible = true
|
||
// this.$changeComponentShow("#modal", true, "z-index:12")
|
||
},
|
||
delRole(role_id) {
|
||
let msg = "确定删除?";
|
||
this.$confirm(msg, "警告", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then((res) => {
|
||
delRole({ role_id }, (res) => {
|
||
//刷新当前页
|
||
this.getRoleList();
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
handleRoleSizeChange(val) {
|
||
this.roleListPageSize = val;
|
||
this.getRoleList();
|
||
},
|
||
handleRoleCurrentChange(val) {
|
||
this.roleListPage = val;
|
||
this.getRoleList();
|
||
},
|
||
//获取用户列表
|
||
getUserList(depart_id) {
|
||
userList(
|
||
(res) => {
|
||
console.log("userList##############", res.list);
|
||
this.userTableData = res.list;
|
||
this.userTotal = res.total;
|
||
},
|
||
{ page: this.userListPage, page_size: this.userListPageSize, depart_id }
|
||
);
|
||
},
|
||
importUser() {
|
||
console.log(this.node);
|
||
let option = {
|
||
properties: ["openFile"],
|
||
filters: [
|
||
{
|
||
name: "用户数据表", //、底图
|
||
extensions: ["xlsx" /*"json"*/],
|
||
},
|
||
],
|
||
};
|
||
|
||
this.$sendElectronChanel("open-directory-dialog", option);
|
||
this.$recvElectronChanel("selectedItem", (e, paths) => {
|
||
console.log(paths);
|
||
});
|
||
},
|
||
onExcelSuccess(response, file, fileList) {
|
||
console.log(response);
|
||
console.log(file);
|
||
console.log(fileList);
|
||
},
|
||
httpRequest(param) {
|
||
// baseURL+'/yjearth4.0/api/v1/user/import'
|
||
|
||
const formData = new FormData();
|
||
// 将文件添加到 FormData 中
|
||
formData.append("file", param.file);
|
||
formData.append("depart_id", this.node.depart_id);
|
||
//接口方法,请替换成实际的方法和返回的值
|
||
uploadExcel(formData, (res) => {
|
||
console.log(res);
|
||
});
|
||
// 返回的文件也可以加在请求方法之后
|
||
},
|
||
//创建用户
|
||
createUser() {
|
||
this.dialogFormVisible = true;
|
||
this.$changeComponentShow("#modal", true, "z-index:12");
|
||
},
|
||
delUser({ username, depart_id }) {
|
||
let msg = "确定删除?";
|
||
this.$confirm(msg, "警告", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then((res) => {
|
||
delUser({ username }, (res) => {
|
||
//刷新当前页
|
||
this.getUserList(depart_id);
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
|
||
//获取部门列表
|
||
getDepartlist() {
|
||
listDepart().then((res) => {
|
||
this.departData = res.data.list;
|
||
if (!this.node) {
|
||
this.node = this.departData[0];
|
||
this.getUserList(this.departData[0].depart_id);
|
||
this.$nextTick(() => {
|
||
// 等待挂载完成再进行下面这行代码
|
||
// this.$refs.departTree.setCurrentKey(this.departData[0].depart_id)
|
||
});
|
||
}
|
||
});
|
||
},
|
||
//懒加载部门树
|
||
loadNode(node, resolve) {
|
||
console.log("11111111111111111111", node, resolve);
|
||
// return;
|
||
if (node.level === 0) {
|
||
return resolve([{ name: "region" }]);
|
||
}
|
||
// if (node.level > 1) return resolve([]);
|
||
|
||
setTimeout(() => {
|
||
listDepart({ depart_id: node.data.depart_id }).then((res) => {
|
||
if (res.code == 0) {
|
||
resolve(res.data.list);
|
||
}
|
||
});
|
||
}, 500);
|
||
},
|
||
|
||
//点击部门,获取用户
|
||
departChange(e) {
|
||
this.node = e;
|
||
console.log("node", this.node);
|
||
this.getUserList(e.depart_id);
|
||
},
|
||
//创建部门
|
||
createDepart() {
|
||
console.log(this.node);
|
||
this.$prompt("请输入部门名称", "提示", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
inputPattern: /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]{3,64}$/,
|
||
inputErrorMessage: "请输入3-64位",
|
||
})
|
||
.then(({ value }) => {
|
||
addDepart(
|
||
{ depart_name: value, p_id: this.node.depart_id },
|
||
(data) => {
|
||
this.$refs.departTree.append(data, data.p_id);
|
||
this.getUserList(this.departData[0].depart_id);
|
||
}
|
||
);
|
||
})
|
||
.catch(() => {
|
||
this.$message({
|
||
type: "info",
|
||
message: "取消输入",
|
||
});
|
||
});
|
||
},
|
||
//删除部门
|
||
deleteDepart() {
|
||
this.$confirm(
|
||
"此操作将永久删除部门:" + this.node.depart_name + ", 是否继续?",
|
||
"提示",
|
||
{
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
}
|
||
)
|
||
.then(() => {
|
||
delDepart({ depart_id: this.node.depart_id }, () => {
|
||
this.$refs.departTree.remove(this.node);
|
||
this.node = this.departData[0];
|
||
this.getUserList(this.departData[0].depart_id);
|
||
this.$nextTick(() => {
|
||
// 等待挂载完成再进行下面这行代码
|
||
// this.$refs.departTree.setCurrentKey(this.departData[0].depart_id)
|
||
});
|
||
});
|
||
})
|
||
.catch(() => {
|
||
this.$message({
|
||
type: "info",
|
||
message: "已取消删除",
|
||
});
|
||
});
|
||
},
|
||
//修改部门
|
||
editDepart() {
|
||
this.$prompt("修改部门名称", "提示", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
inputValue: this.node.depart_name,
|
||
inputPattern: /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]{3,64}$/,
|
||
inputErrorMessage: "请输入3-64位",
|
||
closeOnClickModal: false,
|
||
})
|
||
.then(({ value }) => {
|
||
editDepart(
|
||
{
|
||
depart_id: this.node.depart_id,
|
||
p_id: this.node.p_id,
|
||
depart_name: value,
|
||
},
|
||
(res) => {
|
||
if (res != "error") {
|
||
this.$refs.departTree.getCurrentNode().depart_name = value;
|
||
}
|
||
|
||
// this.$refs.departTree.insertBefore(node, this.node)
|
||
// this.$refs.departTree.remove(this.node)
|
||
}
|
||
);
|
||
})
|
||
.catch(() => {
|
||
this.$message({
|
||
type: "info",
|
||
message: "取消输入",
|
||
});
|
||
});
|
||
},
|
||
isEnable(scope) {
|
||
return (
|
||
scope.row.username == "admin" ||
|
||
scope.row.username == getInfo().username
|
||
);
|
||
},
|
||
//设置用户账户可用性
|
||
changeEnable(e, checked, row) {
|
||
console.log("changeEnable", e);
|
||
console.log("changeEnable", row);
|
||
console.log("changeEnable", checked);
|
||
// console.log(event.srcElement.checked)
|
||
console.log("++++++++++++++++++++++=");
|
||
e.preventDefault();
|
||
// console.log(event.srcElement.checked)
|
||
//?
|
||
userState(
|
||
{ username: row.username, status: row.enable ? 0 : 1 },
|
||
(res) => {
|
||
console.log(")))))))))))))))");
|
||
console.log(res);
|
||
if (res == null) {
|
||
// row.enable=row.enable
|
||
row.enable = !row.enable;
|
||
// event.p
|
||
}
|
||
|
||
// if(res.code)
|
||
}
|
||
);
|
||
},
|
||
handleUserSizeChange(val) {
|
||
this.userListPageSize = val;
|
||
this.getUserList(this.node.depart_id);
|
||
},
|
||
handleUserCurrentChange(val) {
|
||
this.userListPage = val;
|
||
this.getUserList(this.node.depart_id);
|
||
},
|
||
getGraphList() {
|
||
junbiaoList(
|
||
{
|
||
page: this.graphListPage,
|
||
page_size: this.graphListPageSize,
|
||
},
|
||
(res) => {
|
||
console.log("getGraphList", res);
|
||
this.graphTotal = res.total;
|
||
this.graphTableData = res.list;
|
||
}
|
||
);
|
||
},
|
||
getAuth() {
|
||
this.$sendElectronChanel("getIniConfig");
|
||
this.$recvElectronChanel("IniConfig", (e, iniContent) => {
|
||
console.log("iniContent", iniContent);
|
||
let url = `http://${iniContent.protocol.host}:${iniContent.protocol.port}`;
|
||
checkAuth(url, (res) => {
|
||
console.log(res, "res111111111111111111111111111111111");
|
||
window.checkAuthIsValid = res.is_valid;
|
||
this.authInfo = res;
|
||
});
|
||
});
|
||
},
|
||
|
||
delModel(model_id) {
|
||
let msg = "确定删除?";
|
||
this.$confirm(msg, "警告", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then((res) => {
|
||
delModel({ model_id }, (res) => {
|
||
//刷新当前页
|
||
this.modelTableData = this.modelTableData.filter(
|
||
(item) => item.model_id !== model_id
|
||
);
|
||
this.getModelTypeList();
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
preview(row) {
|
||
this.$changeComponentShow("#scene", true);
|
||
this.$sendChanel("openView3d", row);
|
||
},
|
||
selectModel(item) {
|
||
this.selectedModelType = item.type_id;
|
||
this.selectedModel = item;
|
||
},
|
||
updatePoster1(row, flag = false, path = "") {
|
||
let that = this;
|
||
console.log("row++++++++++++++++++++++");
|
||
console.log(path);
|
||
console.log(row);
|
||
let cb = (c) => {
|
||
let formData = new FormData();
|
||
formData.append("model_id", row.model_id);
|
||
formData.append("file", c);
|
||
updatePoster(formData)
|
||
.then((res) => {
|
||
if ([0, 200].includes(res.code)) {
|
||
that.$message({
|
||
type: "success",
|
||
message: "更新成功",
|
||
});
|
||
row.poster_url = "";
|
||
console.log("row.poster_url", res.data.url);
|
||
|
||
this.$nextTick(() => {
|
||
row.poster_url = res.data.url + "?" + Math.random();
|
||
});
|
||
this.$sendChanel("updatePosterComplete", res);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
this.$sendChanel("updatePosterComplete", err);
|
||
});
|
||
};
|
||
if (!flag) {
|
||
let option = {
|
||
properties: ["openFile"],
|
||
filters: [
|
||
{
|
||
name: "图片",
|
||
extensions: ["png", "jpg", "jpeg"],
|
||
},
|
||
],
|
||
};
|
||
this.$sendElectronChanel("open-directory-dialog", option);
|
||
this.$recvElectronChanel("selectedItem", (e, paths) => {
|
||
if (paths.length) {
|
||
console.log(paths[0]);
|
||
// 取出路径中的文件名
|
||
let name = getNamefromPath(paths[0]);
|
||
// 读取文件
|
||
fs.readFile(paths[0], (err, data) => {
|
||
const blob = new Blob([data], {
|
||
type: "image/png, image/jpeg, image/jpg",
|
||
});
|
||
var file = new File([blob], `${name}` + ".png");
|
||
cb(file);
|
||
});
|
||
// cb(paths[0]);
|
||
}
|
||
});
|
||
} else {
|
||
cb(path);
|
||
}
|
||
},
|
||
handleSizeChange(val) {
|
||
this.modelListPageSize = val;
|
||
this.pageModelList();
|
||
},
|
||
handleCurrentChange(val) {
|
||
this.modelListPage = val;
|
||
this.pageModelList();
|
||
},
|
||
|
||
//选择库文件
|
||
selectLib(suffix) {
|
||
let name = "模型库";
|
||
if (suffix == "junbiao") name = "军标库";
|
||
let option = {
|
||
properties: ["openFile"],
|
||
filters: [
|
||
{
|
||
name, //、底图
|
||
extensions: [suffix],
|
||
},
|
||
],
|
||
};
|
||
this.$sendElectronChanel("open-directory-dialog", option);
|
||
this.$recvElectronChanel("selectedItem", (e, path) => {
|
||
if (path.length) this.initModelData(suffix, path[0]);
|
||
});
|
||
},
|
||
addModelType() {
|
||
/**/
|
||
this.$prompt("请输入模型类型", "添加模型类型", {
|
||
confirmButtonText: "确定",
|
||
inputPattern: /^[^\s]+$/,
|
||
inputErrorMessage: "请输入非空字符串",
|
||
cancelButtonText: "取消",
|
||
})
|
||
.then(({ value }) => {
|
||
addModelType({ type_name: value }, (res) => {
|
||
console.log(res);
|
||
this.modelTypeList.push({
|
||
type_name: value,
|
||
type_id: res.type_id,
|
||
children: [],
|
||
});
|
||
});
|
||
})
|
||
.catch(() => {
|
||
/*this.$message({
|
||
type: 'info',
|
||
message: '取消输入'
|
||
});*/
|
||
});
|
||
},
|
||
addModel() {
|
||
// addModel()
|
||
// 需获取模型列表后,并选中一项后
|
||
if (this.selectedModelType) {
|
||
let option = {
|
||
properties: ["openFile", "multiSelections"],
|
||
filters: [
|
||
{
|
||
name: "人工模型",
|
||
extensions: ["glb", "gltf"],
|
||
},
|
||
],
|
||
};
|
||
this.$sendElectronChanel("open-directory-dialog", option);
|
||
this.$recvElectronChanel("selectedItem", (e, paths) => {
|
||
if (paths.length) {
|
||
addModel(
|
||
{ model_paths: paths, p_id: this.selectedModelType },
|
||
(res) => {
|
||
console.log(res);
|
||
/* // this.pageModelList()
|
||
let arr = []
|
||
paths.forEach(item => {
|
||
arr.push({
|
||
// model_id:
|
||
})
|
||
})*/
|
||
// this.modelTableData = this.modelTableData.concat(res.list)
|
||
this.getModelTypeList();
|
||
}
|
||
);
|
||
}
|
||
});
|
||
} else this.$message.warning("请选择一项类型");
|
||
},
|
||
pageModelList() {
|
||
modelList(
|
||
(res) => {
|
||
console.log("modelList##############", res);
|
||
this.modelTableData = res.list;
|
||
this.modelTotal = res.total;
|
||
},
|
||
{ page: this.modelListPage, page_size: this.modelListPageSize }
|
||
);
|
||
},
|
||
initModelData(suffix, path) {
|
||
if (suffix == "model") {
|
||
this.modelLoading = true;
|
||
importModel({ model_lib_path: path }, (res) => {
|
||
this.$store.dispatch("changeModelLibPath", path);
|
||
this.getModelTypeList();
|
||
//导入模型库后,需存在模型类型列表,并有选中项,才获取对应的
|
||
// this.pageModelList()
|
||
});
|
||
} else {
|
||
this.junbiaoLoading = true;
|
||
this.selectedGraphLabelType = null;
|
||
importGraphLabel({ junbiao_lib_path: path }, (res) => {
|
||
this.$store.dispatch("changeGraphLabelLibPath", path);
|
||
this.getGraphLabelTypeList();
|
||
//导入模型库后,需存在模型类型列表,并有选中项,才获取对应的
|
||
// this.pageModelList()
|
||
});
|
||
//初始化军标库
|
||
}
|
||
},
|
||
// 创建库文件
|
||
createLib(key) {
|
||
let obj = {
|
||
model: {
|
||
title: "创建模型库",
|
||
filename: "YJEarth.model",
|
||
extensions: ["model"],
|
||
},
|
||
graphLabel: {
|
||
title: "创建军标库",
|
||
filename: "YJEarth.junbiao",
|
||
extensions: ["junbiao"],
|
||
},
|
||
};
|
||
let { title, filename, extensions } = obj[key];
|
||
let option = {
|
||
title,
|
||
filename,
|
||
filters: [{ name: "保存库文件", extensions }],
|
||
};
|
||
this.$sendElectronChanel("saveFile", option);
|
||
this.$recvElectronChanel("selectedFileItem", (e, path) => {
|
||
console.log(path);
|
||
if (path) {
|
||
let index = path.lastIndexOf("/");
|
||
let model_lib_path = path.slice(0, index);
|
||
let model_lib_name = path.slice(index + 1);
|
||
if (key == "model")
|
||
createModel({ model_lib_name, model_lib_path }, (res) => {
|
||
this.initModelData(key, path);
|
||
});
|
||
else
|
||
createGraphLabel(
|
||
{
|
||
junbiao_lib_name: model_lib_name,
|
||
junbiao_lib_path: model_lib_path,
|
||
},
|
||
(res) => {
|
||
this.initModelData(key, path);
|
||
}
|
||
);
|
||
|
||
// this.initModelData(key, path);
|
||
}
|
||
});
|
||
},
|
||
addGraphLabel() {
|
||
let _that = this;
|
||
if (this.selectedGraphLabelType) {
|
||
let option = {
|
||
properties: ["openFile", "multiSelections"],
|
||
filters: [
|
||
{
|
||
name: "军标",
|
||
extensions: ["svg"],
|
||
},
|
||
],
|
||
};
|
||
let imgArr = [];
|
||
this.$sendElectronChanel("open-directory-dialog", option);
|
||
this.$recvElectronChanel("selectedItem", (e, paths) => {
|
||
if (paths.length) {
|
||
paths.forEach((item) => {
|
||
getBase64Image(item).then((base64) => {
|
||
let params = {
|
||
name: getNamefromPath(item),
|
||
p_id: this.selectedGraphLabelType,
|
||
data: base64,
|
||
};
|
||
// console.log("paramsparamsparams", params);
|
||
// imgArr.push(params);
|
||
// console.log("imgArrimgArrimgArrimgArr", imgArr);
|
||
addGraphLabel(params, (res) => {
|
||
// console.log(res);
|
||
// this.pageModelList()
|
||
let obj = {
|
||
name: res.name,
|
||
url: res.url,
|
||
p_id: res.p_id,
|
||
jun_biao_id: res.jun_biao_id,
|
||
};
|
||
_that.graphTableData.push(obj);
|
||
setProperty(
|
||
this.graphLabelTypeList,
|
||
"sonNode",
|
||
"type_id",
|
||
obj.p_id,
|
||
"children",
|
||
[..._that.graphTableSelectData, obj],
|
||
"assign"
|
||
);
|
||
});
|
||
});
|
||
});
|
||
}
|
||
});
|
||
} else this.$message.warning("请选择一项类型");
|
||
},
|
||
addGraphLabelType() {
|
||
this.$prompt("请输入军标类型", "添加军标类型", {
|
||
confirmButtonText: "确定",
|
||
inputPattern: /^[^\s]+$/,
|
||
inputErrorMessage: "请输入非空字符串",
|
||
cancelButtonText: "取消",
|
||
})
|
||
.then(({ value }) => {
|
||
let params = {
|
||
type_name: value,
|
||
p_id: this.selectedGraphLabelType || -1,
|
||
};
|
||
addJunbiaoType(params, (res) => {
|
||
let obj = {
|
||
type_name: value,
|
||
type_id: res.type_id,
|
||
p_id: res.p_id,
|
||
sonNode: [],
|
||
children: [],
|
||
};
|
||
|
||
if (params.p_id != -1) {
|
||
console.log(this.$refs.myTree);
|
||
|
||
this.$refs.myTree.append(obj, params.p_id);
|
||
/*setDeepObjectPropertyValue()
|
||
this.graphLabelTypeList.forEach()*/
|
||
// setProperty(this.graphLabelTypeList, 'sonNode', 'type_id', params.p_id, 'sonNode', obj, 'assign')
|
||
} else this.graphLabelTypeList.push(obj);
|
||
|
||
console.log("utils.js795", this.graphLabelTypeList);
|
||
});
|
||
})
|
||
.catch(() => {
|
||
/*this.$message({
|
||
type: 'info',
|
||
message: '取消输入'
|
||
});*/
|
||
});
|
||
},
|
||
coordinateChange() {},
|
||
|
||
sysChange() {
|
||
this.$store.dispatch("changeSystem", this.systemSetting);
|
||
let span = document.querySelectorAll(".cc span:first-child");
|
||
console.log(span);
|
||
console.log("this.systemSetting", this.systemSetting);
|
||
if (this.systemSetting.sheetIndexStatusSwitch) {
|
||
this.$changeComponentShow(".tufuSelect", true);
|
||
} else {
|
||
this.$changeComponentShow(".tufuSelect", false);
|
||
}
|
||
|
||
if (this.systemSetting.language == "en") {
|
||
// 找到到类名为cc下面的第一个所有的第一个span
|
||
span.forEach((item) => {
|
||
item.style.flex = 1;
|
||
});
|
||
} else {
|
||
// 删除style中的flex属性
|
||
span.forEach((item) => {
|
||
item.style.flex = "unset";
|
||
});
|
||
}
|
||
},
|
||
setView() {
|
||
let msg = "操作成功";
|
||
// try {
|
||
// localStorage.setItem("defaultView", JSON.stringify(YJ.Global.getCurrentView()))
|
||
let view = YJ.Global.getCurrentView(window.Earth1);
|
||
const options = {
|
||
destination: view.position,
|
||
orientation: view.orientation,
|
||
};
|
||
YJ.Global.setDefaultView(window.Earth1, options);
|
||
localStorage.setItem("defaultView", JSON.stringify(options));
|
||
this.$message.success(msg);
|
||
},
|
||
// 设置默认数据
|
||
setData() {
|
||
add_default({}, (res) => {
|
||
if (res == null) {
|
||
this.$message.success("添加完成,2秒后,将重启系统");
|
||
|
||
setTimeout(() => {
|
||
window.clicknum = 0;
|
||
this.$sendElectronChanel("restart");
|
||
}, 2000);
|
||
}
|
||
});
|
||
},
|
||
// 授权
|
||
uploadUrl() {
|
||
return this.url;
|
||
},
|
||
onSuccess() {
|
||
//授权文件导入成功
|
||
this.$message.success("导入完成,2秒后,将重启系统");
|
||
setTimeout(() => {
|
||
this.$sendElectronChanel("restart");
|
||
}, 2000);
|
||
},
|
||
onFileSubmit() {
|
||
//授权确认
|
||
},
|
||
//服务接入
|
||
onService(index) {
|
||
//点击切换服务
|
||
this.select_id = index;
|
||
this.disabled = true;
|
||
if (index === 3) {
|
||
//弹出自定义弹框
|
||
this.disabled = false;
|
||
}
|
||
},
|
||
onServiceSubmit() {
|
||
//服务接入提交确认
|
||
console.log("服务接入提交确认");
|
||
},
|
||
// 海康平台确认
|
||
onSubmitInfo() {},
|
||
//主题信息提交
|
||
onThemeSubmit() {},
|
||
copy(e) {
|
||
console.log("111111111111");
|
||
console.log(copyContent(e.target.textContent));
|
||
if (copyContent(this.authInfo.license_code)) {
|
||
this.$message.success("复制成功");
|
||
}
|
||
},
|
||
//导入poi
|
||
importpoi() {
|
||
let option = {
|
||
properties: ["openFile"],
|
||
filters: [
|
||
{
|
||
name: "poi数据", //、底图
|
||
extensions: ["poi", "csv"],
|
||
},
|
||
],
|
||
};
|
||
this.$sendElectronChanel("open-directory-dialog", option);
|
||
this.$recvElectronChanel("selectedItem", (e, paths) => {
|
||
if (!paths.length) {
|
||
return;
|
||
}
|
||
importPOI({ path: paths[0] }, (res) => {});
|
||
});
|
||
},
|
||
importLuWang() {
|
||
let option = {
|
||
properties: ["openFile"],
|
||
filters: [
|
||
{
|
||
name: "路网", //、底图
|
||
extensions: ["pbf"],
|
||
},
|
||
],
|
||
};
|
||
this.$sendElectronChanel("open-directory-dialog", option);
|
||
this.$recvElectronChanel("selectedItem", (e, paths) => {
|
||
if (!paths.length) {
|
||
return;
|
||
}
|
||
importLuWang({ filePath: paths[0] }, (res) => {});
|
||
});
|
||
},
|
||
// 工程导入(接口)
|
||
importProjectApi(type) {
|
||
if (!this.importWin) {
|
||
this.importWin = true;
|
||
let option = {
|
||
properties: ["openFile"],
|
||
filters: [{ name: "工程包", extensions: ["zip"] }],
|
||
};
|
||
this.$sendElectronChanel("open-directory-dialog", option);
|
||
this.$recvElectronChanel("selectedItem", (e, paths) => {
|
||
if (paths.length > 0) {
|
||
// 取出路径中的文件名
|
||
let name = getNamefromPath(paths[0]);
|
||
// 读取文件
|
||
fs.readFile(paths[0], (err, data) => {
|
||
const blob = new Blob([data], {
|
||
type: "application/zip",
|
||
});
|
||
var file = new File([blob], `${name}` + ".zip");
|
||
let formData = new FormData();
|
||
formData.append("file", file);
|
||
formData.append("type", type);
|
||
let loadingInstance = this.$openLoading("拼命导入中...");
|
||
projectImport(formData).then((res) => {
|
||
loadingInstance.close();
|
||
this.importWin = false;
|
||
this.$message.success("导入成功");
|
||
setTimeout(() => {
|
||
this.$message.success("载入成功,将在2s后自动重启");
|
||
}, 1000);
|
||
setTimeout(() => {
|
||
this.$sendElectronChanel("restart");
|
||
}, 3000);
|
||
});
|
||
});
|
||
} else {
|
||
this.importWin = false;
|
||
}
|
||
});
|
||
}
|
||
},
|
||
//工程导入(单机)
|
||
importProject() {
|
||
if (!this.importWin) {
|
||
this.importWin = true;
|
||
let option = {
|
||
properties: ["openFile"],
|
||
filters: [{ name: "工程包", extensions: ["zip"] }],
|
||
};
|
||
this.$sendElectronChanel("open-directory-dialog", option);
|
||
this.$recvElectronChanel("selectedItem", (e, paths) => {
|
||
if (paths.length > 0) {
|
||
let loadingInstance = this.$openLoading("拼命导入中...");
|
||
this.importWin = false;
|
||
let arr = getElectronPath()
|
||
.replaceAll("\\", "/")
|
||
.split("/");
|
||
arr.pop();
|
||
this.$unzip_file(paths[0], arr.join("/"))
|
||
.then((res) => {
|
||
loadingInstance.close();
|
||
this.$message.success("导入成功");
|
||
setTimeout(() => {
|
||
this.$message.success("载入成功,将在2s后自动重启");
|
||
}, 1000);
|
||
setTimeout(() => {
|
||
this.$sendElectronChanel("restart");
|
||
}, 3000);
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
} else {
|
||
this.importWin = false;
|
||
}
|
||
});
|
||
}
|
||
},
|
||
// 合并导入
|
||
mergeProject() {
|
||
if (!this.importWin) {
|
||
this.importWin = true;
|
||
let option = {
|
||
properties: ["openFile"],
|
||
filters: [{ name: "工程包", extensions: ["zip"] }],
|
||
};
|
||
this.$sendElectronChanel("open-directory-dialog", option);
|
||
this.$recvElectronChanel("selectedItem", (e, paths) => {
|
||
if (paths.length > 0) {
|
||
// 取出路径中的文件名
|
||
let name = getNamefromPath(paths[0]);
|
||
// 读取文件
|
||
fs.readFile(paths[0], (err, data) => {
|
||
const blob = new Blob([data], {
|
||
type: "application/zip",
|
||
});
|
||
var file = new File([blob], `${name}` + ".zip");
|
||
let formData = new FormData();
|
||
formData.append("file", file);
|
||
formData.append("type", type);
|
||
let loadingInstance = this.$openLoading("拼命导入中...");
|
||
projectImport(formData).then((res) => {
|
||
loadingInstance.close();
|
||
this.importWin = false;
|
||
this.$message.success("导入成功");
|
||
setTimeout(() => {
|
||
this.$message.success("载入成功,将在2s后自动重启");
|
||
}, 1000);
|
||
setTimeout(() => {
|
||
this.$sendElectronChanel("restart");
|
||
}, 3000);
|
||
});
|
||
});
|
||
} else {
|
||
this.importWin = false;
|
||
}
|
||
});
|
||
}
|
||
},
|
||
//工程导出
|
||
derive() {
|
||
if (!this.exportWin) {
|
||
this.exportWin = !this.exportWin;
|
||
const date = new Date();
|
||
const formattedDate = format(date, "yyyyMMdd HHmmss");
|
||
this.$remote.dialog
|
||
.showSaveDialog({
|
||
title: "请选择要保存的文件名",
|
||
buttonLabel: "保存",
|
||
defaultPath: `工程${formattedDate}.zip`,
|
||
filters: [{ name: "文件类型", extensions: ["zip"] }],
|
||
})
|
||
.then((result) => {
|
||
if (result.canceled) {
|
||
this.exportWin = !this.exportWin;
|
||
return;
|
||
}
|
||
let loadingInstance = this.$openLoading("拼命导出中...");
|
||
this.exportWin = !this.exportWin;
|
||
let arr = getElectronPath()
|
||
.replaceAll("\\", "/")
|
||
.split("/");
|
||
arr[arr.length - 1] = "database.ydb";
|
||
let db_path = arr.join("/");
|
||
this.$zip_file([db_path], result.filePath, () => {
|
||
loadingInstance.close();
|
||
this.$message.success("导出完成");
|
||
});
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
}
|
||
},
|
||
//打开用户抽屉
|
||
userPermission(row) {
|
||
this.getRoleList();
|
||
this.$sendChanel("drawer", {
|
||
row,
|
||
data: this.roleTableData,
|
||
drawer: true,
|
||
type: "user",
|
||
});
|
||
this.$changeComponentShow("#modal", true);
|
||
},
|
||
//打开角色抽屉
|
||
rolePermission(id) {
|
||
this.$sendChanel("drawer", { id, drawer: true, type: "role" });
|
||
this.$changeComponentShow("#modal", true);
|
||
},
|
||
},
|
||
};
|