From a660db06773007b1be690e0674829c00a57aeb7b Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 24 十二月 2025 16:21:23 +0800
Subject: [PATCH] 订单首页流程卡新增楼层编号显示

---
 north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue |  101 ++++++++++++++++++++++++++++++--------------------
 1 files changed, 60 insertions(+), 41 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue b/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
index 1c02fe1..5e7e613 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
@@ -13,6 +13,7 @@
 import DxfParser from 'dxf-parser';
 import { Leafer, Polygon,Ellipse,Line,Path } from 'leafer-ui'
 import {round} from "xe-utils";
+import {add} from '@/utils/decimal'
 const { t } = useI18n()
 
 const router = useRouter()
@@ -23,6 +24,9 @@
 const company = companyInfo()
 const xGrid = ref()
 const trademarkLocation=ref([t('craft.upperLeft'),t('craft.upperRight'),t('craft.lowLeft'),t('craft.lowRight')])
+const qrcodeLocation=ref({})
+
+
 const gridOptions = reactive({
   loading:true,
   border:  "full",//琛ㄦ牸鍔犺竟妗�
@@ -158,7 +162,7 @@
         }
         case 'computedSize' :{
           let result = toolbarButtonClickEvent()
-          if(!result || result.cell!=='childWidth'){
+          if(!result || !(result.cell==='childWidth' || result.cell==='childHeight')){
             break
           }
           ElMessageBox.prompt('', '', {
@@ -171,8 +175,7 @@
                 const value1 = value*1
                 $grid.getTableData().visibleData.forEach((item,index) =>{
                   if(index>=result.start && index<=result.end){
-
-                    item[result.cell] = item[result.cell]*1+value1
+                    item[result.cell] =add(item[result.cell]*1,value1)
                   }
 
                 })
@@ -307,14 +310,14 @@
   xMargin:30,
   yMargin:30,
   location:[],
-  qrcode1:{
-    xMargin:10,
-    yMargin:10,
+  qr1:{
+    x:10,
+    y:10,
     location:[]
   },
-  qrcode2:{
-    xMargin:10,
-    yMargin:10,
+  qr2:{
+    x:10,
+    y:10,
     location:[]
   }
 
@@ -364,6 +367,8 @@
         if(res.data.data.file_json!=null){
           fileJson.value= JSON.parse(res.data.data.file_json)
           selectData(fileJson.value)
+        }else{
+          return
         }
         const byteCharacters = atob(b64Data);
         const parser = new DxfParser();
@@ -379,17 +384,17 @@
   trademarkVisible.value= true
   if(row.icon!=null && row.icon!==''){
     let trademark = JSON.parse(row.icon)
-    if(trademark.qrcode2 === undefined){
+    if(trademark.qr2 === undefined){
       trademark.width = null
       trademark.height = null
-      trademark.qrcode1 = {
-        xMargin:10,
-        yMargin:10,
+      trademark.qr1 = {
+        x:10,
+        y:10,
         location:t('craft.lowLeft'),
       }
-      trademark.qrcode2 = {
-        xMargin:10,
-        yMargin:10,
+      trademark.qr2 = {
+        x:10,
+        y:10,
         location:t('craft.upperRight')
       }
     }
@@ -407,14 +412,14 @@
       xMargin:30,
       yMargin:30,
       location:t('craft.lowLeft'),
-      qrcode1:{
-        xMargin:10,
-        yMargin:10,
+      qr1:{
+        x:10,
+        y:10,
         location:t('craft.lowLeft'),
       },
-      qrcode2:{
-        xMargin:10,
-        yMargin:10,
+      qr2:{
+        x:10,
+        y:10,
         location:t('craft.upperRight')
       }
     }
@@ -467,6 +472,10 @@
 //鍒濆鍖栧垽鏂槸鍚︽湁id浼犲叆
 onMounted(()=>{
   addListener(xGrid.value,gridOptions)
+  qrcodeLocation.value[t('craft.default')] = ""
+  trademarkLocation.value.forEach(item =>{
+    qrcodeLocation.value[item] = item
+  })
   const str = route.query.orderId
   if (typeof str === 'undefined' || str === null || str === '' || str === '\n' || str === '\r'){
     return
@@ -1308,7 +1317,7 @@
         :close-on-click-modal="false"
         :close-on-press-escape="false"
         @closed="handleClosed"
-        style="width: 922px;height:750px;margin-top: 100px ;
+        style="width: 1122px;height:750px;margin-top: 100px ;
         position: relative;" >
       <div style="width: 50%;height: 100%;float: left">
         <el-row style="">
@@ -1386,14 +1395,19 @@
         <el-row>
           <el-col :span="5">{{$t('craft.qr1Local')}}:</el-col>
           <el-col :span="25">
-            <el-radio v-model="trademarkAttr.qrcode1.location" v-for="item in trademarkLocation" :label="item"  />
+            <el-radio v-model="trademarkAttr.qr1.location"
+                      v-for="(item,keys) in qrcodeLocation"
+                      :value="item"
+            >
+              {{keys}}
+            </el-radio>
           </el-col>
         </el-row>
 
         <el-row>
           <el-col :span="5">X:</el-col>
           <el-col :span="6">
-            <el-input-number v-model="trademarkAttr.qrcode1.xMargin"/>
+            <el-input-number v-model="trademarkAttr.qr1.x"/>
           </el-col>
         </el-row>
 
@@ -1402,7 +1416,7 @@
         <el-row>
           <el-col :span="5">Y:</el-col>
           <el-col :span="6">
-            <el-input-number v-model="trademarkAttr.qrcode1.yMargin"/>
+            <el-input-number v-model="trademarkAttr.qr1.y"/>
           </el-col>
         </el-row>
 <!--浜岀淮鐮�2-->
@@ -1419,14 +1433,19 @@
         <el-row>
           <el-col :span="5">{{$t('craft.qr2Local')}}:</el-col>
           <el-col :span="25">
-            <el-radio v-model="trademarkAttr.qrcode2.location" v-for="item in trademarkLocation" :label="item"  />
+            <el-radio v-model="trademarkAttr.qr2.location"
+                      v-for="(item,keys) in qrcodeLocation"
+                      :value="item"
+            >
+              {{keys}}
+            </el-radio>
           </el-col>
         </el-row>
 
         <el-row>
           <el-col :span="5">X:</el-col>
           <el-col :span="6">
-            <el-input-number v-model="trademarkAttr.qrcode2.xMargin"/>
+            <el-input-number v-model="trademarkAttr.qr2.x"/>
           </el-col>
         </el-row>
 
@@ -1435,7 +1454,7 @@
         <el-row>
           <el-col :span="5">Y:</el-col>
           <el-col :span="6">
-            <el-input-number v-model="trademarkAttr.qrcode2.yMargin"/>
+            <el-input-number v-model="trademarkAttr.qr2.y"/>
           </el-col>
         </el-row>
 
@@ -1451,7 +1470,7 @@
       position: relative;display: flex;justify-content: center;align-content: center;">
 
           <div id="mains" ref="parent"  >
-            <div id="iocn" ref="draggable"
+            <div id="icon" ref="draggable"
                 v-if="tagCheck(t('craft.upperLeft'))"
                 :style="{marginLeft:trademarkAttr.xMargin/big+'px',marginTop:trademarkAttr.yMargin/big+'px'}"
                 style="width: 20px;height: 20px;left: 0;top: 0;background-color: red;position: absolute;"
@@ -1459,13 +1478,13 @@
             >
               <el-image @dblclick="trademarkenlargement" style="width: 100%;height: 100%"   :src="iconNickname"/>
             </div>
-            <div id="iocn" ref="draggable" v-if="tagCheck(t('craft.upperRight'))"  @mousedown="startDragUpperRight" :style="{marginRight:trademarkAttr.xMargin/big+'px',marginTop:trademarkAttr.yMargin/big+'px'}" style="width: 20px;height: 20px;right: 0;top: 0;background-color: red;position: absolute;">
+            <div id="icon" ref="draggable" v-if="tagCheck(t('craft.upperRight'))"  @mousedown="startDragUpperRight" :style="{marginRight:trademarkAttr.xMargin/big+'px',marginTop:trademarkAttr.yMargin/big+'px'}" style="width: 20px;height: 20px;right: 0;top: 0;background-color: red;position: absolute;">
               <el-image @dblclick="trademarkenlargement" style="width: 100%;height: 100%"   :src="iconNickname"/>
             </div>
-            <div id="iocn" ref="draggable" v-if="tagCheck(t('craft.lowLeft'))" @mousedown="startDragLowLeft" :style="{marginLeft:trademarkAttr.xMargin/big+'px',marginBottom:trademarkAttr.yMargin/big+'px'}" style="width: 20px;height: 20px;left: 0;bottom: 0;background-color: red;position: absolute;">
+            <div id="icon" ref="draggable" v-if="tagCheck(t('craft.lowLeft'))" @mousedown="startDragLowLeft" :style="{marginLeft:trademarkAttr.xMargin/big+'px',marginBottom:trademarkAttr.yMargin/big+'px'}" style="width: 20px;height: 20px;left: 0;bottom: 0;background-color: red;position: absolute;">
               <el-image @dblclick="trademarkenlargement" style="width: 100%;height: 100%"   :src="iconNickname"/>
             </div>
-            <div id="iocn" ref="draggable" v-if="tagCheck(t('craft.lowRight'))" @mousedown="startDragLowRight" :style="{marginRight:trademarkAttr.xMargin/big+'px',marginBottom:trademarkAttr.yMargin/big+'px'}" style="width: 20px;height: 20px;right: 0;bottom: 0;background-color: red;position: absolute;">
+            <div id="icon" ref="draggable" v-if="tagCheck(t('craft.lowRight'))" @mousedown="startDragLowRight" :style="{marginRight:trademarkAttr.xMargin/big+'px',marginBottom:trademarkAttr.yMargin/big+'px'}" style="width: 20px;height: 20px;right: 0;bottom: 0;background-color: red;position: absolute;">
               <el-image @dblclick="trademarkenlargement" style="width: 100%;height: 100%"   :src="iconNickname"/>
             </div>
            <canvas  id="canvas" ></canvas>
@@ -1473,8 +1492,8 @@
 
 
       </div>
-      <div id="width" style="height: 20px;position: absolute;top: 33px;left: 652px;">{{orderDetailWidth}}</div>
-      <div id="height" style="width: 60px;position: absolute;top: 178px;left: 390px;">{{orderDetailHeight}}</div>
+      <div id="width" style="height: 20px;position: absolute;top: 33px;left: 752px;">{{orderDetailWidth}}</div>
+      <div id="height" style="width: 60px;position: absolute;top: 178px;right: 100px;">{{orderDetailHeight}}</div>
       <div style="float: left;margin-top: 20px;margin-left: 80px">
         <el-input class="contactNumber" @blur="getproject" type="text" v-model="data1" />
         <el-input class="contactNumber" @blur="getproject" type="text" v-model="data2"  />&nbsp;&nbsp;&nbsp;
@@ -1485,12 +1504,12 @@
         <el-input class="contactNumber" @blur="getproject" type="text" v-model="data7"  />
         <el-input class="contactNumber" @blur="getproject" type="text" v-model="data8"  /><br>
       </div>
-      <div id="width" style="height: 20px;position: absolute;top: 332px;left: 520px;">{{$t('order.upper')}}</div>
-      <div id="width" style="height: 20px;position: absolute;top: 354px;left: 520px;">{{$t('order.down')}}</div>
-      <div id="width" style="height: 20px;position: absolute;top: 312px;left: 562px;">{{$t('order.horizontal')}}</div>
-      <div id="width" style="height: 20px;position: absolute;top: 312px;left: 625px;">{{$t('order.vertical')}}</div>
-      <div id="width" style="height: 20px;position: absolute;top: 312px;left: 695px;">{{$t('order.horizontal')}}</div>
-      <div id="width" style="height: 20px;position: absolute;top: 312px;left: 760px;">{{$t('order.vertical')}}</div>
+      <div id="width" style="height: 20px;position: absolute;top: 332px;left: 520px;margin-left: 80px">{{$t('order.upper')}}</div>
+      <div id="width" style="height: 20px;position: absolute;top: 354px;left: 520px;margin-left: 80px">{{$t('order.down')}}</div>
+      <div id="width" style="height: 20px;position: absolute;top: 312px;left: 562px;margin-left: 80px">{{$t('order.horizontal')}}</div>
+      <div id="width" style="height: 20px;position: absolute;top: 312px;left: 625px;margin-left: 80px">{{$t('order.vertical')}}</div>
+      <div id="width" style="height: 20px;position: absolute;top: 312px;left: 695px;margin-left: 80px">{{$t('order.horizontal')}}</div>
+      <div id="width" style="height: 20px;position: absolute;top: 312px;left: 760px;margin-left: 80px">{{$t('order.vertical')}}</div>
       <div v-if="enlargementFlag" style="width: 400px;height: 250px;float: left;position: relative;background-color: red">
         <el-image  @dblclick="trademarkenlargement" style="z-index: 9999;max-width: 100%;max-height: 100%" :src="iconNickname"/>
       </div>

--
Gitblit v1.8.0