| | |
| | | 保存OPT
|
| | | </button>
|
| | | </template>
|
| | | |
| | | <script setup>
|
| | | import { ref,onMounted } from 'vue';
|
| | | import RectRenderer from './page/RectRenderer.vue';
|
| | | import mockLayoutData from '../../../components/pp/MockData';
|
| | | import request from "@/utils/request";
|
| | |
|
| | | <script setup>import { ref, onMounted } from 'vue';
|
| | | import RectRenderer from './page/RectRenderer.vue';
|
| | | import request from "@/utils/request";
|
| | | import { useI18n } from "vue-i18n";
|
| | | import { ElMessage } from "element-plus";
|
| | |
|
| | | const { t } = useI18n();
|
| | | // const layoutData = ref(mockLayoutData);
|
| | |
|
| | | const savedProjectNo = localStorage.getItem('projectNo');
|
| | | const savedProjectNo = localStorage.getItem('projectNo');
|
| | | const processId = savedProjectNo;
|
| | | const layoutData = ref(null);
|
| | | const dataLoaded = ref(false);
|
| | |
|
| | |
|
| | | const selectLayout = () => {
|
| | | request.post(`/glassOptimize/selectOptimizeResult/${processId}`)
|
| | | .then((res) => {
|
| | | if (res.code == 200) {
|
| | | try {
|
| | | const parsedData = JSON.parse(res.data.data[0].Layouts);
|
| | | layoutData.value = parsedData;
|
| | | dataLoaded.value = true;
|
| | | } catch (error) {
|
| | | |
| | | |
| | | }
|
| | | } else {
|
| | | request.post(`/glassOptimize/selectOptimizeResult/${processId}`)
|
| | | .then((res) => {
|
| | | if ((res.code === 200 || res.code === '200') && res.data && res.data.data && res.data.data.length > 0) {
|
| | | try {
|
| | | console.log("原始数据:", res.data.data[0]); // 调试信息
|
| | |
|
| | | }
|
| | | })
|
| | | .catch((error) => {
|
| | | console.error("请求失败:", error);
|
| | | ElMessage.error(t('basicData.msg.requestFailed'));
|
| | | });
|
| | | }
|
| | | // 解析保存的布局数据
|
| | | const parsedData = JSON.parse(res.data.data[0].Layouts);
|
| | | console.log("解析后的数据:", parsedData); // 调试信息
|
| | |
|
| | | // 确保数据结构正确
|
| | | if (parsedData && parsedData.layouts) {
|
| | | layoutData.value = parsedData;
|
| | | dataLoaded.value = true;
|
| | | } else {
|
| | | ElMessage.warning("数据格式不正确");
|
| | | }
|
| | | } catch (error) {
|
| | | console.error("数据解析失败:", error);
|
| | | ElMessage.error("数据解析失败: " + error.message);
|
| | | }
|
| | | } else {
|
| | | ElMessage.warning("未找到优化数据");
|
| | | }
|
| | | })
|
| | | .catch((error) => {
|
| | | console.error("请求失败:", error);
|
| | | ElMessage.error(t('basicData.msg.requestFailed'));
|
| | | });
|
| | | };
|
| | |
|
| | | onMounted(() => {
|
| | | selectLayout();
|
| | |
|
| | | });
|
| | | |
| | | const submitLayouts = async () => {
|
| | |
|
| | | const submitLayouts = async () => {
|
| | | try {
|
| | | // 确保有数据可以提交
|
| | | if (!layoutData.value) {
|
| | | ElMessage.warning('没有可保存的数据');
|
| | | return;
|
| | | }
|
| | |
|
| | | const response = await request.post('/glassOptimize/generateOpt', {
|
| | | Layouts: layoutData.value.Layouts |
| | | Layouts: JSON.stringify(layoutData.value) // 序列化整个layoutData对象
|
| | | }, {
|
| | | headers: {
|
| | | 'Content-Type': 'application/json'
|
| | | },
|
| | | responseType: 'blob' // 以 blob 形式接收响应
|
| | | responseType: 'blob'
|
| | | });
|
| | |
|
| | | // 处理下载
|
| | |
| | | ElMessage.success('OPT文件下载成功,请选择文件路径');
|
| | | } catch (error) {
|
| | | console.error('下载失败:', error);
|
| | | // 显示错误消息给用户
|
| | | ElMessage.error('下载失败,请稍后再试');
|
| | | }
|
| | | };
|
| | |
|
| | |
|
| | |
|
| | | </script>
|
| | | </script>
|
| | | |