tangning 5 月之前
父節點
當前提交
9b29380af8
共有 1 個文件被更改,包括 54 次插入2 次删除
  1. 54 2
      src/view/case/records/index.vue

+ 54 - 2
src/view/case/records/index.vue

@@ -234,7 +234,10 @@
       </div>
 
       <div class="textarea">
-        <span>现场勘验情况 :</span>
+        <div>
+          <span>现场勘验情况 :</span>
+          <span @click="()=>{aiImgShow=true}" style="color:#000;cursor: pointer;float: right;font-weight: bold;">AI</span>
+        </div>
         <el-input
           type="textarea"
           :rows="6"
@@ -469,6 +472,45 @@
         </div>
       </template>
     </el-dialog>
+    
+    <el-dialog
+      v-model="aiImgShow"
+      title="AI识别平面图"
+      width="1000"
+      align-center
+      @close="recorderInfoDialogSelect = null"
+    >
+      <div class="flex space-x-4 items-center content-center justify-center text-center">
+        <div class="flex-1" style="width: 80%;">
+        <el-select
+          v-model="recorderInfoDialogSelect"
+          placeholder="请选择现场勘验记录人员"
+          size="large"
+        >
+          <el-option
+            v-for="item in recorderInfoType"
+            :key="item.type"
+            :label="item.typeLabel"
+            :value="item.type"
+          />
+        </el-select>
+        <div class="viewImg mt-4 text-center" style="height: 300px; line-height: 300px; background: #d8d8d8;">
+          <img class="w-full h-full object-cover" v-if="aiImgData.src" :src="aiImgData.src" alt="" />
+          <span v-else>预览选中的平面图</span>
+        </div>
+      </div>
+      <div class="flex-1">
+        <span v-if="aiImgData.loading">识别中</span>
+        <span v-else>{{ aiImgData.result || '识别结果'}}</span>
+      </div>
+      </div>
+      <template #footer>
+        <div class="dialog-footer text-center">
+          <el-button type="primary" @click="handleAI"> 识别 </el-button>
+          <el-button v-if="aiImgData.result" @click="handleAI"> 复制 </el-button>
+        </div>
+      </template>
+    </el-dialog>
   </div>
 </template>
 <script setup>
@@ -483,7 +525,7 @@ import {
 } from "@/store/case";
 import { ElMessage, ElMessageBox } from "element-plus";
 import saveAs from "@/util/file-serve";
-import { CirclePlus, CircleClose } from "@element-plus/icons-vue";
+import { CirclePlus, CircleClose, MagicStick } from "@element-plus/icons-vue";
 import { recorderInfoType, ChangeReasonType } from "./formData.ts";
 import { confirm } from "@/helper/message";
 const props = defineProps({ caseId: Number, title: String });
@@ -491,6 +533,13 @@ console.log("router.currentRoute", router.currentRoute.value?.params);
 const fileId = computed(() => router.currentRoute.value?.params?.fileId);
 const caseId = computed(() => router.currentRoute.value?.params?.caseId);
 const isDisableExport = ref(false);
+const aiImgShow = ref(false)
+const aiImgData = ref({
+  src: '',
+  result: '',
+  loading: false
+})
+
 const data = reactive({
   title: "",
   inquestNum: "", //现场勘验号
@@ -564,6 +613,9 @@ const initInfo = async (inquestFileId) => {
     initSignatureAndWitInfo();
   }, 500);
 };
+const handleAI = () => {
+
+};
 const initSignatureAndWitInfo = () => {
   (data.recorderInfo.length === 0 || !data.recorderInfo) &&
     (data.recorderInfo = [...recorderInfoType, recorderInfoType[4]]);