From 39ee4cd9c240e9e05ff03c7b48466b17212eec0f Mon Sep 17 00:00:00 2001 From: Rain_ <904416525@qq.com> Date: Thu, 10 Jul 2025 16:25:18 +0800 Subject: [PATCH] =?UTF-8?q?flx=EF=BC=9A=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../staffAttendance/staffAttendance.vue | 82 ++++++++++---- .../workTicketManage/addWorkTicket.vue | 89 +++++++++++---- pages/projectEnd/workTicketManage/index.vue | 8 +- .../workTicketManage/workTicketDetail.vue | 106 +++++++++++++----- .../workTicketManage/workTicketList.vue | 47 ++++++-- static/workTicketManage/calendar-active.png | Bin 0 -> 894 bytes static/workTicketManage/calendar.png | Bin 0 -> 925 bytes 7 files changed, 254 insertions(+), 78 deletions(-) create mode 100644 static/workTicketManage/calendar-active.png create mode 100644 static/workTicketManage/calendar.png diff --git a/pages/projectEnd/laborManage/staffAttendance/staffAttendance.vue b/pages/projectEnd/laborManage/staffAttendance/staffAttendance.vue index afa880dc..f72ebaed 100644 --- a/pages/projectEnd/laborManage/staffAttendance/staffAttendance.vue +++ b/pages/projectEnd/laborManage/staffAttendance/staffAttendance.vue @@ -16,33 +16,49 @@ 搜索 - + - + + v-model="searchInfo.enterDate" :options="enterDateList"> + + + + + + + :title="inserviceTypeListUp"> + + + + - + @@ -50,8 +66,8 @@ - + @@ -96,7 +112,7 @@ }, data() { return { - checkedIds: [], + checkedIds: [''], mobileTopHeight: 0, show: false, searchName: "", @@ -122,7 +138,7 @@ loadStatus: 'more', optsDetail: {}, searchInfo: { - enterpriseIds: "", + enterpriseId: "", teamId: "", workerTypeId: "", inserviceType: "", @@ -173,13 +189,18 @@ }], workerTypeList: [], range: '综合推荐', - dropDownShow: false + dropDownShow: false, + teamIds: [''], + enterDates: [''], + inserviceTypes: [''], + workerTypeIds: [''], } }, onLoad(opts) { console.log(112233, opts) this.optsDetail = opts; this.searchInfo.inserviceType = opts.inserviceType ? opts.inserviceType : ""; + this.inserviceTypes = opts.inserviceType ? [opts.inserviceType] : [""]; this.searchInfo.enterDate = opts.enterDate ? opts.enterDate : ""; this.projectDetail = JSON.parse(uni.getStorageSync('projectDetail')) @@ -220,13 +241,32 @@ close(){ this.dropDownShow = false }, - onNodeClick(node, path) { + onNodeClick(type) { // node: 当前点击的节点 // path: 从根到当前节点的所有父级(含自己) - console.log('点击节点', node, '路径', path, this.checkedIds); - this.onMenuClick({ - value: this.checkedIds.join(',') - }, 3) + console.log(type, this.typeIds, this.checkedIds); + if (type == 1) { + this.onMenuClick({ + value: this.teamIds.join(',') + }, 1) + } else if (type == 2) { + this.onMenuClick({ + value: this.enterDates.join(',') + }, 2) + } else if (type == 3) { + this.onMenuClick({ + value: this.checkedIds.join(',') + }, 3) + } else if (type == 4) { + this.onMenuClick({ + value: this.inserviceTypes.join(',') + }, 3) + } else if (type == 4) { + this.onMenuClick({ + value: this.workerTypeIds.join(',') + }, 3) + } + this.$refs.uDropdown.close(); }, filterTap() { //显示下拉框 @@ -251,9 +291,13 @@ if (type == 1) { this.searchInfo.teamId = row.value; } else if (type == 2) { - this.searchInfo.workerTypeId = row.value; + this.searchInfo.enterDate = row.value; } else if (type == 3) { - this.searchInfo.enterpriseIds = row.value; + this.searchInfo.enterpriseId = row.value; + } else if (type == 4) { + this.searchInfo.inserviceType = row.value; + } else if (type == 5) { + this.searchInfo.workerTypeId = row.value; } diff --git a/pages/projectEnd/workTicketManage/addWorkTicket.vue b/pages/projectEnd/workTicketManage/addWorkTicket.vue index d981ffa9..89d9266d 100644 --- a/pages/projectEnd/workTicketManage/addWorkTicket.vue +++ b/pages/projectEnd/workTicketManage/addWorkTicket.vue @@ -63,9 +63,9 @@ 作业人员: - - {{workTicketInfo.operator.length}}/50 + {{workTicketInfo.operator.length}}/200 + @@ -179,11 +180,12 @@ 工作票已{{onEditType ? '编辑' : '添加'}}完成,是否立即开始作业? - 点击立即开始,则会下发指令到作业监控设备,开启设备录像。 + 点击立即开始后,需要到执法记录仪上手动开始工单,才能进行录像,否则只能查看实时监控。 - 取消 + 上一步 + 取消 下一步 @@ -283,7 +285,8 @@ {{policeCameraItemInfo.devName}} - {{policeCameraItemInfo.bindTicket == 1 ? '已绑定' : '空闲'}} + {{policeCameraItemInfo.bindTicket == 1 ? '已绑定' : '空闲'}} + { if (res.code == 200) { that.enterpriseInfoList = res.result; + + const find = res.result.find(item => item.id == that.userInfo.enterpriseId); + console.log(find, ) + if (find && !that.onEditType) { + that.onApplicantsClick(find.id, true, find.enterpriseName); + that.onSubmitType(2); + } + } + } + }) + }, + // 查询项目子账号绑定的区域列表 + getQueryBindRegionsFn() { + let that = this; + let data = { + // projectSn: this.projectDetail.projectSn, + }; + this.sendRequest({ + url: 'xmgl/qualityRegion/queryBindRegions', + method: 'GET', + data: data, + success: res => { + if (res.code == 200) { + console.log(res.result); + res.result.forEach(item => { + that.onConstructionAreasClick(item.id, true, item.regionName); + }) + that.onSubmitType(1); } } }) @@ -1047,6 +1084,11 @@ color: #171717; } + image { + width: 32rpx; + height: 32rpx; + } + .u-icon { font-size: 40rpx; color: #EA3941; @@ -1259,7 +1301,7 @@ font-weight: 500; >view:first-child { - width: 162rpx; + width: 164rpx; color: #808080; height: 68rpx; display: flex; @@ -1311,8 +1353,11 @@ position: relative; /deep/ .u-input { - height: 160rpx; + // height: 160rpx; line-height: 68rpx; + min-height: 160rpx !important; + height: initial; + padding-bottom: 20px !important; } .textarea_text { @@ -1433,7 +1478,9 @@ color: #5181F6; } } - + uni-scroll-view { + margin: 26rpx 0; + } .content-popup_header { height: 86rpx; box-shadow: 0rpx 8rpx 10rpx -8rpx rgba(81, 129, 246, 0.42); diff --git a/pages/projectEnd/workTicketManage/index.vue b/pages/projectEnd/workTicketManage/index.vue index d97fd697..55ea352c 100644 --- a/pages/projectEnd/workTicketManage/index.vue +++ b/pages/projectEnd/workTicketManage/index.vue @@ -163,8 +163,10 @@ onLoad() { this.projectDetail = JSON.parse(uni.getStorageSync('projectDetail')) this.getWorkTicketTypeListFn(); - this.getWorkTicketListFn(); + }, + onShow() { this.getWorkTicketCountWorkTicketFn(); + this.getWorkTicketListFn(); }, mounted() { var that = this @@ -376,7 +378,9 @@ font-size: 30rpx; color: #1A1A1A; } - + uni-scroll-view { + margin: 26rpx 0; + } .confrim-btn { padding: 18rpx 26rpx; background-color: #FFFFFF; diff --git a/pages/projectEnd/workTicketManage/workTicketDetail.vue b/pages/projectEnd/workTicketManage/workTicketDetail.vue index 8284833d..5ed01b91 100644 --- a/pages/projectEnd/workTicketManage/workTicketDetail.vue +++ b/pages/projectEnd/workTicketManage/workTicketDetail.vue @@ -3,7 +3,7 @@ - {{ current == 0 ? '工作票详情' : '查看实时监控'}} + {{ current == 0 ? '工作票详情' : '查看历史回放'}} @@ -14,12 +14,15 @@ :options="workTicketInfo.itemList"> - + + - + 工作票基本信息 @@ -31,7 +34,7 @@ - + 工作票编号: {{workTicketInfo.workTicketNumber}} @@ -45,21 +48,21 @@ 作业内容: - + {{workTicketInfo.expandMoreShow ? '收起': '展开更多'}} - + {{workTicketInfo.workContent}} 安全措施: - + {{workTicketInfo.expandMoreShow1 ? '收起': '展开更多'}} - - {{workTicketInfo.workContent}} + + {{workTicketInfo.safetyMeasure}} 施工场站: @@ -118,7 +121,8 @@ - + 历史作业记录 @@ -173,7 +177,7 @@ - 点击暂停作业后,则会下发指令到作业监控设备,关闭设备录像。 + 点击暂停作业后,需要到执法记录仪上手动结束工单。结束后录像将会自动上传到平台,可在历史回放中查看。 @@ -182,7 +186,7 @@ - 点击结束作业后,则会下发指令到作业监控设备,关闭设备录像并释放此设备 + 点击结束作业后,需要到执法记录仪上手动结束工单,结束后录像将会自动上传到平台,可在历史回放中查看 @@ -231,10 +235,10 @@ stateType: "", itemId: "", videoItemInfo: { - videoInfo: { - url: "https://gcalic.v.myalicdn.com/gc/wgw05_1/index.m3u8", - } + url: "https://gcalic.v.myalicdn.com/gc/wgw05_1/index.m3u8", }, + lineHeightFlag1: false, + lineHeightFlag2: false, } }, onLoad(opts) { @@ -253,7 +257,31 @@ } }) }, + onReady() { + setTimeout(() => { + this.getLineCount(); + }, 500) + }, methods: { + getLineCount() { + const that = this; + uni.createSelectorQuery().in(this).select('#box-content_detail1').boundingClientRect(rect => { + if (rect) { + let lineHeight = parseInt(rect.height / uni.upx2px(20)); + if (lineHeight > 2) { + that.lineHeightFlag1 = true; + } + } + }).exec(); + uni.createSelectorQuery().in(this).select('#box-content_detail2').boundingClientRect(rect => { + if (rect) { + let lineHeight = parseInt(rect.height / uni.upx2px(20)); + if (lineHeight > 2) { + that.lineHeightFlag2 = true; + } + } + }).exec(); + }, onStateShow(type) { this.stateType = type; this.stateShow = true; @@ -375,7 +403,15 @@ data: data, success: res => { if (res.code == 200) { - that.videoItemInfo = res.result; + const videoInfo = res.result.videoInfo; + that.videoItemInfo = { + ...videoInfo, + url: videoInfo.url ? videoInfo.url : '', + }; + if (!that.videoItemInfo.url) { + that.showToast("该设备暂未绑定监控", "warning") + } + console.log(1111, that.videoItemInfo.url) } } }) @@ -439,7 +475,7 @@ .itemId); return find ? find.label : '--' }, - itemListDevNameUp(){ + itemListDevNameUp() { return this.workTicketInfo.itemList ? this.workTicketInfo.itemList.map(item => item.devName).join('、') : "" }, statusUp() { @@ -482,6 +518,10 @@