From 91c67198a84e9c0a76cc0154fbebf62813c1de26 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期三, 13 三月 2024 18:06:09 +0800
Subject: [PATCH] 修改

---
 starter/src/main/resources/application.yml                                                                 |    2 
 /dev/null                                                                                                  |    0 
 web/src/views/modules/taskReliability/RBD-edit-img.vue                                                     |  395 +++++++++++++++++---------------
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java   |   25 +
 modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/model/SysPictureBase.java                |   10 
 web/src/views/modules/basicInfo/XhProductModel.vue                                                         |    2 
 web/src/views/modules/sysPictureBase/SysPictureBase.vue                                                    |   29 -
 modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/controller/SysPictureBaseController.java |  122 ++++++++--
 web/src/views/modules/sysPictureBase/SysPictureBase-AddOrUpdate.vue                                        |   63 ++++
 modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/service/SysPictureBaseService.java       |    3 
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java           |    2 
 modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml                                 |    9 
 12 files changed, 407 insertions(+), 255 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java
index 44c3490..1338d4f 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java
@@ -28,4 +28,6 @@
     List<XhProductModel> getProductList();
 
     List<ProductImg> getProduct(Long productId);
+
+    String getDefaultImg();
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
index c35142f..cee7108 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
@@ -12,6 +12,7 @@
 import com.zt.modules.sys.model.SysMenu;
 import org.springframework.stereotype.Service;
 import com.zt.common.db.query.QueryFilter;
+
 import javax.annotation.Resource;
 import java.util.List;
 
@@ -19,11 +20,11 @@
 /**
  * product_model
  *
- * @author zt generator 
+ * @author zt generator
  * @since 1.0.0 2024-02-29
  */
 @Service
-public class XhProductModelService  extends BaseService<XhProductModelDao, XhProductModel> {
+public class XhProductModelService extends BaseService<XhProductModelDao, XhProductModel> {
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -32,7 +33,16 @@
      * @return
      */
     public List<XhProductModel> page(QueryFilter queryFilter) {
-        return baseDao.getList(queryFilter.getQueryParams());
+        List<XhProductModel> list = baseDao.getList(queryFilter.getQueryParams());
+        for (XhProductModel productModel : list) {
+            if (productModel.getProductType().equals("1")) {
+                productModel.setDefaultImg(baseDao.getDefaultImg());
+                if (productModel.getId() != null) {
+                    this.update(productModel);
+                }
+            }
+        }
+        return list;
     }
 
     /**
@@ -45,17 +55,18 @@
     }
 
     public List<XhProductModel> getAllTree() {
-            List<XhProductModel> productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE,
-                    Constant.Bool.NO) .gt("product_type", 1).orderByAsc(Constant.TableColumn.SORT));
-            return TreeUtils.build(productList);
+        List<XhProductModel> productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE,
+                Constant.Bool.NO).gt("product_type", 1).orderByAsc(Constant.TableColumn.SORT));
+        return TreeUtils.build(productList);
     }
 
     public Integer getNo(Long pid) {
-        if (baseDao.getNo(pid) == null){
+        if (baseDao.getNo(pid) == null) {
             return 0;
         }
         return baseDao.getNo(pid);
     }
+
     public List<XhProductModel> getProductList() {
         List<XhProductModel> ProductList = baseDao.getProductList();
         return TreeUtils.build(ProductList);
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/controller/SysPictureBaseController.java b/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/controller/SysPictureBaseController.java
index 36701f5..11cc5a0 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/controller/SysPictureBaseController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/controller/SysPictureBaseController.java
@@ -1,6 +1,7 @@
 package com.zt.life.modules.sysPictureBase.controller;
 
 
+import com.spire.xls.Workbook;
 import com.zt.common.annotation.LogOperation;
 import com.zt.common.constant.Constant;
 import com.zt.common.annotation.QueryParam;
@@ -16,13 +17,26 @@
 import com.zt.life.modules.sysPictureBase.service.SysPictureBaseService;
 import com.zt.life.sys.dto.OssDto;
 import com.zt.life.sys.service.SysOssConfigService;
+import com.zt.modules.oss.enums.CloudChannel;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.util.FileCopyUtils;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 import springfox.documentation.annotations.ApiIgnore;
+
+import javax.imageio.ImageIO;
+import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.*;
 
 
 /**
@@ -32,7 +46,7 @@
  * @since 1.0.0 2024-02-27
  */
 @RestController
-@RequestMapping("/sysPictureBase/SysPictureBase/")
+@RequestMapping("/sysPictureBase/")
 @Api(tags = "sys_picture_base")
 public class SysPictureBaseController {
     @Autowired
@@ -40,6 +54,8 @@
 
     @Autowired
     private SysOssConfigService sysOssConfigService;
+    @Value("${zt.oss.local-path}")
+    private String localPath;
 
     @GetMapping("page")
     @ApiOperation("鍒嗛〉")
@@ -58,38 +74,92 @@
     @ApiOperation("淇℃伅")
     public Result<SysPictureBase> get(@PathVariable("id") Long id) {
         SysPictureBase data = sysPictureBaseService.get(id);
-        if (id != null) {
-            OssDto ossDto = sysOssConfigService.getOssByBusiType(id, "sys_picture");
-            if (ossDto != null) {
-                data.setFiles(ossDto);
-            }
-        }
         return Result.ok(data);
     }
 
-    @PostMapping
-    @ApiOperation("鏂板")
-    @LogOperation("鏂板")
-    public Result insert(@RequestBody SysPictureBase sysPictureBase) {
-        //鏁堥獙鏁版嵁
-        ValidatorUtils.validateEntity(sysPictureBase, AddGroup.class, DefaultGroup.class);
-        Integer no = sysPictureBaseService.getNo();
-        sysPictureBase.setSortNo(no + 1);
-        sysPictureBaseService.insert(sysPictureBase);
-        sysOssConfigService.updateOss(sysPictureBase.getId(), sysPictureBase.getFiles());// 淇濆瓨闄勪欢
+    @PostMapping("save")
+    @ApiOperation("淇濆瓨")
+    @LogOperation("淇濆瓨")
+    public Result save(@RequestBody MultipartFile file, Long id, String type, String subType,
+                       String name, String contentType, String systemMark, Integer sortNo, String remark) {
+        SysPictureBase sysPictureBase;
+        if (id != null) {
+            sysPictureBase = sysPictureBaseService.get(id);
+            sysPictureBase.setType(type);
+            sysPictureBase.setSubType(subType);
+            sysPictureBase.setName(name);
+            sysPictureBase.setContentType(contentType);
+            sysPictureBase.setSystemMark(systemMark);
+            sysPictureBase.setSortNo(sortNo);
+            sysPictureBase.setRemark(remark);
+            sysPictureBaseService.update(sysPictureBase);
+        } else {
+            sysPictureBase = new SysPictureBase();
+            sysPictureBase.setType(type);
+            sysPictureBase.setSubType(subType);
+            sysPictureBase.setName(name);
+            sysPictureBase.setContentType(contentType);
+            sysPictureBase.setSystemMark(systemMark);
+            Integer no = sysPictureBaseService.getNo();
+            sysPictureBase.setSortNo(no + 1);
+            sysPictureBase.setRemark(remark);
+            sysPictureBaseService.insert(sysPictureBase);
+        }
+        if (file != null) {
+            BufferedImage bufferedImage = null;
+            try {
+                String fileName = file.getOriginalFilename();
+                String[] arr = fileName.split("\\.");
+                String suffixName = arr[arr.length - 1].toLowerCase();
+
+                bufferedImage = ImageIO.read(file.getInputStream());
+                // 瀹藉害
+                int width = bufferedImage.getWidth();
+                sysPictureBase.setWidth(width);
+                // 楂樺害
+                int height = bufferedImage.getHeight();
+                sysPictureBase.setHeight(height);
+                sysPictureBaseService.update(sysPictureBase);
+                String tempUploadDir = localPath + "/product_img/";
+                File dir = new File(tempUploadDir);
+                if (!dir.exists()) {
+                    dir.mkdirs();
+                }
+                ImageIO.write(bufferedImage, suffixName, new File(tempUploadDir + sysPictureBase.getId().toString()));
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+
+        }
         return Result.ok();
     }
 
-    @PutMapping
-    @ApiOperation("淇敼")
-    @LogOperation("淇敼")
-    public Result update(@RequestBody SysPictureBase sysPictureBase) {
-        //鏁堥獙鏁版嵁
-        ValidatorUtils.validateEntity(sysPictureBase, UpdateGroup.class, DefaultGroup.class);
-        sysPictureBaseService.update(sysPictureBase);
-        sysOssConfigService.updateOss(sysPictureBase.getId(), sysPictureBase.getFiles());// 淇濆瓨闄勪欢
+    @RequestMapping("/getProductImg")
+    public void getProductImg(HttpServletResponse response, Long id) {
+        try {
+            String tempUploadDir = localPath + "/product_img/" + id;
+            File file = new File(tempUploadDir);
+            //璇诲彇鎸囧畾璺緞涓嬮潰鐨勬枃浠�
+            InputStream in = new FileInputStream(file);
 
-        return Result.ok();
+            OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
+            //鍒涘缓瀛樻斁鏂囦欢鍐呭鐨勬暟缁�
+            byte[] buff = new byte[1024];
+            //鎵�璇诲彇鐨勫唴瀹逛娇鐢╪鏉ユ帴鏀�
+            int n;
+            //褰撴病鏈夎鍙栧畬鏃�,缁х画璇诲彇,寰幆
+            while ((n = in.read(buff)) != -1) {
+                //灏嗗瓧鑺傛暟缁勭殑鏁版嵁鍏ㄩ儴鍐欏叆鍒拌緭鍑烘祦涓�
+                outputStream.write(buff, 0, n);
+            }
+            //寮哄埗灏嗙紦瀛樺尯鐨勬暟鎹繘琛岃緭鍑�
+            outputStream.flush();
+            //鍏虫祦
+            outputStream.close();
+            in.close();
+        }  catch (IOException e) {
+            e.printStackTrace();
+        }
     }
 
     @DeleteMapping
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/model/SysPictureBase.java b/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/model/SysPictureBase.java
index b546c03..a8e8f1c 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/model/SysPictureBase.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/model/SysPictureBase.java
@@ -8,6 +8,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.Date;
 
@@ -32,6 +33,12 @@
 	@ApiModelProperty(value = "鍥剧墖鍚嶇О")
 	private String name;
 
+	@ApiModelProperty(value = "鍥剧墖瀹藉害")
+	private Integer width;
+
+	@ApiModelProperty(value = "鍥剧墖楂樺害")
+	private Integer height;
+
 	@ApiModelProperty(value = "妫�绱㈠叧閿瓧")
 	private String contentType;
 
@@ -45,7 +52,6 @@
 	private String remark;
 
 	@TableField(exist = false)
-	@ApiModelProperty(value = "闄勪欢")
-	private OssDto files;
+	private MultipartFile file;
 
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/service/SysPictureBaseService.java b/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/service/SysPictureBaseService.java
index aa249bb..b8aeb12 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/service/SysPictureBaseService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/sysPictureBase/service/SysPictureBaseService.java
@@ -30,9 +30,6 @@
      */
     public List<SysPictureBase> page(QueryFilter queryFilter) {
         List<SysPictureBase> list = baseDao.getList(queryFilter.getQueryParams());
-        if (list != null && list.size() > 0) {
-            sysOssService.setListOsses(list, "sys_picture");
-        }
         return list;
     }
 
diff --git a/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml b/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
index eb31c85..94f638d 100644
--- a/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
@@ -47,8 +47,8 @@
                a.`NAME`                    as imgName,
                'node'                      as nodeType,
                ''                          as nodeTypeExt,
-               60                          as imgWidth,
-               60                          as imgHeight,
+               s.width                          as imgWidth,
+               s.height                          as imgHeight,
                a.id                        as dataId,
                ''                          as statusImg,
                d.dict_code                 as productType,
@@ -61,16 +61,15 @@
         FROM product_model a
                  left join sys_dict_data d on d.DICT_VALUE = a.product_type and dict_type_id = '1728965873022050306'
                  left join param_data p on p.product_id = a.id and p.page_code = 'expect'
+                 left join sys_picture_base s on s.id = a.default_img
         WHERE a.is_delete = 0
           AND a.PID = ${productId}
 
     </select>
     <select id="getDefaultImg" resultType="java.lang.String">
-        SELECT b.id
+        SELECT a.id
         FROM sys_picture_base a
-                 LEFT JOIN sys_oss b ON a.id = b.BUSI_ID
         WHERE a.IS_DELETE = 0
-          AND b.IS_DELETE = 0
           AND a.CONTENT_TYPE = '榛樿璁惧'
     </select>
 </mapper>
diff --git a/starter/src/main/resources/application.yml b/starter/src/main/resources/application.yml
index 63dcfee..c7c08a4 100644
--- a/starter/src/main/resources/application.yml
+++ b/starter/src/main/resources/application.yml
@@ -121,7 +121,7 @@
   oss:
     type: local
     local-domain: http://127.0.0.1:8050/test-project/
-    local-path: D:/TestProjectFiles/ #闄勪欢瀛樺偍鐩綍
+    local-path: D:/ReliabilitySimulation/ #闄勪欢瀛樺偍鐩綍
     local-qd-path: D:/TestProjectFiles/ #闄勪欢瀛樺偍鐩綍
     local-prefix: accessories #闄勪欢瀛樺偍瀛愮洰褰�
     local-area: sy
diff --git a/web/public/scale/bottom.jpg b/web/public/scale/bottom.jpg
deleted file mode 100644
index 2571d23..0000000
--- a/web/public/scale/bottom.jpg
+++ /dev/null
Binary files differ
diff --git a/web/public/scale/center.jpg b/web/public/scale/center.jpg
deleted file mode 100644
index 3d137ea..0000000
--- a/web/public/scale/center.jpg
+++ /dev/null
Binary files differ
diff --git a/web/public/scale/left.jpg b/web/public/scale/left.jpg
deleted file mode 100644
index 2c63ec0..0000000
--- a/web/public/scale/left.jpg
+++ /dev/null
Binary files differ
diff --git a/web/public/scale/right.jpg b/web/public/scale/right.jpg
deleted file mode 100644
index 2228226..0000000
--- a/web/public/scale/right.jpg
+++ /dev/null
Binary files differ
diff --git a/web/public/scale/top.jpg b/web/public/scale/top.jpg
deleted file mode 100644
index f26f42d..0000000
--- a/web/public/scale/top.jpg
+++ /dev/null
Binary files differ
diff --git a/web/src/views/modules/basicInfo/XhProductModel.vue b/web/src/views/modules/basicInfo/XhProductModel.vue
index df952b4..298433d 100644
--- a/web/src/views/modules/basicInfo/XhProductModel.vue
+++ b/web/src/views/modules/basicInfo/XhProductModel.vue
@@ -71,7 +71,7 @@
           productType: '',
           type:'',
           pid: '',
-          srcId:''
+          srcId:'',
         }
       }
     },
diff --git a/web/src/views/modules/sysPictureBase/SysPictureBase-AddOrUpdate.vue b/web/src/views/modules/sysPictureBase/SysPictureBase-AddOrUpdate.vue
index 09ca888..49b5bed 100644
--- a/web/src/views/modules/sysPictureBase/SysPictureBase-AddOrUpdate.vue
+++ b/web/src/views/modules/sysPictureBase/SysPictureBase-AddOrUpdate.vue
@@ -10,19 +10,24 @@
       <zt-form-item label="鍥剧墖鍚嶇О" prop="name" rules="required">
         <el-input v-model="dataForm.name"></el-input>
       </zt-form-item>
-      <zt-form-item label="妫�绱㈠叧閿瓧" prop="contentType" >
+      <zt-form-item label="妫�绱㈠叧閿瓧" prop="contentType">
         <el-input v-model="dataForm.contentType"></el-input>
       </zt-form-item>
-      <zt-form-item label="绯荤粺鏍囪瘑" prop="systemMark" rules="required">
+      <zt-form-item label="绯荤粺鏍囪瘑" prop="systemMark">
         <zt-dict v-model="dataForm.systemMark" dict="product"></zt-dict>
       </zt-form-item>
       <zt-form-item label="鎺掑簭" prop="sortNo">
-        <el-input v-model="dataForm.sortNo"  :readonly="readonly" @input=""></el-input>
+        <el-input v-model="dataForm.sortNo" :readonly="readonly" @input=""></el-input>
       </zt-form-item>
+
       <div class="el-flex img-src" style="height: 20px">
         <el-form-item class="marginTopAndMarginBottom" style="width: 100%">
-          <config-uploader :lineHeight="true" busi-type="sys_picture" model-name="dataForm" :dataForm="dataForm"
-                           v-model="dataForm.files"/>
+          <!--<config-uploader :lineHeight="true" busi-type="sys_picture" model-name="dataForm" :dataForm="dataForm"
+                           v-model="dataForm.files"/>-->
+          <el-upload :limit="1" :http-request="httpRequest" :before-upload="beforeUpload" :on-exceed="handleExceed">
+            <el-button slot="trigger" size="small" type="primary">閫夊彇鏂囦欢</el-button>
+          </el-upload>
+          <el-image v-if="dataForm.id" :src="url+dataForm.id" style="height: 50px;width: 50px"></el-image>
         </el-form-item>
       </div>
     </el-form>
@@ -30,9 +35,13 @@
 </template>
 
 <script>
+  import Cookies from "js-cookie";
+
   export default {
     data() {
       return {
+        url: `${window.SITE_CONFIG['apiURL']}/sysPictureBase/getProductImg?token=${Cookies.get('token')}&id=`,
+        fileList: [],
         dataForm: {
           id: '',
           type: '',
@@ -43,24 +52,59 @@
           sortNo: '',
           remark: ''
         },
-        readonly:{
+        readonly: {
           type: Boolean,
           default: false
         },
       }
     },
     methods: {
+      httpRequest(option) {
+        this.fileList.length = 0
+        this.fileList.push(option)
+      },
+      // 涓婁紶鍓嶅鐞�
+      beforeUpload(file) {
+        let fileSize = file.size
+        const FIVE_M = 5 * 1024 * 1024;
+        //澶т簬5M锛屼笉鍏佽涓婁紶
+        if (fileSize > FIVE_M) {
+          this.$message.error("鏈�澶т笂浼�5M")
+          return false
+        }
+      },
+      // 鏂囦欢鏁伴噺杩囧鏃舵彁閱�
+      handleExceed() {
+        this.$message({type: 'error', message: '鏈�澶氭敮鎸�1涓檮浠朵笂浼�'})
+      },
       // 鑾峰彇淇℃伅
       async getInfo() {
-        let res = await this.$http.get(`/sysPictureBase/SysPictureBase/${this.dataForm.id}`)
+        let res = await this.$http.get(`/sysPictureBase/${this.dataForm.id}`)
         this.dataForm = {
           ...this.dataForm,
           ...res.data
         }
+        console.log(this.dataForm, 'async getInfo()')
       },
       // 琛ㄥ崟鎻愪氦
       async formSubmit() {
-        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/sysPictureBase/SysPictureBase/', this.dataForm)
+        console.log(this.dataForm, 'async formSubmit()')
+        // 浣跨敤form琛ㄥ崟鐨勬暟鎹牸寮�
+        const params = new FormData()
+        // 灏嗕笂浼犳枃浠舵暟缁勪緷娆℃坊鍔犲埌鍙傛暟paramsData涓�
+        this.fileList.forEach((x) => {
+          params.append('file', x.file)
+        });
+        // 灏嗚緭鍏ヨ〃鍗曟暟鎹坊鍔犲埌params琛ㄥ崟涓�
+        params.append('id', this.dataForm.id)
+        params.append('type', this.dataForm.type)
+        params.append('subType', this.dataForm.subType)
+        params.append('name', this.dataForm.name)
+        params.append('contentType', this.dataForm.contentType)
+        params.append('systemMark', this.dataForm.systemMark)
+        params.append('sortNo', this.dataForm.sortNo)
+        console.log(params, 'async formSubmit()')
+        let res = await this.$http.post('/sysPictureBase/save', params)
         if (res.success) {
           await this.$tip.success()
           this.$refs.dialog.close()
@@ -74,7 +118,8 @@
   .img-sc > .el-form-item > .el-form-item__content {
     width: 100%;
   }
-   .marginTopAndMarginBottom {
+
+  .marginTopAndMarginBottom {
     margin-top: 10px !important;
     margin-bottom: 0 !important;
   }
diff --git a/web/src/views/modules/sysPictureBase/SysPictureBase.vue b/web/src/views/modules/sysPictureBase/SysPictureBase.vue
index 7c8195e..5dfca12 100644
--- a/web/src/views/modules/sysPictureBase/SysPictureBase.vue
+++ b/web/src/views/modules/sysPictureBase/SysPictureBase.vue
@@ -1,7 +1,7 @@
 <template>
   <el-card shadow="never" class="aui-card--fill">
     <div class="mod-sysPictureBase-sysPictureBase}">
-      <zt-table-wraper query-url="/sysPictureBase/SysPictureBase/page" delete-url="/sysPictureBase/SysPictureBase/"
+      <zt-table-wraper query-url="/sysPictureBase/page" delete-url="/sysPictureBase/"
                        v-slot="{ table }">
         <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
           <el-form-item>
@@ -13,8 +13,8 @@
           </el-form-item>
           <el-form-item>
             <zt-button type="query" @click="table.query()"/>
-            <zt-button type="add"  @click="table.editHandle()"/>
-            <zt-button type="delete"  @click="table.deleteHandle()"/>
+            <zt-button type="add" @click="table.editHandle()"/>
+            <zt-button type="delete" @click="table.deleteHandle()"/>
           </el-form-item>
         </el-form>
         <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}"
@@ -24,8 +24,8 @@
           <el-table-column prop="name" label="鍥剧墖鍚嶇О"/>
           <el-table-column label="鍥剧墖" align="center">
             <template v-slot="{ row }">
-              <el-image v-if="row.accessoryMap" :src="getPath(row)" style="height: 50px;width: 50px"></el-image>
-            </template >
+              <el-image v-if="row.id" :src="url+row.id" style="height: 50px;width: 50px"></el-image>
+            </template>
           </el-table-column>
           <el-table-column prop="contentType" label="妫�绱㈠叧閿瓧"/>
           <zt-table-column-dict prop="systemMark" label="绯荤粺鏍囪瘑" dict="product"/>
@@ -41,31 +41,24 @@
 
 <script>
   import AddOrUpdate from './SysPictureBase-AddOrUpdate'
+  import Cookies from 'js-cookie'
 
   export default {
     data() {
       return {
+        url: `${window.SITE_CONFIG['apiURL']}/sysPictureBase/getProductImg?token=${Cookies.get('token')}&id=`,
         dataForm: {
           contentType: '',
           systemMark: '',
-          sortNo:''
+          sortNo: ''
         },
       }
     },
     components: {
       AddOrUpdate
     },
-    methods: {
-      getPath(row) {
-          if (row.accessoryMap){
-            for (let key in row.accessoryMap) {
-              return key
-            }
-          }
-      },
-      indexFormat(index) {
-        return index += 1
-      },
-    }
+    mounted() {
+    },
+    methods: {}
   }
 </script>
diff --git a/web/src/views/modules/taskReliability/RBD-edit-img.vue b/web/src/views/modules/taskReliability/RBD-edit-img.vue
index e0698fb..b3fe5d6 100644
--- a/web/src/views/modules/taskReliability/RBD-edit-img.vue
+++ b/web/src/views/modules/taskReliability/RBD-edit-img.vue
@@ -14,52 +14,52 @@
             <el-form-item>
               妯″瀷鍚嶇О锛歿{modelName}}
             </el-form-item>
-              <el-form-item>
-                  <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-form-item>
             <el-form-item>
-                <el-tooltip class="item" effect="dark" content="宸﹀榻�" placement="left">
-                  <el-button class="" style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF;"
-                             @click="leftAlign()"><i style="font-size: 2rem;"
-                                                     class="wt-iconfont icon-zuoduiqi"></i></el-button>
-                </el-tooltip>
+              <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-form-item>
             <el-form-item>
-                <el-tooltip class="item" effect="dark" content="灞呬腑瀵归綈" placement="left">
-                  <el-button style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF"
-                             @click="centerAlign()"><i style="font-size: 2rem;"
-                                                       class="wt-iconfont icon-chuizhiduiqi"></i></el-button>
-                </el-tooltip>
+              <el-tooltip class="item" effect="dark" content="宸﹀榻�" placement="left">
+                <el-button class="" style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF;"
+                           @click="leftAlign()"><i style="font-size: 2rem;"
+                                                   class="wt-iconfont icon-zuoduiqi"></i></el-button>
+              </el-tooltip>
             </el-form-item>
             <el-form-item>
-                <el-tooltip class="item" effect="dark" content="鍙冲榻�" placement="left">
-                  <el-button style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF"
-                             @click="rightAlign()"><i style="font-size: 2rem;"
-                                                      class="wt-iconfont icon-youduiqi"></i></el-button>
-                </el-tooltip>
+              <el-tooltip class="item" effect="dark" content="灞呬腑瀵归綈" placement="left">
+                <el-button style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF"
+                           @click="centerAlign()"><i style="font-size: 2rem;"
+                                                     class="wt-iconfont icon-chuizhiduiqi"></i></el-button>
+              </el-tooltip>
             </el-form-item>
             <el-form-item>
-                <el-tooltip class="item" effect="dark" content="椤堕儴瀵归綈" placement="left">
-                  <el-button style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF"
-                             @click="topAlign()"><i style="font-size: 2rem;"
-                                                    class="wt-iconfont icon-dingduiqi"></i></el-button>
-                </el-tooltip>
+              <el-tooltip class="item" effect="dark" content="鍙冲榻�" placement="left">
+                <el-button style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF"
+                           @click="rightAlign()"><i style="font-size: 2rem;"
+                                                    class="wt-iconfont icon-youduiqi"></i></el-button>
+              </el-tooltip>
             </el-form-item>
             <el-form-item>
-                <el-tooltip class="item" effect="dark" content="姘村钩瀵归綈" placement="left">
-                  <el-button style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF"
-                             @click="shuipingAlign()"><i style="font-size: 2rem;"
-                                                         class="wt-iconfont icon-shuipingduiqi"></i></el-button>
-                </el-tooltip>
+              <el-tooltip class="item" effect="dark" content="椤堕儴瀵归綈" placement="left">
+                <el-button style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF"
+                           @click="topAlign()"><i style="font-size: 2rem;"
+                                                  class="wt-iconfont icon-dingduiqi"></i></el-button>
+              </el-tooltip>
             </el-form-item>
             <el-form-item>
-                <el-tooltip class="item" effect="dark" content="搴曢儴瀵归綈" placement="left">
-                  <el-button style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF"
-                             @click="bottomAlign()"><i style="font-size: 2rem;"
-                                                       class="wt-iconfont icon-diduiqi"></i></el-button>
-                </el-tooltip>
+              <el-tooltip class="item" effect="dark" content="姘村钩瀵归綈" placement="left">
+                <el-button style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF"
+                           @click="shuipingAlign()"><i style="font-size: 2rem;"
+                                                       class="wt-iconfont icon-shuipingduiqi"></i></el-button>
+              </el-tooltip>
+            </el-form-item>
+            <el-form-item>
+              <el-tooltip class="item" effect="dark" content="搴曢儴瀵归綈" placement="left">
+                <el-button style="margin-left: 0;padding: 2px;border: 1px solid #5F95FF"
+                           @click="bottomAlign()"><i style="font-size: 2rem;"
+                                                     class="wt-iconfont icon-diduiqi"></i></el-button>
+              </el-tooltip>
             </el-form-item>
           </el-form>
           <div id="containerImg" style="border: 1px solid #EAEBEE;border-radius: 6px;
@@ -83,6 +83,7 @@
   import ConfigEdge from './ConfigEdge/index.vue'
   import {removeCurrentTabHandle} from '@/commonJS/common'
   import {setHartBeat} from '@/commonJS/common';
+  import Cookies from 'js-cookie'
 
   export default {
     name: 'RBD-edit-img',
@@ -112,21 +113,37 @@
       return {
         modelId: '',
         modelName: '',
-        modelType:'',
+        modelType: '',
         timer: null,
-        imgsList:[
-          {imgPath:'start',imgName:'start',nodeType:'start',imgWidth:60,imgHeight:60,imgId:'1',data:{}},
-          {imgPath:'end',imgName:'end',nodeType:'end',imgWidth:60,imgHeight:60,imgId:'2',data:{}},
-          {imgPath:'connect',imgName:'connect',nodeType:'connect',imgWidth:20,imgHeight:20,imgId:'3',data:{}},
+        imgsList: [
+          {imgPath: 'start', imgName: 'start', nodeType: 'start', imgWidth: 60, imgHeight: 60, imgId: '1', data: {}},
+          {imgPath: 'end', imgName: 'end', nodeType: 'end', imgWidth: 60, imgHeight: 60, imgId: '2', data: {}},
+          {
+            imgPath: 'connect',
+            imgName: 'connect',
+            nodeType: 'connect',
+            imgWidth: 20,
+            imgHeight: 20,
+            imgId: '3',
+            data: {}
+          },
           // {imgPath:'parallelLeft',imgName:'parallelLeft',nodeType:'parallelLeft',imgWidth:60,imgHeight:60,imgId:'3',data:{}},
           // {imgPath:'parallelRight',imgName:'parallel',nodeType:'parallel',imgWidth:60,imgHeight:60,imgId:'4',data:{}},
-          {imgPath:'switchRight',imgName:'switch',nodeType:'switch',imgWidth:60,imgHeight:60,imgId:'5',data:{}},
-          {imgPath:'voteRight',imgName:'vote',nodeType:'vote',imgWidth:60,imgHeight:60,imgId:'6',data:{}},
+          {
+            imgPath: 'switchRight',
+            imgName: 'switch',
+            nodeType: 'switch',
+            imgWidth: 60,
+            imgHeight: 60,
+            imgId: '5',
+            data: {}
+          },
+          {imgPath: 'voteRight', imgName: 'vote', nodeType: 'vote', imgWidth: 60, imgHeight: 60, imgId: '6', data: {}},
         ],
-        imgsList2:[
-         // {imgPath:'logo',imgName:'logo',nodeType:'node',,nodeTypeExt:'',productType:'',statusImg:'',imgWidth:60,imgHeight:60,imgId:'100',dataId:'123456'},
+        imgsList2: [
+          // {imgPath:'logo',imgName:'logo',nodeType:'node',,nodeTypeExt:'',productType:'',statusImg:'',imgWidth:60,imgHeight:60,imgId:'100',dataId:'123456'},
         ],
-        nodeType:'',
+        nodeType: '',
         first: true,
         shape: '',
         projectList: [],
@@ -167,17 +184,17 @@
         id: '',
         graph: null,
         globalGridAttr: {
-          voteSum:'',
-          repairMttcr:'',
-          repairMttcrOther:'',
-          repairDistribType:'',
-          reliabDistribType:'',
-          taskMtbcfOther:'',
-          isRepair:0,
-          taskMtbcf:'',
-          numberInputValue:'',
-          statusImg:'',
-          nodeTypeExt:'',
+          voteSum: '',
+          repairMttcr: '',
+          repairMttcrOther: '',
+          repairDistribType: '',
+          reliabDistribType: '',
+          taskMtbcfOther: '',
+          isRepair: 0,
+          taskMtbcf: '',
+          numberInputValue: '',
+          statusImg: '',
+          nodeTypeExt: '',
           type: 'mesh',
           size: 10,
           color: '#e5e5e5',
@@ -213,7 +230,7 @@
         },
         isReady: false,
         curCel: Cell,
-        left_p: document.documentElement.clientHeight-100,
+        left_p: document.documentElement.clientHeight - 100,
         ports: {
           groups: {
             top: {
@@ -308,32 +325,32 @@
       this.type = 'grid'
     },
     methods: {
-      init(row){
+      init(row) {
         this.modelName = row.modelName
         this.dataForm.id = row.id
         // this.productId = row.productId
         // this.getProduct(row.productId)
         this.initDigram(row.productId)
-        console.log(this.dataForm,'init(row){')
+        console.log(this.dataForm, 'init(row){')
       },
       async getDiagram(modelId) {
         let params = {
-          modelId : modelId
+          modelId: modelId
         }
-          let res = await this.$http.get(`/taskReliability/ModelLine/getDiagram`, {params: params})
-        console.log(res,'async getDiagram( res')
+        let res = await this.$http.get(`/taskReliability/ModelLine/getDiagram`, {params: params})
+        console.log(res, 'async getDiagram( res')
         if (res.data !== null && res.data.content != null) {
-            this.dataForm = res.data
-            console.log(this.dataForm, 'this.dataForm in getDiagram')
-            this.diagramJson = JSON.parse(this.dataForm.content)
-            // console.log(this.dataForm.content,'this.Diagram content')
-            console.log(this.diagramJson, 'this.Diagram json')
-            this.graph.fromJSON(this.diagramJson)
-            this.graph.centerContent()
-            this.graph.zoomToFit()
-          } else {
-            await this.clearDiagram()
-          }
+          this.dataForm = res.data
+          console.log(this.dataForm, 'this.dataForm in getDiagram')
+          this.diagramJson = JSON.parse(this.dataForm.content)
+          // console.log(this.dataForm.content,'this.Diagram content')
+          console.log(this.diagramJson, 'this.Diagram json')
+          this.graph.fromJSON(this.diagramJson)
+          this.graph.centerContent()
+          this.graph.zoomToFit()
+        } else {
+          await this.clearDiagram()
+        }
       },
       async clearDiagram() {
         this.dataForm.id = null
@@ -372,8 +389,8 @@
             pageVisible: true,
             pageBreak: true,
             pannable: true,
-            minVisibleWidth:200,
-            minVisibleHeight:200,
+            minVisibleWidth: 200,
+            minVisibleHeight: 200,
             modifiers: 'shift',
           },
           // panning: {
@@ -468,6 +485,18 @@
         })
         this.graph.centerContent()
         const stencil = new Addon.Stencil({
+          getDropNode(node) {
+            let {width, height} = node.size()
+            if (node.getData().imgWidth) {
+              width = node.getData().imgWidth
+            }
+            if (node.getData().imgHeight) {
+              height = node.getData().imgHeight
+            }
+            console.log(node.getData().imgWidth, node.getData().imgHeight, 'node.size()')
+            return node.clone().size(width, height)
+          },
+        // 杩斿洖涓�涓柊鐨勮妭鐐逛綔涓哄疄闄呮斁缃埌鐢诲竷涓婄殑鑺傜偣
           title: '',
           target: this.graph,
           stencilGraphWidth: 230,
@@ -493,101 +522,101 @@
         })
         document.getElementById('stencilImg').appendChild(stencil.container)
         const imageNodes = this.imgsList.map((item) =>
-            this.graph.createNode({
-              shape: 'image',
-              imageUrl: require('/public/modelImg/'+item.imgPath+'.png'),
-              width: item.imgWidth,
-              height: item.imgHeight,
-              x: item.imgWidth,
-              y: item.imgHeight,
-              data: {
-                dataId: '',
-                nodeType: item.nodeType,
-                nodeTypeExt: ''
-              },
-              attrs: {
-                text:{
-                  text: item.imgName,
-                  fontSize: 14,
-                  style: {
-                    color: this.globalGridAttr.nodeColor
-                  },
-                  refX: 0.5,
-                  refY: '100%',
-                  refY2: 4,
-                  textAnchor: 'middle',
-                  textVerticalAnchor: 'top',
+          this.graph.createNode({
+            shape: 'image',
+            imageUrl: require('/public/modelImg/' + item.imgPath + '.png'),
+            width: item.imgWidth,
+            height: item.imgHeight,
+            x: item.imgWidth,
+            y: item.imgHeight,
+            data: {
+              dataId: '',
+              nodeType: item.nodeType,
+              nodeTypeExt: ''
+            },
+            attrs: {
+              text: {
+                text: item.imgName,
+                fontSize: 14,
+                style: {
+                  color: this.globalGridAttr.nodeColor
                 },
+                refX: 0.5,
+                refY: '100%',
+                refY2: 4,
+                textAnchor: 'middle',
+                textVerticalAnchor: 'top',
               },
-              ports: {...this.ports},
-            }),
+            },
+            ports: {...this.ports},
+          }),
         )
         let params = {
-          productId : productId
+          productId: productId
         }
         let res = await this.$http.get(`/basicInfo/XhProductModel/getProduct`, {params: params})
         this.imgsList2 = res.data
-        console.log(this.imgsList2 ,'getProduct(productId)234567890')
+        console.log(this.imgsList2, 'getProduct(productId)234567890')
         const imageNodes2 = this.imgsList2.map((item) =>
-            this.graph.createNode({
-              shape: 'image',
-              imageUrl: `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${item.imgPath}`,
-              width:item.imgWidth,
-              height:item.imgHeight,
-              x:item.imgWidth,
-              y:item.imgHeight,
-              data: {
-                isRepair:false,
-                dataId: item.dataId,
-                nodeType: item.nodeType,
-                nodeTypeExt: item.nodeTypeExt,
-                productType: item.productType,
-                statusImg:item.statusImg,
-                reliabDistribType:item.reliabDistribType,
-                repairDistribType:item.repairDistribType,
-                repairMttcr:item.repairMttcr,
-                repairMttcrOther:item.repairMttcrOther,
-                taskMtbcf:item.taskMtbcf,
-                taskMtbcfOther:item.taskMtbcfOther,
-                voteSum:'',
-              },
-              attrs: {
-                text:{
-                  text: item.imgName,
-                  fontSize: 14,
-                  style: {
-                    color: this.globalGridAttr.nodeColor
-                  },
-                  refX: 0.5,
-                  refY: '100%',
-                  refY2: 4,
-                  textAnchor: 'middle',
-                  textVerticalAnchor: 'top',
+          this.graph.createNode({
+            shape: 'image',
+            imageUrl: `${window.SITE_CONFIG['apiURL']}/sysPictureBase/getProductImg?token=${Cookies.get('token')}&id=${item.imgPath}`,
+            width: 60,
+            height: 60,
+            data: {
+              isRepair: false,
+              dataId: item.dataId,
+              nodeType: item.nodeType,
+              nodeTypeExt: item.nodeTypeExt,
+              productType: item.productType,
+              statusImg: item.statusImg,
+              reliabDistribType: item.reliabDistribType,
+              repairDistribType: item.repairDistribType,
+              repairMttcr: item.repairMttcr,
+              repairMttcrOther: item.repairMttcrOther,
+              taskMtbcf: item.taskMtbcf,
+              taskMtbcfOther: item.taskMtbcfOther,
+              voteSum: '',
+              imgHeight: item.imgHeight,
+              imgWidth: item.imgWidth
+            },
+            attrs: {
+              text: {
+                text: item.imgName,
+                fontSize: 14,
+                style: {
+                  color: this.globalGridAttr.nodeColor
                 },
+                refX: 0.5,
+                refY: '100%',
+                refY2: 4,
+                textAnchor: 'middle',
+                textVerticalAnchor: 'top',
               },
-              tools: [
-                {
-                  name: 'button',
-                  args: {
-                    markup: [
-                      {
-                        tagName: 'image',
-                        selector: 'icon',
-                        attrs: {
-                          // 'xlink:href': 'https://gw.alipayobjects.com/mdn/rms_43231b/afts/img/A*evDjT5vjkX0AAAAAAAAAAAAAARQnAQ',
-                          'xlink:href':item.statusImg,
-                          width: 30,
-                          height: 30,
-                          x: 0,
-                          y: 0
-                        }
+            },
+            tools: [
+              {
+                name: 'button',
+                args: {
+                  markup: [
+                    {
+                      tagName: 'image',
+                      selector: 'icon',
+                      attrs: {
+                        // 'xlink:href': 'https://gw.alipayobjects.com/mdn/rms_43231b/afts/img/A*evDjT5vjkX0AAAAAAAAAAAAAARQnAQ',
+                        'xlink:href': item.statusImg,
+                        width: 30,
+                        height: 30,
+                        x: 0,
+                        y: 0
                       }
-                    ]
-                  }
+                    }
+                  ]
                 }
-              ],
-              ports: {...this.ports},
-            }),
+              }
+            ],
+            ports: {...this.ports},
+          }),
         )
         stencil.load(imageNodes, 'group1')
         stencil.load(imageNodes2, 'group2')
@@ -687,7 +716,7 @@
           this.type = cell.isNode() ? 'node' : 'edge'
           this.shape = cell.shape
           this.id = cell.id
-          if(this.type==='node'){
+          if (this.type === 'node') {
             this.nodeType = cell.getData().nodeType
             console.log(this.nodeType, 'this.nodeType')
           }
@@ -994,7 +1023,7 @@
         }
       },
       close() {
-        if (this.timer){
+        if (this.timer) {
           window.clearInterval(this.timer)
         }
       },
@@ -1004,32 +1033,32 @@
 </script>
 
 <style>
-#containerImg {
-  display: flex;
-  border: 1px solid #dfe3e8;
-  height:400px ;
-  width: 100% !important;
-}
+  #containerImg {
+    display: flex;
+    border: 1px solid #dfe3e8;
+    height: 400px;
+    width: 100% !important;
+  }
 
-.x6-graph-scroller.x6-graph-scroller-pannable {
-  width: 100% !important;
-}
+  .x6-graph-scroller.x6-graph-scroller-pannable {
+    width: 100% !important;
+  }
 
-#stencilImg {
-  width: 100%;
-  height: 100%;
-  position: relative;
-  border-right: 1px solid #dfe3e8;
-}
+  #stencilImg {
+    width: 100%;
+    height: 100%;
+    position: relative;
+    border-right: 1px solid #dfe3e8;
+  }
 
-.x6-widget-stencil {
-  position: relative;
-  height: 100%;
-}
+  .x6-widget-stencil {
+    position: relative;
+    height: 100%;
+  }
 
-.x6-widget-stencil-content {
-  position: relative;
-  height: 100%;
-}
+  .x6-widget-stencil-content {
+    position: relative;
+    height: 100%;
+  }
 
 </style>

--
Gitblit v1.9.1