From 80740c17e5c742d8de2d7b2c7493ebc7704ead4e Mon Sep 17 00:00:00 2001
From: yuyu <1981343953@qq.com>
Date: 星期二, 15 八月 2023 17:15:26 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.110.209:9001/r/lims-before

---
 src/views/experiment/reportAuditing/index.vue  |   26 
 src/api/CNAS/reviewAnnualPlan.js               |   38 
 src/api/urlEnum/satisfactionSurveys.js         |   11 
 src/views/laboratory/ledger/index.vue          |  614 +++++----------
 src/views/CNAS/satisfactionSurveys/index.vue   |  696 +++++++++++++----
 src/views/experiment/checkTheReport/index.vue  |   35 
 src/views/laboratory/personnel/index.vue       |  151 +--
 src/views/CNAS/reviewAnnualPlan/index.vue      |  632 ++++++++++++++++
 src/views/experiment/planAssignments/index.vue |   87 +
 src/api/urlEnum/personnel.js                   |    8 
 10 files changed, 1,596 insertions(+), 702 deletions(-)

diff --git a/src/api/CNAS/reviewAnnualPlan.js b/src/api/CNAS/reviewAnnualPlan.js
new file mode 100644
index 0000000..020809b
--- /dev/null
+++ b/src/api/CNAS/reviewAnnualPlan.js
@@ -0,0 +1,38 @@
+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
+    })
+  }
+
+
+  //涓婁紶闄勪欢
+export function addAccessory(data) {
+  return request({
+    url: '/cnasAnnualPlan/addAccessory',
+    method: 'post',
+    data
+  })
+}
+
+//鍒犻櫎瀹℃牳骞村害璁″垝
+export function deleteCnasAnnualPlan(params) {
+  return request({
+    url: '/cnasAnnualPlan/deleteCnasAnnualPlan',
+    method: 'get',
+    params
+  })
+}
diff --git a/src/api/urlEnum/personnel.js b/src/api/urlEnum/personnel.js
new file mode 100644
index 0000000..acade93
--- /dev/null
+++ b/src/api/urlEnum/personnel.js
@@ -0,0 +1,8 @@
+const baseurl='/user'
+
+const url={
+    "list_new_personnel": baseurl+"/list_new_personnel",//鑾峰彇浜哄憳淇℃伅
+}
+export default{
+    url
+}
\ No newline at end of file
diff --git a/src/api/urlEnum/satisfactionSurveys.js b/src/api/urlEnum/satisfactionSurveys.js
new file mode 100644
index 0000000..8a4bcba
--- /dev/null
+++ b/src/api/urlEnum/satisfactionSurveys.js
@@ -0,0 +1,11 @@
+const baseurl='/cnasSatisfactionSurvey'
+
+const url={
+    "getCnasSatisfactionSurvey": baseurl+"/getCnasSatisfactionSurvey",//鑾峰彇涓嶅悎鏍煎搧鍙嶉
+    "getFillNameAndId": baseurl+"/getFillNameAndId",//褰撳墠褰曞叆浜�
+    "uploadFile": baseurl+"/uploadFile",//鏂囦欢涓婁紶
+    "addSurvey": baseurl+"/addSurvey",//婊℃剰搴︽柊澧�
+}
+export default{
+    url
+}
\ No newline at end of file
diff --git a/src/views/CNAS/reviewAnnualPlan/index.vue b/src/views/CNAS/reviewAnnualPlan/index.vue
index 183ba06..e99d7f6 100644
--- a/src/views/CNAS/reviewAnnualPlan/index.vue
+++ b/src/views/CNAS/reviewAnnualPlan/index.vue
@@ -1,5 +1,633 @@
 <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"
+            class="input-form"
+            type="month"
+            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 class="rightBtn">
+        <!-- 涓婁紶闄勪欢 -->
+        <el-form-item class="createBtn">
+          <el-button
+            type="primary"
+            icon="el-icon-upload2"
+            @click="
+              dialogFormVisible1 = true;
+              uploading = {};
+              resetForm('uploading');
+            "
+            >涓婁紶闄勪欢</el-button
+          >
+          <el-dialog
+            title="涓婁紶闄勪欢"
+            :visible.sync="dialogFormVisible1"
+            width="30%"
+          >
+            <el-form :model="uploading" :rules="rules1" ref="uploading">
+              <el-form-item
+                label="瀹℃牳鏃ユ湡:"
+                :label-width="formLabelWidth1"
+                prop="auditTime"
+                style="margin-bottom: 20px"
+              >
+                <el-date-picker
+                  class="uploading-form"
+                  v-model="uploading.auditTime"
+                  type="date"
+                  placeholder="璇烽�夋嫨鏃ユ湡"
+                  autocomplete="off"
+                >
+                </el-date-picker>
+              </el-form-item>
+              <el-form-item
+                prop="accessoryFile"
+                label="涓婁紶闄勪欢:"
+                :label-width="formLabelWidth1"
+              >
+                <el-input
+                  class="uploading-form"
+                  v-model="uploading.accessoryFile"
+                  autocomplete="off"
+                  placeholder="璇烽�夋嫨鏂囦欢"
+                ></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="submitUp('uploading')"
+                >纭� 瀹�</el-button
+              >
+            </div>
+          </el-dialog>
+        </el-form-item>
+        <!-- 鏂板璁″垝 -->
+        <el-form-item class="createBtn">
+          <el-button
+            type="primary"
+            icon="el-icon-document-add"
+            @click="
+              dialogFormVisible2 = true;
+              newly = {};
+              resetForm('newly');
+            "
+            >鏂板璁″垝</el-button
+          >
+
+          <el-dialog
+            title="鏂板璁″垝"
+            :visible.sync="dialogFormVisible2"
+            width="55%"
+          >
+            <el-form :model="newly" :rules="rules2" ref="newly">
+              <!-- 绗竴琛� -->
+              <el-row class="newly-margin-bottom">
+                <el-col :span="12">
+                  <el-form-item
+                    label="璁″垝鏃堕棿:"
+                    :label-width="formLabelWidth2"
+                    prop="planTime"
+                  >
+                    <el-date-picker
+                      class="newly-form"
+                      v-model="newly.planTime"
+                      type="date"
+                      placeholder="璇烽�夋嫨璁″垝鏃ユ湡"
+                      autocomplete="off"
+                    >
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item
+                    label="閮ㄩ棬:"
+                    :label-width="formLabelWidth2"
+                    prop="department"
+                  >
+                    <el-input
+                      class="newly-form"
+                      v-model="newly.department"
+                      placeholder="璇烽�夋嫨閮ㄩ棬"
+                      autocomplete="off"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <!-- 绗簩琛� -->
+              <el-row class="newly-margin-bottom">
+                <el-col :span="12">
+                  <el-form-item
+                    label="鎬ц川:"
+                    :label-width="formLabelWidth2"
+                    prop="auditType"
+                  >
+                    <el-select
+                      class="newly-form"
+                      v-model="newly.auditType"
+                      placeholder="璇烽�夋嫨鎬ц川"
+                      autocomplete="off"
+                    >
+                      <el-option label="鍐呭" value="0"></el-option>
+                      <el-option label="绠$悊璇勫" value="1"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item
+                    label="瀹℃牳鐩殑:"
+                    :label-width="formLabelWidth2"
+                    prop="auditPurpose"
+                  >
+                    <el-input
+                      class="newly-form"
+                      v-model="newly.auditPurpose"
+                      placeholder="璇疯緭鍏ュ鏍哥洰鐨�"
+                      autocomplete="off"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <!-- 绗笁琛� -->
+              <el-row class="newly-margin-bottom">
+                <el-col :span="12">
+                  <el-form-item
+                    label="瀹℃牳缁勯暱:"
+                    :label-width="formLabelWidth2"
+                    prop="auditLeader"
+                  >
+                    <el-input
+                      class="newly-form"
+                      v-model="newly.auditLeader"
+                      placeholder="璇疯緭鍏ュ鏍哥粍闀�"
+                      autocomplete="off"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item
+                    label="瀹℃牳鑼冨洿:"
+                    :label-width="formLabelWidth2"
+                    prop="auditScope"
+                  >
+                    <el-input
+                      class="newly-form"
+                      v-model="newly.auditScope"
+                      placeholder="璇疯緭鍏ュ鏍歌寖鍥�"
+                      autocomplete="off"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <!-- 绗洓琛� -->
+              <el-row class="newly-margin-bottom">
+                <el-col :span="12">
+                  <el-form-item
+                    label="缁勫憳:"
+                    :label-width="formLabelWidth2"
+                    prop="auditEmp"
+                  >
+                    <el-input
+                      class="newly-form"
+                      v-model="newly.auditEmp"
+                      placeholder="璇疯緭鍏ョ粍鍛�"
+                      autocomplete="off"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item
+                    label="瀹℃牳渚濇嵁:"
+                    :label-width="formLabelWidth2"
+                    prop="auditPursuant"
+                  >
+                    <el-input
+                      class="newly-form"
+                      v-model="newly.auditPursuant"
+                      placeholder="璇疯緭鍏ュ鏍镐緷鎹�"
+                      autocomplete="off"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <!-- 绗簲琛� -->
+              <el-row class="newly-margin-bottom">
+                <el-col :span="12">
+                  <el-form-item
+                    label="缂栧埗浜�:"
+                    :label-width="formLabelWidth2"
+                    prop="writeUser"
+                  >
+                    <el-input
+                      class="newly-form"
+                      v-model="newly.writeUser"
+                      placeholder="璇疯緭鍏ョ紪鍒朵汉"
+                      autocomplete="off"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item
+                    label="瀹℃牳鏃ユ湡:"
+                    :label-width="formLabelWidth2"
+                  >
+                    <el-date-picker
+                      class="newly-form"
+                      v-model="newly.auditTime"
+                      type="date"
+                      placeholder="璇烽�夋嫨瀹℃牳鏃ユ湡"
+                      autocomplete="off"
+                    >
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible2 = false">鍙� 娑�</el-button>
+              <el-button type="primary" @click="submitAddData('newly')"
+                >纭� 瀹�</el-button
+              >
+            </div>
+          </el-dialog>
+        </el-form-item>
+        <!-- 瀵煎嚭骞村害璁″垝 -->
+        <el-form-item class="createBtn">
+          <el-button type="primary" icon="el-icon-document-checked"
+            >瀵煎嚭骞村害璁″垝</el-button
+          >
+        </el-form-item>
+        <el-form-item class="createBtn">
+          <el-button type="primary" icon="el-icon-document-checked"
+            >瀵煎嚭鍐呴儴瀹炴柦璁″垝</el-button
+          >
+        </el-form-item>
+      </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">鏌ョ湅</el-button>
+              <el-button
+                type="text"
+                size="small"
+                @click="deleteClick(scope.row.id)"
+                >鍒犻櫎</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,
+  addAccessory,
+  deleteCnasAnnualPlan,
+} from "@/api/CNAS/reviewAnnualPlan";
+import { P } from "af-table-column";
+export default {
+  data() {
+    return {
+      input: "",
+      auditTable: [],
+      page: 1,
+      total: 0,
+      pageSize: 10,
+      dialogFormVisible1: false,
+      dialogFormVisible2: false,
+      formLabelWidth1: "80px",
+      formLabelWidth2: "80px",
+      //涓婁紶闄勪欢鍙傛暟
+      uploading: {
+        auditTime: "",
+        //====================鏂囦欢涓婁紶杩樻病鍋�,姝ゅ鏄簲鏄枃浠跺弬鏁�,鏆傛椂杩樻槸鏂囨湰
+        accessoryFile: "",
+      },
+      rules1: {
+        auditTime: [
+          {
+            type: "date",
+            required: true,
+            message: "璇烽�夋嫨鏃ユ湡",
+            trigger: "blur",
+          },
+        ],
+        accessoryFile: [
+          { required: true, message: "璇疯緭鍏ユ椿鍔ㄥ悕绉�", trigger: "blur" },
+          { min: 3, max: 5, message: "闀垮害鍦� 3 鍒� 5 涓瓧绗�", trigger: "blur" },
+        ],
+      },
+      //鏂板璁″垝瀵硅薄
+      newly: {
+        planTime: "",
+        auditType: "",
+        department: "",
+        auditPurpose: "",
+        auditLeader: "",
+        auditEmp: "",
+        auditPursuant: "",
+        auditScope: "",
+        writeUser: "",
+        auditTime: "",
+      },
+      rules2: {
+        planTime: [
+          {
+            type: "date",
+            required: true,
+            message: "璇烽�夋嫨鏃ユ湡",
+            trigger: "blur",
+          },
+        ],
+        auditType: [
+          { required: true, message: "璇烽�夋嫨鎬ц川", trigger: "change" },
+        ],
+        department: [
+          { required: true, message: "璇疯緭鍏ラ儴闂�", trigger: "blur" },
+          { min: 1, max: 25, message: "瀛楁暟杩囬暱", trigger: "blur" },
+        ],
+        auditPurpose: [
+          { required: true, message: "璇疯緭鍏ュ鏍哥洰鐨�", trigger: "blur" },
+          { min: 1, max: 25, message: "瀛楁暟杩囬暱", trigger: "blur" },
+        ],
+        auditLeader: [
+          { required: true, message: "璇疯緭鍏ュ鏍哥粍闀�", trigger: "blur" },
+          { min: 1, max: 25, message: "瀛楁暟杩囬暱", trigger: "blur" },
+        ],
+        auditEmp: [
+          { required: true, message: "璇疯緭鍏ョ粍鍛�", trigger: "blur" },
+          { min: 1, max: 25, message: "瀛楁暟杩囬暱", trigger: "blur" },
+        ],
+        auditPursuant: [
+          { required: true, message: "璇疯緭鍏ュ鏍镐緷鎹�", trigger: "blur" },
+          { min: 1, max: 25, message: "瀛楁暟杩囬暱", trigger: "blur" },
+        ],
+        auditScope: [
+          { required: true, message: "璇疯緭鍏ュ鏍歌寖鍥�", trigger: "blur" },
+          { min: 1, max: 5, message: "瀛楁暟杩囬暱", trigger: "blur" },
+        ],
+        writeUser: [
+          { required: true, message: "璇疯緭鍏ョ紪鍒朵汉", trigger: "blur" },
+          { min: 1, max: 25, message: "瀛楁暟杩囬暱", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  created() {
+    this.getData();
+  },
+  methods: {
+    //====================================================涓婁紶闄勪欢
+    //涓婁紶闄勪欢瀛楁纭
+    submitUp(uploading) {
+      this.$refs[uploading].validate((valid) => {
+        if (!valid) {
+          return false;
+        } else {
+          //   this.upData();
+        }
+      });
+    },
+    // //涓婁紶闄勪欢
+    // async upData() {
+    //   try {
+    //     const res = await addAccessory(this.uploading);
+    //     console.log(res);
+    //   } catch (error) {
+    //     this.$message.error("娣诲姞澶辫触");
+    //   }
+    //   this.resetData();
+    //   this.dialogFormVisible1 = false;
+    // },
+
+    //鏂板璁″垝瀛楁纭
+    submitAddData(newly) {
+      this.$refs[newly].validate((valid) => {
+        if (!valid) {
+          return false;
+        } else {
+          this.addData();
+        }
+      });
+    },
+    //鏂板璁″垝
+    async addData() {
+      try {
+        const res = await deleteCnasAnnualPlan(this.newly);
+      } catch (error) {
+        this.$message.error("娣诲姞澶辫触");
+      }
+      this.getData();
+      this.dialogFormVisible2 = false;
+    },
+    // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+    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,
+        planTime: this.input ? this.input : undefined,
+      };
+      const { data } = await selectAllList(params);
+      this.auditTable = data.row;
+      this.total = data.total;
+    },
+    async deleteOneData(planId) {
+      await deleteCnasAnnualPlan({ planId: planId });
+      this.getData();
+      console.log(planId);
+    },
+
+    deleteClick(planId) {
+      this.$confirm("纭鍒犻櫎?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+      }).then(() => {
+        this.deleteOneData(planId);
+      });
+    },
+    //閲嶇疆琛ㄥ崟
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.top-bar {
+  margin: -25px -15px;
+  background: #fff;
+  display: flex;
+  justify-content: space-between;
+  padding: 5px 24px 0px 24px;
+  .input-form {
+    width: 400px;
+  }
+  .uploading-form {
+    // margin-bottom: 20px;
+    width: 400px;
+  }
+  .newly-form {
+    // margin-bottom: 20px;
+    width: 400px;
+  }
+  .newly-margin-bottom {
+    margin-bottom: 23px;
+  }
+}
+
+.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;
+    }
+  }
+}
+.rightBtn {
+  display: flex;
+  justify-content: flex-end;
+}
+.createBtn {
+  margin-left: 10px;
+}
+</style>
diff --git a/src/views/CNAS/satisfactionSurveys/index.vue b/src/views/CNAS/satisfactionSurveys/index.vue
index 571dd96..f1e2efb 100644
--- a/src/views/CNAS/satisfactionSurveys/index.vue
+++ b/src/views/CNAS/satisfactionSurveys/index.vue
@@ -1,191 +1,555 @@
 <template>
-    <div class="content-main survey">
-      <div class="top-bar">
-        <el-form ref="form" style="width: 1000px;" :inline="true">
-          <!-- <el-input v-model="input" class="input-form" placeholder="璇风洿鎺ヨ緭鍏ユ牱寮忕紪鍙�/鏍峰搧鍚嶇О/鍨嬪彿瑙勬牸/杩涜鎼滅储鎴栦笅鎷夐�夋嫨杩涜缁勫悎鏌ヨ"
+  <div class="content-main survey">
+    <div class="top-bar">
+      <el-form ref="form" style="width: 1000px;" :inline="true">
+        <!-- <el-input v-model="input" class="input-form" placeholder="璇风洿鎺ヨ緭鍏ユ牱寮忕紪鍙�/鏍峰搧鍚嶇О/鍨嬪彿瑙勬牸/杩涜鎼滅储鎴栦笅鎷夐�夋嫨杩涜缁勫悎鏌ヨ"
               @keyup.enter.native="getData" /> -->
-          <el-form-item style="width: 800px;">
-            <el-col style="display: flex; justify-content: space-around;" :span="8">
-              <el-row>璋冩煡鏃ユ湡:</el-row>
-              <el-row><el-input type="date" style="width: 130px;" v-model="materialCode" placeholder="璇烽�夋嫨璋冩煡鏃ユ湡"></el-input></el-row>
-            </el-col>
-            <el-col style="display: flex; justify-content: space-around;" :span="8">
-              <el-row>褰曞叆鏃ユ湡:</el-row>
-              <el-row><el-input style="width: 130px;" v-model="materialName" placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"></el-input></el-row>
-            </el-col>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" size="small" @click="getData()">鏌ヨ</el-button>
-            <el-button type="primary" size="small" plain @click="resetData()">娓呯┖</el-button>
-          </el-form-item>
-        </el-form>
-        <el-form>
-          <el-button size="40" icon="el-icon-document-add" type="primary">鏂板璁板綍</el-button>
-        </el-form>
-      </div>
-      <div class="library-table">
-        <div class="table-box">
-          <el-table ref="tableData" :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="tableData" style="width: 100%">
-            <el-table-column type="selection" label="" min-width="5%" />
-            <el-table-column  label="鏍峰搧缂栧彿" min-width="10%">
-              <template slot-scope="scope">
-                <a style="color: #3894d1;">{{ scope.row.materialCode }}</a>
-              </template>
-            </el-table-column>
-            <el-table-column prop="materialName" label="鏍峰搧鍚嶇О" min-width="10%" />
-            <el-table-column label="鐢宠鍗曞彿" min-width="10%" >
-              <template slot-scope="scope">
-                <a style="color: #3894d1;">{{ scope.row.inspectionCode }}</a>
-              </template>
-            </el-table-column>
-            <el-table-column prop="createTime" label="鐧昏鏃ユ湡" min-width="10%" />
-            <el-table-column prop="testManager" label="妫�楠岃礋璐d汉" min-width="10%" />
-            <el-table-column prop="specifications" label="瑙勬牸鍨嬪彿" min-width="10%" />
-            <el-table-column prop="inspectionStatus" label="缁撹" min-width="10%">
-              <template slot-scope="scope">
-                <el-tag type="danger">涓嶅悎鏍�</el-tag>
-              </template>
-            </el-table-column>
-            <el-table-column label="鎿嶄綔" min-width="8%">
-              <template slot-scope="scope">
-                <el-button type="text" size="small">鎿嶄綔</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>
+        <el-form-item style="width: 800px;">
+          <el-col style="display: flex; justify-content: space-around;" :span="12">
+            <el-row>璋冩煡鏃ユ湡:</el-row>
+            <el-row style="width: 300px;">
+              <el-date-picker style="width: 270px;" class="newly-form" v-model="surveyDate" type="date"
+                placeholder="璇烽�夋嫨璋冩煡鏃ユ湡" autocomplete="off">
+              </el-date-picker>
+            </el-row>
+          </el-col>
+          <el-col style="display: flex; justify-content: space-around;" :span="12">
+            <el-row>褰曞叆鏃ユ湡:</el-row>
+            <el-row style="width: 300px;">
+              <el-date-picker style="width: 270px;" class="newly-form" v-model="entryDate" type="date"
+                placeholder="璇烽�夋嫨褰曞叆鏃ユ湡" autocomplete="off">
+              </el-date-picker>
+            </el-row>
+          </el-col>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" size="small" @click="getData()">鏌ヨ</el-button>
+          <el-button type="primary" size="small" plain @click="resetData()">娓呯┖</el-button>
+        </el-form-item>
+      </el-form>
+      <el-form>
+        <el-button size="40" @click="getFillName()" icon="el-icon-document-add" type="primary">鏂板璁板綍</el-button>
+      </el-form>
+    </div>
+    <div class="library-table">
+      <div class="table-box">
+        <el-table ref="tableData" :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="tableData" style="width: 100%">
+          <el-table-column prop="id" type="index" label="搴忓彿" min-width="20%"/>
+          <el-table-column prop="surveyDate" label="璋冩煡鏃ユ湡" min-width="10%" />
+          <el-table-column prop="userUnit" label="瀹㈡埛鍗曚綅鍚嶇О" min-width="10%" />
+          <el-table-column prop="projectName" label="椤圭洰鍚嶇О" min-width="10%" />
+          <el-table-column prop="fillName" label="濉〃浜哄鍚�" min-width="10%" />
+          <el-table-column prop="post" label="鑱屼綅" min-width="10%" />
+          <el-table-column prop="telephone" label="鑱旂郴鐢佃瘽" min-width="10%" />
+          <el-table-column prop="userName" label="褰曞叆浜�" min-width="10%" />
+          <el-table-column label="闄勪欢" min-width="10%">
+            <template slot-scope="scope">
+              <a style="color: #3894d1;" @click="look(scope.row.id)">鏌ョ湅闄勪欢</a>
+            </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>
-  </template>
+    <el-dialog title="婊℃剰搴﹁皟鏌�" :visible.sync="dialogVisible" width="50%">
+      <table class="table" style="width: 100%;">
+        <tr>
+          <td> </td>
+          <td>婊℃剰</td>
+          <td>涓�鑸�</td>
+          <td>涓嶆弧鎰�</td>
+          <td>寤鸿</td>
+        </tr>
+        <tr>
+          <td>鏈嶅姟鎬佸害</td>
+          <td><el-radio v-model="serviceAttitude" label="0"><span hidden>婊℃剰</span></el-radio></td>
+          <td><el-radio v-model="serviceAttitude" label="1"><span hidden>涓�鑸�</span> </el-radio></td>
+          <td><el-radio v-model="serviceAttitude" label="2"><span hidden>涓嶆弧鎰�</span></el-radio></td>
+          <td><el-input v-model="serviceAttitudeInput" placeholder="璇疯緭鍏ュ唴瀹�"></el-input></td>
+        </tr>
+        <tr>
+          <td>鎶�鏈兘鍔�</td>
+          <td><el-radio v-model="technicalPower" label="0"><span hidden>婊℃剰</span></el-radio></td>
+          <td><el-radio v-model="technicalPower" label="1"><span hidden>涓�鑸�</span> </el-radio></td>
+          <td><el-radio v-model="technicalPower" label="2"><span hidden>涓嶆弧鎰�</span></el-radio></td>
+          <td><el-input v-model="technicalPowerInput" placeholder="璇疯緭鍏ュ唴瀹�"></el-input></td>
+        </tr>
+        <tr>
+          <td>妫�娴嬪伐浣�</td>
+          <td><el-radio v-model="testJob" label="0"><span hidden>婊℃剰</span></el-radio></td>
+          <td><el-radio v-model="testJob" label="1"><span hidden>涓�鑸�</span> </el-radio></td>
+          <td><el-radio v-model="testJob" label="2"><span hidden>涓嶆弧鎰�</span></el-radio></td>
+          <td><el-input v-model="testJobInput" placeholder="璇疯緭鍏ュ唴瀹�"></el-input></td>
+        </tr>
+        <tr>
+          <td>鏀惰垂鍚堢悊鎬�</td>
+          <td><el-radio v-model="reasonableCharge" label="0"><span hidden>婊℃剰</span></el-radio></td>
+          <td><el-radio v-model="reasonableCharge" label="1"><span hidden>涓�鑸�</span> </el-radio></td>
+          <td><el-radio v-model="reasonableCharge" label="2"><span hidden>涓嶆弧鎰�</span></el-radio></td>
+          <td><el-input v-model="reasonableChargeInput" placeholder="璇疯緭鍏ュ唴瀹�"></el-input></td>
+        </tr>
+        <tr>
+          <td>鏀硅繘瑕佹眰</td>
+          <td colspan="4">
+            <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="璇疯緭鍏ュ唴瀹�"
+              v-model="improvementRequirements">
+            </el-input>
+          </td>
+        </tr>
+        <tr>
+          <td>鍏朵粬琛ュ厖</td>
+          <td colspan="4">
+            <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="璇疯緭鍏ュ唴瀹�"
+              v-model="otherSupplements">
+            </el-input>
+          </td>
+        </tr>
+      </table>
+      <!-- <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="dialogVisible = false">纭� 瀹�</el-button>
+      </span> -->
+    </el-dialog>
+    <el-dialog title="鏂板婊℃剰搴﹁皟鏌ヨ褰�" :visible.sync="dialogVisible2" width="50%">
+      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="璋冩煡鏃ユ湡锛�" prop="surveyDate">
+              <el-date-picker style="width: 200px;" class="newly-form" v-model="ruleForm.surveyDate" type="date"
+                placeholder="璇烽�夋嫨璋冩煡鏃ユ湡" autocomplete="off">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="瀹㈡埛鍗曚綅锛�" prop="userUnit">
+              <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ュ鎴峰崟浣嶅悕绉�" v-model="ruleForm.userUnit"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="椤圭洰鍚嶇О锛�" prop="projectName">
+              <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ラ」鐩悕绉�" v-model="ruleForm.projectName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鑱旂郴鐢佃瘽锛�" prop="telephone">
+              <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" v-model="ruleForm.telephone"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!-- 濉〃浜哄鍚� -->
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="濉〃浜哄鍚嶏細" prop="fillName">
+              <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ュ~琛ㄤ汉濮撳悕" v-model="ruleForm.fillName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鑱屼綅锛�" prop="post">
+              <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ヨ亴浣�" v-model="ruleForm.post"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!-- 鑱旂郴鐢佃瘽/褰曞叆鏃ユ湡 -->
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="褰曞叆浜猴細" prop="userName">
+              <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ュ綍鍏ヤ汉濮撳悕" v-model="ruleForm.userName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="褰曞叆鏃ユ湡锛�" prop="entryDate">
+              <el-date-picker style="width: 200px;" class="newly-form" v-model="ruleForm.entryDate" type="date"
+                placeholder="璇烽�夋嫨褰曞叆鏃ユ湡" autocomplete="off">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="闄勪欢涓婁紶锛�">
+              <el-upload class="upload-demo" :action="path" :on-preview="handlePreview" :on-remove="handleRemove" multiple
+                :limit="1" :on-exceed="handleExceed" :file-list="fileList" :on-success="handleSuccess"
+                :before-upload="beforeAvatarUpload">
+                <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+              </el-upload>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!-- 鎻愪氦 -->
+        <el-row>
+          <el-col :span="24" style="display: flex;justify-content: center;">
+            <el-form-item>
+              <el-button @click="resetForm('ruleForm')">鍙栨秷</el-button>
+              <el-button type="primary" @click="submitForm('ruleForm')">淇濆瓨</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-dialog>
+  </div>
+</template>
   
-  <script>
-  import { get, post } from '@/api/util/requestUtil';
-  import urlInfo from '../../../api/urlEnum/nonConformanceReview.js'
-  export default {
-    data() {
-      return {
-        input: '',
-        tableData: [],
-        page: 1,
-        total: 0,
-        pageSize: 10,
-        materialCode: null,
-        materialName: null,
-        inspectionCode: null
-      }
+<script>
+import { get, post } from '@/api/util/requestUtil';
+import urlInfo from '../../../api/urlEnum/satisfactionSurveys.js'
+export default {
+  data() {
+    return {
+      input: '',
+      tableData: [],
+      page: 1,
+      total: 0,
+      pageSize: 10,
+      entryDate: null,
+      surveyDate: null,
+      id: 0,
+      dialogVisible: false,
+      serviceAttitude: 3,
+      serviceAttitudeInput: "鏃�",
+      technicalPower: 3,
+      technicalPowerInput: "鏃�",
+      testJob: 3,
+      testJobInput: "鏃�",
+      reasonableCharge: 3,
+      reasonableChargeInput: "鏃�",
+      otherSupplements: "鏃�",
+      improvementRequirements: "鏃�",
+      dialogVisible2: false,
+      path: 'http://192.168.110.254:1234/cnasSatisfactionSurvey/uploadFile',
+      ruleForm: {
+        surveyDate: '',
+        userUnit: '',
+        projectName: '',
+        fillName: '',
+        post: '',
+        userId: '',
+        telephone: '',
+        entryDate: '',
+        userName: '',
+        serviceAttitude: '',
+        technicalPower: '',
+        testJob: '',
+        reasonableCharge: '',
+        improvementRequirements: '',
+        otherSupplements: ''
+      },
+      rules: {
+        surveyDate: [
+          { type: 'date', required: true, message: '璇烽�夋嫨璋冩煡鏃ユ湡', trigger: 'change' }
+        ],
+        userUnit: [
+          { required: true, message: '璇疯緭鍏ュ鎴峰崟浣嶅悕绉�', trigger: 'blur' },
+        ],
+        projectName: [
+          { required: true, message: '璇疯緭鍏ラ」鐩悕绉�', trigger: 'blur' }
+        ],
+        entryDate: [
+          { type: 'date', required: true, message: '璇烽�夋嫨褰曞叆鏃ユ湡', trigger: 'change' }
+        ],
+        telephone: [
+          { required: true, message: '璇疯緭鍏ヨ仈绯荤數璇�', trigger: 'blur' }
+        ]
+      },
+      fileList: [],
+    }
+  },
+  created() {
+
+  },
+  mounted() {
+    this.getData()
+  },
+  methods: {
+    handleCurrentChange() {
+      this.getData();
     },
-    created() {
-  
+    look(id) {
+      console.log(id);
+      let str = "/$";
+      this.dialogVisible = true
+      let data = this.tableData.filter(res => {
+        return res.id == id
+      })[0]
+      let serviceAttitudeInfo = data.serviceAttitude.split(str);
+      this.serviceAttitude = serviceAttitudeInfo[0]
+      this.serviceAttitudeInput = serviceAttitudeInfo[1]
+      let technicalPowerInfo = data.technicalPower.split(str)
+      this.technicalPower = technicalPowerInfo[0]
+      this.technicalPowerInput = technicalPowerInfo[1]
+      let testJobInfo = data.testJob.split(str)
+      this.testJob = testJobInfo[0]
+      this.testJobInput = testJobInfo[1]
+      let reasonableChargeInfo = data.reasonableCharge.split(str)
+      this.reasonableCharge = reasonableChargeInfo[0]
+      this.reasonableChargeInput = reasonableChargeInfo[1]
+      this.otherSupplements = data.otherSupplements
+      this.improvementRequirements = data.improvementRequirements
     },
-    mounted() {
+    handleSizeChange() {
+
+    },
+    exportData() {
+
+    },
+    // 閲嶇疆鎸夐挳
+    resetData() {
+      this.page = 1
+      this.pageSize = 10
+      this.surveyDate = null
+      this.entryDate = null
       this.getData()
     },
-    methods: {
-      handleCurrentChange() {
-        this.getData();
-      },
-      handleSizeChange() {
-  
-      },
-      exportData() {
-  
-      },
-      // 閲嶇疆鎸夐挳
-      resetData() {
-        this.page = 1
-        this.pageSize = 10
-        this.materialCode=null
-        this.materialName=null
-        this.inspectionCode=null
-        this.getData()
-      },
-      async getData() {
-        let param = {
-          "currentPage": this.page,
-          'pageNum': this.pageSize,
-          "inspectionCode": this.inspectionCode,
-          "materialCode": this.materialCode,
-          "materialName": this.materialName
-        }
-        let res = await get(urlInfo.url.getNonConformanceReview, param)
-        this.tableData = res.data.nonConformanceReviewList
-        this.total = res.data.total
+    async getData() {
+      let param = {
+        "currentPage": this.page,
+        'pageNum': this.pageSize,
+        "surveyDate": this.surveyDate,
+        "entryDate": this.entryDate
       }
+      if (this.surveyDate != null) {
+        param.surveyDate = this.dateFormat(this.surveyDate);
+      }
+      if (this.entryDate !== null) {
+        param.entryDate = this.dateFormat(this.entryDate);
+      }
+      let res = await get(urlInfo.url.getCnasSatisfactionSurvey, param)
+      this.tableData = res.data.cnasSatisfactionSurveyList
+      this.total = res.data.total
+    },
+    async getFillName() {
+      this.dialogVisible2 = true
+      let res = await get(urlInfo.url.getFillNameAndId)
+      this.ruleForm.userName = res.data.name
+      this.ruleForm.userId = res.data.id
+      var now = new Date();
+      this.ruleForm.entryDate = now
+    },
+    async submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          this.add();
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+    async add() {
+      let data = JSON.parse(JSON.stringify(this.ruleForm))
+      let entryDate = this.format(this.ruleForm.entryDate);
+      let surveyDate = this.format(this.ruleForm.surveyDate);
+      data.entryDate = entryDate
+      data.surveyDate = surveyDate
+      // data.dateInfo = dateInfo
+      let add = await post(urlInfo.url.addSurvey, data);
+      if (add) {
+        this.$message({
+          message: '娣诲姞鎴愬姛',
+          type: 'success'
+        });
+        this.fileList = []
+        this.$refs["ruleForm"].resetFields();
+        let res = await get(urlInfo.url.getFillNameAndId)
+      this.ruleForm.userName = res.data.name
+      this.ruleForm.id = res.data.id
+      var now = new Date();
+      this.ruleForm.entryDate = now
+      this.getData()
+      } else {
+        this.$message.error('娣诲姞澶辫触锛佽妫�鏌ュ唴瀹�');
+      }
+    },
+    resetForm(formName) {
+      this.dialogVisible2 = false
+      this.fileList = []
+      this.$refs[formName].resetFields();
+    },
+    handleRemove(file, fileList) {
+      console.log(file, fileList);
+    },
+    handlePreview(file) {
+      console.log(file);
+    },
+    handleExceed(files, fileList) {
+      this.$message.warning(`褰撳墠闄愬埗閫夋嫨 1 涓枃浠讹紝鏈閫夋嫨浜� ${files.length} 涓枃浠讹紝鍏遍�夋嫨浜� ${files.length + fileList.length} 涓枃浠禶);
+    },
+    // beforeRemove(file, fileList) {
+    //   return this.$confirm(`纭畾绉婚櫎 ${file.name}锛焋);
+    // },
+    handleSuccess(response, file, fileList) {
+      let data = response.data;
+      if (this.ruleForm.userUnit == '') {
+        this.ruleForm.userUnit = data.unitName
+      }
+      if (this.ruleForm.projectName == '') {
+        this.ruleForm.projectName = data.projectName
+      }
+      if (this.ruleForm.post === '') {
+        this.ruleForm.post = data.post
+      }
+      if (this.ruleForm.fillName == '') {
+        this.ruleForm.fillName = data.fillName.split("/")[0]
+      }
+      if (this.ruleForm.telephone == '') {
+        this.ruleForm.telephone = data.telephone
+      }
+      if(this.ruleForm.surveyDate==null||this.ruleForm.surveyDate==''){
+        let dates = new Date(data.fillName.split("/")[1]);
+        console.log(dates);
+        if(dates!=''&&dates!=''){
+          this.ruleForm.surveyDate=dates
+        }
+      }
+      this.ruleForm.serviceAttitude = data.serviceAttitude
+      this.ruleForm.technicalPower = data.technicalPower
+      this.ruleForm.testJob = data.testJob
+      this.ruleForm.improvementRequirements = data.improvementRequirements
+      this.ruleForm.otherSupplements = data.otherSupplements
+      this.ruleForm.reasonableCharge=data.reasonableCharge
+    },
+    beforeAvatarUpload(file) {
+      let split = file.name.split(".");
+      let fileName = split[split.length - 1];
+      const isWord = fileName == 'doc' || fileName == 'docx';
+      const isLt2M = file.size / 1024 / 1024 < 2;
+      if (!isWord) {
+        this.$message.error('涓婁紶word鏂囦欢鍙兘鏄� doc/docx 鏍煎紡!');
+      }
+      if (!isLt2M) {
+        this.$message.error('涓婁紶word鏂囦欢澶у皬涓嶈兘瓒呰繃 2MB!');
+      }
+      return isWord && isLt2M;
+    },
+    dateFormat(longTypeDate) {
+      var dateTypeDate = "";
+      var date = new Date();
+      date.setTime(longTypeDate);
+      dateTypeDate += date.getFullYear();   //骞�    
+      dateTypeDate += "-" + this.getMonth(date); //鏈�     
+      dateTypeDate += "-" + this.getDay(date);   //鏃�    
+      return dateTypeDate;
+    },
+    //杩斿洖 01-12 鐨勬湀浠藉��     
+    getMonth(date) {
+      var month = "";
+      month = date.getMonth() + 1; //getMonth()寰楀埌鐨勬湀浠芥槸0-11    
+      if (month < 10) {
+        month = "0" + month;
+      }
+      return month;
+    },
+    //杩斿洖01-30鐨勬棩鏈�    
+    getDay(date) {
+      var day = "";
+      day = date.getDate();
+      if (day < 10) {
+        day = "0" + day;
+      }
+      return day;
+    },
+    datetimeFormat(longTypeDate) {
+      var dateTypeDate = "";
+      var date = new Date();
+      date.setTime(longTypeDate);
+      dateTypeDate += date.getFullYear();   //骞�    
+      dateTypeDate += "-" + this.getMonth(date); //鏈�     
+      dateTypeDate += "-" + this.getDay(date);   //鏃�    
+      return dateTypeDate;
+    },
+    format(d) {
+      var y = d.getFullYear();
+      var m = d.getMonth() + 1;
+      if (m < 10) {
+        m = "0" + m;
+      }
+      var day = d.getDate();
+      if (day < 10) {
+        day = "0" + day;
+      }
+      return y + "-" + m + "-" + day;
     }
   }
-  </script>
+}
+</script>
   
-  <style lang="scss" scoped>
-  .top-bar {
-    margin: -25px -15px;
-    background: #fff;
+<style lang="scss" scoped>
+.top-bar {
+  margin: -25px -15px;
+  background: #fff;
+  display: flex;
+  justify-content: space-between;
+  padding: 5px 24px 0px 24px;
+
+  .input-form {
+    width: 800px;
+  }
+
+  .el-dropdown-link {
+    cursor: pointer;
+    color: #409EFF !important;
+  }
+
+  .el-icon-arrow-down {
+    font-size: 12px !important;
+  }
+
+
+}
+
+.library-table {
+  background-color: #fff;
+  flex: 1;
+  margin: 0px -15px;
+  margin-top: 40px;
+  display: flex;
+  flex-direction: column;
+
+  .table-header {
+    padding: 20px;
     display: flex;
     justify-content: space-between;
-    padding: 5px 24px 0px 24px;
-  
-    .input-form {
-      width: 800px;
+
+    .el-form-item {
+      margin-bottom: 30px !important;
     }
-  
-    .el-dropdown-link {
-      cursor: pointer;
-      color: #409EFF !important;
-    }
-  
-    .el-icon-arrow-down {
-      font-size: 12px !important;
-    }
-  
-  
   }
-  
-  .library-table {
-    background-color: #fff;
+
+  .table-box {
+    padding: 0px 20px;
+    margin-top: 20px;
     flex: 1;
-    margin: 0px -15px;
-    margin-top: 40px;
+    background: #fff;
     display: flex;
     flex-direction: column;
-  
-    .table-header {
-      padding: 20px;
+
+    >div:nth-child(2) {
       display: flex;
-      justify-content: space-between;
-  
-      .el-form-item {
-        margin-bottom: 30px !important;
-      }
+      justify-content: end;
+      margin: 10px 0;
     }
-  
-    .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;
-      }
-  
-    }
+
   }
-  </style>
-  <style >
-  .content-main {
-    .el-form .el-form-item .el-form-item__content {
-      width: 100% !important;
-    }
+}
+
+.table,
+tr,
+td {
+  padding: 10px;
+}
+</style>
+<style >
+.content-main {
+  .el-form .el-form-item .el-form-item__content {
+    width: 100% !important;
   }
-  </style>
+}
+</style>
diff --git a/src/views/experiment/checkTheReport/index.vue b/src/views/experiment/checkTheReport/index.vue
index 4a58f59..a5057c4 100644
--- a/src/views/experiment/checkTheReport/index.vue
+++ b/src/views/experiment/checkTheReport/index.vue
@@ -24,11 +24,7 @@
         </el-dropdown>
       </el-form>
       <el-form>
-        <el-button
-          class="rightBtn"
-          type="primary"
-          icon="el-icon-document"
-          @click="exportData"
+        <el-button class="rightBtn" type="primary" icon="el-icon-document"
           >瀵煎嚭鎶ュ憡</el-button
         >
       </el-form>
@@ -70,19 +66,37 @@
             label="鏍峰搧缂栧彿"
             sortable
             min-width="10%"
-          />
+          >
+            <template slot-scope="scope">
+              <span style="color: #409eff;">
+                  {{ scope.row.materialCode }}
+              </span>
+            </template></el-table-column
+          >
           <el-table-column
-            prop="reportCode"
+            prop="materialCode"
             label="鎶ュ憡鍗曞彿"
             sortable
             min-width="10%"
-          />
+          >
+            <template slot-scope="scope">
+              <span style="color: #409eff;">
+                  {{ scope.row.materialCode }}
+              </span>
+            </template></el-table-column
+          >
           <el-table-column
             prop="inspectionCode"
             label="鐢宠鍗曞彿"
             sortable
             min-width="10%"
-          />
+          >
+            <template slot-scope="scope">
+              <span style="color: #409eff;">
+                  {{ scope.row.inspectionCode }}
+              </span>
+            </template></el-table-column
+          >
           <el-table-column prop="approver" label="瀹℃壒浜�" min-width="8%">
             <template slot-scope="scope">
               <span>
@@ -216,7 +230,7 @@
   }
   .el-dropdown-link {
     cursor: pointer;
-    color: #409EFF;
+    color: #409eff;
   }
   .el-icon-arrow-down {
     font-size: 12px;
@@ -250,6 +264,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..ad3c04e 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"
@@ -24,9 +24,7 @@
         </el-dropdown>
       </el-form>
       <el-form>
-        <el-button class="rightBtn" type="primary" @click="exportData"
-          >瀹℃牳</el-button
-        >
+        <el-button class="rightBtn" type="primary">瀹℃牳</el-button>
       </el-form>
     </div>
     <div class="library-table">
@@ -58,12 +56,20 @@
           style="width: 100%"
         >
           <el-table-column type="selection" label="" min-width="5%" />
-          <el-table-column
-            prop="materialCode"
-            label="鏍峰搧缂栧彿"
-            min-width="10%"
-          />
-          <el-table-column prop="reportCode" label="鎶ュ憡鍗曞彿" min-width="10%" />
+          <el-table-column prop="materialCode" label="鏍峰搧缂栧彿" min-width="10%">
+            <template slot-scope="scope">
+              <span style="color: #409eff">
+                {{ scope.row.materialCode }}
+              </span>
+            </template></el-table-column
+          >
+          <el-table-column prop="reportCode" label="鎶ュ憡鍗曞彿" min-width="10%">
+            <template slot-scope="scope">
+              <span style="color: #409eff">
+                {{ scope.row.reportCode }}
+              </span>
+            </template></el-table-column
+          >
           <el-table-column
             prop="materialName"
             label="鏍峰搧鍚嶇О"
diff --git a/src/views/laboratory/ledger/index.vue b/src/views/laboratory/ledger/index.vue
index f092459..555d0b6 100644
--- a/src/views/laboratory/ledger/index.vue
+++ b/src/views/laboratory/ledger/index.vue
@@ -4,10 +4,7 @@
       <div class="search-bar">
         <el-form ref="form" :inline="true" :model="searchData">
           <el-form-item>
-            <el-input
-              v-model="searchData.keyword"
-              placeholder="璇疯緭鍏ョ紪鍙�/璁惧鍚嶇О/鍨嬪彿瑙勬牸"
-            >
+            <el-input v-model="searchData.keyword" placeholder="璇疯緭鍏ョ紪鍙�/璁惧鍚嶇О/鍨嬪彿瑙勬牸">
               <i slot="prefix" class="el-input__icon el-icon-search" />
             </el-input>
           </el-form-item>
@@ -27,24 +24,16 @@
         <div class="bom-item-search">
           <el-row>
             <el-col :span="19">
-              <el-input
-                v-model="filterText"
-                placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
-              />
+              <el-input v-model="filterText" placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" />
             </el-col>
             <el-col :span="5">
-              <el-button type="primary" size="small" @click="addClassVisible = true"><i class="el-icon-plus" /></el-button>
+              <el-button type="primary" size="small" @click="addClassVisible = true"><i
+                  class="el-icon-plus" /></el-button>
             </el-col>
           </el-row>
         </div>
-        <el-tree
-          ref="classTree"
-          :data="classTree"
-          :props="defaultProps"
-          :default-expand-all="true"
-          :filter-node-method="filterNode"
-          @node-click="nodeClickHandler"
-        />
+        <el-tree ref="classTree" :data="classTree" :props="defaultProps" :default-expand-all="true"
+          :filter-node-method="filterNode" @node-click="nodeClickHandler" />
       </div>
       <div class="library-table">
         <div class="table-header">
@@ -55,74 +44,31 @@
                 {{ item.label }}
               </el-radio-button>
             </el-radio-group>
-            <el-checkbox v-model="isOut" @change="getExpireTable" :style="{'marginLeft':'12px'}">宸茶繃鏈�</el-checkbox>
+            <el-checkbox v-model="isOut" @change="getExpireTable" :style="{ 'marginLeft': '12px' }">宸茶繃鏈�</el-checkbox>
           </div>
           <div class="serve-btn">
             <!-- <el-button type="primary" icon="el-icon-plus">鏂板浜哄憳</el-button> -->
           </div>
         </div>
         <div class="table-box">
-          <el-table
-            ref="equipmentTable"
-            node-key="father_name"
-            :cell-style="{textAlign: 'center'}"
-            :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
-            :data="equipmentTable"
-            style="width: 100%"
-          >
-            <el-table-column
-              type="index"
-              label="搴忓彿"
-              min-width="90"
-            />
-            <el-table-column
-              prop="equipment_code"
-              label="浠櫒璁惧缂栧彿"
-              min-width="200"
-            />
-            <el-table-column
-              prop="equipment_name"
-              label="浠櫒璁惧鍚嶇О"
-              min-width="150"
-            />
-            <el-table-column
-              prop="specifications_models"
-              label="瑙勬牸鍨嬪彿"
-              min-width="150"
-            />
-            <el-table-column
-              prop="name"
-              label="淇濈浜�"
-              min-width="200"
-            />
-            <el-table-column
-              prop="termValidity"
-              label="璁¢噺鎴鏈夋晥鏈�"
-              min-width="200"
-            />
-            <el-table-column
-              prop="conditions"
-              label="璁惧鐘舵��"
-              min-width="120"
-            >
+          <el-table ref="equipmentTable" node-key="father_name" :cell-style="{ textAlign: 'center' }"
+            :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
+            :data="equipmentTable" style="width: 100%">
+            <el-table-column type="index" label="搴忓彿" min-width="90" />
+            <el-table-column prop="equipment_code" label="浠櫒璁惧缂栧彿" min-width="200" />
+            <el-table-column prop="equipment_name" label="浠櫒璁惧鍚嶇О" min-width="150" />
+            <el-table-column prop="specifications_models" label="瑙勬牸鍨嬪彿" min-width="150" />
+            <el-table-column prop="name" label="淇濈浜�" min-width="200" />
+            <el-table-column prop="termValidity" label="璁¢噺鎴鏈夋晥鏈�" min-width="200" />
+            <el-table-column prop="conditions" label="璁惧鐘舵��" min-width="120">
               <template slot-scope="scope">
-                <el-tag
-                  :type="scope.row.conditions === 0 ? 'primary' : 'success'"
-                  disable-transitions
-                >{{ scope.row.conditions | conditionsFilter }}</el-tag>
+                <el-tag :type="scope.row.conditions === 0 ? 'primary' : 'success'" disable-transitions>{{
+                  scope.row.conditions | conditionsFilter }}</el-tag>
               </template>
             </el-table-column>
-            <el-table-column
-              prop="storage_place"
-              label="瀛樻斁鍦�"
-              min-width="200"
-            />
+            <el-table-column prop="storage_place" label="瀛樻斁鍦�" min-width="200" />
 
-            <el-table-column
-              label="鎿嶄綔"
-              min-width="120"
-              fixed="right"
-            >
+            <el-table-column label="鎿嶄綔" min-width="120" fixed="right">
               <template slot-scope="scope">
                 <el-button type="text" size="small" @click="openDetail(scope.row)">缂栬緫</el-button>
                 <el-button type="text" size="small" @click="clickDelete(scope.row)">鍒犻櫎</el-button>
@@ -133,45 +79,36 @@
           <div>
             <!-- 娣诲姞鍒嗙被 -->
             <el-dialog title="娣诲姞鍒嗙被" :visible.sync="addClassVisible" width="33%">
-              <el-form :model="addTreeForm">
-                <el-form-item label="鍒嗙被鍚嶇О" label-width="100px">
-                  <el-input v-model="addTreeForm.name" autocomplete="off" />
+              <el-form :model="addTreeForm" ref="addTreeForm">
+                <el-form-item prop="name" label="鍒嗙被鍚嶇О" label-width="100px" :rules="[
+                  { required: true, message: '鍒嗙被鍚嶇О涓嶈兘涓虹┖' }
+                ]">
+                  <el-input  v-model="addTreeForm.name"
+                   />
                 </el-form-item>
                 <el-form-item label="鐖剁骇鍒嗙被" label-width="100px">
-                  <el-select v-model="addTreeForm.type" placeholder="璇烽�夋嫨">
+                  <el-select style="width: 100%;" v-model="addTreeForm.type" placeholder="璇烽�夋嫨">
                     <el-option label="鍘熸潗鏂�" value="0" />
                     <el-option label="鐢电嚎鐢电紗" value="1" />
                   </el-select>
                 </el-form-item>
               </el-form>
               <div slot="footer" class="dialog-footer">
-                <el-button @click="addClassVisible = false">鍙� 娑�</el-button>
-                <el-button type="primary">纭� 瀹�</el-button>
+                <el-button @click="resetTreeForm('addTreeForm')">鍙� 娑�</el-button>
+                <el-button type="primary" @click="submitTreeForm('addTreeForm')">纭� 瀹�</el-button>
               </div>
             </el-dialog>
           </div>
           <div>
-            <el-pagination
-              :current-page="currentPage"
-              :page-sizes="[10, 15, 20, 25]"
-              :page-size="pageSize"
-              layout="total, sizes, prev, pager, next, jumper"
-              :total="total"
-              @size-change="handleSizeChange"
-              @current-change="handleCurrentChange"
-            />
+            <el-pagination :current-page="currentPage" :page-sizes="[10, 15, 20, 25]" :page-size="pageSize"
+              layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
+              @current-change="handleCurrentChange" />
           </div>
         </div>
       </div>
     </div>
     <!-- 浠櫒璇︽儏-->
-    <el-drawer
-      title="浠櫒璁惧璇︽儏"
-      :visible.sync="detailDrawer"
-      size="80%"
-      class="detailDrawer"
-      @close="closeDetailDrawer"
-    >
+    <el-drawer title="浠櫒璁惧璇︽儏" :visible.sync="detailDrawer" size="80%" class="detailDrawer" @close="closeDetailDrawer">
       <div>
         <div class="detail-info">
           <div class="tips-main">
@@ -187,7 +124,7 @@
             <div class="message-item"><span><i class="el-icon-edit" />鎵�灞炲垎绫伙細{{ equipmentDetail.classifyId }}</span></div>
             <div class="message-item">
               <span><i class="el-icon-edit" />鍒涘缓浜猴細{{ equipmentDetail.createUserId }}</span>
-              <el-tag type="primary"><i class="el-icon-info" :style="{marginRight:'4px', color:'#409EFF'}" /></el-tag>
+              <el-tag type="primary"><i class="el-icon-info" :style="{ marginRight: '4px', color: '#409EFF' }" /></el-tag>
             </div>
             <div class="message-item">
               <span><i class="el-icon-edit" />寤烘。鏃ユ湡锛歿{ equipmentDetail.acceptanceDate }}</span>
@@ -220,10 +157,11 @@
               <span><i class="el-icon-edit" />淇濈浜猴細{{ equipmentDetail.userId }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />鏄惁鏀寔鏁伴噰锛歿{ equipmentDetail.whetherDataAcquisition==1 ? '鏀寔': '涓嶆敮鎸�' }}</span>
+              <span><i class="el-icon-edit" />鏄惁鏀寔鏁伴噰锛歿{ equipmentDetail.whetherDataAcquisition == 1 ? '鏀寔' : '涓嶆敮鎸�'
+              }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />浠櫒璁惧璁¢噺锛歿{ equipmentDetail.equipmentMeasurement==1 ? '闇�瑕�': '涓嶉渶瑕�' }}</span>
+              <span><i class="el-icon-edit" />浠櫒璁惧璁¢噺锛歿{ equipmentDetail.equipmentMeasurement == 1 ? '闇�瑕�' : '涓嶉渶瑕�' }}</span>
             </div>
             <div class="message-item">
               <span><i class="el-icon-edit" />璁¢噺鍛ㄦ湡锛歿{ equipmentDetail.termValidity }}</span>
@@ -235,71 +173,40 @@
         </div>
         <el-tabs v-model="activeTabsName">
           <el-tab-pane label="璁惧鐮佺偣" name="codePoints">
-            <el-button v-show="!codePointesTableStatus" :style="{marginBottom: '18px'}" @click="addCodePoints">鏂板璁惧鐮佺偣</el-button>
-            <div v-show="codePointesTableStatus" :style="{marginBottom: '18px'}" class="btns">
+            <el-button v-show="!codePointesTableStatus" :style="{ marginBottom: '18px' }"
+              @click="addCodePoints">鏂板璁惧鐮佺偣</el-button>
+            <div v-show="codePointesTableStatus" :style="{ marginBottom: '18px' }" class="btns">
               <el-button @click="addNewCodePoints">娣诲姞</el-button>
               <el-button @click="saveCodePoins">淇濆瓨</el-button>
               <el-button @click="closeCodePoins">鍙栨秷</el-button>
             </div>
 
-            <el-table
-              ref="codePointsTable"
-              :cell-style="{textAlign: 'center'}"
-              :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
-              :data="codePointsTable"
-              style="width: 100%"
-            >
-              <el-table-column
-                type="index"
-                label="搴忓彿"
-                min-width="90"
-              />
-              <el-table-column
-                prop="equipmentPoint"
-                label="鐮佺偣缂栫爜"
-                min-width="150"
-              >
+            <el-table ref="codePointsTable" :cell-style="{ textAlign: 'center' }"
+              :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
+              :data="codePointsTable" style="width: 100%">
+              <el-table-column type="index" label="搴忓彿" min-width="90" />
+              <el-table-column prop="equipmentPoint" label="鐮佺偣缂栫爜" min-width="150">
                 <template slot-scope="scope">
                   <span v-show="!codePointesTableStatus">{{ scope.row.equipmentPoint }}</span>
                   <el-input v-show="codePointesTableStatus" v-model="scope.row.equipmentPoint" />
                 </template>
               </el-table-column>
 
-              <el-table-column
-                prop="equipmentPointName"
-                label="鐮佺偣鍚嶇О"
-                min-width="150"
-              >
+              <el-table-column prop="equipmentPointName" label="鐮佺偣鍚嶇О" min-width="150">
                 <template slot-scope="scope">
                   <span v-show="!codePointesTableStatus">{{ scope.row.equipmentPointName }}</span>
                   <el-input v-show="codePointesTableStatus" v-model="scope.row.equipmentPointName" />
                 </template>
               </el-table-column>
-              <el-table-column
-                prop="unit"
-                label="鍗曚綅"
-                min-width="150"
-              >
+              <el-table-column prop="unit" label="鍗曚綅" min-width="150">
                 <template slot-scope="scope">
                   <span v-show="!codePointesTableStatus">{{ scope.row.unit }}</span>
                   <el-input v-show="codePointesTableStatus" v-model="scope.row.unit" />
                 </template>
               </el-table-column>
-              <el-table-column
-                prop="name"
-                label="鏇存柊浜�"
-                min-width="100"
-              />
-              <el-table-column
-                prop="updateTime"
-                label="鏇存柊鏃ユ湡"
-                min-width="120"
-              />
-              <el-table-column
-                prop="descriptiveness"
-                label="鎻忚堪"
-                min-width="200"
-              >
+              <el-table-column prop="name" label="鏇存柊浜�" min-width="100" />
+              <el-table-column prop="updateTime" label="鏇存柊鏃ユ湡" min-width="120" />
+              <el-table-column prop="descriptiveness" label="鎻忚堪" min-width="200">
                 <template slot-scope="scope">
                   <span v-show="!codePointesTableStatus">{{ scope.row.descriptiveness }}</span>
                   <el-input v-show="codePointesTableStatus" v-model="scope.row.descriptiveness" />
@@ -309,54 +216,18 @@
             </el-table>
           </el-tab-pane>
           <el-tab-pane label="璁¢噺淇℃伅" name="measure">
-            <el-button :style="{marginBottom: '18px'}" @click="measureFormVisible = true">鏂板璁¢噺淇℃伅</el-button>
-            <el-table
-              ref="measureTable"
-              :cell-style="{textAlign: 'center'}"
-              :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
-              :data="measureTable"
-              style="width: 100%"
-            >
-              <el-table-column
-                type="index"
-                label="搴忓彿"
-                min-width="90"
-              />
-              <el-table-column
-                prop="name"
-                label="璐熻矗浜�"
-                min-width="200"
-              />
-              <el-table-column
-                prop="measurement_unit"
-                label="璁¢噺鍗曚綅"
-                min-width="150"
-              />
-              <el-table-column
-                prop="beginDate"
-                label="寮�濮嬫棩鏈�"
-                min-width="150"
-              />
-              <el-table-column
-                prop="endDate"
-                label="缁撴潫鏃ユ湡"
-                min-width="150"
-              />
-              <el-table-column
-                prop="performance_index"
-                label="鎬ц兘鎸囨爣"
-                min-width="200"
-              />
-              <el-table-column
-                prop="uncertainty"
-                label="涓嶇‘瀹氬害"
-                min-width="200"
-              />
-              <el-table-column
-                prop="conditions"
-                label="缁撴灉"
-                min-width="120"
-              >
+            <el-button :style="{ marginBottom: '18px' }" @click="measureFormVisible = true">鏂板璁¢噺淇℃伅</el-button>
+            <el-table ref="measureTable" :cell-style="{ textAlign: 'center' }"
+              :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
+              :data="measureTable" style="width: 100%">
+              <el-table-column type="index" label="搴忓彿" min-width="90" />
+              <el-table-column prop="name" label="璐熻矗浜�" min-width="200" />
+              <el-table-column prop="measurement_unit" label="璁¢噺鍗曚綅" min-width="150" />
+              <el-table-column prop="beginDate" label="寮�濮嬫棩鏈�" min-width="150" />
+              <el-table-column prop="endDate" label="缁撴潫鏃ユ湡" min-width="150" />
+              <el-table-column prop="performance_index" label="鎬ц兘鎸囨爣" min-width="200" />
+              <el-table-column prop="uncertainty" label="涓嶇‘瀹氬害" min-width="200" />
+              <el-table-column prop="conditions" label="缁撴灉" min-width="120">
                 <template slot-scope="scope">
                   {{ scope.row.result }}
                   <!-- <el-tag
@@ -365,26 +236,15 @@
                   >{{ scope.row.result === 0 ? '鏈悓鎰�' : '宸插悓鎰�' }}</el-tag> -->
                 </template>
               </el-table-column>
-              <el-table-column
-                prop="remarks"
-                label="澶囨敞"
-                min-width="200"
-              />
+              <el-table-column prop="remarks" label="澶囨敞" min-width="200" />
             </el-table>
           </el-tab-pane>
         </el-tabs>
       </div>
     </el-drawer>
     <!-- 娣诲姞浠櫒/淇敼浠櫒淇℃伅 -->
-    <el-drawer
-      ref="addDrawer"
-      :title="equipmentDetail.id?'淇敼浠櫒璁惧淇℃伅':'鏂板浠櫒璁惧'"
-      :append-to-body="true"
-      :visible.sync="addDrawerVisible"
-      class="addDrawer"
-      size="40%"
-      @close="closeAddOrChangeDrawer"
-    >
+    <el-drawer ref="addDrawer" :title="equipmentDetail.id ? '淇敼浠櫒璁惧淇℃伅' : '鏂板浠櫒璁惧'" :append-to-body="true"
+      :visible.sync="addDrawerVisible" class="addDrawer" size="40%" @close="closeAddOrChangeDrawer">
       <div class="demo-drawer__content">
         <el-form label-position="top" :model="equipmentform">
           <el-row :gutter="50">
@@ -407,20 +267,10 @@
             </el-col>
             <el-col :span="11">
               <el-form-item label="鐘舵�侊細" label-width="80">
-                <el-select
-                  v-model="equipmentform.conditions"
-                  clearable
-                  filterable
-                  :allow-create="true"
-                  placeholder="璇烽�夋嫨浠櫒璁惧鐘舵��"
-                  style="width:100%"
-                >
-                  <el-option
-                    v-for="item in conditionsOptions"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  />
+                <el-select v-model="equipmentform.conditions" clearable filterable :allow-create="true"
+                  placeholder="璇烽�夋嫨浠櫒璁惧鐘舵��" style="width:100%">
+                  <el-option v-for="item in conditionsOptions" :key="item.value" :label="item.label"
+                    :value="item.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -457,42 +307,23 @@
             </el-col>
             <el-col :span="11">
               <el-form-item label="鍒拌揣鏃ユ湡锛�" label-width="80">
-                <el-date-picker
-                  v-model="equipmentform.arrivalDate"
-                  type="date"
-                  placeholder="璇烽�夋嫨鍒拌揣鏃ユ湡"
-                  style="width:100%"
-                />
+                <el-date-picker v-model="equipmentform.arrivalDate" type="date" placeholder="璇烽�夋嫨鍒拌揣鏃ユ湡"
+                  style="width:100%" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="50">
             <el-col :span="11">
               <el-form-item label="楠屾敹鏃ユ湡锛�" label-width="80">
-                <el-date-picker
-                  v-model="equipmentform.acceptanceDate"
-                  type="date"
-                  placeholder="璇烽�夋嫨楠屾敹鏃ユ湡"
-                  style="width:100%"
-                />
+                <el-date-picker v-model="equipmentform.acceptanceDate" type="date" placeholder="璇烽�夋嫨楠屾敹鏃ユ湡"
+                  style="width:100%" />
               </el-form-item>
             </el-col>
             <el-col :span="11">
               <el-form-item label="淇濈浜猴細" label-width="80">
-                <el-select
-                  v-model="equipmentform.userId"
-                  clearable
-                  filterable
-                  :allow-create="true"
-                  placeholder="璇烽�夋嫨淇濈浜�"
-                  style="width:100%"
-                >
-                  <el-option
-                    v-for="item in userOpetions"
-                    :key="item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
+                <el-select v-model="equipmentform.userId" clearable filterable :allow-create="true" placeholder="璇烽�夋嫨淇濈浜�"
+                  style="width:100%">
+                  <el-option v-for="item in userOpetions" :key="item.id" :label="item.label" :value="item.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -511,7 +342,7 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row v-show="equipmentform.equipmentMeasurement===1" :gutter="50">
+          <el-row v-show="equipmentform.equipmentMeasurement === 1" :gutter="50">
             <el-col :span="12">
               <el-form-item label="璁¢噺鎴鏈夋晥鏈燂細" label-width="80">
                 <el-input v-model="equipmentform.termValidity" type="number" />
@@ -521,13 +352,8 @@
           <el-row :gutter="50">
             <el-col :span="11">
               <el-form-item label="鎻忚堪锛�" label-width="80">
-                <el-input
-                  v-model="equipmentform.descriptiveness"
-                  type="textarea"
-                  :rows="2"
-                  placeholder="璇疯緭鍏ュ唴瀹�"
-                  style="width:217%"
-                />
+                <el-input v-model="equipmentform.descriptiveness" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�"
+                  style="width:217%" />
               </el-form-item>
             </el-col>
           </el-row>
@@ -544,20 +370,9 @@
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="璐熻矗浜�">
-              <el-select
-                v-model="measureForm.userId"
-                clearable
-                filterable
-                :allow-create="true"
-                placeholder="璐熻矗浜�"
-                style="width:100%"
-              >
-                <el-option
-                  v-for="item in userOpetions"
-                  :key="item.id"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select v-model="measureForm.userId" clearable filterable :allow-create="true" placeholder="璐熻矗浜�"
+                style="width:100%">
+                <el-option v-for="item in userOpetions" :key="item.id" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -570,13 +385,8 @@
         <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="妫�瀹氭湁鏁堟湡">
-              <el-date-picker
-                v-model="measureForm.date"
-                type="daterange"
-                range-separator="鑷�"
-                start-placeholder="寮�濮嬫棩鏈�"
-                end-placeholder="缁撴潫鏃ユ湡"
-              />
+              <el-date-picker v-model="measureForm.date" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
+                end-placeholder="缁撴潫鏃ユ湡" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -588,20 +398,9 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="缁撴灉">
-              <el-select
-                v-model="measureForm.result"
-                clearable
-                filterable
-                :allow-create="true"
-                placeholder="璐熻矗浜�"
-                style="width:100%"
-              >
-                <el-option
-                  v-for="item in resultOptions"
-                  :key="item.id"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select v-model="measureForm.result" clearable filterable :allow-create="true" placeholder="璐熻矗浜�"
+                style="width:100%">
+                <el-option v-for="item in resultOptions" :key="item.id" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -609,36 +408,21 @@
         <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="鎬ц兘鎸囨爣">
-              <el-input
-                v-model="measureForm.performanceIndex"
-                type="textarea"
-                :rows="2"
-                placeholder="璇疯緭鍏ュ唴瀹�"
-              />
+              <el-input v-model="measureForm.performanceIndex" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="澶囨敞">
-              <el-input
-                v-model="measureForm.remarks"
-                type="textarea"
-                :rows="2"
-                placeholder="璇疯緭鍏ュ唴瀹�"
-              />
+              <el-input v-model="measureForm.remarks" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="">
-              <el-upload
-                class="upload-demo"
-                action="#"
-                :on-change="handleUpload"
-                :auto-upload="false"
-              >
+              <el-upload class="upload-demo" action="#" :on-change="handleUpload" :auto-upload="false">
                 <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
               </el-upload>
             </el-form-item>
@@ -652,11 +436,7 @@
       </span>
     </el-dialog>
     <!-- 鍒犻櫎浠櫒寮瑰嚭妗� -->
-    <el-dialog
-      title="鎻愮ず"
-      :visible.sync="deletedialogVisible"
-      width="30%"
-      :before-close="handleClose">
+    <el-dialog title="鎻愮ず" :visible.sync="deletedialogVisible" width="30%">
       <span>纭畾鍒犻櫎璇ヤ华鍣ㄥ悧锛�</span>
       <span slot="footer" class="dialog-footer">
         <el-button @click="deletedialogVisible = false">鍙� 娑�</el-button>
@@ -667,10 +447,12 @@
 </template>
 
 <script>
-import { getClassifyList, getInstrumentList,
+import {
+  getClassifyList, getInstrumentList,
   addInstrumentUser, addInstrument, getInstrumentDetail,
   getEquipmentPointList, addEquipmentPoint,
-  getMetricalInformationList, changeInstrument, addMetricalInformation, deleteInstrument } from '@/api/laboratory/ledger'
+  getMetricalInformationList, changeInstrument, addMetricalInformation, deleteInstrument
+} from '@/api/laboratory/ledger'
 import { parseTime } from '@/utils/index'
 export default {
   filters: {
@@ -1115,15 +897,30 @@
       // console.log(row.id)
       await deleteInstrument({ instrumentId: this.instrumentId })
       this.deletedialogVisible = false
+    },
+    submitTreeForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          alert('submit!');
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+    resetTreeForm(formName) {
+      this.$refs[formName].resetFields();
+      this.addClassVisible=false
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
-.demo-drawer__content{
+.demo-drawer__content {
   margin-left: 50px;
 }
+
 .demo-drawer__footer {
   display: flex;
   justify-content: space-between;
@@ -1143,148 +940,174 @@
   margin-right: 60px;
   margin-bottom: 24px;
 }
-.ledger-main{
+
+.ledger-main {
   width: 100%;
   height: 100%;
-    // 椤甸潰澶撮儴鏉′欢鎼滅储
-  .page-header-search{
+
+  // 椤甸潰澶撮儴鏉′欢鎼滅储
+  .page-header-search {
     background: #fff;
     display: flex;
     justify-content: space-between;
     padding: 0 24px 12px 24px;
-     .search-bar{
-      .el-radio-button.is-active{
+
+    .search-bar {
+      .el-radio-button.is-active {
         color: #409EFF !important;
         background: #ecf5ff !important;
         border-color: #b3d8ff !important;
       }
-      .el-form{
-       .el-form-item{
-         margin-bottom: 0px !important;
-         .el-input{
-          width: 360px;
-         }
+
+      .el-form {
+        .el-form-item {
+          margin-bottom: 0px !important;
+
+          .el-input {
+            width: 360px;
+          }
         }
       }
     }
   }
 
-// 椤甸潰涓績鍐呭鍖哄煙
-  .content-main{
+  // 椤甸潰涓績鍐呭鍖哄煙
+  .content-main {
     display: flex;
     height: 100%;
     min-height: calc(100vh - 88px);
     padding: 15px;
-    >div{
+
+    >div {
       padding: 20px;
       background: #fff;
     }
-    .library-bom{
+
+    .library-bom {
       flex: 2;
       margin-right: 12px;
-      .bom-item-search{
+
+      .bom-item-search {
         margin-bottom: 12px;
-        ::v-deep .el-input{
-          input{
+
+        ::v-deep .el-input {
+          input {
             height: 33px;
             line-height: 33px;
           }
         }
       }
-         .bom-item-search .el-row{
-          // display: flex;
-          .el-col{
-            text-align: right;
-           }
-          }
+
+      .bom-item-search .el-row {
+
+        // display: flex;
+        .el-col {
+          text-align: right;
+        }
+      }
+
       .el-tree {
         margin-top: 12px;
       }
     }
-    .library-table{
+
+    .library-table {
       flex: 8;
       max-width: 80%;
       margin-left: 12px;
       display: flex;
       flex-direction: column;
-      .table-box{
-          margin-top: 30px;
+
+      .table-box {
+        margin-top: 30px;
+        flex: 1;
+        background: #fff;
+        display: flex;
+        flex-direction: column;
+
+        .el-table {
           flex: 1;
-          background: #fff;
+        }
+
+        >div:nth-child(2) {
           display: flex;
-          flex-direction: column;
-          .el-table {
-            flex: 1;
-          }
-          >div:nth-child(2){
-            display: flex;
-            justify-content: end;
-            margin: 10px 0;
-          }
+          justify-content: end;
+          margin: 10px 0;
+        }
       }
     }
   }
 
 }
-.addDrawer{
-  ::v-deep .el-drawer__body{
-      // padding: 24px !important;
-      overflow-y: scroll;
-      overflow-x: hidden;
-    }
+
+.addDrawer {
+  ::v-deep .el-drawer__body {
+    // padding: 24px !important;
+    overflow-y: scroll;
+    overflow-x: hidden;
+  }
 }
-.detailDrawer{
-    ::v-deep .el-drawer__body{
-      padding: 24px !important;
-      overflow-y: scroll;
-    }
-    .detail-info{
+
+.detailDrawer {
+  ::v-deep .el-drawer__body {
+    padding: 24px !important;
+    overflow-y: scroll;
+  }
+
+  .detail-info {
     background: #fff;
     box-shadow: rgba(100, 100, 111, 0.2) 0px 5px 15px;
     margin: 0;
     margin-bottom: 12px;
     border-radius: 6px;
     overflow: hidden;
-    .tips-main{
+
+    .tips-main {
       padding: 10px 20px 0 20px;
       display: flex;
       justify-content: space-between;
       align-items: center;
       height: 50px;
-      .tips-btn{
+
+      .tips-btn {
         margin-bottom: 10px;
       }
-      .tips{
-      height: 100%;
-      display: flex;
-      height: 24px;
-      align-items: center;
-      font-size: 16px;
-      >span{
-        display: inline-block;
-        margin-right: 10px;
-        width: 4px;
-        height: 16px;
-        background: #0077DB;
-      }
-      >div{
+
+      .tips {
         height: 100%;
-        line-height: 26px;
-      }
-      .el-button{
-        padding: 0;
-      }
+        display: flex;
+        height: 24px;
+        align-items: center;
+        font-size: 16px;
+
+        >span {
+          display: inline-block;
+          margin-right: 10px;
+          width: 4px;
+          height: 16px;
+          background: #0077DB;
+        }
+
+        >div {
+          height: 100%;
+          line-height: 26px;
+        }
+
+        .el-button {
+          padding: 0;
+        }
       }
     }
 
     // 鍩烘湰淇℃伅鍜屼紒涓氫俊鎭殑姣忎竴涓俊鎭」鏍峰紡
-    .message{
+    .message {
       padding: 0px 20px 8px 20px;
 
       display: flex;
       flex-wrap: wrap;
       border-top: 1px solid #F2F6FC;
-      >div{
+
+      >div {
         flex: 30%;
         max-width: 30%;
         padding: 8px;
@@ -1294,22 +1117,27 @@
         height: 40px;
         display: flex;
         align-items: center;
-        >span{
+
+        >span {
           color: #303133;
           font-size: 14px;
-          >i{
+
+          >i {
             margin-right: 8px;
           }
         }
       }
     }
   }
-  }
-.measureForm{
+}
+
+.measureForm {
+
   //
-  .el-form-item{
+  .el-form-item {
+
     //
-    .el-date-editor{
+    .el-date-editor {
       width: 100%;
     }
   }
diff --git a/src/views/laboratory/personnel/index.vue b/src/views/laboratory/personnel/index.vue
index 3312928..26998b3 100644
--- a/src/views/laboratory/personnel/index.vue
+++ b/src/views/laboratory/personnel/index.vue
@@ -2,17 +2,14 @@
   <div class="personnel-main ">
     <div class="page-header-search">
       <div class="search-bar">
-        <el-form ref="form" inline="true" :model="searchData">
+        <el-form ref="form" :inline="true">
           <el-form-item>
-            <el-input
-              v-model="keyword"
-              placeholder="璇疯緭鍏ヤ汉鍛樺悕绉�"
-            >
+            <el-input v-model="keyword" placeholder="璇疯緭鍏ヤ汉鍛樺悕绉�">
               <i slot="prefix" class="el-input__icon el-icon-search" />
             </el-input>
           </el-form-item>
           <el-form-item>
-            <el-button type="primary" @click="searchData()">鏌ヨ</el-button>
+            <el-button type="primary" @click="getData()">鏌ヨ</el-button>
             <el-button type="primary" plain @click="resetData()">閲嶇疆</el-button>
             <!-- <el-button type="text">楂樼骇鎼滅储<i class="el-icon-arrow-down el-icon--right" /></el-button> -->
           </el-form-item>
@@ -52,64 +49,24 @@
     </div>
     <div class="content-main">
       <div class="personner-table">
-        <el-table
-          ref="personnerlTable"
-          :height="700"
-          :max-height="700"
-          :cell-style="{textAlign: 'center'}"
-          :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
-          :data="personnerlTable"
-          style="width: 100%"
-        >
-          <el-table-column
-            prop="username"
-            label="瑙掕壊鍚嶇О"
-            min-width="120"
-          />
-          <el-table-column
-            prop="roleName"
-            label="瑙掕壊鏉冮檺"
-            min-width="120"
-          />
-          <el-table-column
-            prop="age"
-            label="骞撮緞"
-            min-width="150"
-          />
-          <el-table-column
-            prop="createTime"
-            label="鍒涘缓鏃堕棿"
-            min-width="180"
-          />
-          <el-table-column
-            prop="phone"
-            label="鐢佃瘽"
-            min-width="200"
-          />
-          <el-table-column
-            prop="email"
-            label="閭"
-            min-width="200"
-          />
-          <el-table-column
-            prop="jobState"
-            label="鍦ㄨ亴鐘舵��"
-            min-width="120"
-            :filters="[{ text: 0, value: 0 }, { text: 1, value: 1 }]"
-            :filter-method="filterTag"
-            filter-placement="bottom-end"
-          >
+        <el-table ref="personnerlTable" :max-height="700" :cell-style="{ textAlign: 'center' }"
+          :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
+          :data="personnerlTable" style="width: 100%">
+          <el-table-column prop="username" label="瑙掕壊鍚嶇О" min-width="120" />
+          <el-table-column prop="roleName" label="瑙掕壊鏉冮檺" min-width="120" />
+          <el-table-column prop="age" label="骞撮緞" min-width="150" />
+          <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="180" />
+          <el-table-column prop="phone" label="鐢佃瘽" min-width="200" />
+          <el-table-column prop="email" label="閭" min-width="200" />
+          <el-table-column prop="jobState" label="鍦ㄨ亴鐘舵��" min-width="120"
+            :filters="[{ text: 0, value: 0 }, { text: 1, value: 1 }]" :filter-method="filterTag"
+            filter-placement="bottom-end">
             <template slot-scope="scope">
-              <el-tag
-                :type="scope.row.businessStatus === 0 ? 'primary' : 'success'"
-                disable-transitions
-              >{{ scope.row.businessStatus === 0 ? '鏈悓鎰�' : '宸插悓鎰�' }}</el-tag>
+              <el-tag :type="scope.row.jobState === 0 ? 'danger' : 'success'" disable-transitions>{{
+                scope.row.jobState === 0 ? '绂诲矖' : '鍦ㄨ亴' }}</el-tag>
             </template>
           </el-table-column>
-          <el-table-column
-            label="鎿嶄綔"
-            min-width="120"
-          >
+          <el-table-column label="鎿嶄綔" min-width="120">
             <template slot-scope="scope">
               <el-button type="text" size="small" @click="handleClick(scope.row)">缂栬緫</el-button>
               <!-- <el-button type="text" size="small">缂栬緫</el-button> -->
@@ -118,15 +75,9 @@
         </el-table>
         <div>
           <!-- 鍒嗛〉鍣� -->
-          <el-pagination
-            :current-page="currentPage"
-            :page-sizes="[100, 200, 300, 400]"
-            :page-size="pageSize"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="this.personnerlTable.length"
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-          />
+          <el-pagination :current-page="currentPage" :page-sizes="[100, 200, 300, 400]" :page-size="pageSize"
+            layout="total, sizes, prev, pager, next, jumper" :total="this.personnerlTable.length"
+            @size-change="handleSizeChange" @current-change="handleCurrentChange" />
         </div>
       </div>
     </div>
@@ -134,8 +85,8 @@
 </template>
 
 <script>
-import axios from 'axios'
-axios.defaults.baseURL = 'http://192.168.110.167:1234'
+import { get, post } from '@/api/util/requestUtil';
+import urlInfo from '../../../api/urlEnum/personnel.js'
 export default {
   data() {
     return {
@@ -146,7 +97,7 @@
       filteredpersonnerlTable: [],
       currentindex: 1,
       currentPage: 1, // 褰撳墠椤电爜
-      total: 20, // 鎬绘潯鏁�
+      total: 0, // 鎬绘潯鏁�
       pageSize: 100, // 姣忛〉鐨勬暟鎹潯鏁�
       personData: [], // 鐢ㄦ潵瀛樻斁鎺ュ彛浼犺繃鏉ョ殑浜哄憳鍒楄〃鏁版嵁
       dialogFormVisible: false,
@@ -193,24 +144,23 @@
       this.currentPage = 1
       this.pageSize = val
     },
+    filterTag() {
+      console.log(11);
+    },
     // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
     handleCurrentChange(val) {
       console.log(`褰撳墠椤�: ${val}`)
       this.currentPage = val
     },
-    getData() {
-      axios.get('/user/list_new_personnel', {
-        params: {
-          pageNo: 0,
-          pageSize: 20
-        }
-      }).then(res => {
-        // console.log(res)
-        this.personData = res.data.data.row
-        this.personnerlTable = this.personData
-      }).catch(res => {
-        console.log('error')
-      })
+    async getData() {
+      let data = {
+        pageNo: 0,
+        pageSize: 20,
+        name: this.keyword
+      }
+      let res = await get(urlInfo.url.list_new_personnel, data);
+      this.personnerlTable=res.data.row
+      this.total=res.data.total
     },
     searchData() {
       this.filteredpersonnerlTable = this.personnerlTable.filter((item) => {
@@ -245,36 +195,41 @@
           return false
         }
       })
-    }
+    },
   }
 
 }
 </script>
 
 <style lang="scss" scoped>
-.personnel-main{
+.personnel-main {
+
   // width: 100%;
   // height: 100%;
-  .page-header-search{
+  .page-header-search {
     background: #fff;
     display: flex;
     justify-content: space-between;
     padding: 0 24px 12px 24px;
-     .search-bar{
-      .el-form{
-       .el-form-item{
-         margin-bottom: 0px !important;
-         .el-input{
-          width: 360px;
-         }
+
+    .search-bar {
+      .el-form {
+        .el-form-item {
+          margin-bottom: 0px !important;
+
+          .el-input {
+            width: 360px;
+          }
         }
       }
     }
   }
-  .personner-table{
+
+  .personner-table {
     background: #fff;
     padding: 20px 20px 10px 20px;
-    >div:nth-child(2){
+
+    >div:nth-child(2) {
       display: flex;
       justify-content: end;
       margin: 10px 0;

--
Gitblit v1.9.3