From b42429445c22164e951d514348115ee593379026 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期六, 02 十一月 2024 18:44:54 +0800 Subject: [PATCH] 增加下载xml,禁止一键排版以及修改型号节点上级节点 --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ReliabilityAssessDao.java | 2 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java | 84 ++++++++++++++ modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml | 9 + web/src/views/modules/taskReliability/RBD-edit-img.vue | 23 ++- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java | 62 +++++++-- web/src/views/modules/taskReliability/ReliabilityAssess.vue | 28 ++++ modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java | 7 + web/src/views/modules/taskReliability/TimeDiagram.vue | 27 ++++ modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ModelRbd.java | 3 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java | 7 + web/src/views/modules/taskReliability/SimulatAssess.vue | 67 ++++++++--- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ReliabilityAssessController.java | 7 + 12 files changed, 278 insertions(+), 48 deletions(-) diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java index f515f52..7f07865 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java @@ -105,7 +105,14 @@ @GetMapping("getProductList") public Result<List<XhProductModel>> getProductList(Long shipId, Integer productType) { + if(productType==2){ + shipId =null; + } List<XhProductModel> list = xhProductModelService.getProductList(shipId, productType - 1); + if(productType == 5){ + List<XhProductModel> list2 = xhProductModelService.getProductList(shipId, productType - 2); + list.addAll(list2); + } return Result.ok(list); } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ReliabilityAssessController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ReliabilityAssessController.java index d37f069..85be829 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ReliabilityAssessController.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ReliabilityAssessController.java @@ -30,6 +30,8 @@ import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -64,6 +66,11 @@ return result; } + @GetMapping("downloadXml") + public void downloadXml(HttpServletRequest request, HttpServletResponse response, Long productId, Long taskId, Long itemId,Integer xml) { + reliabilityAssessService.downloadXml(request,response,productId,taskId,itemId,xml); + } + @PostMapping("add") @ApiOperation("鏂板") @LogOperation("鏂板") diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java index f0cc214..5486365 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java @@ -36,6 +36,8 @@ import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -269,6 +271,11 @@ return Result.ok(); } + @GetMapping("downloadXml") + public void downloadXml(HttpServletRequest request, HttpServletResponse response, String type,Long id,Integer xml) { + simulatAssessService.downloadXml(request, response,type,id,xml); + } + @PutMapping @ApiOperation("淇敼") @LogOperation("淇敼") diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ReliabilityAssessDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ReliabilityAssessDao.java index 4d60009..278a700 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ReliabilityAssessDao.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ReliabilityAssessDao.java @@ -25,4 +25,6 @@ List<ReliabilityAssess> getProductList(Long productId, Long itemId); Long getAssessId(Long itemId, Long productId, Long taskId); + + String getxml(Long assessId); } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ModelRbd.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ModelRbd.java index f5a3b36..04d1228 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ModelRbd.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ModelRbd.java @@ -34,6 +34,9 @@ @ApiModelProperty(value = "") private Long productId; + @ApiModelProperty(value = "鏄惁鑷姩鎺掔増") + private Integer autoLayout; + @TableField(exist = false) @ApiModelProperty(value = "") private Long[] nodeArr; diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java index b93cfba..2212a70 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java @@ -38,6 +38,8 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.*; import java.util.*; import java.util.stream.Collectors; @@ -157,9 +159,9 @@ String nameValue = jsonArray.getJSONObject(i).get("name").toString(); if (nameValue.contains(assess.getId().toString())) { // 鑾峰彇瀵瑰簲鐨勫�� - if (jsonArray.getJSONObject(i).get("value") instanceof Double){ - result1 = (Double) jsonArray.getJSONObject(i).get("value"); - }else{ + if (jsonArray.getJSONObject(i).get("value") instanceof Double) { + result1 = (Double) jsonArray.getJSONObject(i).get("value"); + } else { String[] values = jsonArray.getJSONObject(i).get("value").toString().split(","); result1 = Double.valueOf(values[1]); } @@ -377,16 +379,16 @@ String ToEStr = ""; String FStr = ""; // for (ModelNode node : nodeList) { - List<ReliabilityAssess> assessDatas = assessDataList.stream().filter(item -> - dataId.equals(item.getId())).collect(Collectors.toList()); - NoEStr += ","; - ToEStr += ","; - FStr += ","; - if (assessDatas.size() > 0) { - NoEStr += assessDatas.get(0).getRunNum() != null ? assessDatas.get(0).getRunNum().toString() : "0"; - ToEStr += assessDatas.get(0).getRunTimes() != null ? assessDatas.get(0).getRunTimes().toString() : "0"; - FStr += assessDatas.get(0).getFailNum() != null ? assessDatas.get(0).getFailNum().toString() : "0"; - } + List<ReliabilityAssess> assessDatas = assessDataList.stream().filter(item -> + dataId.equals(item.getId())).collect(Collectors.toList()); + NoEStr += ","; + ToEStr += ","; + FStr += ","; + if (assessDatas.size() > 0) { + NoEStr += assessDatas.get(0).getRunNum() != null ? assessDatas.get(0).getRunNum().toString() : "0"; + ToEStr += assessDatas.get(0).getRunTimes() != null ? assessDatas.get(0).getRunTimes().toString() : "0"; + FStr += assessDatas.get(0).getFailNum() != null ? assessDatas.get(0).getFailNum().toString() : "0"; + } // } NoEStr = NoEStr.substring(1); ToEStr = ToEStr.substring(1); @@ -397,7 +399,7 @@ vCounter.put("v", counter); Element sameNameGroupTag = parent.addElement("logic"); sameNameGroupTag.addAttribute("name", - "v"+counter); + "v" + counter); if ("parallel".equals(sameNameGroupAlgorithmType)) { sameNameGroupTag.addAttribute("type", "parallel"); } else { @@ -406,7 +408,7 @@ sameNameGroupTag.addAttribute("nums", String.valueOf(nodeList.size())); Element nodeTag = sameNameGroupTag.addElement("node"); nodeTag.addAttribute("name", - nodeList.stream().map(item -> item.getDataId().toString()+"-"+item.getDeviceNo().toString()). + nodeList.stream().map(item -> item.getDataId().toString() + "-" + item.getDeviceNo().toString()). collect(Collectors.joining(","))); nodeTag.addAttribute("real_name", product.getSameSbName()); nodeTag.addAttribute("name_path", product.getNamePath()); @@ -690,7 +692,7 @@ FStr = FStr.substring(1); nodeTag.addAttribute("name", - nodes.stream().map(item -> item.getDataId().toString()+"-"+item.getDeviceNo().toString()). + nodes.stream().map(item -> item.getDataId().toString() + "-" + item.getDeviceNo().toString()). collect(Collectors.joining(","))); if (distTypes.get(0) == 3) { // 浜岄」鍒嗗竷 @@ -746,7 +748,7 @@ ReliaSimLibResult rtn = com.alibaba.fastjson.JSONObject.parseObject(line, ReliaSimLibResult.class); if ("0".equals(rtn.getCode())) { logger.info("鍚姩鍙潬鎬ц瘎瀹氱畻娉曞簱鎴愬姛銆�"); - if (exitCode ==0) { + if (exitCode == 0) { deleteAssessInfoInRedis(assessResult.getId()); result = Result.ok(); } else { @@ -936,4 +938,30 @@ return baseDao.getAssessDataList(productId); } + public void downloadXml(HttpServletRequest request, HttpServletResponse response, Long productId, Long taskId, Long itemId, Integer xml) { + Long assessId = baseDao.getAssessId(itemId, productId, taskId); + String json=""; + if (xml == 1) { + json = baseDao.getxml(assessId); + } else { + String filePath = path + "/" + assessId + "/" + "result.xml"; + InputStream in = null; + File file = new File(filePath); + if (file.exists()) { + try { + in = new FileInputStream(filePath); + json = IOUtils.toString(in); + } catch (IOException e) { + throw new RenException("鏂囦欢涓嶅瓨鍦ㄦ垨鑰呮枃浠舵墦涓嶅紑"); + } finally { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + simulatAssessService.writeToTxt(request, response, json, "璇勫畾"); + } } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java index ae1baa0..93e99b1 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java @@ -11,6 +11,7 @@ import com.zt.common.servlet.Result; import com.zt.common.utils.TreeUtils; import com.zt.common.utils.UUIDUtil; +import com.zt.life.export.service.DownloadService; import com.zt.life.modules.mainPart.basicInfo.dao.ParamDataDao; import com.zt.life.modules.mainPart.basicInfo.dao.XhProductModelDao; import com.zt.life.modules.mainPart.basicInfo.model.ParamData; @@ -46,6 +47,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.*; import java.nio.file.FileAlreadyExistsException; import java.util.*; @@ -1607,4 +1611,84 @@ dto.setCurveList(curveList); return dto; } + + public void downloadXml(HttpServletRequest request, HttpServletResponse response, String type, Long id, Integer xml) { + if (type.equals("fz")) { + if (xml == 1) { + SimulatAssess simulatAssess = this.get(id); + String xml1 = simulatAssess.getXml(); + writeToTxt(request, response, xml1, "浠跨湡杈撳叆"); + } else { + String filePath = path + "/" + id + "/" + "result.xml"; + String xml1; + InputStream in = null; + + try { + in = new FileInputStream(filePath); + xml1 = IOUtils.toString(in); + } catch (IOException e) { + e.printStackTrace(); + throw new RenException("鏂囦欢涓嶅瓨鍦ㄦ垨鑰呮枃浠舵墦涓嶅紑"); + } finally { + try { + if (in != null) { + in.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + writeToTxt(request, response, xml1, "浠跨湡杈撳嚭"); + } + } else if (type.equals("sxt")) { + if (xml == 1) { + String filePath = path + "/" + id + "/" + "status.json"; + ObjectMapper mapper = new ObjectMapper(); + String jsonStr = null; + try { + // 浣跨敤 ObjectMapper 鐨� readValue 鏂规硶锛屽皢鏂囦欢涓殑 JSON 鏁版嵁杞崲涓轰竴涓� Java 瀵硅薄 + // 杩欓噷浣跨敤 Object 绫讳綔涓烘硾鍨嬪弬鏁帮紝琛ㄧず浠绘剰绫诲瀷鐨勫璞� + Object obj = mapper.readValue(new File(filePath), Object.class); + // 浣跨敤 ObjectMapper 鐨� writeValueAsString 鏂规硶锛屽皢 Java 瀵硅薄杞崲涓� JSON 瀛楃涓� + jsonStr = mapper.writeValueAsString(obj); + + } catch (IOException e) { + // 澶勭悊寮傚父 + e.printStackTrace(); + throw new RenException("鏂囦欢涓嶅瓨鍦ㄦ垨鑰呮枃浠舵墦涓嶅紑"); + } + writeToTxt(request, response, jsonStr, "鏃跺簭鍥捐緭鍏�"); + } else { + SimulatAssess simulatAssess = this.get(id); + TimeDiagramDto timeDiagram = getTimeDiagram(simulatAssess.getProductId(), simulatAssess.getTaskModelId(), simulatAssess.getId(), 1200, 5); + String xml2 = timeDiagram.getDiagramJson(); + writeToTxt(request, response, xml2, "鏃跺簭鍥捐緭鍑�"); + } + } + } + + public void writeToTxt(HttpServletRequest request, HttpServletResponse response, String jsonString, String name) {//璁剧疆鍝嶅簲鐨勫瓧绗﹂泦 + //璁剧疆鍝嶅簲鍐呭鐨勭被鍨� + BufferedOutputStream buff = null; + ServletOutputStream outStr = null; + try { + response.setContentType("text/plain;charset=UTF-8"); + String encodedFilename = DownloadService.getNameEncoder(request, name + "xml.txt"); + response.addHeader("Content-Disposition", "attachment;filename=" + encodedFilename); + outStr = response.getOutputStream(); + buff = new BufferedOutputStream(outStr); + buff.write(jsonString.getBytes("UTF-8")); + buff.flush(); + buff.close(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + buff.close(); + outStr.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } } diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml index 3e2d6ac..ec76ca8 100644 --- a/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml +++ b/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml @@ -52,4 +52,13 @@ UPDATE_DATE DESC LIMIT 1 </select> + <select id="getxml" resultType="java.lang.String"> + SELECT + xml + FROM + assess_result + WHERE + is_delete = 0 + AND id = ${assessId} + </select> </mapper> diff --git a/web/src/views/modules/taskReliability/RBD-edit-img.vue b/web/src/views/modules/taskReliability/RBD-edit-img.vue index 58fa825..90d93d2 100644 --- a/web/src/views/modules/taskReliability/RBD-edit-img.vue +++ b/web/src/views/modules/taskReliability/RBD-edit-img.vue @@ -18,7 +18,9 @@ <el-button type="primary" @click="saveDiagram()">鏆傚瓨</el-button> <el-button type="primary" @click="analyzeDiagram()">鎻愪氦</el-button> <el-button type="primary" @click="clearDiagram()">娓呯┖鍥惧舰</el-button> - <el-checkbox style="margin: 0 10px 0 10px" v-model="dataForm.autoLayout">鏄惁寮�鍚竴閿帓鐗�</el-checkbox> + <el-checkbox style="margin: 0 10px 0 10px" v-model="dataForm.autoLayout" true-label="1" false-label="0"> + 鏄惁寮�鍚竴閿帓鐗� + </el-checkbox> <el-button type="primary" @click="layoutDiagram()" :disabled="!dataForm.autoLayout">涓�閿帓鐗�</el-button> <el-button @click="leftAlign()"> <i style="font-size: 1rem;" class="wt-iconfont icon-zuoduiqi"></i> @@ -578,7 +580,7 @@ hasPublish: 0, urlPref: '', nodeArr: [], - autoLayout:true, + autoLayout: 1, }, type: '', id: '', @@ -756,6 +758,7 @@ } let res = await this.$http.get(`/taskReliability/ModelLine/getDiagram`, {params: params}) this.dataForm = res.data + this.dataForm.autoLayout = parseInt(this.dataForm.autoLayout) == 1 if (res.data.content != null) { console.log(this.dataForm, 'getDiagram datafrom') console.log(res.data, 'getDiagram res.data') @@ -932,7 +935,7 @@ for (let i = 1; i <= node.getData().basicUnitNum; i++) { if (deviceNoArr.findIndex(item => item === i) === -1) { no = i - if (node.getData().basicUnitNum>1){ + if (node.getData().basicUnitNum > 1) { node.getData().deviceNo = i node.attr('text/text', node.attr('text/text') + '-' + i) } @@ -1063,12 +1066,12 @@ //'xlink:href': urlObject.createObjectURL(new Blob([item.svgContent])), }, title: { - text: item.basicUnitNum>1?item.basicUnitNum:'', + text: item.basicUnitNum > 1 ? item.basicUnitNum : '', refX: 15, refY: 10, fill: '#748be7', fontSize: 14, - fontWeight:'bold', + fontWeight: 'bold', 'text-anchor': 'start', }, text: { @@ -1221,7 +1224,7 @@ // 鐩戝惉鑺傜偣娣诲姞浜嬩欢 this.graph.on('node:added', ({node}) => { node.setAttrs({ - title: { text: '' }, + title: {text: ''}, }) if (this.isFirstLoad) { return @@ -1582,7 +1585,7 @@ }) }, async layoutDiagram() { - if(this.dataForm.autoLayout){ + if (this.dataForm.autoLayout == 1) { console.log(JSON.stringify(this.graph.toJSON()), 'graph.toJSON()') this.dataForm.content = JSON.stringify(this.graph.toJSON()) this.dataForm.urlPref = window.SITE_CONFIG['apiURL'] @@ -1780,7 +1783,7 @@ inEdges[0].target = {cell: result.newStartNode.id} outEdges[0].source = {cell: result.newEndNode.id} graphNode.remove() - if(this.dataForm.autoLayout){ + if (this.dataForm.autoLayout == 1) { if (!result.canPlace) { //璋冪敤鑷姩鎺掔増 this.layoutDiagram() @@ -1837,7 +1840,7 @@ connector: {name: 'rounded'}, zIndex: -1 }) - if(this.dataForm.autoLayout){ + if (this.dataForm.autoLayout == 1) { if (!result.canPlace) { //璋冪敤鑷姩鎺掔増 this.layoutDiagram() @@ -1971,7 +1974,7 @@ }) graphEdge.source = {cell: result.newEndNode.id} } - if(this.dataForm.autoLayout){ + if (this.dataForm.autoLayout == 1) { if (!result.canPlace) { //璋冪敤鑷姩鎺掔増 this.layoutDiagram() diff --git a/web/src/views/modules/taskReliability/ReliabilityAssess.vue b/web/src/views/modules/taskReliability/ReliabilityAssess.vue index 49562fe..6516b3e 100644 --- a/web/src/views/modules/taskReliability/ReliabilityAssess.vue +++ b/web/src/views/modules/taskReliability/ReliabilityAssess.vue @@ -19,6 +19,15 @@ <el-button type="primary" @click="assess()">璇勫畾</el-button> <el-button type="primary" @click="add()">鏂板璇勫畾鏁版嵁</el-button> <el-button type="primary" @click="handleExpand()">{{expandText}}</el-button> + <el-dropdown style="margin-left: 10px" @command="download"> + <el-button type="primary"> + 涓嬭浇xml<i class="el-icon-arrow-down el-icon--right"></i> + </el-button> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item command="1">杈撳叆xml</el-dropdown-item> + <el-dropdown-item command="2">杈撳嚭xml</el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> </el-form> <el-table ref="multipleTable" v-loading="table.dataLoading" :data="dataList" height="100px" v-adaptive="{bottomOffset:70}" row-key="id" @@ -43,6 +52,8 @@ </template> <script> import AddOrUpdate from './RelisbilityAssess-AddOrUpdate' + import qs from "qs"; + import Cookies from "js-cookie"; export default { data() { @@ -189,6 +200,21 @@ } }) }, - } + async download(selsect) { + if (!this.dataForm.productId || !this.dataForm.taskId || !this.dataForm.itemId ) { + this.$tip.alert("鏈夋湭濉啓鐨勬暟鎹�") + return + } + let param = qs.stringify({ + 'token': Cookies.get('token'), + productId: this.dataForm.productId, + taskId: this.dataForm.taskId, + itemId: this.dataForm.itemId, + xml:selsect + }) + let apiURL = `/taskReliability/ReliabilityAssess/downloadXml` + window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${param}` + } + }, } </script> diff --git a/web/src/views/modules/taskReliability/SimulatAssess.vue b/web/src/views/modules/taskReliability/SimulatAssess.vue index 0f58eec..7b59686 100644 --- a/web/src/views/modules/taskReliability/SimulatAssess.vue +++ b/web/src/views/modules/taskReliability/SimulatAssess.vue @@ -8,38 +8,50 @@ <zt-form-item label="鎬讳綋浠诲姟" prop="taskModelId"> <zt-select v-model="dataForm.taskModelId" :datas="taskList" @change="onTaskSelected"/> </zt-form-item> - <zt-form-item label="鏃堕棿鍒嗙墖" prop="samplPeriod" > - <el-input type="number" :min="1" v-model="dataForm.samplPeriod" style="width: 150px;vertical-align: baseline;"> + <zt-form-item label="鏃堕棿鍒嗙墖" prop="samplPeriod"> + <el-input type="number" :min="1" v-model="dataForm.samplPeriod" + style="width: 150px;vertical-align: baseline;"> <template slot="append">鍒嗛挓</template> </el-input> </zt-form-item> - <zt-form-item label="浠跨湡娆℃暟" prop="simulatFrequency" > - <el-input type="number" :min="1" v-model="dataForm.simulatFrequency" style="width: 150px;vertical-align: baseline;"> + <zt-form-item label="浠跨湡娆℃暟" prop="simulatFrequency"> + <el-input type="number" :min="1" v-model="dataForm.simulatFrequency" + style="width: 150px;vertical-align: baseline;"> <template slot="append">娆℃暟</template> </el-input> </zt-form-item> <el-form-item prop="repairDiracFlag" label-width="150px" style="margin-left: 20px"> <el-checkbox v-model="dataForm.repairDiracFlag">鍙慨璁惧鍙潬搴︿负1</el-checkbox> </el-form-item> - <zt-form-item style="margin-left: 20px"> + <zt-form-item style="margin-left: 10px"> <zt-button @click="analyze()">浠跨湡鍒嗘瀽</zt-button> - <zt-button @click="displayProcess()">鏌ョ湅绠楁硶搴撹繘绋�</zt-button> + <zt-button @click="displayProcess()">绠楁硶搴撹繘绋�</zt-button> + <el-dropdown style="margin-left: 10px" @command="download"> + <el-button type="primary"> + 涓嬭浇xml<i class="el-icon-arrow-down el-icon--right"></i> + </el-button> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item command="1">杈撳叆xml</el-dropdown-item> + <el-dropdown-item command="2">杈撳嚭xml</el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> </zt-form-item> </el-form> <el-progress v-if="isShow" :percentage="percentage"></el-progress> - <el-col :span="4"> - <div style="margin-right: 5px;height: calc(100vh - 230px)" v-if="isSelect"> - <product-model-tree @on-selected="onTreeSelected" showXdy="false" - ref="ProductModelTree" :isShow="false" basic="4" :productId="dataForm.productId"/> - </div> - </el-col> - <el-col :span="20"> - <div class="fa-card-a" style="height: calc(100vh - 230px)"> - <SimulatCurve ref="SimulatCurve"></SimulatCurve> - </div> - </el-col> + <el-col :span="4"> + <div style="margin-right: 5px;height: calc(100vh - 230px)" v-if="isSelect"> + <product-model-tree @on-selected="onTreeSelected" showXdy="false" + ref="ProductModelTree" :isShow="false" basic="4" :productId="dataForm.productId"/> + </div> + </el-col> + <el-col :span="20"> + <div class="fa-card-a" style="height: calc(100vh - 230px)"> + <SimulatCurve ref="SimulatCurve"></SimulatCurve> + </div> + </el-col> </el-row> - <el-dialog v-dialogDrag :close-on-click-modal="false" top="8vh" :visible.sync="dialogVisible" title="妯″瀷妫�鏌�" width="60%" @close="dialogVisible = false"> + <el-dialog v-dialogDrag :close-on-click-modal="false" top="8vh" :visible.sync="dialogVisible" title="妯″瀷妫�鏌�" + width="60%" @close="dialogVisible = false"> <el-tag type="danger" style="margin-bottom: 10px">妯″瀷瀹氫箟/鍙傛暟閰嶇疆閲屽瓨鍦ㄤ互涓嬮棶棰橈細</el-tag> <el-table :data="modelCheckResult" height="350" :header-cell-style="{'text-align':'center'}"> @@ -64,6 +76,8 @@ import SimulatCurve from "./SimulatCurve"; import ProductModelTree from "../basicInfo/ProductModelTree"; import Process from "./Process"; + import qs from "qs"; + import Cookies from "js-cookie"; export default { @@ -111,7 +125,7 @@ methods: { onTreeSelected(data) { - if (this.dataForm.id){ + if (this.dataForm.id) { console.log(data, 'onProductSelected') this.dataForm.showProductId = data.id this.$refs.SimulatCurve.getProductEcharts(this.dataForm); @@ -182,6 +196,21 @@ } } }, + async download(selsect) { + if(this.dataForm.id){ + let param = qs.stringify({ + 'token': Cookies.get('token'), + type: 'fz', + xml:selsect, + id: this.dataForm.id + }) + let apiURL = `/taskReliability/SimulatAssess/downloadXml` + window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${param}` + }else{ + this.$alert('杩樻湭杩涜浠跨湡鎿嶄綔') + } + + }, displayProcess() { this.$refs.process.$refs.dialog.init() } diff --git a/web/src/views/modules/taskReliability/TimeDiagram.vue b/web/src/views/modules/taskReliability/TimeDiagram.vue index cf48ad0..15c0973 100644 --- a/web/src/views/modules/taskReliability/TimeDiagram.vue +++ b/web/src/views/modules/taskReliability/TimeDiagram.vue @@ -23,6 +23,15 @@ </zt-form-item> <zt-form-item> <zt-button @click="getDiagram(null)">鏌ョ湅鏃跺簭鍥�</zt-button> + <el-dropdown style="margin-left: 10px" @command="download"> + <el-button type="primary"> + 涓嬭浇xml<i class="el-icon-arrow-down el-icon--right"></i> + </el-button> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item command="1">杈撳叆xml</el-dropdown-item> + <el-dropdown-item command="2">杈撳嚭xml</el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> </zt-form-item> </el-form> <div style="display: flex"> @@ -59,6 +68,8 @@ import ModelView from "./ModelView"; import textDiagram from "./textDiagram"; import timeDiagramThumbnail from "./timeDiagramThumbnail" + import qs from "qs"; + import Cookies from "js-cookie"; export default { @@ -439,7 +450,21 @@ getPoint(x,smallWidth){ let pointX = Number((x * (this.bigWidth / smallWidth )).toFixed(0)) this.graph.setScrollbarPosition(pointX, null) - } + }, + async download(selsect) { + if(this.dataForm.id){ + let param = qs.stringify({ + 'token': Cookies.get('token'), + type: 'sxt', + xml:selsect, + id: this.dataForm.id + }) + let apiURL = `/taskReliability/SimulatAssess/downloadXml` + window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${param}` + }else{ + this.$alert('杩樻湭閫夋嫨浠跨湡璁板綍') + } + }, } } </script> -- Gitblit v1.9.1