From 69a1b3bf45738f048361ee4ccb6bdc64fce35720 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 12 三月 2025 11:31:46 +0800
Subject: [PATCH] 更新

---
 admin/src/views/business/retentionCars.vue |  164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 164 insertions(+), 0 deletions(-)

diff --git a/admin/src/views/business/retentionCars.vue b/admin/src/views/business/retentionCars.vue
new file mode 100644
index 0000000..45320b1
--- /dev/null
+++ b/admin/src/views/business/retentionCars.vue
@@ -0,0 +1,164 @@
+<template>
+  <TableLayout :permissions="['business:retention:query']">
+    <!-- 鎼滅储琛ㄥ崟 -->
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+      <el-form-item label="杞︾墝鍙�" prop="carNo">
+        <el-input v-model="searchForm.carNo" placeholder="璇疯緭鍏ヨ溅鐗屽彿" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="keyWords">
+        <el-input v-model="searchForm.keyWords" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="缁勭粐" prop="companyName">
+        <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="杞﹁締绫诲瀷" prop="carType">
+        <el-select v-model="searchForm.carType" placeholder="璇烽�夋嫨">
+          <el-option label="鍐呴儴杞﹁締" value="0"></el-option>
+          <el-option label="鐩稿叧鏂硅溅杈�" value="1"></el-option>
+          <el-option label="璁垮杞﹁締" value="2"></el-option>
+          <el-option label="鍐呰繍鐗╂祦杞�" value="3"></el-option>
+          <el-option label="澶栧崗杞﹁締" value="4"></el-option>
+          <el-option label="甯傚叕鍙稿嵏璐ц溅" value="5"></el-option>
+          <el-option label="鏈櫥璁拌溅杈�" value="6"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="璧锋鏃堕棿" prop="startTime">
+        <!-- <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss"
+          value-format="yyyy-MM-dd HH:mm:ss" range-separator="鑷�" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿">
+        </el-date-picker> -->
+        <el-date-picker type="datetime" v-model="searchForm.startTime" value-format="yyyy-MM-dd HH:mm:ss"
+          placeholder="璇烽�夋嫨寮�濮嬫椂闂�" @change="changeRadio" />
+        <el-date-picker type="datetime" v-model="searchForm.endTime" value-format="yyyy-MM-dd HH:mm:ss"
+          placeholder="璇烽�夋嫨缁撴潫鏃堕棿" @change="changeRadio" />
+      </el-form-item>
+      <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
+        <el-radio-button label="0">褰撳ぉ</el-radio-button>
+        <el-radio-button label="1">杩�7澶�</el-radio-button>
+        <el-radio-button label="2">杩�30澶�</el-radio-button>
+      </el-radio-group>
+      <section>
+        <el-button type="primary" @click="search">鎼滅储</el-button>
+        <el-button @click="reset">閲嶇疆</el-button>
+      </section>
+    </el-form>
+    <!-- 琛ㄦ牸鍜屽垎椤� -->
+    <template v-slot:table-wrap>
+      <ul class="toolbar" v-permissions="['business:retention:exportExcel']">
+        <li>
+          <el-button type="primary" :loading="isWorking.export" v-permissions="['business:retention:exportExcel']"
+            @click="exportExcel">瀵煎嚭</el-button>
+        </li>
+      </ul>
+      <el-table :height="tableHeightNew" v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="createDate" label="杩涘満鏃堕棿" min-width="150px"></el-table-column>
+        <el-table-column prop="carNo" label="杞︾墝鍙�" min-width="100px"></el-table-column>
+        <el-table-column prop="companyName" label="缁勭粐" min-width="250px">
+          <template slot-scope="{ row }">
+            <span>{{ row.companyName || row.visitCompanyName || '' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="carType" label="杞﹁締绫诲瀷" min-width="100px">
+          <template slot-scope="{ row }">
+            <span v-if="row.carType == 0">鍐呴儴杞﹁締</span>
+            <span v-else-if="row.carType == 1">鐩稿叧鏂硅溅杈�</span>
+            <span v-else-if="row.carType == 2">璁垮杞﹁締</span>
+            <span v-else-if="row.carType == 3">鍐呰繍鐗╂祦杞�</span>
+            <span v-else-if="row.carType == 4">澶栧崗杞﹁締</span>
+            <span v-else-if="row.carType == 5">甯傚叕鍙稿嵏璐ц溅</span>
+            <span v-else-if="row.carType == 6">鏈櫥璁拌溅杈�</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
+        <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+        <!--        <el-table-column label="杩涘満闂ㄧ" min-width="100px">
+          <template slot-scope="{ row }">
+            &lt;!&ndash; <span v-if="row.type === 1">-</span> &ndash;&gt;
+            <span>{{ row.deviceName || '-' }}</span>
+          </template>
+        </el-table-column>-->
+        <el-table-column label="鎿嶄綔" min-width="120" fixed="right">
+          <template slot-scope="{ row }">
+            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
+              v-permissions="['business:retention:delete']">鏍囪绂诲満</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
+      </pagination>
+    </template>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import { timeForMat } from '@/utils/util'
+export default {
+  name: 'Retention',
+  extends: BaseTable,
+  components: { TableLayout, Pagination },
+  data() {
+    return {
+      // 鎼滅储
+      searchForm: {
+        carNo: '',
+        carType: '',
+        keyWords: '',
+        startTime: '',
+        endTime: '',
+        radio: 0
+      },
+      time: []
+    }
+  },
+  created() {
+    this.config({
+      module: '鍦ㄥ洯浜哄憳淇℃伅 琛紙婊炵暀锛�',
+      api: '/business/retentionCars',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.changeRadio('0')
+  },
+  methods: {
+    changeRadio(e) {
+      if (e === '0') {
+        this.searchForm.startTime = timeForMat(0)[0]
+        this.searchForm.endTime = timeForMat(0)[1]
+      } else if (e === '1') {
+        this.searchForm.startTime = timeForMat(6)[0]
+        this.searchForm.endTime = timeForMat(6)[1]
+      } else if (e === '2') {
+        this.searchForm.startTime = timeForMat(29)[0]
+        this.searchForm.endTime = timeForMat(29)[1]
+      } else {
+        this.searchForm.radio = ''
+      }
+      if (this.searchForm.startTime && this.searchForm.endTime && new Date(this.searchForm.startTime).getTime() > new Date(this.searchForm.endTime).getTime()) {
+        this.$message.error('寮�濮嬫椂闂翠笉鑳藉ぇ浜庣粨鏉熸椂闂�')
+        this.searchForm.startTime = ''
+        return
+      }
+      this.search()
+    },
+    reset() {
+      this.$refs.searchForm.resetFields()
+      this.searchForm.startTime = ''
+      this.searchForm.radio = ''
+      this.searchForm.endTime = ''
+      this.time = []
+      this.search()
+    },
+    seleTime(e) {
+      if (e && e.length > 2) {
+        this.searchForm.startTime = e[0]
+        this.searchForm.endTime = e[1]
+        this.searchForm.radio = null
+      }
+
+    }
+  }
+}
+</script>

--
Gitblit v1.9.3