cl 1 rok pred
rodič
commit
7bffd55679

+ 1 - 0
package.json

@@ -80,6 +80,7 @@
     "vue-types": "^4.0.3",
     "vue3-excel-editor": "^1.0.21",
     "vue3-grid-layout": "^1.0.0",
+    "vue3-scale-box": "^0.1.9",
     "wujie-vue3": "^1.0.16",
     "xlsx": "^0.17.0"
   },

+ 3 - 1
src/App.vue

@@ -1,8 +1,10 @@
 <template>
   <ConfigProvider :locale="getAntdLocale" :autoInsertSpaceInButton="false">
+    <!-- <ScaleBox :width="1920" :height="911" bgc="transparent" :delay="100" :isFlat="false"> -->
     <AppProvider>
       <RouterView />
     </AppProvider>
+  <!-- </ScaleBox> -->
   </ConfigProvider>
 </template>
 
@@ -11,9 +13,9 @@
   import { AppProvider } from '/@/components/Application';
   import { useTitle } from '/@/hooks/web/useTitle';
   import { useLocale } from '/@/locales/useLocale';
+  // import ScaleBox from "vue3-scale-box";
   // support Multi-language
   const { getAntdLocale } = useLocale();
-
   useTitle();
 </script>
 <style lang="less" scoped>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 0
src/assets/icons/sjst.svg


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 0
src/assets/icons/xztp.svg


+ 47 - 0
src/common.less

@@ -19,3 +19,50 @@
 .ant-input-number-disabled .ant-input-number-input {
   cursor: not-allowed;
 }
+.no-table-padding{
+  .ant-table-content{
+    tr{
+      th{
+        padding: 0px !important;
+      }
+      td{
+        padding: 0px !important;
+      }
+    }
+  }
+}
+.ant-table-tbody .ant-table-row:nth-child(2n) {
+  background: #fafafa;
+}
+.ant-table-content .ant-table-thead{
+  font-family: '黑体';
+}
+// .custom-list-title{
+//   position: absolute;
+//   top: 0px;
+//   left: 0px;
+//   width: 100%;
+//   height: 40px;
+//   li{
+//     width: 50%;
+//   }
+// }
+// .custom-list{
+//   height: 400px;
+//   overflow: auto;
+//   // li:nth-child(1){
+//   //   margin-top: 20px;
+//   // }
+// }
+.luckysheet-cols-menu {
+  z-index: 9004;
+}
+.luckysheet-input-box {
+  z-index: 3000;
+}
+.luckysheet-wa-editor {
+  z-index: 9000 !important;
+}
+.luckysheet-modal-dialog-slider {
+  z-index: 10000 !important;
+}

+ 4 - 1
src/views/historyData/rain/index2.vue

@@ -185,7 +185,7 @@ const [registerTable, { reload, getRawDataSource, getForm, setLoading, setColumn
       //   end_time = moment(params.yearQueryTime[1]).format('YYYY');
       // }
       return {
-        senid: senid,
+        senid: senid || [],
         step_size: params.step_size,
         start_time: start_time,
         end_time: end_time,
@@ -406,6 +406,9 @@ const getList = (formData) => {
   }
   form.start_time = start_time
   form.end_time = end_time
+  if(!form.senid){
+    form.senid = []
+  }
   setLoading(true)
   gethistoryRain2(form).then(res => {
     processingData(res.data);

+ 274 - 68
src/views/prediction/artificial/flood.vue

@@ -56,15 +56,17 @@
           </a-row>
         </div>
         <div class="right-box">
-          <div :style="{ 'width': dataCenter.contractType == 1 ? '440px' : '40px' }" class="right-box-left">
+          <div :style="{ 'width': dataCenter.contractType == 1 ? '440px' : '40px' }" class="right-box-left"
+            @mouseleave="setContractType(0)">
             <div v-if="dataCenter.treeActiveData.modelid != 76">
-              <div class="flex-left" v-show="dataSource.length > 0">
-                <div @click="setContractType" class="flex-box-contract">
+              <div class="flex-left new-flex-left" v-show="dataSource.length > 0">
+                <!-- <div @click="setContractType" class="flex-box-contract">
                   <MenuFoldOutlined v-if="dataCenter.contractType == 1" />
                   <MenuUnfoldOutlined v-else />
-                </div>
+                </div> -->
+                
+                <div @mouseover="setContractType(1)" :class="{ 'active-box-color': dataCenter.activeBox == 2 }">模型参数</div>
                 <div @click="showRain" :class="{ 'active-box-color': dataCenter.activeBox == 1 }">雨量列表</div>
-                <div @click="setActive(2)" :class="{ 'active-box-color': dataCenter.activeBox == 2 }">模型参数</div>
                 <div @click="showRain2" :class="{ 'active-box-color': dataCenter.activeBox == 3 }">产流状态变量</div>
                 <div @click="showRain3" :class="{ 'active-box-color': dataCenter.activeBox == 3 }">汇流状态变量</div>
               </div>
@@ -86,10 +88,12 @@
               </div>
             </div>
             <div v-else>
-              <div class="flex-left">
-                <div @click="setContractType" class="flex-box-contract">
+              <div class="flex-left new-flex-left">
+                <!-- <div @click="setContractType" class="flex-box-contract">
                   <MenuFoldOutlined v-if="dataCenter.contractType == 1" />
                   <MenuUnfoldOutlined v-else />
+                </div> -->
+                <div @mouseover="setContractType(1)" :class="{ 'active-box-color': dataCenter.activeBox == 2 }">模型参数
                 </div>
               </div>
               <div class="list1">
@@ -104,7 +108,7 @@
                   </template>
                 </a-table>
               </div>
-              <div class="regression-btn">
+              <div v-if='dataCenter.contractType == 1' class="regression-btn">
                 <a-button class="regression-margin-btn" type="primary" @click="calibration">自动率定</a-button>
               </div>
             </div>
@@ -112,43 +116,83 @@
           <div class="right-box-right">
             <div class="charts-box" id="charts-id"></div>
             <div v-if="dataCenter.chartsData.eval" class="result-box">
-              <div class="result-title"> 预报成果 </div>
+              <div class="result-title"> 预报成果
+                <a-button class="result-title-btn" type="primary" @click="resultTitleExport(dataCenter.treeActiveData.modelid,dataCenter.sourceData)">导出excel</a-button>
+              </div>
               <div class="result-table-box">
-                <a-table
+                <!-- <a-table
                   :columns="dataCenter.treeActiveData.modelid == 76 ? dataCenter.resultColumns1 : dataCenter.resultColumns"
-                  :pagination="false" :data-source="dataCenter.sourceData" bordered size="middle" :scroll="{ y: 180 }" />
-                <!-- <table class="result-table">
-                  <thead>
+                  :pagination="false" :data-source="dataCenter.sourceData" bordered size="middle" :scroll="{ y: 180 }" /> -->
+                  <table class='table-inner'>
+                    <thead>
                     <tr>
-                      <th> 序号 </th>
-                      <th> 降雨量P(mm) </th>
-                      <th> 实测径流深R(mm) </th>
-                      <th> 径流深绝对误差(%) </th>
-                      <th> 径流深相对误差(%) </th>
-                      <th> 实测洪峰(m³/s) </th>
-                      <th> 预测洪峰(m³/s) </th>
-                      <th> 预测洪峰相对误差 </th>
-                      <th> 实测峰现时间 </th>
-                      <th> 预测峰现时间 </th>
-                      <th> 峰现时差 </th>
+                      <th rowspan="3">序号</th>
+                      <th v-if="dataCenter.treeActiveData.modelid != 76" rowspan="2">降雨量</th>
+                      <th colspan="4">径流深</th>
+                      <th colspan="3">洪峰</th>
+                      <th colspan="3">峰现时间</th>
+                      <th rowspan="3">确定性系数</th>
+                    </tr>
+                    <tr>
+                      <th>实测值</th>
+                      <th>计算值</th>
+                      <th>绝对误差</th>
+                      <th>相对误差</th>
+                      <th>实测值</th>
+                      <th>计算值</th>
+                      <th>绝对误差</th>
+                      <th>实测值</th>
+                      <th>计算值</th>
+                      <th>锋现时差</th>
+                    </tr>
+                    <tr>
+                      <th v-if="dataCenter.treeActiveData.modelid != 76">mm</th>
+                      <th>mm</th>
+                      <th>mm</th>
+                      <th>mm</th>
+                      <th>%</th>
+                      <th>m³/s</th>
+                      <th>m³/s</th>
+                      <th>%</th>
+                      <th></th>
+                      <th></th>
+                      <th>h</th>
                     </tr>
                   </thead>
-                  <tbody>
-                    <tr v-for="(item, index) in dataCenter.resultList" :key="index">
+                  <tbody v-if="dataCenter.treeActiveData.modelid != 76">
+                    <tr v-for="(item, index) in dataCenter.sourceData" :key="index">
+                      <td>{{ index + 1 }}</td>
+                      <td>{{ item['0'] }}</td>
+                      <td>{{ item['1'] }}</td>
+                      <td>{{ item['2'] }}</td>
+                      <td>{{ item['3'] }}</td>
+                      <td>{{ item['4'] }}</td>
+                      <td>{{ item['5'] }}</td>
+                      <td>{{ item['6'] }}</td>
+                      <td>{{ item['7'] }}</td>
+                      <td>{{ item['8'] }}</td>
+                      <td>{{ item['9'] }}</td>
+                      <td>{{ item['10'] }}</td>
+                      <td>{{ item['11'] }}</td>
+                    </tr>
+                  </tbody>
+                  <tbody v-else>
+                    <tr v-for="(item, index) in dataCenter.sourceData" :key="index">
                       <td>{{ index + 1 }}</td>
-                      <td>{{ item[0] }}</td>
-                      <td>{{ item[1] }}</td>
-                      <td>{{ item[2] }}</td>
-                      <td>{{ item[3] }}</td>
-                      <td>{{ item[4] }}</td>
-                      <td>{{ item[5] }}</td>
-                      <td>{{ item[6] }}</td>
-                      <td>{{ item[7] }}</td>
-                      <td>{{ item[8] }}</td>
-                      <td>{{ item[9] }}</td>
+                      <td>{{ item['0'] }}</td>
+                      <td>{{ item['1'] }}</td>
+                      <td>{{ item['2'] }}</td>
+                      <td>{{ item['3'] }}</td>
+                      <td>{{ item['4'] }}</td>
+                      <td>{{ item['5'] }}</td>
+                      <td>{{ item['6'] }}</td>
+                      <td>{{ item['7'] }}</td>
+                      <td>{{ item['8'] }}</td>
+                      <td>{{ item['9'] }}</td>
+                      <td>{{ item['10'] }}</td>
                     </tr>
                   </tbody>
-                </table> -->
+                </table>
               </div>
             </div>
           </div>
@@ -156,14 +200,17 @@
       </div>
     </div>
     <!-- 弹窗 -->
-    <BasicModal :maskClosable="false" @cancel="cancel" :footer="null" :visible="dataCenter.showRainModal" :width="1200"
+    <BasicModal :maskClosable="false" @cancel="cancel" :footer="null" :visible="dataCenter.showRainModal" width="80%"
       title="雨量列表">
       <div>
-        <div class="rainfall-export">
+        <div class="rainfall-export rainfall-text-all">
+          <a-button @click="isPaginated(false)" type="primary">单页显示</a-button>
+          <a-button @click="isPaginated(true)" type="primary">分页显示</a-button>
           <a-button @click="rainfallExport" type="primary">导出excel</a-button>
         </div>
-        <a-table :dataSource="dataCenter.rainData.dataSource" :columns="dataCenter.rainData.columns" bordered
-          size="middle" />
+        <a-table class="no-table-padding result-table-bug" size="small" :pagination="paginationWork"
+          :dataSource="dataCenter.rainData.dataSource" :columns="dataCenter.rainData.columns" bordered
+          :scroll="{ y: 560 }" />
       </div>
     </BasicModal>
     <!-- 产流状态变量弹窗 -->
@@ -188,21 +235,21 @@
     </BasicModal>
     <!-- 汇流状态变量 -->
     <BasicModal :maskClosable="false" @ok="handle3Ok" @cancel="cancel3" :visible="dataCenter.showRainModal3" :width="650"
-      title="汇流状态变量">
+    :height="800" title="汇流状态变量">
       <div>
         <div class="top-number-form">
           <span>河段数:</span>
-          <span>
+          <span style="width: 80px; display: inline-block; margin-right: 60px;">
             <a-input-number id="inputNumber" v-model:value="inputNumber.msk_num" :min="0" />
           </span>
-          <span>时段末最大流量:</span>
+          <span>断面出口流量:</span>
           <span>
             <a-input-number id="inputNumber" v-model:value="inputNumber.Q0" :min="0" />
           </span>
           <a-button @click="subInputNumber" style="margin-left: 10px;" type="primary">查询</a-button>
           <a-button @click="reachExport" style="margin-left: 10px;" type="primary">导出excel</a-button>
         </div>
-        <a-table :pagination="false" bordered :data-source="dataSource3" :columns="columns3" :scroll="{ y: 600 }">
+        <a-table size="small" :pagination="false" bordered :data-source="dataSource3" :columns="columns3" :scroll="{ y: 500 }">
           <template #Q0="{ text, record }">
             <div class="editable-cell">
               <div v-if="editableData12[record.key]" class="editable-cell-input-wrapper">
@@ -271,7 +318,7 @@ let dataCenter = reactive({
       },
     },
   ],
-  contractType: 1,
+  contractType: 0,
   forecast_time: '',
   forecast_type: '',
   test1: 1,
@@ -754,6 +801,15 @@ const save3 = (key: string) => {
 const genData = ref([]);
 
 const dataList = [];
+
+let paginationWork = ref({ pageSize: 24 })
+const isPaginated = (type) => {
+  if (type) {
+    paginationWork.value = { pageSize: 24 }
+  } else {
+    paginationWork.value = false
+  }
+}
 const generateList = (data) => {
   console.log(data);
   for (let i = 0; i < data.length; i++) {
@@ -886,6 +942,92 @@ async function getRegressionParamShowData(item, scheme_id) {
     })
   })
 }
+/**
+ * 预报结果导出
+ */
+ const resultTitleExport = (modelid, datas) => {
+  let name = '人工预报-预报成果.xlsx';
+  let header = {
+  }
+  if (modelid != 76) {
+    header = {
+      index: '序号',
+      index1: '降雨量(mm)',
+      index2: '径流深-实测值(mm)',
+      index3: '径流深-计算值(mm)',
+      index4: '径流深-绝对误差(mm)',
+      index5: '径流深-相对误差(%)',
+      index6: '洪峰-实测值(m³/s	)',
+      index7: '洪峰-计算值(m³/s)',
+      index8: '洪峰-绝对误差(%)',
+      index9: '峰现时间-实测值',
+      index10: '峰现时间-计算值',
+      index11: '峰现时间-锋现时差(h)',
+      index12: '确定性系数',
+    }
+  } else {
+    header = {
+      index: '序号',
+      index2: '径流深-实测值(mm)',
+      index3: '径流深-计算值(mm)',
+      index4: '径流深-绝对误差(mm)',
+      index5: '径流深-相对误差(%)',
+      index6: '洪峰-实测值(m³/s	)',
+      index7: '洪峰-计算值(m³/s)',
+      index8: '洪峰-绝对误差(%)',
+      index9: '峰现时间-实测值',
+      index10: '峰现时间-计算值',
+      index11: '峰现时间-锋现时差(h)',
+      index12: '确定性系数',
+    }
+  }
+  let data = [];
+  if (modelid != 76) {
+    datas.forEach((element, index) => {
+      let obj = {}
+      obj['index'] = index + 1
+      obj.index1 = element['0']
+      obj.index2 = element['1']
+      obj.index3 = element['2']
+      obj.index4 = element['3']
+      obj.index5 = element['4']
+      obj.index6 = element['5']
+      obj.index7 = element['6']
+      obj.index8 = element['7']
+      obj.index9 = element['8']
+      obj.index10 = element['9']
+      obj.index11 = element['10']
+      obj.index12 = element['11']
+      data.push(obj)
+    });
+  }else{
+    datas.forEach((element, index) => {
+      let obj = {}
+      obj['index'] = index + 1
+      obj.index2 = element['0']
+      obj.index3 = element['1']
+      obj.index4 = element['2']
+      obj.index5 = element['3']
+      obj.index6 = element['4']
+      obj.index7 = element['5']
+      obj.index8 = element['6']
+      obj.index9 = element['7']
+      obj.index10 = element['8']
+      obj.index11 = element['9']
+      obj.index12 = element['10']
+      data.push(obj)
+    });
+  }
+  // dataCenter.rainData.columns.forEach((element) => {
+  //   header[element.key] = element.title;
+  // });
+  // data = dataCenter.rainData.dataSource;
+  jsonToSheetXlsx({
+    data,
+    header: header,
+    filename: name,
+  });
+}
 async function treeSelect(selectedKeys, e) {
   selectedKeysTree.value = [e.node.dataRef.keyid]
   dataCenter.sourceData = []
@@ -1070,6 +1212,8 @@ function showRain2() {
       enableAddRow: false,
       enableAddBackTop: false,
       showstatisticBar: false,
+      defaultRowHeight: 34,
+      defaultColWidth: 100,
       column: 0,
       row: 0,
       data: [
@@ -1302,9 +1446,11 @@ function setCharts() {
   chart = echarts.init(document.getElementById('charts-id'));
   let option = {
     toolbox: {
-      right: 26,
+      right: 120,
+      itemGap: 30,
       feature: {
         dataView: {
+          buttonColor: '#2D74E7',
           show: true,
           // readOnly: true,
           iconStyle: {
@@ -1475,14 +1621,14 @@ function setCharts() {
         // realtime: true,
 
         realtime: true,
-        start: 65,
-        end: 100,
+        // start: 65,
+        // end: 100,
         xAxisIndex: [0, 1]
       },
       {
         show: false,
-        start: 70,
-        end: 100,
+        // start: 70,
+        // end: 100,
         type: 'inside',
         xAxisIndex: [0, 1]
       }
@@ -1772,14 +1918,14 @@ function setCharts76() {
         // realtime: true,
 
         realtime: true,
-        start: 65,
-        end: 100,
+        // start: 65,
+        // end: 100,
         xAxisIndex: [0, 1]
       },
       {
         show: false,
-        start: 70,
-        end: 100,
+        // start: 70,
+        // end: 100,
         type: 'inside',
         xAxisIndex: [0, 1]
       }
@@ -1868,7 +2014,7 @@ const setResultData = (res) => {
         if (index == '7' || index == '8') {
           let str = element;
           let strArr = str.split(' ');
-          obj[index] = strArr[0].substring(5, 10) + '/' + strArr[1].substring(0, 2);
+          obj[index] = strArr[0].substring(5, 10) + ' ' + strArr[1].substring(0, 5);
         } else {
           obj[index] = element;
         }
@@ -1878,7 +2024,7 @@ const setResultData = (res) => {
         if (index == '8' || index == '9') {
           let str = element;
           let strArr = str.split(' ');
-          obj[index] = strArr[0].substring(5, 10) + '/' + strArr[1].substring(0, 2);
+          obj[index] = strArr[0].substring(5, 10) + ' ' + strArr[1].substring(0, 5);
         } else {
           obj[index] = element;
         }
@@ -1895,7 +2041,7 @@ const setResultData = (res) => {
         if (index == '7' || index == '8') {
           let str = element;
           let strArr = str.split(' ');
-          obj[index] = strArr[0].substring(5, 10) + '/' + strArr[1].substring(0, 2);
+          obj[index] = strArr[0].substring(5, 10) + ' ' + strArr[1].substring(0, 5);
         } else {
           obj[index] = element;
         }
@@ -1905,7 +2051,7 @@ const setResultData = (res) => {
         if (index == '8' || index == '9') {
           let str = element;
           let strArr = str.split(' ');
-          obj[index] = strArr[0].substring(5, 10) + '/' + strArr[1].substring(0, 2);
+          obj[index] = strArr[0].substring(5, 10) + ' ' + strArr[1].substring(0, 5);
         } else {
           obj[index] = element;
         }
@@ -2156,12 +2302,13 @@ const handleStartOpenChange = (open: boolean) => {
 const handleEndOpenChange = (open: boolean) => {
   endOpen.value = open;
 };
-const setContractType = () => {
-  if (dataCenter.contractType == 1) {
-    dataCenter.contractType = 0
-  } else {
-    dataCenter.contractType = 1
-  }
+const setContractType = (type) => {
+  // if (dataCenter.contractType == 1) {
+  //   dataCenter.contractType = 0
+  // } else {
+  //   dataCenter.contractType = 1
+  // }
+  dataCenter.contractType = type;
   setTimeout(() => {
     if (chart) {
       chart.resize();
@@ -2193,7 +2340,7 @@ const handle3Ok = () => {
 }
 const subInputNumber = () => {
   if (inputNumber.value.msk_num == '' || inputNumber.value.Q0 == '') {
-    message.warning('请输入河段数或时段末最大流量');
+    message.warning('请输入河段数或断面出口流量');
     return
   }
   schemeAddMsknum(inputNumber.value).then(res => {
@@ -2411,7 +2558,12 @@ onMounted(() => {
   .result-title {
     text-align: center;
     font-size: 20px;
-    padding: 10px;
+    padding: 0px;
+    position: relative;
+    .result-title-btn{
+      position: absolute;
+      right: 10px;
+    }
   }
 
   .result-title:before {
@@ -2431,7 +2583,7 @@ onMounted(() => {
     content: '';
     display: block;
     height: 1px;
-    width: calc(50% - 60px);
+    width: calc(50% - 180px);
     background-color: #ccc;
     /*颜色需与主题大背景色一致*/
     position: relative;
@@ -2495,6 +2647,18 @@ onMounted(() => {
   line-height: 52px !important;
   font-size: 20px;
 }
+.new-flex-left {
+  div:nth-child(1) {
+    background-color: #fff !important;
+    border: 1px solid #2D74E7 !important;
+    color: #2D74E7 !important;
+  }
+
+  div {
+    background-color: #2D74E7 !important;
+    color: #fff !important;
+  }
+}
 </style>
 
 <style lang="less">
@@ -2654,4 +2818,46 @@ onMounted(() => {
   text-align: right;
   margin-bottom: 10px;
 }
+.rainfall-text-all {
+  display: flex;
+  button:first-child {
+    margin-right: 10px;
+  }
+  button:last-child {
+    margin-left: auto;
+    margin-right: 0rem; // 合适即可
+  }
+}
+.result-table-bug {
+  .ant-table-fixed-header .ant-table-scroll .ant-table-header {
+    opacity: 1 !important;
+    margin-bottom: -8px !important;
+  }
+
+  .ant-table-hide-scrollbar {
+    min-width: initial !important;
+    scrollbar-color: initial !important;
+  }
+}
+.table-inner {
+  width: 100%;
+  border-collapse: collapse;
+
+
+  th,
+  td {
+    border: 1px solid #CADAFD;
+    padding: 0px;
+    text-align: center;
+  }
+
+  th {
+    background-color: #fafafa;
+    font-family: "黑体";
+  }
+
+  tr:nth-child(even) {
+    background-color: #f9f9f9;
+  }
+}
 </style>

+ 360 - 71
src/views/prediction/work/flood.vue

@@ -5,15 +5,12 @@
         <div class="title">方案列表</div>
         <div class="content-tree">
           <a-input-search v-model:value="searchValue" style="margin-bottom: 8px" placeholder="支持关键字查询" />
-          <a-tree :selectedKeys="selectedKeysTree" v-if="gData.length" :expandedKeys="expandedKeys" :autoExpandParent="autoExpandParent" :tree-data="gData"
-            :defaultExpandAll="true" 
-            :replace-fields="{
-              children: 'children',
-              title: 'title',
-              key: 'keyid',
-            }"
-            @expand="onExpand"
-            @select="treeSelect">
+          <a-tree :selectedKeys="selectedKeysTree" v-if="gData.length" :expandedKeys="expandedKeys"
+            :autoExpandParent="autoExpandParent" :tree-data="gData" :defaultExpandAll="true" :replace-fields="{
+            children: 'children',
+            title: 'title',
+            key: 'keyid',
+          }" @expand="onExpand" @select="treeSelect">
             <template #title="{ title }">
               <span v-if="title.indexOf(searchValue) > -1">
                 {{ title.substr(0, title.indexOf(searchValue)) }}
@@ -58,15 +55,18 @@
           </a-row>
         </div>
         <div class="right-box">
-          <div :style="{ width: dataCenter.contractType == 1 ? '440px' : '40px' }" class="right-box-left">
+          <div :style="{ width: dataCenter.contractType == 1 ? '440px' : '40px' }" class="right-box-left"
+            @mouseleave="setContractType(0)">
             <div v-if="dataCenter.treeActiveData.modelid != 76">
-              <div class="flex-left" v-show="dataSource.length > 0">
-                <div @click="setContractType" class="flex-box-contract">
+              <div class="flex-left new-flex-left" v-show="dataSource.length > 0">
+                <!-- <div @click="setContractType" class="flex-box-contract">
                   <MenuFoldOutlined v-if="dataCenter.contractType == 1" />
                   <MenuUnfoldOutlined v-else />
+                </div> -->
+
+                <div @mouseover="setContractType(1)" :class="{ 'active-box-color': dataCenter.activeBox == 2 }">模型参数
                 </div>
                 <div @click="showRain" :class="{ 'active-box-color': dataCenter.activeBox == 1 }">雨量列表</div>
-                <div @click="setActive(2)" :class="{ 'active-box-color': dataCenter.activeBox == 2 }">模型参数</div>
                 <div @click="showRain2" :class="{ 'active-box-color': dataCenter.activeBox == 3 }">产流状态变量</div>
                 <div @click="showRain3" :class="{ 'active-box-color': dataCenter.activeBox == 3 }">汇流状态变量</div>
               </div>
@@ -75,7 +75,8 @@
                   <template #value="{ text, record }">
                     <div class="editable-cell">
                       <div v-if="editableData[record.key]" class="editable-cell-input-wrapper">
-                        <a-input v-model:value="editableData[record.key].value" @pressEnter="save(record.key, record)" />
+                        <a-input v-model:value="editableData[record.key].value"
+                          @pressEnter="save(record.key, record)" />
                         <check-outlined class="editable-cell-icon-check" @click="save(record.key, record)" />
                       </div>
                       <div v-else class="editable-cell-text-wrapper">
@@ -88,14 +89,23 @@
               </div>
             </div>
             <div v-else>
-              <div class="flex-left">
+              <!-- <div class="flex-left">
                 <div @click="setContractType" class="flex-box-contract">
                   <MenuFoldOutlined v-if="dataCenter.contractType == 1" />
                   <MenuUnfoldOutlined v-else />
                 </div>
+              </div> -->
+              <div class="flex-left new-flex-left">
+                <!-- <div @click="setContractType" class="flex-box-contract">
+                  <MenuFoldOutlined v-if="dataCenter.contractType == 1" />
+                  <MenuUnfoldOutlined v-else />
+                </div> -->
+
+                <div @mouseover="setContractType(1)" :class="{ 'active-box-color': dataCenter.activeBox == 2 }">模型参数
+                </div>
               </div>
               <div class="list1">
-                <a-table :pagination="false" bordered :data-source="dataCenter.automaticList"
+                <a-table size="small" :pagination="false" bordered :data-source="dataCenter.automaticList"
                   :columns="dataCenter.automaticColumnsList">
                   <template #value="{ text, record }">
                     <div class="editable-cell">
@@ -106,19 +116,95 @@
                   </template>
                 </a-table>
               </div>
-              <div class="regression-btn">
+              <div v-if='dataCenter.contractType == 1' class="regression-btn">
                 <a-button class="regression-margin-btn" type="primary" @click="calibration">自动率定</a-button>
               </div>
             </div>
           </div>
           <div class="right-box-right">
-            <div class="charts-box" id="charts-id"></div>
+            <div class="charts-box" id="charts-id">
+            </div>
             <div v-if="dataCenter.chartsData.eval" class="result-box">
-              <div class="result-title"> 预报成果 </div>
+              <div class="result-title"> 预报成果
+                <a-button class="result-title-btn" type="primary"
+                  @click="resultTitleExport(dataCenter.treeActiveData.modelid, dataCenter.sourceData)">导出excel</a-button>
+
+              </div>
+
               <div class="result-table-box">
-                <a-table
+                <!-- <a-table class="no-table-padding result-table"
                   :columns="dataCenter.treeActiveData.modelid == 76 ? dataCenter.resultColumns1 : dataCenter.resultColumns"
-                  :pagination="false" :data-source="dataCenter.sourceData" bordered size="middle" :scroll="{ y: 180 }" />
+                  :pagination="false" :data-source="dataCenter.sourceData" bordered size="small" :scroll="{ y: 180 }" /> -->
+                <table class='table-inner'>
+                  <thead>
+                    <tr>
+                      <th rowspan="3">序号</th>
+                      <th v-if="dataCenter.treeActiveData.modelid != 76" rowspan="2">降雨量</th>
+                      <th colspan="4">径流深</th>
+                      <th colspan="3">洪峰</th>
+                      <th colspan="3">峰现时间</th>
+                      <th rowspan="3">确定性系数</th>
+                    </tr>
+                    <tr>
+                      <th>实测值</th>
+                      <th>计算值</th>
+                      <th>绝对误差</th>
+                      <th>相对误差</th>
+                      <th>实测值</th>
+                      <th>计算值</th>
+                      <th>绝对误差</th>
+                      <th>实测值</th>
+                      <th>计算值</th>
+                      <th>锋现时差</th>
+                    </tr>
+                    <tr>
+                      <th v-if="dataCenter.treeActiveData.modelid != 76">mm</th>
+                      <th>mm</th>
+                      <th>mm</th>
+                      <th>mm</th>
+                      <th>%</th>
+                      <th>m³/s</th>
+                      <th>m³/s</th>
+                      <th>%</th>
+                      <th></th>
+                      <th></th>
+                      <th>h</th>
+                    </tr>
+                  </thead>
+                  <tbody v-if="dataCenter.treeActiveData.modelid != 76">
+                    <tr v-for="(item, index) in dataCenter.sourceData" :key="index">
+                      <td>{{ index + 1 }}</td>
+                      <td>{{ item['0'] }}</td>
+                      <td>{{ item['1'] }}</td>
+                      <td>{{ item['2'] }}</td>
+                      <td>{{ item['3'] }}</td>
+                      <td>{{ item['4'] }}</td>
+                      <td>{{ item['5'] }}</td>
+                      <td>{{ item['6'] }}</td>
+                      <td>{{ item['7'] }}</td>
+                      <td>{{ item['8'] }}</td>
+                      <td>{{ item['9'] }}</td>
+                      <td>{{ item['10'] }}</td>
+                      <td>{{ item['11'] }}</td>
+                    </tr>
+                  </tbody>
+                  <tbody v-else>
+                    <tr v-for="(item, index) in dataCenter.sourceData" :key="index">
+                      <td>{{ index + 1 }}</td>
+                      <td>{{ item['0'] }}</td>
+                      <td>{{ item['1'] }}</td>
+                      <td>{{ item['2'] }}</td>
+                      <td>{{ item['3'] }}</td>
+                      <td>{{ item['4'] }}</td>
+                      <td>{{ item['5'] }}</td>
+                      <td>{{ item['6'] }}</td>
+                      <td>{{ item['7'] }}</td>
+                      <td>{{ item['8'] }}</td>
+                      <td>{{ item['9'] }}</td>
+                      <td>{{ item['10'] }}</td>
+                    </tr>
+                  </tbody>
+                </table>
               </div>
             </div>
           </div>
@@ -127,13 +213,17 @@
     </div>
 
     <!-- 弹窗 -->
-    <BasicModal :maskClosable="false" @cancel="cancel" :footer="null" :visible="dataCenter.showRainModal" :width="1200"
+    <BasicModal :maskClosable="false" @cancel="cancel" :footer="null" :visible="dataCenter.showRainModal" width="80%"
       title="雨量列表">
       <div>
-        <div class="rainfall-export">
+        <div class="rainfall-export rainfall-text-all">
+          <a-button @click="isPaginated(false)" type="primary">单页显示</a-button>
+          <a-button @click="isPaginated(true)" type="primary">分页显示</a-button>
           <a-button @click="rainfallExport" type="primary">导出excel</a-button>
         </div>
-        <a-table :dataSource="dataCenter.rainData.dataSource" :columns="dataCenter.rainData.columns" bordered />
+        <a-table class="no-table-padding result-table-bug" size="small" :pagination="paginationWork"
+          :dataSource="dataCenter.rainData.dataSource" :columns="dataCenter.rainData.columns" bordered
+          :scroll="{ y: 560 }" />
       </div>
     </BasicModal>
     <!-- 状态变量弹窗 -->
@@ -143,7 +233,7 @@
         <div class="rainfall-export">
           <a-button @click="stateExport" type="primary">导出excel</a-button>
         </div>
-        <div style="height: 600px; position: relative;">
+        <div style="height: 600px; position: relative; z-index: 0;">
           <div id="luckysheet" style="
               margin: 0px;
               padding: 0px;
@@ -157,22 +247,23 @@
       </div>
     </BasicModal>
     <!-- 汇流状态变量 -->
-    <BasicModal :maskClosable="false" @ok="handle3Ok" @cancel="cancel3" :visible="dataCenter.showRainModal3" :width="650"
-      title="汇流状态变量">
+    <BasicModal :maskClosable="false" @ok="handle3Ok" @cancel="cancel3" :visible="dataCenter.showRainModal3"
+      :width="650" :height="800" title="汇流状态变量">
       <div>
         <div class="top-number-form">
           <span>河段数:</span>
-          <span>
+          <span style="width: 80px; display: inline-block; margin-right: 60px;">
             <a-input-number id="inputNumber" v-model:value="inputNumber.msk_num" :min="0" />
           </span>
-          <span>时段末最大流量:</span>
+          <span>断面出口流量:</span>
           <span>
             <a-input-number id="inputNumber" v-model:value="inputNumber.Q0" :min="0" />
           </span>
-          <a-button @click="subInputNumber" style="margin-left: 10px;" type="primary">查询</a-button>
+          <a-button @click="subInputNumber" style="margin-left: 10px;" type="primary">计算</a-button>
           <a-button @click="reachExport" style="margin-left: 10px;" type="primary">导出excel</a-button>
         </div>
-        <a-table :pagination="false" bordered :data-source="dataSource3" :columns="columns3" :scroll="{ y: 600 }">
+        <a-table size="small" :pagination="false" bordered :data-source="dataSource3" :columns="columns3"
+          :scroll="{ y: 500 }">
           <template #Q0="{ text, record }">
             <div class="editable-cell">
               <div v-if="editableData12[record.key]" class="editable-cell-input-wrapper">
@@ -244,7 +335,7 @@ let dataCenter = reactive({
       },
     },
   ],
-  contractType: 1,
+  contractType: 0,
   test1: 1,
   test2: '',
   test3: [],
@@ -291,13 +382,22 @@ let dataCenter = reactive({
       rowSpan: 1,
       children: [
         {
-          title: 'mm',
+          title: '',
           dataIndex: '0',
           key: '0',
           width: 60,
-          rowSpan: 1,
           align: 'center',
+          children: [
+            {
+              title: 'mm',
+              dataIndex: '0',
+              key: '0',
+              width: 60,
+              align: 'center',
+            },
+          ]
         },
+
       ],
     },
     {
@@ -441,6 +541,15 @@ let dataCenter = reactive({
           key: '8',
           width: 90,
           align: 'center',
+          children: [
+            {
+              title: '',
+              ataIndex: '8',
+              key: '8',
+              width: 90,
+              align: 'center',
+            },
+          ],
         },
         {
           title: '计算值',
@@ -448,6 +557,15 @@ let dataCenter = reactive({
           key: '9',
           width: 90,
           align: 'center',
+          children: [
+            {
+              title: '',
+              ataIndex: '9',
+              key: '9',
+              width: 90,
+              align: 'center',
+            },
+          ],
         },
         {
           title: '峰现时差',
@@ -727,6 +845,15 @@ const save3 = (key: string) => {
 const genData = ref([]);
 
 const dataList = [];
+
+let paginationWork = ref({ pageSize: 24 })
+const isPaginated = (type) => {
+  if (type) {
+    paginationWork.value = { pageSize: 24 }
+  } else {
+    paginationWork.value = false
+  }
+}
 const generateList = (data) => {
   console.log(data);
   for (let i = 0; i < data.length; i++) {
@@ -821,15 +948,15 @@ const getSimulateTreeData = () => {
     expandedKeys.value = []
     generateList(res.data[0].children);
     // 默认选中第一个
-    console.log('gData',gData.value)
-    if(gData.value.length>0 && gData.value[0].children.length>0 && gData.value[0].children[0].children.length>0){
+    console.log('gData', gData.value)
+    if (gData.value.length > 0 && gData.value[0].children.length > 0 && gData.value[0].children[0].children.length > 0) {
       let eData = {
-        node:{
-          dataRef:gData.value[0].children[0].children[0]
+        node: {
+          dataRef: gData.value[0].children[0].children[0]
         }
       }
       selectedKeysTree.value = [gData.value[0].children[0].children[0].keyid]
-      treeSelect('',eData)
+      treeSelect('', eData)
     }
   });
 };
@@ -859,6 +986,94 @@ async function getRegressionParamShowData(item, scheme_id) {
     });
   });
 }
+/**
+ * 预报结果导出
+ */
+const resultTitleExport = (modelid, datas) => {
+  let name = '人工预报-预报成果.xlsx';
+  let header = {
+  }
+  if (modelid != 76) {
+    header = {
+      index: '序号',
+      index1: '降雨量(mm)',
+      index2: '径流深-实测值(mm)',
+      index3: '径流深-计算值(mm)',
+      index4: '径流深-绝对误差(mm)',
+      index5: '径流深-相对误差(%)',
+      index6: '洪峰-实测值(m³/s	)',
+      index7: '洪峰-计算值(m³/s)',
+      index8: '洪峰-绝对误差(%)',
+      index9: '峰现时间-实测值',
+      index10: '峰现时间-计算值',
+      index11: '峰现时间-锋现时差(h)',
+      index12: '确定性系数',
+    }
+  } else {
+    header = {
+      index: '序号',
+      index2: '径流深-实测值(mm)',
+      index3: '径流深-计算值(mm)',
+      index4: '径流深-绝对误差(mm)',
+      index5: '径流深-相对误差(%)',
+      index6: '洪峰-实测值(m³/s	)',
+      index7: '洪峰-计算值(m³/s)',
+      index8: '洪峰-绝对误差(%)',
+      index9: '峰现时间-实测值',
+      index10: '峰现时间-计算值',
+      index11: '峰现时间-锋现时差(h)',
+      index12: '确定性系数',
+    }
+  }
+  let data = [];
+  if (modelid != 76) {
+    datas.forEach((element, index) => {
+      let obj = {}
+      obj['index'] = index + 1
+      obj.index1 = element['0']
+      obj.index2 = element['1']
+      obj.index3 = element['2']
+      obj.index4 = element['3']
+      obj.index5 = element['4']
+      obj.index6 = element['5']
+      obj.index7 = element['6']
+      obj.index8 = element['7']
+      obj.index9 = element['8']
+      obj.index10 = element['9']
+      obj.index11 = element['10']
+      obj.index12 = element['11']
+      data.push(obj)
+    });
+  }else{
+    datas.forEach((element, index) => {
+      let obj = {}
+      obj['index'] = index + 1
+      obj.index2 = element['0']
+      obj.index3 = element['1']
+      obj.index4 = element['2']
+      obj.index5 = element['3']
+      obj.index6 = element['4']
+      obj.index7 = element['5']
+      obj.index8 = element['6']
+      obj.index9 = element['7']
+      obj.index10 = element['8']
+      obj.index11 = element['9']
+      obj.index12 = element['10']
+      data.push(obj)
+    });
+  }
+
+  console.log(data)
+  // dataCenter.rainData.columns.forEach((element) => {
+  //   header[element.key] = element.title;
+  // });
+  // data = dataCenter.rainData.dataSource;
+  jsonToSheetXlsx({
+    data,
+    header: header,
+    filename: name,
+  });
+}
 async function treeSelect(selectedKeys, e) {
   selectedKeysTree.value = [e.node.dataRef.keyid]
   dataCenter.sourceData = []
@@ -870,6 +1085,7 @@ async function treeSelect(selectedKeys, e) {
   dataCenter.resultList = [];
   dataCenter.chartsData = {};
   dataSource.value = [];
+
   // 销毁echarts
   if (chart) {
     chart.clear();
@@ -892,10 +1108,10 @@ async function treeSelect(selectedKeys, e) {
         element.value = element.fcode;
       });
       dataCenter.honghaoList = res.data;
-      await changeSelect('',dataCenter.honghaoList[0])
+      await changeSelect('', dataCenter.honghaoList[0])
       dataCenter.disabled = false;
       dataCenter.test2 = dataCenter.honghaoList[0].fcode;
-      dataCenter.test3 = [dataCenter.honghaoList[0].stime,dataCenter.honghaoList[0].etime];
+      dataCenter.test3 = [dataCenter.honghaoList[0].stime, dataCenter.honghaoList[0].etime];
       startValue.value = undefined;
       endValue.value = undefined;
       imitate()
@@ -1053,6 +1269,8 @@ function showRain2() {
       enableAddRow: false,
       enableAddBackTop: false,
       showstatisticBar: false,
+      defaultRowHeight: 34,
+      defaultColWidth: 100,
       column: 0,
       row: 0,
       data: [
@@ -1290,9 +1508,11 @@ function setCharts() {
   chart = echarts.init(document.getElementById('charts-id'));
   let option = {
     toolbox: {
-      right: 26,
+      right: 120,
+      itemGap: 30,
       feature: {
         dataView: {
+          buttonColor: '#2D74E7',
           show: true,
           // readOnly: true,
           iconStyle: {
@@ -1330,7 +1550,6 @@ function setCharts() {
               q_forecast: '预测流量(m³/s)',
             };
             let data = [];
-            console.log();
             dataCenter.chartsData.t.forEach((item, index) => {
               let obj = {
                 time: item,
@@ -1400,8 +1619,8 @@ function setCharts() {
         data: dataCenter.chartsData.t.map(function (str) {
           return str.replace(' ', '\n');
         }),
-        axisTick:{
-          alignWithLabel:true
+        axisTick: {
+          alignWithLabel: true
         },
         axisLabel: {
           show: true,
@@ -1428,9 +1647,9 @@ function setCharts() {
           return str.replace(' ', '\n');
         }),
         gridIndex: 1,
-        
-        axisTick:{
-          alignWithLabel:true
+
+        axisTick: {
+          alignWithLabel: true
         },
         axisLabel: {
           show: true,
@@ -1458,14 +1677,14 @@ function setCharts() {
         show: true,
         // realtime: true,
         realtime: true,
-        start: 65,
-        end: 100,
+        // start: 65,
+        // end: 100,
         xAxisIndex: [0, 1],
       },
       {
         show: false,
-        start: 70,
-        end: 100,
+        // start: 70,
+        // end: 100,
         type: 'inside',
         xAxisIndex: [0, 1],
       },
@@ -1587,9 +1806,11 @@ function setCharts76() {
   let option = {
     toolbox: {
       right: 26,
+      showTitle: true,
       feature: {
         dataView: {
           show: true,
+          title: '数据视图',
           // readOnly: true,
           iconStyle: {
             borderColor: '#2D74E7',
@@ -1646,6 +1867,7 @@ function setCharts76() {
         // restore: { show: true },
         saveAsImage: {
           show: true,
+          title: '保存图片',
           iconStyle: {
             borderColor: '#2D74E7',
           },
@@ -1697,8 +1919,8 @@ function setCharts76() {
         textStyle: {
           color: '#333333',
         },
-        axisTick:{
-          alignWithLabel:true
+        axisTick: {
+          alignWithLabel: true
         },
         formatter: function (val) {
           var strs = val.split(''); //字符串数组
@@ -1720,14 +1942,14 @@ function setCharts76() {
         show: true,
         // realtime: true,
         realtime: true,
-        start: 65,
-        end: 100,
+        // start: 65,
+        // end: 100,
         xAxisIndex: [0, 1],
       },
       {
         show: false,
-        start: 70,
-        end: 100,
+        // start: 70,
+        // end: 100,
         type: 'inside',
         xAxisIndex: [0, 1],
       },
@@ -1797,7 +2019,7 @@ const setResultData = (res) => {
         if (index == '7' || index == '8') {
           let str = element;
           let strArr = str.split(' ');
-          obj[index] = strArr[0].substring(5, 10) + '/' + strArr[1].substring(0, 2);
+          obj[index] = strArr[0].substring(5, 10) + ' ' + strArr[1].substring(0, 5);
         } else {
           obj[index] = element;
         }
@@ -1807,7 +2029,7 @@ const setResultData = (res) => {
         if (index == '8' || index == '9') {
           let str = element;
           let strArr = str.split(' ');
-          obj[index] = strArr[0].substring(5, 10) + '/' + strArr[1].substring(0, 2);
+          obj[index] = strArr[0].substring(5, 10) + ' ' + strArr[1].substring(0, 5);
         } else {
           obj[index] = element;
         }
@@ -1823,7 +2045,7 @@ const setResultData = (res) => {
         if (index == '7' || index == '8') {
           let str = element;
           let strArr = str.split(' ');
-          obj[index] = strArr[0].substring(5, 10) + '/' + strArr[1].substring(0, 2);
+          obj[index] = strArr[0].substring(5, 10) + ' ' + strArr[1].substring(0, 5);
         } else {
           obj[index] = element;
         }
@@ -1833,7 +2055,7 @@ const setResultData = (res) => {
         if (index == '8' || index == '9') {
           let str = element;
           let strArr = str.split(' ');
-          obj[index] = strArr[0].substring(5, 10) + '/' + strArr[1].substring(0, 2);
+          obj[index] = strArr[0].substring(5, 10) + ' ' + strArr[1].substring(0, 5);
         } else {
           obj[index] = element;
         }
@@ -2051,12 +2273,13 @@ const handleEndOpenChange = (open: boolean) => {
 //   return
 // });
 // -------------------时间选择结束---------------------
-const setContractType = () => {
-  if (dataCenter.contractType == 1) {
-    dataCenter.contractType = 0;
-  } else {
-    dataCenter.contractType = 1;
-  }
+const setContractType = (type) => {
+  // if (dataCenter.contractType == 1) {
+
+  //   dataCenter.contractType = 1;
+  // }
+  dataCenter.contractType = type;
+  // } else {
   setTimeout(() => {
     if (chart) {
       chart.resize();
@@ -2089,7 +2312,7 @@ const handle3Ok = () => {
 }
 const subInputNumber = () => {
   if (inputNumber.value.msk_num == '' || inputNumber.value.Q0 == '') {
-    message.warning('请输入河段数或时段末最大流量');
+    message.warning('请输入河段数或断面出口流量');
     return
   }
   schemeAddMsknum(inputNumber.value).then(res => {
@@ -2292,7 +2515,13 @@ onMounted(() => {
   .result-title {
     text-align: center;
     font-size: 20px;
-    padding: 10px;
+    padding: 0px;
+    position: relative;
+
+    .result-title-btn {
+      position: absolute;
+      right: 10px;
+    }
   }
 
   .result-title:before {
@@ -2312,7 +2541,7 @@ onMounted(() => {
     content: '';
     display: block;
     height: 1px;
-    width: calc(50% - 60px);
+    width: calc(50% - 180px);
     background-color: #ccc;
     /*颜色需与主题大背景色一致*/
     position: relative;
@@ -2368,6 +2597,19 @@ onMounted(() => {
   line-height: 52px !important;
   font-size: 20px;
 }
+
+.new-flex-left {
+  div:nth-child(1) {
+    background-color: #fff !important;
+    border: 1px solid #2D74E7 !important;
+    color: #2D74E7 !important;
+  }
+
+  div {
+    background-color: #2D74E7 !important;
+    color: #fff !important;
+  }
+}
 </style>
 <style lang="less">
 #charts-id table {
@@ -2499,4 +2741,51 @@ onMounted(() => {
   text-align: right;
   margin-bottom: 10px;
 }
+
+.rainfall-text-all {
+  display: flex;
+
+  button:first-child {
+    margin-right: 10px;
+  }
+
+  button:last-child {
+    margin-left: auto;
+    margin-right: 0rem; // 合适即可
+  }
+}
+
+.result-table-bug {
+  .ant-table-fixed-header .ant-table-scroll .ant-table-header {
+    opacity: 1 !important;
+    margin-bottom: -8px !important;
+  }
+
+  .ant-table-hide-scrollbar {
+    min-width: initial !important;
+    scrollbar-color: initial !important;
+  }
+}
+
+.table-inner {
+  width: 100%;
+  border-collapse: collapse;
+
+
+  th,
+  td {
+    border: 1px solid #CADAFD;
+    padding: 0px;
+    text-align: center;
+  }
+
+  th {
+    background-color: #fafafa;
+    font-family: "黑体";
+  }
+
+  tr:nth-child(even) {
+    background-color: #f9f9f9;
+  }
+}
 </style>

+ 21 - 5
src/views/programme/honghao.vue

@@ -145,7 +145,7 @@
         <div class="table-list">
           <div class="right-box">
             <div>
-              <ul>
+              <ul class="custom-list">
                 <li>
                   <div>时间</div>
                   <div>流量(m³/s)</div>
@@ -155,6 +155,9 @@
                   <div>{{ dataCenter.activeCharts.q[index] }}</div>
                 </li>
               </ul>
+              <div style="margin-left: 24px; position: relative; top: -6px;">
+                共计{{dataCenter?.activeCharts?.t?.length}}条
+              </div>
             </div>
           </div>
         </div>
@@ -206,12 +209,12 @@ let dataCenter = reactive({
       key: 'etime',
     },
     {
-      title: '洪量',
+      title: '洪量(万m³)',
       dataIndex: 'volume',
       key: 'volume',
     },
     {
-      title: '洪峰流量',
+      title: '洪峰流量(m³/s)',
       dataIndex: 'peak',
       key: 'peak',
     },
@@ -510,7 +513,7 @@ function setCharts() {
         //x轴文字的配置
         show: true,
         rotate: '45',
-        interval:dataCenter.activeCharts.t.length/(dataCenter.activeCharts.t.length/2),
+        // interval:dataCenter.activeCharts.t.length/(dataCenter.activeCharts.t.length/2),
         formatter: function (val) {
           var strs = val.split(''); //字符串数组
           var str = '';
@@ -629,13 +632,21 @@ onMounted(() => {
     width: 400px;
     height: 600px;
     overflow: auto;
-    margin-left: 20px;
+    // margin-left: 20px;
     position: relative;
+    div{
+      position: initial
+    }
     ul {
       // position: relative;
+      height: 560px;
+      overflow: auto;
       li {
         display: flex;
         line-height: 36px;
+        border-bottom: 1px solid #f0f0f0;
+        border-left: 1px solid #f0f0f0;
+        border-right: 1px solid #f0f0f0;
         & > div {
           // flex: 1;
           text-align: center;
@@ -651,8 +662,13 @@ onMounted(() => {
         }
       }
       li:nth-child(1) {
+        border-top: 1px solid #f0f0f0;
         position: absolute;
         width: 100%;
+        background-color: #f0f0f0;
+      }
+      li:nth-child(2n+1){
+        background-color: #fafafa;
       }
       li:nth-child(2) {
         padding-top: 36px;

+ 2 - 2
src/views/realTime/regimen/index.vue

@@ -48,7 +48,7 @@
                   <div>{{ item.time }}</div>
                   <div>{{ item.id_82 || '--' }}</div>
                   <div>{{ item.id_83 || '--' }}</div>
-                  <div>{{ item.q || '--' }}</div>
+                  <div>{{ item.id_85 || '--' }}</div>
                 </li>
               </ul>
             </div>
@@ -186,7 +186,7 @@ async function getHistoryRain() {
     modalData.optimizeData = res.data
     res.data.forEach(element => {
       echartsData.time.push(element.time)
-      echartsData.q.push(element.q?element.q:'--')
+      echartsData.q.push(element.id_85?element.id_85:'--')
       echartsData.z_83.push(element.id_83?element.id_83:'--')
       echartsData.z_82.push(element.id_82?element.id_82:'--')
     });