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

View File

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

View File

@ -1,5 +1,5 @@
import { get, post } from '../../index' import { get, post } from '../../index'
export const getGoodsClassListApi = () => { 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', path: '/equipList',
name: 'equipList', name: 'equipList',
component: () => import('@/views/equip/list.vue'), component: () => import('views/equip/list.vue'),
meta: { meta: {
title: '' title: ''
} }

View File

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

View File

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

View File

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

View File

@ -32,7 +32,7 @@
<div class="label"> <div class="label">
{{ v.list[v.index].name }} {{ v.list[v.index].name }}
</div> </div>
<div class="select"> <div class="select" :style=" i == 0 ? 'min-height:105px' : ''">
<div class="item" <div class="item"
@click="selectScreen(i,val,v.index)" @click="selectScreen(i,val,v.index)"
v-for="(val,index) in v.list[v.index].select" :key="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 { getGoodsClassListApi } from 'http/api/home'
import { useStore } from 'store/main' import { useStore } from 'store/main'
import { getHotList } from 'http/api/equip' import { getHotList } from 'http/api/equip'
import {reactive} from "vue";
const router = useRouter() const router = useRouter()
const leftNavList = ref([])
// //
const getGoodsClassList = async () => { const getGoodsClassList = async () => {
const res = await getGoodsClassListApi() const res = await getGoodsClassListApi()
console.log(res, '商品分类列表') console.log(res, '商品分类列表')
leftNavList.value = res.rows
} }
getGoodsClassList() 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 = () => { const handlerGoodsDetails = () => {
console.log('去往商品详情页') console.log('去往商品详情页')
} }
const detailsList = ref([ const detailsList = ref([
@ -231,15 +236,15 @@
{{ item.name }} {{ item.name }}
<ul class="sub-goods"> <ul class="sub-goods">
<!-- 级联框内 类别名称 --> <!-- 级联框内 类别名称 -->
<li v-for="child in item.children" :key="child.title"> <li v-for="child in item.children" :key="child.id">
<span>{{ child.title }}</span> <span>{{ child.name }}</span>
<span> <span>
<!-- 小类名称 --> <!-- 小类名称 -->
<a <a
v-for="son in child.children" v-for="son in child.children"
:key="son.goodsName" :key="son.id"
@click="handlerGoodsDetails"> @click="handlerGoodsDetails">
{{ son.goodsName }} {{ son.name }}
</a> </a>
</span> </span>
</li> </li>

View File

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

View File

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

View File

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

View File

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

View File

@ -3,9 +3,13 @@
<div class="title">工程进度</div> <div class="title">工程进度</div>
<el-divider /> <el-divider />
<div class="timelineProcessBox"> <div class="timelineProcessBox">
<el-timeline class="timeline" :color="props.themeColor" > <el-timeline class="timeline" :color="props.themeColor">
<el-timeline-item class="lineitem" :class="item.done ? 'active' : 'inactive'" <el-timeline-item
v-for="(item, index) in props.timeLineList" :key="index" :timestamp="item.content"> class="lineitem"
:class="item.done ? 'active' : 'inactive'"
v-for="(item, index) in props.timeLineList"
:key="index"
:timestamp="item.content">
<div> <div>
{{ item.title }} {{ item.title }}
</div> </div>
@ -15,86 +19,84 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
const props: any = defineProps({
const props = defineProps({ themeColor: {
themeColor:{ type: String,
type:String, default: '#2282fe'
default:'#2282fe' },
}, timeLineList: {
timeLineList: { type: Array,
type: Array, default: () => {
default: () => { return []
return [] }
} }
} })
})
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.processBox { .processBox {
background-color: #fff; background-color: #fff;
height: 210px; height: 210px;
.title { .title {
font-size: 16px; font-size: 16px;
font-weight: 600; font-weight: 600;
padding-left: 32px; padding-left: 32px;
padding-top: 16px; padding-top: 16px;
} }
.timelineProcessBox { .timelineProcessBox {
.timeline { .timeline {
display: flex; display: flex;
width: 95%; width: 95%;
margin: 40px auto; margin: 40px auto;
.lineitem { .lineitem {
transform: translateX(50%); transform: translateX(50%);
width: 25%; 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) { :deep(.el-timeline-item__tail) {
// border-color: $main-color; border-left: none;
// background-color: v-bind('props.themeColor'); border-top: 2px solid #e4e7ed;
width: 100%;
position: absolute;
top: 6px;
} }
}
// activeli :deep(.el-timeline-item__wrapper) {
.active+li { padding-left: 0;
:deep(.el-timeline-item__node) { position: absolute;
background-color: v-bind('props.themeColor'); 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({}) const queryParams = ref({})
import PagingComponent from 'components/PagingComponent/index.vue' import PagingComponent from 'components/PagingComponent/index.vue'
import { getOrderListApi } from 'http/api/usercenter/seekorder' 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 router = useRouter()
const pageSize = ref(20) const pageSize: any = ref(20)
const pageNumber = ref(1) const pageNumber: any = ref(1)
const total: any = ref(0) const total: any = ref(0)
// //
@ -27,62 +27,66 @@
} }
/* 确认按钮 */ /* 确认按钮 */
const confirmBtn = (row:any) => { const confirmBtn = (row: any) => {
router.push({ name: 'orderConfirm',query:{ router.push({
orderId:row.orderId name: 'orderConfirm',
} }) query: {
orderId: row.orderId
}
})
} }
/* 查看按钮 */ /* 查看按钮 */
const clickPreviewDetails = (row:any) => { const clickPreviewDetails = (row: any) => {
console.log('查看') console.log('查看')
router.push({ name: 'orderDetails',query:{ router.push({
orderId:row.orderId name: 'orderDetails',
} }) query: {
orderId: row.orderId
}
})
} }
const tableData: any = ref([{ address: '客户单位' }]) const tableData: any = ref([])
const time = ref([]) const time = ref([])
</script> </script>
<template> <template>
<!-- 订单管理(承租方) --> <!-- 订单管理(承租方) -->
<el-form :model="queryParams" :inline="true" size="small">
<el-config-provider :locale="zhCn"> <el-form-item label="订单编号:" prop="menuName">
<el-form :model="queryParams" :inline="true" size="small"> <el-input />
<el-form-item label="订单编号:" prop="menuName"> </el-form-item>
<el-input /> <el-form-item label="创建时间:" prop="menuName">
</el-form-item> <el-date-picker
<el-form-item label="创建时间:" prop="menuName"> v-model="time"
<el-date-picker type="daterange"
v-model="time" unlink-panels
type="daterange" range-separator="-"
unlink-panels start-placeholder="开始时间"
range-separator="-" end-placeholder="结束时间"
start-placeholder="开始时间" style="width: 180px" />
end-placeholder="结束时间" </el-form-item>
style="width: 180px" /> <el-form-item label="状态:" prop="menuName">
</el-form-item> <el-input />
<el-form-item label="状态:" prop="menuName"> </el-form-item>
<el-input /> <el-form-item label="装备类型:" prop="menuName">
</el-form-item> <el-input />
<el-form-item label="装备类型:" prop="menuName"> </el-form-item>
<el-input /> <el-form-item label="装备名称:" prop="menuName">
</el-form-item> <el-input />
<el-form-item label="装备名称:" prop="menuName"> </el-form-item>
<el-input /> <el-form-item>
</el-form-item> <el-button type="primary">查询</el-button>
<el-form-item> <el-button type="success">重置</el-button>
<el-button type="primary">查询</el-button> </el-form-item>
<el-button type="success">重置</el-button> </el-form>
</el-form-item>
</el-form>
<!-- 表格 --> <!-- 表格 -->
<el-table <el-table
:data="tableData" :data="tableData"
show-overflow-tooltip
:header-cell-style="{ :header-cell-style="{
background: '#3E98FF', background: '#3E98FF',
color: '#fff' color: '#fff'
@ -97,22 +101,21 @@
<el-table-column align="center" prop="orderStatus" label="订单状态" /> <el-table-column align="center" prop="orderStatus" label="订单状态" />
<el-table-column align="center" prop="name" label="操作" width="260px"> <el-table-column align="center" prop="name" label="操作" width="260px">
<template #default="{ row }"> <template #default="{ row }">
<el-button size="small" type="primary" @click="confirmBtn(row)">确认</el-button> <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)"> <el-button size="small" type="warning" @click="clickPreviewDetails(row)" v-if="row.orderStatus!=31">
查看 查看
</el-button> </el-button>
<el-button size="small" type="danger">删除</el-button> <el-button size="small" type="danger" v-if="row.orderStatus=39">删除</el-button>
<el-button size="small" type="success" @click="settlementBtn">结算</el-button> <el-button size="small" type="success" @click="settlementBtn" v-if="row.orderStatus=34">结算</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<PagingComponent <PagingComponent
@getList="getList" @getList="getList"
:pageSize="pageSize" :pageSize="pageSize"
:pageNumber="pageNumber" :pageNumber="pageNumber"
:total="total" /> :total="total" />
</el-config-provider>
</template> </template>
<style> <style>