tangning 7 月之前
父節點
當前提交
e340fe9570

+ 2 - 1
src/components/viewImg/index.vue

@@ -17,7 +17,7 @@
       <div
         class="maskContainer previewBox my-2 mr-4"
         :style="{ width: width, height: height }"
-        v-for="(item, index) in list"
+        v-for="(item, index) in (deleteShow?list:list.reverse())"
         :key="index"
       >
         <div class="demo-image__preview h-full w-full">
@@ -119,6 +119,7 @@ const visible = ref({
   show: false,
   src: "",
 });
+const deleteVal = ref(props.deleteShow);
 const currSize = ref({ width: 0, height: 0 });
 const fileList = ref([".doc", ".docx", ".pdf", ".xls", ".xlsx"]);
 const initFileList = ref([

+ 1 - 3
src/hook/pagging.ts

@@ -81,7 +81,6 @@ export const usePagging = <PARAM, RAW, NRAW>(
   const pagOperate = genPagOperate();
   const queryOperate = genQueryOperate(props.paramsTemlate);
   const loading = ref(false);
-
   const refreshRaw = async () => {
     loading.value = true;
     const pag = pagOperate.pagStore.value;
@@ -90,7 +89,6 @@ export const usePagging = <PARAM, RAW, NRAW>(
       pageNum: pag.currentPage,
       pageSize: pag.size,
     } as any;
-
     const params: any = Object.keys(paramsRaw)
       .filter((key) => ![UN_REQ_NUM, "" + UN_REQ_NUM].includes(paramsRaw[key]))
       .reduce((t, k) => {
@@ -100,7 +98,7 @@ export const usePagging = <PARAM, RAW, NRAW>(
         }
         return t;
       }, {} as any);
-
+      console.log('queryOperate', queryOperate, paramsRaw, params);
     const data = await props.get(params);
     pag.total = data.total;
     tableOperate.tableState.value.rows = data.list as any;

+ 1 - 0
src/request/urls.ts

@@ -252,6 +252,7 @@ export const saveOrUpdate = "/fusion/caseInquestCriminal/saveOrUpdate";
 export const downDocx = "/fusion/caseInquestCriminal/downDocx";
 export const getSceneList = "/service/manage/scene/list";
 export const getDictFileList = "/service/manage/dict/getByKey/media-library";
+export const delDictFileList = "/service/manage/dictFile/del/media-library";
 export const getListFileList = "/service/manage/dictFile/pageList/media-library";
 export const caseaddOrUpdate = '/service/manage/case/addOrUpdate';
 

+ 5 - 0
src/store/case.ts

@@ -10,6 +10,7 @@ import {
   caseInquestInfo,
   newFileupload,
   getDictFileList,
+  delDictFileList,
   getByTree,
   getListFileList,
   addByMediaLibrary,
@@ -115,6 +116,10 @@ export const getupdateFileType = async (params): Promise<Scene[]> => {
 export const getDictFileLists = async (type: number): Promise<Scene[]> => {
   return (await axios.get(getDictFileList, { params: { type: type } })).data;
 };
+export const delDictFileLists = async (id: number): Promise<Scene[]> => {
+  return (await axios.post(delDictFileList, { id })).data;
+};
+
 
 export const getcaseLists = async (caseId: number): Promise<Scene[]> => {
   return (await axios.get(isdyrh, { params: { caseId } })).data;

+ 2 - 2
src/view/abstract/index.vue

@@ -333,10 +333,10 @@ const submit = async () => {
     }
     await setExample({...bindExample.value, caseId :caseId.value })
     await getCaseInfo(caseId.value)
-    ElMessage.success("保存成功");
   }else{
-    casesaveOrUpDate({...ruleForm.value, caseId :caseId.value })
+    await casesaveOrUpDate({...ruleForm.value, caseId :caseId.value })
   }
+  ElMessage.success("保存成功");
 };
 const submitForm = async (formEl) => {
   if (!formEl) return;

+ 3 - 1
src/view/case/draw/selectMapImage.vue

@@ -75,8 +75,10 @@ watchEffect(async (onCleanup) => {
     autoFitView: true,
   });
   const setSearch = (data) => {
+    console.log('setSearch', data);
+    let city = data.cityname == data.adname? data.cityname : (data.cityname + data.adname);
     searchInfo.value = {
-      text: data.pname + data.cityname + data.adname + data.address,
+      text: data.pname + city + data.address,
       lat: data.location.lat,
       lng: data.location.lng,
       zoom: 0,

+ 2 - 2
src/view/originalPhoto/addLibrary.vue

@@ -5,10 +5,10 @@
     label-width="90px"
     class="camera-from dispatch-file-from jm-file-upload"
   >
-    <el-form-item label="分:" class="mandatory">
+    <el-form-item label="分:" class="mandatory">
       <el-select
       v-model="caseFile.dictId"
-      placeholder="请选择分"
+      placeholder="请选择分"
       size="large"
       style="width: 240px"
     >

+ 33 - 10
src/view/originalPhoto/addScenes.vue

@@ -2,10 +2,24 @@
   <VRModelList :params="params">
     <template v-slot:header>
       <el-form-item label="名称:" style="grid-area: 1 / 1 / 2 / 4">
-        <el-input v-model="params.name" placeholder="请输入" />
+        <el-input v-model="params.pagging.state.query.name" placeholder="请输入" />
       </el-form-item>
       <el-form-item label="分组:" style="grid-area: 1 / 1 / 2 / 4">
-        <el-input v-model="params.keyword" placeholder="请输入" />
+        <el-select
+          v-model="params.pagging.state.query.dictId"
+          placeholder="请选择"
+          style="width: 200px"
+          clearable
+
+        >
+        <el-option
+          v-for="item in options"
+          :key="item.id"
+          :label="item.dictName"
+          :value="item.id"
+        />
+        </el-select>
+        <!-- <el-input  placeholder="请输入" /> -->
       </el-form-item>
     </template>
     <template v-slot:content>
@@ -18,14 +32,16 @@
         @selection-change="changeSelection"
       >
         <el-table-column type="selection" width="50" :selectable="selectable"/>
-        <el-table-column label="名称" v-slot:default="{ row }">
-          {{ params.isSwmx ? row.modelTitle : row.name }}
+        <el-table-column width="400" label="名称" v-slot:default="{ row }">
+          <span class="truncate" :title="row.name">{{ row.name }}</span>
         </el-table-column>
         <el-table-column label="格式" prop="fileFormat"></el-table-column>
-        <el-table-column label="大小" prop="fileSize" v-slot:default="{ row }">
+        <el-table-column width="140" label="大小" prop="fileSize" v-slot:default="{ row }">
           {{ formatSizeUnits(row.fileSize) }}
         </el-table-column>
-        <el-table-column label="分组" prop="dictName"></el-table-column>
+        <el-table-column class="truncate" width="140" label="分组" prop="dictName" v-slot:default="{ row }">
+          <span :title="row.dictName" class="truncate">{{ row.dictName }}</span>
+        </el-table-column>
         <el-table-column
         label="操作"
         v-slot:default="{ row }"
@@ -47,7 +63,7 @@
 <script setup lang="ts">
 import VRModelList from "./list.vue";
 import { Scene } from "@/store/scene";
-import { CaseScenes } from "@/store/case";
+import { CaseScenes, getDictFileLists, delDictFileLists } from "@/store/case";
 import { useScenePaggingParams } from "./pagging";
 import { onMounted, ref, watch, watchEffect } from "vue";
 import {
@@ -58,9 +74,10 @@ import {
 } from "@/store/case";
 import { QuiskExpose } from "@/helper/mount";
 import { ElTable } from "element-plus";
-
+const options = ref([]);
 const props = defineProps<{ caseId: number, formats: Array<string> }>();
 const params = useScenePaggingParams();
+console.log("formats", params);
 const caseScenes = ref([]);
 const tableRef = ref<InstanceType<typeof ElTable>>();
 // const 
@@ -90,8 +107,12 @@ const selectable = (row) => {
   const fileType = row.fileUrl?.substring(row.fileUrl.lastIndexOf("."))
       .toLowerCase();
   return props.formats.includes(fileType);
-}
+} 
 
+const del = async (row) => {
+  const res = await delDictFileLists(row.id);
+  params.pagging.queryReset()
+}
 const changeSelection = (selectScenes) => {
   if (params.pagging.loading) return;
   const pagScenes = params.pagging.state.table.rows;
@@ -109,7 +130,9 @@ function formatSizeUnits(bytes){
 }
 // 初始化数据
 onMounted(async () => {
-  // caseScenes.value = getCaseScenes(await getCaseSceneList(props.caseId));
+  const res = await getDictFileLists(1);
+  console.log('onMounted', res);
+  options.value = res;
 });
 const submit = () => {
   console.log(caseScenes.value);

+ 3 - 7
src/view/originalPhoto/pagging.ts

@@ -11,7 +11,7 @@ export const useScenePaggingParams = () => {
       sceneName: "",
       modelTitle: "",
       name: "",
-      deptId: "",
+      dictId: "",
       snCode: "",
       type: '1',
     },
@@ -19,13 +19,9 @@ export const useScenePaggingParams = () => {
 
   const isSwmx = computed(() => pagging.state.query.type === SceneType.SWMX);
   const keyword = computed({
-    get: () =>
-      isSwmx.value
-        ? pagging.state.query.modelTitle
-        : pagging.state.query.sceneName,
+    get: () => pagging.state.query.name,
     set: (val: string) => {
-      pagging.state.query.modelTitle = val;
-      pagging.state.query.sceneName = val;
+      pagging.state.query.name = val;
     },
   });