From 6227519a1bd9007aedae11b77b0b3b1851837c38 Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期四, 03 七月 2025 14:41:04 +0800
Subject: [PATCH] 仿真测试页面,模型三位投影模块布局1修改

---
 src/views/simulation/testSimulation/detail.vue |  292 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 233 insertions(+), 59 deletions(-)

diff --git a/src/views/simulation/testSimulation/detail.vue b/src/views/simulation/testSimulation/detail.vue
index a2f7589..18e4178 100644
--- a/src/views/simulation/testSimulation/detail.vue
+++ b/src/views/simulation/testSimulation/detail.vue
@@ -16,13 +16,42 @@
           />
         </div>
         <div class="back hover" @click="goBack">
-          <el-icon ><ArrowLeftBold /></el-icon>杩斿洖
+          <el-icon><ArrowLeftBold /></el-icon>杩斿洖
         </div>
       </div>
       <div class="flex bodyBox">
         <div class="modelBox"></div>
+
         <div class="shadowBox">
           <div id="shadowX">
+            <div class="title" style="padding: 5px 10px;">
+              <el-select
+                v-model="select_data"
+                placeholder="璇烽�夋嫨鎶曞奖浣嶇疆"
+                size="large"
+                style="width: 200px"
+              >
+                <el-option
+                  v-for="item in options"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
+              </el-select>
+              <img
+                src="@/assets/images/icon/fullScreen.png"
+                @click="enlargeXDiv('true')"
+                v-if="enlargeX"
+              />
+              <img
+                src="@/assets/images/icon/halfScreen.png"
+                @click="enlargeXDiv('false')"
+                v-else
+              />
+            </div>
+            <div class="shadowX-body"></div>
+          </div>
+          <!-- <div id="shadowX">
             <div class="title">
               <span>X杞存姇褰�</span>
               <img
@@ -69,7 +98,7 @@
               />
             </div>
             <div class="shadowZ-body"></div>
-          </div>
+          </div> -->
         </div>
       </div>
       <div class="flex operateBox" id="operateBox">
@@ -151,31 +180,39 @@
   <el-dialog v-model="reportDialogForm" title="鐢熸垚娴嬭瘯鎶ュ憡" width="500">
     <el-form :model="reportInfo">
       <el-form-item label="鎶ュ憡鍚嶇О" label-width="100px">
-        <el-input v-model="reportInfo.reportName" autocomplete="off" />
+        <el-input v-model="reportInfo.TestName" autocomplete="off" />
+      </el-form-item>
+      <el-form-item label="澶囨敞" label-width="100px">
+        <el-input
+          v-model="reportInfo.ModelRemarks"
+          :rows="2"
+          type="textarea"
+          placeholder="璇疯緭鍏�..."
+        />
       </el-form-item>
       <el-form-item label="娴嬭瘯鏃堕棿" label-width="100px">
-        <el-input v-model="reportInfo.testTime" autocomplete="off" disabled/>
+        <el-input v-model="reportInfo.testTime" autocomplete="off" disabled />
       </el-form-item>
     </el-form>
     <template #footer>
       <div class="dialog-footer">
-        <el-button @click="reportDialogForm = false">鍚�</el-button>
-        <el-button type="primary" @click="reportDialogForm = false">
-         鏄�
-        </el-button>
+        <el-button @click="backList">鍚�</el-button>
+        <el-button type="primary" @click="generateTestReport"> 鏄� </el-button>
       </div>
     </template>
   </el-dialog>
 </template>
 
 <script setup lang="ts">
-import { ref, reactive,onMounted } from "vue";
+import { ref, reactive, onMounted, inject } from "vue";
+import { useRoute, useRouter } from "vue-router";
 const name = ref("椋炶穬鍣ㄦ暣妯″瀷");
-const reportDialogForm = ref(false)
+const reportDialogForm = ref(false);
 const reportInfo = reactive({
-  reportName:'',
-  testTime: '',
-})
+  TestName: "",
+  testTime: "",
+  ModelRemarks: "",
+});
 const enlarge = ref(true);
 const enlargeX = ref(true);
 const enlargeY = ref(true);
@@ -186,20 +223,156 @@
 const operate = ref(true);
 const instructList = ref([]);
 const logList = ref([]);
+const typeInfo = ref();
+const MG: any = inject("MG");
+const toolClass: any = inject("toolClass");
+const route = useRoute();
 
-const goBack =()=>{
+import { curStoreInfo } from "@/store/index";
+import { ElMessage } from "element-plus";
+import { label } from "three/tsl";
+const seleStore = curStoreInfo();
+const router = useRouter();
+onMounted(() => {
+  getType();
+});
+const select_data = ref<any>('x');
+const options = reactive<any[]>([
+  {
+    value: "x",
+    label: "x杞存姇褰�",
+  },
+  {
+    value: "y",
+    label: "y杞存姇褰�",
+  },
+  {
+    value: "z",
+    label: "z杞存姇褰�",
+  },
+]);
+
+//鑾峰彇绫诲瀷
+const getType = async () => {
+  const type = await MG.dps5.GetTypeByRefCode({
+    refCodes: ["TestReport"],
+  });
+  const typeData = toolClass.handleTypeList(type);
+  console.log(typeData);
+
+  typeInfo.value = typeData[0];
+};
+
+const goBack = () => {
   var time = new Date(Date.now());
-		var year = time.getFullYear();
-		var month = time.getMonth()+1;
-		var day = time.getDate();
-		var hour = time.getHours();
-		var minute = time.getMinutes();
-		var second = time.getSeconds();
-		reportInfo.testTime = year+'-'+(month<10?'0'+month:month)+'-'+(day<10?'0'+day:day)+' '+(hour<10?'0'+hour:hour)+':'+(minute<10?'0'+minute:minute)+':'+(second<10?'0'+second:second)
-    reportDialogForm.value = true
+  var year = time.getFullYear();
+  var month = time.getMonth() + 1;
+  var day = time.getDate();
+  var hour = time.getHours();
+  var minute = time.getMinutes();
+  var second = time.getSeconds();
+  reportInfo.testTime =
+    year +
+    "-" +
+    (month < 10 ? "0" + month : month) +
+    "-" +
+    (day < 10 ? "0" + day : day) +
+    " " +
+    (hour < 10 ? "0" + hour : hour) +
+    ":" +
+    (minute < 10 ? "0" + minute : minute) +
+    ":" +
+    (second < 10 ? "0" + second : second);
+  reportDialogForm.value = true;
+};
 
-}
+const backList = () => {
+  router.push({
+    path: "/simulation",
+  });
+};
 
+const generateTestReport = async () => {
+  console.log(route.query);
+  const TestModelField = typeInfo.value.typeLinkList[0].children.find(
+    (item: any) => item.typeField.refCode === "TestModel"
+  );
+  const TestNameField = typeInfo.value.typeLinkList[0].children.find(
+    (item: any) => item.typeField.refCode === "TestName"
+  );
+  const ModelRemarksField = typeInfo.value.typeLinkList[0].children.find(
+    (item: any) => item.typeField.refCode === "ModelRemarks"
+  );
+
+  const fieldList = [
+    {
+      baseType: TestModelField.typeField.baseType,
+      order: TestModelField.order,
+      link: {},
+      linkFiles: [],
+      addLinkItems: [],
+      strValue: route.query.id,
+      typeFieldId: TestModelField.typeField.id,
+      refCode: TestModelField.typeField.refCode,
+      sequenceNum: TestModelField.cfg.uuid,
+    },
+    {
+      baseType: TestNameField.typeField.baseType,
+      order: TestNameField.order,
+      link: {},
+      linkFiles: [],
+      addLinkItems: [],
+      strValue: reportInfo.TestName,
+      typeFieldId: TestNameField.typeField.id,
+      refCode: TestNameField.typeField.refCode,
+      sequenceNum: TestNameField.cfg.uuid,
+    },
+    {
+      baseType: ModelRemarksField.typeField.baseType,
+      order: ModelRemarksField.order,
+      link: {},
+      linkFiles: [],
+      addLinkItems: [],
+      strValue: reportInfo.ModelRemarks,
+      typeFieldId: ModelRemarksField.typeField.id,
+      refCode: ModelRemarksField.typeField.refCode,
+      sequenceNum: ModelRemarksField.cfg.uuid,
+    },
+  ];
+
+  console.log(seleStore.testReportChannel, "seleStore.testReportChannel");
+  const params = {
+    accessModule: "",
+    accessPath: seleStore.testReportChannel.data.idPath,
+    accessStoreId: seleStore.storeInfo.storeId,
+    accessRepositoryId: seleStore.storeInfo.repositoryId,
+    accessItemId: seleStore.testReportChannel.data.id,
+    sysType: "CmsItem",
+    linkType: "TestReport",
+    cmsItemRequest: {
+      name: reportInfo.TestName,
+      description: reportInfo.ModelRemarks,
+      type: "Normal",
+      state: "Normal",
+      accessType: "Private",
+      cmsTypeId: typeInfo.value.id,
+      cmsItemDataList: fieldList,
+      linkCmsItemDataIds: [],
+      linkOrgIds: [1],
+      linkDepartmentIds: [1],
+    },
+    newProcessInstanceCmsItemRightsPointRequests: [],
+  };
+  const res = await MG.dps5.NewCmsItem(params);
+  reportDialogForm.value = false;
+  ElMessage({
+    message: "鏂板缓鎴愬姛",
+    type: "success",
+  });
+  router.push({
+    path: "/simulation",
+  });
+};
 
 const enlargeDiv = (state) => {
   let divStyle = document.getElementById("myDiv");
@@ -347,7 +520,6 @@
   instructContent.value = "";
 };
 
-
 onMounted(() => {
   handleResize();
 });
@@ -359,41 +531,42 @@
   let resizeDom = document.getElementById("resize");
 
   for (let i = 0; i < resizeDom.length; i++) {
-        // 榧犳爣鎸変笅浜嬩欢
-        console.log(1)
-        resizeDom[i].onmousedown = function (e) {
-            //棰滆壊鏀瑰彉鎻愰啋
-            resizeDom[i].style.background = '#f0f2f5'
-            var startX = e.clientX
-            resizeDom[i].left = resizeDom[i].offsetLeft
-            // 榧犳爣鎷栧姩浜嬩欢
-            document.onmousemove = function (e) {
-              console.log(2)
-                var endX = e.clientX
-                var moveLen = resizeDom[i].left + (endX - startX) // 锛坋ndx-startx锛�=绉诲姩鐨勮窛绂汇�俽esize[i].left+绉诲姩鐨勮窛绂�=宸﹁竟鍖哄煙鏈�鍚庣殑瀹藉害
-                var maxT = operateDom[i].clientWidth - resizeDom[i].offsetWidth // 瀹瑰櫒瀹藉害 - 宸﹁竟鍖哄煙鐨勫搴� = 鍙宠竟鍖哄煙鐨勫搴�
- 
-                if (moveLen < 200) moveLen = 200 // 宸﹁竟鍖哄煙鐨勬渶灏忓搴︿负32px
-                if (moveLen > maxT - 200) moveLen = maxT - 200 //鍙宠竟鍖哄煙鏈�灏忓搴︿负150px
- 
-                resizeDom[i].style.left = moveLen // 璁剧疆宸︿晶鍖哄煙鐨勫搴�
-                for (let j = 0; j < instructDom.length; j++) {
-                  instructDom[j].style.width = moveLen + 'px'
-                    logDom[j].style.width = operateDom[i].clientWidth - moveLen - 10 + 'px'
-                }
-            }
-            // 榧犳爣鏉惧紑浜嬩欢
-            document.onmouseup = function (evt) {
-                //棰滆壊鎭㈠
-                resizeDom[i].style.background = '#f0f2f5'
-                document.onmousemove = null
-                document.onmouseup = null
-                resizeDom[i].releaseCapture && resizeDom[i].releaseCapture() //褰撲綘涓嶅湪闇�瑕佺户缁幏寰楅紶鏍囨秷鎭氨瑕佸簲璇ヨ皟鐢≧eleaseCapture()閲婃斁鎺�
-            }
-            resizeDom[i].setCapture && resizeDom[i].setCapture() //璇ュ嚱鏁板湪灞炰簬褰撳墠绾跨▼鐨勬寚瀹氱獥鍙i噷璁剧疆榧犳爣鎹曡幏
-            return false
+    // 榧犳爣鎸変笅浜嬩欢
+    console.log(1);
+    resizeDom[i].onmousedown = function (e) {
+      //棰滆壊鏀瑰彉鎻愰啋
+      resizeDom[i].style.background = "#f0f2f5";
+      var startX = e.clientX;
+      resizeDom[i].left = resizeDom[i].offsetLeft;
+      // 榧犳爣鎷栧姩浜嬩欢
+      document.onmousemove = function (e) {
+        console.log(2);
+        var endX = e.clientX;
+        var moveLen = resizeDom[i].left + (endX - startX); // 锛坋ndx-startx锛�=绉诲姩鐨勮窛绂汇�俽esize[i].left+绉诲姩鐨勮窛绂�=宸﹁竟鍖哄煙鏈�鍚庣殑瀹藉害
+        var maxT = operateDom[i].clientWidth - resizeDom[i].offsetWidth; // 瀹瑰櫒瀹藉害 - 宸﹁竟鍖哄煙鐨勫搴� = 鍙宠竟鍖哄煙鐨勫搴�
+
+        if (moveLen < 200) moveLen = 200; // 宸﹁竟鍖哄煙鐨勬渶灏忓搴︿负32px
+        if (moveLen > maxT - 200) moveLen = maxT - 200; //鍙宠竟鍖哄煙鏈�灏忓搴︿负150px
+
+        resizeDom[i].style.left = moveLen; // 璁剧疆宸︿晶鍖哄煙鐨勫搴�
+        for (let j = 0; j < instructDom.length; j++) {
+          instructDom[j].style.width = moveLen + "px";
+          logDom[j].style.width =
+            operateDom[i].clientWidth - moveLen - 10 + "px";
         }
-    }
+      };
+      // 榧犳爣鏉惧紑浜嬩欢
+      document.onmouseup = function (evt) {
+        //棰滆壊鎭㈠
+        resizeDom[i].style.background = "#f0f2f5";
+        document.onmousemove = null;
+        document.onmouseup = null;
+        resizeDom[i].releaseCapture && resizeDom[i].releaseCapture(); //褰撲綘涓嶅湪闇�瑕佺户缁幏寰楅紶鏍囨秷鎭氨瑕佸簲璇ヨ皟鐢≧eleaseCapture()閲婃斁鎺�
+      };
+      resizeDom[i].setCapture && resizeDom[i].setCapture(); //璇ュ嚱鏁板湪灞炰簬褰撳墠绾跨▼鐨勬寚瀹氱獥鍙i噷璁剧疆榧犳爣鎹曡幏
+      return false;
+    };
+  }
 };
 </script>
 
@@ -448,7 +621,8 @@
   #shadowY,
   #shadowZ {
     background: #fff;
-    height: calc((100% - 6px) / 3);
+    //height: calc((100% - 6px) / 3);
+    height: 100%;
     border: 1px solid #f1f1f1;
   }
 }

--
Gitblit v1.9.1