Merge branch 'dev-sy'
This commit is contained in:
commit
3f4c3b077e
|
|
@ -7,8 +7,8 @@ VITE_API_URL = '/proxyApi'
|
|||
# 开发环境接口地址
|
||||
# VITE_proxyTarget = 'http://10.40.92.74:8080' #盛旭
|
||||
|
||||
VITE_proxyTarget = 'http://192.168.2.246:28080' # 马帅
|
||||
# VITE_proxyTarget = 'http://192.168.0.244:28580' # 马帅
|
||||
# VITE_proxyTarget = 'http://192.168.2.246:28080' # 马帅
|
||||
VITE_proxyTarget = 'http://192.168.0.244:28580' # 马帅
|
||||
# VITE_proxyTarget = 'http://192.168.2.129:18080' # 马帅
|
||||
|
||||
# VITE_proxyTarget = 'http://10.40.92.185:9206' # 赵福海 ( 设备类型)
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
<script lang="ts" setup>
|
||||
import { addBookCarApi } from '@/http/api/equip'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
const props: any = defineProps({
|
||||
|
|
@ -78,11 +78,27 @@ const cardClick = () => {
|
|||
}
|
||||
|
||||
const onHandelLessee = () => {
|
||||
onAddCart()
|
||||
router.push({
|
||||
path: `/orderConfirm/${props.id}`,
|
||||
// onAddCart()
|
||||
// router.push({
|
||||
// path: `/orderConfirm/${props.id}`,
|
||||
// })
|
||||
// console.log('立即租赁')
|
||||
|
||||
ElMessageBox.confirm('是否确定立即承租该装备?', '温馨提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'success',
|
||||
})
|
||||
console.log('立即租赁')
|
||||
.then(async () => {
|
||||
router.push({
|
||||
// path: `/orderConfirm/${props.id}`,
|
||||
name: 'order-confirm',
|
||||
query: {
|
||||
id: props.id,
|
||||
},
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
|
||||
// 加入购物车
|
||||
|
|
|
|||
|
|
@ -96,16 +96,16 @@ const onSelectRoles = (type: number) => {
|
|||
if (type === 1) {
|
||||
rolesName.value = '1'
|
||||
userStore.editMenuList(1)
|
||||
userStore.editUserMenuList(1)
|
||||
// userStore.editUserMenuList(1)
|
||||
localStorage.setItem('rolesType', '1')
|
||||
router.replace({ name: 'my-lease' })
|
||||
} else {
|
||||
rolesName.value = '2'
|
||||
userStore.editMenuList(2)
|
||||
userStore.editUserMenuList(2)
|
||||
// userStore.editUserMenuList(2)
|
||||
localStorage.setItem('rolesType', '2')
|
||||
router.replace({ name: 'my-lessee' })
|
||||
}
|
||||
|
||||
window.location.reload()
|
||||
isRolesSelect.value = false
|
||||
}
|
||||
|
||||
|
|
@ -163,16 +163,7 @@ const onCarts = () => {
|
|||
</div>
|
||||
</div>
|
||||
<div class="header-item">
|
||||
<a
|
||||
@click="
|
||||
() => {
|
||||
rolesName == 1
|
||||
? router.push({ name: 'my-lease' })
|
||||
: router.push({ name: 'my-lessee' })
|
||||
}
|
||||
"
|
||||
>个人中心</a
|
||||
>
|
||||
<a>个人中心</a>
|
||||
</div>
|
||||
<!-- <div class="header-item last-item">
|
||||
<img src="../../assets/img/home/phone.png" alt="" />
|
||||
|
|
|
|||
|
|
@ -19,4 +19,8 @@ export const getLeaseDetailsByIdApi = (data: any) => {
|
|||
// 删除
|
||||
export const deleteLeaseInfoApi = (data: any) => {
|
||||
return post('/material-mall/ma-lease/deleteById', data)
|
||||
}
|
||||
// 接单列表查询
|
||||
export const getAcceptOrdersListApi = (data: any) => {
|
||||
return get('/material-mall/ma-lease/rentList', data)
|
||||
}
|
||||
|
|
@ -2,11 +2,13 @@
|
|||
import $bus from '@/utils/bus'
|
||||
import { mainStore } from 'store/main'
|
||||
import { useStore } from 'store/user'
|
||||
import { cartStore } from 'store/cart'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getHotSearchListApi, getBookCarDetailsApi } from 'http/api/home/index'
|
||||
import imgSrc from '@/assets/img/logo.png'
|
||||
const store: any = mainStore()
|
||||
const userStore = useStore()
|
||||
const cart = cartStore()
|
||||
|
||||
userStore.editMenuList(1)
|
||||
|
||||
|
|
@ -126,15 +128,16 @@ const onSelectRoles = (type: number) => {
|
|||
isRolesSelect.value = false
|
||||
}
|
||||
|
||||
const cartNum = ref(0)
|
||||
const getBookCarDetailsData = async () => {
|
||||
const res: any = await getBookCarDetailsApi()
|
||||
console.log(res, '预约车数量')
|
||||
|
||||
cartNum.value = res.data.length
|
||||
cart.SET_CART_NUM(res.data.length || 0)
|
||||
}
|
||||
getBookCarDetailsData()
|
||||
|
||||
const cartNum = computed(() => {
|
||||
return cart.cartNum
|
||||
})
|
||||
|
||||
// 查看预约车
|
||||
const onCarts = () => {
|
||||
console.log('跳转预约车页面')
|
||||
|
|
@ -208,9 +211,7 @@ const onCarts = () => {
|
|||
<a
|
||||
@click="
|
||||
() => {
|
||||
rolesName == 1
|
||||
? router.push({ name: 'my-lease' })
|
||||
: router.push({ name: 'my-lessee' })
|
||||
router.push({ name: 'my-user' })
|
||||
}
|
||||
"
|
||||
>个人中心</a
|
||||
|
|
|
|||
|
|
@ -200,292 +200,8 @@ const routes: Array<RouteRecordRaw> = [
|
|||
keepAlive: false,
|
||||
AuthFlag: false
|
||||
},
|
||||
redirect: '/my-user/baseInfo',
|
||||
children: [
|
||||
|
||||
/* 基础信息 */
|
||||
{
|
||||
path: 'baseInfo',
|
||||
name: 'baseInfo',
|
||||
component: () => import('views/user/baseInfo/index.vue'),
|
||||
meta: {
|
||||
title: '基础信息',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
|
||||
/* 订单管理(承租方) */
|
||||
{
|
||||
path: 'orderManagement',
|
||||
name: 'orderManagement',
|
||||
component: () => import('@/views/user/orderManagement/index.vue'),
|
||||
meta: {
|
||||
title: '订单管理(求租)',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
/* 订单管理(出租方) */
|
||||
{
|
||||
path: 'orderManagementBuy',
|
||||
name: 'orderManagementBuy',
|
||||
component: () => import('@/views/user/orderManagementCz/index.vue'),
|
||||
meta: {
|
||||
title: '订单管理(求租)',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
/* 订单管理(订单详情出租) */
|
||||
{
|
||||
path: 'orderManagementInfoBuy',
|
||||
name: 'orderManagementInfoBuy',
|
||||
component: () => import('@/views/user/orderManagementCz/detail.vue'),
|
||||
meta: {
|
||||
title: '订单详情',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: false
|
||||
},
|
||||
},
|
||||
/* 订单管理(订单详情承租) */
|
||||
{
|
||||
path: 'orderManagementInfo',
|
||||
name: 'orderManagementInfo',
|
||||
component: () => import('@/views/user/orderManagement/detail.vue'),
|
||||
meta: {
|
||||
title: '订单详情',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: false
|
||||
},
|
||||
},
|
||||
/* 订单管理(退租) */
|
||||
{
|
||||
path: 'rentinTermination',
|
||||
name: 'rentinTermination',
|
||||
component: () => import('views/user/orderManagement/orderCom/rentinTermination.vue'),
|
||||
meta: {
|
||||
title: '订单管理(退租)',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
/* 订单管理(续租) */
|
||||
{
|
||||
path: 'renewalOfLease',
|
||||
name: 'renewalOfLease',
|
||||
component: () => import('views/user/orderManagement/orderCom/renewalOfLease.vue'),
|
||||
meta: {
|
||||
title: '订单管理(续租)',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'subAccount',
|
||||
name: 'subAccount',
|
||||
component: () => import('views/user/subAccount/index.vue'),
|
||||
meta: {
|
||||
title: '子账号管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'business',
|
||||
name: 'business',
|
||||
component: () => import('views/user/business/index.vue'),
|
||||
meta: {
|
||||
title: '业务开通',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
/* 寻源需求 */
|
||||
{
|
||||
path: 'sourcingNeed',
|
||||
name: 'sourcingNeed',
|
||||
component: () => import('views/user/sourcingNeed/index.vue'),
|
||||
meta: {
|
||||
title: '需求管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'orderManagementCz',
|
||||
name: 'orderManagementCz',
|
||||
component: () => import('views/user/orderManagementCz/index.vue'),
|
||||
meta: {
|
||||
title: '订单管理(承租)',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
/* 订单管理(结算) */
|
||||
{
|
||||
path: 'settlement',
|
||||
name: 'settlement',
|
||||
component: () => import('views/user/orderManagementCz/settlement/index.vue'),
|
||||
meta: {
|
||||
title: '订单管理(结算)',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'goodsManagement',
|
||||
name: 'goodsManagement',
|
||||
component: () => import('views/user/goodsManagement/index.vue'),
|
||||
meta: {
|
||||
title: '基础信息',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'goodsUpdown',
|
||||
name: 'goodsUpdown',
|
||||
component: () => import('views/user/goodsUpdown/index.vue'),
|
||||
meta: {
|
||||
title: '基础信息',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'operatorManagement',
|
||||
name: 'operatorManagement',
|
||||
component: () => import('views/user/operatorManagement/index.vue'),
|
||||
meta: {
|
||||
title: '基础信息',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'orderDetails',
|
||||
name: 'orderDetails',
|
||||
component: () => import('@/views/user/orderManagement/orderCom/orderDetails.vue'),
|
||||
meta: {
|
||||
title: '订单详情',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'orderConfirm',
|
||||
name: 'orderConfirm',
|
||||
component: () => import('views/user/orderManagement/orderCom/orderConfirm.vue'),
|
||||
meta: {
|
||||
title: '订单确认',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'sourcingBidding',
|
||||
name: 'sourcingBidding',
|
||||
component: () => import('views/user/sourcingBidding/index.vue'),
|
||||
meta: {
|
||||
title: '寻源竞价',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
/* 专区管理 */
|
||||
{
|
||||
path: 'zoneManag',
|
||||
name: 'zoneManag',
|
||||
component: () => import('views/user/zoneManag/index.vue'),
|
||||
meta: {
|
||||
title: '专区管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
/* 申请加入专区页面 */
|
||||
{
|
||||
path: 'joinZone',
|
||||
name: 'joinZone',
|
||||
component: () => import('views/user/zoneManag/zoneCom/joinZone.vue'),
|
||||
meta: {
|
||||
title: '请加入专区',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
]
|
||||
},
|
||||
// 预约车页面
|
||||
{
|
||||
path: '/cart',
|
||||
name: 'cart',
|
||||
component: () => import('views/cart/index.vue'),
|
||||
meta: {
|
||||
title: '预约车',
|
||||
keepAlive: false,
|
||||
AuthFlag: false
|
||||
},
|
||||
},
|
||||
// 订单确认页面
|
||||
{
|
||||
path: '/orderConfirm/:maId',
|
||||
name: 'orderConfirm',
|
||||
component: () => import('views/order/index.vue'),
|
||||
meta: {
|
||||
title: '订单提交',
|
||||
keepAlive: false,
|
||||
AuthFlag: false
|
||||
},
|
||||
},
|
||||
// 需求详情页面
|
||||
{
|
||||
path: '/demand-details',
|
||||
name: 'demand-details',
|
||||
component: () => import('views/demand-details/index.vue'),
|
||||
meta: {
|
||||
title: '需求详情',
|
||||
keepAlive: false,
|
||||
AuthFlag: false
|
||||
},
|
||||
},
|
||||
|
||||
// 个人中心改造路由
|
||||
/**
|
||||
* 1. 出租方
|
||||
*/
|
||||
{
|
||||
path: '/my-lease', // 主路由地址
|
||||
name: 'my-lease',
|
||||
component: () => import('views/user/index.vue'), // 组件加载
|
||||
meta: {
|
||||
title: '个人中心',
|
||||
keepAlive: false,
|
||||
AuthFlag: false
|
||||
},
|
||||
redirect: '/my-lease/goodsManagement',
|
||||
children: [
|
||||
{
|
||||
path: 'orderManagementCz',
|
||||
name: 'orderManagementCz',
|
||||
|
|
@ -509,35 +225,16 @@ const routes: Array<RouteRecordRaw> = [
|
|||
},
|
||||
},
|
||||
{
|
||||
path: 'goodsUpdown',
|
||||
name: 'goodsUpdown',
|
||||
component: () => import('views/user/goodsUpdown/index.vue'),
|
||||
path: 'accept-orders',
|
||||
name: 'accept-orders',
|
||||
component: () => import('views/user/accept-orders/index.vue'),
|
||||
meta: {
|
||||
title: '基础信息',
|
||||
title: '接单管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
|
||||
]
|
||||
},
|
||||
/**
|
||||
* 2. 承租方
|
||||
*/
|
||||
{
|
||||
path: '/my-lessee', // 主路由地址
|
||||
name: 'my-lessee',
|
||||
component: () => import('views/user/index.vue'), // 组件加载
|
||||
meta: {
|
||||
title: '个人中心',
|
||||
keepAlive: false,
|
||||
AuthFlag: false
|
||||
},
|
||||
redirect: '/my-lessee/sourcingNeed',
|
||||
children: [
|
||||
{
|
||||
path: 'sourcingNeed',
|
||||
name: 'sourcingNeed',
|
||||
|
|
@ -560,8 +257,366 @@ const routes: Array<RouteRecordRaw> = [
|
|||
isLogin: true
|
||||
},
|
||||
},
|
||||
|
||||
// /* 基础信息 */
|
||||
// {
|
||||
// path: 'baseInfo',
|
||||
// name: 'baseInfo',
|
||||
// component: () => import('views/user/baseInfo/index.vue'),
|
||||
// meta: {
|
||||
// title: '基础信息',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
|
||||
// /* 订单管理(承租方) */
|
||||
// {
|
||||
// path: 'orderManagement',
|
||||
// name: 'orderManagement',
|
||||
// component: () => import('@/views/user/orderManagement/index.vue'),
|
||||
// meta: {
|
||||
// title: '订单管理(求租)',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// /* 订单管理(出租方) */
|
||||
// {
|
||||
// path: 'orderManagementBuy',
|
||||
// name: 'orderManagementBuy',
|
||||
// component: () => import('@/views/user/orderManagementCz/index.vue'),
|
||||
// meta: {
|
||||
// title: '订单管理(求租)',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// /* 订单管理(订单详情出租) */
|
||||
// {
|
||||
// path: 'orderManagementInfoBuy',
|
||||
// name: 'orderManagementInfoBuy',
|
||||
// component: () => import('@/views/user/orderManagementCz/detail.vue'),
|
||||
// meta: {
|
||||
// title: '订单详情',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: false
|
||||
// },
|
||||
// },
|
||||
// /* 订单管理(订单详情承租) */
|
||||
// {
|
||||
// path: 'orderManagementInfo',
|
||||
// name: 'orderManagementInfo',
|
||||
// component: () => import('@/views/user/orderManagement/detail.vue'),
|
||||
// meta: {
|
||||
// title: '订单详情',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: false
|
||||
// },
|
||||
// },
|
||||
// /* 订单管理(退租) */
|
||||
// {
|
||||
// path: 'rentinTermination',
|
||||
// name: 'rentinTermination',
|
||||
// component: () => import('views/user/orderManagement/orderCom/rentinTermination.vue'),
|
||||
// meta: {
|
||||
// title: '订单管理(退租)',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// /* 订单管理(续租) */
|
||||
// {
|
||||
// path: 'renewalOfLease',
|
||||
// name: 'renewalOfLease',
|
||||
// component: () => import('views/user/orderManagement/orderCom/renewalOfLease.vue'),
|
||||
// meta: {
|
||||
// title: '订单管理(续租)',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'subAccount',
|
||||
// name: 'subAccount',
|
||||
// component: () => import('views/user/subAccount/index.vue'),
|
||||
// meta: {
|
||||
// title: '子账号管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'business',
|
||||
// name: 'business',
|
||||
// component: () => import('views/user/business/index.vue'),
|
||||
// meta: {
|
||||
// title: '业务开通',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// /* 寻源需求 */
|
||||
// {
|
||||
// path: 'sourcingNeed',
|
||||
// name: 'sourcingNeed',
|
||||
// component: () => import('views/user/sourcingNeed/index.vue'),
|
||||
// meta: {
|
||||
// title: '需求管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'orderManagementCz',
|
||||
// name: 'orderManagementCz',
|
||||
// component: () => import('views/user/orderManagementCz/index.vue'),
|
||||
// meta: {
|
||||
// title: '订单管理(承租)',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// /* 订单管理(结算) */
|
||||
// {
|
||||
// path: 'settlement',
|
||||
// name: 'settlement',
|
||||
// component: () => import('views/user/orderManagementCz/settlement/index.vue'),
|
||||
// meta: {
|
||||
// title: '订单管理(结算)',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'goodsManagement',
|
||||
// name: 'goodsManagement',
|
||||
// component: () => import('views/user/goodsManagement/index.vue'),
|
||||
// meta: {
|
||||
// title: '基础信息',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'goodsUpdown',
|
||||
// name: 'goodsUpdown',
|
||||
// component: () => import('views/user/goodsUpdown/index.vue'),
|
||||
// meta: {
|
||||
// title: '基础信息',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'operatorManagement',
|
||||
// name: 'operatorManagement',
|
||||
// component: () => import('views/user/operatorManagement/index.vue'),
|
||||
// meta: {
|
||||
// title: '基础信息',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'orderDetails',
|
||||
// name: 'orderDetails',
|
||||
// component: () => import('views/user/orderManagement/orderCom/orderDetails.vue'),
|
||||
// meta: {
|
||||
// title: '订单详情',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'orderConfirm',
|
||||
// name: 'orderConfirm',
|
||||
// component: () => import('views/user/orderManagement/orderCom/orderConfirm.vue'),
|
||||
// meta: {
|
||||
// title: '订单确认',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'sourcingBidding',
|
||||
// name: 'sourcingBidding',
|
||||
// component: () => import('views/user/sourcingBidding/index.vue'),
|
||||
// meta: {
|
||||
// title: '寻源竞价',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// /* 专区管理 */
|
||||
// {
|
||||
// path: 'zoneManag',
|
||||
// name: 'zoneManag',
|
||||
// component: () => import('views/user/zoneManag/index.vue'),
|
||||
// meta: {
|
||||
// title: '专区管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// /* 申请加入专区页面 */
|
||||
// {
|
||||
// path: 'joinZone',
|
||||
// name: 'joinZone',
|
||||
// component: () => import('views/user/zoneManag/zoneCom/joinZone.vue'),
|
||||
// meta: {
|
||||
// title: '请加入专区',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
]
|
||||
}
|
||||
},
|
||||
// 预约车页面
|
||||
{
|
||||
path: '/cart',
|
||||
name: 'cart',
|
||||
component: () => import('views/cart/index.vue'),
|
||||
meta: {
|
||||
title: '预约车',
|
||||
keepAlive: false,
|
||||
AuthFlag: false
|
||||
},
|
||||
},
|
||||
// 订单确认页面
|
||||
{
|
||||
path: '/order-confirm',
|
||||
name: 'order-confirm',
|
||||
component: () => import('views/order/index.vue'),
|
||||
meta: {
|
||||
title: '订单提交',
|
||||
keepAlive: false,
|
||||
AuthFlag: false
|
||||
},
|
||||
},
|
||||
// 需求详情页面
|
||||
{
|
||||
path: '/demand-details',
|
||||
name: 'demand-details',
|
||||
component: () => import('views/demand-details/index.vue'),
|
||||
meta: {
|
||||
title: '需求详情',
|
||||
keepAlive: false,
|
||||
AuthFlag: false
|
||||
},
|
||||
},
|
||||
|
||||
// 个人中心改造路由
|
||||
/**
|
||||
* 1. 出租方
|
||||
*/
|
||||
// {
|
||||
// path: '/my-lease', // 主路由地址
|
||||
// name: 'my-lease',
|
||||
// component: () => import('views/user/index.vue'), // 组件加载
|
||||
// meta: {
|
||||
// title: '个人中心',
|
||||
// keepAlive: false,
|
||||
// AuthFlag: false
|
||||
// },
|
||||
// redirect: '/my-lease/goodsManagement',
|
||||
// children: [
|
||||
// {
|
||||
// path: 'orderManagementCz',
|
||||
// name: 'orderManagementCz',
|
||||
// component: () => import('views/user/orderManagementCz/index.vue'),
|
||||
// meta: {
|
||||
// title: '订单管理(出租方)',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'goodsManagement',
|
||||
// name: 'goodsManagement',
|
||||
// component: () => import('views/user/goodsManagement/index.vue'),
|
||||
// meta: {
|
||||
// title: '商品管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'accept-orders',
|
||||
// name: 'accept-orders',
|
||||
// component: () => import('views/user/accept-orders/index.vue'),
|
||||
// meta: {
|
||||
// title: '接单管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
|
||||
|
||||
|
||||
// ]
|
||||
// },
|
||||
// /**
|
||||
// * 2. 承租方
|
||||
// */
|
||||
// {
|
||||
// path: '/my-lessee', // 主路由地址
|
||||
// name: 'my-lessee',
|
||||
// component: () => import('views/user/index.vue'), // 组件加载
|
||||
// meta: {
|
||||
// title: '个人中心',
|
||||
// keepAlive: false,
|
||||
// AuthFlag: false
|
||||
// },
|
||||
// redirect: '/my-lessee/sourcingNeed',
|
||||
// children: [
|
||||
// {
|
||||
// path: 'sourcingNeed',
|
||||
// name: 'sourcingNeed',
|
||||
// component: () => import('views/user/sourcingNeed/index.vue'),
|
||||
// meta: {
|
||||
// title: '需求管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// path: 'orderManagement',
|
||||
// name: 'orderManagement',
|
||||
// component: () => import('views/user/orderManagement/index.vue'),
|
||||
// meta: {
|
||||
// title: '订单管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: false,
|
||||
// isLogin: true
|
||||
// },
|
||||
// },
|
||||
// ]
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
|
@ -574,6 +629,8 @@ const router = createRouter({
|
|||
routes
|
||||
})
|
||||
|
||||
console.log(router, '*****路由')
|
||||
|
||||
// 使页面跳转后滚动条恢复至顶部
|
||||
router.beforeEach((to, from, next) => {
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
export default [
|
||||
{
|
||||
path: '/my-user',
|
||||
name: 'my-user',
|
||||
meta: {
|
||||
title: "系统管理",
|
||||
},
|
||||
permission: ['1', '2'],
|
||||
component: () => import('views/user/index.vue'),
|
||||
children: [
|
||||
{
|
||||
path: 'goodsManagement',
|
||||
name: 'goodsManagement',
|
||||
component: () => import('views/user/goodsManagement/index.vue'),
|
||||
permission: ['1'],
|
||||
meta: {
|
||||
title: '装备管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'orderManagementCz',
|
||||
name: 'orderManagementCz',
|
||||
component: () => import('views/user/orderManagementCz/index.vue'),
|
||||
permission: ['1'],
|
||||
meta: {
|
||||
title: '订单管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'sourcingNeed',
|
||||
name: 'sourcingNeed',
|
||||
component: () => import('views/user/sourcingNeed/index.vue'),
|
||||
permission: ['2'],
|
||||
meta: {
|
||||
title: '需求管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'orderManagement',
|
||||
name: 'orderManagement',
|
||||
component: () => import('views/user/orderManagement/index.vue'),
|
||||
permission: ['2'],
|
||||
meta: {
|
||||
title: '订单管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
]
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
export const cartStore = defineStore('cart', {
|
||||
state: () => {
|
||||
return {
|
||||
cartNum: 0
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
SET_CART_NUM(val: number) {
|
||||
this.cartNum = val
|
||||
}
|
||||
},
|
||||
persist: {
|
||||
enabled: true, // 开启数据缓存
|
||||
strategies: [
|
||||
{
|
||||
// 自定义存储的 key,默认是 store.$id
|
||||
key: 'cart',
|
||||
storage: localStorage, //缓存模式 可选 localStorage sessionStorage
|
||||
paths: ['cartNum',]
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
|
|
@ -25,9 +25,9 @@ export const useStore = defineStore('myUser', {
|
|||
deviceTypeSunList: [], // 设备类型小类
|
||||
leaseAndLesseeList: [],
|
||||
leaseAndLesseeUserList: [
|
||||
{ title: '商品管理', name: 'goodsManagement' },
|
||||
{ title: '装备管理', name: 'goodsManagement' },
|
||||
{ title: '订单管理', name: 'orderManagementCz' },
|
||||
// { title: '商品上下架', name: 'goodsUpdown' },
|
||||
{ title: '接单管理', name: 'accept-orders' },
|
||||
// { title: '机手管理', name: 'operatorManagement' },
|
||||
// { title: '寻源竞价', name: 'sourcingBidding' },
|
||||
// { title: '专区管理', name: 'zoneManag' },
|
||||
|
|
@ -35,7 +35,8 @@ export const useStore = defineStore('myUser', {
|
|||
isType: 1,
|
||||
leaseUserList: [
|
||||
{ title: '订单管理', name: 'orderManagementCz' },
|
||||
{ title: '装备管理管理', name: 'goodsManagement' },
|
||||
{ title: '装备管理', name: 'goodsManagement' },
|
||||
{ title: '接单管理', name: 'accept-orders' },
|
||||
// { title: '商品上下架', name: 'goodsUpdown' },
|
||||
// { title: '机手管理', name: 'operatorManagement' },
|
||||
// { title: '寻源竞价', name: 'sourcingBidding' },
|
||||
|
|
@ -145,7 +146,7 @@ export const useStore = defineStore('myUser', {
|
|||
const leaseList: any = [
|
||||
{ title: '订单管理', name: 'orderManagementCz' },
|
||||
{ title: '装备管理', name: 'goodsManagement' },
|
||||
{ title: '商品上下架', name: 'goodsUpdown' },
|
||||
{ title: '接单管理', name: 'accept-orders' },
|
||||
// { title: '机手管理', name: 'operatorManagement' },
|
||||
// { title: '寻源竞价', name: 'sourcingBidding' },
|
||||
// { title: '专区管理', name: 'zoneManag' },
|
||||
|
|
|
|||
|
|
@ -77,9 +77,8 @@
|
|||
<img :src="goods.picUrl" alt="" />
|
||||
<div class="goods-code">
|
||||
<div style="font-size: 14px; font-weight: bold">{{ goods.deviceName }}</div>
|
||||
|
||||
<!-- <div>装备编号: {{ goods.code }}</div>
|
||||
<div>装备型号: {{ goods.typeName }}</div> -->
|
||||
<div>装备编号: {{ goods.code }}</div>
|
||||
<div>装备型号: {{ goods.typeName }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ const equipBaseInfoList = reactive([
|
|||
},
|
||||
{
|
||||
label: '所属地市',
|
||||
key: 'operateAddress',
|
||||
key: 'areaName',
|
||||
},
|
||||
{
|
||||
label: '预估数量',
|
||||
|
|
|
|||
|
|
@ -369,14 +369,17 @@ import {
|
|||
import { useRoute, useRouter } from 'vue-router'
|
||||
// import Navmenu from '@/components/Navmenu/index.vue'
|
||||
import equipDetailTable from '@/components/equipDetailTable.vue'
|
||||
import { cartStore } from 'store/cart'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { mainStore } from '@/store/main'
|
||||
import { getBookCarDetailsApi } from 'http/api/home/index'
|
||||
|
||||
const router = useRouter()
|
||||
const route: any = useRoute()
|
||||
const store = mainStore()
|
||||
const ruleFormRef = ref()
|
||||
const pageParams = route.params
|
||||
const cart = cartStore()
|
||||
|
||||
console.log(pageParams, 'pageParams')
|
||||
const backPath = ref<any>('')
|
||||
|
|
@ -881,14 +884,14 @@ const onAddCart = async () => {
|
|||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
message: `预约车加入成功`,
|
||||
})
|
||||
getData()
|
||||
const res: any = await getBookCarDetailsApi()
|
||||
cart.SET_CART_NUM(res.data.length)
|
||||
} else {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
duration: 1000,
|
||||
message: res.msg,
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,9 +14,11 @@
|
|||
|
||||
<el-row class="cart-th">
|
||||
<el-col :span="2">
|
||||
<div>
|
||||
<el-checkbox v-model="allChecked" @change="onChangeAll" :key="allKey"> 全选 </el-checkbox>
|
||||
</div>
|
||||
<!-- <div>
|
||||
<el-checkbox v-model="allChecked" @change="onChangeAll" :key="allKey">
|
||||
全选
|
||||
</el-checkbox>
|
||||
</div> -->
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div>装备信息</div>
|
||||
|
|
@ -67,10 +69,7 @@
|
|||
</div> -->
|
||||
</el-col>
|
||||
<el-col :span="9" class="goods-info">
|
||||
<img
|
||||
src="https://fc1tn.baidu.com/it/u=4185529537,1682541874&fm=202&src=766&fc=tdmatt&mola=new&crop=v1"
|
||||
alt=""
|
||||
/>
|
||||
<img :src="item.picUrl" alt="" />
|
||||
<div class="goods-code">
|
||||
<div style="font-size: 14px; font-weight: bold">{{ item.deviceName }}</div>
|
||||
<div>装备编号: {{ item.code }}</div>
|
||||
|
|
@ -97,22 +96,23 @@
|
|||
</el-col>
|
||||
<el-col :span="2">
|
||||
<div class="red-font" style="color: #0062ff">
|
||||
{{ item.lease_day }}
|
||||
{{ item.days }}
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
<div>
|
||||
<el-input-number
|
||||
v-model="item.goods_num"
|
||||
style="width: 100px;margin-left: 10px;"
|
||||
:min="1" :max="item.deviceCount"
|
||||
v-model="item.num"
|
||||
style="width: 100px; margin-left: 10px"
|
||||
:min="1"
|
||||
:max="item.deviceCount"
|
||||
size="small"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
<div class="red-font" style="margin-left: 20px;">
|
||||
{{ item.goods_num * item.dayLeasePrice * item.lease_day }}
|
||||
<div class="red-font" style="margin-left: 20px">
|
||||
{{ item.num * item.dayLeasePrice * item.days }}
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
|
|
@ -174,7 +174,8 @@
|
|||
import Header from '../../components/header/index.vue'
|
||||
import FooterInfo from '../../components/FooterInfo/index.vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { getBookCarDetailByMaId,submitBookCarApi } from '../../http/api/order/index'
|
||||
import { getBookCarDetailByMaId, submitBookCarApi } from '../../http/api/order/index'
|
||||
import { getDetail } from 'http/api/equip'
|
||||
import moment from 'moment'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
const router = useRouter()
|
||||
|
|
@ -186,39 +187,59 @@ const protocolChecked = ref<boolean>(false)
|
|||
|
||||
const orderList = ref<any>([])
|
||||
|
||||
const getOrderListData = async () => {
|
||||
const getOrderListData = async () => {
|
||||
const addParams = {
|
||||
maId: Number(pageParams.maId)
|
||||
maId: Number(pageParams.maId),
|
||||
}
|
||||
const res: any = await getBookCarDetailByMaId(addParams)
|
||||
console.log(res, '----')
|
||||
const res: any = await getDetail(route.query.id, false)
|
||||
console.log(res, '装备详情')
|
||||
orderList.value = []
|
||||
// orderList.value = res.data
|
||||
|
||||
orderList.value = res.data
|
||||
const { companyName, person, picUrl, personPhone, deviceName, code, typeName, dayLeasePrice } =
|
||||
res.data
|
||||
|
||||
orderList.value.forEach((e: any) => {
|
||||
e.isChecked = false;
|
||||
e.goods_num = 1;
|
||||
e.lease_day = 1;
|
||||
// e.devInfoVoList.forEach((j: any) => {
|
||||
// j.isChecked = false
|
||||
// })
|
||||
})
|
||||
// 组装参数
|
||||
const orderInfo = {
|
||||
companyName,
|
||||
person,
|
||||
personPhone,
|
||||
deviceName,
|
||||
code,
|
||||
typeName,
|
||||
picUrl,
|
||||
rentBeginTime: '',
|
||||
rentEndTime: '',
|
||||
lease_date: '',
|
||||
dayLeasePrice,
|
||||
days: 0,
|
||||
num: 1,
|
||||
}
|
||||
|
||||
console.log(orderList.value, '***********')
|
||||
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(() => {
|
||||
setTimeout(()=>{
|
||||
setTimeout(() => {
|
||||
getOrderListData()
|
||||
},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')
|
||||
item.lease_day = moment(e[1]).diff(e[0], 'day')
|
||||
}
|
||||
|
||||
// 删除按钮
|
||||
|
|
@ -263,20 +284,20 @@ const allChecked = computed(() => {
|
|||
// 已勾选的装备数量
|
||||
const amountDevice = computed(() => {
|
||||
let amountNum = 0
|
||||
orderList.value.forEach((e) => {
|
||||
orderList.value.forEach((e) => {
|
||||
if (e.isChecked) {
|
||||
amountNum++
|
||||
}
|
||||
}
|
||||
})
|
||||
return amountNum
|
||||
})
|
||||
// 已勾选的装备数量
|
||||
const amountDeviceList = computed(() => {
|
||||
let selectList: any = []
|
||||
orderList.value.forEach((e: any) => {
|
||||
orderList.value.forEach((e: any) => {
|
||||
if (e.isChecked) {
|
||||
selectList.push(e)
|
||||
}
|
||||
}
|
||||
})
|
||||
return selectList
|
||||
})
|
||||
|
|
@ -284,17 +305,16 @@ const amountDeviceList = computed(() => {
|
|||
// 计算订单总价格
|
||||
const orderAmountPice = computed(() => {
|
||||
let orderAmountPice = 0
|
||||
orderList.value.forEach((e) => {
|
||||
orderList.value.forEach((e) => {
|
||||
if (e.isChecked) {
|
||||
orderAmountPice = e.goods_num * e.dayLeasePrice * e.lease_day + orderAmountPice
|
||||
}
|
||||
}
|
||||
})
|
||||
return orderAmountPice
|
||||
})
|
||||
|
||||
// 提交按钮
|
||||
const onCartSubmit = async () => {
|
||||
|
||||
ElMessage.closeAll()
|
||||
if (amountDevice.value < 1) {
|
||||
ElMessage({
|
||||
|
|
@ -304,8 +324,8 @@ const onCartSubmit = async () => {
|
|||
})
|
||||
return
|
||||
}
|
||||
console.log(amountDeviceList.value[0].lease_date==undefined)
|
||||
if (amountDeviceList.value[0].lease_date==undefined) {
|
||||
console.log(amountDeviceList.value[0].lease_date == undefined)
|
||||
if (amountDeviceList.value[0].lease_date == undefined) {
|
||||
ElMessage({
|
||||
showClose: false,
|
||||
message: '请选择租期',
|
||||
|
|
@ -321,8 +341,7 @@ const onCartSubmit = async () => {
|
|||
})
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
|
||||
console.log('提交订单')
|
||||
// 组装参数
|
||||
const detailsList = amountDeviceList.value.map((e: any) => {
|
||||
|
|
@ -343,7 +362,7 @@ const onCartSubmit = async () => {
|
|||
cost: orderAmountPice.value,
|
||||
detailsList,
|
||||
}
|
||||
console.log('submitParams',submitParams)
|
||||
console.log('submitParams', submitParams)
|
||||
const res: any = await submitBookCarApi(submitParams)
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
|
|
@ -354,9 +373,8 @@ const onCartSubmit = async () => {
|
|||
allKey.value++
|
||||
router.push({
|
||||
path: `/equipDetail/${pageParams.maId}`,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,692 @@
|
|||
<template>
|
||||
<!-- 寻源需求 -->
|
||||
<el-form
|
||||
:inline="true"
|
||||
size="default"
|
||||
label-width="0"
|
||||
ref="searchFormRef"
|
||||
:model="searchParams"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="leaseName">
|
||||
<el-input
|
||||
style="width: 100%"
|
||||
placeholder="请输入需求名称"
|
||||
v-model="searchParams.leaseName"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="leaseCode">
|
||||
<el-input
|
||||
style="width: 100%"
|
||||
placeholder="请输入需求编号"
|
||||
v-model="searchParams.leaseCode"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="4">
|
||||
<el-form-item prop="leaseStatus">
|
||||
<el-select
|
||||
clearable
|
||||
style="width: 100%"
|
||||
placeholder="选择需求状态"
|
||||
v-model="searchParams.leaseStatus"
|
||||
>
|
||||
<el-option label="待接单" :value="0" />
|
||||
<el-option label="已接单" :value="1" />
|
||||
<el-option label="已到期" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="endTime"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
value-format="YYYY-MM-DD"
|
||||
start-placeholder="截止开始日期"
|
||||
end-placeholder="截止结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-date-picker
|
||||
v-model="releaseTime"
|
||||
style="width: 100%"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
value-format="YYYY-MM-DD"
|
||||
start-placeholder="接单开始日期"
|
||||
end-placeholder="接单结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item>
|
||||
<el-button @click="getLeaseListData" type="primary">查询</el-button>
|
||||
<el-button @click="onReset">重置</el-button>
|
||||
<!-- <el-button
|
||||
@click="
|
||||
() => {
|
||||
addOrEditDialogVisible = true
|
||||
isRepublish = true
|
||||
dialogTitle = '新增'
|
||||
}
|
||||
"
|
||||
style="background-color: #17907f; color: #fff"
|
||||
>
|
||||
需求新建
|
||||
</el-button> -->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<!-- 表格 -->
|
||||
<el-table
|
||||
:data="leaseList"
|
||||
show-overflow-tooltip
|
||||
:header-cell-style="{
|
||||
background: '#fafafa',
|
||||
color: '#333',
|
||||
}"
|
||||
>
|
||||
<el-table-column align="center" label="序号" type="index" width="80" />
|
||||
<el-table-column align="center" prop="leaseCode" label="需求编号" />
|
||||
<el-table-column align="center" prop="leaseName" label="需求名称" />
|
||||
<el-table-column align="center" prop="areaName" label="项目所在地" />
|
||||
<el-table-column align="center" prop="publishUser" label="发布人" />
|
||||
<el-table-column align="center" prop="orderUser" label="操作人" />
|
||||
<el-table-column align="center" prop="endTime" label="需求截止日期" />
|
||||
<el-table-column align="center" prop="orderTime" label="接单时间" />
|
||||
<!-- <el-table-column align="center" prop="leaseStatusName" label="需求状态" />
|
||||
<el-table-column align="center" label="操作" :width="220">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
text
|
||||
size="small"
|
||||
type="primary"
|
||||
v-if="row.leaseStatus === 2"
|
||||
@click="onRepublish(row.id, false)"
|
||||
>
|
||||
重新发布
|
||||
</el-button>
|
||||
<el-button
|
||||
text
|
||||
size="small"
|
||||
type="primary"
|
||||
v-if="row.leaseStatus === 2"
|
||||
@click="onRepublish(row.id, true)"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-popconfirm
|
||||
width="220"
|
||||
:icon="InfoFilled"
|
||||
icon-color="#626AEF"
|
||||
title="确定删除该项需求吗?"
|
||||
@confirm="onDelete(row.id)"
|
||||
v-if="row.leaseStatus != 1"
|
||||
>
|
||||
<template #reference>
|
||||
<el-button size="small" text type="danger"> 删除 </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>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
|
||||
<!-- <el-pagination
|
||||
size="small"
|
||||
background
|
||||
layout="prev, pager, next"
|
||||
:page-size="searchParams.pageSize"
|
||||
:total="total"
|
||||
class="mt-4"
|
||||
@current-change="onCurrentChange"
|
||||
v-if="total > 0"
|
||||
/> -->
|
||||
|
||||
<el-pagination
|
||||
style="text-align: right"
|
||||
background
|
||||
size="small"
|
||||
:total="total"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
v-model:page-size="searchParams.pageSize"
|
||||
v-model:current-page="searchParams.pageNum"
|
||||
layout="total, prev, pager, next,sizes"
|
||||
@size-change="getLeaseListData"
|
||||
@current-change="getLeaseListData"
|
||||
/>
|
||||
|
||||
<!-- 新增修改对话框 -->
|
||||
<el-dialog
|
||||
:title="dialogTitle"
|
||||
width="60%"
|
||||
align-center
|
||||
destroy-on-close
|
||||
v-model="addOrEditDialogVisible"
|
||||
@close="onClose"
|
||||
>
|
||||
<el-form
|
||||
label-width="auto"
|
||||
label-position="right"
|
||||
ref="addOrEditFormRef"
|
||||
:model="addOrEditForm"
|
||||
:rules="addOrEditFormRules"
|
||||
>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="需求名称" prop="leaseName">
|
||||
<el-input v-model="addOrEditForm.leaseName" placeholder="请输入需求名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="装备类目" prop="typeIds">
|
||||
<el-cascader
|
||||
clearable
|
||||
style="width: 100%"
|
||||
:options="classOptions"
|
||||
:show-all-levels="false"
|
||||
placeholder="请选择装备类目"
|
||||
v-model="addOrEditForm.typeIds"
|
||||
:props="{
|
||||
value: 'id',
|
||||
label: 'name',
|
||||
checkStrictly: true,
|
||||
}"
|
||||
@change="onChangeClass"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="租赁公司" prop="companyId">
|
||||
<el-select
|
||||
clearable
|
||||
style="width: 100%"
|
||||
placeholder="请选择租赁公司"
|
||||
v-model="addOrEditForm.companyId"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in companyOptions"
|
||||
:key="item.companyId"
|
||||
:label="item.companyName"
|
||||
:value="item.companyId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人" prop="person">
|
||||
<el-input
|
||||
clearable
|
||||
placeholder="请输入联系人"
|
||||
v-model="addOrEditForm.person"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系电话" prop="personPhone">
|
||||
<el-input
|
||||
clearable
|
||||
placeholder="请输入联系电话"
|
||||
v-model="addOrEditForm.personPhone"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="预估租期(天)" prop="leaseDay">
|
||||
<el-input-number
|
||||
:min="1"
|
||||
clearable
|
||||
:max="9999"
|
||||
style="width: 100%"
|
||||
v-model="addOrEditForm.leaseDay"
|
||||
placeholder="请输入预估租期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="预估数量" prop="leaseNum">
|
||||
<el-input-number
|
||||
clearable
|
||||
:min="1"
|
||||
:max="9999"
|
||||
style="width: 100%"
|
||||
v-model="addOrEditForm.leaseNum"
|
||||
placeholder="请输入预估数量"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="需求截止日期" prop="endTime">
|
||||
<el-date-picker
|
||||
clearable
|
||||
type="date"
|
||||
style="width: 100%"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-model="addOrEditForm.endTime"
|
||||
placeholder="请选择需求截止日期"
|
||||
:disabled-date="disabledDate"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目所在地" prop="areaId">
|
||||
<el-select
|
||||
clearable
|
||||
style="width: 100%"
|
||||
placeholder="请选择项目所在地"
|
||||
v-model="addOrEditForm.areaId"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in areaList"
|
||||
:key="item.areaId"
|
||||
:label="item.areaName"
|
||||
:value="item.areaId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="1" style="margin-bottom: 0" class="upload-tip">
|
||||
支持格式:.jpg、.png 单个文件大小不能超过2M,最多可上传4张
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="参考图片/样式">
|
||||
<div class="img-list" v-if="addOrEditForm.fileInfoList.length > 0">
|
||||
<div
|
||||
v-for="(item, index) in addOrEditForm.fileInfoList"
|
||||
:key="item.id"
|
||||
class="img-items"
|
||||
>
|
||||
<img :src="item.fileUrl" alt="" />
|
||||
|
||||
<div class="mask-img">
|
||||
<el-icon class="delete-icon" @click="onDeleteImg(index)"
|
||||
><DeleteFilled
|
||||
/></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<UploadComponentNew
|
||||
:maxSize="2"
|
||||
:minLimit="minLimit"
|
||||
:max-limit="4"
|
||||
width="120px"
|
||||
height="120px"
|
||||
:autoUpload="true"
|
||||
:multiple="true"
|
||||
:fileListN="addOrEditForm.fileInfoList"
|
||||
listType="picture-card"
|
||||
:acceptTypeList="['.jpg', '.png']"
|
||||
:actionUrl="uploadUrl"
|
||||
@onFileChange="onFileChange"
|
||||
>
|
||||
<template v-slot:default>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
</template>
|
||||
</UploadComponentNew>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="需求描述" prop="description">
|
||||
<el-input
|
||||
clearable
|
||||
type="textarea"
|
||||
placeholder="请输入需求描述"
|
||||
v-model="addOrEditForm.description"
|
||||
:autosize="{ minRows: 6, maxRows: 10 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="onCancel">取消</el-button>
|
||||
<el-button type="primary" @click="onSubmit(false)" v-if="isSave"> 保存 </el-button>
|
||||
<el-button type="primary" @click="onSubmit(true)"> 提交 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import UploadComponentNew from 'components/uploadComponentNew/index.vue'
|
||||
import { getCompanyListApi, getGoodsClassListApi, getAreaApi } from 'http/api/home'
|
||||
import { getAcceptOrdersListApi } from 'http/api/sourcing/index'
|
||||
import { InfoFilled } from '@element-plus/icons-vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const uploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
|
||||
const addOrEditDialogVisible = ref(false)
|
||||
const companyOptions = ref<any>([])
|
||||
const classOptions = ref<any>([])
|
||||
const addOrEditFormRef = ref<any>(null)
|
||||
const searchFormRef = ref<any>(null)
|
||||
const leaseList = ref<any>([])
|
||||
const isRepublish = ref(true)
|
||||
const isSave = ref(false)
|
||||
const total = ref(0)
|
||||
const endTime = ref([])
|
||||
const areaList = ref<any>([])
|
||||
const releaseTime = ref([])
|
||||
const dialogTitle = ref('新增')
|
||||
const fileListTemp = ref<any>([])
|
||||
const props2 = {
|
||||
multiple: true,
|
||||
checkStrictly: true,
|
||||
}
|
||||
|
||||
const searchParams = reactive({
|
||||
leaseName: '',
|
||||
leaseCode: '',
|
||||
finishStartTime: '',
|
||||
finishEndTime: '',
|
||||
orderStartTime: '',
|
||||
orderEndTime: '',
|
||||
pageSize: 1,
|
||||
pageNum: 10,
|
||||
})
|
||||
const addOrEditForm = ref<any>({
|
||||
leaseName: '',
|
||||
typeId: '',
|
||||
typeIds: [],
|
||||
companyId: '',
|
||||
person: '',
|
||||
personPhone: '',
|
||||
leaseDay: 1,
|
||||
leaseNum: 1,
|
||||
endTime: '',
|
||||
description: '',
|
||||
isSubmit: '',
|
||||
fileInfoList: [],
|
||||
areaId: '',
|
||||
})
|
||||
const addOrEditFormTemp = ref<any>({
|
||||
leaseName: '',
|
||||
typeId: '',
|
||||
typeIds: [],
|
||||
companyId: '',
|
||||
person: '',
|
||||
personPhone: '',
|
||||
leaseDay: 1,
|
||||
leaseNum: 1,
|
||||
endTime: '',
|
||||
description: '',
|
||||
isSubmit: '',
|
||||
fileInfoList: fileListTemp ? fileListTemp : [],
|
||||
areaId: '',
|
||||
})
|
||||
|
||||
const addOrEditFormRules = reactive({
|
||||
leaseName: [{ required: true, message: '请输入需求名称', trigger: 'blur' }],
|
||||
typeIds: [{ required: true, message: '请选择装备类目', trigger: 'change' }],
|
||||
companyId: [{ required: true, message: '请选择租赁公司', trigger: 'change' }],
|
||||
person: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
|
||||
personPhone: [
|
||||
{ required: true, message: '请输入联系电话', trigger: 'blur' },
|
||||
{
|
||||
pattern: /^1[3456789]\d{9}$/,
|
||||
message: '请输入正确的联系电话',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
leaseDay: [{ required: true, message: '请输入预估租期', trigger: 'blur' }],
|
||||
leaseNum: [{ required: true, message: '请输入预估数量', trigger: 'blur' }],
|
||||
endTime: [{ required: true, message: '请选择需求截止日期', trigger: 'change' }],
|
||||
fileInfoList: [{ required: true, message: '请上传参考图片', trigger: 'blur' }],
|
||||
areaId: [{ required: true, message: '请选择项目所在地', trigger: 'change' }],
|
||||
})
|
||||
|
||||
const disabledDate = (date: any) => {
|
||||
const today = new Date()
|
||||
// 禁用今天之前的日期
|
||||
return date.getTime() < today.getTime()
|
||||
}
|
||||
|
||||
const getClassAndCompanyData = async () => {
|
||||
const classResult: any = await getGoodsClassListApi()
|
||||
const companyResult: any = await getCompanyListApi()
|
||||
|
||||
classOptions.value = classResult.data
|
||||
companyOptions.value = companyResult.data
|
||||
}
|
||||
|
||||
// 获取列表
|
||||
const getLeaseListData = async () => {
|
||||
if (endTime.value.length > 0) {
|
||||
searchParams.finishStartTime = endTime.value[0]
|
||||
searchParams.finishEndTime = endTime.value[1]
|
||||
}
|
||||
if (releaseTime.value.length > 0) {
|
||||
searchParams.orderStartTime = releaseTime.value[0]
|
||||
searchParams.orderEndTime = releaseTime.value[1]
|
||||
}
|
||||
const { data: res }: any = await getAcceptOrdersListApi(searchParams)
|
||||
|
||||
leaseList.value = res.rows
|
||||
total.value = res.total
|
||||
}
|
||||
|
||||
const getAreaData = async () => {
|
||||
const res: any = await getAreaApi()
|
||||
areaList.value = res.data
|
||||
}
|
||||
|
||||
// 重置
|
||||
const onReset = () => {
|
||||
endTime.value = []
|
||||
releaseTime.value = []
|
||||
searchParams.finishStartTime = ''
|
||||
searchParams.finishEndTime = ''
|
||||
searchParams.orderStartTime = ''
|
||||
searchParams.orderEndTime = ''
|
||||
searchParams.pageNum = 1
|
||||
searchParams.pageSize = 10
|
||||
searchFormRef.value.resetFields()
|
||||
getLeaseListData()
|
||||
}
|
||||
// 删除
|
||||
const onDelete = async (id: any) => {
|
||||
const res: any = await deleteLeaseInfoApi({ id })
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '删除成功',
|
||||
})
|
||||
getLeaseListData()
|
||||
}
|
||||
}
|
||||
// 重新发布
|
||||
const onRepublish = async (id: any, type: any) => {
|
||||
dialogTitle.value = '编辑'
|
||||
isRepublish.value = false
|
||||
isSave.value = type
|
||||
const res: any = await getLeaseDetailsByIdApi({ id })
|
||||
const {
|
||||
leaseName,
|
||||
typeId,
|
||||
companyId,
|
||||
person,
|
||||
personPhone,
|
||||
leaseDay,
|
||||
leaseNum,
|
||||
endTime,
|
||||
description,
|
||||
typeIds,
|
||||
fileInfoList,
|
||||
areaId,
|
||||
} = res.data
|
||||
|
||||
Object.assign(addOrEditForm.value, {
|
||||
leaseName,
|
||||
typeId,
|
||||
companyId,
|
||||
person,
|
||||
personPhone,
|
||||
leaseDay,
|
||||
leaseNum,
|
||||
endTime,
|
||||
description,
|
||||
typeIds,
|
||||
id,
|
||||
fileInfoList: fileInfoList ? fileInfoList : [],
|
||||
areaId,
|
||||
})
|
||||
|
||||
addOrEditForm.value.typeIds = addOrEditForm.value.typeIds.map((e: any) => {
|
||||
return (e *= 1)
|
||||
})
|
||||
|
||||
addOrEditDialogVisible.value = true
|
||||
}
|
||||
|
||||
// 提交
|
||||
const onSubmit = (type: boolean) => {
|
||||
addOrEditFormRef.value.validate(async (valid: any) => {
|
||||
if (valid) {
|
||||
addOrEditForm.value.isSubmit = type
|
||||
addOrEditForm.value.typeId =
|
||||
addOrEditForm.value.typeIds[addOrEditForm.value.typeIds.length - 1]
|
||||
|
||||
addOrEditForm.value.fileInfoList.push(...fileListTemp.value)
|
||||
const SUBMIT_API = isRepublish.value ? addLeaseInfoApi : editLeaseInfoApi
|
||||
const res: any = await SUBMIT_API(addOrEditForm.value)
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '提交成功',
|
||||
})
|
||||
|
||||
addOrEditDialogVisible.value = false
|
||||
getLeaseListData()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 自定义事件
|
||||
const onFileChange = (fileList: any) => {
|
||||
fileListTemp.value = []
|
||||
fileListTemp.value = fileList.map((e: any) => {
|
||||
return {
|
||||
fileName: e.name,
|
||||
fileUrl: e.url,
|
||||
}
|
||||
})
|
||||
|
||||
// addOrEditForm.value.fileInfoList.push(...fileListTemp.value)
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
const onCancel = () => {
|
||||
addOrEditDialogVisible.value = false
|
||||
}
|
||||
const onClose = () => {
|
||||
addOrEditFormRef.value.resetFields()
|
||||
addOrEditForm.value = JSON.parse(JSON.stringify(addOrEditFormTemp.value))
|
||||
fileListTemp.value = []
|
||||
}
|
||||
const onDeleteImg = (index: any) => {
|
||||
addOrEditForm.value.fileInfoList.splice(index, 1)
|
||||
}
|
||||
|
||||
const minLimit = computed(() => {
|
||||
return addOrEditForm.value.fileInfoList.length
|
||||
})
|
||||
|
||||
const onChangeClass = (val: any) => {
|
||||
console.log(val, '***')
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getClassAndCompanyData()
|
||||
getLeaseListData()
|
||||
getAreaData()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
:deep.upload-tip .el-form-item__label {
|
||||
color: transparent;
|
||||
}
|
||||
.el-pagination {
|
||||
justify-content: flex-end;
|
||||
padding: 5px 0;
|
||||
}
|
||||
:deep.el-pagination.is-background .el-pager li.is-active {
|
||||
background-color: #3cb4a6;
|
||||
}
|
||||
:deep.el-form--inline .el-form-item {
|
||||
margin-right: 6px;
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
.img-list {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.img-items {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
margin-right: 8px;
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.mask-img {
|
||||
visibility: hidden;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #000;
|
||||
opacity: 0.5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.delete-icon {
|
||||
font-size: 20px;
|
||||
cursor: pointer;
|
||||
z-index: 9;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.img-items:hover .mask-img {
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -46,21 +46,43 @@ import imgSrc from '@/assets/img/logo.png'
|
|||
// }
|
||||
|
||||
const handleSelect = (name: any, path: any) => {
|
||||
store.editcurrentMenuItem(name)
|
||||
// store.editcurrentMenuItem(name)
|
||||
router.push({
|
||||
name,
|
||||
})
|
||||
}
|
||||
|
||||
const activeseekingRent = computed(() => {
|
||||
return store.currentMenuType
|
||||
})
|
||||
|
||||
const menuList: any = computed(() => {
|
||||
return store.leaseAndLesseeUserList
|
||||
const isType = computed(() => {
|
||||
return localStorage.getItem('rolesType')
|
||||
})
|
||||
|
||||
const activeMenuItem = computed(() => {
|
||||
return store.leaseAndLesseeUserList[0].name
|
||||
const allList = [
|
||||
{ title: '装备管理', name: 'goodsManagement', permission: ['1'] },
|
||||
{ title: '订单管理', name: 'orderManagementCz', permission: ['1'] },
|
||||
{ title: '接单管理', name: 'accept-orders', permission: ['1'] },
|
||||
{ title: '需求管理', name: 'sourcingNeed', permission: ['2'] },
|
||||
{ title: '订单管理', name: 'orderManagement', permission: ['2'] },
|
||||
]
|
||||
const menuList: any = computed(() => {
|
||||
return allList.filter((e) => e.permission.includes(isType.value))
|
||||
})
|
||||
|
||||
router.push({
|
||||
name: menuList.value[0].name,
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
console.log(route, '**********************')
|
||||
})
|
||||
|
||||
// const activeMenuItem = computed(() => {
|
||||
// return store.leaseAndLesseeUserList[0].name
|
||||
// })
|
||||
|
||||
// watch(route, (newVlaue) => {
|
||||
// if (newVlaue.path.indexOf('myuser') === -1) {
|
||||
// store.editcurrentMenuItem('baseInfo')
|
||||
|
|
@ -115,14 +137,15 @@ const activeMenuItem = computed(() => {
|
|||
</div> -->
|
||||
|
||||
<el-menu
|
||||
router
|
||||
class="el-menu-vertical-demo"
|
||||
@select="handleSelect"
|
||||
:default-active="activeMenuItem"
|
||||
:default-active="route.name"
|
||||
>
|
||||
<el-menu-item v-for="(item, index) in menuList" :key="index" :index="item.name">
|
||||
{{ item.title }}
|
||||
</el-menu-item>
|
||||
<template v-for="(item, index) in menuList" :key="index">
|
||||
<el-menu-item :index="item.name">
|
||||
{{ item.title }}
|
||||
</el-menu-item>
|
||||
</template>
|
||||
</el-menu>
|
||||
</div>
|
||||
<div class="right-content">
|
||||
|
|
|
|||
|
|
@ -1,24 +1,25 @@
|
|||
<template>
|
||||
<el-page-header @click="$router.go(-1)">
|
||||
<template #content>
|
||||
|
||||
</template>
|
||||
<template #content> </template>
|
||||
</el-page-header>
|
||||
<timeLineHorizontal themeColor="#2282fe" :timeLineList="timeLineList.list"></timeLineHorizontal>
|
||||
<el-form label-width="130px" inline="true" style="padding: 0 20px 0px 20px; width: 865px" size="small">
|
||||
<el-form
|
||||
label-width="130px"
|
||||
inline="true"
|
||||
style="padding: 0 20px 0px 20px; width: 865px"
|
||||
size="small"
|
||||
>
|
||||
<!-- <el-form-item label="订单编号" style="width: 600px;">
|
||||
xxxxx
|
||||
</el-form-item> -->
|
||||
<el-form-item label="需求单位" class="table_item">
|
||||
{{ detailsInfo.needCompany }}
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" class="table_item">{{
|
||||
detailsInfo.phone
|
||||
}}</el-form-item>
|
||||
<el-form-item label="联系电话" class="table_item">{{ detailsInfo.phone }}</el-form-item>
|
||||
<el-form-item label="租赁时长" class="table_item">
|
||||
<div style="white-space: nowrap;">
|
||||
{{ detailsInfo.planStartTime }}- {{ getTimeByPoint(detailsInfo.planStartTime, detailsInfo.duration) }}
|
||||
<div style="white-space: nowrap">
|
||||
{{ detailsInfo.planStartTime }}-
|
||||
{{ getTimeByPoint(detailsInfo.planStartTime, detailsInfo.duration) }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备进场地址:" class="table_item">{{
|
||||
|
|
@ -30,9 +31,7 @@
|
|||
<el-form-item label="是否需求机手:" class="table_item">
|
||||
{{ detailsInfo.isMachinist == 0 ? '否' : '是' }}
|
||||
</el-form-item>
|
||||
<el-form-item label="详细地址:" class="table_item">{{
|
||||
detailsInfo.address
|
||||
}}</el-form-item>
|
||||
<el-form-item label="详细地址:" class="table_item">{{ detailsInfo.address }}</el-form-item>
|
||||
<el-form-item label="工期时长:" class="table_item">{{
|
||||
detailsInfo.duration
|
||||
}}</el-form-item>
|
||||
|
|
@ -68,22 +67,25 @@
|
|||
</div> -->
|
||||
<div>
|
||||
<div class="equipMoneyClass">
|
||||
<span>
|
||||
装备
|
||||
</span>
|
||||
<span style="color: #f00">¥
|
||||
</span>
|
||||
<el-input v-model.trim="equipMoneyInfo.equipMoney" placeholder="请输入企业类型" clearable maxlength="30" />
|
||||
<span> 装备 </span>
|
||||
<span style="color: #f00">¥ </span>
|
||||
<el-input
|
||||
v-model.trim="equipMoneyInfo.equipMoney"
|
||||
placeholder="请输入企业类型"
|
||||
clearable
|
||||
maxlength="30"
|
||||
/>
|
||||
/月
|
||||
</div>
|
||||
<div v-if="detailsInfo.isMachinist != 0" class="equipMoneyClass">
|
||||
<span>
|
||||
机手
|
||||
</span>
|
||||
<span style="color: #f00">¥
|
||||
</span>
|
||||
<el-input v-model.trim="equipMoneyInfo.phoneMoney" placeholder="请输入企业类型" clearable
|
||||
maxlength="30" />/月
|
||||
<span> 机手 </span>
|
||||
<span style="color: #f00">¥ </span>
|
||||
<el-input
|
||||
v-model.trim="equipMoneyInfo.phoneMoney"
|
||||
placeholder="请输入企业类型"
|
||||
clearable
|
||||
maxlength="30"
|
||||
/>/月
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -103,8 +105,14 @@
|
|||
</el-form-item> -->
|
||||
<el-form-item label="订单合同:" style="width: 800px" v-if="stepVal == '1'">
|
||||
<div>
|
||||
<uploadComponent :maxLimit="1" listType="text" :acceptTypeList="['.pdf']" :scuccesCallback="scuccesCallback"
|
||||
height="32px" width="360px">
|
||||
<uploadComponent
|
||||
:maxLimit="1"
|
||||
listType="text"
|
||||
:acceptTypeList="['.pdf']"
|
||||
:scuccesCallback="scuccesCallback"
|
||||
height="32px"
|
||||
width="360px"
|
||||
>
|
||||
<template v-slot:default>
|
||||
<el-button type="primary">上传文件</el-button>
|
||||
</template>
|
||||
|
|
@ -114,19 +122,39 @@
|
|||
</div>
|
||||
</el-form-item>
|
||||
<div v-else-if="stepVal == '2'">
|
||||
<el-form :model="submitInfo" ref="ruleFormRef" :rules="formConfirmRules" label-width="136px">
|
||||
<el-form
|
||||
:model="submitInfo"
|
||||
ref="ruleFormRef"
|
||||
:rules="formConfirmRules"
|
||||
label-width="136px"
|
||||
>
|
||||
<el-form-item label="机手姓名:" style="width: 300px" prop="driver">
|
||||
<!-- <el-select v-model="submitInfo.driver" placeholder="请选择机手姓名" clearable filterable style="width: 100%">
|
||||
<el-option v-for="item in driverInfo.list" :key="item.value" :label="item.label"
|
||||
:value="item.value" />
|
||||
</el-select> -->
|
||||
<el-input v-model.trim="submitInfo.driver" placeholder="请输入机手姓名" clearable maxlength="30" />
|
||||
<el-input
|
||||
v-model.trim="submitInfo.driver"
|
||||
placeholder="请输入机手姓名"
|
||||
clearable
|
||||
maxlength="30"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话:" style="width: 300px" prop="driverPhone">
|
||||
<el-input v-model.trim="submitInfo.driverPhone" placeholder="请输入联系电话" clearable maxlength="30" />
|
||||
<el-input
|
||||
v-model.trim="submitInfo.driverPhone"
|
||||
placeholder="请输入联系电话"
|
||||
clearable
|
||||
maxlength="30"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物流司机电话:" style="width: 300px" prop="deliverPhone">
|
||||
<el-input v-model.trim="submitInfo.deliverPhone" placeholder="请输入物流司机电话" clearable maxlength="30" />
|
||||
<el-input
|
||||
v-model.trim="submitInfo.deliverPhone"
|
||||
placeholder="请输入物流司机电话"
|
||||
clearable
|
||||
maxlength="30"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
|
@ -172,7 +200,7 @@ import uploadComponent from 'components/uploadComponent/index.vue'
|
|||
import { ElMessageBoxOpert } from 'utils/elementCom'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { apiOrderInfoDetails, apiUpdateOrderInfo, apiOrderReject } from 'http/api/usercenter/order'
|
||||
import { getNewDay } from "utils/time"
|
||||
import { getNewDay } from 'utils/time'
|
||||
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
|
@ -188,14 +216,14 @@ const tableInfo = reactive({
|
|||
v_equipment_address: '',
|
||||
devicePrice: '',
|
||||
machinistPrice: '',
|
||||
imgUrl: ''
|
||||
imgUrl: '',
|
||||
})
|
||||
|
||||
const errorTipFlag = ref(0)
|
||||
|
||||
const equipMoneyInfo = reactive({
|
||||
equipMoney: '',
|
||||
phoneMoney: ''
|
||||
phoneMoney: '',
|
||||
})
|
||||
|
||||
const stepVal = ref('0')
|
||||
|
|
@ -205,19 +233,19 @@ const timeLineList = reactive({
|
|||
{
|
||||
title: '订单需求审核',
|
||||
content: '开工阶段',
|
||||
done: true
|
||||
done: true,
|
||||
},
|
||||
{
|
||||
title: '合同上传',
|
||||
content: '请填写公司详细信息',
|
||||
done: false
|
||||
done: false,
|
||||
},
|
||||
{
|
||||
title: '装备发货',
|
||||
content: '请填写公司财务信息',
|
||||
done: false
|
||||
}
|
||||
]
|
||||
done: false,
|
||||
},
|
||||
],
|
||||
})
|
||||
|
||||
// const driverInfo = reactive({
|
||||
|
|
@ -235,20 +263,12 @@ const timeLineList = reactive({
|
|||
const submitInfo = reactive({
|
||||
driver: '',
|
||||
driverPhone: '',
|
||||
deliverPhone: ''
|
||||
deliverPhone: '',
|
||||
})
|
||||
const formConfirmRules = reactive<FormRules<any>>({
|
||||
driver: [
|
||||
{ required: true, message: '请选择机手姓名', trigger: 'change' },
|
||||
],
|
||||
driverPhone: [
|
||||
{ required: true, message: '请输入联系电话', trigger: 'blur' },
|
||||
],
|
||||
deliverPhone: [
|
||||
{ required: true, message: '请输入物流司机电话', trigger: 'blur' },
|
||||
],
|
||||
|
||||
|
||||
driver: [{ required: true, message: '请选择机手姓名', trigger: 'change' }],
|
||||
driverPhone: [{ required: true, message: '请输入联系电话', trigger: 'blur' }],
|
||||
deliverPhone: [{ required: true, message: '请输入物流司机电话', trigger: 'blur' }],
|
||||
})
|
||||
|
||||
let fileItem: any = null
|
||||
|
|
@ -256,13 +276,13 @@ const demandConfirmFn = () => {
|
|||
if (!equipMoneyInfo.equipMoney) {
|
||||
return ElMessage({
|
||||
type: 'warning',
|
||||
message: '请输入装备租金'
|
||||
message: '请输入装备租金',
|
||||
})
|
||||
}
|
||||
if (!equipMoneyInfo.phoneMoney) {
|
||||
return ElMessage({
|
||||
type: 'warning',
|
||||
message: '请输入机手租金'
|
||||
message: '请输入机手租金',
|
||||
})
|
||||
}
|
||||
stepVal.value = '1'
|
||||
|
|
@ -272,18 +292,17 @@ const rejectCallBack = async (row: any, value: any) => {
|
|||
console.log('editCallBack', row, value)
|
||||
let params = {
|
||||
rejectReason: value.value,
|
||||
orderId: detailsInfo.orderId
|
||||
orderId: detailsInfo.orderId,
|
||||
}
|
||||
const res: any = await apiOrderReject(params)
|
||||
if (res.code == 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '驳回成功'
|
||||
message: '驳回成功',
|
||||
})
|
||||
}
|
||||
}
|
||||
const demandRejectFn = (row = "") => {
|
||||
|
||||
const demandRejectFn = (row = '') => {
|
||||
ElMessageBoxOpert(
|
||||
'驳回原因',
|
||||
'填写驳回原因',
|
||||
|
|
@ -298,20 +317,16 @@ const demandRejectFn = (row = "") => {
|
|||
rejectCallBack,
|
||||
row,
|
||||
'textarea',
|
||||
'dangerC'
|
||||
'dangerC',
|
||||
)
|
||||
}
|
||||
|
||||
const nextFn = () => {
|
||||
|
||||
if (!fileItem) {
|
||||
errorTipFlag.value = 2
|
||||
|
||||
} else {
|
||||
stepVal.value = '2'
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
const detailsInfo: any = reactive({})
|
||||
const initApiOrderDetails = async () => {
|
||||
|
|
@ -331,29 +346,28 @@ const initApiOrderDetails = async () => {
|
|||
tableInfo.devicePrice = deviceInfo.deviceMonthLeasePrice
|
||||
tableInfo.machinistPrice = deviceInfo.machinistPrice
|
||||
tableInfo.imgUrl = deviceInfo.devicePicUrl
|
||||
|
||||
}
|
||||
|
||||
|
||||
const confirmSendFn = () => {
|
||||
if (!ruleFormRef) return
|
||||
ruleFormRef.value.validate(async (valid: any) => {
|
||||
if (valid) {
|
||||
let params = {
|
||||
orderId: detailsInfo.orderId,
|
||||
contractUrl: 'https://hzgyp-prod-1259451974.cos.ap-guangzhou.myqcloud.com/enterprise/serviceAgreement.pdf',//合同地址 写死
|
||||
machinistName: submitInfo.driver,//机手姓名
|
||||
logisticsPhone: submitInfo.deliverPhone,//物流电话
|
||||
phone: submitInfo.driverPhone,//机首电话
|
||||
contractUrl:
|
||||
'https://hzgyp-prod-1259451974.cos.ap-guangzhou.myqcloud.com/enterprise/serviceAgreement.pdf', //合同地址 写死
|
||||
machinistName: submitInfo.driver, //机手姓名
|
||||
logisticsPhone: submitInfo.deliverPhone, //物流电话
|
||||
phone: submitInfo.driverPhone, //机首电话
|
||||
leasePrice: equipMoneyInfo.equipMoney,
|
||||
machinistPrice: equipMoneyInfo.phoneMoney
|
||||
machinistPrice: equipMoneyInfo.phoneMoney,
|
||||
}
|
||||
const res = await apiUpdateOrderInfo(params)
|
||||
console.log("resapiUpdateOrderInfo", res)
|
||||
console.log('resapiUpdateOrderInfo', res)
|
||||
|
||||
ElMessage({
|
||||
message: '已经确认发货',
|
||||
type: 'success'
|
||||
type: 'success',
|
||||
})
|
||||
stepVal.value = '3'
|
||||
timeLineList.list[2].done = true
|
||||
|
|
@ -363,14 +377,13 @@ const confirmSendFn = () => {
|
|||
return false
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
const backFn = () => {
|
||||
router.go(-1)
|
||||
}
|
||||
|
||||
const scuccesCallback = (ev: any) => {
|
||||
console.log("list0000", ev)
|
||||
console.log('list0000', ev)
|
||||
fileItem = ev
|
||||
errorTipFlag.value = 1
|
||||
}
|
||||
|
|
@ -381,11 +394,9 @@ const getTimeByPoint = (start: any, duration: any) => {
|
|||
|
||||
const totalMoneyFn = () => {
|
||||
return Number(equipMoneyInfo.equipMoney) + Number(equipMoneyInfo.phoneMoney) + '元'
|
||||
|
||||
}
|
||||
onBeforeMount(() => {
|
||||
initApiOrderDetails()
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
|
|
@ -404,7 +415,8 @@ onBeforeMount(() => {
|
|||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.btn_c {}
|
||||
.btn_c {
|
||||
}
|
||||
}
|
||||
|
||||
.total_money {
|
||||
|
|
@ -440,12 +452,11 @@ onBeforeMount(() => {
|
|||
width: 160px;
|
||||
padding: 0 12px;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.dangerC {
|
||||
background-color: #F56C6C !important;
|
||||
border: #F56C6C;
|
||||
background-color: #f56c6c !important;
|
||||
border: #f56c6c;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
Loading…
Reference in New Issue