From f21e399dd475dec0d390ed244f4d1e7589c21a35 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Mon, 28 Apr 2025 21:25:21 +0800
Subject: [PATCH] 图片显示样式调整
---
src/views/tickets/ticket.vue | 130 ++++++++++++++++++++++++++++---------------
1 files changed, 85 insertions(+), 45 deletions(-)
diff --git a/src/views/tickets/ticket.vue b/src/views/tickets/ticket.vue
index c080f7c..bbc5b33 100644
--- a/src/views/tickets/ticket.vue
+++ b/src/views/tickets/ticket.vue
@@ -118,8 +118,8 @@
</el-button>
</avue-input-map>
<!-- <div v-if="form.location?.length >= 3">
- {{ form.location[2] || '获取地址中...' }}
-</div> -->
+ {{ form.location[2] || '获取地址中...' }}
+ </div> -->
</div>
</el-form-item>
</el-col>
@@ -167,9 +167,6 @@
<div class="custom-steps-container">
<!-- 标题行 -->
<div class="steps-titles">
- <div class="step-title active">
- {{ workType === 1 ? '发起工单' : '发起任务' }}
- </div>
<div v-for="(status, index) in stepStatusList" :key="index" :class="{
'step-title': true,
'active': index <= stepStatusList.indexOf(String(currentDetail.status))
@@ -179,22 +176,7 @@
</div>
<!-- Element Steps 组件 -->
- <el-steps :active="getActiveStep()" align-center class="custom-steps">
- <el-step>
- <template #description>
- <span class="step-description">
- {{ currentDetail.creator || '未知' }}
- </span>
- <div class="step-description">
- <template v-if="workType === 0">
- {{ currentDetail.job_create_time || currentDetail.startTime || '未知时间' }}
- </template>
- <template v-else>
- {{ currentDetail.startTime || '未知时间' }}
- </template>
- </div>
- </template>
- </el-step>
+ <el-steps :active="getActiveStep() - 1" align-center class="custom-steps">
<el-step v-for="(status, index) in stepStatusList" :key="index">
<template #description>
<span class="step-description">
@@ -550,17 +532,17 @@
page: true,
column: [
// { label: "序号", prop: "id", width: 70 },
- { label: "工单编号", prop: "orderNumber", width: 150 },
+ { label: "工单编号", prop: "orderNumber", width: 150, overHidden: true, tooltip: true },
{ label: "工单名称", prop: "orderName", width: 170, overHidden: true, tooltip: true },
- { label: "所属单位", prop: "department", width: 100 },
+ { label: "所属单位", prop: "department", width: 100, overHidden: true, tooltip: true },
{ label: "发起时间", prop: "startTime", width: 160 },
- { label: "关联算法", prop: "aiType", width: 160 },
- { label: "工单类型", prop: "type", width: 108 },
+ { label: "关联算法", prop: "aiType", width: 160, overHidden: true, tooltip: true },
+ { label: "工单类型", prop: "type", width: 120, overHidden: true, tooltip: true },
{
label: "工单内容",
prop: "content",
slot: true,
- width: 212,
+ width: 190,
overHidden: true
},
{ label: "创建人", prop: "creator", width: 100 },
@@ -603,7 +585,7 @@
callback()
}
},
- trigger: 'change'
+ trigger: 'blur'
}],
photos: [{
validator: (rule, value, callback) => {
@@ -998,7 +980,7 @@
startTime: item.create_time,
aiType: item.ai_types,
content: item.content, // 将后端返回的 content 映射为 content
- type: this.types.find(t => t.value === item.event_dict_key)?.label,
+ type: this.types.find(t => t.value === item.work_order_type_dict_key)?.label,
keyData: (!isNaN(longitude) && !isNaN(latitude))
? `${longitude.toFixed(6)}, ${latitude.toFixed(6)}`
: '未知位置',
@@ -1050,7 +1032,7 @@
return
}
- // 验证图片上传
+ // 修改图片验证逻辑
if (!this.form.photos || this.form.photos.length === 0) {
this.$message.warning('请上传工单图片')
return
@@ -1063,7 +1045,7 @@
longitude: String(this.form.location[0]),
latitude: String(this.form.location[1]),
address: this.form.address,
- eventDictKey: this.form.type,
+ workOrderTypeDictKey: this.form.type,
aiType: Array.isArray(this.form.algorithm) ? this.form.algorithm : [this.form.algorithm], // 传数组
updateUser: this.form.handler,
createDept: this.form.department,
@@ -1074,9 +1056,17 @@
submitData.id = this.form.id
}
- // 获取文件对象
- const file = this.form.photos[0].raw
- if (!file) {
+ // 修改获取文件的逻辑
+ let file = null
+ const photoInfo = this.form.photos[0]
+
+ if (photoInfo.raw) {
+ // 如果有新上传的文件,使用新文件
+ file = photoInfo.raw
+ } else if (photoInfo.existingUrl) {
+ // 如果是已存在的图片,将URL添加到提交数据中
+ submitData.photoUrl = photoInfo.existingUrl
+ } else {
this.$message.warning('图片文件无效,请重新上传')
return
}
@@ -1117,8 +1107,10 @@
longitude: this.form.location?.[0] ? String(this.form.location[0]) : undefined,
latitude: this.form.location?.[1] ? String(this.form.location[1]) : undefined,
address: this.form.address || undefined,
- eventDictKey: this.form.type || undefined,
- aiType: Array.isArray(this.form.algorithm) ? this.form.algorithm : [this.form.algorithm], // 传数组
+ workOrderTypeDictKey: this.form.type || undefined,
+ aiType: this.form.algorithm && this.form.algorithm.length > 0
+ ? this.form.algorithm
+ : undefined, // 传数组
updateUser: handlerValue,
createDept: this.form.department || undefined,
isDraft: 1
@@ -1158,6 +1150,7 @@
handleLocationChange (val) {
let locationValue = val.value
+ console.log('handleLocationChange', locationValue)
if (locationValue && locationValue.length >= 2) {
// 兼容第三项为地址
this.form.location = [
@@ -1479,7 +1472,7 @@
发起时间: item.create_time || '',
关联算法: item.ai_types || '',
工单内容: item.address || '',
- 工单类型: this.types.find(t => t.value === item.event_dict_key)?.label || '',
+ 工单类型: this.types.find(t => t.value === item.work_order_type_dict_key)?.label || '',
经纬度: (!isNaN(longitude) && !isNaN(latitude)) ? `${longitude.toFixed(6)}, ${latitude.toFixed(6)}` : '',
创建人: item.create_user || '',
处理人: item.update_user || '',
@@ -1526,8 +1519,12 @@
// 文件改变时的钩子
handleFileChange (file, fileList) {
- this.form.photos = fileList
- this.currentDetail.photos = fileList
+ // 保持最新的文件列表
+ this.form.photos = fileList.map(item => ({
+ ...item,
+ existingUrl: item.url && !item.raw ? item.url : null // 标记已存在的图片URL
+ }))
+ this.currentDetail.photos = this.form.photos
},
// 文件移除时的钩子
@@ -1821,7 +1818,7 @@
}
// 获取工单类型值 - 从types中找到匹配的值
- const typeValue = this.types.find(t => t.label === row.type)?.value || row.event_dict_key
+ const typeValue = this.types.find(t => t.label === row.type)?.value || row.work_order_type_dict_key
// 获取处理人ID - 使用userNameToIdMap映射
const handlerId = this.userNameToIdMap[row.handler] || row.handler
@@ -1835,19 +1832,39 @@
映射后类型值: typeValue
})
+ // 修改算法数组的处理逻辑
let algorithmArr = []
if (Array.isArray(row.aiType)) {
algorithmArr = row.aiType
} else if (typeof row.aiType === 'string' && row.aiType) {
- algorithmArr = row.aiType.split(',').map(i => i.trim())
+ // 首先尝试将字符串按照逗号或顿号分割
+ algorithmArr = row.aiType.split(/[,、]/).map(item => item.trim())
}
+
+ // 确保算法值与选项匹配
+ algorithmArr = algorithmArr.map(item => {
+ // 如果是字符串值,尝试找到对应的 dict_key
+ if (typeof item === 'string') {
+ const matchedAlgorithm = this.algorithms.find(
+ algo => algo.dict_value === item || algo.dict_key === item
+ )
+ return matchedAlgorithm ? matchedAlgorithm.dict_key : item
+ }
+ return item
+ }).filter(Boolean) // 过滤掉无效值
+
+ console.log('算法处理:', {
+ 原始值: row.aiType,
+ 分割后: algorithmArr,
+ })
+
this.form = {
id: row.id,
name: row.orderName,
type: typeValue,
department: deptId,
- handler: handlerId, // 使用映射后的处理人ID
- algorithm: algorithmArr, // 回显为数组
+ handler: handlerId,
+ algorithm: algorithmArr,
location: Array.isArray(row.location) && row.location.length >= 2
? [Number(row.location[0]), Number(row.location[1])]
: [],
@@ -1855,6 +1872,7 @@
content: row.content,
photos: [],
}
+
this.form.location = Array.isArray(row.location) && row.location.length >= 2
? [
Number(row.location[0]),
@@ -1871,14 +1889,36 @@
}
// 如果有图片,添加到表单中
if (row.photo_url) {
+ // 创建一个带有必要信息的文件对象
this.form.photos = [{
- name: 'existing-photo',
- url: row.photo_url
+ name: 'existing-photo.jpg', // 添加默认扩展名
+ url: row.photo_url, // 用于预览的URL
+ status: 'success', // 标记为已上传成功
+ raw: null, // 初始化为null
+ existingUrl: row.photo_url // 保存原始URL,用于区分是否为已存在的图片
}]
}
+ // 调试输出
+ console.log('编辑表单数据:', {
+ 原始算法值: row.aiType,
+ 处理后算法值: algorithmArr,
+ 表单数据: this.form
+ })
+
this.dialogVisible = true
},
+
+ // 添加数据监听以确保算法数据的响应性
+ watch: {
+ 'form.algorithm': {
+ handler (newVal) {
+ console.log('算法值变化:', newVal)
+ },
+ deep: true
+ }
+ },
+
// 添加删除方法
handleDelete (row) {
this.$confirm('确认删除该工单?', '提示', {
@@ -2519,8 +2559,8 @@
:deep(.el-image) {
width: 100% !important;
- max-height: 100%;
max-width: 100%;
+ max-height: 100%;
.el-image__inner {
width: 100%;
--
Gitblit v1.9.3