|
|
@@ -203,6 +203,22 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
|
+ <!-- 未施工设备 -->
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="未施工设备" prop="unSelectedDeviceNames">
|
|
|
+ <el-input
|
|
|
+ v-model="unSelectedDeviceNames"
|
|
|
+ type="textarea"
|
|
|
+ :rows="2"
|
|
|
+ placeholder="未施工的设备将显示在这里"
|
|
|
+ :readonly="true"
|
|
|
+ class="unselected-device"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
<!-- 第二行:施工工艺 -->
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
@@ -706,6 +722,32 @@ const removeAttachment = (index: number) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// 计算属性:未施工设备名称
|
|
|
+const unSelectedDeviceNames = computed(() => {
|
|
|
+ const selectedDevices = dailyReportData.value.selectedDevices || []
|
|
|
+ const selectedDeviceIds = formData.value.deviceIds || []
|
|
|
+
|
|
|
+ if (selectedDevices.length === 0) {
|
|
|
+ return '无可用设备'
|
|
|
+ }
|
|
|
+
|
|
|
+ // 筛选出未选择的设备
|
|
|
+ const unselectedDevices = selectedDevices.filter((device: any) =>
|
|
|
+ !selectedDeviceIds.includes(device.id)
|
|
|
+ )
|
|
|
+
|
|
|
+ if (unselectedDevices.length === 0) {
|
|
|
+ return '所有设备都已施工'
|
|
|
+ }
|
|
|
+
|
|
|
+ // 提取设备名称并用逗号分隔
|
|
|
+ const deviceNames = unselectedDevices
|
|
|
+ .map((device: any) => device.deviceName || device.deviceCode || '未知设备')
|
|
|
+ .filter((name: string) => name !== '未知设备')
|
|
|
+
|
|
|
+ return deviceNames.join(', ') || '无未选择设备'
|
|
|
+})
|
|
|
+
|
|
|
// 附件名称点击事件
|
|
|
const inContent = async (attachment) => {
|
|
|
if (!attachment || !attachment.filePath) {
|
|
|
@@ -760,7 +802,7 @@ const formatDevicesForDisplay = computed(() => {
|
|
|
}
|
|
|
|
|
|
const deviceNames = deviceIds
|
|
|
- .map(id => deviceMap.value[id]?.deviceCode)
|
|
|
+ .map(id => deviceMap.value[id]?.deviceName)
|
|
|
.filter(name => name !== undefined && name !== '')
|
|
|
|
|
|
if (deviceNames.length === 0) return '无设备'
|
|
|
@@ -1608,4 +1650,13 @@ const handleApprove = async (action: 'pass' | 'reject') => {
|
|
|
width: 100%;
|
|
|
margin-top: 10px;
|
|
|
}
|
|
|
+
|
|
|
+/* 未选择设备字段的只读样式 */
|
|
|
+:deep(.unselected-device .el-textarea__inner) {
|
|
|
+ background-color: #f5f7fa;
|
|
|
+ border-color: #e4e7ed;
|
|
|
+ color: #909399;
|
|
|
+ cursor: not-allowed;
|
|
|
+ resize: none;
|
|
|
+}
|
|
|
</style>
|