Compare commits

...

15 Commits

Author SHA1 Message Date
wlikett fdfd6ad203 测试修改 2023-12-08 20:30:52 +08:00
13218645326 8a20f51f23 环境配置 合并代码 2023-12-08 19:59:01 +08:00
13218645326 046b292316 环境修改 2023-12-08 19:56:57 +08:00
songyang 7aed73fbbf 冲突合并 2023-12-08 19:10:39 +08:00
songyang 25eb983c91 更新 2023-12-08 19:09:37 +08:00
13218645326 94e0fb8ced no message 2023-12-08 18:46:09 +08:00
wlikett b93e5520dc Merge branch 'dev-wangyiming' 2023-12-08 17:53:18 +08:00
13218645326 7d2e8c236f 合并冲突 2023-12-08 17:50:38 +08:00
13218645326 223f796e30 上传文件 2023-12-08 17:49:14 +08:00
songyang 9b644b01e9 冲突提交 2023-12-08 17:41:16 +08:00
songyang 852539478b 订单管理优化 2023-12-08 17:38:59 +08:00
13218645326 61a041c474 页面优化 2023-12-08 17:37:49 +08:00
13218645326 c00958a1f8 合并代码 2023-12-08 17:36:39 +08:00
13218645326 eb07ba7eab 函数优化 2023-12-08 17:33:41 +08:00
13218645326 d9cd44e4a9 状态值修改 2023-12-08 17:31:40 +08:00
22 changed files with 505 additions and 406 deletions

18
Dockerfile Normal file
View File

@ -0,0 +1,18 @@
FROM nginx:latest
RUN mkdir -p /zlpt-front
WORKDIR /zlpt-front
COPY zrpt_front-sit/assets /zlpt-front/assets
COPY zrpt_front-sit/favicon.ico /zlpt-front/favicon.ico
COPY zrpt_front-sit/index.html /zlpt-front/index.html
RUN rm /usr/share/nginx/html/*
RUN cp -r /zlpt-front/* /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

73
components.d.ts vendored
View File

@ -3,30 +3,34 @@
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}
export { }
declare module 'vue' {
export interface GlobalComponents {
ElButton: typeof import('element-plus/es')['ElButton']
ElCarousel: typeof import('element-plus/es')['ElCarousel']
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
ElCascader: typeof import('element-plus/es')['ElCascader']
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']
ElDialog: typeof import('element-plus/es')['ElDialog']
ElDivider: typeof import('element-plus/es')['ElDivider']
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']
ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
export interface GlobalComponents {
ElButton: typeof import('element-plus/es')['ElButton']
ElCarousel: typeof import('element-plus/es')['ElCarousel']
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElCascader: typeof import('element-plus/es')['ElCascader']
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']
ElDialog: typeof import('element-plus/es')['ElDialog']
ElEmpty: typeof import('element-plus/es')['ElEmpty']
ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElImage: typeof import('element-plus/es')['ElImage']
ElInput: typeof import('element-plus/es')['ElInput']
ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
<<<<<<< HEAD
ElPagination: typeof import('element-plus/es')['ElPagination']
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
=======
ElOption: typeof import('element-plus/es')['ElOption']
ElPageHeader: typeof import('element-plus/es')['ElPageHeader']
ElPagination: typeof import('element-plus/es')['ElPagination']
ElProgress: typeof import('element-plus/es')['ElProgress']
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
@ -36,19 +40,18 @@ declare module 'vue' {
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElTag: typeof import('element-plus/es')['ElTag']
ElTimeline: typeof import('element-plus/es')['ElTimeline']
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
ElUpload: typeof import('element-plus/es')['ElUpload']
EquipCard: typeof import('./src/components/equipCard.vue')['default']
EquipDetailTable: typeof import('./src/components/equipDetailTable.vue')['default']
FooterInfo: typeof import('./src/components/FooterInfo/index.vue')['default']
FormComponent: typeof import('./src/components/FormComponent/index.vue')['default']
Navmenu: typeof import('./src/components/Navmenu/index.vue')['default']
PagingComponent: typeof import('./src/components/PagingComponent/index.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
TableComponent: typeof import('./src/components/TableComponent/index.vue')['default']
UploadComponent: typeof import('./src/components/uploadComponent/index.vue')['default']
UploadImg: typeof import('./src/components/uploadImg.vue')['default']
}
>>>>>>> dev-songyang
EquipCard: typeof import('./src/components/equipCard.vue')['default']
EquipDetailTable: typeof import('./src/components/equipDetailTable.vue')['default']
FooterInfo: typeof import('./src/components/FooterInfo/index.vue')['default']
FormComponent: typeof import('./src/components/FormComponent/index.vue')['default']
Navmenu: typeof import('./src/components/Navmenu/index.vue')['default']
PagingComponent: typeof import('./src/components/PagingComponent/index.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
TableComponent: typeof import('./src/components/TableComponent/index.vue')['default']
UploadComponent: typeof import('./src/components/uploadComponent/index.vue')['default']
UploadImg: typeof import('./src/components/uploadImg.vue')['default']
}
}

3
env.d.ts vendored
View File

@ -1,2 +1,3 @@
/// <reference types="vite/client" />
declare module "nprogress"
declare module "nprogress"

3
env/.env.dev vendored
View File

@ -15,5 +15,4 @@ VITE_proxyTarget = 'http://10.40.92.74:8080' #盛旭

2
env/.env.serve1 vendored
View File

@ -16,3 +16,5 @@ VITE_LocalFlag = 0

2
env/.env.sit vendored
View File

@ -3,4 +3,4 @@ VITE_ENV = 'production'
VITE_BUILD_MODE = 'sit'
# 线上环境接口地址
VITE_API_URL = 'http://192.168.1.3:10086'
VITE_API_URL = 'http://112.29.103.165:1619/zlpt/'

View File

@ -11,7 +11,7 @@
{ name: '企业专区', routerName: '/home' }
]
const navMenuClick = (name) => {
const navMenuClick = (name: any) => {
router.push({ name })
}
</script>

View File

@ -2,7 +2,7 @@
<div class="upload_ss_c">
<!--action="/api/abk/web/v1/resource/file" -->
<el-upload
:action="props.actionUrl"
:action="actionUrl"
:auto-upload="props.autoUpload"
style="width: 100%"
:on-success="(response:any, file:any) => successUpload(response, file)"
@ -20,7 +20,10 @@
:on-progress="(event:any, file:any, fileList:any) => onProgressFn(event, file, fileList)"
:list-type="props.listType">
<!-- 上传的按钮 或者 icon 通过具名插槽的方式 -->
<slot name="default"></slot>
<div>
<slot name="default"></slot>
</div>
<slot name="textContent"></slot>
</el-upload>
<el-progress v-if="showProcessFlag && processFlag" :percentage="loadProcess"></el-progress>
@ -30,14 +33,16 @@
<script lang="ts" setup>
import { ref, nextTick } from 'vue'
import { ElMessage } from 'element-plus'
import { Base64 } from 'js-base64'
// import { Base64 } from 'js-base64'
const tmpUploadUrl = import.meta.env.VITE_API_URL +"/zlpt-file/file/cos/upload"
console.log("tmpUploadUrl",tmpUploadUrl)
const actionUrl = ref(tmpUploadUrl)
const props = defineProps({
actionUrl: {
//
type: String,
default: ''
},
// actionUrl: {
// //
// type: String,
// default: ""
// },
width: {
//
type: String,
@ -94,7 +99,7 @@
},
extraData: {}, // name
/*
/*
{
name:'12321'
}
@ -150,7 +155,7 @@
url: response.data,
name: file.name
})
} else {
ElMessage({
type: 'warning',
@ -165,6 +170,7 @@
})
}
const beforeUpload = (file:any) => {
console.log("file",file)
const { name = '', size } = file
if (size > props.maxSize * 1024 * 1000) {
ElMessage({
@ -173,11 +179,14 @@
})
return false
}
if (!props.acceptTypeList.includes(name.split('.').pop()) + '.') {
let names = name.split(".")
let currentName = names[names.length-1]
console.log("acceptTypeListacceptTypeList",props.acceptTypeList,currentName)
console.log("name.split().pop()",)
if (!props.acceptTypeList.includes( '.'+currentName) ) {
ElMessage({
type: 'warning',
message: `文件格式仅支持${props.acceptTypeList.join(',')}M`
message: `文件格式仅支持${props.acceptTypeList.join(',')}`
})
return false
}
@ -209,11 +218,11 @@
// 'doc', 'docx', 'xlsx', 'xls', 'txt'
name = name.replace(/&/g, '') // &
const target = encodeURIComponent(
Base64.encode(
`${location.origin}/api/abk/web/v1/resource/file?fileId=${
url || response.data
}&fullfilename=${name}&sid=4AC67ADB4E264AB0A8B899A671072875`
)
// Base64.encode(
// `${location.origin}/api/abk/web/v1/resource/file?fileId=${
// url || response.data
// }&fullfilename=${name}&sid=4AC67ADB4E264AB0A8B899A671072875`
// )
)
if (props.officePreviewFlag && officeType.includes(suffixFileType)) {
// office

View File

@ -1,5 +1,5 @@
import { get, post } from '../../index'
export const getGoodsClassListApi = () => {
return get('/zlpt-order/maType/getEquipmentType', {})
}
return get('/zlpt-home/maType/getEquipmentType', {})
}

View File

@ -80,7 +80,7 @@ const routes: Array<RouteRecordRaw> = [
{
path: '/equipList',
name: 'equipList',
component: () => import('@/views/equip/list.vue'),
component: () => import('views/equip/list.vue'),
meta: {
title: ''
}

View File

@ -39,13 +39,13 @@ export const useStore = defineStore('myUser', {
},
// 获取省份信息
async getprovinceList() {
const res: any = await post('/zlpt-company/baseAddress/selectAddress', {})
const res: any = await post('/zlpt-system/baseAddress/selectAddress', {})
this.provinceList = res.data
},
// 获取市级信息
async getmarketList(val: any) {
const res: any = await post('/zlpt-company/baseAddress/selectAddress', { code: val })
const res: any = await post('/zlpt-system/baseAddress/selectAddress', { code: val })
console.log(res, '市区信息');
this.marketList = res.data
@ -53,7 +53,7 @@ export const useStore = defineStore('myUser', {
},
// 获取区级信息
async getareaList(val: any) {
const res: any = await post('/zlpt-company/baseAddress/selectAddress', { code: val })
const res: any = await post('/zlpt-system/baseAddress/selectAddress', { code: val })
this.areaList = res.data
},
// 获取证件类型

View File

@ -117,3 +117,24 @@ export function formatDate(timestamp: any) {
}
return '刚刚'
}
export const getNewDay = (dateTemp: any, days: any) => {
console.log("dateTemp",dateTemp,days)
if(!dateTemp ){
return ""
}
dateTemp = dateTemp.split(".");
//转换为MM-DD-YYYY格式
let nDate: any = new Date(dateTemp[1] + "-" + dateTemp[2] + "-" + dateTemp[0]);
let millSeconds: any = Math.abs(nDate) + days * 24 * 60 * 60 * 1000;
let rDate: any = new Date(millSeconds);
let year: any = rDate.getFullYear();
let month: any = rDate.getMonth() + 1;
if (month < 10) month = "0" + month;
let date = rDate.getDate();
if (date < 10) date = "0" + date;
return year + "." + month + "." + date;
}

View File

@ -327,7 +327,7 @@
</el-col>
<el-col :span="5">
<el-form-item label="被授权人邮箱">
<el-input></el-input>
<el-input placeholder="请输入被授权人邮箱" clearable>></el-input>
</el-form-item>
</el-col>
</el-row>
@ -405,14 +405,14 @@
</div>
<div class="bankInfo card">
<div class="top">
<!-- <div class="top">
<div class="title">
银行账号信息
<span class="tip">开户行许可示例</span>
</div>
</div>
<!-- <el-table border :data="bankTableList">
<el-table border :data="bankTableList">
<el-table-column align="center" label="开户行">
<template #default="{ row }">
<el-input v-model="row.v_kaihu"></el-input>
@ -451,8 +451,8 @@
</a>
</template>
</el-table-column>
</el-table>
</div> -->
</el-table> -->
</div>
<el-row style="padding-top: 15px">
<el-form-item>
<el-button type="success" @click="handlerSubmitBtn"> </el-button>

View File

@ -56,7 +56,7 @@
<div class="business">
<img
:src="pageData.companyLogoUrl"
src="@/assets/img/bns-logo.png"
class="avatar"/>
<div class="fonts">
<div class="name">{{ pageData.companyName }}</div>

View File

@ -32,7 +32,7 @@
<div class="label">
{{ v.list[v.index].name }}
</div>
<div class="select">
<div class="select" :style=" i == 0 ? 'min-height:105px' : ''">
<div class="item"
@click="selectScreen(i,val,v.index)"
v-for="(val,index) in v.list[v.index].select" :key="index">

View File

@ -4,181 +4,186 @@
import { getGoodsClassListApi } from 'http/api/home'
import { useStore } from 'store/main'
import { getHotList } from 'http/api/equip'
import {reactive} from "vue";
const router = useRouter()
const leftNavList = ref([])
//
const getGoodsClassList = async () => {
const res = await getGoodsClassListApi()
console.log(res, '商品分类列表')
leftNavList.value = res.rows
}
getGoodsClassList()
const leftNavList = [
{
name: '全部商品',
children: [
{
title: '挖掘机',
children: [
{ goodsName: '履带挖掘机' },
{ goodsName: '履带挖掘机' },
{ goodsName: '履带挖掘机' },
{ goodsName: '履带挖掘机' },
{ goodsName: '履带挖掘机' },
{ goodsName: '履带挖掘机' }
]
},
{
title: '开沟机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '斗轮挖掘机',
children: [{ goodsName: '履带挖掘机' }]
}
]
},
{
name: '挖掘机',
children: [
{
title: '挖掘机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '开沟机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '斗轮挖掘机',
children: [{ goodsName: '履带挖掘机' }]
}
]
},
{
name: '土方机械',
children: [
{
title: '挖掘机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '开沟机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '斗轮挖掘机',
children: [{ goodsName: '履带挖掘机' }]
}
]
},
{
name: '工程起重机械',
children: [
{
title: '挖掘机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '开沟机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '斗轮挖掘机',
children: [{ goodsName: '履带挖掘机' }]
}
]
},
{
name: '动力设备',
children: [
{
title: '挖掘机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '开沟机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '斗轮挖掘机',
children: [{ goodsName: '履带挖掘机' }]
}
]
},
{
name: '压实机械',
children: [
{
title: '挖掘机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '开沟机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '斗轮挖掘机',
children: [{ goodsName: '履带挖掘机' }]
}
]
},
{
name: '路桥机械',
children: [
{
title: '挖掘机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '开沟机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '斗轮挖掘机',
children: [{ goodsName: '履带挖掘机' }]
}
]
},
{
name: '混凝土机械',
children: [
{
title: '挖掘机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '开沟机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '斗轮挖掘机',
children: [{ goodsName: '履带挖掘机' }]
}
]
},
{
name: '桩工机械',
children: [
{
title: '挖掘机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '开沟机',
children: [{ goodsName: '履带挖掘机' }]
},
{
title: '斗轮挖掘机',
children: [{ goodsName: '履带挖掘机' }]
}
]
}
]
// [
// {
// name: '',
// children: [
// {
// title: '',
// children: [
// { goodsName: '' },
// { goodsName: '' },
// { goodsName: '' },
// { goodsName: '' },
// { goodsName: '' },
// { goodsName: '' }
// ]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// }
// ]
// },
// {
// name: '',
// children: [
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// }
// ]
// },
// {
// name: '',
// children: [
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// }
// ]
// },
// {
// name: '',
// children: [
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// }
// ]
// },
// {
// name: '',
// children: [
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// }
// ]
// },
// {
// name: '',
// children: [
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// }
// ]
// },
// {
// name: '',
// children: [
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// }
// ]
// },
// {
// name: '',
// children: [
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// }
// ]
// },
// {
// name: '',
// children: [
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// },
// {
// title: '',
// children: [{ goodsName: '' }]
// }
// ]
// }
// ]
const handlerGoodsDetails = () => {
console.log('去往商品详情页')
}
const detailsList = ref([
@ -231,15 +236,15 @@
{{ item.name }}
<ul class="sub-goods">
<!-- 级联框内 类别名称 -->
<li v-for="child in item.children" :key="child.title">
<span>{{ child.title }}</span>
<li v-for="child in item.children" :key="child.id">
<span>{{ child.name }}</span>
<span>
<!-- 小类名称 -->
<a
v-for="son in child.children"
:key="son.goodsName"
:key="son.id"
@click="handlerGoodsDetails">
{{ son.goodsName }}
{{ son.name }}
</a>
</span>
</li>

View File

@ -24,7 +24,7 @@
getList()
}
const tableData = ref([{ supplierCompany: '供应商' }])
const tableData = ref([])
/* 退租按钮 */
const clickRentingTermination = () => {
@ -44,9 +44,14 @@
}
/* 续租按钮 */
const clickRenewalOfLease = () => {
console.log('续租')
router.push({ name: 'renewalOfLease' })
const clickRenewalOfLease = ({ row }: any) => {
console.log('续租', row)
router.push({
name: 'renewalOfLease',
query: {
orderId: row.orderId
}
})
}
/* 确认收货 */
@ -99,6 +104,7 @@
<el-table
:data="tableData"
style="width: 100%"
show-overflow-tooltip
:header-cell-style="{
background: '#3E98FF',
color: '#fff'
@ -108,22 +114,38 @@
<el-table-column align="center" prop="time" label="订单创建日期" />
<el-table-column align="center" prop="payType" label="装备类型" />
<el-table-column align="center" prop="deviceName" label="装备名称" />
<el-table-column align="center" prop="orderStatus" label="订单状态">
<el-table-column align="center" label="订单状态" width="80">
<template #default="{ row }">
<el-tag v-if="row.orderStatus === 31">待确认</el-tag>
<el-tag v-if="row.orderStatus === 32">待合同上传</el-tag>
<el-tag v-if="row.orderStatus === 35">待收货</el-tag>
<el-tag v-if="row.orderStatus === 36">进行中</el-tag>
<el-tag v-if="row.orderStatus == 31">待确认</el-tag>
<el-tag v-if="row.orderStatus == 32">待合同上传</el-tag>
<el-tag v-if="row.orderStatus == 35">待收货</el-tag>
<el-tag v-if="row.orderStatus == 36">进行中</el-tag>
</template>
</el-table-column>
<el-table-column align="center" prop="name" label="操作" width="320px">
<el-table-column align="center" prop="name" label="操作" width="160px">
<template #default="scope">
<el-button size="small" type="primary" @click="clickPreviewDetails">查看</el-button>
<el-button size="small" type="danger" @click="clickRentingTermination">
<el-button size="small" type="primary" @click="clickPreviewDetails(scope.row)">
查看
</el-button>
<el-button
size="small"
type="danger"
@click="clickRentingTermination"
v-if="scope.row.orderStatus == 36">
退租
</el-button>
<el-button size="small" type="warning" @click="clickRenewalOfLease">续租</el-button>
<el-button size="small" type="success" @click="clickConfirmReceipt">
<el-button
size="small"
type="warning"
@click="clickRenewalOfLease"
v-if="scope.row.orderStatus == 36">
续租
</el-button>
<el-button
size="small"
type="success"
@click="clickConfirmReceipt(scope.row)"
v-if="scope.row.orderStatus == 35">
确认收货
</el-button>
</template>

View File

@ -1,5 +1,5 @@
<template>
<el-page-header @back="goBack" @click="$router.go(-1)">
<el-page-header @click="$router.go(-1)">
<template #content>
</template>
@ -17,9 +17,10 @@
detailsInfo.phone
}}</el-form-item>
<el-form-item label="租赁时长" class="table_item">
{{ detailsInfo.duration}}
<!-- 暂无 --></el-form-item>
<div style="white-space: nowrap;">
{{ detailsInfo.planStartTime }}- {{ getTimeByPoint(detailsInfo.planStartTime, detailsInfo.duration) }}
</div>
</el-form-item>
<el-form-item label="设备进场地址:" class="table_item">{{
detailsInfo.addressId
}}</el-form-item>
@ -72,10 +73,10 @@
</span>
<span style="color: #f00">¥
</span>
<el-input v-model.trim="equipMoneyInfo.equipMoney" placeholder="请输入企业类型" clearable maxlength="30" />
<el-input v-model.trim="equipMoneyInfo.equipMoney" placeholder="请输入企业类型" clearable maxlength="30" />
/
</div>
<div v-if="detailsInfo.isMachinist != 0" class="equipMoneyClass">
<div v-if="detailsInfo.isMachinist != 0" class="equipMoneyClass">
<span>
机手
</span>
@ -171,6 +172,8 @@ 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"
const router = useRouter()
const route = useRoute()
const ruleFormRef = ref()
@ -250,16 +253,16 @@ const formConfirmRules = reactive<FormRules<any>>({
let fileItem: any = null
const demandConfirmFn = () => {
if(!equipMoneyInfo.equipMoney){
if (!equipMoneyInfo.equipMoney) {
return ElMessage({
type:'warning',
message:'请输入装备租金'
type: 'warning',
message: '请输入装备租金'
})
}
if(!equipMoneyInfo.phoneMoney){
if (!equipMoneyInfo.phoneMoney) {
return ElMessage({
type:'warning',
message:'请输入机手租金'
type: 'warning',
message: '请输入机手租金'
})
}
stepVal.value = '1'
@ -268,19 +271,19 @@ const demandConfirmFn = () => {
const rejectCallBack = async (row: any, value: any) => {
console.log('editCallBack', row, value)
let params = {
rejectReason:value.value,
rejectReason: value.value,
orderId: detailsInfo.orderId
}
const res = await apiOrderReject(params)
if(res.code == 200){
const res: any = await apiOrderReject(params)
if (res.code == 200) {
ElMessage({
type:'success',
message:'驳回成功'
type: 'success',
message: '驳回成功'
})
}
}
const demandRejectFn = (row="") => {
const demandRejectFn = (row = "") => {
ElMessageBoxOpert(
'驳回原因',
'填写驳回原因',
@ -342,8 +345,8 @@ const confirmSendFn = () => {
machinistName: submitInfo.driver,//
logisticsPhone: submitInfo.deliverPhone,//
phone: submitInfo.driverPhone,//
leasePrice:equipMoneyInfo.equipMoney,
machinistPrice:equipMoneyInfo.phoneMoney
leasePrice: equipMoneyInfo.equipMoney,
machinistPrice: equipMoneyInfo.phoneMoney
}
const res = await apiUpdateOrderInfo(params)
console.log("resapiUpdateOrderInfo", res)
@ -372,6 +375,9 @@ const scuccesCallback = (ev: any) => {
errorTipFlag.value = 1
}
const getTimeByPoint = (start: any, duration: any) => {
return getNewDay(start, duration)
}
const totalMoneyFn = () => {
return Number(equipMoneyInfo.equipMoney) + Number(equipMoneyInfo.phoneMoney) + '元'
@ -423,11 +429,13 @@ onBeforeMount(() => {
.error_tip_c {
color: #ff0000;
}
:deep(.equipMoneyClass){
:deep(.equipMoneyClass) {
display: flex;
justify-content: flex-start;
margin-top: 6px;
.el-input{
justify-content: flex-start;
margin-top: 6px;
.el-input {
display: inline-block;
width: 160px;
padding: 0 12px;
@ -440,5 +448,4 @@ onBeforeMount(() => {
background-color: #F56C6C !important;
border: #F56C6C;
}
</style>

View File

@ -14,8 +14,9 @@
{{ detailsInfo.phone }}
</el-form-item>
<el-form-item label="租赁时长" class="table_item">
{{ 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">
{{ detailsInfo.addressId }}
@ -102,6 +103,7 @@ import { reactive } from 'vue'
import orderTable from './orderTable.vue'
import { apiOrderInfoDetails, apiOrderInfoList, apiUpdateOrderInfo } from 'http/api/usercenter/order'
import { ElMessage } from 'element-plus'
import {getNewDay} from "utils/time"
const router = useRouter()
const route = useRoute()
const tableInfo = reactive({
@ -206,6 +208,11 @@ const initPage = () => {
confimFlag.value = route.query.confirm
}
const getTimeByPoint =(start:any,duration:any)=>{
return getNewDay(start,duration)
}
onBeforeMount(() => {
initPage()
initApiOrderDetails()

View File

@ -19,7 +19,7 @@
<!-- 退租页面 -->
<el-page-header @back="goBack" @click="$router.go(-1)">
<template #content>
<span>退</span>
<span></span>
</template>
</el-page-header>

View File

@ -3,9 +3,13 @@
<div class="title">工程进度</div>
<el-divider />
<div class="timelineProcessBox">
<el-timeline class="timeline" :color="props.themeColor" >
<el-timeline-item class="lineitem" :class="item.done ? 'active' : 'inactive'"
v-for="(item, index) in props.timeLineList" :key="index" :timestamp="item.content">
<el-timeline class="timeline" :color="props.themeColor">
<el-timeline-item
class="lineitem"
:class="item.done ? 'active' : 'inactive'"
v-for="(item, index) in props.timeLineList"
:key="index"
:timestamp="item.content">
<div>
{{ item.title }}
</div>
@ -15,86 +19,84 @@
</div>
</template>
<script lang="ts" setup>
const props = defineProps({
themeColor:{
type:String,
default:'#2282fe'
},
timeLineList: {
type: Array,
default: () => {
return []
const props: any = defineProps({
themeColor: {
type: String,
default: '#2282fe'
},
timeLineList: {
type: Array,
default: () => {
return []
}
}
}
})
})
</script>
<style lang="scss" scoped>
.processBox {
background-color: #fff;
height: 210px;
.processBox {
background-color: #fff;
height: 210px;
.title {
font-size: 16px;
font-weight: 600;
padding-left: 32px;
padding-top: 16px;
}
.title {
font-size: 16px;
font-weight: 600;
padding-left: 32px;
padding-top: 16px;
}
.timelineProcessBox {
.timeline {
display: flex;
width: 95%;
margin: 40px auto;
.timelineProcessBox {
.timeline {
display: flex;
width: 95%;
margin: 40px auto;
.lineitem {
transform: translateX(50%);
width: 25%;
.lineitem {
transform: translateX(50%);
width: 25%;
}
}
}
}
}
:deep(.el-timeline-item__tail) {
border-left: none;
border-top: 2px solid #e4e7ed;
width: 100%;
position: absolute;
top: 6px;
}
:deep(.el-timeline-item__wrapper) {
padding-left: 0;
position: absolute;
top: 20px;
transform: translateX(-50%);
text-align: center;
}
:deep(.el-timeline-item__timestamp) {
font-size: 14px;
font-weight: normal;
}
.active {
border: none !important;
:deep(.el-timeline-item__node) {
// background-color: $main-color;
background-color: v-bind('props.themeColor');
}
:deep(.el-timeline-item__tail) {
// border-color: $main-color;
// background-color: v-bind('props.themeColor');
border-left: none;
border-top: 2px solid #e4e7ed;
width: 100%;
position: absolute;
top: 6px;
}
}
// activeli
.active+li {
:deep(.el-timeline-item__node) {
background-color: v-bind('props.themeColor');
:deep(.el-timeline-item__wrapper) {
padding-left: 0;
position: absolute;
top: 20px;
transform: translateX(-50%);
text-align: center;
}
}
</style>
:deep(.el-timeline-item__timestamp) {
font-size: 14px;
font-weight: normal;
}
.active {
border: none !important;
:deep(.el-timeline-item__node) {
// background-color: $main-color;
background-color: v-bind('props.themeColor');
}
:deep(.el-timeline-item__tail) {
// border-color: $main-color;
// background-color: v-bind('props.themeColor');
}
}
// activeli
.active + li {
:deep(.el-timeline-item__node) {
background-color: v-bind('props.themeColor');
}
}
</style>

View File

@ -3,12 +3,12 @@
const queryParams = ref({})
import PagingComponent from 'components/PagingComponent/index.vue'
import { getOrderListApi } from 'http/api/usercenter/seekorder'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
// import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
const router = useRouter()
const pageSize = ref(20)
const pageNumber = ref(1)
const pageSize: any = ref(20)
const pageNumber: any = ref(1)
const total: any = ref(0)
//
@ -27,62 +27,66 @@
}
/* 确认按钮 */
const confirmBtn = (row:any) => {
router.push({ name: 'orderConfirm',query:{
orderId:row.orderId
} })
const confirmBtn = (row: any) => {
router.push({
name: 'orderConfirm',
query: {
orderId: row.orderId
}
})
}
/* 查看按钮 */
const clickPreviewDetails = (row:any) => {
const clickPreviewDetails = (row: any) => {
console.log('查看')
router.push({ name: 'orderDetails',query:{
orderId:row.orderId
} })
router.push({
name: 'orderDetails',
query: {
orderId: row.orderId
}
})
}
const tableData: any = ref([{ address: '客户单位' }])
const tableData: any = ref([])
const time = ref([])
</script>
<template>
<!-- 订单管理(承租方) -->
<el-config-provider :locale="zhCn">
<el-form :model="queryParams" :inline="true" size="small">
<el-form-item label="订单编号:" prop="menuName">
<el-input />
</el-form-item>
<el-form-item label="创建时间:" prop="menuName">
<el-date-picker
v-model="time"
type="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
style="width: 180px" />
</el-form-item>
<el-form-item label="状态:" prop="menuName">
<el-input />
</el-form-item>
<el-form-item label="装备类型:" prop="menuName">
<el-input />
</el-form-item>
<el-form-item label="装备名称:" prop="menuName">
<el-input />
</el-form-item>
<el-form-item>
<el-button type="primary">查询</el-button>
<el-button type="success">重置</el-button>
</el-form-item>
</el-form>
<el-form :model="queryParams" :inline="true" size="small">
<el-form-item label="订单编号:" prop="menuName">
<el-input />
</el-form-item>
<el-form-item label="创建时间:" prop="menuName">
<el-date-picker
v-model="time"
type="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
style="width: 180px" />
</el-form-item>
<el-form-item label="状态:" prop="menuName">
<el-input />
</el-form-item>
<el-form-item label="装备类型:" prop="menuName">
<el-input />
</el-form-item>
<el-form-item label="装备名称:" prop="menuName">
<el-input />
</el-form-item>
<el-form-item>
<el-button type="primary">查询</el-button>
<el-button type="success">重置</el-button>
</el-form-item>
</el-form>
<!-- 表格 -->
<el-table
:data="tableData"
show-overflow-tooltip
:header-cell-style="{
background: '#3E98FF',
color: '#fff'
@ -97,22 +101,21 @@
<el-table-column align="center" prop="orderStatus" label="订单状态" />
<el-table-column align="center" prop="name" label="操作" width="260px">
<template #default="{ row }">
<el-button size="small" type="primary" @click="confirmBtn(row)">确认</el-button>
<el-button size="small" type="warning" @click="clickPreviewDetails(row)">
<el-button size="small" type="primary" @click="confirmBtn(row)" v-if="row.orderStatus==31">确认</el-button>
<el-button size="small" type="warning" @click="clickPreviewDetails(row)" v-if="row.orderStatus!=31">
查看
</el-button>
<el-button size="small" type="danger">删除</el-button>
<el-button size="small" type="success" @click="settlementBtn">结算</el-button>
<el-button size="small" type="danger" v-if="row.orderStatus=39">删除</el-button>
<el-button size="small" type="success" @click="settlementBtn" v-if="row.orderStatus=34">结算</el-button>
</template>
</el-table-column>
</el-table>
<PagingComponent
@getList="getList"
:pageSize="pageSize"
:pageNumber="pageNumber"
:total="total" />
</el-config-provider>
<PagingComponent
@getList="getList"
:pageSize="pageSize"
:pageNumber="pageNumber"
:total="total" />
</template>
<style>