优化后,再次提交

This commit is contained in:
王利强
2026-05-03 09:08:56 +08:00
parent 721ef0ad54
commit 805747d1d9
1243 changed files with 46213 additions and 221 deletions

View File

@@ -1,11 +1,17 @@
<template>
<view class="page padding">
<view class="padding bg-white radius">
<view class="form-label margin-bottom">
<view class="text-gray">整改方案</view>
<view class="text-red">*</view>
<view class="form-header margin-bottom">
<view class="form-label">
<view class="text-gray">整改方案</view>
<view class="text-red">*</view>
</view>
<button class="ai-rectify-btn" :loading="aiGenerating" :disabled="aiGenerating" @click="handleAiGenerate">
<text v-if="!aiGenerating" class="cuIcon-magic ai-btn-icon"></text>
{{ aiGenerating ? 'AI生成中...' : 'AI生成整改方案' }}
</button>
</view>
<up-textarea v-model="formData.rectifyPlan" placeholder="请输入内容"></up-textarea>
<up-textarea v-model="formData.rectifyPlan" placeholder="请输入内容" :maxlength="-1" autoHeight></up-textarea>
<view class="form-label margin-bottom margin-top">
<view class="text-gray">整改完成情况</view>
<view class="text-red">*</view>
@@ -78,7 +84,7 @@
<script setup>
import {ref,reactive,computed} from 'vue'
import {onLoad} from '@dcloudio/uni-app'
import {submitRectification,getDepartmentPersonUsers,getRectifyDetail,getDeptUsersWithSubordinates} from '@/request/api.js'
import {submitRectification,getDepartmentPersonUsers,getRectifyDetail,getDeptUsersWithSubordinates,getHiddenDangerDetail,generateRectifyPlan} from '@/request/api.js'
import {baseUrl,getToken} from '@/request/request.js'
// 从页面参数获取的ID
@@ -352,6 +358,45 @@
}
};
// AI生成整改方案
const aiGenerating = ref(false);
const handleAiGenerate = async () => {
if (!hazardId.value) {
uni.showToast({ title: '缺少隐患信息', icon: 'none' });
return;
}
aiGenerating.value = true;
try {
const detailRes = await getHiddenDangerDetail({
hazardId: hazardId.value,
assignId: assignId.value
});
if (detailRes.code !== 0 || !detailRes.data) {
uni.showToast({ title: '获取隐患详情失败', icon: 'none' });
return;
}
const { title, description } = detailRes.data;
const aiRes = await generateRectifyPlan({ title, description });
if (aiRes.code === 0 && aiRes.data) {
if (aiRes.data.rawResponse) {
formData.rectifyPlan = aiRes.data.rawResponse;
}
uni.showToast({ title: 'AI生成完成', icon: 'success', duration: 2000 });
} else {
uni.showToast({ title: aiRes.msg || 'AI生成失败', icon: 'none' });
}
} catch (error) {
console.error('AI生成整改方案失败:', error);
uni.showToast({ title: 'AI生成失败请重试', icon: 'none' });
} finally {
aiGenerating.value = false;
}
};
onLoad((options) => {
if (options.hazardId) {
hazardId.value = options.hazardId;
@@ -379,7 +424,42 @@
background: #EBF2FC;
}
// 表单标签样式 - 让*号和文字对齐
.ai-rectify-btn {
display: flex;
align-items: center;
justify-content: center;
height: 60rpx;
padding: 0 24rpx;
margin: 0;
font-size: 24rpx;
color: #fff;
background: linear-gradient(135deg, #4facfe 0%, #2668EA 100%);
border-radius: 30rpx;
border: none;
white-space: nowrap;
flex-shrink: 0;
&::after {
border: none;
}
.ai-btn-icon {
margin-right: 6rpx;
font-size: 26rpx;
}
&[disabled] {
opacity: 0.7;
}
}
.form-header {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
.form-label {
display: flex;
align-items: center;