From 5176aefe7d7e6f77f23dd7059d85bf7b398900f5 Mon Sep 17 00:00:00 2001
From: hailin <1356886193@qq.com>
Date: 星期二, 25 七月 2023 09:17:58 +0800
Subject: [PATCH] 解决设备台账冲突

---
 src/views/laboratory/personnel/index.vue |  173 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 144 insertions(+), 29 deletions(-)

diff --git a/src/views/laboratory/personnel/index.vue b/src/views/laboratory/personnel/index.vue
index 6405a16..3312928 100644
--- a/src/views/laboratory/personnel/index.vue
+++ b/src/views/laboratory/personnel/index.vue
@@ -5,21 +5,49 @@
         <el-form ref="form" inline="true" :model="searchData">
           <el-form-item>
             <el-input
+              v-model="keyword"
               placeholder="璇疯緭鍏ヤ汉鍛樺悕绉�"
-              v-model="searchData.keyword"
             >
               <i slot="prefix" class="el-input__icon el-icon-search" />
             </el-input>
           </el-form-item>
           <el-form-item>
-            <el-button type="primary">鏌ヨ</el-button>
-            <el-button type="primary" plain>閲嶇疆</el-button>
+            <el-button type="primary" @click="searchData()">鏌ヨ</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>
         </el-form>
       </div>
       <div class="serve-btn">
-        <el-button type="primary" icon="el-icon-plus">鏂板浜哄憳</el-button>
+        <el-button type="primary" icon="el-icon-plus" @click="dialogFormVisible = true">鏂板浜哄憳</el-button>
+
+        <el-dialog title="鏂板浜哄憳" :visible.sync="dialogFormVisible" width="30%">
+          <el-form :model="form" :rules="rules">
+            <el-form-item label="璐﹀彿" :label-width="formLabelWidth" prop="account">
+              <el-input v-model="form.account" autocomplete="off" />
+            </el-form-item>
+            <el-form-item label="骞撮緞" :label-width="formLabelWidth">
+              <el-input v-model="form.age" autocomplete="off" />
+            </el-form-item>
+            <el-form-item label="閭" :label-width="formLabelWidth" prop="email">
+              <el-input v-model="form.email" autocomplete="off" />
+            </el-form-item>
+            <el-form-item label="鍚嶅瓧" :label-width="formLabelWidth" prop="name">
+              <el-input v-model="form.name" autocomplete="off" />
+            </el-form-item>
+            <el-form-item label="鐢佃瘽" :label-width="formLabelWidth" prop="phone">
+              <el-input v-model="form.phone" autocomplete="off" />
+            </el-form-item>
+
+            <el-form-item label="鏉冮檺" :label-width="formLabelWidth" prop="role_id">
+              <el-input v-model="form.role_id" autocomplete="off" />
+            </el-form-item>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
+            <el-button type="primary" @click="submitForm()">纭� 瀹�</el-button>
+          </div>
+        </el-dialog>
       </div>
     </div>
     <div class="content-main">
@@ -34,12 +62,12 @@
           style="width: 100%"
         >
           <el-table-column
-            prop="roleName"
+            prop="username"
             label="瑙掕壊鍚嶇О"
             min-width="120"
           />
           <el-table-column
-            prop="rolePermissions"
+            prop="roleName"
             label="瑙掕壊鏉冮檺"
             min-width="120"
           />
@@ -49,7 +77,7 @@
             min-width="150"
           />
           <el-table-column
-            prop="creatTime"
+            prop="createTime"
             label="鍒涘缓鏃堕棿"
             min-width="180"
           />
@@ -59,12 +87,12 @@
             min-width="200"
           />
           <el-table-column
-            prop="mailbox"
+            prop="email"
             label="閭"
             min-width="200"
           />
           <el-table-column
-            prop="incumbentStatus"
+            prop="jobState"
             label="鍦ㄨ亴鐘舵��"
             min-width="120"
             :filters="[{ text: 0, value: 0 }, { text: 1, value: 1 }]"
@@ -83,21 +111,22 @@
             min-width="120"
           >
             <template slot-scope="scope">
-              <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button>
+              <el-button type="text" size="small" @click="handleClick(scope.row)">缂栬緫</el-button>
               <!-- <el-button type="text" size="small">缂栬緫</el-button> -->
             </template>
           </el-table-column>
         </el-table>
         <div>
+          <!-- 鍒嗛〉鍣� -->
           <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
             :current-page="currentPage"
             :page-sizes="[100, 200, 300, 400]"
-            :page-size="100"
+            :page-size="pageSize"
             layout="total, sizes, prev, pager, next, jumper"
-            :total="400">
-          </el-pagination>
+            :total="this.personnerlTable.length"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
         </div>
       </div>
     </div>
@@ -105,34 +134,120 @@
 </template>
 
 <script>
+import axios from 'axios'
+axios.defaults.baseURL = 'http://192.168.110.167:1234'
 export default {
   data() {
     return {
-      currentPage: 1,
-      searchData: {
-        keyword: ''
-      },
+      keyword: '',
       personnerlTable: [
-        {
-          roleName: '寮犱笁',
-          rolePermissions: '绠$悊鍛�',
-          age: '18',
-          creatTime: '2023-07-07',
-          phone: '138888888',
-          mailbox: '138888888@qq.com',
-          incumbentStatus: '1'
-        }
-      ]
+
+      ],
+      filteredpersonnerlTable: [],
+      currentindex: 1,
+      currentPage: 1, // 褰撳墠椤电爜
+      total: 20, // 鎬绘潯鏁�
+      pageSize: 100, // 姣忛〉鐨勬暟鎹潯鏁�
+      personData: [], // 鐢ㄦ潵瀛樻斁鎺ュ彛浼犺繃鏉ョ殑浜哄憳鍒楄〃鏁版嵁
+      dialogFormVisible: false,
+      form: {
+        account: '',
+        age: '',
+        email: '',
+        name: '',
+        phone: '',
+        role_id: ''
+      },
+      formLabelWidth: '100px',
+      rules: {
+        account: [
+          {
+            required: true, message: '璇疯緭鍏ヨ处鍙�', trigger: 'blur'
+          }
+        ],
+        name: [{
+          required: true, message: '璇疯緭鍏ュ悕瀛�', trigger: 'blur'
+        }],
+        phone: [
+          // { required: true, message: '璇疯緭鍏�11浣嶇數璇濆彿鐮�', trigger: 'blur' },
+          { pattern: /^1[34578]\d{9}$/, message: '闈炴硶鎵嬫満鍙风爜', trigger: 'blur' }
+        ],
+        email: [
+          // { required: true, message: '璇疯緭鍏ラ偖绠卞湴鍧�', trigger: 'blur' },
+          { type: 'email', message: '闈炴硶閭鍦板潃', trigger: ['blur', 'change'] }
+        ],
+        role_id: [
+          { required: true, message: '璇疯緭鍏ユ潈闄�(0鎴�1)', trigger: 'blur' }
+
+        ]
+      }
     }
   },
+  mounted() {
+    this.getData()
+  },
   methods: {
+    // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
     handleSizeChange(val) {
       console.log(`姣忛〉 ${val} 鏉)
+      this.currentPage = 1
+      this.pageSize = val
     },
+    // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
     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')
+      })
+    },
+    searchData() {
+      this.filteredpersonnerlTable = this.personnerlTable.filter((item) => {
+        return item.username === this.keyword
+      }
+      )
+      this.personnerlTable = this.filteredpersonnerlTable
+    },
+    resetData() {
+      // console.log("111111")
+      this.personnerlTable = this.personData
+      this.keyword = ''
+    },
+    // 鎻愪氦鏂板浜哄憳琛ㄥ崟
+    submitForm() {
+      // Handle form submission here
+      // console.log(this.form);
+      // POST璇锋眰
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.dialogFormVisible = false
+          axios.post('/user/add_new_personnel', this.form)
+            .then(response => {
+              console.log(response)
+              // this.dialogVisible = false;
+            })
+            .catch(error => {
+              console.error(error)
+            })
+        } else {
+          console.log('error submit!!')
+          return false
+        }
+      })
     }
   }
+
 }
 </script>
 

--
Gitblit v1.9.3