Browse Source

Merge branch 'xj' of http://192.168.0.115:3000/bill/public-fuse into xj

gemercheung 1 year ago
parent
commit
c0bfde867d

+ 22 - 20
src/app/fire/view/dispatch/editFire.vue

@@ -46,13 +46,13 @@
         :props="{ expandTrigger: 'hover' }"
       />
     </el-form-item>
-    <el-form-item label="全宗名称">
+    <!-- <el-form-item label="全宗名称">
       <el-input v-model="bindFire.field2" maxlength="50" placeholder="请输入全宗名称" />
-    </el-form-item>
+    </el-form-item> -->
 
     <div class="el-form-item">
       <el-col :span="12">
-        <el-form-item label="承办单位" class="mandatory">
+        <el-form-item label="勘验单位" class="mandatory">
           <companySelect v-model="bindFire.deptId" hideAll :notUpdate="true" disabled />
         </el-form-item>
       </el-col>
@@ -63,7 +63,7 @@
       </el-col>
     </div>
     <div class="el-form-item">
-      <el-col :span="12">
+      <!-- <el-col :span="12">
         <el-form-item label="勘验人姓名">
           <el-input
             v-model="bindFire.field3"
@@ -71,7 +71,7 @@
             placeholder="请输入勘验人姓名"
           />
         </el-form-item>
-      </el-col>
+      </el-col> -->
       <el-col :span="12">
         <el-form-item label="单位、职务">
           <el-input
@@ -81,6 +81,17 @@
           />
         </el-form-item>
       </el-col>
+      <el-col :span="12">
+        <el-form-item label="火灾原因" class="mandatory">
+          <el-cascader
+            style="width: 100%"
+            v-model="fireReason"
+            placeholder="火灾原因:"
+            :options="reason"
+            :props="{ expandTrigger: 'hover' }"
+          />
+        </el-form-item>
+      </el-col>
     </div>
 
     <div class="el-form-item">
@@ -124,10 +135,12 @@
 
     <div class="el-form-item">
       <el-col :span="12">
-        <el-form-item label="勘验信息">
+        <el-form-item label="天气情况">
           <el-input
             v-model="bindFire.field7"
-            placeholder="请输入天气情况等标准化勘验信息"
+            placeholder="请输入天气情况"
+            show-word-limit
+            maxlength="100"
           />
         </el-form-item>
       </el-col>
@@ -142,17 +155,6 @@
         </el-form-item>
       </el-col>
     </div>
-    <el-col :span="12">
-      <el-form-item label="火灾原因" class="mandatory">
-        <el-cascader
-          style="width: 100%"
-          v-model="fireReason"
-          placeholder="火灾原因:"
-          :options="reason"
-          :props="{ expandTrigger: 'hover' }"
-        />
-      </el-form-item>
-    </el-col>
   </el-form>
 </template>
 
@@ -256,8 +258,8 @@ defineExpose<QuiskExpose>({
       ElMessage.error("起火场所不能为空!");
       throw "起火场所不能为空!";
     } else if (!bindFire.value.deptId || !bindFire.value.deptId.trim()) {
-      ElMessage.error("承办单位不能为空!");
-      throw "承办单位不能为空!";
+      ElMessage.error("勘验单位不能为空!");
+      throw "勘验单位不能为空!";
     } else if (!bindFire.value.organizerUsers || !bindFire.value.organizerUsers.trim()) {
       ElMessage.error("勘验人员不能为空!");
       throw "勘验人员不能为空!";

+ 1 - 1
src/app/fire/view/dispatch/header.vue

@@ -26,7 +26,7 @@
         ></el-cascader>
       </el-form-item>
 
-      <el-form-item label="承办单位:">
+      <el-form-item label="勘验单位:">
         <com-company v-model="pagging.state.query.deptId" />
       </el-form-item>
       <el-form-item label="事故日期:">

+ 5 - 1
src/app/fire/view/dispatch/index.vue

@@ -1,6 +1,10 @@
 <template>
   <Header :pagging="pagging" :isTeached="isTeached" />
-  <List :pagging="pagging" :checkPerm="isTeached ? 'cancel' : 'teach'">
+  <List
+    :pagging="pagging"
+    :checkPerm="isTeached ? 'cancel' : 'teach'"
+    :isRecycle="isRecycle"
+  >
     <template v-slot:tableCtrl>
       <template v-if="!isRecycle">
         <template v-if="isTeached">

+ 95 - 16
src/app/fire/view/dispatch/list.vue

@@ -16,6 +16,7 @@
       @selection-change="pagging.changeSelectRows"
     >
       <el-table-column
+        v-if="!isRecycle"
         type="selection"
         width="50"
         :selectable="() => !!operateIsPermissionByPath(checkPerm)"
@@ -26,29 +27,51 @@
         </div>
       </el-table-column>
       <el-table-column label="项目编号" prop="projectSn"></el-table-column>
-      <el-table-column label="事件分类" prop="field5"></el-table-column>
+      <el-table-column label="事件分类" prop="field5" v-slot:default="{ row }">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          :content="row.field5"
+          placement="bottom-start"
+          v-if="row.field5 && row.field5.length > 10"
+        >
+          <p class="tip oper-user">{{ row.field5.substring(0, 10) }}...</p>
+        </el-tooltip>
+        <p class="tip" v-else>{{ row.field5 }}</p>
+      </el-table-column>
       <el-table-column label="起火对象" prop="projectName" v-slot:default="{ row }">
         <el-tooltip
           class="item"
           effect="dark"
           :content="row.projectName"
           placement="bottom-start"
-          v-if="row.projectName && row.projectName.length > 15"
+          v-if="row.projectName && row.projectName.length > 10"
         >
-          <p class="tip oper-user">{{ row.projectName }}</p>
+          <p class="tip oper-user">{{ row.projectName.substring(0, 10) }}...</p>
         </el-tooltip>
         <p class="tip" v-else>{{ row.projectName }}</p>
       </el-table-column>
-      <el-table-column label="分类登记" prop="field6"></el-table-column>
+      <el-table-column label="分类登记" prop="field6" v-slot:default="{ row }">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          :content="row.field6"
+          placement="bottom-start"
+          v-if="row.field6 && row.field6.length > 10"
+        >
+          <p class="tip oper-user">{{ row.field6.substring(0, 10) }}...</p>
+        </el-tooltip>
+        <p class="tip" v-else>{{ row.field6 }}</p>
+      </el-table-column>
       <el-table-column label="详细地址" prop="projectAddress" v-slot:default="{ row }">
         <el-tooltip
           class="item"
           effect="dark"
           :content="row.projectAddress"
           placement="bottom-start"
-          v-if="row.projectAddress && row.projectAddress.length > 15"
+          v-if="row.projectAddress && row.projectAddress.length > 10"
         >
-          <p class="tip oper-user">{{ row.projectAddress }}</p>
+          <p class="tip oper-user">{{ row.projectAddress.substring(0, 10) }}...</p>
         </el-tooltip>
         <p class="tip" v-else>{{ row.projectAddress }}</p>
       </el-table-column>
@@ -60,17 +83,73 @@
           placement="bottom-start"
           v-if="row.projectSite && row.projectSite.length > 10"
         >
-          <p class="tip oper-user">{{ row.projectSite }}</p>
+          <p class="tip oper-user">{{ row.projectSite.substring(0, 10) }}...</p>
         </el-tooltip>
         <p class="tip" v-else>{{ row.projectSite }}</p>
       </el-table-column>
-      <el-table-column label="勘验信息" prop="field7"></el-table-column>
-      <el-table-column label="勘验地址" prop="field1"></el-table-column>
-      <el-table-column label="全宗名称" prop="field2"></el-table-column>
-      <el-table-column label="勘验人姓名" prop="field3"></el-table-column>
-      <el-table-column label="勘验人单位、职务" prop="field4"></el-table-column>
+      <el-table-column label="天气情况" prop="field7" v-slot:default="{ row }">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          :content="row.field7"
+          placement="bottom-start"
+          v-if="row.field7 && row.field7.length > 10"
+        >
+          <p class="tip oper-user">{{ row.field7.substring(0, 10) }}...</p>
+        </el-tooltip>
+        <p class="tip" v-else>{{ row.field7 }}</p>
+      </el-table-column>
+
+      <el-table-column label="勘验地址" prop="field1" v-slot:default="{ row }">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          :content="row.field1"
+          placement="bottom-start"
+          v-if="row.field1 && row.field1.length > 10"
+        >
+          <p class="tip oper-user">{{ row.field1.substring(0, 10) }}...</p>
+        </el-tooltip>
+        <p class="tip" v-else>{{ row.field1 }}</p>
+      </el-table-column>
+      <el-table-column label="全宗名称" prop="caseNewName" v-slot:default="{ row }">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          :content="row.caseNewName"
+          placement="bottom-start"
+          v-if="row.caseNewName && row.caseNewName.length > 10"
+        >
+          <p class="tip oper-user">{{ row.caseNewName.substring(0, 10) }}...</p>
+        </el-tooltip>
+        <p class="tip" v-else>{{ row.caseNewName }}</p>
+      </el-table-column>
+      <el-table-column label="勘验人员" prop="organizerUsers" v-slot:default="{ row }">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          :content="row.field3"
+          placement="bottom-start"
+          v-if="row.field3 && row.field3.length > 10"
+        >
+          <p class="tip oper-user">{{ row.field3.substring(0, 10) }}...</p>
+        </el-tooltip>
+        <p class="tip" v-else>{{ row.field3 }}</p>
+      </el-table-column>
+      <el-table-column label="勘验人单位、职务" prop="field4" v-slot:default="{ row }">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          :content="row.field4"
+          placement="bottom-start"
+          v-if="row.field4 && row.field4.length > 10"
+        >
+          <p class="tip oper-user">{{ row.field4.substring(0, 10) }}...</p>
+        </el-tooltip>
+        <p class="tip" v-else>{{ row.field4 }}</p>
+      </el-table-column>
 
-      <el-table-column label="承办单位" prop="organizerDeptName"></el-table-column>
+      <el-table-column label="勘验单位" prop="organizerDeptName"></el-table-column>
       <el-table-column label="事故日期" prop="accidentDate"></el-table-column>
       <el-table-column label="勘验日期" prop="field8"></el-table-column>
       <el-table-column label="火灾原因" prop="fireReason" v-slot:default="{ row }">
@@ -79,9 +158,9 @@
           effect="dark"
           :content="row.fireReason"
           placement="bottom-start"
-          v-if="row.fireReason && row.fireReason.length > 15"
+          v-if="row.fireReason && row.fireReason.length > 10"
         >
-          <p class="tip oper-user">{{ row.fireReason }}</p>
+          <p class="tip oper-user">{{ row.fireReason.substring(0, 10) }}...</p>
         </el-tooltip>
         <p class="tip" v-else>{{ row.fireReason }}</p>
       </el-table-column>
@@ -111,5 +190,5 @@ import { FireStatus } from "@/app/fire/store/fire";
 import { operateIsPermissionByPath } from "@/directive/permission";
 import { FirePagging } from "./pagging";
 
-defineProps<{ pagging: FirePagging; checkPerm: string }>();
+defineProps<{ pagging: FirePagging; checkPerm: string; isRecycle: boolean }>();
 </script>

+ 4 - 1
src/app/fire/view/dispatch/pagging.ts

@@ -24,7 +24,10 @@ export const useFirePagging = () => {
       await delFire(raw, isRecycle.value ? 1 : 2);
     },
     mapper: {
-      delMsg: "删除火调项目,相关档案也会一并删除,确定要删除吗?",
+      delMsg: () =>
+        isRecycle.value
+          ? "删除后将无法恢复,确定要删除吗?"
+          : "删除火调项目,相关档案也会一并删除,确定要删除吗?",
     },
     paramsTemlate: {
       projectSn: "",

+ 1 - 1
src/app/map/company-select/index.vue

@@ -3,7 +3,7 @@
     style="width: 100%"
     v-model="state.path"
     :disabled="disabled"
-    placeholder="承办单位:"
+    placeholder="勘验单位:"
     :options="state.options"
     :props="{ expandTrigger: 'hover', checkStrictly: true }"
   />

+ 1 - 1
src/components/company-select/index.vue

@@ -3,7 +3,7 @@
     style="width: 100%"
     v-model="state.path"
     :disabled="disabled"
-    placeholder="承办单位:"
+    placeholder="勘验单位:"
     :options="state.options"
     :props="{ expandTrigger: 'hover', checkStrictly: true }"
   />

+ 11 - 7
src/hook/pagging.ts

@@ -65,7 +65,7 @@ type Operate<P, RAW, NRAW> = {
   set?: (param: RAW) => void;
   add?: (param: NRAW) => void;
   del?: (param: RAW) => void;
-  mapper?: { delMsg?: string };
+  mapper?: { delMsg?: string | (() => string) };
 };
 
 type PaggingProps<P, RAW, NRAW> = Operate<P, RAW, NRAW> & {
@@ -148,21 +148,25 @@ export const usePagging = <PARAM, RAW, NRAW>(
 
   return {
     async del(data: RAW) {
-      if (await confirm(props.mapper?.delMsg || "确定要删除此数据吗?")) {
+      const msg =
+        typeof props.mapper?.delMsg === "function"
+          ? props.mapper?.delMsg()
+          : props.mapper?.delMsg;
+      if (await confirm(msg || "确定要删除此数据吗?")) {
         const result = await itemAPI.del!(data);
         ElMessage.success("删除成功");
         return result;
       }
     },
     async deleteSelected() {
+      const msg =
+        typeof props.mapper?.delMsg === "function"
+          ? props.mapper?.delMsg()
+          : props.mapper?.delMsg;
       const rows = tableOperate.tableState.value.selectRows;
       if (rows.length === 0) {
         ElMessage.error("请勾选数据后再删除数据!");
-      } else if (
-        await confirm(
-          props.mapper?.delMsg || `确定要删除这${rows.length}条数据吗?`
-        )
-      ) {
+      } else if (await confirm(msg || `确定要删除这${rows.length}条数据吗?`)) {
         await Promise.all(rows.map((item) => itemAPI?.del!(item as any)));
         ElMessage.success("删除成功");
         refresh();

+ 1 - 0
src/request/urls.ts

@@ -239,6 +239,7 @@ export const onLineCheck = "/web/fireProject/onLineCheck";
 // 照片制卷
 export const caseApiList = "/fusion-xj/caseImg/list";
 export const saveApiOrUpdate = "/fusion-xj/caseImg/saveOrUpdate";
+export const uploadImagesAndSave = "/fusion-xj/caseImg/addBatch";
 export const caseApiDel = "/fusion-xj/caseImg/delete";
 export const caseApiUpdateSort = "/fusion-xj/caseImg/updateSort";
 

+ 15 - 0
src/store/case.ts

@@ -9,6 +9,7 @@ import {
   updateCaseFile,
   caseApiList,
   saveApiOrUpdate,
+  uploadImagesAndSave,
   caseApiDel,
   caseApiUpdateSort,
   caseInquestInfo,
@@ -42,6 +43,17 @@ export type CaseImg = {
   sort: number | null;
 };
 
+export type filesItem = {
+  caseId: number;
+  imgInfo: string | null;
+  imgUrl: string | null;
+};
+
+export type AllSaveFile = {
+  imgUrls: filesItem[];
+};
+
+
 export const setCaseSharePWD = (params: { caseId: number; randCode: string }) =>
   axios.post(setCasePsw, params);
 
@@ -100,6 +112,9 @@ export const caseImgList = (caseId: number, orderBy: string | null) =>
 export const saveOrUpdate = (params: CaseImg) =>
   axios.post(saveApiOrUpdate, { ...params });
 
+export const saveOrAndSave = (params: AllSaveFile) =>
+  axios.post(uploadImagesAndSave, { ...params });
+
 export const caseDel = (id: number) => axios.post(caseApiDel, { id });
 
 export const caseUpdateSort = (list: [CaseImg]) =>

+ 190 - 0
src/view/case/addPhotoFileAll.vue

@@ -0,0 +1,190 @@
+<template>
+  <el-form
+    ref="form"
+    :model="caseFile"
+    label-width="90px"
+    class="camera-from dispatch-file-from"
+  >
+    <el-form-item label="照片:" class="mandatory">
+      <el-upload
+        class="upload-demo"
+        :multiple="true"
+        :limit="10"
+        :before-upload="upload"
+        v-model:file-list="fileList"
+        :http-request="httpsApi"
+        :on-preview="previewFile"
+        :accept="photoFormats"
+        :on-remove="handleRemove"
+      >
+        <el-button type="primary" :disabled="!!file">
+          <el-icon><Upload /></el-icon>上传
+        </el-button>
+        <template v-slot:tip>
+          <div class="el-upload__tip">注:可上传{{ size }}以内的{{ photoFormatDesc }}</div>
+        </template>
+        <template v-slot:file="{ file }">
+          <div class="file" @click.stop="previewFile()">
+            <div>
+              <el-icon><Document /></el-icon>
+              <span class="name">{{ file.name }}</span>
+            </div>
+            <el-icon @click.stop="removeFile(file)"><Close /></el-icon>
+          </div>
+        </template>
+      </el-upload>
+    </el-form-item>
+    <!-- <el-form-item label="附件标题:" class="mandatory">
+      <el-input
+        v-model="caseFile.imgInfo"
+        placeholder="请输入最多不能超过50字"
+        maxlength="50"
+        show-word-limit
+      ></el-input>
+    </el-form-item> -->
+  </el-form>
+</template>
+
+<script setup lang="ts">
+import {
+  DrawFormatDesc,
+  DrawFormats,
+  photoFormats,
+  photoFormatDesc,
+  FileDrawType,
+  OtherFormatDesc,
+  OtherFormats,
+} from "@/constant/caseFile";
+import { uploadFile } from "@/store/system";
+import { maxFileSize } from "@/constant/caseFile";
+import { useUpload } from "@/hook/upload";
+import { saveOrAndSave, CaseImg } from "@/store/case";
+import { ElMessage } from "element-plus";
+import { computed, ref, watch, watchEffect } from "vue";
+import { QuiskExpose } from "@/helper/mount";
+import type { UploadProps } from 'element-plus'
+
+const props = defineProps<{
+  caseId: number;
+  data: CaseImg;
+}>();
+
+const defaultUpload = (
+  file: File,
+  onPercentage: (percentage: number) => void
+) => {
+  onPercentage(100);
+};
+
+const caseFile = ref<CaseImg>({
+  caseId: props.caseId,
+  id: props.data?.id,
+  imgUrl: props.data.imgUrl,
+  imgInfo: props.data.imgInfo,
+  sort: props.data?.sort || '',
+} as any);
+
+const { size, previewFile, file, accept, percentage, format } = useUpload({
+  maxSize: maxFileSize,
+  formats: DrawFormats,
+});
+
+const upload = async (file: File) => {
+    const fileType = file.name
+      .substring(file.name.lastIndexOf("."))
+      .toUpperCase();
+
+    if (!DrawFormats.some((type) => type.toUpperCase() === fileType)) {
+      ElMessage.error(`请上传${format.value}`);
+      return false;
+    } else if (file.size > maxFileSize) {
+      ElMessage.error(`请上传${size.value}以内的文件`);
+      return false;
+    } else {
+      console.log('file', file)
+      fileList.value.push(file);
+      await defaultUpload(
+        file,
+        (val) => (percentage.value = val)
+      );
+      if (fileType === ".RAW") {
+      }
+      percentage.value = undefined;
+      return true;
+    }
+  };
+const fileList = ref([])
+const formatDesc = computed(() =>
+DrawFormatDesc
+);
+watch(props, newValue => {
+  caseFile.value.id = newValue.data.id;
+  caseFile.value.imgInfo = newValue.data.imgInfo;
+  caseFile.value.imgUrl = newValue.data.imgUrl;
+  caseFile.value.sort = newValue.data.sort;
+  if(newValue.data.imgUrl){
+    file.value = {
+    name: newValue.data.imgInfo || '',
+    url: newValue.data.imgUrl || '',
+  }
+  }
+},{ immediate: true })
+watchEffect(() => {
+  if (file.value?.name) {
+    caseFile.value.imgInfo = file.value?.name.substring(0, 50);
+  }
+});
+const handleRemove: UploadProps['onRemove'] = (uploadFile, uploadFiles) => {
+  console.log(uploadFile, uploadFiles)
+}
+const removeFile = (file) => {
+  fileList.value = fileList.value.filter((item) => item.raw.url !== file.raw.url);
+};
+const httpsApi = async ({file})=> {
+  console.log('httpsApi', file)
+  let fileUrl = await uploadFile(file);
+
+  file.url = fileUrl
+  console.log('httpsApi', file, fileUrl)
+}
+
+defineExpose<QuiskExpose>({
+  async submit() {
+    console.log('defineExpose', fileList.value)
+    if (!fileList.value.length) {
+      ElMessage.error("请上传照片");
+      throw "请上传照片";
+    }
+    console.log('defineExpose', caseFile.value, file.value)
+    let imgUrls = fileList.value.map(item => {
+      return {
+        imgUrl: item.raw && item.raw.url,
+        imgInfo: item.name.replace(/\.[^/.]+$/, ""),
+        caseId: props.caseId,
+      }
+    })
+    await saveOrAndSave({ imgUrls });
+    return caseFile.value;
+  },
+});
+</script>
+
+<style scoped lang="scss">
+.upload-demo {
+  overflow: hidden;
+}
+
+.file {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  > div {
+    display: flex;
+    align-items: center;
+  }
+
+  .name {
+    margin-left: 10px;
+  }
+}
+</style>

+ 4 - 1
src/view/case/caseFile.vue

@@ -132,7 +132,10 @@ watchEffect(() => caseId.value && currentTypeId.value && refresh());
 const query = (file: CaseFile) => {
   const ext = file.filesUrl.substring(file.filesUrl.lastIndexOf(".")).toLocaleLowerCase();
   if ([".raw", ".dcm"].includes(ext)) {
-    window.open(`/xfile-viewer/index.html?file=${file.filesUrl}&time=` + Date.now());
+    window.open(
+      `/xfile-viewer/index.html?file=${file.filesUrl}&name=${file.filesTitle}&time=` +
+        Date.now()
+    );
   } else {
     window.open(file.filesUrl + "?time=" + Date.now());
   }

+ 55 - 4
src/view/case/photos/index.vue

@@ -1,8 +1,20 @@
 <template>
-  <div class="photo">
+  <div class="photo ">
     <div class="left">
-      <div class="upload">
-        <el-button type="primary" @click="addCaseFileHandler">
+      <div class="upload my-photo-upload">
+          <!-- <el-upload
+          v-model:file-list="fileList"
+          class="upload-demo"
+          multiple
+          :show-file-list="false"
+          :http-request="handleRequest"
+          :on-change="handleChange"
+          :before-upload="handleUpload"
+          :limit="10"
+        >
+          <el-button type="primary">上传照片</el-button>
+        </el-upload> -->
+        <el-button type="primary" @click="addCaseFileHandlerAll">
           上传照片
         </el-button>
         <el-button
@@ -78,7 +90,7 @@ import { Menu, FullScreen } from "@element-plus/icons-vue";
 import { Swiper, SwiperSlide } from "swiper/vue";
 import "swiper/css";
 // import { addCaseFile } from "@/store/caseFile";
-import { addCaseImgFile } from "../quisk";
+import { addCaseImgFile, addCaseImgFileAll } from "../quisk";
 import { saveCaseImgTagData, getCaseImgTagData } from "@/store/case";
 import Scene from "@/core/Scene.js";
 import draggable from "./draggable.vue";
@@ -86,6 +98,7 @@ import { ElMessage, ElMessageBox } from "element-plus";
 
 const props = defineProps({ caseId: Number });
 const newlist = ref([]);
+const fileList = ref([]);
 const swiperRef = ref(null);
 const childRef = ref(null);
 const caseId = ref(props.caseId);
@@ -108,6 +121,20 @@ const addCaseFileHandler = async () => {
   });
   refresh();
 };
+
+const addCaseFileHandlerAll = async () => {
+  await addCaseImgFileAll({
+    caseId: caseId.value,
+    data: {
+      imgUrl: "",
+      imgInfo: "",
+      id: "",
+      sort: "",
+    },
+  });
+  refresh();
+};
+
 function refresh() {
   console.log("changeList", childRef.value);
 
@@ -197,6 +224,16 @@ const onSwiper = (swiper) => {
 const onSlideChange = (swiper) => {
   console.log(swiper);
 };
+const handleChange = (val, list) => {
+  fileList.value = list;
+  console.log('handleChange',val, list, fileList.value);
+}
+const handleRequest = (val, list) => {
+  console.log('handleRequest',val, list);
+}
+const handleUpload = (val) => {
+  console.log('handleUpload', val);
+}
 const handleItem = (item) => {
   let active = sortType.value ? item : Math.floor(item / 2);
   // swiperRef.value.slideTo(active);
@@ -269,6 +306,19 @@ onMounted(() => {
   // } catch (error) {}
 });
 </script>
+<style lang="scss">
+.my-photo-upload{
+      .upload-demo{    
+        display: inline-block;
+        margin-right: 20px;
+        position: relative;
+        bottom: -1px;
+        .el-upload-list{
+          display: none;
+        }
+      }
+}
+</style>
 <style lang="scss" scoped>
 #canvas {
   width: 100%;
@@ -287,6 +337,7 @@ onMounted(() => {
     background: #ffffff;
     box-shadow: 10px 0 10px -10px rgba(0, 0, 0, 0.15);
     // box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.15);
+
   }
 
   .right {

+ 7 - 1
src/view/case/quisk.ts

@@ -1,4 +1,5 @@
 import addPhotoFile from "./addPhotoFile.vue";
+import addPhotoFileAll from "./addPhotoFileAll.vue";
 import AddCaseFile from "./addCaseFile.vue";
 import AddScenes from "./addScenes.vue";
 import ShareCase from "./share.vue";
@@ -17,7 +18,12 @@ export const addCaseFile = quiskMountFactory(AddCaseFile, {
 });
 
 export const addCaseImgFile = quiskMountFactory(addPhotoFile, {
-  title: "上传附件",
+  title: "上传照片",
+  width: 500,
+});
+
+export const addCaseImgFileAll = quiskMountFactory(addPhotoFileAll, {
+  title: "上传照片",
   width: 500,
 });
 

+ 1 - 1
src/view/case/records/index.vue

@@ -226,7 +226,7 @@
       </div>
 
       <div class="info">
-        <span class="sub-tit">勘验信息:</span>
+        <span class="sub-tit">天气情况:</span>
         <div class="inner">
           <div class="sec">
             <span>勘验负责人</span>

+ 6 - 1
src/view/setting/index.vue

@@ -4,7 +4,12 @@
   <div class="body-layer" style="padding: 24px" v-loading="loading">
     <el-form :model="form" label-width="auto" style="max-width: 600px">
       <el-form-item label="系统标题">
-        <el-input v-model="form.name" placeholder="请输入系统标题" />
+        <el-input
+          v-model="form.name"
+          placeholder="请输入系统标题"
+          :maxlength="100"
+          show-word-limit
+        />
       </el-form-item>
       <el-form-item label="系统主题色">
         <el-radio-group v-model="form.color">

+ 4 - 2
src/view/vrmodel/downloadLog.vue

@@ -12,8 +12,10 @@
       </el-form-item>
       <el-form-item label="下载时间:">
         <el-date-picker
-          type="datetimerange"
-          format="YYYY-MM-DD HH:mm:ss"
+          type="daterange"
+          format="YYYY-MM-DD"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
           v-model="createTime"
           placeholder="请选择"
           :defaultTime="defaultTime"

+ 1 - 1
src/view/vrmodel/list.vue

@@ -33,7 +33,7 @@ import { useScenePaggingParams } from "./pagging";
 defineProps<{ params: ReturnType<typeof useScenePaggingParams> }>();
 
 const headOptions = [
-  { value: SceneType.SWKK, name: SceneTypeDesc[SceneType.SWKK] },
+  // { value: SceneType.SWKK, name: SceneTypeDesc[SceneType.SWKK] },
   { value: SceneType.SWKJ, name: SceneTypeDesc[SceneType.SWKJ] },
   { value: SceneType.SWSS, name: SceneTypeDesc[SceneType.SWSS] },
   { value: SceneType.SWSSMX, name: SceneTypeDesc[SceneType.SWSSMX] },

+ 1 - 1
src/view/vrmodel/pagging.ts

@@ -6,7 +6,7 @@ export const useScenePaggingParams = () => {
   const pagging = usePagging({
     get: getScenePagging,
     paramsTemlate: {
-      type: SceneType.SWKK,
+      type: SceneType.SWKJ,
       sceneName: "",
       modelTitle: "",
       deptId: "",