2545307760@qq.com 4 bulan lalu
induk
melakukan
f6fb391aba

+ 9 - 7
server/service/owner/owner.go

@@ -2,6 +2,7 @@ package owner
 
 import (
 	"errors"
+	"fmt"
 	"server/dao"
 	"server/global"
 	"server/model/owner/request"
@@ -68,13 +69,14 @@ func (s *ownerService) GetOwnerByID(id uint) (dao.Owner, error) {
 }
 
 // GetOwnerByPhone 根据手机号获取车主信息
-func (s *ownerService) GetOwnerByPhone(phone string) (dao.Owner, error) {
-	var owner dao.Owner
-	result := global.GVA_DB.Where("owner_phone = ?", phone).First(&owner)
-	if result.RowsAffected == 0 {
-		return dao.Owner{}, errors.New("车主不存在")
-	}
-	return owner, nil
+func (s *ownerService) GetOwnerByPhone(phone string) ([]dao.Owner, error) {
+	var ownerList []dao.Owner
+	result := global.GVA_DB.Where("owner_phone LIKE ?", "%"+phone+"%").Find(&ownerList)
+	fmt.Println(result)
+	//if result.RowsAffected == 0 {
+	//	return dao.Owner{}, errors.New("车主不存在")
+	//}
+	return ownerList, nil
 }
 
 // ListOwners 获取车主列表

+ 21 - 4
web/src/view/parking/carOwner.vue

@@ -2,9 +2,9 @@
   <div>
     <el-form inline>
       <el-form-item>
-        <el-input>
+        <el-input placeholder="请输入手机号" v-model="mobilePhone">
           <template #append>
-            <el-button>搜索</el-button>
+            <el-button @click="phoneCarOwnerList">搜索</el-button>
           </template>
         </el-input>
       </el-form-item>
@@ -38,7 +38,13 @@
       <el-table-column label="姓氏" align="center" width="180" prop="owner_surname"></el-table-column>
       <el-table-column label="手机" align="center" prop="owner_phone"></el-table-column>
       <el-table-column label="邮箱" align="center"></el-table-column>
-      <el-table-column label="住址" align="center"></el-table-column>
+      <el-table-column label="vip" align="center">
+        <template #default="scope">
+          <el-button :type="scope.row.is_vip ? 'success' : 'danger'" plain>
+            {{scope.row.is_vip ? '已成为vip' : '未成为vip'}}
+          </el-button>
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center">
         <template #default="scope">
 <!--          <el-tooltip content="Bottom center" placement="bottom" effect="light">-->
@@ -84,7 +90,7 @@
 </template>
 
 <script setup>
-import { obtainCarOwnerList, addCarOwner, editCarOwner, removeCarOwner } from '@/api/carOwner'
+import { obtainCarOwnerList, addCarOwner, editCarOwner, removeCarOwner, carOwnerInfoPhone } from '@/api/carOwner'
 import { onMounted, reactive, ref } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import {deleteGuardBooth} from "@/api/guardBooth";
@@ -184,6 +190,17 @@ const carOwnerOperation = async () => {
     })
   }
 }
+
+const mobilePhone = ref('')
+
+const phoneCarOwnerList = () => {
+  carOwnerInfoPhone(mobilePhone.value).then(res => {
+    if (res.code === 0) {
+      carOwnerList.length = 0
+      carOwnerList.push(...res.data)
+    }
+  })
+}
 onMounted(() => {
   getCarOwnerList()
 })

+ 54 - 11
web/src/view/report/enter.vue

@@ -2,18 +2,18 @@
   <div>
     <el-form inline>
       <el-form-item label="车牌:">
-        <el-input />
-      </el-form-item>
-      <el-form-item label="ID:">
-        <el-input />
+        <el-input v-model="licensePlate"/>
       </el-form-item>
+<!--      <el-form-item label="ID:">-->
+<!--        <el-input v-model="enterId" />-->
+<!--      </el-form-item>-->
       <el-form-item>
-        <el-button type="primary">搜索</el-button>
+        <el-button type="primary" @click="conditionEnterList">搜索</el-button>
       </el-form-item>
     </el-form>
     <el-row>
       <el-col :span="24">
-        <el-table :data="enterList">
+        <el-table :data="enterList" height="605">
           <el-table-column label="车牌">
 
           </el-table-column>
@@ -40,10 +40,22 @@
           </el-table-column>
           <el-table-column label="操作">
             <template #default="scope">
-              <el-button type="primary" text icon="View">查看</el-button>
+              <el-button type="primary" text icon="View" @click="openEnter(scope.row)">查看</el-button>
             </template>
           </el-table-column>
         </el-table>
+        <div style="width: 100%;display: flex;justify-content: end">
+          <el-pagination
+              :current-page="enterCondition.page"
+              :page-size="enterCondition.page_size"
+              :page-sizes="[10, 30, 50, 100]"
+              :total="enterTotal"
+              layout="total, sizes, prev, pager, next, jumper"
+              @current-change="handleCurrentChange"
+              @size-change="handleSizeChange"
+              style="padding-right: 10px"
+          />
+        </div>
       </el-col>
     </el-row>
     <el-dialog title="进出记录" v-model="enterShow">
@@ -72,8 +84,8 @@
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button @click="recordShow = false">取消</el-button>
-          <el-button type="primary" @click="recordShow = false">
+          <el-button @click="enterShow = false">取消</el-button>
+          <el-button type="primary" @click="enterShow = false">
             确定
           </el-button>
         </div>
@@ -84,21 +96,52 @@
 
 <script setup>
 import { reactive, ref, onMounted } from "vue"
-import { obtainEnterList } from "@/api/enter"
+import { obtainEnterList, obtainEnterNumber } from "@/api/enter"
 const enterList = reactive([])
 const enterShow = ref(false)
+const enterCondition = reactive({
+  page:1,
+  page_size: 10
+})
+
+const licensePlate = ref('')
+// const enterId = ref(0)
+const enterTotal = ref(0)
 const openEnter = (data) => {
   console.log(data)
   enterShow.value = true
 }
 const getEnterList = async () => {
-  await obtainEnterList().then(res => {
+  await obtainEnterList(enterCondition).then(res => {
+    if (res.code === 0) {
+      enterList.length = 0
+      enterTotal.value = res.data.total
+      enterList.push(...res.data.list)
+    }
+  })
+}
+
+const handleCurrentChange = (data) => {
+  enterCondition.page = data
+  getEnterList()
+}
+
+const handleSizeChange = (data) => {
+  enterCondition.page_size = data
+  getEnterList()
+}
+
+// 条件检索
+const conditionEnterList = () => {
+  obtainEnterNumber(licensePlate.value).then(res => {
     if (res.code === 0) {
       enterList.length = 0
       enterList.push(...res.data.list)
+      enterTotal.value = res.data.total
     }
   })
 }
+
 onMounted(() => {
   getEnterList()
 })