From 0a26d58a3906b9e13946c7cb46fae51a0de98920 Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期一, 17 三月 2025 15:49:08 +0800
Subject: [PATCH] Merge branch 'dev' into dev_tides

---
 src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue |  176 ++++++++++++++++++++++------------------------------------
 1 files changed, 67 insertions(+), 109 deletions(-)

diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue
index 0cd9c6d..79dbc40 100644
--- a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue
@@ -6,10 +6,8 @@
         <el-button size="small" type="primary" @click="openAddDia">鏂� 澧�</el-button>
       </div>
     </div>
-    <el-table
-      :data="tableData"
-      height="calc(100vh - 18em)"
-      style="width: 100%">
+    <el-table :data="tableData" height="calc(100vh - 18em)" style="width: 100%"
+              :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
       <el-table-column label="搴忓彿" type="index" width="120">
         <template v-slot="scope">
           <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span>
@@ -33,50 +31,35 @@
         </template>
       </el-table-column>
     </el-table>
-    <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
-                   :total="search.total" layout="->,total, sizes, prev, pager, next, jumper"
-                   @size-change="handleSizeChange"
+    <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" :total="search.total"
+                   background layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
                    @current-change="handleCurrentChange">
     </el-pagination>
-    <el-dialog
-      :visible.sync="dialogVisible"
-      title="鏂板"
-      width="50%"
-      @open="openDialog">
+    <el-dialog :visible.sync="dialogVisible" title="鏂板" width="50%" @open="openDialog">
       <div style="height: 50vh; overflow-y: auto">
         <el-form ref="form" :model="form" label-width="120px">
           <el-row>
             <el-col :span="12">
               <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ祴璇曞湴鐐�', trigger: 'blur' }]" label="娴嬭瘯鍦扮偣"
-                            prop="testLocation">
+                prop="testLocation">
                 <el-input v-model="form.testLocation" size="small"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ祴璇曟棩鏈�', trigger: 'change' }]" label="娴嬭瘯鏃ユ湡"
-                            prop="testDate">
-                <el-date-picker
-                  v-model="form.testDate"
-                  format="yyyy-MM-dd"
-                  placeholder="閫夋嫨鏃ユ湡"
-                  size="small"
-                  style="width: 100%"
-                  type="date"
-                  value-format="yyyy-MM-dd">
+                prop="testDate">
+                <el-date-picker v-model="form.testDate" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
+                  style="width: 100%" type="date" value-format="yyyy-MM-dd">
                 </el-date-picker>
               </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヨ澶囧悕绉�', trigger: 'change' }]" label="璁惧鍚嶇О"
-                            prop="deviceId">
-                <el-select v-model="form.deviceId"
-                           class="table_input"
-                           clearable
-                           filterable
-                           placeholder="璁惧鍚嶇О"
-                           size="small" @change="getCalibrationDateFun">
-                  <el-option v-for="item in equipOptions" :key="item.id"  :label="item.deviceName" :value="item.id">
-                    {{item.deviceName + item.managementNumber}}
+                prop="deviceId">
+                <el-select v-model="form.deviceId" class="table_input" clearable filterable placeholder="璁惧鍚嶇О"
+                  size="small" @change="getCalibrationDateFun">
+                  <el-option v-for="item in equipOptions" :key="item.id" :label="item.deviceName" :value="item.id">
+                    {{ item.deviceName + item.managementNumber }}
                   </el-option>
                 </el-select>
               </el-form-item>
@@ -98,8 +81,8 @@
             </el-col>
             <el-col :span="12">
               <el-form-item label="妫�娴嬭��" prop="recipientUser">
-                <el-select v-model="form.testerId" clearable filterable placeholder="璇烽�夋嫨"
-                           size="small" style="width: 100%;">
+                <el-select v-model="form.testerId" clearable filterable placeholder="璇烽�夋嫨" size="small"
+                  style="width: 100%;">
                   <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                   </el-option>
                 </el-select>
@@ -107,8 +90,8 @@
             </el-col>
             <el-col :span="12">
               <el-form-item label="鏍告煡浜�" prop="recipientUser">
-                <el-select v-model="form.checkerId" clearable filterable placeholder="璇烽�夋嫨"
-                           size="small" style="width: 100%;" >
+                <el-select v-model="form.checkerId" clearable filterable placeholder="璇烽�夋嫨" size="small"
+                  style="width: 100%;">
                   <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                   </el-option>
                 </el-select>
@@ -116,11 +99,7 @@
             </el-col>
             <el-col :span="24">
               <el-form-item label="缁撹">
-                <el-input
-                  v-model="form.conclusion"
-                  :rows="2"
-                  placeholder="璇疯緭鍏ュ唴瀹�"
-                  type="textarea">
+                <el-input v-model="form.conclusion" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" type="textarea">
                 </el-input>
               </el-form-item>
             </el-col>
@@ -130,25 +109,15 @@
               <el-button size="small" type="primary" @click="feMeasuredQuantityListAdd">鏂板</el-button>
             </div>
             <div>
-              <el-table
-                :data="form.feMeasuredQuantityList"
-                height="40vh"
-                style="width: 100%; margin: auto">
+              <el-table :data="form.feMeasuredQuantityList" height="40vh" style="width: 100%; margin: auto"
+                        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
                 <el-table-column label="搴忓彿" type="index" width="80"></el-table-column>
-                <el-table-column
-                  align="center"
-                  label="娴嬪畾閲忓悕绉�"
-                  min-width="180"
-                  prop="measuredQuantityLabel">
+                <el-table-column align="center" label="娴嬪畾閲忓悕绉�" min-width="180" prop="measuredQuantityLabel">
                   <template #default="{ row }">
                     <el-input v-model="row.measuredQuantityLabel" :rows="1" type="textarea"></el-input>
                   </template>
                 </el-table-column>
-                <el-table-column
-                  align="center"
-                  label="鍊�"
-                  min-width="300"
-                  prop="name">
+                <el-table-column align="center" label="鍊�" min-width="300" prop="name">
                   <template>
                     <el-table-column align="center" label="A" min-width="100" prop="valueA">
                       <template #default="{ row }">
@@ -167,10 +136,7 @@
                     </el-table-column>
                   </template>
                 </el-table-column>
-                <el-table-column
-                  fixed="right"
-                  label="鎿嶄綔"
-                  width="100">
+                <el-table-column fixed="right" label="鎿嶄綔" width="100">
                   <template slot-scope="scope">
                     <el-button size="small" type="text" @click="feMeasuredQuantityListDelete(scope.row, scope.$index)">
                       鍒犻櫎
@@ -191,11 +157,23 @@
 </template>
 
 <script>
+import {
+  getLaboratoryFacilityPowerStablePage,
+  deviceScopeSearch,
+  treeDevice,
+  selectUserCondition,
+  addLaboratoryFacilityPowerStable,
+  deleteFeMeasuredQuantity,
+  getFeMeasuredQuantityService,
+  deleteLaboratoryFacilityPowerStable,
+  exportFePowerStable
+} from '@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment'
+
 export default {
   data() {
     return {
       search: {
-        size: 20,
+        size: 10,
         current: 1,
         total: 0
       },
@@ -235,11 +213,14 @@
   methods: {
     // 鍒濆鍖栬皟鐢�
     initData() {
-      this.$axios.get(this.$api.facilitiesAndEnvironment.getLaboratoryFacilityPowerStablePage + '?size=' + this.search.size + '&current=' + this.search.current).then(res => {
-        if (res.code === 201) return;
-        this.tableData = res.data.records;
-        this.search.total = res.data.total;
-      });
+      getLaboratoryFacilityPowerStablePage({
+        ...this.search
+      }).then(res => {
+        if (res.code === 200) {
+          this.tableData = res.data.records;
+          this.search.total = res.data.total;
+        }
+      })
     },
     handleSizeChange(val) {
       this.search.size = val;
@@ -256,20 +237,20 @@
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        this.$axios.delete(this.$api.facilitiesAndEnvironment.deleteLaboratoryFacilityPowerStable + '?powerStableId=' + row.powerStableId).then(res => {
+        deleteLaboratoryFacilityPowerStable({ powerStableId: row.powerStableId }).then(res => {
           this.$message.success('鍒犻櫎鎴愬姛锛�')
           this.initData()
         })
       })
     },
-    openAddDia () {
+    openAddDia() {
       this.dialogVisible = true
       this.getEquipOptions()
     },
     // 鑾峰彇鎵�鏈夎澶�
     getEquipOptions() {
       this.equipOptions = []
-      this.$axios.get(this.$api.deviceScope.deviceScopeSearch+'?status=0').then(res => {
+      deviceScopeSearch({ status: '0' }).then(res => {
         if (res.code === 200 && res.data) {
           this.equipOptions = res.data
         }
@@ -279,9 +260,9 @@
     },
     // 鐢垫簮绋冲畾鎬�-鎵撳紑寮规璋冪敤璁惧鎺ュ彛锛屾煡璇娇鐢ㄧ殑璁惧
     openDialog() {
-      this.$axios.get(this.$api.deviceScope.treeDevice).then(res => {
+      treeDevice().then(res => {
         this.cascaderList = res.data;
-      });
+      })
       this.$nextTick(() => {
         this.$refs['form'].clearValidate()
       })
@@ -299,8 +280,7 @@
     // 鐢垫簮绋冲畾鎬�-娴嬪畾閲忓脊妗嗕腑琛ㄦ牸鐨勫垹闄よ
     feMeasuredQuantityListDelete(row, index) {
       if (row.measuredQuantityId) {
-        this.$axios.delete(this.$api.facilitiesAndEnvironment.deleteFeMeasuredQuantity + '?measuredQuantityId=' + row.measuredQuantityId).then(res => {
-          if (res.code === 201) return
+        deleteFeMeasuredQuantity({ measuredQuantityId: row.measuredQuantityId }).then(res => {
           this.form.feMeasuredQuantityList.splice(index, 1)
           this.$message.success('鍒犻櫎鎴愬姛锛�')
         })
@@ -324,11 +304,7 @@
       this.submitLoading = true
       this.$refs.form.validate((valid) => {
         if (valid) {
-          this.$axios.post(this.$api.facilitiesAndEnvironment.addLaboratoryFacilityPowerStable, this.form, {
-            headers: {
-              'Content-Type': 'application/json'
-            }
-          }).then(res => {
+          addLaboratoryFacilityPowerStable(this.form).then(res => {
             this.submitLoading = false
             if (res.code === 200) {
               this.initData()
@@ -342,50 +318,32 @@
     },
     // 瀵煎嚭
     downLoadPost(row) {
-      this.$axios.get(this.$api.facilitiesAndEnvironment.exportFePowerStable + '?powerStableId=' + row.powerStableId,{responseType: "blob"}).then(res => {
+      exportFePowerStable({ powerStableId: row.powerStableId }).then(res => {
         this.outLoading = false
-        const blob = new Blob([res],{ type: 'application/msword' });
-        //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆
-        let reader = new FileReader();
-        reader.readAsText(blob, 'utf-8');
-        reader.onload = () => {
-          try {
-            let result = JSON.parse(reader.result);
-            if (result.message) {
-              this.$message.error(result.message);
-            } else {
-              const url = URL.createObjectURL(blob);
-              const link = document.createElement('a');
-              link.href = url;
-              link.download = '鐢垫簮绋冲畾鎬�' + '.docx';
-              link.click();
-              this.$message.success('瀵煎嚭鎴愬姛')
-            }
-          } catch (err) {
-            console.log(err);
-            const url = URL.createObjectURL(blob);
-            const link = document.createElement('a');
-            link.href = url;
-            link.download = '鐢垫簮绋冲畾鎬�' + '.docx';
-            link.click();
-            this.$message.success('瀵煎嚭鎴愬姛')
-          }
-        }
+        const blob = new Blob([res], { type: 'application/msword' });
+        this.$download.saveAs(blob, '鐢垫簮绋冲畾鎬�.docx')
       })
     },
     // 鐢垫簮绋冲畾鎬� 鐐瑰嚮琛岀紪杈戣Е鍙�
     edit(row) {
-      this.$axios.get(this.$api.facilitiesAndEnvironment.getFeMeasuredQuantityService + "?powerStableId=" + row.powerStableId).then(res => {
-        this.form = {...row}
+      getFeMeasuredQuantityService({ powerStableId: row.powerStableId }).then((res => {
+        this.form = { ...row }
         this.form.feMeasuredQuantityList = res.data;
         this.dialogVisible = true
-      });
+      }))
     },
     // 鑾峰彇璐熻矗浜轰俊鎭帴鍙�
     getUserList() {
-      this.$axios.get(this.$api.deviceScope.selectUserList).then(res => {
+      selectUserCondition().then(res => {
         if (res.code == 200) {
-          this.responsibleOptions = res.data
+          let data = []
+          res.data.forEach(a => {
+            data.push({
+              id: a.id,
+              name: a.name
+            })
+          })
+          this.responsibleOptions = data
         }
       })
     },

--
Gitblit v1.9.3