jinx 1 ماه پیش
والد
کامیت
5f7188e4da
5فایلهای تغییر یافته به همراه86 افزوده شده و 67 حذف شده
  1. 3 1
      README.md
  2. 13 9
      src/utils/file.js
  3. 18 10
      src/views/pc/DeepSearch.vue
  4. 49 45
      src/views/pc/ResourceLibraryView.vue
  5. 3 2
      vite.config.js

+ 3 - 1
README.md

@@ -1 +1,3 @@
-html5-qrcode
+html5-qrcode
+https://sit-chaoxuept.4dage.com/web/#/login
+/Default/腾讯云/项目节点/腾讯云-四维时代-项目测试服务器-111.230.233.212/data/data/museum_guangdong_chaozhou_yanjiuyuan_form_data

+ 13 - 9
src/utils/file.js

@@ -4,17 +4,21 @@ export const utf8ToBase64 = (str) => {
   const binary = String.fromCharCode(...bytes);
   return btoa(binary);
 };
-export const getThumb = (name) => {
-  if (name.indexOf("http") != -1) {
-    return name;
-  } else {
-    if (
-      (typeof name === "string" && name.substring(0, 4) == "blob") ||
-      (typeof name === "string" && name.substring(0, 10) == "data:image")
-    ) {
+export const getThumb = (name = "") => {
+  if (name) {
+    if (name.indexOf("http") != -1) {
       return name;
     } else {
-      return import.meta.env.VITE_RESOURCE_URL + name;
+      if (
+        (typeof name === "string" && name.substring(0, 4) == "blob") ||
+        (typeof name === "string" && name.substring(0, 10) == "data:image")
+      ) {
+        return name;
+      } else {
+        return import.meta.env.VITE_RESOURCE_URL + name;
+      }
     }
+  } else {
+    return "";
   }
 };

+ 18 - 10
src/views/pc/DeepSearch.vue

@@ -313,12 +313,17 @@
                 <div class="content" v-if="searchMode == 'condition'">
                   <div class="content-top">
                     <div class="main-info">
-                      <h3>{{ item.name }}</h3>
+                      <h3 :title="item.name">{{ item.name }}</h3>
                       <div class="meta-grid">
-                        <p>责任者:{{ item.create_by }}</p>
-                        <p>出版社:{{ item.chubanshe }}</p>
-                        <p>出版日期:{{ item.create_time }}</p>
-                        <p v-for="i in getDictName(item.dictName)">
+                        <p :title="item.create_by">
+                          责任者:{{ item.create_by }}
+                        </p>
+                        <!-- <p>出版社:{{ item.chubanshe }}</p>
+                        <p>出版日期:{{ item.create_time }}</p> -->
+                        <p
+                          :title="`${i.label} : ${i.value}`"
+                          v-for="i in getDictName(item.dictName)"
+                        >
                           {{ i.label }}:{{ i.value }}
                         </p>
                         <!-- <p>四部分类:{{ item.sibu }}</p> -->
@@ -335,7 +340,7 @@
 
                 <div class="text-search-content" v-else>
                   <div class="title">
-                    <p>{{item.name}}</p>
+                    <p>{{ item.name }}</p>
 
                     <div
                       class="star"
@@ -810,11 +815,14 @@ const getPageList = () => {
       }
 
       const formData = res.data?.formData || res.data || {};
-      const records = normalizeList(
-        formData.records || formData.list || formData.rows || formData,
-      );
+      // const records = normalizeList(
+      //   formData.records || formData.list || formData.rows || formData,
+      // );
+
+      const records = formData.records || [];
 
-      pagedList.value = records.map(normalizeRecord);
+      // pagedList.value = records.map(normalizeRecord);
+      pagedList.value = records;
       total.value = Number(
         formData.total ??
           formData.totalRow ??

+ 49 - 45
src/views/pc/ResourceLibraryView.vue

@@ -180,12 +180,21 @@
                 <div class="content">
                   <div class="content-top">
                     <div class="main-info">
-                      <h3>{{ item.name }}</h3>
+                      <h3 :title="item.name">{{ item.name }}</h3>
                       <div class="meta-grid">
-                        <p>责任者:{{ item.create_by }}</p>
-                        <p>出版社:{{ item.chubanshe }}</p>
-                        <p>出版日期:{{ item.create_time }}</p>
-                        <p v-for="i in getDictName(item.dictName)">
+                        <p :title="item.create_by">
+                          责任者:{{ item.create_by }}
+                        </p>
+                        <!-- <p :title="item.chubanshe">
+                          出版社:{{ item.chubanshe }}
+                        </p>
+                        <p :title="item.create_time">
+                          出版日期:{{ item.create_time }}
+                        </p> -->
+                        <p
+                          :title="`${i.label} : ${i.value}`"
+                          v-for="i in getDictName(item.dictName)"
+                        >
                           {{ i.label }}:{{ i.value }}
                         </p>
                       </div>
@@ -456,7 +465,7 @@ const toggleSection = (sectionKey) => {
   section.collapsed = !section.collapsed;
 };
 
-const selectResourceType = (value) => {
+const selectResourceType = async (value) => {
   const nextValue = String(value);
   if (selectedResourceType.value === nextValue) {
     return;
@@ -465,7 +474,7 @@ const selectResourceType = (value) => {
   currentPage.value = 1;
   Object.keys(selectedTags).forEach((key) => delete selectedTags[key]);
   selectedTagMap.value = {};
-  getSelectList();
+  await getSelectList();
   getPageList();
 };
 
@@ -547,19 +556,29 @@ const handlePageChange = (page) => {
   getPageList();
 };
 
-const getSelectList = () => {
-  if (!selectedResourceType.value) return;
+const getSelectList = async () => {
+  if (!selectedResourceType.value) {
+    dictFieldNameMap.value = {};
+    fieldOptions.value = [];
+    return;
+  }
 
-  getFieldList(selectedResourceType.value).then((res) => {
-    if (res.code !== 0) return;
+  const res = await getFieldList(selectedResourceType.value).catch(() => null);
+  if (res?.code !== 0) {
+    dictFieldNameMap.value = {};
+    fieldOptions.value = [];
+    return;
+  }
 
-    const fields = normalizeList(res.data);
-    dictFieldNameMap.value = fields.reduce((map, item) => {
-      if (item.dictId && item.fieldName) {
-        map[String(item.dictId)] = item.fieldName;
-      }
-      return map;
-    }, {});
+  const fields = normalizeList(res.data);
+  dictFieldNameMap.value = fields.reduce((map, item) => {
+    if (item.dictId && item.fieldName) {
+      map[String(item.dictId)] = item.fieldName;
+    }
+    return map;
+  }, {});
+  fieldOptions.value = fields.filter((item) => {
+    return !filterKey.includes(item.fieldName);
   });
 };
 
@@ -641,25 +660,24 @@ const getPageList = () => {
     });
 };
 
-const getSidebarDef = () => {
-  formDataSidebarDefCount().then((res) => {
-    if (res.code !== 0) return;
+const getSidebarDef = async () => {
+  const res = await formDataSidebarDefCount().catch(() => null);
+  if (res?.code !== 0) return;
 
-    const items = normalizeList(res.data).map(normalizeSidebarItem);
-    filterSections[0].items = items;
+  const items = normalizeList(res.data).map(normalizeSidebarItem);
+  filterSections[0].items = items;
 
-    if (!selectedResourceType.value && items.length) {
-      selectedResourceType.value = String(items[0].value);
-    }
+  if (!selectedResourceType.value && items.length) {
+    selectedResourceType.value = String(items[0].value);
+  }
 
-    getSelectList();
-    getPageList();
-  });
+  await getSelectList();
+  getPageList();
 };
 
 watch(
   () => route.params.id,
-  (value) => {
+  async (value) => {
     const nextValue = value ? String(value) : "";
     if (!nextValue || nextValue === selectedResourceType.value) {
       return;
@@ -669,7 +687,7 @@ watch(
     currentPage.value = 1;
     Object.keys(selectedTags).forEach((key) => delete selectedTags[key]);
     selectedTagMap.value = {};
-    getSelectList();
+    await getSelectList();
     getPageList();
   },
 );
@@ -688,20 +706,6 @@ const filterKey = [
 ];
 onMounted(() => {
   // store.dispatch("enableCache", "resource-library");
-  getFieldList(selectedResourceType.value).then((res) => {
-    if (res.code === 0) {
-      const fields = normalizeList(res.data);
-      dictFieldNameMap.value = fields.reduce((map, item) => {
-        if (item.dictId && item.fieldName) {
-          map[String(item.dictId)] = item.fieldName;
-        }
-        return map;
-      }, {});
-      fieldOptions.value = fields.filter((item) => {
-        return !filterKey.includes(item.fieldName);
-      });
-    }
-  });
   getSidebarDef();
 });
 </script>

+ 3 - 2
vite.config.js

@@ -5,10 +5,11 @@ import { fileURLToPath, URL } from "node:url";
 
 export default defineConfig({
   base: "./",
-  plugins: [vue(), basicSsl()],
+  // plugins: [vue(), basicSsl()],
+  plugins: [vue()],
   server: {
     host: "0.0.0.0",
-    https: true,
+    // https: true,
     proxy: {
       "/api": {
         // target: "http://192.168.20.61:8118/",