From 289367f7066d1179685a501ec5a108fa11a7c0f2 Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期五, 30 五月 2025 11:14:26 +0800 Subject: [PATCH] 维修工单实际工时展示实际十分修改 --- src/views/eam/modules/repairorder/moudles/RepairOrderActualHoursReport.vue | 201 +++++++++++++++++++++++++++++++------------------- 1 files changed, 124 insertions(+), 77 deletions(-) diff --git a/src/views/eam/modules/repairorder/moudles/RepairOrderActualHoursReport.vue b/src/views/eam/modules/repairorder/moudles/RepairOrderActualHoursReport.vue index 3a61ac0..62665b8 100644 --- a/src/views/eam/modules/repairorder/moudles/RepairOrderActualHoursReport.vue +++ b/src/views/eam/modules/repairorder/moudles/RepairOrderActualHoursReport.vue @@ -18,12 +18,9 @@ slot-scope='text, record, index' > <div :key='col.dataIndex'> - <a-input-search - v-if="col.dataIndex == 'username'" - enter-button - @search='onSearchUser(index)' + <a-input + v-if="col.dataIndex == 'userId'" :value='text' - :read-only='true' @change='(e) => handleChange(e, record.key, col, index)' :disabled="repairOrderStatus=='4'" /> @@ -38,14 +35,25 @@ <!-- <a-switch @change='(e)=>onChange(e, record.key, col, index)' :value='text' :disabled="repairOrderStatus=='4'"--> <!-- v-if="col.dataIndex == 'principalContractor'" />--> - <a-select default-value='0' :value='text' :disabled="repairOrderStatus=='4'" - v-if="col.dataIndex == 'principalContractor'" - @change='(e)=>handleChange(e, record.key, col, index)'> + <a-select + default-value='0' + :value='text' + :disabled="repairOrderStatus=='4'" + v-if="col.dataIndex == 'principalContractor'" + style="width: 100%;" + @change='(e)=>handleChange(e, record.key, col, index)' + > <a-select-opt-group> - <a-select-option value='1'> + <a-select-option + value='1' + style="width: 100%;" + > 鏄� </a-select-option> - <a-select-option value='0'> + <a-select-option + value='0' + style="width: 100%;" + > 鍚� </a-select-option> </a-select-opt-group> @@ -63,14 +71,16 @@ :value='text' format='YYYY-MM-DD HH:mm' :show-time="{ defaultValue: moment('00:00', 'HH:mm') }" - v-if="col.dataIndex == 'startTime'" @change='(e)=>handleChange(e, record.key, col, index)' + v-if="col.dataIndex == 'startTime'" + @change='(e)=>handleChange(e, record.key, col, index)' /> <!-- :disabled="repairOrderStatus=='4'"--> <a-date-picker :value='text' format='YYYY-MM-DD HH:mm' :show-time="{ defaultValue: moment('00:00', 'HH:mm') }" - v-if="col.dataIndex == 'endTime'" @change='(e)=>handleChange(e, record.key, col, index)' + v-if="col.dataIndex == 'endTime'" + @change='(e)=>handleChange(e, record.key, col, index)' /> <!-- <a-input-number--> @@ -111,13 +121,13 @@ > 鍙栨秷 </a-button> - <a-button + <!-- <a-button @click='handleOk(1)' type='primary' :style="{marginRight: '8px'}" :disabled="this.repairOrderStatus=='4' || this.repairOrderStatus=='2'" >鏆傚瓨 - </a-button> + </a-button> --> <a-button @click='handleOk(0)' type='primary' @@ -161,7 +171,6 @@ repairOrderId: { type: String, required: false, - default: '-1' }, repairOrderStatus: { type: String, @@ -198,7 +207,7 @@ validatorRules: { userId: { rules: [ - { required: true, message: '璇烽�夋嫨浜哄憳!' } + { required: true, message: '璇峰~鍐欎汉鍛�!' } ] }, actual_hour: { @@ -228,50 +237,48 @@ key: 'rowIndex', width: 60, align: 'center', - customRender: function(t, r, index) { + customRender: function (t, r, index) { return parseInt(index) + 1 } }, { - title: '*浜哄憳缂栫爜', - dataIndex: 'username', + title: '*浜哄憳鍚嶇О', + dataIndex: 'userId', align: 'center', - scopedSlots: { customRender: 'username' }, - className: 'red', - width: 250 + scopedSlots: { customRender: 'userId' }, + // className: 'red', + width: 200 }, { - title: '浜哄憳鍚嶇О', - dataIndex: 'realname', - align: 'center', - width: 150 - }, - { - title: '涓绘壙淇汉', + title: '*涓绘壙淇汉', dataIndex: 'principalContractor', align: 'center', scopedSlots: { customRender: 'principalContractor' }, - width: 100 + // className: 'red', + width: 150 }, { title: '*瀹為檯宸ユ椂', dataIndex: 'actualHour', align: 'center', - className: 'red', + // className: 'red', scopedSlots: { customRender: 'actualHour' }, - width: 120 + width: 150 }, { title: '寮�濮嬫椂闂�', dataIndex: 'startTime', scopedSlots: { customRender: 'startTime' }, - align: 'center' + align: 'center', + width: 200 }, { title: '缁撴潫鏃堕棿', dataIndex: 'endTime', align: 'center', - scopedSlots: { customRender: 'endTime' } + scopedSlots: { customRender: 'endTime' }, + width: 200 + }, { @@ -279,12 +286,14 @@ dataIndex: 'theoreticalTime', align: 'center' // scopedSlots: { customRender: 'theoreticalTime' }, + , + width: 150 }, { title: '鎿嶄綔', dataIndex: 'action', align: 'center', - width: 250, + width: 150, scopedSlots: { customRender: 'action' } } ], @@ -300,9 +309,11 @@ repairOrderId: { immediate: true, handler(val) { - this.clearList() - this.queryParam['repairOrderId'] = val - this.loadData(1) + if (this.repairOrderId) { + this.clearList() + this.queryParam['repairOrderId'] = val + this.loadData(1) + } } } }, @@ -311,7 +322,7 @@ onChange(checked) { console.log(`a-switch to ${checked}`) }, -//鏃堕棿閫夋嫨淇敼 + //鏃堕棿閫夋嫨淇敼 onStartTimeChange() { console.log() @@ -332,7 +343,8 @@ this.disableSubmit = false this.visible = false }, - handleDelete(text, record, index) { + handleDelete(index) { + console.log(index) this.dataSource.splice(index, 1) }, @@ -365,8 +377,11 @@ for (let i = 0; i < formData.repairOrderActualWorkHoursList.length; i++) { const start = formData.repairOrderActualWorkHoursList[i].startTime const end = formData.repairOrderActualWorkHoursList[i].endTime - formData.repairOrderActualWorkHoursList[i].startTime = moment(start).format('yyyy-MM-DD HH:mm') - formData.repairOrderActualWorkHoursList[i].endTime = moment(end).format('yyyy-MM-DD HH:mm') + formData.repairOrderActualWorkHoursList[i].startTime = this.formattedTime(start); + + formData.repairOrderActualWorkHoursList[i].endTime = this.formattedTime(end); + // formData.repairOrderActualWorkHoursList[i].startTime = moment(start).format('yyyy-MM-DD HH:mm') + // formData.repairOrderActualWorkHoursList[i].endTime = moment(end).format('yyyy-MM-DD HH:mm') } // formData.equipmentId = that.equipmentId; let obj = obj = postAction(this.url.confirmHour, formData) @@ -385,21 +400,54 @@ } }) }, + formattedTime(originalTime) { + + // 鍒涘缓 Date 瀵硅薄 + const date = new Date(originalTime) + + // 妫�鏌� Date 瀵硅薄鏄惁鏈夋晥 + if (isNaN(date.getTime())) return '鏃犳晥鏃堕棿' + + // 鑾峰彇骞淬�佹湀銆佹棩銆佹椂銆佸垎 + const year = date.getFullYear() + const month = String(date.getMonth() + 1).padStart(2, '0') + const day = String(date.getDate()).padStart(2, '0') + const hours = String(date.getHours()).padStart(2, '0') + const minutes = String(date.getMinutes()).padStart(2, '0') + // 鎷兼帴鎴愭寚瀹氭牸寮� + return `${year}-${month}-${day} ${hours}:${minutes}` + }, + handleChange(value, key, column, index) { let that = this const temp = [...that.dataSource] const target = temp[index] if (target) { - target[column.dataIndex] = value if ('userId' == column.dataIndex) { - target['userId'] = value + target['userId'] = value.target.value } if ('principalContractor' == column.dataIndex) { target['principalContractor'] = value + if (value === '1') { + for (var i = 0; i < temp.length; i++) { + if (i !== index) { + temp[i]['principalContractor'] = '0'; + } + } + } } if ('actualHour' == column.dataIndex) { - target['actualHour'] = value + if (target['theoreticalTime'] !== null && target['theoreticalTime'] < value) { + that.$message.error('璇锋鏌ョ' + (index + 1) + '琛屽疄闄呭伐鏃朵笉鑳藉皬浜庣悊璁哄伐鏃�,璇烽噸鏂板~鍐�') + target['actualHour'] = null; + } else if (target['theoreticalTime'] === null || target['theoreticalTime'] === undefined) { + that.$message.error('璇锋鏌ョ' + (index + 1) + '璇峰厛濉啓寮�濮嬫椂闂翠笌缁撴潫鏃堕棿') + target['actualHour'] = null; + } else { + target['actualHour'] = value + } + } // if ('theoreticalTime' == column.dataIndex) { // target['theoreticalTime'] = value @@ -408,56 +456,55 @@ if (target['endTime'] == null) { target['startTime'] = value - } else if (target['startTime'] != null && target['endTime'] != null) { - const diffInHours = this.getTimeDiff(target['startTime'], target['endTime']) - if (diffInHours < 0) { - target['startTime'] = '' - target['theoreticalTime'] = '' - that.$message.error('璇锋鏌ョ' + (index + 1) + '琛屽紑濮嬫椂闂翠笉鑳藉皬浜庣粨鏉熸椂闂�,璇烽噸鏂伴�夋嫨') - } else { - target['startTime'] = value - target['theoreticalTime'] = diffInHours - } - } else if (target['startTime'] == null && target['endTime'] != null) { + } else { const diffInHours = this.getTimeDiff(value, target['endTime']) if (diffInHours < 0) { target['startTime'] = '' target['theoreticalTime'] = '' - that.$message.error('璇锋鏌ョ' + (index + 1) + '琛屽紑濮嬫椂闂翠笉鑳藉皬浜庣粨鏉熸椂闂�,璇烽噸鏂伴�夋嫨') - + that.$message.error('寮�濮嬫椂闂翠笉鑳藉皬浜庣粨鏉熸椂闂�,璇烽噸鏂伴�夋嫨') } else { - target['startTime'] = value - target['theoreticalTime'] = diffInHours + if (target['actualHour'] !== null) { + if (diffInHours < target['actualHour']) { + target['startTime'] = '' + target['theoreticalTime'] = '' + that.$message.error('瀹為檯宸ユ椂涓嶈兘灏忎簬鐞嗚宸ユ椂,璇烽噸鏂板~鍐�') + } else { + target['startTime'] = value + target['theoreticalTime'] = diffInHours + } + } else { + target['startTime'] = value + target['theoreticalTime'] = diffInHours + } } } - } if ('endTime' == column.dataIndex) { if (target['startTime'] == null) { target['endTime'] = value - } else if (target['startTime'] != null && target['endTime'] != null) { - const diffInHours = this.getTimeDiff(target['startTime'], target['endTime']) - if (diffInHours < 0) { - target['endTime'] = '' - target['theoreticalTime'] = '' - that.$message.error('璇锋鏌ョ' + (index + 1) + '琛屽紑濮嬫椂闂翠笉鑳藉皬浜庣粨鏉熸椂闂�,璇烽噸鏂伴�夋嫨') - } else { - target['endTime'] = value - target['theoreticalTime'] = diffInHours - } - - } else if (target['startTime'] != null && target['endTime'] == null) { + } else { const diffInHours = this.getTimeDiff(target['startTime'], value) if (diffInHours < 0) { target['endTime'] = '' target['theoreticalTime'] = '' - that.$message.error('璇锋鏌ョ' + (index + 1) + '琛屽紑濮嬫椂闂翠笉鑳藉皬浜庣粨鏉熸椂闂�,璇烽噸鏂伴�夋嫨') - + that.$message.error('寮�濮嬫椂闂翠笉鑳藉皬浜庣粨鏉熸椂闂�,璇烽噸鏂伴�夋嫨') } else { - target['endTime'] = value - target['theoreticalTime'] = diffInHours + if (target['actualHour'] !== null) { + if (diffInHours < target['actualHour']) { + target['endTime'] = '' + target['theoreticalTime'] = '' + that.$message.error('瀹為檯宸ユ椂涓嶈兘灏忎簬鐞嗚宸ユ椂,璇烽噸鏂板~鍐�') + } else { + target['endTime'] = value + target['theoreticalTime'] = diffInHours + } + } else { + target['endTime'] = value + target['theoreticalTime'] = diffInHours + } } + } } that.dataSource = temp -- Gitblit v1.9.3