From 312b055ee75a14d90201e9de9024927de49d7d8b Mon Sep 17 00:00:00 2001
From: “zhuo” <“zhuo@itcast.cn”>
Date: 星期四, 10 八月 2023 18:00:38 +0800
Subject: [PATCH] 8.10

---
 .env.staging                                   |    2 
 .env.development                               |    2 
 src/views/experiment/reportAuditing/index.vue  |    2 
 src/api/CNAS/reviewAnnualPlan.js               |   19 ++
 .env.production                                |    2 
 src/views/experiment/checkTheReport/index.vue  |    3 
 src/views/CNAS/reviewAnnualPlan/index.vue      |  277 +++++++++++++++++++++++++++++++++++++++
 src/views/experiment/planAssignments/index.vue |   87 +++++++++---
 8 files changed, 364 insertions(+), 30 deletions(-)

diff --git a/.env.development b/.env.development
index e363056..e5e7b7a 100644
--- a/.env.development
+++ b/.env.development
@@ -2,4 +2,4 @@
 ENV = 'development'
 
 # base api
-VUE_APP_BASE_API = 'http://192.168.110.254:1234/'
+VUE_APP_BASE_API = 'http://localhost:1234/'
diff --git a/.env.production b/.env.production
index 64b7d95..dd72fa5 100644
--- a/.env.production
+++ b/.env.production
@@ -3,5 +3,5 @@
 
 # base api
 # VUE_APP_BASE_API = '/prod-api'
-VUE_APP_BASE_API = 'http://192.168.110.254:1234/'
+VUE_APP_BASE_API = 'http://localhost:1234/'
 
diff --git a/.env.staging b/.env.staging
index 4b2b496..92fbe73 100644
--- a/.env.staging
+++ b/.env.staging
@@ -5,6 +5,6 @@
 
 # base api
 # VUE_APP_BASE_API = '/stage-api'
-VUE_APP_BASE_API = 'http://192.168.110.254:1234/'
+VUE_APP_BASE_API = 'http://localhost:1234/'
 
 
diff --git a/src/api/CNAS/reviewAnnualPlan.js b/src/api/CNAS/reviewAnnualPlan.js
new file mode 100644
index 0000000..b483e1e
--- /dev/null
+++ b/src/api/CNAS/reviewAnnualPlan.js
@@ -0,0 +1,19 @@
+import request from '@/utils/request'
+
+//鏌ヨ瀹℃煡璁″垝
+export function selectAllList(params) {
+  return request({
+    url: '/cnasAnnualPlan/selectAllList',
+    method: 'get',
+    params
+  })
+}
+
+//鏂板瀹℃煡璁″垝
+export function addCnasAnnualPlan(data) {
+    return request({
+      url: '/cnasAnnualPlan/addCnasAnnualPlan',
+      method: 'post',
+      data
+    })
+  }
diff --git a/src/views/CNAS/reviewAnnualPlan/index.vue b/src/views/CNAS/reviewAnnualPlan/index.vue
index 183ba06..9b26139 100644
--- a/src/views/CNAS/reviewAnnualPlan/index.vue
+++ b/src/views/CNAS/reviewAnnualPlan/index.vue
@@ -1,5 +1,278 @@
 <template>
-    <div>
-        瀹℃牳骞村害璁″垝
+  <div class="content-main">
+    <div class="top-bar">
+      <el-form ref="form" :inline="true">
+        <el-form-item>
+          <el-date-picker
+            v-model="input"
+            type="date"
+            placeholder="璇烽�夋嫨鏌ヨ鏃ユ湡"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="getData()">鏌ヨ</el-button>
+          <el-button type="primary" plain @click="resetData()">閲嶇疆</el-button>
+        </el-form-item>
+      </el-form>
+      <el-form>
+        <!-- 涓婁紶闄勪欢 -->
+        <el-button
+          class="rightBtn"
+          type="primary"
+          icon="el-icon-upload2"
+          @click="dialogFormVisible1 = true"
+          >涓婁紶闄勪欢</el-button
+        >
+
+        <el-dialog title="鏂板璁″垝" :visible.sync="dialogFormVisible1">
+          <el-form :model="uploadingForm">
+            <el-form-item label="瀹℃牳鏃ユ湡:" :label-width="formLabelWidth">
+              <el-date-picker
+                v-model="uploadingForm.auditTime"
+                type="date"
+                placeholder="璇烽�夋嫨鏃ユ湡"
+                autocomplete="off"
+              >
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="褰曞叆浜�:" :label-width="formLabelWidth">
+              <el-input
+                v-model="uploadingForm.keyboarder"
+                autocomplete="off"
+                placeholder="璇疯緭鍏ュ綍鍏ヤ汉"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="涓婁紶闄勪欢:" :label-width="formLabelWidth">
+              <el-input
+                v-model="uploadingForm.attachment"
+                autocomplete="off"
+              ></el-input>
+            </el-form-item>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="dialogFormVisible1 = false">鍙� 娑�</el-button>
+            <el-button type="primary" @click="dialogFormVisible1 = false"
+              >纭� 瀹�</el-button
+            >
+          </div>
+        </el-dialog>
+
+        <!-- 涓婁紶璁″垝 -->
+        <el-button
+          class="rightBtn"
+          type="primary"
+          icon="el-icon-document-add"
+          @click="addPlan"
+          >鏂板璁″垝</el-button
+        >
+        <el-button
+          class="rightBtn"
+          type="primary"
+          icon="el-icon-document-checked"
+          >瀵煎嚭骞村害璁″垝</el-button
+        >
+        <el-button
+          class="rightBtn"
+          type="primary"
+          icon="el-icon-document-checked"
+          >瀵煎嚭鍐呴儴瀹炴柦璁″垝</el-button
+        >
+      </el-form>
     </div>
+    <div class="library-table">
+      <div class="table-box">
+        <el-table
+          ref="auditTable"
+          border
+          :max-height="800"
+          :cell-style="{ textAlign: 'center' }"
+          :header-cell-style="{
+            border: '0px',
+            background: '#f5f7fa',
+            color: '#606266',
+            boxShadow: 'inset 0 1px 0 #ebeef5',
+            textAlign: 'center',
+          }"
+          :data="auditTable"
+          style="width: 100%"
+        >
+          <el-table-column type="index" label="搴忓彿" min-width="30px">
+            <template>
+              <el-checkbox type="checkbox" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="year" label="骞村害" min-width="60px" />
+          <el-table-column prop="month" label="鏈堝害" min-width="60px" />
+          <el-table-column prop="planTime" label="璁″垝鏃堕棿" min-width="100px" />
+          <el-table-column prop="auditType" label="鎬ц川" min-width="80px">
+            <template slot-scope="scope">
+              <span>
+                {{ scope.row.auditType == 0 ? "鍐呭" : "绠$悊璇勫" }}
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="department" label="閮ㄩ棬" min-width="80px" />
+          <el-table-column
+            prop="auditLeader"
+            label="瀹℃牳缁勯暱"
+            min-width="80px"
+          />
+          <el-table-column prop="auditEmp" label="缁勫憳" min-width="80px" />
+          <el-table-column
+            prop="auditPurpose"
+            label="瀹℃牳鐩殑"
+            min-width="100px"
+          />
+          <el-table-column
+            prop="auditScope"
+            label="瀹℃牳鑼冨洿"
+            min-width="100px"
+          />
+          <el-table-column
+            prop="auditPursuant"
+            label="瀹℃牳渚濇嵁"
+            min-width="100px"
+          />
+          <el-table-column prop="writeUser" label="缂栧埗浜�" min-width="80px" />
+          <el-table-column prop="createTime" label="缂栧埗鏃ユ湡" min-width="100px">
+          </el-table-column>
+          <el-table-column prop="keyboarder" label="褰曞叆浜�" min-width="80px" />
+          <el-table-column prop="checker" label="妫�楠屼汉" min-width="80px" />
+          <el-table-column
+            prop="auditTime"
+            label="瀹℃牳鏃ユ湡"
+            min-width="100px"
+          />
+          <el-table-column prop="count" label="涓嶇鍚堥」鐩暟" min-width="60px" />
+          <el-table-column prop="auditState" label="鐘舵��" min-width="100px">
+            <template slot-scope="scope">
+              <div v-if="scope.row.auditState === 0">
+                <el-tag class="tag-item" type="warning">鍗冲皢寮�濮�</el-tag>
+              </div>
+              <div v-else-if="scope.row.auditState === 1">
+                <el-tag class="tag-item" type="success">瀹屾垚</el-tag>
+              </div>
+              <div v-else>
+                <el-tag class="tag-item" type="danger">閫炬湡</el-tag>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="鎿嶄綔" min-width="100" fixed="right">
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                size="small"
+                @click="handleClick(scope.row)"
+                >鏌ョ湅</el-button
+              >
+              <el-button type="text" size="small">鍒犻櫎</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <!-- 鍒嗛〉鍣� -->
+        <div>
+          <el-pagination
+            :current-page="page"
+            :page-sizes="[10, 20, 30, 40]"
+            :page-size="pageSize"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="total"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
+
+<script>
+import { selectAllList, addCnasAnnualPlan } from "@/api/CNAS/reviewAnnualPlan";
+export default {
+  data() {
+    return {
+      input: [],
+      auditTable: [],
+      page: 1,
+      total: 0,
+      pageSize: 10,
+      dialogFormVisible1: false,
+      uploadingForm: {
+        auditTime: "",
+        keyboarder: "",
+        keyboarder: "",
+      },
+      formLabelWidth: "80px",
+    };
+  },
+  created() {
+    this.getData();
+  },
+  methods: {
+    // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+    handleSizeChange(val) {
+      console.log(`姣忛〉 ${val} 鏉);
+      this.pageSize = val;
+      this.getData();
+    },
+    // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+    handleCurrentChange(val) {
+      console.log(`褰撳墠椤�: ${val}`);
+      this.page = val;
+      this.getData();
+    },
+    // 閲嶇疆鎸夐挳
+    resetData() {
+      this.input = undefined;
+      this.page = 1;
+      this.pageSize = 10;
+      this.getData();
+    },
+    // 鏌ヨ鍒楄〃
+    async getData() {
+      const params = {
+        page: this.page,
+        pageSize: this.pageSize,
+      };
+      const { data } = await selectAllList(params);
+      this.auditTable = data.row;
+      this.total = data.total;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.top-bar {
+  margin: -25px -15px;
+  background: #fff;
+  display: flex;
+  justify-content: space-between;
+  padding: 5px 24px 0px 24px;
+}
+.library-table {
+  background-color: #fff;
+  flex: 1;
+  margin: 0px -15px;
+  margin-top: 40px;
+  display: flex;
+  flex-direction: column;
+  .table-box {
+    padding: 0px 20px;
+    margin-top: 20px;
+    flex: 1;
+    background: #fff;
+    display: flex;
+    flex-direction: column;
+    > div:nth-child(2) {
+      display: flex;
+      justify-content: end;
+      margin: 10px 0;
+    }
+    .tag-item {
+      width: 80px;
+    }
+  }
+}
+</style>
diff --git a/src/views/experiment/checkTheReport/index.vue b/src/views/experiment/checkTheReport/index.vue
index 4a58f59..5183a0c 100644
--- a/src/views/experiment/checkTheReport/index.vue
+++ b/src/views/experiment/checkTheReport/index.vue
@@ -216,7 +216,7 @@
   }
   .el-dropdown-link {
     cursor: pointer;
-    color: #409EFF;
+    color: #409eff;
   }
   .el-icon-arrow-down {
     font-size: 12px;
@@ -250,6 +250,5 @@
       margin: 10px 0;
     }
   }
-  
 }
 </style>
diff --git a/src/views/experiment/planAssignments/index.vue b/src/views/experiment/planAssignments/index.vue
index f5bdf13..ad051ce 100644
--- a/src/views/experiment/planAssignments/index.vue
+++ b/src/views/experiment/planAssignments/index.vue
@@ -6,7 +6,7 @@
           <el-select
             v-model="searchData.devicename"
             placeholder="鍏ㄩ儴"
-            style="width: 100px"
+            style="width: 120px"
           >
             <el-option
               v-for="item in options1"
@@ -21,6 +21,7 @@
           <el-date-picker
             v-model="searchData.time"
             type="daterange"
+            value-format="yyyy-MM-dd"
             range-separator="~"
             start-placeholder="寮�濮嬫棩鏈�"
             end-placeholder="缁撴潫鏃ユ湡"
@@ -31,7 +32,7 @@
           <el-select
             v-model="searchData.person"
             placeholder="鍏ㄩ儴"
-            style="width: 80px; margin-right: 100px"
+            style="width: 100px; margin-right: 100px"
           >
             <el-option
               v-for="item in options2"
@@ -43,10 +44,14 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" plain style="margin-right: 10px"
+          <el-button
+            type="primary"
+            plain
+            style="margin-right: 10px"
+            @click="resetData()"
             >閲嶇疆</el-button
           >
-          <el-button type="primary">鏌ヨ</el-button>
+          <el-button type="primary" @click="getData()">鏌ヨ</el-button>
         </el-form-item>
       </el-form>
     </div>
@@ -154,38 +159,76 @@
     return {
       searchData: {
         devicename: "",
-        time: "",
+        time: [],
         person: "",
       },
       options1: [],
       options2: [],
       planTable: [],
+      planTableView: [],
     };
   },
   created() {
     this.getData();
   },
+
   methods: {
     // 鏌ヨ鍒楄〃
     async getData() {
-      const params = {};
+      const params = {
+        device: this.searchData.devicename
+          ? this.searchData.devicename
+          : undefined,
+        user: this.searchData.person ? this.searchData.person : undefined,
+        beginTime:
+          this.searchData.time && this.searchData.time.length > 0
+            ? this.searchData.time[0]
+            : undefined,
+        endTime:
+          this.searchData.time && this.searchData.time.length > 0
+            ? this.searchData.time[1]
+            : undefined,
+      };
       const { data } = await selectAllPlan(params);
       this.planTable = data;
-      this.planTable.forEach((res) => {
-        let o1 = {
-          value: res.device,
-          label: res.device,
-        };
-        this.options1.push(o1);
-
-        if(res.userId == undefined) {
-
-        }
-      });
-      let d=this.options1.filter((val,index,self)=>{
-        return self.indexOf(val)==index;
-      })
-      console.log(d);
+      if (this.options1.length === 0) {
+        //娣诲姞璁惧鍚嶇О
+        const deviceData = [];
+        this.planTable.forEach((res) => {
+          if (!deviceData.includes(res.device)) {
+            deviceData.push(res.device);
+          }
+        });
+        deviceData.forEach((item) => {
+          this.options1.push({
+            value: item,
+            label: item,
+          });
+        });
+        //娣诲姞鐢ㄦ埛
+        const userData = [];
+        this.planTable.forEach((res) => {
+          if (res.checker != undefined && !userData.includes(res.checker)) {
+            userData.push(res.checker);
+          }
+        });
+        userData.forEach((item) => {
+          this.options2.push({
+            value: item,
+            label: item,
+          });
+        });
+        console.log(this.options2);
+      }
+    },
+    // 閲嶇疆鎸夐挳
+    resetData() {
+      (this.searchData = {
+        devicename: "",
+        time: [],
+        person: "",
+      }),
+        this.getData();
     },
   },
 };
@@ -216,7 +259,7 @@
   height: 78vh;
   .formwrapper {
     padding: 0px 20px;
-    margin-top: 0px;
+    margin-top: 20px;
     flex: 1;
     background: #fff;
     /* padding: 20px 20px 10px 20px; */
diff --git a/src/views/experiment/reportAuditing/index.vue b/src/views/experiment/reportAuditing/index.vue
index 0e8bf65..3bd0410 100644
--- a/src/views/experiment/reportAuditing/index.vue
+++ b/src/views/experiment/reportAuditing/index.vue
@@ -2,7 +2,7 @@
   <div class="content-main">
     <div class="top-bar">
       <el-form ref="form" :inline="true">
-        <el-form-item class="sermargin">
+        <el-form-item>
           <el-input
             v-model="input"
             class="input-form"

--
Gitblit v1.9.3