Ver código fonte

📦 增加保护单位显示和其他细节修改

快乐的梦鱼 2 meses atrás
pai
commit
61db375c15

+ 10 - 0
src/api/inheritor/UnitContent.ts

@@ -0,0 +1,10 @@
+import { CommonContentApi } from '../CommonContent';
+
+export class UnitContentApi extends CommonContentApi {
+
+  constructor() {
+    super(undefined, 17, "非遗保护名录-非遗保护单位", 259);
+  }
+}
+
+export default new UnitContentApi();

+ 1 - 3
src/common/composeabe/TabControl.ts

@@ -17,9 +17,7 @@ export function useTabControl(options: {
   const tabsArray = ref<TabControlItem[]>(options.tabs ?? []);
 
   watch(tabCurrentIndex, (v) => {
-    options.onTabChange?.(v, tabCurrentId.value) 
-    if (tabsArray.value[v].jump)
-      tabsArray.value[v].jump()
+    options.onTabChange?.(v, tabCurrentId.value);
   })
 
   const tabs = computed(() => {

+ 0 - 1
src/common/config/AppCofig.ts

@@ -5,7 +5,6 @@
 export default {
   version: '0.0.1',
   appId: 'wx1845c7dab9e8b236',
-  amapKey: '34eb1d57f93720a871bd11a90af0c91c',
   defaultLonLat: [ 118.161270, 24.529196 ],
   defaultImage: 'https://mncdn.wenlvti.net/app_static/minnan/EmptyImage.png',
   shareTitle: '',

+ 8 - 3
src/components/nav/Tabs.vue

@@ -97,6 +97,11 @@ export interface TabsItemData {
    */
   visible?: boolean;
   /**
+   * 是否仅跳转,不触发点击事件。
+   * @default false
+   */
+  onlyJump?: boolean,
+  /**
    * 是否禁用选择。
    * @default false
    */
@@ -331,7 +336,7 @@ onMounted(() => {
 
 function onTabClick(index: number) {
   emit('click', props.tabs[index]);
-  if (index !== props.currentIndex) {
+  if (props.tabs[index].onlyJump !== true && index !== props.currentIndex) {
     emit('update:currentIndex', index);
   }
 }
@@ -343,15 +348,15 @@ function onTabClick(index: number) {
   flex-direction: row;
   position: relative;
   flex-shrink: 0;
-  flex-grow: 0;
+  flex-grow: 1;
   height: auto;
-  overflow: hidden;
 
   .tab-item {
     position: relative;
     padding-top: 20rpx;
     padding-bottom: 30rpx;
     box-sizing: content-box;
+    flex-shrink: 0;
   }
   .tab-item-text {
     font-size: 15px;

+ 0 - 561
src/libs/amap-wx.130.js

@@ -1,561 +0,0 @@
-function AMapWX(a) {
-  this.key = a.key;
-  this.requestConfig = {
-    key: a.key,
-    s: "rsx",
-    platform: "WXJS",
-    appname: a.key,
-    sdkversion: "1.2.0",
-    logversion: "2.0",
-  };
-  this.MeRequestConfig = {
-    key: a.key,
-    serviceName: "https://restapi.amap.com/rest/me",
-  };
-}
-AMapWX.prototype.getWxLocation = function (a, b) {
-  wx.getLocation({
-    type: "gcj02",
-    success: function (c) {
-      c = c.longitude + "," + c.latitude;
-      wx.setStorage({ key: "userLocation", data: c });
-      b(c);
-    },
-    fail: function (c) {
-      wx.getStorage({
-        key: "userLocation",
-        success: function (d) {
-          d.data && b(d.data);
-        },
-      });
-      a.fail({ errCode: "0", errMsg: c.errMsg || "" });
-    },
-  });
-};
-AMapWX.prototype.getMEKeywordsSearch = function (a) {
-  if (!a.options)
-    return a.fail({
-      errCode: "0",
-      errMsg: "\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570",
-    });
-  var b = a.options,
-    c = this.MeRequestConfig,
-    d = {
-      key: c.key,
-      s: "rsx",
-      platform: "WXJS",
-      appname: a.key,
-      sdkversion: "1.2.0",
-      logversion: "2.0",
-    };
-  b.layerId && (d.layerId = b.layerId);
-  b.keywords && (d.keywords = b.keywords);
-  b.city && (d.city = b.city);
-  b.filter && (d.filter = b.filter);
-  b.sortrule && (d.sortrule = b.sortrule);
-  b.pageNum && (d.pageNum = b.pageNum);
-  b.pageSize && (d.pageSize = b.pageSize);
-  b.sig && (d.sig = b.sig);
-  wx.request({
-    url: c.serviceName + "/cpoint/datasearch/local",
-    data: d,
-    method: "GET",
-    header: { "content-type": "application/json" },
-    success: function (e) {
-      (e = e.data) && e.status && "1" === e.status && 0 === e.code
-        ? a.success(e.data)
-        : a.fail({ errCode: "0", errMsg: e });
-    },
-    fail: function (e) {
-      a.fail({ errCode: "0", errMsg: e.errMsg || "" });
-    },
-  });
-};
-AMapWX.prototype.getMEIdSearch = function (a) {
-  if (!a.options)
-    return a.fail({
-      errCode: "0",
-      errMsg: "\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570",
-    });
-  var b = a.options,
-    c = this.MeRequestConfig,
-    d = {
-      key: c.key,
-      s: "rsx",
-      platform: "WXJS",
-      appname: a.key,
-      sdkversion: "1.2.0",
-      logversion: "2.0",
-    };
-  b.layerId && (d.layerId = b.layerId);
-  b.id && (d.id = b.id);
-  b.sig && (d.sig = b.sig);
-  wx.request({
-    url: c.serviceName + "/cpoint/datasearch/id",
-    data: d,
-    method: "GET",
-    header: { "content-type": "application/json" },
-    success: function (e) {
-      (e = e.data) && e.status && "1" === e.status && 0 === e.code
-        ? a.success(e.data)
-        : a.fail({ errCode: "0", errMsg: e });
-    },
-    fail: function (e) {
-      a.fail({ errCode: "0", errMsg: e.errMsg || "" });
-    },
-  });
-};
-AMapWX.prototype.getMEPolygonSearch = function (a) {
-  if (!a.options)
-    return a.fail({
-      errCode: "0",
-      errMsg: "\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570",
-    });
-  var b = a.options,
-    c = this.MeRequestConfig,
-    d = {
-      key: c.key,
-      s: "rsx",
-      platform: "WXJS",
-      appname: a.key,
-      sdkversion: "1.2.0",
-      logversion: "2.0",
-    };
-  b.layerId && (d.layerId = b.layerId);
-  b.keywords && (d.keywords = b.keywords);
-  b.polygon && (d.polygon = b.polygon);
-  b.filter && (d.filter = b.filter);
-  b.sortrule && (d.sortrule = b.sortrule);
-  b.pageNum && (d.pageNum = b.pageNum);
-  b.pageSize && (d.pageSize = b.pageSize);
-  b.sig && (d.sig = b.sig);
-  wx.request({
-    url: c.serviceName + "/cpoint/datasearch/polygon",
-    data: d,
-    method: "GET",
-    header: { "content-type": "application/json" },
-    success: function (e) {
-      (e = e.data) && e.status && "1" === e.status && 0 === e.code
-        ? a.success(e.data)
-        : a.fail({ errCode: "0", errMsg: e });
-    },
-    fail: function (e) {
-      a.fail({ errCode: "0", errMsg: e.errMsg || "" });
-    },
-  });
-};
-AMapWX.prototype.getMEaroundSearch = function (a) {
-  if (!a.options)
-    return a.fail({
-      errCode: "0",
-      errMsg: "\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570",
-    });
-  var b = a.options,
-    c = this.MeRequestConfig,
-    d = {
-      key: c.key,
-      s: "rsx",
-      platform: "WXJS",
-      appname: a.key,
-      sdkversion: "1.2.0",
-      logversion: "2.0",
-    };
-  b.layerId && (d.layerId = b.layerId);
-  b.keywords && (d.keywords = b.keywords);
-  b.center && (d.center = b.center);
-  b.radius && (d.radius = b.radius);
-  b.filter && (d.filter = b.filter);
-  b.sortrule && (d.sortrule = b.sortrule);
-  b.pageNum && (d.pageNum = b.pageNum);
-  b.pageSize && (d.pageSize = b.pageSize);
-  b.sig && (d.sig = b.sig);
-  wx.request({
-    url: c.serviceName + "/cpoint/datasearch/around",
-    data: d,
-    method: "GET",
-    header: { "content-type": "application/json" },
-    success: function (e) {
-      (e = e.data) && e.status && "1" === e.status && 0 === e.code
-        ? a.success(e.data)
-        : a.fail({ errCode: "0", errMsg: e });
-    },
-    fail: function (e) {
-      a.fail({ errCode: "0", errMsg: e.errMsg || "" });
-    },
-  });
-};
-AMapWX.prototype.getGeo = function (a) {
-  var b = this.requestConfig,
-    c = a.options;
-  b = {
-    key: this.key,
-    extensions: "all",
-    s: b.s,
-    platform: b.platform,
-    appname: this.key,
-    sdkversion: b.sdkversion,
-    logversion: b.logversion,
-  };
-  c.address && (b.address = c.address);
-  c.city && (b.city = c.city);
-  c.batch && (b.batch = c.batch);
-  c.sig && (b.sig = c.sig);
-  wx.request({
-    url: "https://restapi.amap.com/v3/geocode/geo",
-    data: b,
-    method: "GET",
-    header: { "content-type": "application/json" },
-    success: function (d) {
-      (d = d.data) && d.status && "1" === d.status
-        ? a.success(d)
-        : a.fail({ errCode: "0", errMsg: d });
-    },
-    fail: function (d) {
-      a.fail({ errCode: "0", errMsg: d.errMsg || "" });
-    },
-  });
-};
-AMapWX.prototype.getRegeo = function (a) {
-  function b(d) {
-    var e = c.requestConfig;
-    wx.request({
-      url: "https://restapi.amap.com/v3/geocode/regeo",
-      data: {
-        key: c.key,
-        location: d,
-        extensions: "all",
-        s: e.s,
-        platform: e.platform,
-        appname: c.key,
-        sdkversion: e.sdkversion,
-        logversion: e.logversion,
-      },
-      method: "GET",
-      header: { "content-type": "application/json" },
-      success: function (g) {
-        if (g.data.status && "1" == g.data.status) {
-          g = g.data.regeocode;
-          var h = g.addressComponent,
-            f = [],
-            k = g.roads[0].name + "\u9644\u8fd1",
-            m = d.split(",")[0],
-            n = d.split(",")[1];
-          if (g.pois && g.pois[0]) {
-            k = g.pois[0].name + "\u9644\u8fd1";
-            var l = g.pois[0].location;
-            l &&
-              ((m = parseFloat(l.split(",")[0])),
-              (n = parseFloat(l.split(",")[1])));
-          }
-          h.provice && f.push(h.provice);
-          h.city && f.push(h.city);
-          h.district && f.push(h.district);
-          h.streetNumber && h.streetNumber.street && h.streetNumber.number
-            ? (f.push(h.streetNumber.street), f.push(h.streetNumber.number))
-            : f.push(g.roads[0].name);
-          f = f.join("");
-          a.success([
-            {
-              iconPath: a.iconPath,
-              width: a.iconWidth,
-              height: a.iconHeight,
-              name: f,
-              desc: k,
-              longitude: m,
-              latitude: n,
-              id: 0,
-              regeocodeData: g,
-            },
-          ]);
-        } else a.fail({ errCode: g.data.infocode, errMsg: g.data.info });
-      },
-      fail: function (g) {
-        a.fail({ errCode: "0", errMsg: g.errMsg || "" });
-      },
-    });
-  }
-  var c = this;
-  a.location
-    ? b(a.location)
-    : c.getWxLocation(a, function (d) {
-        b(d);
-      });
-};
-AMapWX.prototype.getWeather = function (a) {
-  function b(g) {
-    var h = "base";
-    a.type && "forecast" == a.type && (h = "all");
-    wx.request({
-      url: "https://restapi.amap.com/v3/weather/weatherInfo",
-      data: {
-        key: d.key,
-        city: g,
-        extensions: h,
-        s: e.s,
-        platform: e.platform,
-        appname: d.key,
-        sdkversion: e.sdkversion,
-        logversion: e.logversion,
-      },
-      method: "GET",
-      header: { "content-type": "application/json" },
-      success: function (f) {
-        if (f.data.status && "1" == f.data.status)
-          if (f.data.lives) {
-            if ((f = f.data.lives) && 0 < f.length) {
-              f = f[0];
-              var k = {
-                city: { text: "\u57ce\u5e02", data: f.city },
-                weather: { text: "\u5929\u6c14", data: f.weather },
-                temperature: { text: "\u6e29\u5ea6", data: f.temperature },
-                winddirection: {
-                  text: "\u98ce\u5411",
-                  data: f.winddirection + "\u98ce",
-                },
-                windpower: {
-                  text: "\u98ce\u529b",
-                  data: f.windpower + "\u7ea7",
-                },
-                humidity: { text: "\u6e7f\u5ea6", data: f.humidity + "%" },
-              };
-              k.liveData = f;
-              a.success(k);
-            }
-          } else
-            f.data.forecasts &&
-              f.data.forecasts[0] &&
-              a.success({ forecast: f.data.forecasts[0] });
-        else a.fail({ errCode: f.data.infocode, errMsg: f.data.info });
-      },
-      fail: function (f) {
-        a.fail({ errCode: "0", errMsg: f.errMsg || "" });
-      },
-    });
-  }
-  function c(g) {
-    wx.request({
-      url: "https://restapi.amap.com/v3/geocode/regeo",
-      data: {
-        key: d.key,
-        location: g,
-        extensions: "all",
-        s: e.s,
-        platform: e.platform,
-        appname: d.key,
-        sdkversion: e.sdkversion,
-        logversion: e.logversion,
-      },
-      method: "GET",
-      header: { "content-type": "application/json" },
-      success: function (h) {
-        if (h.data.status && "1" == h.data.status) {
-          h = h.data.regeocode;
-          if (h.addressComponent) var f = h.addressComponent.adcode;
-          else h.aois && 0 < h.aois.length && (f = h.aois[0].adcode);
-          b(f);
-        } else a.fail({ errCode: h.data.infocode, errMsg: h.data.info });
-      },
-      fail: function (h) {
-        a.fail({ errCode: "0", errMsg: h.errMsg || "" });
-      },
-    });
-  }
-  var d = this,
-    e = d.requestConfig;
-  a.city
-    ? b(a.city)
-    : d.getWxLocation(a, function (g) {
-        c(g);
-      });
-};
-AMapWX.prototype.getPoiAround = function (a) {
-  function b(e) {
-    e = {
-      key: c.key,
-      location: e,
-      s: d.s,
-      platform: d.platform,
-      appname: c.key,
-      sdkversion: d.sdkversion,
-      logversion: d.logversion,
-    };
-    a.querytypes && (e.types = a.querytypes);
-    a.querykeywords && (e.keywords = a.querykeywords);
-    wx.request({
-      url: "https://restapi.amap.com/v3/place/around",
-      data: e,
-      method: "GET",
-      header: { "content-type": "application/json" },
-      success: function (g) {
-        if (g.data.status && "1" == g.data.status) {
-          if ((g = g.data) && g.pois) {
-            for (var h = [], f = 0; f < g.pois.length; f++) {
-              var k = 0 == f ? a.iconPathSelected : a.iconPath;
-              h.push({
-                latitude: parseFloat(g.pois[f].location.split(",")[1]),
-                longitude: parseFloat(g.pois[f].location.split(",")[0]),
-                iconPath: k,
-                width: 22,
-                height: 32,
-                id: f,
-                name: g.pois[f].name,
-                address: g.pois[f].address,
-              });
-            }
-            a.success({ markers: h, poisData: g.pois });
-          }
-        } else a.fail({ errCode: g.data.infocode, errMsg: g.data.info });
-      },
-      fail: function (g) {
-        a.fail({ errCode: "0", errMsg: g.errMsg || "" });
-      },
-    });
-  }
-  var c = this,
-    d = c.requestConfig;
-  a.location
-    ? b(a.location)
-    : c.getWxLocation(a, function (e) {
-        b(e);
-      });
-};
-AMapWX.prototype.getStaticmap = function (a) {
-  function b(e) {
-    c.push("location=" + e);
-    a.zoom && c.push("zoom=" + a.zoom);
-    a.size && c.push("size=" + a.size);
-    a.scale && c.push("scale=" + a.scale);
-    a.markers && c.push("markers=" + a.markers);
-    a.labels && c.push("labels=" + a.labels);
-    a.paths && c.push("paths=" + a.paths);
-    a.traffic && c.push("traffic=" + a.traffic);
-    e = "https://restapi.amap.com/v3/staticmap?" + c.join("&");
-    a.success({ url: e });
-  }
-  var c = [];
-  c.push("key=" + this.key);
-  var d = this.requestConfig;
-  c.push("s=" + d.s);
-  c.push("platform=" + d.platform);
-  c.push("appname=" + d.appname);
-  c.push("sdkversion=" + d.sdkversion);
-  c.push("logversion=" + d.logversion);
-  a.location
-    ? b(a.location)
-    : this.getWxLocation(a, function (e) {
-        b(e);
-      });
-};
-AMapWX.prototype.getInputtips = function (a) {
-  var b = Object.assign({}, this.requestConfig);
-  a.location && (b.location = a.location);
-  a.keywords && (b.keywords = a.keywords);
-  a.type && (b.type = a.type);
-  a.city && (b.city = a.city);
-  a.citylimit && (b.citylimit = a.citylimit);
-  wx.request({
-    url: "https://restapi.amap.com/v3/assistant/inputtips",
-    data: b,
-    method: "GET",
-    header: { "content-type": "application/json" },
-    success: function (c) {
-      c && c.data && c.data.tips && a.success({ tips: c.data.tips });
-    },
-    fail: function (c) {
-      a.fail({ errCode: "0", errMsg: c.errMsg || "" });
-    },
-  });
-};
-AMapWX.prototype.getDrivingRoute = function (a) {
-  var b = Object.assign({}, this.requestConfig);
-  a.origin && (b.origin = a.origin);
-  a.destination && (b.destination = a.destination);
-  a.strategy && (b.strategy = a.strategy);
-  a.waypoints && (b.waypoints = a.waypoints);
-  a.avoidpolygons && (b.avoidpolygons = a.avoidpolygons);
-  a.avoidroad && (b.avoidroad = a.avoidroad);
-  wx.request({
-    url: "https://restapi.amap.com/v3/direction/driving",
-    data: b,
-    method: "GET",
-    header: { "content-type": "application/json" },
-    success: function (c) {
-      c &&
-        c.data &&
-        c.data.route &&
-        a.success({
-          paths: c.data.route.paths,
-          taxi_cost: c.data.route.taxi_cost || "",
-        });
-    },
-    fail: function (c) {
-      a.fail({ errCode: "0", errMsg: c.errMsg || "" });
-    },
-  });
-};
-AMapWX.prototype.getWalkingRoute = function (a) {
-  var b = Object.assign({}, this.requestConfig);
-  a.origin && (b.origin = a.origin);
-  a.destination && (b.destination = a.destination);
-  wx.request({
-    url: "https://restapi.amap.com/v3/direction/walking",
-    data: b,
-    method: "GET",
-    header: { "content-type": "application/json" },
-    success: function (c) {
-      c && c.data && c.data.route && a.success({ paths: c.data.route.paths });
-    },
-    fail: function (c) {
-      a.fail({ errCode: "0", errMsg: c.errMsg || "" });
-    },
-  });
-};
-AMapWX.prototype.getTransitRoute = function (a) {
-  var b = Object.assign({}, this.requestConfig);
-  a.origin && (b.origin = a.origin);
-  a.destination && (b.destination = a.destination);
-  a.strategy && (b.strategy = a.strategy);
-  a.city && (b.city = a.city);
-  a.cityd && (b.cityd = a.cityd);
-  wx.request({
-    url: "https://restapi.amap.com/v3/direction/transit/integrated",
-    data: b,
-    method: "GET",
-    header: { "content-type": "application/json" },
-    success: function (c) {
-      c &&
-        c.data &&
-        c.data.route &&
-        ((c = c.data.route),
-        a.success({
-          distance: c.distance || "",
-          taxi_cost: c.taxi_cost || "",
-          transits: c.transits,
-        }));
-    },
-    fail: function (c) {
-      a.fail({ errCode: "0", errMsg: c.errMsg || "" });
-    },
-  });
-};
-AMapWX.prototype.getRidingRoute = function (a) {
-  var b = Object.assign({}, this.requestConfig);
-  a.origin && (b.origin = a.origin);
-  a.destination && (b.destination = a.destination);
-  wx.request({
-    url: "https://restapi.amap.com/v3/direction/riding",
-    data: b,
-    method: "GET",
-    header: { "content-type": "application/json" },
-    success: function (c) {
-      c && c.data && c.data.route && a.success({ paths: c.data.route.paths });
-    },
-    fail: function (c) {
-      a.fail({ errCode: "0", errMsg: c.errMsg || "" });
-    },
-  });
-};
-
-export default {
-  AMapWX
-}

+ 7 - 0
src/pages.json

@@ -121,6 +121,13 @@
       }
     },
     {
+      "path": "pages/inhert/unit/list",
+      "style": {
+        "navigationBarTitleText": "保护单位",
+        "enablePullDownRefresh": true
+      }
+    },
+    {
       "path": "pages/inhert/inheritor/list",
       "style": {
         "navigationBarTitleText": "传承人列表",

+ 5 - 2
src/pages/article/common/CommonListPage.vue

@@ -158,6 +158,7 @@ const props = defineProps({
     type: Array as PropType<{ 
       id: number, 
       text: string,
+      onlyJump?: boolean,
       jump?: () => void,
     }[]>,
     default: null,
@@ -274,8 +275,8 @@ function handleChangeDropDownValue(index: number, value: number) {
 }
 function handleTabClick(e: any) {
   nextTick(() => {
-    if (props.tabs?.[tabCurrentIndex.value]?.jump) {
-      props.tabs[tabCurrentIndex.value].jump?.();
+    if (e.jump) {
+      e.jump?.();
       return;
     }
     listLoader.loadData(undefined, true);
@@ -285,6 +286,8 @@ function doSearch() {
   listLoader.loadData(undefined, true);
 }
 function goDetails(item: any, id: number) {
+  if (props.detailsPage == 'disabled') 
+    return;
   if (props.detailsPage == 'custom') {
     emit('goCustomDetails', item, id)
     return;

+ 4 - 15
src/pages/discover.vue

@@ -169,11 +169,11 @@ const categories = [
       detailsPage: '/pages/article/details',
     }) 
   },
-  { 
+  /* { 
     name: '闽南美食', 
     icon: CategoryIcon4 , 
     onClick: () => navTo('/pages/introduction/food/list')
-  },
+  }, */
   { 
     name: '戏剧曲艺', 
     icon: 'https://mncdn.wenlvti.net/app_static/minnan/images/discover/CategoryIcon6.png', 
@@ -207,11 +207,11 @@ const categories = [
       detailsPage: '/pages/article/details',
     }) 
   },
-  { 
+  /* { 
     name: '闽南民俗', 
     icon: CategoryIcon1  , 
     onClick: () => navTo('/pages/introduction/custom/list') 
-  },
+  }, */
   { 
     name: '海洋文化', 
     icon: CategoryIcon5  , 
@@ -223,17 +223,6 @@ const categories = [
       detailsPage: '/pages/article/details',
     }) 
   },
-  /* { 
-    name: '宗教信俗', 
-    icon: CategoryIcon5  , 
-    onClick: () => navTo('/pages/article/common/list', {
-      title: '宗教信俗',
-      mainBodyColumnId: 248,
-      modelId: 4,
-      itemType: 'article-common',
-      detailsPage: '/pages/article/details',
-    }) 
-  }, */
 ];
 const communityData = useSimpleDataLoader(async () => {
   return [

+ 3 - 2
src/pages/home.vue

@@ -215,8 +215,9 @@ const subTabs = [
     onClick: () => navTo('/pages/introduction/custom/list')
   }, */
   { 
-    name: '', 
-    icon: '',
+    name: '保护单位', 
+    icon: MainBoxIcon4, 
+    onClick: () => navTo('/pages/inhert/unit/list')
   },
   { 
     name: '', 

+ 1 - 1
src/pages/inhert/intangible/list.vue

@@ -14,7 +14,7 @@
     :tabs="[
       { id: 0, text: '非遗项目' },
       { id: 1, text: '非遗作品' },
-      { id: 2, text: '非遗传承人', jump: () => navTo('/pages/inhert/inheritor/list') },
+      { id: 2, text: '非遗传承人', jump: () => navTo('/pages/inhert/inheritor/list'), onlyJump: true },
       { id: 3, text: '非遗传习所' },
     ]"text
     :tabsScrollable="true"

+ 42 - 0
src/pages/inhert/unit/list.vue

@@ -0,0 +1,42 @@
+<template>
+  <CommonListPage 
+    title="保护单位"
+    itemType="article-common"
+    detailsPage="disabled"
+    showTotal
+    :dropDownNames="dropdownNames"
+    :detailsParams="{
+      mainBodyColumnId: UnitContent.mainBodyColumnId,
+      modelId: UnitContent.modelId,
+    }"
+    :load="loadData" 
+  />
+</template>
+
+<script setup lang="ts">
+import { onMounted, ref } from 'vue';
+import { GetContentListParams } from '@/api/CommonContent';
+import UnitContent from '@/api/inheritor/UnitContent';
+import CommonListPage, { type DropDownNames } from '@/pages/article/common/CommonListPage.vue';
+
+const dropdownNames = ref<DropDownNames[]>([]);
+
+async function loadData(
+  page: number, 
+  pageSize: number,
+  searchText: string,
+  dropDownValues: number[]
+) {
+  const res = (await UnitContent.getContentList(new GetContentListParams()
+    .setKeywords(searchText)
+  , page, pageSize));
+  res.list.forEach((p) => {
+    p.desc = p.ichName as string;
+  })
+  return res;
+}
+
+onMounted(async () => {
+  
+})
+</script>

+ 4 - 4
src/pages/travel/scenic-spot/list.vue

@@ -8,13 +8,13 @@
     :detailsParams="detailsParams"
     :tabs="[
       {
-        id: 273,
-        text: '文化景点',
-      },
-      {
         id: 353,
         text: '文化景区',
       },
+      {
+        id: 273,
+        text: '文化景点',
+      },
     ]"
     :load="loadData" 
   />