@dongkboy 4 месяцев назад
Родитель
Сommit
f67379c5c2
1 измененных файлов с 21 добавлено и 37 удалено
  1. 21 37
      src/views/additionalOrder/additional/modules/carTypeSelect.vue

+ 21 - 37
src/views/additionalOrder/additional/modules/carTypeSelect.vue

@@ -1,21 +1,8 @@
 <template>
   <div class="carTypeSelect">
-    <el-row :gutter="20">
-      <el-col :span="8">
-        <el-input v-model="searchValue" prefix-icon="Search" placeholder="请输入车辆识别代码查询"></el-input>
-      </el-col>
-      <el-col :span="8">
-        <el-button type="primary" @click="handleSearch">查询</el-button>
-      </el-col>
-    </el-row>
-    <el-table
-      ref="CarTypeRef"
-      row-key="a"
-      :data="tableData"
-      style="margin: 24px 0; max-height: 400px"
-      @select="handleSelect"
-    >
-      <el-table-column type="selection" width="80"></el-table-column>
+    <span class="flex a-c  mb-2" style="color: #409eff;font-size: 13px;">(单击后确定 或 双击选中车型)</span>
+    <el-table ref="CarTypeRef" row-key="id" highlight-current-row :data="tableData"
+      style="margin: 24px 0; max-height: 400px" @row-dblclick="handleSelectedRow" @current-change="handleCurrentChange">
       <el-table-column prop="modelCode" label="厂牌型号代码"></el-table-column>
       <el-table-column prop="modelName" label="厂牌型号"></el-table-column>
       <el-table-column prop="replacementValue" label="新车购置价"></el-table-column>
@@ -34,41 +21,38 @@
 <script setup lang="ts">
 
 import api from "@/api";
-import {ElMessage} from "element-plus";
+import { ElMessage } from "element-plus";
 
 const emits = defineEmits(['close'])
 const CarTypeRef = ref()
 
-// 查询
-let searchValue = ref('')
-const handleSearch = () => {
+let selectRowData = ref<CarInfo | {}>({})
 
-}
 
+const handleSelectedRow = (row: any, column: any) => {
+  selectRowData.value = row
+  handleConfirm()
+}
+// 车型选中事件
+const handleCurrentChange = (row: any) => {
+  selectRowData.value = row
+}
 // 列表
-let selectItem = ref(null)
 let tableData = ref([])
-const handleSelect = (val, row) => {
-  selectItem.value = row
-  if(val.length > 1) {
-    CarTypeRef.value.clearSelection()
-    CarTypeRef.value.toggleRowSelection(row);
-  }
-}
 
 // 取消
 const handleCancel = () => {
-  emits('close', selectItem.value)
+  emits('close', null)
 }
 // 确定
 const handleConfirm = () => {
-  emits('close', selectItem.value)
+  emits('close', selectRowData.value)
 }
 const initData = (data, type) => {
   tableData.value = []
-  if(type === 1) {
+  if (type === 1) {
     api.additionalApi.vinSearch(data).then((res: any) => {
-      if(res.code == 200) {
+      if (res.code == 200) {
         tableData.value = res.data
       } else {
         ElMessage({
@@ -78,11 +62,11 @@ const initData = (data, type) => {
       }
     })
   }
-  if(type === 2) {
+  if (type === 2) {
     api.additionalApi.licenseSearch({
       modelName: data.replace(/[^u4e00-u9fa5|,]+/gi, "")
     }).then((res: any) => {
-      if(res.code == 200) {
+      if (res.code == 200) {
         tableData.value = res.data
       } else {
         ElMessage({
@@ -101,8 +85,8 @@ defineExpose({
 </script>
 
 <style scoped lang="scss">
-.carTypeSelect{
-  .footer{
+.carTypeSelect {
+  .footer {
     display: flex;
     align-items: center;
     justify-content: flex-end;