|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <GlobalWindow | 
|---|
|  |  |  | :title="title" | 
|---|
|  |  |  | width="1000px" | 
|---|
|  |  |  | :visible.sync="visible" | 
|---|
|  |  |  | :confirm-working="isWorking" | 
|---|
|  |  |  | @confirm="confirm" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <GlobalWindow :title="title" width="1000px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> | 
|---|
|  |  |  | <div class="modal_wrap"> | 
|---|
|  |  |  | <el-form :model="form" ref="formRef" class="el_form" :rules="rules"> | 
|---|
|  |  |  | <el-form-item label="用车范围" prop="type"> | 
|---|
|  |  |  | <el-radio v-model="form.type" style="width: 80px" :label="0" | 
|---|
|  |  |  | >市内用车</el-radio | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-radio v-model="form.type" style="width: 80px" :label="1" | 
|---|
|  |  |  | >市外用车</el-radio | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-radio v-model="form.type" @change="changeType" style="width: 80px" :label="0">市内用车</el-radio> | 
|---|
|  |  |  | <el-radio v-model="form.type" @change="changeType" style="width: 80px" :label="1">市外用车</el-radio> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="选择车辆" prop="carId"> | 
|---|
|  |  |  | <el-select v-model="form.carId" @change="clearTime" placeholder="选择车辆"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="item in carsList" | 
|---|
|  |  |  | :key="item.id" | 
|---|
|  |  |  | :label="item.code" | 
|---|
|  |  |  | :value="item.id" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option v-for="item in carsList" :key="item.id" :label="item.code" :value="item.id"> | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="用车时间" prop="startTime"> | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | v-if="form.startTime && form.endTime" | 
|---|
|  |  |  | class="sel_btn text" | 
|---|
|  |  |  | @click="openTime" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div v-if="form.startTime && form.endTime" class="sel_btn text" @click="openTime"> | 
|---|
|  |  |  | {{ form.startTime }}-{{ form.endTime }} | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-else class="sel_btn" @click="openTime">选择时间</div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="预计出发时间" prop="planUseDate"> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | v-if="form.type == '0'" | 
|---|
|  |  |  | :disabled="!form.startTime" | 
|---|
|  |  |  | v-model="form.planUseDate" | 
|---|
|  |  |  | format="yyyy-MM-dd HH:mm" | 
|---|
|  |  |  | value-format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | :picker-options="pickerOptions" | 
|---|
|  |  |  | default-time="08:00:00" | 
|---|
|  |  |  | type="datetime" | 
|---|
|  |  |  | placeholder="选择日期时间" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | v-if="form.type == '1'" | 
|---|
|  |  |  | :disabled="!form.startTime" | 
|---|
|  |  |  | v-model="form.planUseDate" | 
|---|
|  |  |  | format="yyyy-MM-dd HH:mm" | 
|---|
|  |  |  | value-format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | :picker-options="pickerOptions2" | 
|---|
|  |  |  | default-time="08:00:00" | 
|---|
|  |  |  | type="datetime" | 
|---|
|  |  |  | placeholder="选择日期时间" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-date-picker v-if="form.type == '0'" :disabled="!form.startTime" v-model="form.planUseDate" | 
|---|
|  |  |  | format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" type="datetime" placeholder="选择日期时间" /> | 
|---|
|  |  |  | <el-date-picker v-if="form.type == '1'" :disabled="!form.startTime" v-model="form.planUseDate" | 
|---|
|  |  |  | format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" type="datetime" placeholder="选择日期时间" /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="目的地" prop="addr"> | 
|---|
|  |  |  | <el-input v-model="form.addr" placeholder="请输入内容"></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="乘车人员" prop="memberIds"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="form.memberIds" | 
|---|
|  |  |  | multiple | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="item in memberList" | 
|---|
|  |  |  | :key="item.id" | 
|---|
|  |  |  | :label="item.name" | 
|---|
|  |  |  | :value="item.id" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-select v-model="form.memberIds" multiple filterable placeholder="请选择"> | 
|---|
|  |  |  | <el-option v-for="item in memberList" | 
|---|
|  |  |  | :key="item.memberId" :value="item.memberId" | 
|---|
|  |  |  | :label="item.companyName ? `${item.realname}-${item.companyName}` : item.realname" > | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="用车事由" prop="content"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="form.content" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | placeholder="请输入" | 
|---|
|  |  |  | :rows="4" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | <el-input v-model="form.content" type="textarea" placeholder="请输入" :rows="4"></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | <div class="tip_wrap"> | 
|---|
|  |  |  | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 市内 --> | 
|---|
|  |  |  | <el-dialog | 
|---|
|  |  |  | title="选择用车时间" | 
|---|
|  |  |  | :visible.sync="isShowTime" | 
|---|
|  |  |  | append-to-body | 
|---|
|  |  |  | width="640px" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-dialog title="选择用车时间" :visible.sync="isShowTime" append-to-body width="640px"> | 
|---|
|  |  |  | <el-form :model="form" ref="modalRef" 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="选择日期" | 
|---|
|  |  |  | <el-date-picker v-model="form.dateDay" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" | 
|---|
|  |  |  | :picker-options="{ | 
|---|
|  |  |  | disabledDate(time) { | 
|---|
|  |  |  | return time.getTime() < Date.now() - 8.64e7; | 
|---|
|  |  |  | return time.getTime() < Date.now() - 8.64e7 * 7; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }" | 
|---|
|  |  |  | @change="seletedDate" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | }" @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', | 
|---|
|  |  |  | hasSub: item.carUseBookId, | 
|---|
|  |  |  | }" | 
|---|
|  |  |  | @click="datetimeClick(item, i)" | 
|---|
|  |  |  | v-for="(item, i) in timeList" | 
|---|
|  |  |  | :key="i" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div class="item" :class="{ | 
|---|
|  |  |  | disable: item.pastFlag, | 
|---|
|  |  |  | active: item.checked == '1', | 
|---|
|  |  |  | hasSub: item.carUseBookId, | 
|---|
|  |  |  | }" @click="datetimeClick(item, i)" v-for="(item, i) in timeList" :key="i"> | 
|---|
|  |  |  | {{ item.startHours }} - {{ item.endHours }} | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <span slot="footer" class="dialog-footer"> | 
|---|
|  |  |  | <div>已选择:{{ selDatetime }}</div> | 
|---|
|  |  |  | <div style="text-align: left;"> | 
|---|
|  |  |  | <div>已选择:{{ selDatetime }}</div> | 
|---|
|  |  |  | <div class="red">{{ selPastDatetime }}</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="btn" @click="subTime">确认时间</div> | 
|---|
|  |  |  | </span> | 
|---|
|  |  |  | </el-dialog> | 
|---|
|  |  |  | <!-- 市外 --> | 
|---|
|  |  |  | <el-dialog | 
|---|
|  |  |  | title="选择用车时间" | 
|---|
|  |  |  | :visible.sync="isShowShiwai" | 
|---|
|  |  |  | append-to-body | 
|---|
|  |  |  | width="600px" | 
|---|
|  |  |  | :before-close="clearTime" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-dialog title="选择用车时间" :visible.sync="isShowShiwai" append-to-body width="600px" :before-close="clearTime"> | 
|---|
|  |  |  | <el-form :model="form" ref="modalRef" class="el_form" :rules="rules"> | 
|---|
|  |  |  | <el-form-item label="用车开始时间" prop="startTime"> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | v-model="form.startTime" | 
|---|
|  |  |  | format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | value-format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | type="datetime" | 
|---|
|  |  |  | :default-time="defaultTime" | 
|---|
|  |  |  | :picker-options="pickerOptionsNow" | 
|---|
|  |  |  | @change="seletedShiwaiDate(1)" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-date-picker v-model="form.startTime" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" | 
|---|
|  |  |  | type="datetime" :default-time="defaultTime" :picker-options="pickerOptionsNow" | 
|---|
|  |  |  | @change="seletedShiwaiDate(1)"> | 
|---|
|  |  |  | </el-date-picker> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="用车结束时间" prop="endTime"> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | v-model="form.endTime" | 
|---|
|  |  |  | format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | value-format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | type="datetime" | 
|---|
|  |  |  | :default-time="defaultTime" | 
|---|
|  |  |  | :picker-options="pickerOptions" | 
|---|
|  |  |  | @change="seletedShiwaiDate" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-date-picker v-model="form.endTime" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" | 
|---|
|  |  |  | type="datetime" :default-time="defaultTime" :picker-options="pickerOptions" @change="seletedShiwaiDate"> | 
|---|
|  |  |  | </el-date-picker> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | 
|---|
|  |  |  | <span> | 
|---|
|  |  |  | {{ item.startTime.slice(5, 16) }}至{{ | 
|---|
|  |  |  | item.endTime.slice(5, 16) | 
|---|
|  |  |  | }}</span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="line"> | 
|---|
|  |  |  | <span>目的地</span> | 
|---|
|  |  |  | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <span slot="footer" class="dialog-footer"> | 
|---|
|  |  |  | <div>已选择:{{ selDatetime }}</div> | 
|---|
|  |  |  | <div class="btn" :class="{disable: info && info.length > 0}" @click="subTime">确认时间</div> | 
|---|
|  |  |  | <div style="text-align: left;"> | 
|---|
|  |  |  | <div>已选择:{{ selDatetime }}</div> | 
|---|
|  |  |  | <div class="red">{{ selPastDatetime }}</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="btn" :class="{ disable: info && info.length > 0 }" @click="subTime">确认时间</div> | 
|---|
|  |  |  | </span> | 
|---|
|  |  |  | </el-dialog> | 
|---|
|  |  |  | <!-- 详情 --> | 
|---|
|  |  |  | <el-dialog | 
|---|
|  |  |  | title="选择用车时间" | 
|---|
|  |  |  | :visible.sync="isShowDetail" | 
|---|
|  |  |  | append-to-body | 
|---|
|  |  |  | width="600px" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-dialog title="选择用车时间" :visible.sync="isShowDetail" append-to-body width="600px"> | 
|---|
|  |  |  | <div class="detail_modal"> | 
|---|
|  |  |  | <div class="title">车辆预约情况</div> | 
|---|
|  |  |  | <div class="h1" v-if="activeInfo.carCode">{{ activeInfo.carCode }}</div> | 
|---|
|  |  |  | <div class="line"> | 
|---|
|  |  |  | <div class="label">预计用车时段</div> | 
|---|
|  |  |  | <div class="value" v-if="activeInfo.startTime">{{ activeInfo.startTime.slice(5, 16) }} - {{ activeInfo.endTime.slice(5, 16) }}</div> | 
|---|
|  |  |  | <div class="value" v-if="activeInfo.startTime">{{ activeInfo.startTime.slice(5, 16) }} - {{ | 
|---|
|  |  |  | activeInfo.endTime.slice(5, 16) }}</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="line"> | 
|---|
|  |  |  | <div class="label">目的地</div> | 
|---|
|  |  |  | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="line"> | 
|---|
|  |  |  | <div class="label">申请人</div> | 
|---|
|  |  |  | <div class="value">{{ activeInfo.memberName }} <span class="primaryColor ml12">{{ activeInfo.memberPhone }}</span></div> | 
|---|
|  |  |  | <div class="value">{{ activeInfo.memberName }} <span class="primaryColor ml12">{{ activeInfo.memberPhone | 
|---|
|  |  |  | }}</span></div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-dialog> | 
|---|
|  |  |  | </el-dialog> | 
|---|
|  |  |  | </GlobalWindow> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | import { carCanReservationDate, carUseBookCraete, carUseBookList, detail } from '@/api/business/carUseBook' | 
|---|
|  |  |  | import { findTypeMemberInfo } from '@/api/business/memberCard' | 
|---|
|  |  |  | import dayjs from 'dayjs' | 
|---|
|  |  |  | import { findAllList as userList } from '@/api/system/user' | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: 'OperCarUseBookParamWindow', | 
|---|
|  |  |  | 
|---|
|  |  |  | timeList: [], | 
|---|
|  |  |  | defaultTime: dayjs().format('HH:mm:ss'), | 
|---|
|  |  |  | selDatetime: '', | 
|---|
|  |  |  | selPastDatetime: '', | 
|---|
|  |  |  | colorOptions: [ | 
|---|
|  |  |  | { color: this.$store.state.primaryColor, name: '已选择' }, | 
|---|
|  |  |  | { color: '#F7F7F7', name: '可预约' }, | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | pickerOptionsNow: { | 
|---|
|  |  |  | disabledDate: (time) => { | 
|---|
|  |  |  | return time.getTime() < Date.now() - 8.64e7; | 
|---|
|  |  |  | return time.getTime() < Date.now() - 8.64e7 * 7 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 验证规则 | 
|---|
|  |  |  | 
|---|
|  |  |  | computed: { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | watch: { | 
|---|
|  |  |  | 'form.planUseDate': { | 
|---|
|  |  |  | handler (newValue, oldValue) { | 
|---|
|  |  |  | if (newValue) { | 
|---|
|  |  |  | this.$set(this.pickerOptions, 'selectableRange', this.form.startTime.slice(11, 19) + ' - ' + this.form.endTime.slice(11, 19)) | 
|---|
|  |  |  | // this.startPickerOptions = this.startPickerOptions | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | deep: true, | 
|---|
|  |  |  | immediate: true | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // watch: { | 
|---|
|  |  |  | //   'form.planUseDate': { | 
|---|
|  |  |  | //     handler (newValue, oldValue) { | 
|---|
|  |  |  | //       if (newValue) { | 
|---|
|  |  |  | //         this.$set(this.pickerOptions, 'selectableRange', this.form.startTime.slice(11, 16) + ' - ' + this.form.endTime.slice(11, 16)) | 
|---|
|  |  |  | //         // this.startPickerOptions = this.startPickerOptions | 
|---|
|  |  |  | //       } | 
|---|
|  |  |  | //     }, | 
|---|
|  |  |  | //     deep: true, | 
|---|
|  |  |  | //     immediate: true | 
|---|
|  |  |  | //   } | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | created () { | 
|---|
|  |  |  | this.initData() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  | const memberList = [] | 
|---|
|  |  |  | form.memberIds.forEach(i => { | 
|---|
|  |  |  | this.memberList.forEach(item => { | 
|---|
|  |  |  | if (i === item.id) { | 
|---|
|  |  |  | if (i === item.memberId) { | 
|---|
|  |  |  | memberList.push(item) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | form.memberNames = memberList.map(i => i.name).join(',') | 
|---|
|  |  |  | form.memberNames = memberList.map(i => i.realname).join(',') | 
|---|
|  |  |  | form.memberList = memberList | 
|---|
|  |  |  | form.memberIds = form.memberIds.join(',') | 
|---|
|  |  |  | form.startTime = form.startTime + ':00' | 
|---|
|  |  |  | form.planUseDate = form.planUseDate + ':00' | 
|---|
|  |  |  | form.endTime = form.endTime + ':59' | 
|---|
|  |  |  | if (valid) { | 
|---|
|  |  |  | carUseBookCraete({ | 
|---|
|  |  |  | ...form | 
|---|
|  |  |  | 
|---|
|  |  |  | this.isShowShiwai = true | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | changeType () { | 
|---|
|  |  |  | this.$set(this.form, 'startTime', '') | 
|---|
|  |  |  | this.$set(this.form, 'endTime', '') | 
|---|
|  |  |  | this.$set(this.form, 'planUseDate', '') | 
|---|
|  |  |  | this.$nextTick(() => { | 
|---|
|  |  |  | this.$refs.formRef.clearValidate() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | clearTime () { | 
|---|
|  |  |  | this.isShowShiwai = false | 
|---|
|  |  |  | this.$set(this.form, 'startTime', '') | 
|---|
|  |  |  | 
|---|
|  |  |  | if (selTimeList.length === 0) { | 
|---|
|  |  |  | return this.$tip.error('请先选择用车时间段') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.$set(this.form, 'startTime', selTimeList[0].startTime) | 
|---|
|  |  |  | this.$set(this.form, 'endTime', selTimeList[selTimeList.length - 1].endTime) | 
|---|
|  |  |  | this.$set(this.form, 'startTime', selTimeList[0].startTime.slice(0, 16)) | 
|---|
|  |  |  | this.$set(this.form, 'endTime', selTimeList[selTimeList.length - 1].endTime.slice(0, 16)) | 
|---|
|  |  |  | this.isShowTime = false | 
|---|
|  |  |  | this.$set(this.form, 'planUseDate', null) | 
|---|
|  |  |  | this.$set(this.form, 'planUseDate', selTimeList[0].startTime.slice(0, 16)) | 
|---|
|  |  |  | this.$forceUpdate() | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$refs.modalRef.validate((valid) => { | 
|---|
|  |  |  | 
|---|
|  |  |  | if (new Date(form.startTime).getTime() > new Date(form.endTime).getTime()) { | 
|---|
|  |  |  | return this.$tip.error('结束时间应大于开始时间') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.$set(this.form, 'planUseDate', form.startTime) | 
|---|
|  |  |  | this.$forceUpdate() | 
|---|
|  |  |  | this.isShowShiwai = false | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | console.log('form', this.form) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | datetimeClick (item, index) { | 
|---|
|  |  |  | if (item.carUseBookId) { | 
|---|
|  |  |  | 
|---|
|  |  |  | // console.log('selTimeList', selTimeList); | 
|---|
|  |  |  | if (selTimeLists.length === 0) { | 
|---|
|  |  |  | this.selDatetime = '' | 
|---|
|  |  |  | this.selPastDatetime = '' | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | const pastList = selTimeLists.filter(i => i.pastFlag) | 
|---|
|  |  |  | if (pastList.length > 0) { | 
|---|
|  |  |  | this.selPastDatetime = '当前选择包含已经过去时间,请确认后再提交;' | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.selPastDatetime = '' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.selDatetime = this.form.dateDay.slice(5) + ' ' + selTimeLists[0].startHours + '-' + selTimeLists[selTimeLists.length - 1].endHours | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | seletedShiwaiDate (str) { | 
|---|
|  |  |  | const { form } = this | 
|---|
|  |  |  | if(str && str == 1){ | 
|---|
|  |  |  | if (str && str == 1) { | 
|---|
|  |  |  | this.$set(this.form, 'endTime', '') | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (form.startTime && form.endTime) { | 
|---|
|  |  |  | this.selDatetime = form.startTime + ' - ' + form.endTime | 
|---|
|  |  |  | if (new Date(form.startTime).getTime() < new Date().getTime()) { | 
|---|
|  |  |  | this.selPastDatetime = '当前选择包含已经过去时间,请确认后再提交;' | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.selPastDatetime = '' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | carUseBookList({ | 
|---|
|  |  |  | carId: form.carId, | 
|---|
|  |  |  | startTime: form.startTime, | 
|---|
|  |  |  | endTime: form.endTime | 
|---|
|  |  |  | startTime: form.startTime + ':00', | 
|---|
|  |  |  | endTime: form.endTime + ':59' | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.info = res || [] | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.selPastDatetime = '' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | gettimes () { | 
|---|
|  |  |  | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.timeList = res || [] | 
|---|
|  |  |  | this.timeList.forEach((i, j) => { | 
|---|
|  |  |  | i.pastFlag = new Date().getTime() > new Date(i.startTime).getTime() | 
|---|
|  |  |  | i.checked = '0', | 
|---|
|  |  |  | i.index = j | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.carsList = res | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | findTypeMemberInfo({ | 
|---|
|  |  |  | userList({ queryParam: this.filterText, querySpecial: 1, type: 2, companyType: 1, workStatus: 0 }) | 
|---|
|  |  |  | .then(res => { | 
|---|
|  |  |  | this.memberList = res || [] | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | /* findTypeMemberInfo({ | 
|---|
|  |  |  | type: '2', | 
|---|
|  |  |  | companyType: 1, | 
|---|
|  |  |  | querySpecial: 1 | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.memberList = res || [] | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) */ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style scoped lang="scss"> | 
|---|
|  |  |  | @import "@/assets/style/variables.scss"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | div { | 
|---|
|  |  |  | box-sizing: border-box; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .modal_wrap { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | padding: 20px 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .el_form { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .sel_btn { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 32px; | 
|---|
|  |  |  | 
|---|
|  |  |  | box-sizing: border-box; | 
|---|
|  |  |  | cursor: pointer; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .text { | 
|---|
|  |  |  | color: #606266; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .tip_wrap { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | margin-left: 30px; | 
|---|
|  |  |  | padding: 0 30px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | h1 { | 
|---|
|  |  |  | margin-bottom: 20px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | div { | 
|---|
|  |  |  | line-height: 28px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .time_list { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-wrap: wrap; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | margin-right: 8px; | 
|---|
|  |  |  | margin-bottom: 8px; | 
|---|
|  |  |  | 
|---|
|  |  |  | border: #cccccc solid 1px; | 
|---|
|  |  |  | cursor: pointer; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .active { | 
|---|
|  |  |  | border-color: $primary-color; | 
|---|
|  |  |  | background-color: #f6f9fe; | 
|---|
|  |  |  | color: $primary-color; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .disable { | 
|---|
|  |  |  | color: #fff; | 
|---|
|  |  |  | border-color: #cccccc; | 
|---|
|  |  |  | background-color: #cccccc; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .active { | 
|---|
|  |  |  | border-color: $primary-color; | 
|---|
|  |  |  | background-color: #f6f9fe; | 
|---|
|  |  |  | color: $primary-color; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .hasSub { | 
|---|
|  |  |  | border-color: #bed6f9; | 
|---|
|  |  |  | background-color: #bed6f9; | 
|---|
|  |  |  | color: #fff; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .color_op { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | margin-right: 10px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .box { | 
|---|
|  |  |  | margin-right: 4px; | 
|---|
|  |  |  | width: 16px; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .dialog-footer { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .btn { | 
|---|
|  |  |  | height: 42px; | 
|---|
|  |  |  | line-height: 42px; | 
|---|
|  |  |  | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | cursor: pointer; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .disable{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .disable { | 
|---|
|  |  |  | background: #cccccc; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .have_info { | 
|---|
|  |  |  | padding: 0 0 60px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .tit { | 
|---|
|  |  |  | color: #ed4545; | 
|---|
|  |  |  | margin: 20px 0 12px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .content { | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | border-radius: 8px; | 
|---|
|  |  |  | padding: 15px 15px 5px; | 
|---|
|  |  |  | margin-bottom: 10px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .card { | 
|---|
|  |  |  | margin-bottom: 15px; | 
|---|
|  |  |  | font-weight: 500; | 
|---|
|  |  |  | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | padding: 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .line { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | margin-bottom: 10px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | span { | 
|---|
|  |  |  | &:nth-of-type(1) { | 
|---|
|  |  |  | width: 80px; | 
|---|
|  |  |  | color: #888888; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | &:nth-of-type(2) { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .detail_modal { | 
|---|
|  |  |  | padding: 20px 15px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .title { | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | font-weight: 600; | 
|---|
|  |  |  | font-size: 16px; | 
|---|
|  |  |  | margin-bottom: 20px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .h1 { | 
|---|
|  |  |  | font-weight: 600; | 
|---|
|  |  |  | font-size: 16px; | 
|---|
|  |  |  | margin-bottom: 16px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .line { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | margin-bottom: 10px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .label { | 
|---|
|  |  |  | width: 120px; | 
|---|
|  |  |  | color: #888888; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .value { | 
|---|
|  |  |  | color: #333333; | 
|---|
|  |  |  | } | 
|---|