Compare commits

..

No commits in common. "b0d60a8a67b979e4afe5b74db5f57cd466497b9e" and "279bbc6268f5aef30f8e02d8c475d434c802976d" have entirely different histories.

10 changed files with 265 additions and 150 deletions

View File

@ -122,7 +122,7 @@ const navMenuClick = (name: any) => {
</script> </script>
<template> <template>
<ul class="nav-menu" style="display: none"> <ul class="nav-menu">
<li <li
v-for="item in navMenuList" v-for="item in navMenuList"
:key="item.name" :key="item.name"

View File

@ -14,8 +14,8 @@
</li> </li>
</ul> </ul>
<div style="margin: 10px 0; padding-right: 15px; text-align: right; "> <div style="margin: 10px 0; padding-right: 15px; text-align: right">
<span style="text-align: right; color: #ff4800; display: none"> <span style="text-align: right; color: #ff4800">
<i style="font-size: 14px"></i> <i style="font-size: 14px"></i>
<i style="margin: 0 6px; font-size: 18px; font-weight: bold">{{ price }}</i> <i style="margin: 0 6px; font-size: 18px; font-weight: bold">{{ price }}</i>
<i style="font-size: 14px">/ </i> <i style="font-size: 14px">/ </i>
@ -42,6 +42,10 @@ const props: any = defineProps({
type: String, type: String,
default: '安徽某科技有限公司', default: '安徽某科技有限公司',
}, },
price: {
type: [String, Number],
default: 99,
},
timeUnit: { timeUnit: {
type: String, type: String,
default: '月', default: '月',

View File

@ -7,14 +7,11 @@
<ul class="item-details"> <ul class="item-details">
<li class="address"> <li class="address">
<span>{{ operateAddress }}</span> <span>{{ operateAddress }}</span>
<!-- <span style="text-align: right; color: #ff4800; display: none" >--> <span style="text-align: right; color: #ff4800">
<!-- <i style="font-size: 10px"></i>--> <i style="font-size: 10px"></i>
<!-- <i style="font-size: 14px; font-weight: bold">{{ price }}</i>--> <i style="font-size: 14px; font-weight: bold">{{ price }}</i>
<!-- <i style="font-size: 10px">/ </i>--> <i style="font-size: 10px">/ </i>
<!-- </span>--> </span>
</li>
<li>
<span>状态{{ statusText }}</span>
</li> </li>
<li> <li>
<span>13867865678</span> <span>13867865678</span>
@ -33,7 +30,6 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { computed } from 'vue'
import { addBookCarApi } from 'http/api/equip' import { addBookCarApi } from 'http/api/equip'
import { useRoute, useRouter } from 'vue-router' import { useRoute, useRouter } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus' import { ElMessage, ElMessageBox } from 'element-plus'
@ -94,10 +90,6 @@ const props: any = defineProps({
type: [String, Number], type: [String, Number],
default: '', default: '',
}, },
ma_status: {
type: [String, Number],
default: '',
},
}) })
const emit = defineEmits(['onClick']) const emit = defineEmits(['onClick'])
@ -132,31 +124,13 @@ const onHandelLessee = () => {
.catch(() => {}) .catch(() => {})
} }
const statusText = computed(() => {
const code = Number(props.ma_status)
switch (code) {
case 1:
return '入库'
case 2:
return '出库(自用)'
case 3:
return '出库(共享)'
case 4:
return '退役'
case 5:
return '维修'
default:
return '未知'
}
})
// //
const onAddCart = async () => { const onAddCart = async () => {
const addParams = { const addParams = {
maId: props.id, maId: props.id,
orderCompany: props.companyId, orderCompany: props.companyId,
} }
const res: any = await addBookCarApi(addParams) const res = await addBookCarApi(addParams)
if (res.code === 200) { if (res.code === 200) {
ElMessage({ ElMessage({
type: 'success', type: 'success',

View File

@ -68,13 +68,12 @@ const handlerLogout = () => {
if (import.meta.env.VITE_API_URL == '/proxyApi') { if (import.meta.env.VITE_API_URL == '/proxyApi') {
router.push('/login') // - router.push('/login') // -
} else { } else {
router.push('/login') // - // -
// // - setTimeout(() => {
// setTimeout(() => { window.location.replace(
// window.location.replace( 'http://sgwpdm.ah.sgcc.com.cn/iws/cas/login?appId=3874dcb953f184dc75450e33d6d6d4fa&service=http://sgwpdm.ah.sgcc.com.cn/iws/mall-view/',
// 'http://sgwpdm.ah.sgcc.com.cn/iws/cas/login?appId=3874dcb953f184dc75450e33d6d6d4fa&service=http://sgwpdm.ah.sgcc.com.cn/iws/mall-view/', )
// ) }, 500)
// }, 500)
} }
}) })
.catch(() => { .catch(() => {
@ -260,7 +259,7 @@ onMounted(() => {
<template> <template>
<!-- 头部个人信息 收藏夹 手机版等图标 --> <!-- 头部个人信息 收藏夹 手机版等图标 -->
<div class="header-container"> <div class="header-container">
<div class="header-user-info" style="display: none"> <div class="header-user-info">
<div class="header-box"> <div class="header-box">
<el-image <el-image
style="width: 190px; cursor: pointer" style="width: 190px; cursor: pointer"

View File

@ -476,7 +476,7 @@ onUnmounted(() => {
<template> <template>
<!-- 头部个人信息 收藏夹 手机版等图标 --> <!-- 头部个人信息 收藏夹 手机版等图标 -->
<div class="header-container"> <div class="header-container">
<div class="header-user-info" style="display: none"> <div class="header-user-info">
<div class="header-box"> <div class="header-box">
<div class="header-item" v-if="isShowLogout"> <div class="header-item" v-if="isShowLogout">
<a class="user-name"> <a class="user-name">
@ -544,8 +544,7 @@ onUnmounted(() => {
<!-- 中间logo 部分 --> <!-- 中间logo 部分 -->
<div class="logo-ipt-container"> <div class="logo-ipt-container">
<div class="home-logo" @click="$router.push('/equipList')"></div> <div class="home-logo" @click="$router.push('/home')"></div>
<!-- <div class="home-logo"></div>-->
<div class="home-search" ref="homeSearchRef"> <div class="home-search" ref="homeSearchRef">
<input <input
:placeholder="searchTypeName === '装备' ? '搜索装备关键词' : '搜索需求关键词'" :placeholder="searchTypeName === '装备' ? '搜索装备关键词' : '搜索需求关键词'"

View File

@ -5,7 +5,7 @@
</div> </div>
<div class="container"> <div class="container">
<el-breadcrumb separator="/" class="primary-lease"> <el-breadcrumb separator="/" class="primary-lease">
<el-breadcrumb-item :to="{ path: '/equipList' }">首页</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>预约车</el-breadcrumb-item> <el-breadcrumb-item>预约车</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
@ -26,18 +26,21 @@
<el-col :span="9"> <el-col :span="9">
<div>装备信息</div> <div>装备信息</div>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="3">
<div>租期</div> <div>租期</div>
</el-col> </el-col>
<el-col :span="2">
<div>日租金/</div>
</el-col>
<el-col :span="2"> <el-col :span="2">
<div>天数</div> <div>天数</div>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="2">
<div>数量</div> <div>数量</div>
</el-col> </el-col>
<!-- <el-col :span="2">--> <el-col :span="2">
<!-- <div>总金额/</div>--> <div>总金额/</div>
<!-- </el-col>--> </el-col>
<el-col :span="2"> <el-col :span="2">
<div>操作</div> <div>操作</div>
</el-col> </el-col>
@ -90,7 +93,7 @@
<div>装备型号 {{ goods.typeName }}</div> <div>装备型号 {{ goods.typeName }}</div>
</div> </div>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="4">
<div class="lease-date"> <div class="lease-date">
<div style="margin-bottom: 8px"> <div style="margin-bottom: 8px">
{{ goods.rentBeginTime }} {{ goods.rentBeginTime }}
@ -98,6 +101,16 @@
{{ goods.rentEndTime }} {{ goods.rentEndTime }}
</div> </div>
<!-- <el-date-picker
style="width: 100px; margin-top: 10px"
v-model="goods.lease_date"
type="daterange"
size="small"
value-format="YYYY-MM-DD"
@change="onLeaseDateChange($event, goods)"
>
</el-date-picker> -->
<CustomDatePickerButton <CustomDatePickerButton
:modelValue="goods.lease_date" :modelValue="goods.lease_date"
:companyIndex="index" :companyIndex="index"
@ -110,12 +123,17 @@
/> />
</div> </div>
</el-col> </el-col>
<el-col :span="2">
<div class="red-font">
{{ goods.dayLeasePrice }}
</div>
</el-col>
<el-col :span="2"> <el-col :span="2">
<div class="red-font" style="color: #0062ff"> <div class="red-font" style="color: #0062ff">
{{ goods.days }} {{ goods.days }}
</div> </div>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="2">
<div> <div>
<el-input-number <el-input-number
v-model="goods.num" v-model="goods.num"
@ -127,8 +145,21 @@
/> />
</div> </div>
</el-col> </el-col>
<el-col :span="2">
<div class="red-font">
{{ goods.num * goods.days * goods.dayLeasePrice }}
</div>
</el-col>
<el-col :span="2"> <el-col :span="2">
<div> <div>
<!-- <el-button
link
@click="onDeleteGoods(goods.id)"
style="color: #ff4800; font-weight: bold"
>
删除
</el-button> -->
<el-popconfirm <el-popconfirm
width="220" width="220"
:icon="InfoFilled" :icon="InfoFilled"
@ -152,7 +183,7 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row style="display: none"> <el-row>
<el-col :span="16"> <el-col :span="16">
<div class="checkbox-container"> <div class="checkbox-container">
<el-checkbox v-model="item.protocolChecked"> <el-checkbox v-model="item.protocolChecked">
@ -229,13 +260,13 @@
件装备 件装备
</div> </div>
</el-col> </el-col>
<!-- <el-col :span="3">--> <el-col :span="3">
<!-- <div class="red-font">--> <div class="red-font">
<!-- 订单总金额<span style="color: #ff4800; font-weight: bold"--> 订单总金额<span style="color: #ff4800; font-weight: bold"
<!-- >{{ orderAmountPice }} </span--> >{{ orderAmountPice }} </span
<!-- >--> >
<!-- </div>--> </div>
<!-- </el-col>--> </el-col>
<el-col :span="2"> <el-col :span="2">
<div style="text-align: right"> <div style="text-align: right">
<el-button <el-button
@ -889,8 +920,7 @@ const handleViewWord = async (index: any) => {
if (import.meta.env.VITE_API_URL == '/proxyApi') { if (import.meta.env.VITE_API_URL == '/proxyApi') {
wordUrl.value = res.data.url wordUrl.value = res.data.url
} else { } else {
wordUrl.value = res.data.url wordUrl.value = 'http://sgwpdm.ah.sgcc.com.cn/iws/ahbns/' + res.data.url
// wordUrl.value = 'http://sgwpdm.ah.sgcc.com.cn/iws/ahbns/' + res.data.url
} }
console.log('🚀 ~ handleViewWord ~ wordUrl.value:', wordUrl.value) console.log('🚀 ~ handleViewWord ~ wordUrl.value:', wordUrl.value)
dialogFormVisibleSettleWord.value = true dialogFormVisibleSettleWord.value = true

View File

@ -105,16 +105,16 @@
<div class="right"> <div class="right">
<div class="Top"> <div class="Top">
<div class="price"> <div class="price">
<!-- -->
<!-- <span>{{ pageData.dayLeasePrice }}</span>--> <span>{{ pageData.dayLeasePrice }}</span>
<!-- /--> /
</div> </div>
</div> </div>
<div class="phone" style="margin-top: 100px;margin-right: 30px;"> <div class="phone">
<svg class="icon" aria-hidden="true" style="width: 24px; height: 24px"> <svg class="icon" aria-hidden="true" style="width: 24px; height: 24px">
<use xlink:href="#icon-dianhua"></use> <use xlink:href="#icon-dianhua"></use>
</svg> </svg>
<div style="font-size: 30px">{{ pageData.personPhone }}</div> <div style="font-size: 20px">{{ pageData.personPhone }}</div>
</div> </div>
<div style="text-align: right"> <div style="text-align: right">
<el-button <el-button
@ -676,10 +676,10 @@ const equipBaseInfoList = reactive([
label: '装备类目', label: '装备类目',
key: 'groupName', key: 'groupName',
}, },
// { {
// label: '', label: '装备品牌',
// key: 'brand', key: 'brand',
// }, },
{ {
label: '装备型号', label: '装备型号',
key: 'typeName', key: 'typeName',
@ -732,12 +732,12 @@ const equipDetailKeyList = reactive([
fn: '', fn: '',
arg: '', arg: '',
}, },
// { {
// label: '', label: '装备品牌',
// key: 'brand', key: 'brand',
// fn: '', fn: '',
// arg: '', arg: '',
// }, },
{ {
label: '装备类目', label: '装备类目',
key: 'groupName', key: 'groupName',

View File

@ -49,18 +49,18 @@
</div> </div>
</template> </template>
<!-- <div v-if="i == 3" style="display: flex; align-items: center">--> <div v-if="i == 3" style="display: flex; align-items: center">
<!-- <el-input v-model="startPrice" style="width: 60px" size="small" />--> <el-input v-model="startPrice" style="width: 60px" size="small" />
<!-- <span style="margin: 0 5px">-</span>--> <span style="margin: 0 5px">-</span>
<!-- <el-input v-model="endPrice" style="width: 60px" size="small" />--> <el-input v-model="endPrice" style="width: 60px" size="small" />
<!-- <el-button--> <el-button
<!-- @click.stop="onConfirmPrice"--> @click.stop="onConfirmPrice"
<!-- size="small"--> size="small"
<!-- type="primary"--> type="primary"
<!-- style="margin-left: 20px"--> style="margin-left: 20px"
<!-- >确定</el-button--> >确定</el-button
<!-- >--> >
<!-- </div>--> </div>
</div> </div>
</div> </div>
</template> </template>
@ -139,12 +139,33 @@
:typeName="v.typeName" :typeName="v.typeName"
@click="onHandleDetails(v.maId)" @click="onHandleDetails(v.maId)"
/> />
<!-- <equip-card
class="card"
v-for="(v, i) in equipList"
:key="i"
:url="v.picUrl"
:company="v.companyName"
:tags="[v.maStatusStr, v.cityStr || '合肥市']"
:name="`${v.modelName}${v.deviceName}`"
:price="v.monthLeasePrice"
:id="v.maId"
time-unit="月"
@on-click="toDetail"
></equip-card> -->
</div> </div>
<div class="noData" v-else> <div class="noData" v-else>
<el-empty :image-size="200" /> <el-empty :image-size="200" />
</div> </div>
<div class="pagination"> <div class="pagination">
<!-- <el-pagination
v-model:current-page="pageData.pageNum"
:page-size="pageData.pageSize"
@current-change="pageChange"
:pager-count="5"
layout="prev, pager, next"
/> -->
<el-pagination <el-pagination
size="small" size="small"
background background
@ -289,6 +310,62 @@ const screenChooseList: any = reactive([
}, },
], ],
}, },
{
type: 'leasePrice',
name: '租金(天/元)',
isShow: true,
list: [
{
name: '全部',
value: '',
isChecked: true,
index: 3,
isShow: true,
},
{
name: '0-500',
value: [0, 500],
isChecked: false,
index: 3,
isShow: true,
},
{
name: '500-1000',
value: [500, 1000],
isChecked: false,
index: 3,
isShow: true,
},
{
name: '1000-1500',
value: [1000, 1500],
isChecked: false,
index: 3,
isShow: true,
},
{
name: '1500-2000',
value: [1500, 2000],
isChecked: false,
index: 3,
isShow: true,
},
{
name: '2000-2500',
value: [2000, 2500],
isChecked: false,
index: 3,
isShow: true,
},
{
name: '2500-3000',
value: [2500, 3000],
isChecked: false,
index: 3,
isShow: true,
},
],
},
{ {
type: 'companyId', type: 'companyId',
name: '所属公司', name: '所属公司',
@ -332,7 +409,7 @@ const screenOptionList: any = reactive([
sort: '', sort: '',
}, },
{ {
name: '共享剩余时间', name: '租金',
id: 1, id: 1,
sort: 'DESC', sort: 'DESC',
}, },

View File

@ -310,62 +310,62 @@ const screenChooseList: any = reactive([
}, },
], ],
}, },
// { {
// type: 'leasePrice', type: 'leasePrice',
// name: '(/)', name: '租金(天/元)',
// isShow: true, isShow: true,
// list: [ list: [
// { {
// name: '', name: '全部',
// value: '', value: '',
// isChecked: true, isChecked: true,
// index: 3, index: 3,
// isShow: true, isShow: true,
// }, },
// { {
// name: '0-500', name: '0-500',
// value: [0, 500], value: [0, 500],
// isChecked: false, isChecked: false,
// index: 3, index: 3,
// isShow: true, isShow: true,
// }, },
// { {
// name: '500-1000', name: '500-1000',
// value: [500, 1000], value: [500, 1000],
// isChecked: false, isChecked: false,
// index: 3, index: 3,
// isShow: true, isShow: true,
// }, },
// { {
// name: '1000-1500', name: '1000-1500',
// value: [1000, 1500], value: [1000, 1500],
// isChecked: false, isChecked: false,
// index: 3, index: 3,
// isShow: true, isShow: true,
// }, },
// { {
// name: '1500-2000', name: '1500-2000',
// value: [1500, 2000], value: [1500, 2000],
// isChecked: false, isChecked: false,
// index: 3, index: 3,
// isShow: true, isShow: true,
// }, },
// { {
// name: '2000-2500', name: '2000-2500',
// value: [2000, 2500], value: [2000, 2500],
// isChecked: false, isChecked: false,
// index: 3, index: 3,
// isShow: true, isShow: true,
// }, },
// { {
// name: '2500-3000', name: '2500-3000',
// value: [2500, 3000], value: [2500, 3000],
// isChecked: false, isChecked: false,
// index: 3, index: 3,
// isShow: true, isShow: true,
// }, },
// ], ],
// }, },
// { // {
// type: 'companyId', // type: 'companyId',
// name: '', // name: '',

View File

@ -297,7 +297,17 @@ const getOrderListData = async () => {
} }
orderList.value.push(orderInfo) orderList.value.push(orderInfo)
// orderList.value.forEach((e: any) => {
// e.isChecked = false
// e.goods_num = 1
// e.lease_day = 1
// // e.devInfoVoList.forEach((j: any) => {
// // j.isChecked = false
// // })
// })
// console.log(orderList.value, '***********')
// console.log(res, '')
} }
onMounted(() => { onMounted(() => {
@ -306,6 +316,11 @@ onMounted(() => {
}, 500) }, 500)
}) })
// 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')
// }
const onLeaseDateChange = (value: any, companyIndex: number, goodsIndex: number) => { const onLeaseDateChange = (value: any, companyIndex: number, goodsIndex: number) => {
orderList.value.forEach((e: any) => { orderList.value.forEach((e: any) => {
if (!value) { if (!value) {
@ -362,7 +377,15 @@ const allChecked = computed(() => {
// //
const amountDevice = computed(() => { const amountDevice = computed(() => {
// let amountNum = 0
// orderList.value.forEach((e) => {
// if (e.isChecked) {
// amountNum++
// }
// })
return orderList.value.length return orderList.value.length
// return 1
}) })
// //
const amountDeviceList = computed(() => { const amountDeviceList = computed(() => {
@ -389,6 +412,16 @@ const orderAmountPice = computed(() => {
// //
const onCartSubmit = debounce(async () => { const onCartSubmit = debounce(async () => {
// ElMessage.closeAll()
// if (amountDevice.value < 1) {
// ElMessage({
// showClose: false,
// message: '',
// type: 'error',
// })
// return
// }
// console.log(amountDeviceList.value[0].lease_date == undefined)
if (orderList.value[0].days < 1) { if (orderList.value[0].days < 1) {
ElMessage({ ElMessage({
showClose: false, showClose: false,
@ -541,8 +574,7 @@ const handleViewWord = async (index: any) => {
if (import.meta.env.VITE_API_URL == '/proxyApi') { if (import.meta.env.VITE_API_URL == '/proxyApi') {
wordUrl.value = res.data.url wordUrl.value = res.data.url
} else { } else {
wordUrl.value = res.data.url wordUrl.value = 'http://sgwpdm.ah.sgcc.com.cn/iws/ahbns/' + res.data.url
// wordUrl.value = 'http://sgwpdm.ah.sgcc.com.cn/iws/ahbns/' + res.data.url
} }
dialogFormVisibleSettleWord.value = true dialogFormVisibleSettleWord.value = true