From d1cb4f799dc84410817905e16ab6e2b360cc1a35 Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期二, 29 八月 2023 08:57:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/components/view/measurementManagement.vue | 1097 +++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 797 insertions(+), 300 deletions(-)

diff --git a/src/components/view/measurementManagement.vue b/src/components/view/measurementManagement.vue
index 71ae13e..fbd1415 100644
--- a/src/components/view/measurementManagement.vue
+++ b/src/components/view/measurementManagement.vue
@@ -10,7 +10,7 @@
     >
       <el-row>
         <el-col :span="12" class="top_left_name">{{
-          radio1 == 1 ? "璁¢噺鍙拌处" : "璁¢噺棰勬祴"
+          radio1 == 1 ? "璁¢噺鍙拌处" : "璁¢噺璁″垝"
         }}</el-col>
         <el-col :span="12" style="text-align: right;">
           <el-button
@@ -30,56 +30,35 @@
       </el-row>
       <div class="top_div">
         <div class="table_top_div">
-          <span>璁¢噺缂栧彿锛�</span>
-          <el-select
-            class="table_top_input"
+          <span>{{ radio1 == 1 ? "璁¢噺缂栧彿锛�" : "璁″垝鍗曞彿锛�" }}</span>
+          <el-input
+            class="frame_input"
+            v-model="measureLedgerPage.code"
+            :placeholder="radio1 == 1 ? '璇疯緭鍏ヨ閲忕紪鍙凤細' : '璇疯緭鍏ヨ鍒掑崟鍙凤細'"
             size="small"
-            v-model="value"
-            placeholder="璇烽�夋嫨"
+          />
+          <span style="margin-left: 30px;" v-show="radio1 == 1"
+            >浠櫒璁惧鍚嶇О锛�</span
           >
-            <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
-          <span>浠櫒璁惧鍚嶇О锛�</span>
-          <el-select
-            class="table_top_input"
+          <el-input
+            v-show="radio1 == 1"
+            class="frame_input"
+            v-model="measureLedgerPage.deviceName"
+            placeholder="璇疯緭鍏ヤ华鍣ㄨ澶囧悕绉�"
             size="small"
-            v-model="value"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
-          <span>璁¢噺鍗曚綅锛�</span>
-          <el-select
-            class="table_top_input"
+          />
+          <span style="margin-left: 30px;">璁¢噺鍗曚綅锛�</span>
+          <el-input
+            class="frame_input"
+            v-model="measureLedgerPage.measureUnit"
+            placeholder="璇疯緭鍏ヨ閲忓崟浣�"
             size="small"
-            v-model="value"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
+          />
           <el-button size="mini" @click="reset"><span>閲� 缃�</span></el-button>
           <el-button
             size="mini"
             type="primary"
-            @click="selectSearch"
+            @click="selectTableData"
             style="background: #004EA2;"
             ><span>鏌� 璇�</span></el-button
           >
@@ -100,52 +79,99 @@
           <el-table
             v-show="radio1 == 1"
             ref="multipleTable"
-            :data="tableData"
+            :header-cell-style="{ 'text-align': 'center' }"
+            :cell-style="{ 'text-align': 'center' }"
+            :data="measureLedgerPageData"
             border
             tooltip-effect="dark"
             class="middle_middle_table"
             height="calc(100vh - 372px)"
             width="100%"
-            @selection-change="handleSelectionChange"
           >
             <el-table-column type="selection" width="55"> </el-table-column>
-            <el-table-column label="浠櫒璁惧缂栧彿" min-width="130px">
+            <el-table-column label="浠櫒璁惧缂栧彿" min-width="130px" prop="code">
             </el-table-column>
-            <el-table-column label="浠櫒璁惧鍚嶇О" min-width="130px">
+            <el-table-column label="浠櫒璁惧鍚嶇О" prop="name" min-width="130px">
             </el-table-column>
             <el-table-column
               label="娴嬮噺鑼冨洿"
               min-width="130px"
+              prop="measuring_range"
             ></el-table-column>
             <el-table-column
               label="璁¢噺鍛ㄦ湡"
               min-width="130px"
-            ></el-table-column>
+              prop="measure_period"
+            >
+              <template slot-scope="scope">
+                <el-tag
+                  v-if="scope.row.measure_period !== undefined"
+                  disable-transitions
+                  style="color: black;"
+                  >{{ scope.row.measure_period + "/鏈�" }}</el-tag
+                ></template
+              >
+            </el-table-column>
             <el-table-column
               label="璁¢噺缁撴灉"
               min-width="130px"
-            ></el-table-column>
+              prop="measure_result"
+            >
+              <template slot-scope="scope">
+                <el-tag
+                  v-if="scope.row.measure_result == 1"
+                  disable-transitions
+                  type="success"
+                  >杩愯</el-tag
+                >
+                <el-tag
+                  v-else-if="scope.row.measure_result == 2"
+                  disable-transitions
+                  type="danger"
+                  >澶卞噯</el-tag
+                >
+                <el-tag
+                  v-else-if="scope.row.measure_result == null"
+                  disable-transitions
+                  type="info"
+                  >鏈閲�</el-tag
+                >
+              </template>
+            </el-table-column>
             <el-table-column
               label="璁¢噺鏃ユ湡"
               min-width="130px"
+              prop="measureDate"
             ></el-table-column>
             <el-table-column
               label="璁¢噺鏈夋晥鏈�"
               min-width="130px"
+              prop="validityEnd"
             ></el-table-column>
-            <el-table-column label="璐熻矗浜�" min-width="130px"></el-table-column>
+            <el-table-column
+              label="璐熻矗浜�"
+              min-width="130px"
+              prop="person_charge"
+            ></el-table-column>
             <el-table-column
               label="鍒涘缓鏃ユ湡"
               min-width="130px"
+              prop="createTime"
             ></el-table-column>
-            <el-table-column label="鍒涘缓浜�" min-width="130px"></el-table-column>
+            <el-table-column
+              label="鍒涘缓浜�"
+              min-width="130px"
+              prop="founder"
+            ></el-table-column>
             <el-table-column
               label="璁¢噺鍗曚綅"
               min-width="130px"
+              prop="plan_unit"
             ></el-table-column>
             <el-table-column
               label="璁¢噺缂栧彿"
-              min-width="130px"
+              min-width="200px"
+              prop="measure_number"
             ></el-table-column>
             <el-table-column
               fixed="right"
@@ -154,57 +180,79 @@
               label="鎿嶄綔"
               show-overflow-tooltip
             >
-              <el-button
-                type="text"
-                size="mini"
-                @click="
-                  addShow = true;
-                  viewResume = false;
-                "
-                >鏌ョ湅璁¢噺灞ュ巻</el-button
-              >
-              <el-button type="text" size="mini">鏌ョ湅闄勪欢</el-button>
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  size="mini"
+                  @click="showRecord(scope.row)"
+                  >鏌ョ湅璁¢噺灞ュ巻</el-button
+                >
+                <el-button type="text" size="mini">鏌ョ湅闄勪欢</el-button>
+              </template>
             </el-table-column>
           </el-table>
           <el-table
             v-show="radio1 == 2"
             ref="multipleTable"
-            :data="tableData"
+            :data="measurePlanPageData"
+            :header-cell-style="{ 'text-align': 'center' }"
+            :cell-style="{ 'text-align': 'center' }"
             border
             tooltip-effect="dark"
             class="middle_middle_table"
             height="calc(100vh - 372px)"
-            @selection-change="handleSelectionChange"
           >
             <el-table-column type="selection" width="55"> </el-table-column>
-            <el-table-column label="璁″垝鍗曞彿" min-width="130px">
-            </el-table-column>
-            <el-table-column label="璁惧缂栫爜" min-width="130px">
-            </el-table-column>
             <el-table-column
-              label="璁惧鍚嶇О"
+              label="璁″垝鍗曞彿"
+              prop="planNumber"
               min-width="130px"
-            ></el-table-column>
+            >
+            </el-table-column>
             <el-table-column
               label="璁″垝鏃ユ湡"
               min-width="130px"
+              prop="planDate"
             ></el-table-column>
             <el-table-column
               label="璁″垝鐘舵��"
               min-width="130px"
-            ></el-table-column>
+              prop="planStatue"
+            >
+              <template slot-scope="scope">
+                <el-tag
+                  v-if="scope.row.planStatue == 'y'"
+                  disable-transitions
+                  type="success"
+                  >宸插畬鎴�</el-tag
+                >
+                <el-tag
+                  v-else-if="scope.row.planStatue == 'n'"
+                  disable-transitions
+                  type="danger"
+                  >鏈畬鎴�</el-tag
+                >
+              </template>
+            </el-table-column>
             <el-table-column
               label="璁¢噺璐熻矗浜�"
               min-width="130px"
+              prop="personCharge"
             ></el-table-column>
             <el-table-column
               label="璁¢噺鍗曚綅"
               min-width="130px"
+              prop="planUnit"
             ></el-table-column>
-            <el-table-column label="鍒涘缓浜�" min-width="130px"></el-table-column>
+            <el-table-column
+              label="鍒涘缓浜�"
+              min-width="130px"
+              prop="founder"
+            ></el-table-column>
             <el-table-column
               label="鍒涘缓鏃ユ湡"
               min-width="130px"
+              prop="createTime"
             ></el-table-column>
             <el-table-column
               fixed="right"
@@ -212,16 +260,15 @@
               label="鎿嶄綔"
               show-overflow-tooltip
             >
-              <el-button
-                type="text"
-                size="mini"
-                @click="
-                  addShow = true;
-                  viewResume = false;
-                "
-                >鏌ョ湅璁¢噺灞ュ巻</el-button
-              >
-              <el-button type="text" size="mini">鏌ョ湅闄勪欢</el-button>
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  size="mini"
+                  @click="showRecord(scope.row)"
+                  >鏌ョ湅璁¢噺灞ュ巻</el-button
+                >
+                <el-button type="text" size="mini">鏌ョ湅闄勪欢</el-button>
+              </template>
             </el-table-column>
           </el-table>
         </div>
@@ -231,24 +278,24 @@
             v-show="radio1 == 1"
             @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
-            :current-page="currentPage4"
-            :page-sizes="[12, 20, 30, 40]"
+            :current-page="currentPage"
+            :page-sizes="[10, 15, 20, 25]"
             :pager-count="9"
             :page-size="12"
             layout="total, sizes, prev, pager, next, jumper"
-            :total="400"
+            :total="measureLedgerTotal"
           >
           </el-pagination>
           <el-pagination
             v-show="radio1 == 2"
             @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
-            :current-page="currentPage4"
-            :page-sizes="[12, 20, 30, 40]"
+            :current-page="currentPage"
+            :page-sizes="[10, 15, 20, 25]"
             :pager-count="9"
             :page-size="12"
             layout="total, sizes, prev, pager, next, jumper"
-            :total="600"
+            :total="measureLedgerPageTotal"
           >
           </el-pagination>
         </div>
@@ -280,6 +327,7 @@
             v-show="viewResume == true"
             type="primary"
             size="mini"
+            @click="sunmitPlanForm"
             icon="el-icon-plus"
             :style="`background: #3a7bfa; opacity: ${addShow ? 1 : 0}`"
             >淇濆瓨</el-button
@@ -287,131 +335,376 @@
         </el-col>
       </el-row>
       <div class="second_div_main">
-        <div class="second_div_top">
-          <el-descriptions class="secode_div_top_descriptions">
-            <template slot="title">
-              <span>璁″垝淇℃伅</span>
-              <span v-show="viewResume == false" style="font-size: 14px;"
-                >&ensp;宸插畬鎴�</span
+        <el-form :model="addFormDevice" :rules="rules" ref="ruleFormDevice">
+          <!-- form琛ㄥ崟 -->
+          <div class="second_div_top">
+            <el-descriptions
+              class="secode_div_top_descriptions"
+              v-show="viewResume == false"
+            >
+              <template slot="title">
+                <span>璁″垝淇℃伅</span>
+                <span
+                  v-show="measurePlanPage.accountOrPlan == false"
+                  :style="
+                    `font-size: 14px; color: ${okOrNo == 'y' ? 'green' : 'red'}`
+                  "
+                  >&ensp;{{ okOrNo == "y" ? "宸插畬鎴�" : "鏈畬鎴�" }}</span
+                >
+              </template>
+              <el-descriptions-item label="璁″垝缂栧彿">{{
+                measureTop.plan_number
+              }}</el-descriptions-item>
+              <el-descriptions-item label="鍒涘缓浜�">{{
+                measureTop.founder
+              }}</el-descriptions-item>
+              <el-descriptions-item label="鍒涘缓鏃ユ湡">{{
+                measureTop.createTime
+              }}</el-descriptions-item>
+              <el-descriptions-item label="璁″垝鏃ユ湡">{{
+                measureTop.planTime
+              }}</el-descriptions-item>
+              <el-descriptions-item label="璁″垝鍗曚綅">{{
+                measureTop.plan_unit
+              }}</el-descriptions-item>
+              <el-descriptions-item label="璐熻矗浜�">{{
+                measureTop.person_charge
+              }}</el-descriptions-item>
+            </el-descriptions>
+            <div
+              class="secode_div_top_descriptions_add"
+              v-show="viewResume == true"
+            >
+              <el-form-item
+                required
+                prop="plannedDate"
+                label="璁″垝鏃ユ湡锛�"
+                style="width: 30%"
               >
-            </template>
-            <el-descriptions-item label="璁″垝缂栧彿"
-              >kooriookami</el-descriptions-item
-            >
-            <el-descriptions-item label="鍒涘缓浜�"
-              >18100000000</el-descriptions-item
-            >
-            <el-descriptions-item label="鍒涘缓鏃ユ湡">鑻忓窞甯�</el-descriptions-item>
-            <el-descriptions-item label="璁″垝鏃ユ湡">鑻忓窞甯�</el-descriptions-item>
-            <el-descriptions-item label="璁″垝鍗曚綅"
-              >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</el-descriptions-item
-            >
-            <el-descriptions-item label="璐熻矗浜�">鑻忓窞甯�</el-descriptions-item>
-          </el-descriptions>
-        </div>
-        <div class="second_div_middle">
-          <div class="el_divider_span">璁惧淇℃伅</div>
-          <el-divider></el-divider>
-        </div>
-        <div class="second_div_table">
-          <!-- <div>
-            <el-button size="mini" style="padding: 5px 7px;" icon="el-icon-plus"
-              ><span style="font-size: 14px;">鎵归噺璁¢噺</span></el-button
-            >
-          </div> -->
-          <div v-show="viewResume == true">
-            <el-table
-              ref="multipleTable"
-              :data="tableData"
-              tooltip-effect="dark"
-              border
-              style="width: 100%; margin-top: 12px;"
-              height="calc(100vh - 382px)"
-            >
-              <el-table-column type="selection" width="55" min-width="5%">
-              </el-table-column>
-              <el-table-column label="浠櫒璁惧缂栫爜" min-width="10%">
-              </el-table-column>
-              <el-table-column
-                label="浠櫒璁惧鍚嶇О"
-                min-width="10%"
-              ></el-table-column>
-              <el-table-column
-                label="娴嬮噺鑼冨洿"
-                min-width="10%"
-              ></el-table-column>
-              <el-table-column
-                label="璁¢噺鍛ㄦ湡"
-                min-width="10%"
-              ></el-table-column>
-              <el-table-column
-                label="璁¢噺缁撴灉"
-                min-width="10%"
-              ></el-table-column>
-              <el-table-column
-                label="璁¢噺鏃ユ湡"
-                min-width="10%"
-              ></el-table-column>
-              <el-table-column
-                label="璁¢噺鏈夋晥鏈�"
-                min-width="10%"
-              ></el-table-column>
-              <el-table-column label="鎿嶄綔" min-width="10%">
-                <el-button type="text" size="mini">浣滃簾</el-button>
-              </el-table-column>
-            </el-table>
-            <div class="middle_under_div">
-              <el-pagination
-                @size-change="handleSizeChange"
-                @current-change="handleCurrentChange"
-                :current-page="currentPage4"
-                :page-sizes="[12, 20, 30, 40]"
-                :pager-count="9"
-                :page-size="12"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="600"
+                <el-date-picker
+                  v-model="addFormDevice.plannedDate"
+                  value-format="yyyy-MM-dd"
+                  type="daterange"
+                  range-separator="~"
+                  start-placeholder="寮�濮嬫棩鏈�"
+                  end-placeholder="缁撴潫鏃ユ湡"
+                >
+                </el-date-picker>
+              </el-form-item>
+              <el-form-item
+                label="璁″垝鍗曚綅锛�"
+                prop="planUnit"
+                required
+                style="width: 20%"
               >
-              </el-pagination>
+                <el-input
+                  style="width: 206px"
+                  placeholder="璇疯緭鍏ヨ鍒掑崟浣�"
+                  clearable
+                  v-model="addFormDevice.planUnit"
+                ></el-input>
+              </el-form-item>
+              <el-form-item
+                label="璐熻矗浜猴細"
+                prop="personCharge"
+                required
+                style="width: 20%"
+              >
+                <el-select
+                  v-model="addFormDevice.personCharge"
+                  style="width: 206px"
+                  placeholder="璐熻矗浜�"
+                  class="table_top"
+                >
+                  <el-option
+                    v-for="item in createPerson"
+                    :key="item.index"
+                    :label="item.name"
+                    :value="item.id"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
             </div>
           </div>
-          <div v-show="viewResume == false">
-            <el-table
-              :data="tableData"
-              tooltip-effect="dark"
-              border
-              :row-style="{ height: '50px' }"
-              :cell-style="{ padding: '0px' }"
-              style="width: 100%; margin-top: 12px;"
-              height="calc(100vh - 382px)"
-            >
-              <el-table-column label="浠櫒璁惧缂栫爜"> </el-table-column>
-              <el-table-column label="浠櫒璁惧鍚嶇О"></el-table-column>
-              <el-table-column label="娴嬮噺鑼冨洿"></el-table-column>
-              <el-table-column label="璁¢噺鍛ㄦ湡"></el-table-column>
-              <el-table-column label="璁¢噺缁撴灉"></el-table-column>
-              <el-table-column label="璁¢噺鏃ユ湡"></el-table-column>
-              <el-table-column label="璁¢噺鏈夋晥鏈�"></el-table-column>
-              <el-table-column label="璐熻矗浜�"></el-table-column>
-              <el-table-column label="鍒涘缓鏃ユ湡"></el-table-column>
-              <el-table-column label="鍒涘缓浜�"></el-table-column>
-              <el-table-column label="璁¢噺鍗曚綅"></el-table-column>
-              <el-table-column label="璁¢噺缂栧彿"></el-table-column>
-            </el-table>
-            <div class="middle_under_div">
-              <el-pagination
-                @size-change="handleSizeChange"
-                @current-change="handleCurrentChange"
-                :current-page="currentPage4"
-                :page-sizes="[12, 20, 30, 40]"
-                :pager-count="9"
-                :page-size="12"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="600"
+          <div class="second_div_middle">
+            <div class="el_divider_span">璁惧淇℃伅</div>
+            <el-divider></el-divider>
+          </div>
+          <div class="second_div_table">
+            <div style="float: right;padding-bottom: 8px">
+              <el-button size="mini" type="primary" @click="addDeviceAdd">
+                <span style="font-size: 14px;">鏂板璁惧</span></el-button
               >
-              </el-pagination>
+            </div>
+            <div v-show="viewResume == true">
+              <el-table
+                ref="multipleTableDevice"
+                tooltip-effect="dark"
+                :data="addFormDevice.measureLedgerList"
+                header-cell-class-name="addHeaderCellClassName"
+                border
+                class="end_table"
+                height="calc(100vh - 380px)"
+              >
+                <el-table-column
+                  label="浠櫒璁惧缂栫爜"
+                  min-width="10%"
+                  prop="code"
+                >
+                </el-table-column>
+                <el-table-column min-width="10%" prop="name">
+                  <template slot="header">
+                    <span class="requiredclass">浠櫒璁惧鍚嶇О</span>
+                  </template>
+                  <template scope="scope">
+                    <el-form-item
+                      :prop="`measureLedgerList[` + scope.$index + `].deviceId`"
+                      :rules="{
+                        required: true,
+                        trigger: 'change'
+                      }"
+                    >
+                      <el-select
+                        v-model="scope.row.deviceId"
+                        @change="nameAndCode(scope)"
+                        size="small"
+                        placeholder="璇烽�夋嫨璁惧"
+                        class="table_top"
+                      >
+                        <el-option
+                          v-for="item in deviceIdAndNameAndCode"
+                          :key="item.index"
+                          :label="item.name"
+                          :value="item.id"
+                        ></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </template>
+                </el-table-column>
+                <el-table-column label="娴嬮噺鑼冨洿" min-width="10%">
+                  <template scope="scope">
+                    <el-form-item
+                      :prop="
+                        `measureLedgerList[` + scope.$index + `].measuringRange`
+                      "
+                      :rules="{
+                        required: true,
+                        trigger: 'blur'
+                      }"
+                    >
+                      <el-input
+                        placeholder="璇疯緭鍏ユ祴閲忚寖鍥�"
+                        clearable
+                        size="small"
+                        v-model="
+                          addFormDevice.measureLedgerList[scope.$index]
+                            .measuringRange
+                        "
+                      ></el-input>
+                    </el-form-item>
+                  </template>
+                </el-table-column>
+                <el-table-column label="璁¢噺鍛ㄦ湡" min-width="5%">
+                  <template scope="scope">
+                    <span
+                      v-show="
+                        addFormDevice.measureLedgerList[scope.$index]
+                          .measurePeriod !== ''
+                      "
+                      >{{
+                        addFormDevice.measureLedgerList[scope.$index]
+                          .measurePeriod
+                      }}/鏈�</span
+                    >
+                  </template>
+                </el-table-column>
+                <el-table-column label="璁¢噺缁撴灉" min-width="10%">
+                  <template scope="scope">
+                    <el-select
+                      v-model="
+                        addFormDevice.measureLedgerList[scope.$index]
+                          .measureResult
+                      "
+                      style="padding-top: 4px;"
+                      size="small"
+                      placeholder="璇烽�夋嫨璁¢噺缁撴灉"
+                      class="table_top"
+                    >
+                      <el-option label="姝e父" value="1"></el-option>
+                      <el-option label="澶卞噯" value="2"></el-option>
+                    </el-select> </template
+                ></el-table-column>
+                <el-table-column width="200px">
+                  <template slot="header">
+                    <span class="requiredclass">璁¢噺鏃ユ湡</span>
+                  </template>
+                  <template scope="scope">
+                    <el-form-item
+                      :prop="
+                        `measureLedgerList[` + scope.$index + `].measureDate`
+                      "
+                      :rules="{
+                        required: true,
+                        trigger: 'change'
+                      }"
+                    >
+                      <el-date-picker
+                        size="small"
+                        style="width: 150px;"
+                        v-model="
+                          addFormDevice.measureLedgerList[scope.$index]
+                            .measureDate
+                        "
+                        value-format="yyyy-MM-dd"
+                        type="date"
+                        placeholder="閫夋嫨鏃ユ湡"
+                      >
+                      </el-date-picker>
+                    </el-form-item>
+                  </template>
+                </el-table-column>
+                <el-table-column width="300px">
+                  <template slot="header">
+                    <span class="requiredclass">璁¢噺鏈夋晥鏈�</span>
+                  </template>
+                  <template scope="scope">
+                    <el-form-item
+                      :prop="
+                        `measureLedgerList[` + scope.$index + `].planDateList`
+                      "
+                      :rules="{
+                        required: true,
+                        trigger: 'change'
+                      }"
+                    >
+                      <el-date-picker
+                        v-model="
+                          addFormDevice.measureLedgerList[scope.$index]
+                            .planDateList
+                        "
+                        value-format="yyyy-MM-dd"
+                        size="small"
+                        style="width: 270px"
+                        @change="pickerplanDateList(scope)"
+                        type="daterange"
+                        range-separator="~"
+                        start-placeholder="寮�濮嬫棩鏈�"
+                        end-placeholder="缁撴潫鏃ユ湡"
+                      >
+                      </el-date-picker>
+                    </el-form-item>
+                  </template>
+                </el-table-column>
+                <el-table-column label="鎿嶄綔" min-width="10%">
+                  <template scope="scope">
+                    <el-button
+                      type="text"
+                      size="mini"
+                      @click="measureLedgerListDelete(scope)"
+                      >鍒犻櫎</el-button
+                    >
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+            <div v-show="viewResume == false">
+              <el-table
+                :data="recordData"
+                tooltip-effect="dark"
+                :header-cell-style="{ 'text-align': 'center' }"
+                border
+                :row-style="{ height: '50px' }"
+                :cell-style="{ padding: '0px', 'text-align': 'center' }"
+                style="width: 100%; margin-top: 12px;"
+                height="calc(100vh - 400px)"
+              >
+                <el-table-column
+                  label="浠櫒璁惧缂栫爜"
+                  prop="code"
+                ></el-table-column>
+                <el-table-column
+                  label="浠櫒璁惧鍚嶇О"
+                  prop="name"
+                ></el-table-column>
+                <el-table-column
+                  label="娴嬮噺鑼冨洿"
+                  prop="measuring_range"
+                ></el-table-column>
+                <el-table-column
+                  label="璁¢噺鍛ㄦ湡"
+                  prop="measure_period"
+                ></el-table-column>
+                <el-table-column label="璁¢噺缁撴灉" prop="measure_result">
+                  <template slot-scope="scope">
+                    <el-tag
+                      v-if="scope.row.measure_result == 1"
+                      disable-transitions
+                      type="success"
+                      >杩愯</el-tag
+                    >
+                    <el-tag
+                      v-else-if="scope.row.measure_result == 2"
+                      disable-transitions
+                      type="danger"
+                      >澶卞噯</el-tag
+                    >
+                    <el-tag
+                      v-else-if="scope.row.measure_result == null"
+                      disable-transitions
+                      type="info"
+                      >鏈閲�</el-tag
+                    >
+                  </template></el-table-column
+                >
+                <el-table-column
+                  label="璁¢噺鏃ユ湡"
+                  prop="measureDate"
+                ></el-table-column>
+                <el-table-column
+                  label="璁¢噺鏈夋晥鏈�"
+                  prop="validityEnd"
+                ></el-table-column>
+                <el-table-column
+                  label="璐熻矗浜�"
+                  prop="personCharge"
+                ></el-table-column>
+                <el-table-column
+                  label="鍒涘缓鏃ユ湡"
+                  prop="createTime"
+                ></el-table-column>
+                <el-table-column
+                  label="鍒涘缓浜�"
+                  prop="founder"
+                ></el-table-column>
+                <el-table-column
+                  label="璁¢噺鍗曚綅"
+                  prop="plan_unit"
+                ></el-table-column>
+                <el-table-column
+                  width="200px"
+                  label="璁¢噺缂栧彿"
+                  prop="measure_number"
+                ></el-table-column>
+              </el-table>
+              <div
+                class="middle_under_div"
+                v-show="measurePlanPage.accountOrPlan == false"
+              >
+                <el-pagination
+                  @size-change="handleSizeChange"
+                  @current-change="handleCurrentChange"
+                  :current-page="currentPage"
+                  :page-sizes="[10, 15, 20, 25]"
+                  :pager-count="9"
+                  :page-size="12"
+                  layout="total, sizes, prev, pager, next, jumper"
+                  :total="measurePlanPageTotal"
+                >
+                </el-pagination>
+              </div>
             </div>
           </div>
-        </div>
+        </el-form>
       </div>
     </div>
   </div>
@@ -435,106 +728,261 @@
       radio1: 1, // 璁¢噺鍙拌处璁¢噺璁″垝鍒囨崲
       addShow: false, // 鏂板璁¢噺
       viewResume: true, // 鐐瑰嚮鏌ョ湅灞ュ巻鏄剧ず
-      currentPage4: 4,
-      value: "",
-      options: [
-        {
-          value: "閫夐」1",
-          label: "榛勯噾绯�"
-        },
-        {
-          value: "閫夐」2",
-          label: "鍙岀毊濂�"
-        },
-        {
-          value: "閫夐」3",
-          label: "铓典粩鐓�"
-        },
-        {
-          value: "閫夐」4",
-          label: "榫欓』闈�"
-        },
-        {
-          value: "閫夐」5",
-          label: "鍖椾含鐑ら腑"
-        }
-      ],
-      tableData: [
-        {
-          date: "2016-05-03",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-02",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-04",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-01",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-08",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-06",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-07",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-07",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-07",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-07",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-07",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        },
-        {
-          date: "2016-05-07",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
-        }
-      ]
+      currentPage: 1,
+      measureLedgerPage: {
+        code: "", // 璁″垝鍙拌处璁¢噺缂栧彿
+        deviceName: "", // 璁″垝鍙拌处浠櫒璁惧鍚嶇О
+        measureUnit: "", // 璁″垝鍙拌处璁¢噺鍗曚綅
+        pageNo: 1,
+        pageSize: 10
+      },
+      measurePlanPage: {
+        code: "", // 璁″垝鍗曞彿
+        meteringUnit: "", // 璁¢噺鍗曚綅
+        pageNo: 1,
+        pageSize: 10
+      },
+      key: 0,
+      measurePlanPageData: [], // 璁¢噺璁″垝琛ㄦ牸鏁版嵁
+      measureLedgerTotal: "",
+      measureLedgerPageData: [], // 璁¢噺鍙拌处琛ㄦ牸鏁版嵁
+      measureLedgerPageTotal: "",
+      recordData: [],
+      measurePlanPage: {
+        pageNo: 1,
+        pageSize: 10,
+        accountOrPlan: true,
+        measureId: ""
+      },
+      measureTop: {},
+      measurePlanPageTotal: "",
+      okOrNo: "",
+      deviceIdAndNameAndCode: [],
+      addFormDevice: {
+        plannedDate: [], // 璁″垝鏃ユ湡寮�濮嬫椂闂寸粨鏉熸椂闂撮�夋嫨鍣�
+        planDateBegin: "", // 璁″垝鏃ユ湡寮�濮嬫椂闂�
+        planDateEnd: "", // 璁″垝鏃ユ湡缁撴潫鏃堕棿
+        personCharge: "", //璐熻矗浜�
+        planUnit: "", // 璁″垝鍗曚綅
+        measureLedgerList: []
+      },
+      createPerson: [], // 鍒涘缓浜哄垪琛�
+      rules: {
+        planUnit: [
+          { required: true, message: "璇疯緭鍏ヨ鍒掑崟浣�", trigger: "blur" },
+          { min: 1, max: 25, message: "闀垮害鍦� 1 鍒� 25 涓瓧绗�", trigger: "blur" }
+        ],
+        personCharge: [
+          { required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }
+        ],
+        plannedDate: [
+          {
+            type: "array",
+            required: true,
+            message: "璇烽�夋嫨璁″垝鏃ユ湡鍖洪棿",
+            fields: {
+              //tpye绫诲瀷璇曟儏鍐佃�屽畾,鎵�浠ュ鏋滆繑鍥炵殑鏄痙ate灏辨敼鎴恉ate
+              0: { type: "string", required: true, message: "璇烽�夋嫨寮�濮嬫棩鏈�" },
+              1: { type: "string", required: true, message: "璇烽�夋嫨缁撴潫鏃ユ湡" }
+            }
+          }
+        ]
+      }
     };
   },
+  mounted() {
+    this.measureLedgerPageMethods(); // 鍒濆鍖栬皟鐢ㄨ鍒掑彴璐﹁〃鏍兼暟鎹�
+  },
   methods: {
-    handleSizeChange(val) {
-      console.log(`姣忛〉 ${val} 鏉);
+    handleSizeChange(pageSize) {
+      if (this.radio1 == 1) {
+        this.measureLedgerPage.pageSize = pageSize;
+        this.measureLedgerPageMethods();
+      } else if (this.radio1 == 2) {
+        this.measurePlanPage.pageSize = pageSize;
+        this.measurePlanPageMethods();
+      }
     },
-    handleCurrentChange(val) {
-      console.log(`褰撳墠椤�: ${val}`);
+    handleCurrentChange(pageNo) {
+      if (this.radio1 == 1) {
+        this.measureLedgerPage.pageNo = pageNo;
+        this.measureLedgerPageMethods();
+      } else if (this.radio1 == 2) {
+        this.measurePlanPage.pageNo = pageNo;
+        this.measurePlanPageMethods();
+      }
+    },
+    measureLedgerPageMethods() {
+      this.$axios
+        .get(this.$api.url.measureLedgerPageTable, {
+          params: this.measureLedgerPage
+        })
+        .then(res => {
+          this.measureLedgerPageData = res.data.row;
+          this.measureLedgerTotal = res.data.total;
+        });
+    },
+    measurePlanPageMethods() {
+      this.$axios
+        .get(this.$api.url.meteringPlanPageTable, {
+          params: this.measurePlanPage
+        })
+        .then(res => {
+          this.measurePlanPageData = res.data.row;
+          this.measureLedgerPageTotal = res.data.total;
+        });
+    },
+    reset() {
+      if (this.radio1 == 1) {
+        this.measureLedgerPage = {
+          code: "", // 璁″垝鍙拌处璁¢噺缂栧彿
+          measureUnit: "", // 璁″垝鍙拌处浠櫒璁惧鍚嶇О
+          deviceName: "", // 璁″垝鍙拌处璁¢噺鍗曚綅
+          pageNo: 1,
+          pageSize: 10
+        };
+        this.measureLedgerPageMethods();
+      } else {
+        this.measurePlanPage = {
+          code: "", // 璁″垝鍗曞彿
+          meteringUnit: "", // 璁¢噺鍗曚綅
+          pageNo: 1,
+          pageSize: 10
+        };
+        this.measureLedgerPage.code = "";
+        this.measureLedgerPage.measureUnit = "";
+        this.measurePlanPageMethods();
+      }
+    },
+    selectTableData() {
+      if (this.radio1 == 1) {
+        this.measureLedgerPageData = [];
+        this.measureLedgerPageMethods();
+      } else {
+        this.measurePlanPage.code = this.measureLedgerPage.code;
+        this.measurePlanPage.meteringUnit = this.measureLedgerPage.measureUnit;
+        this.measurePlanPageData = [];
+        this.measurePlanPageMethods();
+      }
+    },
+    showRecord(row) {
+      this.addShow = true;
+      this.viewResume = false;
+      this.measurePlanPage.measureId = row.id;
+      this.$axios
+        .get(this.$api.url.meteringPlanListRecord, {
+          params: this.measurePlanPage
+        })
+        .then(res => {
+          this.recordData = res.data.table;
+          this.measureTop = res.data.top;
+          this.measurePlanPageTotal = res.data.total;
+        });
+      if (this.radio1 == 2) {
+        this.okOrNo = row.planStatue;
+      }
+    },
+    addDeviceAdd() {
+      let measureLedgerList = {
+        code: "",
+        deviceId: "",
+        measureDate: "",
+        planDateList: "", // 缂撳瓨鏁版嵁
+        measurePeriod: "",
+        measureResult: "",
+        measuringRange: "",
+        validityBegin: "",
+        validityEnd: ""
+      };
+      this.addFormDevice.measureLedgerList.push(measureLedgerList);
+    },
+    nameAndCode(scope) {
+      let deviceMessage = this.deviceIdAndNameAndCode.find(
+        role => role.id === scope.row.deviceId
+      );
+      this.addFormDevice.measureLedgerList[scope.$index].code =
+        deviceMessage.code;
+    },
+    addHeaderCellClassName({ columnIndex }) {
+      if (columnIndex === 0 || columnIndex === 1) {
+        return "requiredclass";
+      }
+    },
+    pickerplanDateList(scope) {
+      let begin = scope.row.planDateList[0];
+      let end = scope.row.planDateList[1];
+      this.addFormDevice.measureLedgerList[scope.$index].validityBegin = begin;
+      this.addFormDevice.measureLedgerList[scope.$index].validityEnd = end;
+
+      let StartDate = begin.split("-");
+      let EndDate = end.split("-");
+      let dayDate = EndDate[2] - StartDate[2];
+
+      EndDate = parseInt(EndDate[0]) * 12 + parseInt(EndDate[1]);
+      StartDate = parseInt(StartDate[0]) * 12 + parseInt(StartDate[1]);
+
+      let resultDate = EndDate - StartDate + 1;
+      this.addFormDevice.measureLedgerList[
+        scope.$index
+      ].measurePeriod = resultDate;
+    },
+    measureLedgerListDelete(scope) {
+      this.addFormDevice.measureLedgerList.splice(scope.$index, 1);
+    },
+    sunmitPlanForm() {
+      this.$refs.ruleFormDevice.validate(valid => {
+        if (valid) {
+          this.addFormDevice.planDateBegin = this.addFormDevice.plannedDate[0];
+          this.addFormDevice.planDateEnd = this.addFormDevice.plannedDate[1];
+          delete this.addFormDevice.plannedDate;
+          this.addFormDevice.measureLedgerList.forEach(i => {
+            i.validityBegin = i.planDateList[0];
+            i.validityEnd = i.planDateList[1];
+            delete i.planDateList;
+          });
+          this.$axios
+            .post(this.$api.url.meteringPlanDevicePlan, this.addFormDevice, {
+              headers: { "Content-Type": "application/json" }
+            })
+            .then(res => {
+              this.$message({
+                message: res.message,
+                type: "success"
+              });
+              this.addShow = false;
+            });
+        }
+      });
+    }
+  },
+  watch: {
+    radio1: {
+      handler: function(newVal, oldVal) {
+        if (newVal == 2) {
+          this.measurePlanPage.accountOrPlan = false;
+          this.measurePlanPageMethods();
+        } else {
+          this.measurePlanPage.accountOrPlan = true;
+        }
+      }
+    },
+    addShow: {
+      handler: function(newVal, oldVal) {
+        if (newVal === true) {
+          this.$axios.get(this.$api.url.meterPlanListDevice).then(res => {
+            this.deviceIdAndNameAndCode = res.data;
+          });
+          this.$axios.get(this.$api.url.createPerson).then(res => {
+            this.createPerson = res.data;
+          });
+        }
+      }
     }
   }
 };
 </script>
 
-<style>
+<style less="scss">
 .main_div {
   height: calc(100vh - 110px);
   position: relative;
@@ -550,6 +998,23 @@
   height: calc(100vh - 110px);
   transition: 0.5s;
 }
+.secode_div_top_descriptions_add {
+  padding-left: 30px;
+  padding-top: 48px;
+
+  .el-form-item {
+    float: left;
+  }
+}
+.end_table {
+  width: 100%;
+  margin-top: 12px;
+
+  .cell {
+    height: 40px;
+  }
+}
+
 .top_div {
   width: 100%;
   height: 100px;
@@ -590,7 +1055,13 @@
 }
 .table_top_div {
   margin-left: 20px;
-  padding: 20px 0;
+  padding: 35px 0;
+}
+.el-descriptions-item__label {
+  height: 20px !important;
+}
+.el-input__prefix {
+  padding-left: 0px !important;
 }
 .table_top_div span {
   font-size: 15px;
@@ -638,9 +1109,22 @@
   background-color: #ffffff;
   height: calc(100vh - 150px);
 }
+.table_top_div {
+  margin-left: 20px;
+  padding-top: 15px;
+  padding-bottom: 15px;
+}
 .secode_div_top_descriptions {
-  padding-left: 20px;
-  padding-top: 10px;
+  padding-left: 30px;
+  padding-top: 17px;
+}
+.secode_div_top_descriptions .el-form-item {
+  float: left;
+}
+.requiredclass::before {
+  content: "*";
+  color: #f56c6c;
+  margin-right: 6px;
 }
 .el-descriptions__title {
   font-size: 15px;
@@ -662,4 +1146,17 @@
 .icon-fanhui {
   padding-right: 6px;
 }
+.frame_input {
+  width: 10%;
+  margin: 10px 0;
+  transition: 1.5s;
+}
+.el-tag.el-tag {
+  border-color: transparent;
+  background-color: transparent;
+}
+.el-tag.el-tag:hover {
+  border-color: transparent;
+  background-color: transparent;
+}
 </style>

--
Gitblit v1.9.3