1
0
tangning 4 месяцев назад
Родитель
Сommit
027664279d

+ 9 - 1
index.html

@@ -5,6 +5,7 @@
   <meta charset="UTF-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <link rel="icon" type="image/ico" href="/favicon.ico" id="app-icon" />
+  <script src="https://cdn.jsdelivr.net/npm/vconsole/dist/vconsole.min.js"></script>
 </head>
 
 <body>
@@ -12,4 +13,11 @@
   <script type="module" src="/src/main.ts"></script>
 </body>
 
-</html>
+</html>
+<script>
+  // 初始化调试面板
+  var vConsole = new VConsole();
+  
+  // 之后你写的 console.log 都会在手机上显示
+  console.log('Hello 移动端调试!');
+</script>

+ 26 - 1
src/App.vue

@@ -10,7 +10,7 @@
 <script setup lang="ts">
 import Locale from "@/config/locale.vue";
 import { setToken } from "@/store/user";
-import { sceneType, show } from "@/store/case";
+import { sceneType, show, isPc } from "@/store/case";
 import { strToParams } from "@/util";
 import { ElMessageBox } from "element-plus";
 import { browser } from "@/util/browser.ts";
@@ -38,5 +38,30 @@ if(!version){
   // })
 }
 console.log("getBrowserInfo", params, browser.isGreaterThan('128.0.0'));
+/**
+ * 通过分辨率+触屏 判断是否 非PC端(手机/平板)
+ * @returns {boolean} true=移动端(非PC)  false=电脑PC
+ */
+function isNotPCByScreen() {
+  // 获取屏幕可视宽高
+  const screenW = Math.max(window.screen.width, window.screen.height);
+  const screenH = Math.min(window.screen.width, window.screen.height);
+  
+  // 设备像素比
+  const dpr = window.devicePixelRatio || 1;
+  
+  // 触屏点数
+  const touchPoints = navigator.maxTouchPoints || 0;
 
+  // 判定规则:
+  // 长边小于1280 或者 有触屏且不是常规电脑大屏 → 判定为移动端非PC
+  const isSmallScreen = screenW < 1280;
+  const isTouchDevice = touchPoints > 2;
+
+  return isSmallScreen || isTouchDevice;
+}
+isPc.value = !isNotPCByScreen();
+// 调用
+console.log('isPc', isPc.value);
 </script>
+

+ 1 - 1
src/store/case.ts

@@ -86,7 +86,7 @@ export const caseInfoData = ref({
   caseTitle: '',
 });
 export const sceneType = ref('edit');
-
+export const isPc = ref(true);
 export const setCaseSharePWD = (params: { caseId: number; randCode: string }) =>
   axios.post(setCasePsw, params);
 

+ 1 - 0
src/view/abstract/index.vue

@@ -626,6 +626,7 @@ const searchAMapAddress = async () => {
   }
 }
 .abstractContent {
+  overflow-y: auto;
   .showAbstract {
     padding: 48px;
     .abstractTitle {

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

@@ -106,6 +106,8 @@
               class="input"
               v-model="data.times"
               type="datetimerange"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              format="YYYY-MM-DD HH:mm:ss"
               range-separator="至"
               start-placeholder="现场勘验开始时间"
               end-placeholder="现场勘验结束时间"
@@ -123,6 +125,16 @@
             style="width: 100%"
           />
         </div>
+        <div class="line">
+          <span>现场条件:</span>
+          <el-input
+            class="input"
+            type="text"
+            v-model="data.siteConditions"
+            placeholder=""
+            style="width: 100%"
+          />
+        </div>
 
         <div class="line">
           <span>现场保护情况:</span>
@@ -136,6 +148,23 @@
         </div>
 
         <div class="line">
+          <span>现场保护时间: &nbsp; </span>
+          <div>
+            <el-date-picker
+              class="input"
+              v-model="data.protectionSituationTime"
+              type="datetimerange"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              format="YYYY-MM-DD HH:mm:ss"
+              range-separator="至"
+              @change="handleChangeProtectionSituationTime"
+              start-placeholder="现场勘验开始时间"
+              end-placeholder="现场勘验结束时间"
+            />
+          </div>
+        </div>
+
+        <div class="line">
           <span>现场保护人: &nbsp;&nbsp; &nbsp;</span>
           <span>姓名</span>
           <!-- 单位 XX派出所 职务 一级警长 -->
@@ -238,6 +267,77 @@
           </el-checkbox-group>
         </div>
 
+
+        <div class="line">
+          <span>现场物品翻动程度:</span>
+          <el-input
+            class="input"
+            type="text"
+            v-model="data.siteItems"
+            placeholder=""
+            style="width: 100%"
+          />
+        </div>
+        <div class="line">
+          <span>案件发现过程:</span>
+          <el-input
+            class="input"
+            type="text"
+            v-model="data.caseDiscoveryProcess"
+            placeholder=""
+            style="width: 100%"
+          />
+        </div>
+        <div class="line">
+          <span>伤亡情况:</span>
+          <el-input
+            class="input"
+            type="text"
+            v-model="data.casualtySituation"
+            placeholder=""
+            style="width: 100%"
+          />
+        </div>
+        <div class="line">
+          <span>报案人信息:</span>
+          <el-input
+            class="input"
+            type="text"
+            v-model="data.informantInformation"
+            placeholder=""
+            style="width: 100%"
+          />
+        </div>
+        <div class="line">
+          <span>被害人信息:</span>
+          <el-input
+            class="input"
+            type="text"
+            v-model="data.victimInformation"
+            placeholder=""
+            style="width: 100%"
+          />
+        </div>
+        <div class="line">
+          <span>现场遗留物:</span>
+          <el-input
+            class="input"
+            type="text"
+            v-model="data.siteRemains"
+            placeholder=""
+            style="width: 100%"
+          />
+        </div>
+        <div class="line">
+          <span>现场处理意见:</span>
+          <el-input
+            class="input"
+            type="text"
+            v-model="data.siteDisposalOpinions"
+            placeholder=""
+            style="width: 100%"
+          />
+        </div>
         <div class="line">
           <span>现场勘验指挥人: &nbsp;&nbsp; </span>
           <span>姓名</span>
@@ -411,14 +511,68 @@
             </el-button>
           </div>
         </template>
+   
+        <div class="line">
+          到达现场人员:
 
+          <el-button link @click="addsitePersonnel"
+            ><el-icon :size="18"><CirclePlus /> </el-icon>
+          </el-button>
+        </div>
+        <template v-for="(witness, index) of data.sitePersonnel">
+          <div class="line info">
+            <span>本人签名: &nbsp;&nbsp; </span>
+            <span>_______________ &nbsp;&nbsp;</span>
+            <span>性别</span>
+            <el-select
+              class="input"
+              v-model="witness.sex"
+              placeholder="性别"
+              style="width: 140px"
+            >
+              <el-option :value="0" label="男" />
+              <el-option :value="1" label="女" />
+            </el-select>
+            <span>出生日期</span>
+            <el-date-picker
+              class="input"
+              v-model="witness.birthday"
+              type="date"
+              placeholder="出生日期"
+              style="width: 180px"
+            />
+            <!-- <el-input
+            class="input"
+            type="text"
+            v-model="witness.birthday"
+            placeholder=""
+            style="width: 200px"
+          /> -->
+            <span>住址</span>
+            <el-input
+              class="input"
+              type="text"
+              v-model="witness.address"
+              placeholder=""
+              style="width: 260px"
+            />
+            <el-button
+              link
+              class="del-btn"
+              type="danger"
+              @click="removesitePersonnel(index)"
+              ><el-icon :size="18"><CircleClose /> </el-icon>
+            </el-button>
+          </div>
+        </template>
         <div class="line">
           现场勘验见证人:
 
           <el-button link @click="addWitnessInfo"
             ><el-icon :size="18"><CirclePlus /> </el-icon>
           </el-button>
-        </div>
+        </div>  
+        
         <template v-for="(witness, index) of data.witnessInfo">
           <div class="line info">
             <span>本人签名: &nbsp;&nbsp; </span>
@@ -464,8 +618,18 @@
               ><el-icon :size="18"><CircleClose /> </el-icon>
             </el-button>
           </div>
-        </template>
+        </template>   
 
+        <div class="line">
+          <span>遗失物品清单:</span>
+          <el-input
+            class="input"
+            type="text"
+            v-model="data.lostPropertyList"
+            placeholder=""
+            style="width: 100%"
+          />
+        </div>
         <div class="textarea">
           <span>备注:</span>
           <el-input
@@ -718,6 +882,19 @@ const data = reactive({
   recorderInfo: JSON.parse(JSON.stringify(recorderInfoType)),
   signatureInfo: [], //现场勘验人员
   witnessInfo: [],
+  siteConditions: "",//现场条件
+  protectionSituationTime: [], // 现场保护时间
+  siteStartTime: '', //现场保护开始时间
+  siteEndTime: '', //现场保护结束时间
+  sitePersonnel: [], //到达人员
+  lostPropertyList: '', //丢失物品
+  siteItems: "", //现场物品翻动程度
+  caseDiscoveryProcess: "", //案件发现过程
+  casualtySituation: "", //伤亡情况
+  informantInformation: "", //报案人信息
+  victimInformation: "", //被害人信息
+  siteRemains: "", //现场遗留物
+  siteDisposalOpinions: "", //现场处理意见
   remark: "",
 });
 const signatureInfoNum = 4;
@@ -740,6 +917,10 @@ const initInfo = async (inquestFileId) => {
       }
     }
   }
+  data.protectionSituationTime = [
+    res.data.siteStartTime,
+    res.data.siteEndTime
+  ]
   console.log("data", data, res.data);
   setTimeout(() => {
     initSignatureAndWitInfo();
@@ -912,6 +1093,15 @@ const initSignatureAndWitInfo = () => {
         address: "",
       });
     });
+  
+  (data.sitePersonnel.length === 0 || !data.sitePersonnel) &&
+    Array.from(new Array(witnessInfoNum)).forEach(() => {
+      data.sitePersonnel.push({
+        sex: 0,
+        birthday: "",
+        address: "",
+      });
+    });
 };
 
 onMounted(() => {
@@ -963,6 +1153,20 @@ const addWitnessInfo = async () => {
     });
   }
 };
+const addsitePersonnel = async () => {
+  if (await confirm("确定要添加新的到达现场人员?")) {
+    data.sitePersonnel.push({
+      sex: 0,
+      birthday: "",
+      address: "",
+    });
+  }
+};
+const removesitePersonnel = async (index) => {
+  if (await confirm("确定要删除此数据?")) {
+    data.sitePersonnel.splice(index, 1);
+  }
+};
 const backPageHandler = () => {
   router.back();
 };
@@ -983,6 +1187,8 @@ const handleSave = async () => {
       }
     }
   }
+  data.siteStartTime = data.protectionSituationTime[0]
+  data.siteEndTime = data.protectionSituationTime[1]
   let inquestFileId = fileId.value == -1 ? "" : fileId.value;
   let params = { ...data, caseId: caseId.value, inquestFileId };
   const res = await saveCaseInquestInfo(params);

+ 66 - 34
src/view/diversity/index.vue

@@ -23,18 +23,30 @@
           </div>
           <div
             class="cursor-pointer"
-            v-if="!show && (item.editAuth || caseInfoData.isAuthor) && item.fusionId === sceneItem.fusionId"
+            v-if="
+              !show &&
+              (item.editAuth || caseInfoData.isAuthor) &&
+              item.fusionId === sceneItem.fusionId
+            "
             quaternary
             type="primary"
           >
-            <el-icon v-if="item.editAuth" style="margin-right: 34px" title="编辑">
+            <el-icon
+              v-if="item.editAuth && isPc"
+              style="margin-right: 34px"
+              title="编辑"
+            >
               <EditPen @click="handleAdddyrh(item)" />
             </el-icon>
             <el-icon title="移除">
               <CircleClose @click="handlegotoelT(item)" />
             </el-icon>
           </div>
-          <div class="cursor-pointer" v-show="!show" v-else-if="!item.viewAuth && caseInfoData.isAuthor">
+          <div
+            class="cursor-pointer"
+            v-show="!show"
+            v-else-if="!item.viewAuth && caseInfoData.isAuthor"
+          >
             <el-icon title="移除">
               <CircleClose @click.stop="handlegotoelT(item)" />
             </el-icon>
@@ -47,22 +59,35 @@
       ref="sceneRef"
       :style="{
         height: '100%',
-        width: list.length == 0?'100%':'',
+        width: list.length == 0 ? '100%' : '',
       }"
     >
+      <!-- <div class="import" > -->
+        <div class="noData" style="    position: absolute;
+    top: calc(50% - 23px);
+    width: 100%;
+    text-align: center;" v-if="!isPc">
+          <div class="name" style="margin-top: 25px">不支持此设备,请用电脑打开</div>
+        </div>
+      <!-- </div> -->
+
       <iframe
-        v-if="list && list.length && sceneURL"
+        v-else-if="list && list.length && sceneURL"
         :src="sceneURL"
         frameborder="0"
         :style="{ width: '100%', height: '100%' }"
       ></iframe>
       <div class="import" v-else @click="handleAdd" v-show="!show">
         <el-icon size="26" color="#26559B">
-          <i style="font-size: 26px; color: #26559B" class="iconfont icon-import"></i></el-icon>
+          <i
+            style="font-size: 26px; color: #26559b"
+            class="iconfont icon-import"
+          ></i
+        ></el-icon>
         <div class="name">导入</div>
-      <div class="noData" >
-        <div class="name" style="margin-top: 25px;">暂无数据</div>
-      </div>
+        <div class="noData">
+          <div class="name" style="margin-top: 25px">暂无数据</div>
+        </div>
       </div>
     </div>
   </div>
@@ -78,8 +103,9 @@ import {
   getCaseFusionList,
   casefusionDel,
   show,
-  setaddFusionIds ,
+  setaddFusionIds,
   caseInfoData,
+  isPc,
 } from "@/store/case";
 import { router } from "@/router";
 import comSelect from "@/components/company-select/index.vue";
@@ -92,8 +118,7 @@ import { useScenePaggingParams } from "./pagging";
 import { computed, ref, onMounted } from "vue";
 import { tableModelScene } from "./quisk";
 const active = ref(true);
-const list = ref([
-]);
+const list = ref([]);
 const isEdit = ref(false);
 const showModal = ref(false);
 const sceneURL = ref("");
@@ -107,15 +132,17 @@ onMounted(() => {
   geiList();
 });
 async function geiList(refresh) {
-  list.value = await getCaseList({
-    caseId: caseId.value,
-    type: 'fusion',
-    pageNum: 1,
-    pageSize: 100000,
-  })||[];
+  list.value =
+    (await getCaseList({
+      caseId: caseId.value,
+      type: "fusion",
+      pageNum: 1,
+      pageSize: 100000,
+    })) || [];
   // list.value = getList.filter((item) => item.caseId);
   console.log("getCaseFusionList", list.value);
-  sceneItem.value = (list.value && list.value.find(ele => ele.viewAuth)) || {};
+  sceneItem.value =
+    (list.value && list.value.find((ele) => ele.viewAuth)) || {};
   sceneURL.value = getUrlSrc({ ...sceneItem.value, type: 100 }, caseId.value);
   console.log("res", list.value, sceneURL.value);
 }
@@ -140,14 +167,17 @@ async function handlegotoelT(record) {
     type: "warning",
   }).then(async () => {
     // await casefusionDel(record.fusionId);
-    let newlist = list.value.filter((item) => item.fusionId !== record.fusionId);
+    let newlist = list.value.filter(
+      (item) => item.fusionId !== record.fusionId
+    );
     const apiData = {
       caseId: caseId.value,
-      fusionIds: newlist.map(item => item.fusionId),
+      fusionIds: newlist.map((item) => item.fusionId),
     };
-    await setaddFusionIds(apiData)
+    await setaddFusionIds(apiData);
     list.value = list.value.filter((item) => item.fusionId !== record.fusionId);
-    sceneItem.value = (list.value && list.value.find(ele => ele.viewAuth)) || {};
+    sceneItem.value =
+      (list.value && list.value.find((ele) => ele.viewAuth)) || {};
     sceneURL.value = getUrlSrc({ ...sceneItem.value, type: 100 }, caseId.value);
   });
   // if (record.inFusion || (await confirm("确定要移除当前场景吗?"))) {
@@ -179,11 +209,12 @@ async function submitForm() {
     });
 }
 async function handleAdd() {
-  let fusionIds = [], noEditList = []
+  let fusionIds = [],
+    noEditList = [];
   list.value.map((item) => {
     fusionIds.push(item.fusionId);
-    if(!item.editAuth) {
-      noEditList.push(item.fusionId)
+    if (!item.editAuth) {
+      noEditList.push(item.fusionId);
     }
   });
   console.log("handleAdd", fusionIds, noEditList);
@@ -194,7 +225,8 @@ async function handleAdd() {
   }
 }
 function handleItem(item) {
-  if(!item.viewAuth) return ElMessage.error("您没有查看权限,请联系管理员开通");
+  if (!item.viewAuth)
+    return ElMessage.error("您没有查看权限,请联系管理员开通");
   sceneItem.value = item;
   sceneURL.value = getUrlSrc({ ...item, type: 100 }, caseId.value);
 }
@@ -215,7 +247,7 @@ function handleItem(item) {
     .scene-title {
       height: 64px;
       padding: 24px 48px 0 48px;
-      .newbut{
+      .newbut {
         position: relative;
         left: -16px;
       }
@@ -225,8 +257,8 @@ function handleItem(item) {
         width: calc(var(--leftwidth) - 0px);
         cursor: pointer;
         padding: 25px 48px;
-        &:hover{
-          background: rgba(69,144,255,0.1);;
+        &:hover {
+          background: rgba(69, 144, 255, 0.1);
         }
       }
       .active {
@@ -234,7 +266,7 @@ function handleItem(item) {
       }
       .disabled {
         color: rgba(0, 0, 0, 0.3);
-        cursor:not-allowed;
+        cursor: not-allowed;
       }
     }
   }
@@ -242,8 +274,8 @@ function handleItem(item) {
     background: #f5f5f5;
     width: calc(100% - var(--leftwidth));
     position: relative;
-  border-right: 48px solid #fff;
-  border-bottom: 48px solid #fff;
+    border-right: 48px solid #fff;
+    border-bottom: 48px solid #fff;
     .import {
       position: absolute;
       left: 50%;
@@ -257,7 +289,7 @@ function handleItem(item) {
       text-align: center;
       background: #fafafa;
       cursor: pointer;
-      .noData{
+      .noData {
         position: absolute;
         top: 140px;
         width: 100%;

+ 1 - 1
src/view/dossier/index.vue

@@ -33,7 +33,7 @@
             <!-- <upload-filled /> -->
             </el-icon>
           <div class="el-upload__text">
-            点击或拖拽文件上传<br />支持 jpg、png、jpeg、doc、pdf ≤ 500MB
+            点击或拖拽文件上传<br />支持 jpg、png、jpeg、pptx、xls、doc、pdf ≤ 500MB
           </div>
         </el-upload>
       </div>

+ 44 - 0
src/view/material/sceneImg.vue

@@ -369,8 +369,16 @@
           >
         </div>
         <div>现场地点:{{ data.address }}</div>
+        <div>现场条件:{{ data.siteConditions }}</div>
         <div>现场保护情况:{{ data.protectionSituation }}</div>
         <div>
+          现场保护时间:
+          <span v-if="data.siteStartTime && data.siteEndTime"
+            >{{ dayjs(data.siteStartTime).format("YYYY-MM-DD HH:mm:ss") }} ~
+            {{ dayjs(data.siteEndTime).format("YYYY-MM-DD HH:mm:ss") }}</span
+          >
+        </div>
+        <div>
           现场保护人:姓名 {{ data.protector.name }}单位
           {{ data.protector.unit }}职务 {{ data.protector.job }}
         </div>
@@ -420,6 +428,13 @@
             <el-checkbox :value="2" label="特种光" />
           </el-checkbox-group>
         </div>
+        <div>现场物品翻动程度:{{ data.siteItems }}</div>
+        <div>案件发现过程:{{ data.caseDiscoveryProcess }}</div>
+        <div>伤亡情况:{{ data.casualtySituation }}</div>
+        <div>报案人信息:{{ data.informantInformation }}</div>
+        <div>被害人信息:{{ data.victimInformation }}</div>
+        <div>现场遗留物:{{ data.siteRemains }}</div>
+        <div>现场处理意见:{{ data.siteDisposalOpinions }}</div>
         <div>
           现场勘验指挥人:姓名{{ data.inquestCommander.name }}单位{{
             data.inquestCommander.unit
@@ -461,6 +476,21 @@
           </div>
         </div>
         <div>
+          到达现场人员:
+          <div class="list">
+            <div
+              v-for="(info, index) of data.sitePersonnel"
+              :key="index"
+              v-show="info.sex || info.birthday || info.address"
+            >
+              姓名: {{ info.name || "_____" }} 性别:
+              {{ info.sex ? "女" : "男" }}出生日期:
+              {{ info.birthday && dayjs(info.birthday).format("YYYY-MM-DD") }}
+              住址: {{ info.address }}
+            </div>
+          </div>
+        </div>
+        <div>
           现场勘验见证人:
           <div class="list">
             <div
@@ -475,6 +505,7 @@
             </div>
           </div>
         </div>
+        <div>遗失物品清单:{{ data.lostPropertyList }}</div>
         <div>备注:{{ data.remark }}</div>
       </div>
       <div class="imgSrccentenr" v-else-if="isImage(childrenList.src)">
@@ -657,6 +688,19 @@ const data = reactive({
   recorderInfo: JSON.parse(JSON.stringify(recorderInfoType)),
   signatureInfo: [], //现场勘验人员
   witnessInfo: [],
+  siteConditions: "",//现场条件
+  protectionSituationTime: [], // 现场保护时间
+  siteStartTime: '', //现场保护开始时间
+  siteEndTime: '', //现场保护结束时间
+  sitePersonnel: [], //到达人员
+  lostPropertyList: '', //丢失物品
+  siteItems: "", //现场物品翻动程度
+  caseDiscoveryProcess: "", //案件发现过程
+  casualtySituation: "", //伤亡情况
+  informantInformation: "", //报案人信息
+  victimInformation: "", //被害人信息
+  siteRemains: "", //现场遗留物
+  siteDisposalOpinions: "", //现场处理意见
   remark: "",
 });
 const xczpfilesTypeId = ref(1);

+ 91 - 54
src/view/vrmodel/index.vue

@@ -1,33 +1,52 @@
 <template>
   <div class="scene flex justify-end content-center">
     <div class="scene-list" v-if="list.length">
-      <div class="scene-title" v-if="!show ">
+      <div class="scene-title" v-if="!show">
         <el-button class="newbut" @click="handleAdd">
           <i class="iconfont icon-import" style="margin-right: 5px"></i>
           导入
         </el-button>
       </div>
-      <div
-        class="list"
-        v-if="active"
-      >
+      <div class="list" v-if="active">
         <div
-          class="listItem py-4 "
+          class="listItem py-4"
           v-for="(item, index) in list"
           :key="index"
-          :class="{active: item.num === sceneItem.num, disabled: !item.viewAuth}"
+          :class="{
+            active: item.num === sceneItem.num,
+            disabled: !item.viewAuth,
+          }"
           @click="handleItem(item)"
         >
-          <div class="anmc" :title="item.title">{{ item.title || item.sceneName }}</div>
-          <div class="cursor-pointer" v-show="!show" v-if="item.num === sceneItem.num && (item.editAuth || caseInfoData.isAuthor)" quaternary type="primary">
-            <el-icon v-if="item.editAuth" style="margin-right: 34px" title="编辑">
+          <div class="anmc" :title="item.title">
+            {{ item.title || item.sceneName }}
+          </div>
+          <div
+            class="cursor-pointer"
+            v-show="!show"
+            v-if="
+              item.num === sceneItem.num &&
+              (item.editAuth || caseInfoData.isAuthor)
+            "
+            quaternary
+            type="primary"
+          >
+            <el-icon
+              v-if="item.editAuth && isPc"
+              style="margin-right: 34px"
+              title="编辑"
+            >
               <EditPen @click="handlegotoEdit(item)" />
             </el-icon>
             <el-icon title="移除">
               <CircleClose @click="handlegotoelT(item)" />
             </el-icon>
           </div>
-          <div class="cursor-pointer" v-show="!show" v-else-if="!item.viewAuth && caseInfoData.isAuthor">
+          <div
+            class="cursor-pointer"
+            v-show="!show"
+            v-else-if="!item.viewAuth && caseInfoData.isAuthor"
+          >
             <el-icon title="移除">
               <CircleClose @click.stop="handlegotoelT(item)" />
             </el-icon>
@@ -35,15 +54,15 @@
         </div>
       </div>
     </div>
-      <div
-        class="app-scene"
-        ref="sceneRef"
-        :style="{
-          width: list.length == 0?'100%':'',
+    <div
+      class="app-scene"
+      ref="sceneRef"
+      :style="{
+        width: list.length == 0 ? '100%' : '',
 
-          height: '100%',
-        }"
-      >
+        height: '100%',
+      }"
+    >
       <iframe
         v-if="list && list.length && sceneURL"
         :src="sceneURL"
@@ -52,13 +71,17 @@
       ></iframe>
       <div class="import" v-else @click="handleAdd" v-show="!show">
         <el-icon size="26" color="#26559B">
-          <i style="font-size: 26px; color: #26559B" class="iconfont icon-import"></i></el-icon>
+          <i
+            style="font-size: 26px; color: #26559b"
+            class="iconfont icon-import"
+          ></i
+        ></el-icon>
         <div class="name">导入</div>
-      <div class="noData" >
-        <div class="name" style="margin-top: 25px;">暂无数据</div>
-      </div>
-      </div>
+        <div class="noData">
+          <div class="name" style="margin-top: 25px">暂无数据</div>
+        </div>
       </div>
+    </div>
   </div>
 </template>
 
@@ -71,6 +94,7 @@ import {
   setCaseaddOrUpdate,
   show,
   caseInfoData,
+  isPc,
 } from "@/store/case";
 import { router } from "@/router";
 import comSelect from "@/components/company-select/index.vue";
@@ -86,11 +110,11 @@ const active = ref(true);
 const list = ref([]);
 const isEdit = ref(false);
 const showModal = ref(false);
-const sceneURL = ref('');
-const sceneNum = ref('');
+const sceneURL = ref("");
+const sceneNum = ref("");
 const sceneItem = ref({
-  id: '',
-  num: '',
+  id: "",
+  num: "",
 });
 const params = useScenePaggingParams();
 const caseId = computed(() => router.currentRoute.value?.params?.caseId);
@@ -98,10 +122,15 @@ onMounted(() => {
   geiList();
 });
 async function geiList(refresh) {
-  list.value = await getCaseList({caseId: caseId.value, type: 'scene'}) || [];
-  sceneItem.value = (list.value && list.value.find(ele => ele.viewAuth)) || {};
+  list.value =
+    (await getCaseList({ caseId: caseId.value, type: "scene" })) || [];
+  sceneItem.value =
+    (list.value && list.value.find((ele) => ele.viewAuth)) || {};
   console.log("sceneURL", sceneItem.value);
-  sceneURL.value = getUrlSrc({...sceneItem.value, type: sceneItem.value.sceneType}, caseId.value);
+  sceneURL.value = getUrlSrc(
+    { ...sceneItem.value, type: sceneItem.value.sceneType },
+    caseId.value
+  );
   console.log("sceneURL", list.value, sceneURL.value);
 }
 function handlegotoEdit(record) {
@@ -124,14 +153,18 @@ async function handlegotoelT(record) {
     submitForm();
     return;
   }
-  ElMessageBox.confirm('确定要移除当前场景吗?', "提示", {
+  ElMessageBox.confirm("确定要移除当前场景吗?", "提示", {
     confirmButtonText: "确定",
     cancelButtonText: "取消",
     type: "warning",
   }).then(async () => {
     list.value = list.value.filter((item) => item.num !== record.num);
-    sceneItem.value = (list.value && list.value.find(ele => ele.viewAuth)) || {};
-    sceneURL.value = getUrlSrc({...sceneItem.value, type: sceneItem.value.sceneType}, caseId.value);
+    sceneItem.value =
+      (list.value && list.value.find((ele) => ele.viewAuth)) || {};
+    sceneURL.value = getUrlSrc(
+      { ...sceneItem.value, type: sceneItem.value.sceneType },
+      caseId.value
+    );
     submitForm();
   });
 }
@@ -156,12 +189,13 @@ async function submitForm() {
     });
 }
 async function handleAdd() {
-  let numList = [], noEditList = [];
+  let numList = [],
+    noEditList = [];
   list.value.map((item) => {
     // item.num
     numList.push(item.num);
-    if(!item.editAuth) {
-      noEditList.push(item.num)
+    if (!item.editAuth) {
+      noEditList.push(item.num);
     }
   });
   let val = await tableModelScene({ numList: numList, noEditList });
@@ -172,10 +206,13 @@ async function handleAdd() {
 }
 function handleItem(item) {
   console.log("handleItem", item);
-  if(!item.viewAuth) return ElMessage.error("您没有查看权限,请联系管理员开通");
+  if (!item.viewAuth)
+    return ElMessage.error("您没有查看权限,请联系管理员开通");
   sceneItem.value = item;
-  sceneURL.value = getUrlSrc({...sceneItem.value, type: sceneItem.value.sceneType}, caseId.value);
-  
+  sceneURL.value = getUrlSrc(
+    { ...sceneItem.value, type: sceneItem.value.sceneType },
+    caseId.value
+  );
 }
 </script>
 
@@ -191,29 +228,29 @@ function handleItem(item) {
     &::-webkit-scrollbar {
       display: none;
     }
-    .scene-title{
+    .scene-title {
       height: 64px;
       padding: 24px 48px 0 48px;
-      .newbut{
+      .newbut {
         position: relative;
         left: -16px;
       }
     }
-    .list{
-      .listItem{
+    .list {
+      .listItem {
         width: calc(var(--leftwidth) - 0px);
         cursor: pointer;
         padding: 25px 48px;
-        &:hover{
-          background: rgba(69,144,255,0.1);;
+        &:hover {
+          background: rgba(69, 144, 255, 0.1);
         }
       }
-      .active{
-        background: rgba(69,144,255,0.1);;
+      .active {
+        background: rgba(69, 144, 255, 0.1);
       }
-      .disabled{
-        color: rgba(0,0,0,0.3);
-        cursor:not-allowed;
+      .disabled {
+        color: rgba(0, 0, 0, 0.3);
+        cursor: not-allowed;
       }
     }
   }
@@ -221,8 +258,8 @@ function handleItem(item) {
     background: #f5f5f5;
     width: calc(100% - var(--leftwidth));
     position: relative;
-  border-right: 48px solid #fff;
-  border-bottom: 48px solid #fff;
+    border-right: 48px solid #fff;
+    border-bottom: 48px solid #fff;
     .import {
       position: absolute;
       left: 50%;
@@ -236,7 +273,7 @@ function handleItem(item) {
       text-align: center;
       background: #fafafa;
       cursor: pointer;
-      .noData{
+      .noData {
         position: absolute;
         top: 140px;
         width: 100%;