dedsudiyu 5 月之前
父節點
當前提交
f3a1198089

+ 46 - 4
src/components/batchQrCodeDialog/batchQrCodeDialog.vue

@@ -104,7 +104,8 @@
             list.push({
               code: item.code,
               parameter: this.identification + '?code=' + item.code + '&type=' + this.batchQrCodeDialogData.type,
-              codeName: item.name
+              codeName: item.name,
+              roomName: item.roomName
             })
           })
           this.$set(this, 'codeList', list)
@@ -124,12 +125,50 @@
                 myCanvas.clearRect(0, 0, 300, 240)
                 myCanvas.fillRect(0, 0, 300, 240)
                 //绘制二维码
-                myCanvas.drawImage(img, 50, 0)
+                // myCanvas.drawImage(img, 50, 0)
+                myCanvas.drawImage(img, 50, 35)
                 //设置水印
                 myCanvas.font = 'bold 14px \'Fira Sans\''
                 myCanvas.fillStyle = 'rgba(0,0,0,1)' //水印颜色
+                myCanvas.textAlign = 'center'
                 //绘制水印
-                myCanvas.fillText(item.codeName, (300 - (item.codeName.length * 14)) / 2, 215) //左下
+                let list = [];
+                for(let i=0;i<item.codeName.length;i++){
+                  if(i == 0 || i == 15){
+                    list.push(item.codeName[i])
+                  }else{
+                    if(i<15){
+                      list[0] = list[0]+item.codeName[i];
+                    }else{
+                      list[1] = list[1]+item.codeName[i];
+                    }
+                  }
+                }
+                if(item.roomName){
+                  if(!list[1]){
+                    let name = list[0] +' ('+item.roomName+')'
+                    // myCanvas.fillText(name, (300/2), 215) //左下
+                    myCanvas.fillText(name, (300/2), 30) //左下
+                  }else{
+                    let name = list[1] +' ('+item.roomName+')'
+                    // myCanvas.fillText(list[0], (300/2), 210) //左下
+                    // myCanvas.fillText(name, (300/2), 225) //左下
+                    myCanvas.fillText(list[0], (300/2), 25) //左下
+                    myCanvas.fillText(name, (300/2), 40) //左下
+                  }
+                }else{
+                  if(!list[1]){
+                    let name = list[0]
+                    // myCanvas.fillText(name, (300/2), 215) //左下
+                    myCanvas.fillText(name, (300/2), 30) //左下
+                  }else{
+                    let name = list[1]
+                    // myCanvas.fillText(list[0], (300/2), 210) //左下
+                    // myCanvas.fillText(name, (300/2), 225) //左下
+                    myCanvas.fillText(list[0], (300/2), 25) //左下
+                    myCanvas.fillText(name, (300/2), 40) //左下
+                  }
+                }
               })
             }, 100)
           })
@@ -141,9 +180,11 @@
           let zip = new JSZip()
           this.codeList.forEach((item,index) => {
             let canvas = this.$refs['canvas' + item.code][0];
+            let name = item.roomName?item.codeName+' ('+item.roomName+')':item.codeName;
             const base64Img = canvas.toDataURL('image/png')
             // 这个images文件目录中创建一个base64数据为imgData的图像,图像名是index序号 + item.codeName实验室名称 + '.gif'
-            zip.file((index+1)+'_'+item.codeName+'.gif', base64Img.replace(/^data:image\/(png|jpg);base64,/, ""), { base64: true })
+            // zip.file((index+1)+'_'+item.codeName+'.gif', base64Img.replace(/^data:image\/(png|jpg);base64,/, ""), { base64: true })
+            zip.file((index+1)+'_'+name+'.gif', base64Img.replace(/^data:image\/(png|jpg);base64,/, ""), { base64: true })
           })
           // 把打包内容异步转成blob二进制格式
           zip.generateAsync({ type: 'blob' }).then(function(content) {
@@ -175,6 +216,7 @@
   .batch-qr-code-dialog {
     z-index: 10000;
     font-weight: 500;
+    overflow: hidden;
     .for-code-max-box {
       max-height: 500px;
       .for-code-box {

+ 3 - 1
src/views/integratedManagement/laboratoryManagement/subject/index.vue

@@ -384,9 +384,11 @@
           if(this.codeList.length>0){
             let list = [];
             this.codeList.forEach((item)=>{
+              console.log('item',item)
               list.push({
                 code:item.infoId+'&subId='+item.subId,
-                name:item.subName
+                name:item.subName,
+                roomName:item.roomName,
               })
             })
             this.$set(this,'batchQrCodeDialogData',{