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