From 90e58531c20e3dc2783225d21ed4dfacc0afe7b3 Mon Sep 17 00:00:00 2001 From: jjLv <1981429112@qq.com> Date: Wed, 27 Nov 2024 16:47:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E7=A7=9F=E6=96=B9=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 2 + src/http/api/usercenter/seekorder.ts | 7 +- src/views/user/orderManagement/detail.vue | 199 +++++++--- src/views/user/orderManagement/index.vue | 447 +++++++++++++++++++++- 4 files changed, 596 insertions(+), 59 deletions(-) diff --git a/components.d.ts b/components.d.ts index 5b8d549..2613a64 100644 --- a/components.d.ts +++ b/components.d.ts @@ -15,6 +15,7 @@ declare module 'vue' { 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'] ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElHeader: typeof import('element-plus/es')['ElHeader'] @@ -29,6 +30,7 @@ declare module 'vue' { ElSelect: typeof import('element-plus/es')['ElSelect'] ElStep: typeof import('element-plus/es')['ElStep'] ElSteps: typeof import('element-plus/es')['ElSteps'] + ElUpload: typeof import('element-plus/es')['ElUpload'] EquipCard: typeof import('./src/components/equipCard.vue')['default'] EquipCardHall: typeof import('./src/components/equipCardHall/index.vue')['default'] EquipCardNew: typeof import('./src/components/equipCardNew/index.vue')['default'] diff --git a/src/http/api/usercenter/seekorder.ts b/src/http/api/usercenter/seekorder.ts index 8133c04..6a7a9f2 100644 --- a/src/http/api/usercenter/seekorder.ts +++ b/src/http/api/usercenter/seekorder.ts @@ -5,4 +5,9 @@ import { get, post } from '../../index' // 获取订单列表 export const getOrderListApi = (data: any) => { return get('/material-mall/order/getOrderDetails', data) -} \ No newline at end of file +} + +//获取订单列表详情 +export const getOrderListInfoApi = (data: any) => { + return get('/material-mall/order/getOrderDetailsById',data) +} diff --git a/src/views/user/orderManagement/detail.vue b/src/views/user/orderManagement/detail.vue index 782b36c..3c9dfd6 100644 --- a/src/views/user/orderManagement/detail.vue +++ b/src/views/user/orderManagement/detail.vue @@ -2,11 +2,12 @@ import { ref } from 'vue' import PagingComponent from 'components/PagingComponent/index.vue' import { useRouter } from 'vue-router' -import { getOrderListApi } from 'http/api/usercenter/seekorder' +import { getOrderListInfoApi } from 'http/api/usercenter/seekorder' const route = useRoute() - -const cardList = ref([]) +/* 查询参数 */ +const cardList = ref({}) const orderStatusTemp = ref(0) +const idTemp = ref('') const titleStaus = ref('') // 获取数据列表 // const getList = async () => { @@ -15,9 +16,6 @@ const titleStaus = ref('') // tableData.value = res.rows // total.value = res.total // } -// onMounted(() => { -// getList() -// }) // 根据步骤的 Id 返回对应的标题 const getStepTitle = (stepId:number)=> { @@ -43,13 +41,26 @@ const getStepTitle = (stepId:number)=> { const getId = ()=>{ orderStatusTemp.value = Number(route.query.orderStatusTemp) + idTemp.value = String(route.query.idTemp) +} + +/** 查询列表 */ +const getList = async () => { + let params = { + id: idTemp.value + } + + const res: any = await getOrderListInfoApi(params) + cardList.value = res.data } onBeforeMount(()=>{ getId() }) - +onMounted(() => { + getList() +}) const time = ref([]) @@ -82,64 +93,154 @@ const time = ref([]) + +
+ 租赁信息 + +
+
+
+ 订单编号:{{cardList.code}} +
+
+ 下单时间:{{cardList.orderTime}} +
+ +
+ +
+ +
+ 出租单位:{{cardList.czcompanyName}} +
+ +
+ 出租人:{{cardList.person}} +
+ +
+ 出租人电话:{{cardList.personPhone}} +
+ +
+ 承租单位:{{cardList.companyName}} +
+ +
+ 承租人:{{cardList.nickName}} +
+ +
+ 承租人电话:{{cardList.phoneNumber}} +
+ +
+ 租赁协议: +
+
+
+ +
+ + + + + +
+
{{ goods.deviceName }}
+
租期:{{ goods.days }}{{ ' ' + '天' }}
+
租金:{{ goods.dayLeasePrice }}{{ ' ' + '元/天' }}
+
数量:{{ goods.num }}{{ ' ' + '台' }}
+
+
+ +
+ 总费用 +
+
{{goods.costs}}
+
+ +
租期
+
+ {{ goods.rentBeginTime }} +
+
{{ '至' }}
+
{{ goods.rentEndTime }}
+
+ +
{{"未下单"}}
+
{{"已下单"}}
+
{{"待出库"}}
+
{{"待收货"}}
+
{{"租赁中"}}
+
{{"已退租"}}
+
{{"已完成"}}
+
+ +
+ + 出库 + + + 驳回 + +
+
+
+
+ +
diff --git a/src/views/user/orderManagement/index.vue b/src/views/user/orderManagement/index.vue index c6e1920..0250417 100644 --- a/src/views/user/orderManagement/index.vue +++ b/src/views/user/orderManagement/index.vue @@ -3,6 +3,13 @@ import { ref } from 'vue' import PagingComponent from 'components/PagingComponent/index.vue' import { useRouter } from 'vue-router' import { getOrderListApi } from 'http/api/usercenter/seekorder' +import uploadComponent from 'components/uploadComponent/index.vue' +import previewImg from './previewImg/index.vue' +import { ElMessage } from 'element-plus' +import { useStore } from 'store/user' +const store = useStore() +import { mainStore } from 'store/main' +const store2 = mainStore() /* 查询参数 */ const queryParams: any = ref({ deviceName: '', @@ -50,7 +57,7 @@ const getList = async () => { const handleViewOrder=(index:Number,row:any)=>{ router.push({ name: 'orderManagementInfo' , - query: { orderStatusTemp:Number(row.orderStatus) } + query: { orderStatusTemp:Number(row.orderStatus),idTemp:row.id } }) } @@ -104,6 +111,163 @@ const clickConfirmReceipt = (row: any) => { }) } + +const settleinTitle = ref('') +/* 编辑 */ +const isEditDisabled = ref(false) +// 装备入驻弹框显示隐藏 +const dialogFormVisibleSettlein: any = ref(false) +const equipmentDeploymentParams: any = ref({ + /* 设备名称 */ + deviceName: '', + deviceTypeList: [], + deviceCount: 1, + unitName: '', + code: '', + brand: '', + typeId: '', + companyId: '', + productionDate: '', + dayLeasePrice: '', + person: '', + personPhone: '', + deviceWeight: '', +}) + + const mainFileList: any = ref([])//检测文件1 + const detailsFileList: any = ref([])//检测文件2 + //图片查看弹窗 + const dialogVisible: any = ref(false) + const dialogImageUrl = ref('') + //上传 + const upload: any = ref({ + // 设置上传的请求头部 + headers: { Authorization: "Bearer " + store2.token }, + // 上传的地址 + url: import.meta.env.VITE_API_URL + "/file/upload", + }) + // 文件上传前处理-上传大小 + const beforeUpload = (file: any) => { + if (file.size / 1024 / 1024 > 2) { + ElMessage({ + type: 'error', + message: '上传文件大小不能超过2M!' + }) + // this.$message.error({ message: `上传文件大小不能超过2M!`,}); + return false; + } + } + // 文件上传失败 + const uploadError = () => { + ElMessage({ + type: 'error', + message: '上传文件失败!' + }) + // this.$message.error({message: `上传文件失败!`}); + } + // 文件上传成功处理 + const handleFileSuccess = (response: any) => { + if (response.code == 200) { + let obj = { + // modelId:this.maId, + fileName: response.data.name.split("/")[4], + fileUrl: response.data.url + }; + console.log(obj); + mainFileList.value.push(obj) + ElMessage({ + type: 'success', + message: '上传成功!' + }) + console.log(mainFileList.value) + } + } + + // 文件上传成功处理 + const handleFileSuccess2 = (response: any) => { + if (response.code == 200) { + let obj = { + // modelId:this.maId, + fileName: response.data.name.split("/")[4], + fileUrl: response.data.url + }; + console.log(obj); + detailsFileList.value.push(obj) + ElMessage({ + type: 'success', + message: '上传成功!' + }) + console.log(detailsFileList.value) + } + } +//退租检修 + const handleViewBack = () => { + settleinTitle.value = '退租检修' + isEditDisabled.value = true + equipmentDeploymentParams.value = { + /* 企业Id */ + // ownCo: mainStore().userInfo.companyId, + /* 租赁范围 */ + leaseScope: '', + /* 设备所在地 */ + location: '', + /* 省 */ + provinceId: '', + /* 市 */ + cityId: '', + /* 区 */ + areaId: '', + /* 设备所在地 省 */ + addressEconomize: '', + /* 设备所在地 市 */ + addressProvince: '', + /* 设备所在地 区 */ + addressArea: '', + /* 设备类型 */ + typeId: '', + /* 设备类型大类 */ + deviceType: '', + /* 设备类型子类 */ + deviceTypeSon: '', + /* 设备类型小类*/ + deviceTypeSun: '', + /* 设备品牌 */ + brand: '', + /* 设备型号 */ + modelName: '', + /* 出场日期 */ + productionDate: '', + /* 工作小时数 */ + workingHours: '', + /* 整机序列号 */ + serialNumber: '', + /* 月租金 */ + monthLeasePrice: '', + /* 日租金 */ + dayLeasePrice: '', + /* 是否提供机手 */ + isOperator: '', + /* 机手月费用 */ + jsMonthPrice: '', + /* 机手日费用 */ + jsDayPrice: '', + /* 详细说明 */ + description: '', + /* 设备主图片 */ + picUrl: '', + /* 检测信息 ,保险信息*/ + fileList: [], + /* 设备状态 */ + maStatus: 15, + detectionList: [], + insureList: [], + picList: [] + } + // 打开入驻弹框 + dialogFormVisibleSettlein.value = true + } + + + +