From 2f86eae13a83da59922be47dc4cbeb87bd1bba95 Mon Sep 17 00:00:00 2001 From: "mayubo@gmail.com" Date: Wed, 18 Jun 2025 18:21:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B8=88=E5=82=85=E7=AB=AF=E6=8A=A5?= =?UTF-8?q?=E4=BA=8B=E6=8A=A5=E4=BF=AE=E5=92=8C=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E6=8A=A5=E4=BA=8B=E6=8A=A5=E4=BF=AE=E9=80=BB=E8=BE=91=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/community/oneRepair/index.css | 105 +- packages/community/oneRepair/index.vue | 103 +- packages/community/repairDetail/index.css | 40 +- packages/community/repairDetail/index.vue | 77 +- packages/community/repairList/index.css | 13 +- packages/community/repairList/index.vue | 11 +- packages/workOrderDashboard/detail/index.css | 110 +- packages/workOrderDashboard/detail/index.vue | 291 +++- packages/workOrderDashboard/index/index.css | 16 +- packages/workOrderDashboard/index/index.vue | 26 +- .../.sourcemap/mp-weixin/common/main.js.map | 6 +- .../.sourcemap/mp-weixin/common/vendor.js.map | 6 +- .../mp-weixin/kitchen/index/index.js.map | 6 +- .../mp-weixin/pages/index/index.js.map | 6 +- .../mp-weixin/reservation/index/index.js.map | 6 +- .../uview-ui/components/u-icon/u-icon.js.map | 6 +- .../u-loading-icon/u-loading-icon.js.map | 6 +- .../components/u-overlay/u-overlay.js.map | 6 +- .../components/u-popup/u-popup.js.map | 6 +- .../u-safe-bottom/u-safe-bottom.js.map | 6 +- .../u-status-bar/u-status-bar.js.map | 6 +- .../u-transition/u-transition.js.map | 6 +- unpackage/dist/dev/mp-weixin/common/main.js | 56 +- unpackage/dist/dev/mp-weixin/common/vendor.js | 1521 +++++++---------- .../dist/dev/mp-weixin/kitchen/index/index.js | 56 +- .../dist/dev/mp-weixin/pages/index/index.js | 67 +- .../dev/mp-weixin/project.private.config.json | 45 +- .../dev/mp-weixin/reservation/index/index.js | 78 +- .../uview-ui/components/u-icon/u-icon.js | 32 +- .../uview-ui/components/u-icon/u-icon.json | 4 +- .../components/u-overlay/u-overlay.js | 32 +- .../components/u-transition/u-transition.js | 32 +- 32 files changed, 1333 insertions(+), 1454 deletions(-) diff --git a/packages/community/oneRepair/index.css b/packages/community/oneRepair/index.css index e029ce04..a40778e4 100644 --- a/packages/community/oneRepair/index.css +++ b/packages/community/oneRepair/index.css @@ -1,3 +1,6 @@ +.container { + padding-bottom: 60rpx; +} page { background-color: #f6f7fb; } @@ -130,7 +133,7 @@ page { .repairMedia { width: 710rpx; - height: 336rpx; + /* height: 336rpx; */ background: #FFFFFF; border-radius: 20rpx 20rpx 20rpx 20rpx; margin: 0 auto; @@ -139,36 +142,6 @@ page { padding: 30rpx 20rpx; } -/* .u-upload { - width: 120rpx !important; - height: 120rpx !important; - background: #F6F7FB !important; - display: flex !important; - align-items: center !important; - justify-content: center !important; - border-radius: 10rpx 10rpx 10rpx 10rpx !important; - border: 1rpx solid #D1D1D1 !important; -} - -.u-upload__button { - width: 100% !important; - height: 100% !important; - margin-right: 0 !important; - margin-bottom: 0 !important; -} - -.u-upload__wrap { - width: 100% !important; - height: 100% !important; -} */ - -.df { - display: flex; - align-items: center; - padding-top: 0; - margin-bottom: 30rpx; -} - .imgCon { font-size: 18rpx; color: #222222; @@ -178,14 +151,37 @@ page { justify-content: center; width: 120rpx; height: 120rpx; -} - -.imgCon image { + background: #F6F7FB; + border: 1rpx solid #D1D1D1; + border-radius: 10rpx 10rpx 10rpx 10rpx; + } + + .imgCon image { width: 34rpx; height: 34rpx; margin-bottom: 8rpx; + } +.u-upload__wrap__preview { + width: 120rpx; + height: 120rpx; + border-radius: 10rpx 0rpx 10rpx 10rpx !important; + } + + .u-upload__wrap__preview__image { + width: 100% !important; + height: 100% !important; + object-fit: cover; + } + + +.df { + display: flex; + align-items: center; + padding-top: 0; + margin-bottom: 30rpx; } + .videoCon { width: 120rpx; height: 120rpx; @@ -219,4 +215,45 @@ page { page{ padding-bottom: 0; +} + +.videoBOX { + width: 400rpx; + height: 200rpx; + position: relative; +} + +.videoBOX video { + width: 100% !important; + height: 100% !important; +} + +.mask { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + z-index: 2; + display: flex; + align-items: center; + justify-content: center; +} + +.mask_con { + width: 40rpx; + height: 40rpx; + z-index: 2; +} + +.mask_cancel { + background: rgba(255, 255, 255, 0.2); + border-radius: 5rpx 5rpx 5rpx 5rpx; + font-size: 24rpx; + color: #FFFFFF; + padding: 2rpx 11rpx; + position: absolute; + left: 30rpx; + top: 24rpx; + z-index: 2; } \ No newline at end of file diff --git a/packages/community/oneRepair/index.vue b/packages/community/oneRepair/index.vue index f476d918..d86fab2b 100644 --- a/packages/community/oneRepair/index.vue +++ b/packages/community/oneRepair/index.vue @@ -65,30 +65,33 @@
上传图片
- - +
上传视频
- - + + +
+ +
+
删除
+
+
@@ -114,9 +117,8 @@ import { request, picUrl, - NavgateTo, upload, - isPhone, + uploadVideo, menuButtonInfo } from '../../../utils'; import { @@ -125,6 +127,7 @@ import { export default { data() { return { + picUrl, active:"1", top: "", localHeight: "", @@ -152,7 +155,7 @@ export default { imgList: [], - videoList: [], + videoList: {}, } }, methods: { @@ -162,14 +165,12 @@ export default { }); }, chose() { - console.log(123); this.show = true; }, cancel1() { this.show = false; }, confirm1(e) { - console.log(e); const { value } = e; this.category = value[0]; this.show = false; @@ -183,14 +184,12 @@ export default { }, handlerInputClick(e) { - console.log('e', e) const { name} = e.currentTarget.dataset; this[name] = e.detail.value }, // 时间选择器点击确定 confirm2(e) { - console.log(e); const date = new Date(e.value); // 获取选中的 Date 对象 const year = date.getFullYear(); // 获取年份 const month = date.getMonth() + 1; // 获取月份(注意月份从 0 开始,需要 +1) @@ -198,57 +197,46 @@ export default { const hours =date.getHours() const minutes = date.getMinutes(); const time = `${year}-${month}-${day} ${hours}:${minutes}`; - console.log('time', time); this.time = time; this.show2 = false; }, // 上传图片 async afterReadImg(e){ - let that = this - uni.showLoading({ - title: '上传中', - }) - const { name, file} = e; - console.log(e); - // TODO: 多次上传时生成多个promise(提供个单次上传多张图片接口更合适吧?) - const uploadPromises = file.map(item => { - return new Promise((resolve, reject) => { - upload(item.url, (res) => { - let datas = JSON.parse(res); - resolve({ - url: picUrl + datas.data.path, - picUrl: datas.data.path, - name: 'avatar' - }); - }, (err) => { - reject(err); - }); - }); - }); - const results = await Promise.all(uploadPromises); - console.log('1111', results); - that[name] = [...that[name], ...results]; + const { file} = e; + file.forEach(item => { + upload(item.url, res => { + this.imgList.push({ + url: picUrl + res.data.path, + picUrl: res.data.path, + }) + }) + }) uni.hideLoading(); - uni.showToast({ + uni.showToast({ title: '上传成功', icon: 'success' }); }, + deletePic(e) { + this.imgList.splice(e.index, 1); + }, afterReadVideo(e){ - let that = this - // uni.showLoading({ - // title: '上传中', - // }) - const { name, file} = e; - console.log(e); + uploadVideo(e.file.url, res => { + this.videoList = { + url: this.picUrl + res.data.url, + videos: res.data.url + } + }) + }, + deleteVideo(e) { + this.videoList = {}; }, changeAct(e){ this.active = e; }, async handlerSubmitClick() { - console.log('111', this.columns); uni.showLoading({ title: '提交中' }); @@ -259,7 +247,7 @@ export default { "order_category_id": this.category.id, // 报修类型ID "problem_description": this.repairInfo, // 问题描述 "images": this.imgList.length !== 0 ? this.imgList.map(item => item.picUrl).join(',') : '', // 图片信息,可为空 - "videos": this.videoList.length !== 0 ? this.videoList.map(item => item.picUrl).join(',') : '', // 视频 + "videos": this.videoList.videos || '', // 视频 // "urgency_level": 3, // 紧急程度 "service_time": this.time, // 上门时间 // "remarks": "备注", // 备注 @@ -269,14 +257,16 @@ export default { "contact_name": this.contactName, // 联系人 "contact_phone": this.contactPhone // 联系人手机号 }, { silent: false }); - console.log('提交结果', res); uni.hideLoading(); uni.showToast({ title: '提交成功' }); - uni.navigateBack({ + setTimeout(() => { + uni.navigateBack({ delta: 1 }) + }, 2000) + }, async init() { uni.showLoading({ @@ -285,7 +275,14 @@ export default { const res = await request(apiArr.workOrderCategoryCrudList, 'POST', {}); uni.hideLoading(); this.columns = res.rows; - } + }, + playFullScreenVideo() { + this.videoContext = this.videoContext || wx.createVideoContext('myVideo') + this.videoContext.requestFullScreen() // 请求全屏 + }, + cancels(e) { + this.videoList = {}; + }, }, onLoad(options) { diff --git a/packages/community/repairDetail/index.css b/packages/community/repairDetail/index.css index dd73bb7f..143dab06 100644 --- a/packages/community/repairDetail/index.css +++ b/packages/community/repairDetail/index.css @@ -66,18 +66,39 @@ page { .orderItemTit_state1 { background: linear-gradient(304deg, #FFFFFF 0%, #FFF6E6 100%); } +.orderItemTit_state1 > .orderItemTit_right { + font-size: 28rpx; + color: #FFA600; + font-size: 600; +} .orderItemTit_state2 { background: linear-gradient(280deg, #FFFFFF 0%, #FFE7E7 100%); } +.orderItemTit_state2 > .orderItemTit_right { + font-size: 28rpx; + color: #FF4800; + font-size: 600; +} .orderItemTit_state3 { - background: linear-gradient(290deg, #FFFFFF 0%, #EDEDED 100%); + background: linear-gradient( 283deg, #FFFFFF 0%, #E1FFF0 100%); +} +.orderItemTit_state3 > .orderItemTit_right { + font-size: 28rpx; + color: #2BE186; + font-size: 600; } .orderItemTit_state4 { - background: linear-gradient( 283deg, #FFFFFF 0%, #E1FFF0 100%); + background: linear-gradient(290deg, #FFFFFF 0%, #EDEDED 100%); } +.orderItemTit_state4 > .orderItemTit_right { + font-size: 28rpx; + color: #999999; + font-size: 600; +} + .orderItemTit_right { font-size: 28rpx; color: #FFA600; @@ -121,4 +142,17 @@ page { .df{ display: flex; align-items: center; -} \ No newline at end of file +} + + + +.videoBOX { + width: 400rpx; + height: 200rpx; + position: relative; +} + +.videoBOX video { + width: 100% !important; + height: 100% !important; +} diff --git a/packages/community/repairDetail/index.vue b/packages/community/repairDetail/index.vue index 36621e2c..540fefa4 100644 --- a/packages/community/repairDetail/index.vue +++ b/packages/community/repairDetail/index.vue @@ -66,7 +66,8 @@ v-for="(item, index) in info.imagesList" :key="index" :src="item" - mode="aspectFill" + mode="" + @click="handlerPreviewImageClick(item)" > @@ -76,13 +77,9 @@
视频
暂无视频 - +
+ +
@@ -92,52 +89,51 @@ -
+
维修师傅
-
{{ info.reporter_worker.name }}
+
{{ info.repairman_worker.name }}
师傅手机号
-
{{info.reporter_worker.mobile}}
+
{{info.repairman_worker.mobile}}
师傅工号
-
{{info.reporter_worker.emp_no}}
+
{{info.repairman_worker.emp_no}}
-
+
维修图片
+ 暂无图片 - + mode="" + @click="headerRepairImagesClick(item)" + />
维修视频
- + 暂无视频 +
+ +
维修描述
-
{{info.repair_description}}
+
{{ info.repair_description || '暂无描述' }}
@@ -147,7 +143,6 @@ import { request, picUrl, - NavgateTo, menuButtonInfo, } from "../../../utils"; import { apiArr } from "../../../api/v2Community"; @@ -168,15 +163,16 @@ export default { desc: "进行中", style: "orderItemTit_state2", }, - 4: { - desc: "已完成", - style: "orderItemTit_state4", - }, 3: { - desc: "已作废", + desc: "已完成", style: "orderItemTit_state3", }, + 4: { + desc: "已作废", + style: "orderItemTit_state4", + }, }, + }; }, methods: { @@ -187,6 +183,18 @@ export default { }, changeAct(e) { this.active = e; + }, + handlerPreviewImageClick(item) { + uni.previewImage({ + urls: this.info.imagesList, + current: item, + }); + }, + headerRepairImagesClick(item) { + uni.previewImage({ + urls: this.info.repairImagesList, + current: item, + }); }, async init(id) { const res = await request(apiArr.workOrderCrudInfo, "POST", { @@ -194,17 +202,16 @@ export default { }); const newRes = { ...res, - imagesList: res.images !== '' ? res.images.split(',').map(url => `picUrl${url}`) : [], - videosList: res.videos !== '' ? res.videos.split(',').map(url => `picUrl${url}`) : [], + imagesList: res.images !== '' ? res.images.split(',').map(url => `${picUrl}${url}`) : [], + videosList: res.videos !== '' ? res.videos.split(',').map(url => `${picUrl}${url}`) : [], + repairImagesList: res.repair_images !== "" ? res.repair_images.split(",").map((url) => `${picUrl}${url}`) : [], // 上报图片 + repairVideosList: res.repair_videos !== "" ? res.repair_videos.split(",").map((url) => `${picUrl}${url}`) : [], // 上报图片 } - console.log('222222', res.videos !== '' ? 222 : []); - console.log('newRes', newRes); this.info = newRes; }, }, onLoad(options) { - console.log("1111", options); const meun = menuButtonInfo(); this.top = meun.top; this.localHeight = meun.height; diff --git a/packages/community/repairList/index.css b/packages/community/repairList/index.css index aa5b36c3..a826d0f5 100644 --- a/packages/community/repairList/index.css +++ b/packages/community/repairList/index.css @@ -102,10 +102,10 @@ page { background: linear-gradient( 280deg, #FFFFFF 0%, #FFE7E7 100%); } .orderItemTit_state3{ - background: linear-gradient( 290deg, #FFFFFF 0%, #EDEDED 100%); + background: linear-gradient( 283deg, #FFFFFF 0%, #E1FFF0 100%); } .orderItemTit_state4{ - background: linear-gradient( 283deg, #FFFFFF 0%, #E1FFF0 100%); + background: linear-gradient( 290deg, #FFFFFF 0%, #EDEDED 100%); } .orderItemTit_left { @@ -139,6 +139,15 @@ page { color: #FFA600; font-weight: 600; } +.orderItem_row_state2 { + color: #FF4800; +} +.orderItem_row_state3 { + color: #2BE186; +} +.orderItem_row_state4 { + color: #999999; +} .df { display: flex; diff --git a/packages/community/repairList/index.vue b/packages/community/repairList/index.vue index f492f5e7..3dd6ac48 100644 --- a/packages/community/repairList/index.vue +++ b/packages/community/repairList/index.vue @@ -58,7 +58,7 @@
{{ item.room.name }}
-
+
{{ statusType[item.status].desc }}
@@ -116,18 +116,22 @@ export default { 1: { desc: "待指派", style: "orderItemTit_state1", + color: "orderItem_row_state1" }, 2: { desc: "进行中", style: "orderItemTit_state2", + color: "orderItem_row_state2" }, 3: { desc: "已完成", - style: "orderItemTit_state4", + style: "orderItemTit_state3", + color: "orderItem_row_state3" }, 4: { desc: "已作废", - style: "orderItemTit_state3", + style: "orderItemTit_state4", + color: "orderItem_row_state4" }, }, }; @@ -141,7 +145,6 @@ export default { NavgateTo(`../repairDetail/index?id=${id}`); }, headerTabsClick(e) { - console.log("111", e); this.active = e; this.list = []; this.flag = false; diff --git a/packages/workOrderDashboard/detail/index.css b/packages/workOrderDashboard/detail/index.css index 87e89b0e..41b50639 100644 --- a/packages/workOrderDashboard/detail/index.css +++ b/packages/workOrderDashboard/detail/index.css @@ -82,20 +82,20 @@ page { } .orderItemTit_state3 { - background: linear-gradient(290deg, #FFFFFF 0%, #EDEDED 100%); + background: linear-gradient(283deg, #FFFFFF 0%, #E1FFF0 100%); } .orderItemTit_state3 > .orderItemTit_right { font-size: 28rpx; - color: #999999; + color: #2BE186; font-size: 600; } .orderItemTit_state4 { - background: linear-gradient(283deg, #FFFFFF 0%, #E1FFF0 100%); + background: linear-gradient(290deg, #FFFFFF 0%, #EDEDED 100%); } .orderItemTit_state4 > .orderItemTit_right { font-size: 28rpx; - color: #2BE186; + color: #999999; font-size: 600; } @@ -233,4 +233,106 @@ color: #FF370B; font-weight: 400; font-size: 26rpx; color: #999999; +} + +.videoBOX { + width: 400rpx; + height: 200rpx; + position: relative; +} + +.videoBOX video { + width: 100% !important; + height: 100% !important; +} + +.mask { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + z-index: 2; + display: flex; + align-items: center; + justify-content: center; +} + +.mask_con { + width: 40rpx; + height: 40rpx; + z-index: 2; +} + +.mask_cancel { + background: rgba(255, 255, 255, 0.2); + border-radius: 5rpx 5rpx 5rpx 5rpx; + font-size: 24rpx; + color: #FFFFFF; + padding: 2rpx 11rpx; + position: absolute; + left: 30rpx; + top: 24rpx; + z-index: 2; +} + +.repairMedia { + width: 710rpx; + background: #FFFFFF; + border-radius: 20rpx 20rpx 20rpx 20rpx; + margin: 0 auto; + margin-top: 20rpx; + box-sizing: border-box; + padding: 30rpx 20rpx; +} +.repairMedia > .row { + display: flex; + padding-top: 30rpx; +} +.repairMedia > .df { + display: flex; + align-items: center; + /* justify-content: start; */ + padding-top: 0; + margin-bottom: 30rpx; +} +.repairMedia > .row_label { + font-size: 28rpx; + color: #999999; + width: 180rpx; +} +.u-upload__wrap__preview { + width: 120rpx; + height: 120rpx; + border-radius: 10rpx 0rpx 10rpx 10rpx !important; +} + +.u-upload__wrap__preview__image { + width: 100% !important; + height: 100% !important; + object-fit: cover; +} +.imgCon { + font-size: 18rpx; + color: #222222; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 120rpx; + height: 120rpx; + background: #F6F7FB; + border: 1rpx solid #D1D1D1; + border-radius: 10rpx 10rpx 10rpx 10rpx; +} + +.imgCon image { + width: 34rpx; + height: 34rpx; + margin-bottom: 8rpx; +} +.edit_row { + display: flex; + padding: 0 20rpx; + padding-top: 30rpx; } \ No newline at end of file diff --git a/packages/workOrderDashboard/detail/index.vue b/packages/workOrderDashboard/detail/index.vue index d16e46bc..0575801d 100644 --- a/packages/workOrderDashboard/detail/index.vue +++ b/packages/workOrderDashboard/detail/index.vue @@ -60,15 +60,14 @@
图片
- 暂无图片 + 暂无图片
@@ -77,16 +76,10 @@
视频
- 暂无视频 - + 暂无视频 +
+ +
@@ -96,67 +89,109 @@
-
+ +
维修师傅
-
{{ info.reporter_worker.name }}
+
{{ info.repairman_worker.name }}
师傅手机号
-
{{ info.reporter_worker.mobile }}
+
{{ info.repairman_worker.mobile }}
师傅工号
-
{{ info.reporter_worker.emp_no }}
+
{{ info.repairman_worker.emp_no }}
-
+ +
维修图片
+ 暂无图片 - + mode="" + @click="headerRepairImagesClick(item)" + />
维修视频
- + 暂无视频 +
+ +
维修描述
-
{{ info.repair_description }}
+
{{ info.repair_description || '暂无描述' }}
+
+
+
+
+
+
维修图片
+
+ +
+ + 上传图片 +
+
+
+
+ +
+
上传视频
+
+ +
+ + 上传视频 +
+
+ +
+ +
+ +
删除
+
+
+
+
+
+ +
+
维修描述
+