From 4318282db1a4702e2afd3f9967b72242d87a5b19 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期一, 17 六月 2024 11:18:56 +0800
Subject: [PATCH] ‘’

---
 admin/src/components/operation/OperCarUseBookParamWindow.vue |  196 +++++++++++++++++++++++++++++++++++++++
 admin/src/api/business/carUseBook.js                         |    8 +
 admin/.env.test                                              |    2 
 admin/src/views/operation/serviceCar/apprRecord.vue          |   46 +++++----
 4 files changed, 230 insertions(+), 22 deletions(-)

diff --git a/admin/.env.test b/admin/.env.test
index 03d2518..97727cd 100644
--- a/admin/.env.test
+++ b/admin/.env.test
@@ -1,4 +1,4 @@
 # 娴嬭瘯鐜閰嶇疆
 NODE_ENV = 'production'
 
-VUE_APP_API_URL  = 'http://192.168.0.172/'
+VUE_APP_API_URL  = '/'
diff --git a/admin/src/api/business/carUseBook.js b/admin/src/api/business/carUseBook.js
index 94ac03e..93bedd0 100644
--- a/admin/src/api/business/carUseBook.js
+++ b/admin/src/api/business/carUseBook.js
@@ -34,7 +34,7 @@
   return request.get(`/visitsAdmin/cloudService/business/carUseBook/delete/${id}`)
 }
 // 鏍规嵁ID鏌ヨ
-export function detail(id) {
+export function detail (id) {
   return request.get(`/visitsAdmin/cloudService/business/carUseBook/${id}`)
 }
 // 鎵归噺鍒犻櫎
@@ -45,3 +45,9 @@
     }
   })
 }
+// 鏌ヨ杞﹁締鍙绾︽椂娈�
+export const carCanReservationDate = (params) => {
+  return request.get('/visitsAdmin/cloudService/business/carUseBook/carCanReservationDate', {
+    params
+  })
+}
diff --git a/admin/src/components/operation/OperCarUseBookParamWindow.vue b/admin/src/components/operation/OperCarUseBookParamWindow.vue
new file mode 100644
index 0000000..ea7dd6a
--- /dev/null
+++ b/admin/src/components/operation/OperCarUseBookParamWindow.vue
@@ -0,0 +1,196 @@
+<template>
+  <GlobalWindow
+    :title="title"
+    width="1000px"
+    :visible.sync="visible"
+    :confirm-working="isWorking"
+    @confirm="confirm"
+  >
+    <div class="modal_wrap">
+      <el-form :model="form" ref="form" class="el_form" :rules="rules">
+        <el-form-item label="鐢ㄨ溅鑼冨洿" prop="type">
+          <el-radio v-model="form.type" :label="0">瀹ゅ唴鐢ㄨ溅</el-radio>
+          <el-radio v-model="form.type" :label="1">瀹ゅ鐢ㄨ溅</el-radio>
+        </el-form-item>
+        <el-form-item label="閫夋嫨杞﹁締" prop="carId">
+          <el-select v-model="form.carId" placeholder="閫夋嫨杞﹁締">
+            <el-option
+              v-for="item in carsList"
+              :key="item.carId"
+              :label="item.carCode"
+              :value="item.carId"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鐢ㄨ溅鏃堕棿" prop="sortnum">
+          <div></div>
+          <div class="sel_btn" @click="openTime">閫夋嫨鏃堕棿</div>
+        </el-form-item>
+        <el-form-item label="棰勮鍑哄彂鏃堕棿" prop="sortnum">
+          <el-date-picker
+            v-model="form.a"
+            type="datetime"
+            placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="鐩殑鍦�" prop="sortnum">
+          <el-input v-model="form.addr" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
+        </el-form-item>
+        <el-form-item label="涔樿溅浜哄憳" prop="sortnum"> </el-form-item>
+        <el-form-item label="鐢ㄨ溅浜嬬敱" prop="sortnum">
+          <el-input
+            v-model="form.content"
+            type="textarea"
+            placeholder="璇疯緭鍏�"
+            :rows="4"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div class="tip_wrap">111</div>
+    </div>
+
+    <el-dialog
+      title="閫夋嫨鐢ㄨ溅鏃堕棿"
+      :visible.sync="isShowTime"
+      append-to-body
+      width="600px"
+    >
+      <el-form :model="form" ref="form" class="el_form" :rules="rules">
+        <el-form-item label="鐢ㄨ溅鏃ユ湡" prop="dateDay">
+          <el-date-picker
+            v-model="form.dateDay"
+            value-format="yyyy-MM-dd"
+            type="date"
+            placeholder="閫夋嫨鏃ユ湡"
+            @change="seletedDate"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="鐢ㄨ溅鏃堕棿" prop="dateDay">
+          <div>
+            <div class="time_list">
+              <div
+                class="item"
+                :class="{
+                  disable: item.isUse == 1,
+                  active: item.checked == '1',
+                }"
+                @click="datetimeClick(item, i)"
+                v-for="(item, i) in timeList"
+                :key="i"
+                >{{ item.startHours }}-{{ item.endHours }}</div
+              >
+            </div>
+          </div>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+  </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { allList } from '@/api/business/member'
+import { allList as getCarList } from '@/api/business/cars'
+import { carCanReservationDate } from '@/api/business/carUseBook'
+export default {
+  name: 'OperCarUseBookParamWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      isShowTime: false,
+
+      memberList: [],
+      timeList: [],
+      carsList: [],
+      form: {
+        type: 0
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+        name: [
+          { required: true, message: '璇疯緭鍏ュ悕绉�' }
+        ]
+      }
+    }
+  },
+  created () {
+    this.initData()
+  },
+  methods: {
+    open () {
+      this.title = '鏂板缓鍏姟杞︾敤杞︾敵璇�'
+      this.visible = true
+    },
+    openTime () {
+      const { form } = this
+      if(!form.carId){
+        this.$tip.warning('璇峰厛閫夋嫨杞﹁締')
+      }
+      this.isShowTime = true
+    },
+    seletedDate (e) {
+      console.log(e)
+      const item = e.value[0]
+      this.$set(this.param, 'carCode', item.code)
+      this.$set(this.param, 'carId', item.id)
+      if (this.param.carId && this.param.queryDate) {
+        this.gettimes()
+      }
+      this.isShowCar = false
+    },
+    gettimes () {
+      const { param } = this
+      carCanReservationDate({
+        dateDay: param.queryDate,
+        carId: param.carId
+      }).then(res => {
+        if (res.code === 200) {
+          this.timeList = res.data || []
+          this.timeList.forEach((i, j) => {
+            i.checked = '0',
+            i.index = j
+          })
+        }
+      })
+    },
+    initData () {
+      getCarList({
+        type: 1
+      }).then(res => {
+        this.carsList = res.data || []
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.modal_wrap {
+  display: flex;
+  .el_form {
+    flex: 1;
+    .sel_btn {
+      width: 100%;
+      height: 32px;
+      border-radius: 4px;
+      border: 1px solid #dcdfe6;
+      margin-top: 32px;
+      text-align: right;
+      color: #999999;
+      padding-right: 12px;
+      box-sizing: border-box;
+      cursor: pointer;
+    }
+  }
+  .tip_wrap {
+    width: 460px;
+    margin-left: 30px;
+  }
+}
+</style>
diff --git a/admin/src/views/operation/serviceCar/apprRecord.vue b/admin/src/views/operation/serviceCar/apprRecord.vue
index 2ed565a..7667005 100644
--- a/admin/src/views/operation/serviceCar/apprRecord.vue
+++ b/admin/src/views/operation/serviceCar/apprRecord.vue
@@ -51,8 +51,9 @@
     </el-form>
     <!-- 琛ㄦ牸鍜屽垎椤� -->
     <template v-slot:table-wrap>
-      <ul class="toolbar" v-permissions="['business:empower:create', 'business:empower:delete']">
-        <!--<li><el-button type="primary" v-permissions="['business:empower:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li> -->
+      <ul class="toolbar" v-permissions="['business:carusebook:create','business:carusebook:exportExcel']">
+        <li><el-button type="primary" @click="handleEdit" icon="el-icon-plus" v-permissions="['business:carusebook:create']">鏂板缓</el-button></li>
+        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:carusebook:exportExcel']">瀵煎嚭</el-button></li>
       </ul>
       <el-table
           v-loading="isWorking.search"
@@ -109,6 +110,7 @@
       </pagination>
     </template>
     <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="handlePageChange"/>
+    <OperaCarUseBookParamWindow ref="OperaParamWindow" @success="handlePageChange"/>
   </TableLayout>
 </template>
 
@@ -117,12 +119,13 @@
 import TableLayout from '@/layouts/TableLayout'
 import Pagination from '@/components/common/Pagination'
 import OperaCarUseBookWindow from '@/components/business/OperaCarUseBookWindow'
+import OperaCarUseBookParamWindow from '@/components/operation/OperCarUseBookParamWindow.vue'
 import { timeForMat } from '@/utils/util'
 import { allList } from '@/api/business/hiddenDangerParam'
 export default {
   name: 'Empower',
   extends: BaseTable,
-  components: { TableLayout, Pagination ,OperaCarUseBookWindow},
+  components: { TableLayout, Pagination, OperaCarUseBookWindow, OperaCarUseBookParamWindow },
   data () {
     return {
       // 鎼滅储
@@ -169,26 +172,29 @@
       }
       this.search()
     },
+    handleEdit () {
+      this.$refs.OperaParamWindow.open()
+    },
     loadParams () {
       allList({
       })
-          .then(res => {
-            if (res != null && res.length) {
-              res.forEach(item => {
-                if (item && item.type != null && item.type === 0) {
-                  this.areaList.push(item)
-                }
-                if (item && item.type != null && item.type === 1) {
-                  this.cateList.push(item)
-                }
-              })
-            }
-          })
-          .catch(e => {
-            // this.$tip.apiFailed(e)
-          })
-          .finally(() => {
-          })
+        .then(res => {
+          if (res != null && res.length) {
+            res.forEach(item => {
+              if (item && item.type != null && item.type === 0) {
+                this.areaList.push(item)
+              }
+              if (item && item.type != null && item.type === 1) {
+                this.cateList.push(item)
+              }
+            })
+          }
+        })
+        .catch(e => {
+          // this.$tip.apiFailed(e)
+        })
+        .finally(() => {
+        })
     },
     seleTime (e) {
       this.searchForm.queryStartTime = e[0]

--
Gitblit v1.9.3