From 93fd50d4705b441125a05439b20a8531a2e453f7 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Wed, 10 Dec 2025 09:05:15 +0800
Subject: [PATCH] Merge branch 'refs/heads/feature/v9.0/9.0.1' into feature/v9.0/9.0.2
---
src/views/tickets/ticketComponent/TicketDetailDialog.vue | 161 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 140 insertions(+), 21 deletions(-)
diff --git a/src/views/tickets/ticketComponent/TicketDetailDialog.vue b/src/views/tickets/ticketComponent/TicketDetailDialog.vue
index 2bd198d..3532696 100644
--- a/src/views/tickets/ticketComponent/TicketDetailDialog.vue
+++ b/src/views/tickets/ticketComponent/TicketDetailDialog.vue
@@ -157,7 +157,7 @@
placeholder="请输入事件处理详情"
:rows="4"
:maxlength="200"
- show-word-limit
+ show-word-limit
style="width: 100%; margin-bottom: 10px"
:disabled="!isCurrentUserAssigned"
/>
@@ -395,6 +395,7 @@
import { ElMessage} from 'element-plus';
const store = useStore()
const userInfo = computed(() => store.state.user.userInfo)
+const isLoading = ref(false);
// console.log('userInfo',userInfo.value);
// 定义props
const props = defineProps({
@@ -527,8 +528,13 @@
() => props.currentDetail,
(newVal) => {
if (newVal && dialogVisible.value) {
- loadStepInfo();
- initMap();
+ isLoading.value = true;
+ setTimeout(() => {
+ loadStepInfo();
+ initMap();
+ isLoading.value = false;
+ }, 50);
+
}
},
{ deep: true }
@@ -635,7 +641,7 @@
const hasProcessedAndOverBtnPermission = () => {
return props.permission && props.permission.tickets_view_processedAndOver === true;
};
-
+// 通过不通过
const hasReviewBtnPermission = () => {
return props.permission && props.permission.tickets_review_btn === true;
};
@@ -734,10 +740,9 @@
const handleComplete = async () => {
if (completeLoading.value) return;
completeLoading.value = true;
-
- try {
if (!props.currentDetail.processingDetail) {
ElMessage.warning('请先填写事件处理详情');
+ completeLoading.value = false;
return;
}
@@ -746,18 +751,15 @@
completeLoading.value = false;
return;
}
-
+ try {
const data = {
id: props.currentDetail.id,
status: props.currentDetail.status,
processingDetails: props.currentDetail.processingDetail,
eventNum: props.currentDetail.orderNumber,
};
-
const file = props.currentDetail.photos?.[0]?.raw || null;
-
const response = await flowEvent(data, file);
-
if (response.data.code === 0) {
ElMessage.success('工单已完成');
emit('detail-success');
@@ -780,11 +782,10 @@
<style lang="scss">
.custom-dialog {
- max-height: 96vh;
- transition: max-height 0.3s ease-out;
+ height: 96vh;
+// min-height: 50vh;
.el-dialog__body {
border-top: 0.1rem solid #f0f0f0;
- overflow: hidden;
}
}
@@ -824,13 +825,14 @@
.step-timer {
position: absolute;
- right: 80%;
+ right: 92%;
top: 50%;
transform: translateY(-50%);
width: 100px;
margin-left: 4px;
color: #666;
font-size: 12px;
+ white-space: nowrap;
}
.event-total-time {
@@ -840,6 +842,9 @@
margin-bottom: 12px;
}
+.action-bar {
+ margin-bottom: 16px;
+}
.el-dialog {
.el-form-item {
@@ -867,14 +872,116 @@
margin-top: 12px;
}
+.create-ticket-form {
+ padding: 20px 10px;
+
+ .form-section {
+ background-color: #fff;
+ border-radius: 4px;
+
+ .el-row {
+ margin-bottom: 16px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
+
+ .location-wrapper {
+ width: 100%; // 修改为100%以适应父容器
+ height: auto; // 修改为auto以自适应内容
+
+ .map-button {
+ width: 100%; // 让按钮填满容器宽度
+ height: 36px; // 与其他输入框保持一致的高度
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ i {
+ margin-right: 4px;
+ }
+ }
+
+ .location-text {
+ margin-top: 8px;
+ padding: 8px 12px;
+ background-color: #f5f7fa;
+ border-radius: 4px;
+ color: #606266;
+ font-size: 13px;
+ line-height: 1.4;
+ }
+ }
+
+ .upload-wrapper {
+ .uploader {
+ :deep(.el-upload--picture-card) {
+ width: 120px;
+ height: 100px;
+ line-height: 128px;
+ }
+
+ :deep(.el-upload-list__item) {
+ width: 120px;
+ height: 120px;
+ }
+ }
+
+ .upload-tip {
+ font-size: 12px;
+ color: #909399;
+ line-height: 1.4;
+ margin-top: 8px;
+ }
+ }
+
+ .el-form-item {
+ margin-bottom: 18px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ :deep(.el-form-item__label) {
+ font-weight: 500;
+ color: #606266;
+ }
+ :deep(.el-textarea__inner) {
+ padding: 8px 12px;
+ }
+ .full-width {
+ width: 100%;
+ }
+}
+
:deep(.el-dialog__body) {
border-top: 0.1rem solid #f0f0f0;
}
+.dialog-footer-new {
+ text-align: right;
+ padding-top: 16px;
+ border-top: 1px solid #ebeef5;
+
+ .el-button + .el-button {
+ margin-left: 12px;
+ }
+
+ .el-button {
+ padding: 9px 20px;
+
+ &:last-child {
+ margin-left: 12px;
+ }
+ }
+}
.dialog-footer1-new {
position: sticky;
- // bottom: 28px;
+ bottom: 28px;
left: 0;
right: 0;
background: white;
@@ -916,6 +1023,18 @@
}
}
+.location-info {
+ margin-top: 10px;
+ padding: 10px;
+ background-color: #f5f7fa;
+ border-radius: 4px;
+
+ p {
+ margin: 5px 0;
+ color: #606266;
+ font-size: 14px;
+ }
+}
.map-select {
display: flex;
@@ -1071,13 +1190,12 @@
}
.PopUpTableScrolls {
- max-height: calc(100vh - 380px);
- min-height: 200px;
- overflow-y: auto;
+ max-height: 600px;
+ overflow-y: scroll;
overflow-x: hidden;
- padding-bottom: 30px;
- scrollbar-width: thin;
+
}
+
.media-box {
width: 100%;
border: 1px solid #dcdfe6;
@@ -1261,7 +1379,6 @@
}
}
}
-
/* 新建工单和处理工单的上传组件样式 */
.create-upload,
.detail-upload {
@@ -1296,6 +1413,7 @@
object-fit: contain;
}
}
+
/* 必填项样式 */
.required-label {
position: relative;
@@ -1306,6 +1424,7 @@
margin-right: 4px;
}
}
+
/* 必填输入框样式 */
.required-input {
width: 100%;
--
Gitblit v1.9.3