Merge branch 'main' of http://192.168.0.56:3000/bonus/Zlpt_Portal
This commit is contained in:
commit
e33fffc973
|
|
@ -3,28 +3,29 @@
|
|||
// @ts-nocheck
|
||||
// Generated by unplugin-vue-components
|
||||
// Read more: https://github.com/vuejs/core/pull/3399
|
||||
export {}
|
||||
export { }
|
||||
|
||||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
Breadcrumb: typeof import('./src/components/Breadcrumb/index.vue')['default']
|
||||
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
|
||||
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCarousel: typeof import('element-plus/es')['ElCarousel']
|
||||
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
|
||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||
ElCol: typeof import('element-plus/es')['ElCol']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
ElEmpty: typeof import('element-plus/es')['ElEmpty']
|
||||
ElForm: typeof import('element-plus/es')['ElForm']
|
||||
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
||||
ElIcon: typeof import('element-plus/es')['ElIcon']
|
||||
ElImage: typeof import('element-plus/es')['ElImage']
|
||||
ElInput: typeof import('element-plus/es')['ElInput']
|
||||
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
||||
ElOption: typeof import('element-plus/es')['ElOption']
|
||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||
ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm']
|
||||
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
|
||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||
ElRow: typeof import('element-plus/es')['ElRow']
|
||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||
ElTable: typeof import('element-plus/es')['ElTable']
|
||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||
ElTag: typeof import('element-plus/es')['ElTag']
|
||||
EquipCard: typeof import('./src/components/equipCard.vue')['default']
|
||||
EquipCardHall: typeof import('./src/components/equipCardHall/index.vue')['default']
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ VITE_API_URL = '/proxyApi'
|
|||
# VITE_proxyTarget = 'http://10.40.92.74:8080' #盛旭
|
||||
|
||||
VITE_proxyTarget = 'http://192.168.2.246:18080' # 马帅
|
||||
# VITE_proxyTarget = 'http://192.168.2.129:18080' # 马帅
|
||||
|
||||
# VITE_proxyTarget = 'http://10.40.92.185:9206' # 赵福海 ( 设备类型)
|
||||
# VITE_proxyTarget = 'http://10.40.92.16:9502' # 牛 (个人中心 基础信息企业申请认证)
|
||||
|
|
|
|||
|
|
@ -54,6 +54,12 @@
|
|||
<div class="content unicode" style="display: block;">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">电话</div>
|
||||
<div class="code-name">&#xe862;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">购物车</div>
|
||||
|
|
@ -498,9 +504,9 @@
|
|||
<pre><code class="language-css"
|
||||
>@font-face {
|
||||
font-family: 'iconfont';
|
||||
src: url('iconfont.woff2?t=1732329564134') format('woff2'),
|
||||
url('iconfont.woff?t=1732329564134') format('woff'),
|
||||
url('iconfont.ttf?t=1732329564134') format('truetype');
|
||||
src: url('iconfont.woff2?t=1732599020939') format('woff2'),
|
||||
url('iconfont.woff?t=1732599020939') format('woff'),
|
||||
url('iconfont.ttf?t=1732599020939') format('truetype');
|
||||
}
|
||||
</code></pre>
|
||||
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
|
||||
|
|
@ -526,6 +532,15 @@
|
|||
<div class="content font-class">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-dianhua"></span>
|
||||
<div class="name">
|
||||
电话
|
||||
</div>
|
||||
<div class="code-name">.icon-dianhua
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-gouwuche2"></span>
|
||||
<div class="name">
|
||||
|
|
@ -1192,6 +1207,14 @@
|
|||
<div class="content symbol">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-dianhua"></use>
|
||||
</svg>
|
||||
<div class="name">电话</div>
|
||||
<div class="code-name">#icon-dianhua</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-gouwuche2"></use>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 3152246 */
|
||||
src: url('iconfont.woff2?t=1732329564134') format('woff2'),
|
||||
url('iconfont.woff?t=1732329564134') format('woff'),
|
||||
url('iconfont.ttf?t=1732329564134') format('truetype');
|
||||
src: url('iconfont.woff2?t=1732599020939') format('woff2'),
|
||||
url('iconfont.woff?t=1732599020939') format('woff'),
|
||||
url('iconfont.ttf?t=1732599020939') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
|
|
@ -13,6 +13,10 @@
|
|||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-dianhua:before {
|
||||
content: "\e862";
|
||||
}
|
||||
|
||||
.icon-gouwuche2:before {
|
||||
content: "\e639";
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -5,6 +5,13 @@
|
|||
"css_prefix_text": "icon-",
|
||||
"description": "",
|
||||
"glyphs": [
|
||||
{
|
||||
"icon_id": "8288971",
|
||||
"name": "电话",
|
||||
"font_class": "dianhua",
|
||||
"unicode": "e862",
|
||||
"unicode_decimal": 59490
|
||||
},
|
||||
{
|
||||
"icon_id": "3826040",
|
||||
"name": "购物车",
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,23 @@
|
|||
<template>
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item :to="{ path: backPath }">{{ backName }}</el-breadcrumb-item>
|
||||
<el-breadcrumb-item>{{ currentName }}</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
defineProps({
|
||||
backPath: {
|
||||
type: String,
|
||||
default: () => '',
|
||||
},
|
||||
backName: {
|
||||
type: String,
|
||||
default: () => '',
|
||||
},
|
||||
currentName: {
|
||||
type: String,
|
||||
default: () => '',
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="mobile-info">
|
||||
<!-- <ul class="mobile-info">
|
||||
<li>商城热线</li>
|
||||
<li>供应商入驻、开店、续费资讯:010-2345-1234</li>
|
||||
<li>供应商咨询:010-2345-1234</li>
|
||||
|
|
@ -45,84 +45,83 @@
|
|||
工作时间:周一至周五 8:30-12:00
|
||||
14:00-17:30
|
||||
</li>
|
||||
</ul>
|
||||
</ul> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
.footer-container {
|
||||
margin-top: 40px;
|
||||
height: 650px;
|
||||
border-top: 1px solid #979797;
|
||||
background: url("../../assets/img/home/2023_12_01_beijing2/beijing2.png")
|
||||
no-repeat;
|
||||
background-size: cover;
|
||||
.footer-container {
|
||||
margin-top: 40px;
|
||||
// height: 650px;
|
||||
border-top: 1px solid #979797;
|
||||
background: url('../../assets/img/home/2023_12_01_beijing2/beijing2.png') no-repeat;
|
||||
background-size: cover;
|
||||
|
||||
.icon-info {
|
||||
.icon-info {
|
||||
height: 100px;
|
||||
margin-top: 30px;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
|
||||
li {
|
||||
height: 100px;
|
||||
margin-top: 30px;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
|
||||
li {
|
||||
height: 100px;
|
||||
span:first-child {
|
||||
display: block;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
line-height: 50px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid #3cb4a6;
|
||||
color: #3cb4a6;
|
||||
font-weight: bold;
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
display: block;
|
||||
height: 50px;
|
||||
margin-left: 15px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
|
||||
span:first-child {
|
||||
display: block;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
line-height: 50px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid #3cb4a6;
|
||||
color: #3cb4a6;
|
||||
i {
|
||||
color: #8c8c8c;
|
||||
}
|
||||
|
||||
i:first-child {
|
||||
font-weight: bold;
|
||||
font-size: 22px;
|
||||
font-size: 18px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
display: block;
|
||||
height: 50px;
|
||||
margin-left: 15px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
|
||||
i {
|
||||
color: #8c8c8c;
|
||||
}
|
||||
|
||||
i:first-child {
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
color: #333;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mobile-info {
|
||||
margin-top: 30px;
|
||||
text-align: center;
|
||||
|
||||
li {
|
||||
padding: 20px 0;
|
||||
}
|
||||
|
||||
li:first-child {
|
||||
padding: 30px 0;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
li:last-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mobile-info {
|
||||
margin-top: 30px;
|
||||
text-align: center;
|
||||
|
||||
li {
|
||||
padding: 20px 0;
|
||||
}
|
||||
|
||||
li:first-child {
|
||||
padding: 30px 0;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
li:last-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,15 @@
|
|||
import { get } from '../../index'
|
||||
import { get, post } from '../../index'
|
||||
|
||||
|
||||
// 预约车列表详情接口
|
||||
export const getBookCarDetailsApi = () => {
|
||||
return get('/material-mall/bookCar/getBookCarDetails', {})
|
||||
}
|
||||
// 预约车列表提交
|
||||
export const submitBookCarApi = (data: any) => {
|
||||
return post('/material-mall/order/submitBookCar', data)
|
||||
}
|
||||
// 预约车列表提交
|
||||
export const deleteCartByIdApi = (data: any) => {
|
||||
return post('/material-mall/bookCar/deleteById', data)
|
||||
}
|
||||
|
|
@ -30,7 +30,9 @@ service.interceptors.request.use(
|
|||
)
|
||||
// 响应拦截
|
||||
service.interceptors.response.use(
|
||||
|
||||
(res) => {
|
||||
ElMessage.closeAll()
|
||||
const { data } = res
|
||||
if (data.code == '200') {
|
||||
return data
|
||||
|
|
@ -40,13 +42,16 @@ service.interceptors.response.use(
|
|||
} else if (data.code == '401') {
|
||||
ElMessage.error(data.msg)
|
||||
router.push('/login')
|
||||
} else if (data.code == '500') {
|
||||
ElMessage.error('请求失败')
|
||||
}
|
||||
else {
|
||||
return data
|
||||
}
|
||||
},
|
||||
(error) => {
|
||||
|
||||
ElMessage.closeAll()
|
||||
ElMessage.error('请求失败')
|
||||
console.log('error-异常', error)
|
||||
}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ const routes: Array<RouteRecordRaw> = [
|
|||
name: 'equipList',
|
||||
component: () => import('views/equip/list.vue'),
|
||||
meta: {
|
||||
title: '',
|
||||
title: '装备共享大厅',
|
||||
activeName: 'equipList',
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@
|
|||
<el-row class="cart-th">
|
||||
<el-col :span="2">
|
||||
<div>
|
||||
<el-checkbox v-model="allChecked" @change="onChangeAll"> 全选 </el-checkbox>
|
||||
<el-checkbox v-model="allChecked" @change="onChangeAll" :key="allKey">
|
||||
全选
|
||||
</el-checkbox>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="9">
|
||||
|
|
@ -47,6 +49,7 @@
|
|||
<div style="text-align: center">
|
||||
<el-checkbox
|
||||
v-model="item.isChecked"
|
||||
:key="index"
|
||||
@change="onChangeCompany($event, index, item)"
|
||||
>
|
||||
</el-checkbox>
|
||||
|
|
@ -59,10 +62,14 @@
|
|||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row class="cart-list" v-for="(goods, j) in item.devInfoVoList" :key="j">
|
||||
<el-row class="cart-list" v-for="(goods, j) in item.devInfoVoList" :key="goods.id">
|
||||
<el-col :span="1">
|
||||
<div style="text-align: center">
|
||||
<el-checkbox v-model="goods.isChecked" @change="onChangeGoods(index)">
|
||||
<el-checkbox
|
||||
v-model="goods.isChecked"
|
||||
@change="onChangeGoods(index)"
|
||||
:key="goods.id"
|
||||
>
|
||||
</el-checkbox>
|
||||
</div>
|
||||
</el-col>
|
||||
|
|
@ -79,7 +86,9 @@
|
|||
</el-col>
|
||||
<el-col :span="4">
|
||||
<div class="lease-date">
|
||||
<div>{{ goods.lease_date_string }}</div>
|
||||
<div v-if="goods.rentBeginTime && goods.rentEndTime">
|
||||
{{ goods.rentBeginTime }}-{{ goods.rentEndTime }}
|
||||
</div>
|
||||
<el-date-picker
|
||||
style="width: 100px; margin-top: 10px"
|
||||
v-model="goods.lease_date"
|
||||
|
|
@ -92,44 +101,65 @@
|
|||
</el-col>
|
||||
<el-col :span="2">
|
||||
<div class="red-font">
|
||||
{{ goods.lease_pic }}
|
||||
{{ goods.dayLeasePrice }}
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
<div class="red-font" style="color: #0062ff">
|
||||
{{ goods.lease_day }}
|
||||
{{ goods.days }}
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
<div>
|
||||
<el-input-number
|
||||
v-model="goods.goods_num"
|
||||
v-model="goods.num"
|
||||
style="width: 100px"
|
||||
:min="1"
|
||||
:max="goods.deviceCount"
|
||||
size="small"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
<div class="red-font">
|
||||
{{ goods.goods_num * goods.lease_pic * goods.lease_day }}
|
||||
{{ goods.num * goods.days * goods.dayLeasePrice }}
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
<div>
|
||||
<el-button
|
||||
@click="onDeleteGoods(j)"
|
||||
type="text"
|
||||
<!-- <el-button
|
||||
link
|
||||
@click="onDeleteGoods(goods.id)"
|
||||
style="color: #ff4800; font-weight: bold"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
|
||||
<el-popconfirm
|
||||
width="220"
|
||||
:icon="InfoFilled"
|
||||
icon-color="#626AEF"
|
||||
title="确定删除该条预约车记录吗?"
|
||||
@confirm="onDeleteGoods(goods.id)"
|
||||
>
|
||||
<template #reference>
|
||||
<el-button link style="color: #ff4800; font-weight: bold">
|
||||
删除</el-button
|
||||
>
|
||||
</template>
|
||||
<template #actions="{ confirm }">
|
||||
<el-button size="small">取消</el-button>
|
||||
<el-button type="danger" size="small" @click="confirm()">
|
||||
确定
|
||||
</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<div class="protocol-handle">
|
||||
<div class="protocol-handle" v-if="cardList.length > 0">
|
||||
<el-row style="display: flex; align-items: center">
|
||||
<el-col :span="16">
|
||||
<div class="checkbox-container">
|
||||
|
|
@ -174,23 +204,33 @@
|
|||
import Header from '../../components/header/index.vue'
|
||||
import FooterInfo from '../../components/FooterInfo/index.vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { getBookCarDetailsApi } from '../../http/api/cart/index'
|
||||
import moment from 'moment'
|
||||
import {
|
||||
getBookCarDetailsApi,
|
||||
submitBookCarApi,
|
||||
deleteCartByIdApi,
|
||||
} from '../../http/api/cart/index'
|
||||
import moment, { max } from 'moment'
|
||||
import { InfoFilled } from '@element-plus/icons-vue'
|
||||
|
||||
const protocolChecked = ref<boolean>(false)
|
||||
const allKey = ref(0)
|
||||
|
||||
const cardList = ref<any>([])
|
||||
|
||||
const getBookCarDetailsData = async () => {
|
||||
const res: any = await getBookCarDetailsApi()
|
||||
console.log(res, '----')
|
||||
|
||||
cardList.value = res.data
|
||||
|
||||
cardList.value = []
|
||||
cardList.value = JSON.parse(JSON.stringify(res.data))
|
||||
cardList.value.forEach((e: any) => {
|
||||
e.isChecked = false
|
||||
|
||||
e.devInfoVoList.forEach((j: any) => {
|
||||
j.isChecked = false
|
||||
j.days = 0
|
||||
j.num = 1
|
||||
j.costs = 0
|
||||
j.rentBeginTime = ''
|
||||
j.rentEndTime = ''
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -204,13 +244,30 @@ onMounted(() => {
|
|||
|
||||
// 日期change事件
|
||||
const onLeaseDateChange = (e: any, item: any) => {
|
||||
item.lease_date_string = `${e[0]}至${e[1]}`
|
||||
item.lease_day = moment(e[1]).diff(e[0], 'day')
|
||||
console.log(e, '*****')
|
||||
if (!e) {
|
||||
item.rentBeginTime = ''
|
||||
item.rentEndTime = ''
|
||||
item.days = 0
|
||||
} else {
|
||||
item.rentBeginTime = e[0]
|
||||
item.rentEndTime = e[1]
|
||||
item.days = moment(e[1]).diff(e[0], 'day')
|
||||
}
|
||||
}
|
||||
|
||||
// 删除按钮
|
||||
const onDeleteGoods = (index: number) => {
|
||||
console.log('删除---', index)
|
||||
const onDeleteGoods = async (id: number | string) => {
|
||||
const res: any = deleteCartByIdApi({ id })
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
showClose: false,
|
||||
message: '删除成功',
|
||||
type: 'success',
|
||||
})
|
||||
|
||||
getBookCarDetailsData()
|
||||
}
|
||||
}
|
||||
|
||||
// 全选change事件
|
||||
|
|
@ -237,21 +294,25 @@ const onChangeCompany = (e: boolean, index: number, item: any) => {
|
|||
// 计算所有装备
|
||||
const amountNum = computed(() => {
|
||||
let amountNum = 0
|
||||
cardList.value.forEach((e) => {
|
||||
cardList.value.forEach((e: any) => {
|
||||
amountNum = e.devInfoVoList.length + amountNum
|
||||
})
|
||||
return amountNum
|
||||
})
|
||||
// 计算全选按钮的选中状态
|
||||
const allChecked = computed(() => {
|
||||
return cardList.value.every((e: any) => e.isChecked === true)
|
||||
if (cardList.value.length < 1) {
|
||||
return false
|
||||
} else {
|
||||
return cardList.value.every((e: any) => e.isChecked === true)
|
||||
}
|
||||
})
|
||||
|
||||
// 已勾选的所有装备
|
||||
// 已勾选的装备数量
|
||||
const amountDevice = computed(() => {
|
||||
let amountNum = 0
|
||||
cardList.value.forEach((e) => {
|
||||
e.devInfoVoList.forEach((g) => {
|
||||
cardList.value.forEach((e: any) => {
|
||||
e.devInfoVoList.forEach((g: any) => {
|
||||
if (g.isChecked) {
|
||||
amountNum++
|
||||
}
|
||||
|
|
@ -259,14 +320,26 @@ const amountDevice = computed(() => {
|
|||
})
|
||||
return amountNum
|
||||
})
|
||||
// 已勾选的装备数量
|
||||
const amountDeviceList = computed(() => {
|
||||
let selectList: any = []
|
||||
cardList.value.forEach((e: any) => {
|
||||
e.devInfoVoList.forEach((g: any) => {
|
||||
if (g.isChecked) {
|
||||
selectList.push(g)
|
||||
}
|
||||
})
|
||||
})
|
||||
return selectList
|
||||
})
|
||||
|
||||
// 计算订单总价格
|
||||
const orderAmountPice = computed(() => {
|
||||
let orderAmountPice = 0
|
||||
cardList.value.forEach((e) => {
|
||||
e.devInfoVoList.forEach((g) => {
|
||||
cardList.value.forEach((e: any) => {
|
||||
e.devInfoVoList.forEach((g: any) => {
|
||||
if (g.isChecked) {
|
||||
orderAmountPice = g.goods_num * g.lease_pic * g.lease_day + orderAmountPice
|
||||
orderAmountPice = g.num * g.dayLeasePrice * g.days + orderAmountPice
|
||||
}
|
||||
})
|
||||
})
|
||||
|
|
@ -274,16 +347,56 @@ const orderAmountPice = computed(() => {
|
|||
})
|
||||
|
||||
// 提交按钮
|
||||
const onCartSubmit = () => {
|
||||
const onCartSubmit = async () => {
|
||||
ElMessage.closeAll()
|
||||
if (amountDevice.value < 1) {
|
||||
ElMessage({
|
||||
showClose: false,
|
||||
message: '请选择装备',
|
||||
type: 'error',
|
||||
})
|
||||
return
|
||||
}
|
||||
if (!protocolChecked.value) {
|
||||
ElMessage({
|
||||
showClose: false,
|
||||
message: '请阅读公司合同',
|
||||
type: 'error',
|
||||
})
|
||||
return
|
||||
}
|
||||
console.log('提交订单')
|
||||
|
||||
// 组装参数
|
||||
const detailsList = amountDeviceList.value.map((e: any) => {
|
||||
return {
|
||||
maId: e.maId,
|
||||
id: e.id,
|
||||
rentBeginTime: e.rentBeginTime + ' ' + '00:00:00',
|
||||
rentEndTime: e.rentEndTime + ' ' + '00:00:00',
|
||||
manageType: e.manageType,
|
||||
days: e.days,
|
||||
num: e.num,
|
||||
costs: e.num * e.days * e.dayLeasePrice,
|
||||
}
|
||||
})
|
||||
|
||||
const submitParams = {
|
||||
cost: orderAmountPice.value,
|
||||
detailsList,
|
||||
}
|
||||
|
||||
const res: any = await submitBookCarApi(submitParams)
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
showClose: false,
|
||||
message: '提交成功',
|
||||
type: 'success',
|
||||
})
|
||||
allKey.value++
|
||||
|
||||
getBookCarDetailsData()
|
||||
}
|
||||
// console.log(res, '预约车提交结果')
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,32 @@
|
|||
<template>
|
||||
<Navmenu></Navmenu>
|
||||
<!-- <Navmenu></Navmenu> -->
|
||||
<Breadcrumb :backPath="backPath" :backName="backName" :currentName="currentName" />
|
||||
<div class="equipDetail">
|
||||
<div class="top">
|
||||
<div class="showImg">
|
||||
<!-- <showImg :url-list="pageData.bmFileInfoList"></showImg> -->
|
||||
|
||||
<img alt="" :src="viewImgUrl" />
|
||||
|
||||
<div class="img-slide">
|
||||
<div class="btn" @click="onPrevImg">
|
||||
<el-icon><ArrowLeftBold /></el-icon>
|
||||
</div>
|
||||
<div class="img-slide-container">
|
||||
<div
|
||||
class="img-item"
|
||||
:class="{ activeUrl: activeIndex === index }"
|
||||
v-for="(item, index) in goodsImgList"
|
||||
:key="index"
|
||||
@click="onCheckImg(item.fileUrl, index)"
|
||||
>
|
||||
<img :src="item.fileUrl" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn" @click="onNextImg">
|
||||
<el-icon><ArrowRightBold /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="baseInfo">
|
||||
<div class="equipInfo">
|
||||
|
|
@ -18,7 +41,7 @@
|
|||
</div> -->
|
||||
</div>
|
||||
<div class="viewNnum">
|
||||
<div>浏览 100</div>
|
||||
<div>浏览 {{ pageData.searchNum }}</div>
|
||||
<div style="color: #409eff; display: flex; align-items: center">
|
||||
<Location style="width: 1em; height: 1em; margin-right: 8px" />
|
||||
安徽省合肥市蜀山区
|
||||
|
|
@ -44,9 +67,26 @@
|
|||
</el-row>
|
||||
|
||||
<div class="options">
|
||||
<div class="item_btn contact" @click="onAddCart">加入预约车</div>
|
||||
<div class="item_btn applyFor" v-authBtn="() => openLease">
|
||||
立即承租
|
||||
<div>
|
||||
<el-button
|
||||
class="item_btn"
|
||||
type="primary"
|
||||
:disabled="pageData.isBookCar == 0"
|
||||
@click="onAddCart"
|
||||
>加入预约车</el-button
|
||||
>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<el-button
|
||||
class="item_btn applyFor"
|
||||
:disabled="pageData.isBookCar == 0"
|
||||
:style="pageData.isBookCar == 0 ? 'opacity:0.5' : ''"
|
||||
style="background-color: #1abc9c"
|
||||
v-authBtn="() => openLease"
|
||||
>
|
||||
立即承租
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -69,10 +109,13 @@
|
|||
</div> -->
|
||||
</div>
|
||||
<div class="phone">
|
||||
<PhoneFilled
|
||||
<!-- <PhoneFilled
|
||||
style="width: 2em; height: 2em; margin-right: 8px; color: #409eff"
|
||||
/>
|
||||
<div style="font-size: 20px">187555555</div>
|
||||
/> -->
|
||||
<svg class="icon" aria-hidden="true" style="width: 24px; height: 24px">
|
||||
<use xlink:href="#icon-dianhua"></use>
|
||||
</svg>
|
||||
<div style="font-size: 20px">{{ pageData.personPhone }}</div>
|
||||
</div>
|
||||
<div style="text-align: right">
|
||||
<el-button type="primary" round icon="ChatDotRound">在线聊</el-button>
|
||||
|
|
@ -80,16 +123,16 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="businessInfo">
|
||||
<img class="bgCar" src="@/assets/img/equipDetail/gouwu.png" />
|
||||
<!-- <img class="bgCar" src="@/assets/img/equipDetail/gouwu.png" /> -->
|
||||
|
||||
<div class="business">
|
||||
<img src="@/assets/img/bns-logo.png" class="avatar" />
|
||||
<!-- <img src="@/assets/img/bns-logo.png" class="avatar" /> -->
|
||||
<div class="fonts">
|
||||
<div class="name">{{ pageData.companyName }}</div>
|
||||
<div class="other">
|
||||
<div class="item" v-for="(v, i) in businessList" :key="i">
|
||||
<div class="label">{{ v.label }}:</div>
|
||||
<div class="value">{{ pageData[v.key] }}{{ v.unit }}</div>
|
||||
<div class="value">{{ pageData[v.key] }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -100,7 +143,7 @@
|
|||
|
||||
<div class="detail">
|
||||
<div class="publicTitle">装备详情</div>
|
||||
<div class="publicLine"></div>
|
||||
<!-- <div class="publicLine"></div> -->
|
||||
<div class="list publicContent">
|
||||
<div class="item" v-for="(v, i) in equipDetailKeyList" :key="i">
|
||||
<div class="label">{{ v.label }}:</div>
|
||||
|
|
@ -115,12 +158,38 @@
|
|||
</div>
|
||||
<div class="appearance">
|
||||
<div class="publicTitle">装备外观</div>
|
||||
<div class="publicLine"></div>
|
||||
<div class="urlList publicContent">
|
||||
<img :src="v" v-for="(v, i) in pageData.pictures || []" :key="i" />
|
||||
<!-- <div class="publicLine"></div> -->
|
||||
<div class="urlList">
|
||||
<img :src="v" v-for="(v, i) in goodsAppearanceList" :key="i" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="recommend">
|
||||
<div class="appearance">
|
||||
<div class="publicTitle">证书展示</div>
|
||||
<div class="certificate">
|
||||
<div>
|
||||
合格证:
|
||||
<a>xxxxxx.pdf</a>
|
||||
</div>
|
||||
<div>
|
||||
检测证明:
|
||||
<a>xxxxxx.pdf</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="appearance">
|
||||
<div class="publicTitle">出租记录</div>
|
||||
<div class="rental-record">
|
||||
<el-table :data="tableData" border style="width: 100%">
|
||||
<el-table-column align="center" type="index" label="序号" width="80" />
|
||||
<el-table-column align="center" prop="order_code" label="订单号" />
|
||||
<el-table-column align="center" prop="lease_user" label="出租方" />
|
||||
<el-table-column align="center" prop="start_time" label="租赁开始时间" />
|
||||
<el-table-column align="center" prop="end_time" label="租赁结束时间" />
|
||||
<el-table-column align="center" prop="lease_price" label="租赁费用" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="recommend">
|
||||
<div class="publicTitle">
|
||||
<div>为您推荐</div>
|
||||
|
||||
|
|
@ -141,7 +210,7 @@
|
|||
:id="v.maId"
|
||||
></equip-card>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<el-dialog
|
||||
v-model="dialoglease"
|
||||
|
|
@ -287,33 +356,128 @@
|
|||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import ShowImg from './comoonents/showImg.vue'
|
||||
import { computed, reactive, ref } from 'vue'
|
||||
import EquipCard from 'components/equipCard.vue'
|
||||
import Breadcrumb from '../../components/Breadcrumb/index.vue'
|
||||
|
||||
import {
|
||||
getDetail,
|
||||
getHotList,
|
||||
equipCollect,
|
||||
addBookCarApi,
|
||||
apiSubmitLease,
|
||||
apiGetAddressList,
|
||||
addBookCarApi,
|
||||
} from '@/http/api/equip'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import Navmenu from '@/components/Navmenu/index.vue'
|
||||
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
||||
// import Navmenu from '@/components/Navmenu/index.vue'
|
||||
import equipDetailTable from '@/components/equipDetailTable.vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
import { mainStore } from '@/store/main'
|
||||
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
||||
const ruleFormRef = ref()
|
||||
|
||||
const store = mainStore()
|
||||
|
||||
const ruleFormRef = ref()
|
||||
const pageParams = route.params
|
||||
const backPath = ref<any>('')
|
||||
const backName = ref<any>('')
|
||||
const currentName = ref<any>('装备详情')
|
||||
const viewImgUrl = computed(() => {
|
||||
if (goodsImgList.value.length > 0) {
|
||||
return goodsImgList.value[activeIndex.value].fileUrl
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
})
|
||||
|
||||
if (router.options.history.state.back) {
|
||||
backPath.value = router.options.history.state.back
|
||||
const previousRoute: any = []
|
||||
|
||||
if (router.options.history.state.back === '/home') {
|
||||
backName.value = '首页'
|
||||
}
|
||||
router.options.routes.forEach((route: any) => {
|
||||
if (route.path === router.options.history.state.back) {
|
||||
previousRoute.push(route)
|
||||
} else {
|
||||
if (route.children && route.children.length > 0) {
|
||||
route.children.forEach((r: any) => {
|
||||
if (r.path === router.options.history.state.back) {
|
||||
previousRoute.push(r)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
if (previousRoute.length > 0) {
|
||||
backName.value = previousRoute[0].meta.title
|
||||
}
|
||||
}
|
||||
|
||||
// 商品图片集合
|
||||
const goodsImgList: any = ref([
|
||||
// 'https://fc1tn.baidu.com/it/u=4185529537,1682541874&fm=202&src=766&fc=tdmatt&mola=new&crop=v1',
|
||||
// 'https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg',
|
||||
// 'https://fc1tn.baidu.com/it/u=4185529537,1682541874&fm=202&src=766&fc=tdmatt&mola=new&crop=v1',
|
||||
// 'https://fc1tn.baidu.com/it/u=4185529537,1682541874&fm=202&src=766&fc=tdmatt&mola=new&crop=v1',
|
||||
])
|
||||
// 商品图片集合
|
||||
const goodsAppearanceList: any = ref([
|
||||
'https://fc1tn.baidu.com/it/u=4185529537,1682541874&fm=202&src=766&fc=tdmatt&mola=new&crop=v1',
|
||||
'https://img.d1cm.com/news/img/202406071013545196.jpg',
|
||||
])
|
||||
|
||||
const tableData = ref([
|
||||
{
|
||||
order_code: '2024102310223xxx',
|
||||
lease_user: '王先生',
|
||||
start_time: '2024-10-11',
|
||||
end_time: '2025-10-10',
|
||||
lease_price: 600,
|
||||
},
|
||||
{
|
||||
order_code: '2024102310223xxx',
|
||||
lease_user: '王先生',
|
||||
start_time: '2024-10-11',
|
||||
end_time: '2025-10-10',
|
||||
lease_price: 600,
|
||||
},
|
||||
{
|
||||
order_code: '2024102310223xxx',
|
||||
lease_user: '王先生',
|
||||
start_time: '2024-10-11',
|
||||
end_time: '2025-10-10',
|
||||
lease_price: 600,
|
||||
},
|
||||
{
|
||||
order_code: '2024102310223xxx',
|
||||
lease_user: '王先生',
|
||||
start_time: '2024-10-11',
|
||||
end_time: '2025-10-10',
|
||||
lease_price: 600,
|
||||
},
|
||||
])
|
||||
|
||||
// viewImgUrl.value = goodsImgList.value[0]
|
||||
// 当前选中的图片索引
|
||||
const activeIndex = ref<number>(0)
|
||||
|
||||
// 图片点击切换
|
||||
const onCheckImg = (item: string, index: number) => {
|
||||
activeIndex.value = index
|
||||
}
|
||||
// 图片上一张
|
||||
const onPrevImg = () => {
|
||||
if (activeIndex.value > 0) {
|
||||
activeIndex.value--
|
||||
}
|
||||
}
|
||||
// 图片下一张
|
||||
const onNextImg = () => {
|
||||
if (activeIndex.value + 1 < goodsImgList.value.length) {
|
||||
activeIndex.value++
|
||||
}
|
||||
}
|
||||
|
||||
//设备简略基本信息
|
||||
const equipBaseInfoList = reactive([
|
||||
{
|
||||
|
|
@ -358,9 +522,14 @@ const businessList = reactive([
|
|||
},
|
||||
{
|
||||
label: '上架数量',
|
||||
key: 'companyUpNum',
|
||||
key: 'devUapNum',
|
||||
unit: '台',
|
||||
},
|
||||
{
|
||||
label: '访问量',
|
||||
key: 'companyVisitNum',
|
||||
unit: '',
|
||||
},
|
||||
])
|
||||
|
||||
//装备详情数据map
|
||||
|
|
@ -372,71 +541,71 @@ const equipDetailKeyList = reactive([
|
|||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '装备类别',
|
||||
key: 'typeName',
|
||||
fn: '',
|
||||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '装备组别',
|
||||
key: 'groupName',
|
||||
fn: '',
|
||||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '装备名称',
|
||||
key: 'deviceName',
|
||||
fn: '',
|
||||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '规格',
|
||||
key: 'specification',
|
||||
fn: '',
|
||||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '品牌',
|
||||
label: '装备品牌',
|
||||
key: 'brand',
|
||||
fn: '',
|
||||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '装备类目',
|
||||
key: 'groupName',
|
||||
fn: '',
|
||||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '装备型号',
|
||||
key: 'modelName',
|
||||
key: 'typeName',
|
||||
fn: '',
|
||||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '序列号码',
|
||||
key: 'serialNumber',
|
||||
label: '出厂时间',
|
||||
key: 'specification',
|
||||
fn: '',
|
||||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '出场时间',
|
||||
key: 'productionDate',
|
||||
label: '整机重量(KG)',
|
||||
key: '',
|
||||
fn: '',
|
||||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '工作时长',
|
||||
key: 'workingHours',
|
||||
fn: '',
|
||||
arg: '',
|
||||
},
|
||||
{
|
||||
label: '检验信息',
|
||||
key: 'isExaminationPdf',
|
||||
fn: 'openPdf',
|
||||
arg: 'examinationPdf',
|
||||
},
|
||||
{
|
||||
label: '保险信息',
|
||||
key: 'isInsurancePdf',
|
||||
fn: 'openPdf',
|
||||
arg: 'insurancePdf',
|
||||
},
|
||||
// {
|
||||
// label: '装备型号',
|
||||
// key: 'modelName',
|
||||
// fn: '',
|
||||
// arg: '',
|
||||
// },
|
||||
// {
|
||||
// label: '序列号码',
|
||||
// key: 'serialNumber',
|
||||
// fn: '',
|
||||
// arg: '',
|
||||
// },
|
||||
// {
|
||||
// label: '出场时间',
|
||||
// key: 'productionDate',
|
||||
// fn: '',
|
||||
// arg: '',
|
||||
// },
|
||||
// {
|
||||
// label: '工作时长',
|
||||
// key: 'workingHours',
|
||||
// fn: '',
|
||||
// arg: '',
|
||||
// },
|
||||
// {
|
||||
// label: '检验信息',
|
||||
// key: 'isExaminationPdf',
|
||||
// fn: 'openPdf',
|
||||
// arg: 'examinationPdf',
|
||||
// },
|
||||
// {
|
||||
// label: '保险信息',
|
||||
// key: 'isInsurancePdf',
|
||||
// fn: 'openPdf',
|
||||
// arg: 'insurancePdf',
|
||||
// },
|
||||
])
|
||||
|
||||
//
|
||||
|
|
@ -614,6 +783,7 @@ const getData = async () => {
|
|||
|
||||
console.log('res详情数据', res)
|
||||
pageData.value = res.data
|
||||
goodsImgList.value = res.data.mainFileList
|
||||
}
|
||||
|
||||
//获取推荐列表
|
||||
|
|
@ -750,8 +920,54 @@ const onAddCart = async () => {
|
|||
.showImg {
|
||||
width: 38%;
|
||||
border-radius: 15px;
|
||||
overflow: hidden;
|
||||
// overflow: hidden;
|
||||
margin-right: 30px;
|
||||
// display: flex;
|
||||
// flex-direction: column;
|
||||
// justify-content: space-between;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 73%;
|
||||
}
|
||||
|
||||
.img-slide {
|
||||
height: 25%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
font-size: 26px;
|
||||
// &:hover {
|
||||
// color: white;
|
||||
// }
|
||||
}
|
||||
|
||||
.img-slide-container {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
height: 80%;
|
||||
justify-content: space-around;
|
||||
|
||||
.img-item {
|
||||
width: calc((100% - 30px) / 4);
|
||||
cursor: pointer;
|
||||
|
||||
img {
|
||||
height: 90%;
|
||||
margin-top: 5%;
|
||||
}
|
||||
// width: 25%;
|
||||
// background-color: orange;
|
||||
}
|
||||
|
||||
.activeUrl {
|
||||
border: 1px solid #1abc9c;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.baseInfo {
|
||||
|
|
@ -837,13 +1053,13 @@ const onAddCart = async () => {
|
|||
|
||||
.options {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.item_btn {
|
||||
cursor: pointer;
|
||||
width: 110px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
border-radius: 8px;
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
}
|
||||
|
|
@ -855,7 +1071,8 @@ const onAddCart = async () => {
|
|||
}
|
||||
|
||||
.applyFor {
|
||||
background-color: #1abc9c;
|
||||
margin-left: 50px;
|
||||
// background-color: #1abc9c;
|
||||
color: #f7f9fa;
|
||||
box-sizing: border-box;
|
||||
line-height: 38px;
|
||||
|
|
@ -914,7 +1131,8 @@ const onAddCart = async () => {
|
|||
|
||||
.businessInfo {
|
||||
width: 100%;
|
||||
height: 147px;
|
||||
margin-top: 10px;
|
||||
// height: 147px;
|
||||
background: #f7f9fa;
|
||||
border-radius: 15px;
|
||||
position: relative;
|
||||
|
|
@ -942,7 +1160,7 @@ const onAddCart = async () => {
|
|||
|
||||
.fonts {
|
||||
.name {
|
||||
font-size: 20px;
|
||||
font-size: 16px;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
|
|
@ -953,12 +1171,12 @@ const onAddCart = async () => {
|
|||
display: flex;
|
||||
|
||||
.item {
|
||||
font-size: 14px;
|
||||
font-size: 12px;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
color: #747373;
|
||||
display: flex;
|
||||
margin-right: 15px;
|
||||
margin-right: 60px;
|
||||
|
||||
.label {
|
||||
}
|
||||
|
|
@ -974,14 +1192,15 @@ const onAddCart = async () => {
|
|||
}
|
||||
|
||||
.publicTitle {
|
||||
font-size: 20px;
|
||||
font-size: 18px;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
color: #fff;
|
||||
background-color: #1abc9c;
|
||||
width: 150px;
|
||||
height: 65px;
|
||||
line-height: 65px;
|
||||
text-align: center;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.publicLine {
|
||||
|
|
@ -1004,7 +1223,9 @@ const onAddCart = async () => {
|
|||
|
||||
.publicContent {
|
||||
box-sizing: border-box;
|
||||
padding: 40px 70px 10px;
|
||||
padding: 40px 30px 10px;
|
||||
border: 1px solid #1abc9c;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.detail {
|
||||
|
|
@ -1015,9 +1236,9 @@ const onAddCart = async () => {
|
|||
.item {
|
||||
cursor: pointer;
|
||||
width: calc(100% / 3);
|
||||
font-size: 16px;
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 600;
|
||||
// font-weight: 600;
|
||||
display: flex;
|
||||
margin-bottom: 35px;
|
||||
|
||||
|
|
@ -1049,6 +1270,20 @@ const onAddCart = async () => {
|
|||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.certificate {
|
||||
padding: 40px 30px 10px;
|
||||
div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 30px;
|
||||
|
||||
a {
|
||||
color: #54b4ff;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.recommend {
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@
|
|||
:price="v.dayLeasePrice"
|
||||
:company="v.companyName"
|
||||
:personPhone="v.personPhone"
|
||||
@click="onHandleDetails(v.maId)"
|
||||
/>
|
||||
<!-- <equip-card
|
||||
class="card"
|
||||
|
|
@ -372,7 +373,7 @@ const getDeviceListData = async (params: any = null, keyWord: any = null) => {
|
|||
}
|
||||
if (index === 3 && j.isChecked) {
|
||||
searchParams.companyId = j.value
|
||||
searchParams.level = 1
|
||||
searchParams.level = j.value ? 1 : ''
|
||||
}
|
||||
})
|
||||
})
|
||||
|
|
@ -427,17 +428,9 @@ const selectScreen = (type: any, item: any, index: number) => {
|
|||
e.isChecked = false
|
||||
})
|
||||
item.isChecked = !item.isChecked
|
||||
// activeParams[type] = item.value
|
||||
getDeviceListData()
|
||||
}
|
||||
|
||||
//装备card被点击
|
||||
const toDetail = (data) => {
|
||||
router.push({
|
||||
path: `/equipDetail/${data.id}`,
|
||||
})
|
||||
}
|
||||
|
||||
//分页page变化
|
||||
const onCurrentChange = (val: number) => {
|
||||
pageData.pageNum = val
|
||||
|
|
@ -471,6 +464,11 @@ onMounted(() => {
|
|||
onUnmounted(() => {
|
||||
$bus.off('search')
|
||||
})
|
||||
|
||||
// 点击跳转装备详情
|
||||
const onHandleDetails = (id: number | string) => {
|
||||
router.push(`/equipDetail/${id}`)
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.equipList {
|
||||
|
|
|
|||
|
|
@ -163,32 +163,27 @@ const onSelectItem = (type: number) => {
|
|||
{{ child.name }}
|
||||
</span>
|
||||
|
||||
<span
|
||||
style="
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
"
|
||||
>
|
||||
<span style="display: flex; flex: 1; flex-wrap: wrap">
|
||||
<a
|
||||
v-for="son in child.children"
|
||||
:key="son.id"
|
||||
style="font-size: 14px; font-weight: normal"
|
||||
@click="onSharedHall(3, son.id)"
|
||||
>
|
||||
{{ son.name }}
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<!-- <span style="display: flex; flex: 1">
|
||||
<span
|
||||
v-for="son in child.children"
|
||||
:key="son.id"
|
||||
style="
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
"
|
||||
style="font-size: 14px; font-weight: normal"
|
||||
@click="onSharedHall(3, son.id)"
|
||||
>
|
||||
<!-- {{ son.name }} -->
|
||||
{{ son.name }} -->
|
||||
|
||||
<span style="width: 30%">
|
||||
{{ son.name }}
|
||||
</span>
|
||||
|
||||
<span
|
||||
<!-- <span
|
||||
style="
|
||||
width: 70%;
|
||||
display: flex;
|
||||
|
|
@ -209,9 +204,9 @@ const onSelectItem = (type: number) => {
|
|||
>
|
||||
{{ son_1.name }}
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</span> -->
|
||||
<!-- </span>
|
||||
</span> -->
|
||||
|
||||
<!-- <span>{{ child.name }}</span>
|
||||
<span>
|
||||
|
|
@ -446,11 +441,12 @@ const onSelectItem = (type: number) => {
|
|||
top: 0;
|
||||
left: 200px;
|
||||
width: 915px;
|
||||
min-height: 100%;
|
||||
max-height: 100%;
|
||||
background-color: #f5f4f4;
|
||||
background-color: #fff;
|
||||
z-index: 999;
|
||||
// opacity: 0.9;
|
||||
border: 1px solid #333;
|
||||
border: 1px solid #eee;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
|
||||
|
|
@ -469,6 +465,11 @@ const onSelectItem = (type: number) => {
|
|||
margin: 0 15px;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
color: #333;
|
||||
&:hover {
|
||||
color: #1abc9c;
|
||||
border-bottom: 1px solid #1abc9c !important;
|
||||
}
|
||||
}
|
||||
|
||||
.last-level {
|
||||
|
|
|
|||
Loading…
Reference in New Issue