소스 검색

1.新增机器设备测算表全屏功能

GouGengquan 4 달 전
부모
커밋
0d0768e46d
2개의 변경된 파일95개의 추가작업 그리고 33개의 파일을 삭제
  1. 94 32
      src/views/assets/workbench/eqpt/calculate/importInfo.vue
  2. 1 1
      src/views/assets/workbench/eqpt/calculate/index.vue

+ 94 - 32
src/views/assets/workbench/eqpt/calculate/importInfo.vue

@@ -74,6 +74,10 @@
           <Edit />
         </el-icon>批量赋值
       </el-button>
+      <el-button type="primary" style="float:right" @click="fullScreen()">
+        <span v-if="!fullBoolean">全屏</span>
+        <span v-if="fullBoolean">取消</span>
+      </el-button>
       <div class="search">
         <el-input type="number" v-model="eqptDataQuery.sortId" placeholder="请输入序号" clearable style="width: 200px;" />
         <el-input v-model="eqptDataQuery.equipmentName" placeholder="请输入设备名称" clearable style="width: 200px;margin-left: 10px;" />
@@ -101,14 +105,14 @@
         show-header-overflow
         show-footer-overflow
         ref="allTableRef"
-        height="100%"
+        height="90%"
         size="mini"
         :loading="loading"
         :column-config="{ resizable: true, maxFixedSize: 0 }"
         :edit-config="editConfig"
         :scroll-y="{ enabled: true, gt: 0 }"
       >
-        <vxe-column field="sortId" title="序号" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+        <vxe-column field="sortId" title="序号" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
         <vxe-column field="equipmentName" title="设备名称" width="160" :edit-render="{ name: 'VxeInput' }">
           <template #header>
             <span>设备名称</span>
@@ -213,7 +217,7 @@
             </el-select>
           </template>
         </vxe-column>
-        <vxe-column field="quantity" title="数量" width="160" :edit-render="{ name: 'VxeNumberInput' }">
+        <vxe-column field="quantity" title="数量" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }">
           <template #header>
             <span>数量</span>
             <span @click="getEqptTableFilter(eqptPageData, 'quantity'), autoSaveBatch()">
@@ -239,7 +243,7 @@
             </span>
           </template>
         </vxe-column>
-        <vxe-column field="bookOriginalValue" title="账面原值" width="160" :edit-render="{ name: 'VxeNumberInput' }">
+        <vxe-column field="bookOriginalValue" title="账面原值" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }">
           <template #header>
             <span>账面原值</span>
             <span @click="getEqptTableFilter(eqptPageData, 'bookOriginalValue'), autoSaveBatch()">
@@ -252,7 +256,7 @@
             </span>
           </template>
         </vxe-column>
-        <vxe-column field="bookNetValue" title="账面净值" width="160" :edit-render="{ name: 'VxeNumberInput' }">
+        <vxe-column field="bookNetValue" title="账面净值" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }">
           <template #header>
             <span>账面净值</span>
             <span @click="getEqptTableFilter(eqptPageData, 'bookNetValue'), autoSaveBatch()">
@@ -265,7 +269,7 @@
             </span>
           </template>
         </vxe-column>
-        <vxe-column field="taxedUnitPrice" title="合同/发票含税单价" width="160" :edit-render="{ name: 'VxeNumberInput' }">
+        <vxe-column field="taxedUnitPrice" title="合同/发票含税单价" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }">
           <template #header>
             <span>合同/发票含税单价</span>
             <span @click="getEqptTableFilter(eqptPageData, 'taxedUnitPrice'), autoSaveBatch()">
@@ -278,7 +282,7 @@
             </span>
           </template>
         </vxe-column>
-        <vxe-column field="taxRate" title="购置时税率%" width="160" :edit-render="{ name: 'VxeNumberInput' }">
+        <vxe-column field="taxRate" title="购置时税率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }">
           <template #header>
             <span>购置时税率%</span>
             <span @click="getEqptTableFilter(eqptPageData, 'taxRate'), autoSaveBatch()">
@@ -369,7 +373,7 @@
         </vxe-column>
         <vxe-column field="remainingUsefulLife" title="尚可使用年限" width="160" :edit-render="{}">
           <template #edit="{ $rowIndex, row }">
-            <vxe-number-input v-model="row.remainingUsefulLife" @change="countDepreciationRate(row)" placeholder="整数类型" type="integer"></vxe-number-input>
+            <vxe-number-input v-model="row.remainingUsefulLife" @change="countDepreciationRate(row)" placeholder="整数类型" type="integer" :controls="false"></vxe-number-input>
           </template>
         </vxe-column>
         <vxe-column title="年限成新率%" width="160">
@@ -385,7 +389,7 @@
             <span>{{ row.weight01 * 100 }}%</span>
           </template>
         </vxe-column>
-        <vxe-column field="directObservationDepreciationRate" title="直接观察成新率" width="160" :edit-render="{ name: 'VxeNumberInput' }">
+        <vxe-column field="directObservationDepreciationRate" title="直接观察成新率" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }">
           <template #header>
             <span>直接观察成新率</span>
             <span @click="getEqptTableFilter(eqptPageData, 'directObservationDepreciationRate'), autoSaveBatch()">
@@ -464,7 +468,7 @@
         </vxe-column>
         <vxe-column field="inquiryWeb" title="询价网址" width="160" :edit-render="{ name: 'VxeInput' }"></vxe-column>
         <vxe-column field="inquiryLocation" title="询价地点" width="160" :edit-render="{ name: 'VxeInput' }"></vxe-column>
-        <vxe-column field="price" title="询价单价" width="160" :edit-render="{ name: 'VxeNumberInput' }">
+        <vxe-column field="price" title="询价单价" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }">
           <template #header>
             <span>询价单价</span>
             <span @click="getEqptTableFilter(eqptPageData, 'price'), autoSaveBatch()">
@@ -482,7 +486,7 @@
             <span>{{ row.quotation = (row.price * row.quantity).toFixed(2) }}</span>
           </template>
         </vxe-column>
-        <vxe-column field="freightAndMiscellaneousFeeRate" title="运杂费率" width="160" :edit-render="{ name: 'VxeNumberInput' }">
+        <vxe-column field="freightAndMiscellaneousFeeRate" title="运杂费率" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }">
           <template #header>
             <span>运杂费率</span>
             <span @click="getEqptTableFilter(eqptPageData, 'freightAndMiscellaneousFeeRate'), autoSaveBatch()">
@@ -504,7 +508,7 @@
             </span>
           </template>
         </vxe-column>
-        <vxe-column field="baseRate" title="基础费率" width="160" :edit-render="{ name: 'VxeNumberInput' }">
+        <vxe-column field="baseRate" title="基础费率" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }">
           <template #header>
             <span>基础费率</span>
             <span @click="getEqptTableFilter(eqptPageData, 'baseRate'), autoSaveBatch()">
@@ -522,7 +526,7 @@
             <span>{{ row.baseFee = (row.quotation * row.baseRate / 100).toFixed(0) }}</span>
           </template>
         </vxe-column>
-        <vxe-column field="installationRate" title="安装费率" width="160" :edit-render="{ name: 'VxeNumberInput' }">
+        <vxe-column field="installationRate" title="安装费率" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }">
           <template #header>
             <span>安装费率</span>
             <span @click="getEqptTableFilter(eqptPageData, 'installationRate'), autoSaveBatch()">
@@ -681,10 +685,10 @@
             </el-select>
           </template>
         </vxe-column>
-        <vxe-column field="contractAmount" title="合同金额" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+        <vxe-column field="contractAmount" title="合同金额" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
         <vxe-column field="contractSigningDate" title="合同签订日期" width="160" :edit-render="dateEditRender"></vxe-column>
         <vxe-column field="destinationPort" title="到岸港口" width="160" :edit-render="{ name: 'VxeInput' }"></vxe-column>
-        <vxe-column field="ppi" title="价格指数" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+        <vxe-column field="ppi" title="价格指数" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
         <vxe-column field="pricingBasis" title="取价依据" width="160" :edit-render="{ name: 'VxeInput' }"></vxe-column>
         <vxe-column field="purchasePrice" title="购置价(CIF到岸价)" width="160">
           <template #default="{ row }">
@@ -695,14 +699,14 @@
           </template>
         </vxe-column>
         <vxe-colgroup title="(CIF到岸价)折人民币">
-          <vxe-column field="centralParityRate" title="基准日汇率中间价" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+          <vxe-column field="centralParityRate" title="基准日汇率中间价" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
           <vxe-column field="CIFLandedPrice" title="(CIF到岸价)折人民币" width="160">
             <template #default="{ row }">
               <span>{{ row.CIFLandedPrice = (row.purchasePrice * row.centralParityRate).toFixed(0) }}</span>
             </template>
           </vxe-column>
         </vxe-colgroup>
-        <vxe-column field="tariffRate" title="关税税率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+        <vxe-column field="tariffRate" title="关税税率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
         <vxe-column field="tariffRatePicture" title="关税税率截图" width="160" :edit-render="{}">
           <template #edit="{ row, $rowIndex }">
             <el-input v-model="row.tariffRatePicture" placeholder="粘贴关税税率截图" @paste.native="(e) => { return imagePaste(e, row, 'tariffRatePicture'); }" />
@@ -713,7 +717,7 @@
             <span>{{ row.tariff = (row.CIFLandedPrice * (row.tariffRate / 100)).toFixed(2) }}</span>
           </template>
         </vxe-column>
-        <vxe-column field="importVATRate" title="进口增值税率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+        <vxe-column field="importVATRate" title="进口增值税率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
         <vxe-column field="importVAT" title="进口增值税(元)" width="160">
           <template #default="{ row }">
             <span>
@@ -731,13 +735,13 @@
             </span>
           </template>
         </vxe-column>
-        <vxe-column field="bankChargesRate" title="银行财务费率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+        <vxe-column field="bankChargesRate" title="银行财务费率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
         <vxe-column field="bankCharges" title="银行财务费(元)" width="160">
           <template #default="{ row }">
             <span>{{ row.bankCharges = (row.CIFLandedPrice * (row.bankChargesRate / 100)).toFixed(2) }}</span>
           </template>
         </vxe-column>
-        <vxe-column field="foreignTransactionRate" title="外贸手续费率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+        <vxe-column field="foreignTransactionRate" title="外贸手续费率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
         <vxe-column field="foreignTransaction" title="外贸手续费(元)" width="160">
           <template #default="{ row }">
             <span>
@@ -851,13 +855,13 @@
         <vxe-column field="inquiryBasis" title="价格来源" width="160"></vxe-column>
         <vxe-column field="inquiryLocation" title="询价地点" width="160"></vxe-column>
         <vxe-column field="material1" title="主材1" width="160" :edit-render="{ name: 'VxeInput' }"></vxe-column>
-        <vxe-column field="material1Quantity" title="主材1用量(吨/方)" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
-        <vxe-column field="material1UseRatio" title="主材1利用率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
-        <vxe-column field="material1Price" title="主材1单价(元/(吨/方))" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+        <vxe-column field="material1Quantity" title="主材1用量(吨/方)" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
+        <vxe-column field="material1UseRatio" title="主材1利用率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
+        <vxe-column field="material1Price" title="主材1单价(元/(吨/方))" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
         <vxe-column field="material2" title="主材2(没有填 无)" width="160" :edit-render="{ name: 'VxeInput' }"></vxe-column>
-        <vxe-column field="material2Quantity" title="主材2用量(吨/方)" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
-        <vxe-column field="material2UseRatio" title="主材2利用率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
-        <vxe-column field="material2Price" title="主材2单价(元/(吨/方))" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+        <vxe-column field="material2Quantity" title="主材2用量(吨/方)" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
+        <vxe-column field="material2UseRatio" title="主材2利用率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
+        <vxe-column field="material2Price" title="主材2单价(元/(吨/方))" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
         <vxe-column field="mainMaterialCost" title="主材费/设备报价(含税不含运费不含安装调试费)" width="160">
           <template #default="{ row }">
             <span>
@@ -871,12 +875,12 @@
             </span>
           </template>
         </vxe-column>
-        <vxe-column field="mainMaterialCostRate" title="不含主要外购件费的成本主材费率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
-        <vxe-column field="mainPurchasedPartsCost" title="主要外购件费(元)" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
-        <vxe-column field="costProfitRatio" title="成本利润率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
-        <vxe-column field="salesTaxRate" title="销售税金率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
-        <vxe-column field="designFeeRate" title="非标准设备设计费率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
-        <vxe-column field="VATRate" title="增值税率%" width="160" :edit-render="{ name: 'VxeNumberInput' }"></vxe-column>
+        <vxe-column field="mainMaterialCostRate" title="不含主要外购件费的成本主材费率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
+        <vxe-column field="mainPurchasedPartsCost" title="主要外购件费(元)" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
+        <vxe-column field="costProfitRatio" title="成本利润率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
+        <vxe-column field="salesTaxRate" title="销售税金率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
+        <vxe-column field="designFeeRate" title="非标准设备设计费率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
+        <vxe-column field="VATRate" title="增值税率%" width="160" :edit-render="{ name: 'VxeNumberInput', props: { controls: false } }"></vxe-column>
         <vxe-column field="nonsEqptValue" title="非标设备估值(元)" width="160">
           <template #default="{ row }">
             <span>
@@ -1168,6 +1172,8 @@ export default {
       autoSaveNonSAtive: false,
       autoSaveNonSTimer: null, // 用于存储 setTimeout 的引用
       countdownDuration: 60000, // 倒计时时间(10秒)
+      //是否全屏显示,默认否
+      fullBoolean: false,
     }
   },
   components: {
@@ -2167,6 +2173,61 @@ export default {
       })
       }
     },
+    fullScreen() {
+      if(!this.fullBoolean){
+          //如果未全屏,则开启全屏
+          this.fullBoolean = true
+          //获取需要全屏的元素
+          let full = document.getElementById('evaluateDiv')
+          // 加上内边距以免组件贴边
+          full.style.padding = '10px';
+          //开启全屏方法
+          this.toFullscreen(full)
+          //分辨率调整后,重新初始化方法
+          this.init();
+      }else{
+          //如果已全屏,则退出全屏
+          this.fullBoolean = false
+          let full = document.getElementById('evaluateDiv')
+          // 去掉内边距
+          full.style.padding = '0px';
+          //退出全屏方法
+          this.cancelFullscreen()
+          //分辨率调整后,重新初始化方法
+          this.init();
+      }
+    },      
+    //全屏方法
+    toFullscreen(element) {
+        //全屏
+        if (element.requestFullscreen) {
+            element.requestFullscreen()
+        } 
+        //兼容Firefox全屏
+        else if (element.mozRequestFullScreen) {
+            element.mozRequestFullScreen()
+        } 
+        //兼容Chrome Safari Opera全屏
+        else if (element.webkitRequestFullscreen) {
+            element.webkitRequestFullscreen()
+        } 
+        //兼容IE Edge全屏
+        else if (element.msRequestFullscreen) {
+            element.msRequestFullscreen()
+        }
+    }, 
+    //退出全屏
+    cancelFullscreen() {
+        if (document.exitFullscreen) {
+            document.exitFullscreen()
+        } else if (document.mozCancelFullScreen) {
+            document.mozCancelFullScreen()
+        } else if (document.webkitCancelFullScreen) {
+            document.webkitCancelFullScreen()
+        } else if (document.msExitFullscreen) {
+            document.msExitFullscreen()
+        }
+    },
   },
 }
 </script>
@@ -2213,6 +2274,7 @@ export default {
 }
 
 .evaluateDiv {
+  background-color: white;
   margin-left: 10px;
   width: 84%;
   display: inline-block;

+ 1 - 1
src/views/assets/workbench/eqpt/calculate/index.vue

@@ -32,7 +32,7 @@ export default {
   },
   mounted() {
     // 测算表进度为GENERATE时默认折叠进度条以显示更多内容
-    if (this.projectStore.calculateProgress.progress === 'GENERATE') {
+    if (this.projectStore.calculateProgress.progress === 'GENERATE' || this.projectStore.calculateProgress.progress === 'FINISHED') {
       this.changeTimelineStatus(false);
     }
   },