12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250 |
- let baseUrl = 'http://192.168.51.174:5199';
- let wsUrl = '';
- let dwgPath = '';
- let docId = '';
- let javaUrl = '';
- let curHandleId = '';
- // 用户自定义:成员列表,用于评论图纸时@人员,其中memberId和memberName字段名称不能修改
- let memberList = {
- code: 0,
- data: {
- rows: [
- {
- memberId: '12',
- memberName: '张三',
- email: '',
- phone: '',
- role: '',
- avatarUrl: '/assets/ZwCloud2DSDK/text.png',
- },
- {
- memberId: '32',
- memberName: '李四',
- email: '',
- phone: '',
- role: '',
- avatarUrl: '/assets/ZwCloud2DSDK/image1.png',
- },
- {
- memberId: '34',
- memberName: '王五',
- email: '',
- phone: '',
- role: '',
- avatarUrl: '/assets/ZwCloud2DSDK/image2.png',
- },
- ],
- },
- };
- // 用户自定义:当前用户,指定当前评论图纸的用户,其中userId和userName字段名称不能修改
- let user = {
- userId: '12',
- userName: '张三',
- email: '',
- phone: '',
- role: '',
- };
- let req = null;
- let sourcePath = '';
- let compareFilePath = '';
- const enableSign = false;
- const signBlockOper = {
- GetBlockData: 0,
- UploadSign: 1,
- UploadCert: 2,
- UploadDwg: 3,
- ConFirmEdit: 4,
- };
- const refType = {
- plotMsg: 1,
- signaturePic: 2,
- };
- class Request {
- constructor() {}
- get(url, params, resType, type) {
- return new Promise((res, rej) => {
- let paramsArr = [];
- for (let k in params) {
- paramsArr.push(
- encodeURIComponent(k) + '=' + encodeURIComponent(params[k]),
- );
- }
- url = url + '?' + paramsArr.join('&');
- let ajax = new XMLHttpRequest();
- let checkUrl = type === 'java' ? javaUrl + url : baseUrl + url;
- ajax.open('GET', checkUrl);
- resType && (ajax.responseType = resType);
- ajax.send();
- ajax.onload = function () {
- if (resType) res(ajax.response);
- else {
- let data = JSON.parse(ajax.response);
- if (data.code === 0) {
- res(data.data);
- } else {
- rej(data.msg);
- }
- }
- };
- ajax.onreadystatechange = function () {
- if (ajax.readyState === 4 && ajax.status !== 200) {
- rej(ajax.status);
- }
- };
- ajax.onerror = function (error) {
- rej(error);
- };
- });
- }
- post(url, params, resType, type) {
- return new Promise((res, rej) => {
- let ajax = new XMLHttpRequest();
- let checkUrl = type === 'java' ? javaUrl + url : baseUrl + url;
- ajax.open('POST', checkUrl);
- resType && (ajax.responseType = resType);
- if (!(params instanceof FormData)) {
- ajax.setRequestHeader('content-type', 'application/json');
- }
- ajax.send(params);
- ajax.onreadystatechange = function () {
- if (ajax.readyState === 4) {
- if (ajax.status === 200) {
- res(ajax.response);
- } else {
- rej(ajax.status);
- }
- }
- };
- ajax.onerror = function (error) {
- rej(error);
- };
- });
- }
- arrayBufferToBase64(buffer) {
- let binary = '';
- let bytes = new Uint8Array(buffer);
- let len = bytes.byteLength;
- for (let i = 0; i < len; i++) {
- binary += String.fromCharCode(bytes[i]);
- }
- return btoa(binary);
- }
- fontDownload(fontName) {
- return this.get('/sdk/font/download', { fontName }, 'blob');
- }
- transferDoc(dwgPath) {
- if (enableSign) {
- return this.transferDocV2();
- }
- return this.get('/sdk/transfer', { projectId: 0, dwgPath: dwgPath });
- }
- transferDocV2() {
- // {
- // "dwgPath": "sdk-014_rotate.dwg",
- // "useCache": false,
- // "showBlock": true,
- // "search": {
- // "blockPre": "",
- // "attrSignSuf": "_机打信息",
- // "attrImageSuf": "_签章图",
- // "officialSignSuf": "_公章"
- // }
- // }
- let useCache = getParams('useCache');
- if (useCache === 'false') {
- useCache = false;
- } else {
- useCache = true;
- }
- return this.post(
- '/sdk/v2/transfer',
- JSON.stringify({
- dwgPath: dwgPath,
- useCache: useCache,
- showBlock: true,
- search: {
- blockPre: getParams('blockPre') || '标准图框_',
- attrSignSuf: getParams('attrSignSuf') || '_机打信息',
- // attrImageSuf: "_签章图",
- officialSignSuf: getParams('officialSignSuf') || '_签章图',
- dwgSignSuf: '_DWG签名',
- },
- }),
- ).then((res) => {
- let { code, data } = JSON.parse(res);
- if (code === 0) return data;
- });
- }
- getDisplayData(handleId = 34) {
- //电子签章中下载lmf不使用缓存, 正常开图下载lmf优先使用缓存
- return this.get(
- '/sdk/layout/lmf',
- { handleId, dwgPath: dwgPath, useCache: !enableSign },
- 'arraybuffer',
- );
- }
- getXrefData(handleId, xrefIds) {
- let params = { handleId: handleId, xrefIds: xrefIds, dwgPath: dwgPath };
- params = JSON.stringify(params);
- return this.post('/sdk/xref', params, 'arraybuffer');
- }
- getXrefRelation(dwgPath) {
- return this.get('/sdk/xref/list', { dwgPath: dwgPath });
- }
- getXrefThumb(filePath) {
- return this.get(
- '/sdk/xref/thumb',
- { filePath: filePath },
- 'arraybuffer',
- ).then((res) => {
- let url = this.arrayBufferToBase64(res);
- return 'data:image/jpeg;base64,' + url;
- });
- }
- getPlotData(params) {
- let data = JSON.stringify(params);
- return this.post('/sdk/print', data, 'arraybuffer');
- }
- getSignPlotData(params) {
- let data = JSON.stringify(params);
- return this.post('/sdk/api/print', data, 'arraybuffer');
- }
- getSignBatchPlotData(params) {
- let data = JSON.stringify(params);
- return this.post('/sdk/api/batchPrint', data, 'arraybuffer');
- }
- getImageSrc(filePath) {
- return this.get(
- '/sdk/image/download',
- { filePath: filePath },
- 'arraybuffer',
- ).then((res) => {
- let url = this.arrayBufferToBase64(res);
- return 'data:image/jpeg;base64,' + url;
- });
- }
- getImageData(filePath) {
- return this.get('/sdk/image/download', { filePath: filePath }, 'blob');
- }
- getImageList() {
- return this.get('/sdk/image/list');
- }
- getPermissionList() {
- return this.get('/sdk/getStatus');
- }
- getRegenData(params) {
- Object.assign(params, { dwgPath: dwgPath });
- let data = JSON.stringify(params);
- return this.post('/sdk/regen', data, 'arraybuffer');
- }
- getBlockData(params) {
- return this.get('/sdk/api/sign/properties', params);
- }
- uploadSign(params) {
- let url = '/sdk/api/sign/upload';
- let { signId, file, uploadId } = params;
- let formData = new FormData();
- formData.append('dwgPath', dwgPath);
- formData.append('signId', signId);
- formData.append('file', file);
- formData.append('uploadId', uploadId);
- return this.post(url, formData).then((res) => {
- let response = JSON.parse(res);
- let { code, data } = response;
- if (code === 0) {
- return { fileId: data.fileId, signId };
- } else {
- return { fileId: '', signId };
- }
- });
- }
- downloadSign(signFileId) {
- let url = '/sdk/api/sign/download/' + signFileId;
- return this.get(url, {}, 'arraybuffer').then((res) => {
- if (res) {
- let url = this.arrayBufferToBase64(res);
- return 'data:image/jpeg;base64,' + url;
- }
- return '';
- });
- }
- saveBlockData(data) {
- let params = { dwgPath, data };
- params = JSON.stringify(params);
- return this.post('/sdk/api/sign/save', params)
- .then((res) => {
- let response = JSON.parse(res);
- let { code } = response;
- if (code === 0) {
- return true;
- } else {
- return false;
- }
- })
- .catch(() => false);
- }
- deleteSign(signId) {
- return this.post('/sdk/api/sign/delete?signId=' + signId);
- }
- getSignHistoryData(params) {
- return this.get('/sdk/api/sign/signRecords', params).catch(() => []);
- }
- getDwgFile() {
- return this.get(
- '/sdk/doc/download',
- { dwgPath: dwgPath },
- 'arrayBuffer',
- 'java',
- );
- }
- uploadFile(file) {
- let formData = new FormData();
- formData.append('file', file);
- return this.post('/sdk/doc/upload', formData, 'json', 'java').catch(() => {
- alert('上传接口 /sdk/doc/upload 调用失败 请联系管理员');
- });
- }
- getDwgFile() {
- return this.get(
- '/sdk/doc/download',
- { dwgPath: dwgPath },
- 'arraybuffer',
- 'java',
- );
- }
- getTextStyleFont(path) {
- let params = { path: path };
- params = JSON.stringify(params);
- return this.post('/sdk/font/fetchName', params, 'json', 'java');
- }
- getAbout() {
- return this.get('/about');
- }
- addComment(params) {
- return this.post(
- '/sdk/doc/comment/add',
- JSON.stringify({
- docId,
- handleId: curHandleId,
- ...params,
- }),
- ).then((res) => {
- let { code, data } = JSON.parse(res);
- if (code === 0) return data;
- });
- }
- editComment(params) {
- return this.post(
- '/sdk/doc/comment/edit',
- JSON.stringify({
- docId,
- handleId: curHandleId,
- ...params,
- }),
- ).then((res) => {
- let { code, data } = JSON.parse(res);
- if (code === 0) return data;
- });
- }
- deleteComment(params) {
- return this.post(
- '/sdk/doc/comment/delete?id=' + params.id,
- JSON.stringify({}),
- ).then((res) => {
- let { code, data } = JSON.parse(res);
- if (code === 0) return data;
- });
- }
- replyComment(params) {
- return this.post(
- '/sdk/doc/comment/reply',
- JSON.stringify({
- docId,
- handleId: curHandleId,
- ...params,
- }),
- ).then((res) => {
- let { code, data } = JSON.parse(res);
- if (code === 0) return data;
- });
- }
- getComment(data) {
- return this.get('/sdk/doc/comment/listPage', {
- docId,
- handleId: curHandleId,
- pageNum: data.pageNum,
- pageSize: data.pageSize,
- });
- }
- /**
- * 图纸对比, 调用转换服务
- * @returns fcmpInfo
- */
- transferFcmp(inputParams) {
- let params = {
- sourcePath: inputParams.sourcePath,
- compareFilePath: inputParams.compareFilePath,
- data: inputParams.hasOwnProperty('data')
- ? inputParams.data
- : {
- fcmpRcShape: 0,
- fcmpRcMargin: 5,
- fcmpHatch: 1,
- fcmpText: 1,
- },
- viewport: inputParams.hasOwnProperty('viewport')
- ? inputParams.viewport
- : '',
- handleId: inputParams.hasOwnProperty('handleId')
- ? inputParams.handleId
- : '',
- };
- !params.viewport && delete params.viewport;
- !params.handleId && delete params.handleId;
- let isTimeout = false;
- let timerTimeout = setTimeout(() => {
- isTimeout = true;
- alert('等待时间已经超过2分钟, 是否退出');
- ZwCloud2D.ZwEditor.ZwSetLoadingState(true);
- ZwCloud2D.ZwDataProcessor.ZwLoad();
- }, 120000);
- return this.post('/sdk/fcmp', JSON.stringify(params), 'json').then(
- (res) => {
- clearTimeout(timerTimeout);
- if (res.code !== 0) {
- alert(res.msg);
- resizeCheck();
- return Promise.reject(res.code);
- }
- if (isTimeout) {
- return Promise.reject('transferFcmp request timeout!');
- }
- let data = res.data;
- docId = data.docId || new Date().getTime().toString();
- let layouts = [];
- (data.layouts || []).forEach((layout) => {
- let res = {
- handleId: layout.handleId,
- isDefault: layout.isDefault === 1 ? 'YES' : 'NO',
- name: layout.layoutName,
- tabOrder: layout.order,
- };
- layouts.push(res);
- if (layout.isDefault === 1) {
- curHandleId = layout.handleId;
- }
- });
- let fcmpInfo = {
- baseFileName: data.baseFileName,
- baseFileInfo: [
- { lable: '名称', value: sourcePath },
- { lable: '所有者', value: '未知' },
- { lable: '创建时间', value: '未知' },
- { lable: '文件路径', value: '未知' },
- ],
- compareFileName: data.compareFileName,
- compareFileInfo: [
- { lable: '名称', value: compareFilePath },
- { lable: '所有者', value: '未知' },
- { lable: '创建时间', value: '未知' },
- { lable: '文件路径', value: '未知' },
- ],
- fcmpDiffExt: data.fcmpDiffExt,
- fcmpErrorFlag: data.fcmpErrorFlag,
- fonts: data.fontList || [],
- layouts: layouts,
- fcmpRcShape: params.data.fcmpRcShape,
- fcmpRcMargin: params.data.fcmpRcMargin,
- fcmpHatch: params.data.fcmpHatch,
- fcmpText: params.data.fcmpText,
- };
- return fcmpInfo;
- },
- );
- }
- /**
- * 下载图纸转换的显示数据
- * @param {string} compareFilePath
- * @param {string} sourcePath
- * @returns
- */
- getFcmpDisplayData(compareFilePath, sourcePath) {
- return this.get(
- '/sdk/layout/lmf',
- {
- handleId: compareFilePath.replace(/\.dwg/gi, '_fcmp'),
- dwgPath: sourcePath,
- useCache: true,
- },
- 'arraybuffer',
- );
- }
- /**
- * 获取文件列表
- * @returns
- */
- getFileList() {
- return this.get('/sdk/dwg/list').catch(() => {
- alert('获取文件列表接口 /sdk/dwg/list 调用失败 请联系管理员');
- });
- }
- }
- req = new Request();
- // 生成Guid
- function randomFour() {
- return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
- }
- function guid() {
- return (
- randomFour() +
- randomFour() +
- '-' +
- randomFour() +
- '-' +
- randomFour() +
- '-' +
- randomFour() +
- '-' +
- randomFour() +
- randomFour() +
- randomFour()
- );
- }
- function getCommentFunc(data) {
- // 每次切换布局需要重新获取评论数据
- let commentList = {
- code: 0,
- data: {
- rows: [],
- },
- };
- req
- .getComment(data)
- .then((res) => {
- if (res) {
- let data = JSON.parse(JSON.stringify(res));
- commentList.data.total = data.total;
- commentList.data.rows = data.rows;
- }
- if (data.initial) {
- ZwCloud2D.ZwDataManager.ZwSetCommentData({
- commentList: commentList,
- memberList,
- user,
- });
- } else {
- ZwCloud2D.ZwDataManager.ZwSetCommentData({
- commentList: commentList,
- pageNum: data.pageNum,
- });
- }
- })
- .catch((error) => {
- if (data.initial) {
- ZwCloud2D.ZwDataManager.ZwSetCommentData({
- commentList: commentList,
- memberList,
- user,
- });
- } else {
- ZwCloud2D.ZwDataManager.ZwSetCommentData({
- commentList: commentList,
- pageNum: data.pageNum,
- });
- }
- console.error(error);
- });
- }
- function saveCommentFunc(data) {
- let params = { pageNum: 1, pageSize: data.data.pageSize };
- if (data.data) {
- // 根据不同场景组织数据并保存
- switch (data.type) {
- case 'delete':
- req
- .deleteComment({
- id: data.data.id,
- })
- .then(() => {
- this.getCommentFunc(params);
- });
- break;
- case 'edit':
- // 编辑评论时需要更新数据
- req
- .editComment({
- id: data.data.id,
- content: data.data.content,
- realContent: data.data.realContent,
- mark: data.data.mark,
- withMark: data.data.withMark,
- withAt: data.data.withMark,
- createBy: user.userId,
- creator: user.userName,
- })
- .then(() => {
- this.getCommentFunc(params);
- });
- break;
- default:
- {
- //新增评论、回复评论的场景
- data.data.id = guid();
- data.data.createTime = new Date().getTime();
- data.data.createBy = user.userId;
- data.data.creator = user.userName;
- // 有parentId表示是回复评论
- if (data.data.parentId) {
- req
- .replyComment({
- parentId: data.data.parentId,
- content: data.data.content,
- realContent: data.data.realContent,
- mark: data.data.mark,
- withMark: data.data.withMark,
- withAt: data.data.withMark,
- createBy: user.userId,
- creator: user.userName,
- })
- .then(() => {
- this.getCommentFunc(params);
- });
- } else {
- // 新增评论
- req
- .addComment({
- content: data.data.content,
- realContent: data.data.realContent,
- mark: data.data.mark,
- withMark: data.data.withMark,
- withAt: data.data.withMark,
- createBy: user.userId,
- creator: user.userName,
- })
- .then(() => {
- this.getCommentFunc(params);
- });
- }
- }
- break;
- }
- }
- }
- ZwCloud2D.ZwDataProcessor.ZwSetConnectUrl = (url1, url2, url3) => {
- baseUrl = url1;
- wsUrl = url2;
- javaUrl = url3;
- };
- ZwCloud2D.ZwDataProcessor.ZwSetLoadDwg = (path) => {
- dwgPath = path;
- };
- ZwCloud2D.ZwDataProcessor.uploadDwg = (file) => {
- let req = new Request();
- return req.uploadFile(file);
- // .then((res) => {
- // dwgPath = res.data.path;
- // ZwCloud2D.ZwDataProcessor.ZwLoad();
- // let main = document.getElementById('main');
- // main.style.display = 'none';
- // let mainMobile = document.getElementById('main-mobile');
- // mainMobile.style.display = 'none';
- // let showDwgBtn = document.getElementById('showDwgBtn');
- // let showFontBtn = document.getElementById('showFontBtn');
- // showDwgBtn.style.display = 'unset';
- // showFontBtn.style.display = 'unset';
- // });
- };
- ZwCloud2D.ZwDataProcessor.uploadFont = (file) => {
- let req = new Request();
- let pArray = new Array();
- for (let i = 0; i < file.length; i++) {
- pArray.push(
- new Promise((resolve, reject) => {
- req.uploadFile(file[i]).then((res) => {
- if (res.code === 200) {
- resolve();
- } else {
- reject();
- }
- });
- }),
- );
- }
- Promise.all(pArray)
- .then(() => {
- alert('上传成功');
- })
- .catch(() => {
- alert('上传失败');
- });
- };
- ZwCloud2D.ZwDataProcessor.selectBaseDwgAndCompareDwg = () => {
- return new Promise((res, rej) => {
- req.getFileList().then((array) => {
- new Modal({
- title: '选择两个进行对比的图纸',
- fcmpInfoContent: array,
- onOk: () => {
- res();
- },
- });
- });
- });
- };
- ZwCloud2D.ZwDataProcessor.ZwProcessAboutVersionData = () => {
- return req.getAbout().then((res) => {
- let aboutVersion = '';
- aboutVersion +=
- 'Front side VERNUM: ' + ZwCloud2D.version.commitId + '<br/>';
- aboutVersion +=
- 'Front side COMMIT TIME: ' + ZwCloud2D.version.commitTime + '<br/>';
- aboutVersion +=
- 'Middleware VERNUM: ' + (res['git.commit.id'] || '') + '<br/>';
- aboutVersion +=
- 'Middleware COMMIT TIME: ' + (res['git.commit.time'] || '') + '<br/>';
- aboutVersion +=
- 'Core service VERNUM: ' + (res['cloud2d.server'] || '') + '<br/>';
- ZwCloud2D.ZwSetting.ZwSetAbout({ version: aboutVersion });
- });
- };
- ZwCloud2D.ZwDataProcessor.ZwProcessPermissionData = () => {
- return req
- .getPermissionList()
- .then((data) => {
- //启用电子签章功能
- if (enableSign) {
- ZwCloud2D.ZwEditor.ZwSetUserOptions({
- panel: { signPanel: true },
- commandButton: { Sign: true, Fcmp: true },
- command: { FCMP: true },
- });
- } else {
- //启用文件对比功能
- ZwCloud2D.ZwEditor.ZwSetUserOptions({
- commandButton: { Fcmp: true },
- command: { FCMP: true },
- });
- }
- ZwCloud2D.ZwDataManager.ZwSetSdkPermission(data);
- })
- .catch((error) => {
- console.error(error);
- });
- };
- ZwCloud2D.ZwDataProcessor.ZwProcessFontData = (missingFonts) => {
- let pArr = [];
- let fontArr = [];
- missingFonts.forEach((fontName) => {
- let arr = fontName.split('.');
- let type = (arr[arr.length - 1] || '').toUpperCase();
- pArr.push(
- req.fontDownload(fontName).then(async (data) => {
- if (data.type === 'application/octet-stream') {
- let arraybuffer = await data.arrayBuffer();
- fontArr.push({
- name: fontName,
- type: type,
- data: arraybuffer,
- });
- }
- }),
- );
- });
- return Promise.all(pArr).then(() => {
- return ZwCloud2D.ZwDataManager.ZwSetFontDataList(fontArr);
- });
- };
- ZwCloud2D.ZwDataProcessor.ZwProcessXrefData = (dwgPath, docName) => {
- return req
- .getXrefRelation(dwgPath)
- .then((xrefRelations) => {
- let xrefPromises = [];
- let srcMap = new Map();
- xrefRelations.forEach((xrefRelation) => {
- if (xrefRelation.foundPath) {
- xrefPromises.push(
- new Promise((res, rej) => {
- req.getXrefThumb(xrefRelation.foundPath).then((xrefThumb) => {
- srcMap.set(xrefRelation.foundPath, xrefThumb);
- res(true);
- });
- }),
- );
- }
- });
- return Promise.all(xrefPromises)
- .then(() => {
- let params = {
- docName: docName,
- xrefRelations: xrefRelations,
- srcMap: srcMap,
- };
- ZwCloud2D.ZwDataManager.ZwSetXrefList(params);
- })
- .catch(() => {
- let params = {
- docName: docName,
- xrefRelations: xrefRelations,
- srcMap: srcMap,
- };
- ZwCloud2D.ZwDataManager.ZwSetXrefList(params);
- });
- })
- .catch((error) => {
- console.error(error);
- });
- };
- //ZwCloud SDK 回调
- ZwCloud2D.ZwMessageCallback.ZwEvtChangeLayout = (layout) => {
- req
- .getDisplayData(layout.handleId)
- .then((data) => {
- let timestamp = new Date().getTime();
- ZwCloud2D.ZwDataManager.ZwSetDwgData(layout.handleId, data, timestamp);
- })
- .catch((error) => {
- console.error(error);
- });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtLoadXrefData = (data) => {
- req
- .getXrefData(data.handleId, data.xrefIds)
- .then((res) => {
- ZwCloud2D.ZwDataManager.ZwSetXrefData(res);
- })
- .catch(() => {
- ZwCloud2D.ZwDataManager.ZwSetXrefData();
- });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtDrawEnd = () => {};
- ZwCloud2D.ZwMessageCallback.ZwEvtGetRegenData = async (data) => {
- req
- .getRegenData(data)
- .then((res) => {
- ZwCloud2D.ZwDataManager.ZwSetRegenData(res);
- })
- .catch(() => {
- ZwCloud2D.ZwDataManager.ZwSetRegenData(null);
- });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtLoadImageData = (data) => {
- let pArr = new Array();
- let imageMap = new Map();
- data.forEach((imageUrl) => {
- pArr.push(
- new Promise((res, rej) => {
- req
- .getImageData(imageUrl)
- .then(async (result) => {
- if (result.type === 'application/octet-stream') {
- let arraybuffer = await result.arrayBuffer();
- imageMap.set(imageUrl, arraybuffer);
- }
- res(true);
- })
- .catch((err) => {
- res(true);
- });
- }),
- );
- });
- Promise.all(pArr)
- .then(() => {
- ZwCloud2D.ZwDataManager.ZwSetImageData(imageMap);
- })
- .catch((error) => {
- console.error(error);
- });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtLoadImageList = () => {
- req.getImageList().then((res) => {
- res.forEach((image) => {
- let path = image.completePath + image.name;
- image.completePath = path;
- req.getImageSrc(path).then((imageData) => {
- let item = {
- name: image.name,
- data: imageData,
- completePath: image.completePath,
- };
- ZwCloud2D.ZwDataManager.ZwSetImageList(item);
- });
- });
- });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtPlotDwg = (data) => {
- let params = Object.assign(data.params, { dwgPath: dwgPath });
- if (enableSign) {
- params.docId = 0;
- let { isZwPlot } = data.params;
- if (isZwPlot) {
- req
- .getSignBatchPlotData(params)
- .then((res) => {
- ZwCloud2D.ZwDataManager.ZwSetPlotData(data, res);
- ZwCloud2D.ZwEditor.ZwSetLoadingState(false);
- })
- .catch((error) => {
- console.error(error);
- });
- } else {
- req
- .getSignPlotData(params)
- .then((res) => {
- ZwCloud2D.ZwDataManager.ZwSetPlotData(data, res);
- ZwCloud2D.ZwEditor.ZwSetLoadingState(false);
- })
- .catch((error) => {
- console.error(error);
- });
- }
- } else {
- req
- .getPlotData(params)
- .then((res) => {
- ZwCloud2D.ZwDataManager.ZwSetPlotData(data, res);
- ZwCloud2D.ZwEditor.ZwSetLoadingState(false);
- })
- .catch((error) => {
- console.error(error);
- });
- }
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtSignBlockData = (res) => {
- let { type, data } = res;
- switch (type) {
- case signBlockOper.GetBlockData:
- req.getBlockData({ dwgPath, drawFramePrefix: '' }).then((res) => {
- ZwCloud2D.ZwDataManager.ZwSignBlockData({ type, data: res });
- });
- break;
- case signBlockOper.UploadSign:
- case signBlockOper.UploadCert:
- case signBlockOper.UploadDwg:
- req.uploadSign(data).then((res) => {
- ZwCloud2D.ZwDataManager.ZwSignBlockData({ type, data: res });
- });
- break;
- case signBlockOper.ConFirmEdit:
- req.saveBlockData(data).then((res) => {
- ZwCloud2D.ZwDataManager.ZwSignBlockData({ type, data: res });
- });
- break;
- default:
- break;
- }
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtSignPanelOperation = (signId) => {
- req.deleteSign(signId).then((result) => {
- ZwCloud2D.ZwDataManager.ZwDeleteSignCallback(result);
- });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtLoadSignHistoryData = async (data) => {
- req.getSignHistoryData({ dwgPath }).then((signHistory) => {
- if (signHistory.length === 0) {
- ZwCloud2D.ZwDataManager.ZwSetSignHistoryData([]);
- return;
- }
- let attrs = [];
- let promiseList = [];
- for (let i = 0; i < signHistory.length; i++) {
- let block = signHistory[i];
- let handleId = block.layoutHandle;
- for (let j = 0; j < block.blockData.length; j++) {
- let ref = block.blockData[j];
- for (let k = 0; k < ref.refData.length; k++) {
- let attr = ref.refData[k];
- let vv = attr.attrVvector;
- let uv = attr.attrUvector;
- let lb = attr.attrInsertPoint;
- let lt = [lb[0] + vv[0], lb[1] + vv[1], lb[2] + vv[2]];
- let rb = [lb[0] + uv[0], lb[1] + uv[1], lb[2] + uv[2]];
- let preAttr = attrs.find((atr) => atr.signId === attr.signId);
- if (preAttr) {
- preAttr.position.push({
- id: attr.signId + '-' + handleId,
- ptLeftBottom: lb,
- ptLeftTop: lt,
- ptRightBottom: rb,
- });
- } else {
- attrs.push({
- signId: attr.signId,
- signTime: attr.signTime,
- name: attr.attrName,
- signType: attr.type,
- creator: '',
- position: [
- {
- id: attr.signId + '-' + handleId,
- ptLeftBottom: lb,
- ptLeftTop: lt,
- ptRightBottom: rb,
- },
- ],
- signFileId: attr.signFileId,
- });
- }
- }
- }
- }
- promiseList = attrs.map((attr) => {
- return req.downloadSign(attr.signFileId).then((imageData) => {
- return {
- ...attr,
- signData: imageData,
- };
- });
- });
- Promise.all(promiseList).then((res) => {
- ZwCloud2D.ZwDataManager.ZwSetSignHistoryData(res);
- });
- });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtLoadDwgFile = () => {
- req.getDwgFile().then((dwgFile) => {
- ZwCloud2D.ZwDataManager.ZwSetDwgFileData(dwgFile);
- });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtGetTextStyleFont = (data) => {
- req.getTextStyleFont(data).then((res) => {
- ZwCloud2D.ZwDataManager.ZwSetTextStyleFont(res.data.name);
- });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtUpdateCommentData = async (data) => {
- let commentList = {
- code: 0,
- data: {
- rows: [data.data],
- },
- };
- ZwCloud2D.ZwDataManager.ZwSetCommentData({ commentList: commentList });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtFileOperate = async () => {
- //模拟在移动端触发文件对比功能
- ZwCloud2D.ZwMessageCallback.ZwEvtFileCompare({ state: 'enterFcmp' });
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtFileCompare = async (data) => {
- if (data.state === 'enterFcmp') {
- await ZwCloud2D.ZwDataProcessor.selectBaseDwgAndCompareDwg();
- ZwCloud2D.ZwEditor.ZwSetLoadingState(true);
- await req.getXrefRelation(sourcePath);
- let fcmpInfo = await req
- .transferFcmp({ sourcePath, compareFilePath })
- .catch(() => {
- ZwCloud2D.ZwMessageCallback.ZwEvtFileCompare({ state: 'exitFcmp' });
- return Promise.reject('');
- });
- dwgPath = sourcePath;
- let res = await ZwCloud2D.ZwDataManager.ZwSetFcmpDwgInfo(fcmpInfo);
- await ZwCloud2D.ZwDataProcessor.ZwProcessFontData(res.missingFonts);
- ZwCloud2D.ZwDataProcessor.ZwProcessXrefData(
- sourcePath,
- fcmpInfo.baseFileName,
- );
- let fcmpLmfArrayBuffer = await req.getFcmpDisplayData(
- compareFilePath,
- sourcePath,
- );
- ZwCloud2D.ZwDataManager.ZwSetFcmpDwgData(
- res.layout.handleId,
- fcmpLmfArrayBuffer,
- res.timestamp || new Date().getTime(),
- );
- }
- if (data.state === 'getFcmpRegenData') {
- let fcmpInfo = await req.transferFcmp({
- sourcePath,
- compareFilePath,
- ...data.params,
- });
- let fcmpLmfArrayBuffer = await req.getFcmpDisplayData(
- compareFilePath,
- sourcePath,
- );
- ZwCloud2D.ZwDataManager.ZwSetFcmpRegenData({
- lmfData: fcmpLmfArrayBuffer,
- ...fcmpInfo,
- fcmpErrorFlag: 0,
- });
- }
- if (data.state === 'exitFcmp') {
- ZwCloud2D.ZwEditor.ZwSetLoadingState(true);
- ZwCloud2D.ZwDataProcessor.ZwLoad();
- }
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtGetLayoutHandle = async (data) => {
- // 获取布局id
- curHandleId = data;
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtLoadCommentData = async (data) => {
- getCommentFunc(data);
- };
- ZwCloud2D.ZwMessageCallback.ZwEvtUpdateCommentData = async (data) => {
- // 评论数据添加到评论面板样例
- saveCommentFunc(data);
- };
- ZwCloud2D.ZwDataProcessor.ZwLoad = async () => {
- try {
- ZwCloud2D.ZwDataProcessor.ZwProcessAboutVersionData();
- ZwCloud2D.ZwDataProcessor.ZwProcessPermissionData();
- if (!dwgPath) return;
- let data = await req.transferDoc(dwgPath);
- docId = new Date().getTime().toString();
- let layouts = [];
- data.layouts.forEach((layout) => {
- let res = {
- handleId: layout.handleId,
- isDefault: layout.isDefault === 1 ? 'YES' : 'NO',
- name: layout.layoutName,
- tabOrder: layout.order,
- };
- layouts.push(res);
- if (layout.isDefault === 1) {
- curHandleId = layout.handleId;
- }
- });
- let res = await ZwCloud2D.ZwDataManager.ZwSetDwgInfo({
- id: docId,
- fonts: data.fontList,
- layouts: layouts,
- name: data.name,
- });
- await ZwCloud2D.ZwDataProcessor.ZwProcessFontData(res.missingFonts);
- ZwCloud2D.ZwDataProcessor.ZwProcessXrefData(dwgPath, data.name);
- req
- .getDisplayData(res.layout.handleId)
- .then((lmfInfo) => {
- ZwCloud2D.ZwDataManager.ZwSetDwgData(
- res.layout.handleId,
- lmfInfo,
- res.timestamp || new Date().getTime(),
- );
- })
- .catch((error) => {
- console.error(error);
- });
- if (wsUrl) {
- let url =
- wsUrl +
- '/CadService?sub=' +
- Math.floor(Math.random() * 1000) +
- '&docId=' +
- docId +
- '&dwgPath=' +
- dwgPath;
- ZwCloud2D.ZwDataManager.ZwEntryEdit(url);
- }
- } catch (error) {
- ZwCloud2D.ZwEditor.ZwSetLoadingState(false);
- alert(error);
- // let main = document.getElementById('main');
- // main.style.display = 'unset';
- // let mainMobile = document.getElementById('main-mobile');
- // mainMobile.style.display = 'unset';
- // let showDwgBtn = document.getElementById('showDwgBtn');
- // let showFontBtn = document.getElementById('showFontBtn');
- // showDwgBtn.style.display = 'none';
- // showFontBtn.style.display = 'none';
- // resizeCheck();
- // window.addEventListener('resize', resizeCheck);
- console.error(error);
- }
- };
- ZwCloud2D.ZwDataProcessor.ZwFcmpLoad = async () => {
- ZwCloud2D.ZwDataProcessor.ZwProcessAboutVersionData();
- ZwCloud2D.ZwDataProcessor.ZwProcessPermissionData();
- await req.getXrefRelation(sourcePath);
- let fcmpInfo = await req
- .transferFcmp({ sourcePath, compareFilePath })
- .catch(() => {
- ZwCloud2D.ZwMessageCallback.ZwEvtFileCompare({ state: 'exitFcmp' });
- return Promise.reject('');
- });
- dwgPath = sourcePath;
- let res = await ZwCloud2D.ZwDataManager.ZwSetFcmpDwgInfo(fcmpInfo);
- await ZwCloud2D.ZwDataProcessor.ZwProcessFontData(res.missingFonts);
- ZwCloud2D.ZwDataProcessor.ZwProcessXrefData(
- sourcePath,
- fcmpInfo.baseFileName,
- );
- let fcmpLmfArrayBuffer = await req.getFcmpDisplayData(
- compareFilePath,
- sourcePath,
- );
- ZwCloud2D.ZwDataManager.ZwSetFcmpDwgData(
- res.layout.handleId,
- fcmpLmfArrayBuffer,
- res.timestamp || new Date().getTime(),
- );
- };
|