var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp.call(b, prop))
      __defNormalProp(a, prop, b[prop]);
  if (__getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(b)) {
      if (__propIsEnum.call(b, prop))
        __defNormalProp(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
import { n as normalizeComponent, V as Popover, l as lodash, m as mixins, W as Pagination, U as Spin, d as api } from "./index.js";
import { I as Icon, b as bemMixin, o as ossUrl, W as WjxFeedbackLink, O as OptionFilters } from "./index8.js";
import { M as MaterialList } from "./index7.js";
import "vue";
import "./gd-abtest.js";
var render$g = function() {
  var _class;
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _vm.label ? _c("div", {
    class: _vm.bem()
  }, [_c("span", {
    class: (_class = {}, _class[_vm.bem("name")] = true, _class[_vm.bem("link")] = !!_vm.label.navigate, _class),
    on: {
      "click": _vm.handleLabelClick
    }
  }, [_vm._v(_vm._s(_vm.label.name))]), _vm.hasIcon ? _vm._t("default", function() {
    return [_c("Icon", {
      class: _vm.bem("icon"),
      attrs: {
        "type": _vm.iconType
      }
    })];
  }) : _vm._e()], 2) : _vm._e();
};
var staticRenderFns$g = [];
const __vue2_script$g = {
  name: "scenes-breadcrumb-label",
  components: {
    Icon
  },
  mixins: [bemMixin],
  props: {
    label: {
      type: Object,
      default: () => ({})
    },
    hasIcon: {
      type: Boolean,
      default: false
    }
  },
  computed: {
    iconType() {
      return this.label.iconType || "gdw-chevron-right";
    }
  },
  methods: {
    handleLabelClick() {
      const { navigate } = this.label;
      if (!navigate)
        return;
      navigate();
    }
  }
};
const __cssModules$g = {};
var __component__$g = /* @__PURE__ */ normalizeComponent(__vue2_script$g, render$g, staticRenderFns$g, false, __vue2_injectStyles$g, null, null, null);
function __vue2_injectStyles$g(context) {
  for (let o in __cssModules$g) {
    this[o] = __cssModules$g[o];
  }
}
var Label = /* @__PURE__ */ function() {
  return __component__$g.exports;
}();
var render$f = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    class: _vm.bem()
  }, _vm._l(_vm.crumbs, function(crumb, index2) {
    return _c("Label", {
      key: index2,
      attrs: {
        "label": crumb,
        "hasIcon": index2 !== _vm.crumbs.length - 1
      }
    }, [_vm._t("default")], 2);
  }), 1);
};
var staticRenderFns$f = [];
const __vue2_script$f = {
  name: "scenes-breadcrumb",
  components: {
    Label
  },
  mixins: [bemMixin],
  props: {
    crumbs: {
      type: Array,
      default: () => []
    }
  }
};
const __cssModules$f = {};
var __component__$f = /* @__PURE__ */ normalizeComponent(__vue2_script$f, render$f, staticRenderFns$f, false, __vue2_injectStyles$f, null, null, null);
function __vue2_injectStyles$f(context) {
  for (let o in __cssModules$f) {
    this[o] = __cssModules$f[o];
  }
}
var Breadcrumb = /* @__PURE__ */ function() {
  return __component__$f.exports;
}();
var render$e = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _vm.url ? _c("img", {
    class: _vm.bem(),
    style: _vm.imgStyle,
    attrs: {
      "src": _vm.ossUrl(_vm.url)
    }
  }) : _vm._e();
};
var staticRenderFns$e = [];
const DEFAULT_HEIGHT = 234;
const __vue2_script$e = {
  name: "scenes-banner-bg",
  mixins: [bemMixin],
  props: {
    url: {
      type: String,
      default: ""
    },
    height: {
      type: Number,
      default: 0
    }
  },
  computed: {
    imgStyle() {
      return this.height ? {
        height: this.height + "px"
      } : {
        height: DEFAULT_HEIGHT + "px"
      };
    }
  },
  methods: {
    ossUrl
  }
};
const __cssModules$e = {};
var __component__$e = /* @__PURE__ */ normalizeComponent(__vue2_script$e, render$e, staticRenderFns$e, false, __vue2_injectStyles$e, null, null, null);
function __vue2_injectStyles$e(context) {
  for (let o in __cssModules$e) {
    this[o] = __cssModules$e[o];
  }
}
var Banner$1 = /* @__PURE__ */ function() {
  return __component__$e.exports;
}();
var render$d = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("p", {
    class: _vm.bem(),
    on: {
      "click": function($event) {
        return _vm.$emit("toolClick", _vm.tool);
      }
    }
  }, [_c("img", {
    attrs: {
      "src": _vm.ossUrl(_vm.tool.icon),
      "alt": ""
    }
  }), _c("span", [_vm._v(_vm._s(_vm.tool.name))]), _vm._t("default")], 2);
};
var staticRenderFns$d = [];
const __vue2_script$d = {
  name: "scenes-banner-tools-tool",
  mixins: [bemMixin],
  props: {
    tool: {
      type: Object,
      default: () => ({})
    }
  },
  methods: {
    ossUrl
  }
};
const __cssModules$d = {};
var __component__$d = /* @__PURE__ */ normalizeComponent(__vue2_script$d, render$d, staticRenderFns$d, false, __vue2_injectStyles$d, null, null, null);
function __vue2_injectStyles$d(context) {
  for (let o in __cssModules$d) {
    this[o] = __cssModules$d[o];
  }
}
var Tool = /* @__PURE__ */ function() {
  return __component__$d.exports;
}();
var render$c = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    class: _vm.bem()
  }, [_c("p", [_vm._v("\u573A\u666F\u5DE5\u5177: ")]), _vm._l(_vm.reFormatedTools, function(tool, index2) {
    return [tool.children ? _c("Popover", {
      key: index2,
      attrs: {
        "overlayClassName": _vm.bem("popover"),
        "placement": "bottom",
        "showArrow": false
      }
    }, [_c("Tool", {
      class: _vm.bem("tool--more"),
      attrs: {
        "tool": tool
      }
    }, [_c("Icon", {
      class: _vm.bem("icon"),
      attrs: {
        "type": "gdw-chevron-down"
      }
    })], 1), _c("template", {
      slot: "content"
    }, _vm._l(tool.children, function(t, subIndex) {
      return _c("Tool", {
        key: subIndex,
        class: _vm.bem("popover-tool"),
        attrs: {
          "tool": t
        },
        on: {
          "toolClick": _vm.onToolClick
        }
      });
    }), 1)], 2) : _c("Tool", {
      key: index2,
      attrs: {
        "tool": tool
      },
      on: {
        "toolClick": _vm.onToolClick
      }
    })];
  })], 2);
};
var staticRenderFns$c = [];
const TOOL_GAP = 24 + 8 + 48;
const TOOL_CONTAINER_PADDING = 92 * 2 + 12;
const FONT_SIZE = 12;
const __vue2_script$c = {
  name: "scenes-banner-tools",
  components: {
    Popover,
    Tool,
    Icon
  },
  mixins: [bemMixin],
  props: {
    tools: {
      type: Array,
      default: () => []
    }
  },
  data() {
    return {
      reFormatedTools: []
    };
  },
  mounted() {
    this.computeTools();
    this.off = this.toolComputeListener();
  },
  beforeDestroy() {
    this.off && this.off();
  },
  methods: {
    ossUrl,
    toolComputeListener() {
      window.addEventListener("resize", this.computeTools);
      return () => {
        window.removeEventListener("resize", this.computeTools);
      };
    },
    onToolClick(tool = {}) {
      const { url } = tool;
      if (!url)
        return;
      window.open(url);
    },
    computeTools() {
      const width = this.$el.clientWidth;
      const maxWidth = width - TOOL_CONTAINER_PADDING;
      let w = 0;
      const r = [];
      const tools = this.tools;
      const toolsLen = tools.length;
      for (let i = 0; i < toolsLen; i++) {
        const t = tools[i];
        const fontWidth = t.name.length * FONT_SIZE;
        const toolWidth = TOOL_GAP + fontWidth;
        w += toolWidth;
        if (w <= maxWidth) {
          r.push(t);
        }
      }
      const restToolsLen = toolsLen - r.length;
      if (restToolsLen >= 2) {
        r.push({
          name: "\u66F4\u591A\u670D\u52A1",
          icon: ossUrl("https://st0.dancf.com/gaodingx/upload/1650941376457-RTlj.svg"),
          children: tools.slice(-restToolsLen)
        });
      }
      if (restToolsLen === 1) {
        r.push(tools[toolsLen - 1]);
      }
      this.reFormatedTools = r;
    }
  }
};
const __cssModules$c = {};
var __component__$c = /* @__PURE__ */ normalizeComponent(__vue2_script$c, render$c, staticRenderFns$c, false, __vue2_injectStyles$c, null, null, null);
function __vue2_injectStyles$c(context) {
  for (let o in __cssModules$c) {
    this[o] = __cssModules$c[o];
  }
}
var Tools = /* @__PURE__ */ function() {
  return __component__$c.exports;
}();
var render$b = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    class: _vm.bem()
  }, [_vm.config.main_title_image ? _c("img", {
    class: _vm.bem("title-image"),
    attrs: {
      "src": _vm.ossUrl(_vm.config.main_title_image),
      "alt": ""
    }
  }) : _c("p", {
    class: _vm.bem("title-text"),
    style: _vm.mainTitleStyle
  }, [_vm._v(_vm._s(_vm.config.main_title))]), _vm.config.subtitle ? _c("p", {
    class: _vm.bem("subtitle"),
    style: _vm.subTitleStyle
  }, [_vm._v(_vm._s(_vm.config.subtitle))]) : _vm._e()]);
};
var staticRenderFns$b = [];
const __vue2_script$b = {
  name: "scenes-banner-titles",
  mixins: [bemMixin],
  props: {
    config: {
      type: Object,
      default: () => ({})
    }
  },
  computed: {
    mainTitleStyle() {
      const { main_title_color } = this.config;
      return main_title_color ? { color: main_title_color } : {};
    },
    subTitleStyle() {
      const { subtitle_color } = this.config;
      return subtitle_color ? { color: subtitle_color } : {};
    }
  },
  methods: {
    ossUrl
  }
};
const __cssModules$b = {};
var __component__$b = /* @__PURE__ */ normalizeComponent(__vue2_script$b, render$b, staticRenderFns$b, false, __vue2_injectStyles$b, null, null, null);
function __vue2_injectStyles$b(context) {
  for (let o in __cssModules$b) {
    this[o] = __cssModules$b[o];
  }
}
var Titles = /* @__PURE__ */ function() {
  return __component__$b.exports;
}();
var render$a = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _vm.bannerBg ? _c("div", {
    class: _vm.bem()
  }, [_c("Banner", {
    class: _vm.bem("bg"),
    attrs: {
      "url": _vm.bannerBg,
      "height": _vm.bannerHeight
    }
  }), _c("div", {
    class: _vm.bem("content")
  }, [_c("Titles", {
    class: _vm.bem("content--top"),
    attrs: {
      "config": _vm.banner
    }
  }), _vm.tools.length >= 3 ? _c("Tools", {
    class: _vm.bem("content--bottom"),
    attrs: {
      "tools": _vm.tools
    }
  }) : _vm._e()], 1)], 1) : _c("div", {
    class: _vm.bem("exhibiton--name")
  }, [_vm._v(_vm._s(_vm.banner.exhibition_name))]);
};
var staticRenderFns$a = [];
const __vue2_script$a = {
  name: "scenes-banner",
  components: {
    Banner: Banner$1,
    Tools,
    Titles
  },
  mixins: [bemMixin],
  props: {
    banner: {
      type: Object,
      default: () => ({})
    },
    tools: {
      type: Array,
      default: () => []
    }
  },
  computed: {
    bannerBg() {
      return lodash.exports.get(this.banner, "background.image", "");
    },
    bannerHeight() {
      return lodash.exports.get(this.banner, "background.height", 0);
    }
  }
};
const __cssModules$a = {};
var __component__$a = /* @__PURE__ */ normalizeComponent(__vue2_script$a, render$a, staticRenderFns$a, false, __vue2_injectStyles$a, null, null, null);
function __vue2_injectStyles$a(context) {
  for (let o in __cssModules$a) {
    this[o] = __cssModules$a[o];
  }
}
var Banner = /* @__PURE__ */ function() {
  return __component__$a.exports;
}();
var render$9 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    class: _vm.bem()
  }, [_c("div", {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.showStartIcon,
      expression: "showStartIcon"
    }],
    class: _vm.bem("icon", "left"),
    on: {
      "click": function($event) {
        return _vm.doTranslate(-1);
      }
    }
  }, [_vm._t("startIcon", function() {
    return [_c("AIcon", {
      attrs: {
        "type": "gdw-chevron-left"
      }
    })];
  })], 2), _c("div", {
    ref: "view",
    class: _vm.bem("view"),
    on: {
      "scroll": _vm.setIcon
    }
  }, [_c("div", {
    ref: "content",
    class: _vm.bem("content")
  }, _vm._l(_vm.list, function(item, i) {
    return _c("div", {
      key: item.id,
      class: [_vm.colClassName],
      style: _vm.itemStyle(i)
    }, [_vm._t("default", null, {
      "item": item,
      "index": i
    })], 2);
  }), 0), _vm.list.length > 0 && _vm.showMore ? _c("div", {
    class: [_vm.bem("more"), _vm.colClassName],
    on: {
      "click": function($event) {
        return _vm.$emit("more");
      }
    }
  }, [_c("AIcon", {
    attrs: {
      "type": "gdw-chevron-right-circle-fill"
    }
  }), _c("span", [_vm._v("\u67E5\u770B\u66F4\u591A")])], 1) : _vm._e()]), _c("div", {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.showEndIcon,
      expression: "showEndIcon"
    }],
    class: _vm.bem("icon", "right"),
    on: {
      "click": function($event) {
        return _vm.doTranslate(1);
      }
    }
  }, [_vm._t("endIcon", function() {
    return [_c("AIcon", {
      attrs: {
        "type": "gdw-chevron-right"
      }
    })];
  })], 2)]);
};
var staticRenderFns$9 = [];
const __vue2_script$9 = {
  name: "swiper-list",
  components: { AIcon: Icon },
  mixins: [bemMixin],
  props: {
    list: {
      type: Array,
      default: () => []
    },
    itemWidth: {
      type: Number,
      default: 220
    },
    itemColums: {
      type: Number
    },
    margin: {
      type: Number,
      default: 16
    },
    showMore: {
      type: Boolean,
      default: false
    },
    title: {
      type: String,
      default: ""
    }
  },
  data() {
    return {
      isScroll: false,
      showStartIcon: false,
      showEndIcon: false,
      startNode: null,
      endNode: null
    };
  },
  computed: {
    _itemWidth() {
      if (this.itemColums > 0) {
        const marginColums = this.itemColums - 1;
        const margin = marginColums > 0 ? marginColums * this.margin : 0;
        return this.itemColums * 85 + margin;
      }
      return this.itemWidth;
    },
    width() {
      return this._itemWidth + this.margin;
    },
    colClassName() {
      return `col-${this.itemColums}`;
    }
  },
  mounted() {
    this.$watch("list", () => {
      this.startNode = this.$refs.content.firstElementChild;
      this.endNode = this.showMore ? this.$refs.view.lastElementChild : this.$refs.content.lastElementChild;
      this.setIcon();
    }, {
      immediate: true
    });
    window.addEventListener("resize", this.setIcon);
  },
  beforeDestroy() {
    window.removeEventListener("resize", this.setIcon);
  },
  methods: {
    doTranslate(direction, v = 60) {
      if (this.isScroll)
        return;
      this.$emit(direction === 1 ? "next" : "prev");
      const nodeContent = this.$refs.content;
      const nodeView = this.$refs.view;
      const contentWidth = nodeContent.offsetWidth;
      const viewWidth = nodeView.offsetWidth;
      const scrollLeft = nodeView.scrollLeft;
      const pageCount = ~~(viewWidth / this.width);
      let scrollLoaction = scrollLeft + direction * pageCount * this.width;
      if (direction === 1 && this.showMore) {
        const nextPageCount = ~~((contentWidth - 102 - (viewWidth + scrollLeft)) / this.width);
        if (nextPageCount === pageCount - 1) {
          scrollLoaction = scrollLeft + (pageCount - 1) * this.width;
        }
        if (nextPageCount < pageCount - 1) {
          scrollLoaction = contentWidth;
        }
      }
      scrollLoaction -= scrollLoaction % this.width;
      let scrollStep = nodeView.scrollLeft;
      const doScroll = () => {
        this.isScroll = true;
        scrollStep += direction * v;
        v = Math.max(v - 0.5, 35);
        if (Math.abs(scrollStep - scrollLoaction) > 35) {
          requestAnimationFrame(doScroll);
        } else {
          scrollStep = scrollLoaction;
          this.isScroll = false;
        }
        nodeView.scrollLeft = scrollStep;
      };
      doScroll();
    },
    setIcon() {
      if (this.startNode && this.endNode) {
        this.showStartIcon = !this.isExpose(this.startNode);
        this.showEndIcon = !this.isExpose(this.endNode);
      }
    },
    isExpose(el) {
      const rect = el.getBoundingClientRect();
      const offsetLeft = this.$el.getBoundingClientRect().left;
      return rect.left >= offsetLeft && rect.right <= this.$el.clientWidth + offsetLeft + 1;
    },
    itemStyle(i) {
      const margin = i === this.list.length - 1 ? 0 : this.margin + "px";
      return {
        marginRight: margin
      };
    }
  }
};
const __cssModules$9 = {};
var __component__$9 = /* @__PURE__ */ normalizeComponent(__vue2_script$9, render$9, staticRenderFns$9, false, __vue2_injectStyles$9, "36c258ee", null, null);
function __vue2_injectStyles$9(context) {
  for (let o in __cssModules$9) {
    this[o] = __cssModules$9[o];
  }
}
var Swiper = /* @__PURE__ */ function() {
  return __component__$9.exports;
}();
var render$8 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    class: _vm.bem("", {
      active: _vm.activeValues.includes(String(_vm.filter.id))
    }),
    style: _vm.styles,
    on: {
      "click": _vm.onFilterChange
    }
  }, [_vm._v(" " + _vm._s(_vm.filter.text) + " ")]);
};
var staticRenderFns$8 = [];
const __vue2_script$8 = {
  name: "scenes-filters-swiper-item",
  mixins: [bemMixin],
  props: {
    activeValues: {
      type: Array,
      default: () => []
    },
    filter: {
      type: Object,
      default: () => ({})
    }
  },
  computed: {
    styles() {
      const { background_image, color } = this.filter;
      return background_image ? { backgroundImage: `url("${background_image}")`, color } : {};
    }
  },
  methods: {
    onFilterChange() {
      this.$emit("filterChange", this.filter);
    }
  }
};
const __cssModules$8 = {};
var __component__$8 = /* @__PURE__ */ normalizeComponent(__vue2_script$8, render$8, staticRenderFns$8, false, __vue2_injectStyles$8, null, null, null);
function __vue2_injectStyles$8(context) {
  for (let o in __cssModules$8) {
    this[o] = __cssModules$8[o];
  }
}
var FilterItem = /* @__PURE__ */ function() {
  return __component__$8.exports;
}();
var render$7 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    class: _vm.bem()
  }, [_c("Swiper", {
    attrs: {
      "margin": 16,
      "itemWidth": 144,
      "list": _vm.filters
    },
    scopedSlots: _vm._u([{
      key: "default",
      fn: function(_ref) {
        var item = _ref.item;
        return [_c("FilterItem", {
          attrs: {
            "activeValues": _vm.activeValues,
            "filter": item
          },
          on: {
            "filterChange": function(filter) {
              return _vm.$emit("filterChange", filter);
            }
          }
        })];
      }
    }])
  })], 1);
};
var staticRenderFns$7 = [];
const __vue2_script$7 = {
  name: "scenes-filters-swiper",
  components: {
    Swiper,
    FilterItem
  },
  mixins: [bemMixin],
  props: {
    filters: {
      type: Array,
      default: () => []
    },
    activeValues: {
      type: Array,
      default: () => []
    }
  }
};
const __cssModules$7 = {};
var __component__$7 = /* @__PURE__ */ normalizeComponent(__vue2_script$7, render$7, staticRenderFns$7, false, __vue2_injectStyles$7, null, null, null);
function __vue2_injectStyles$7(context) {
  for (let o in __cssModules$7) {
    this[o] = __cssModules$7[o];
  }
}
var FiltersSwiper = /* @__PURE__ */ function() {
  return __component__$7.exports;
}();
var render$6 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _vm.option.to ? _c("router-link", {
    key: _vm.option.value,
    class: _vm.bem("item", {
      active: _vm.isTagSelected(_vm.option.value),
      extend: _vm.option.children && _vm.option.children.length > 1
    }),
    attrs: {
      "to": _vm.option.to,
      "event": _vm.triggerEvent
    },
    nativeOn: {
      "click": function($event) {
        return _vm.onTagClick.apply(null, arguments);
      }
    }
  }, [_vm._v(" " + _vm._s(_vm.option.label) + " ")]) : _c("span", {
    key: _vm.option.value,
    class: _vm.bem("item", {
      active: _vm.isTagSelected(_vm.option.value),
      disabled: _vm.isTagDisabled(_vm.option.value)
    }),
    on: {
      "click": _vm.onTagClick
    }
  }, [_vm._v(" " + _vm._s(_vm.option.label) + " ")]);
};
var staticRenderFns$6 = [];
const __vue2_script$6 = {
  name: "tags-v2-tag-cell",
  mixins: [bemMixin],
  props: {
    option: {
      type: Object,
      default: () => ({})
    },
    isTagSelected: {
      type: Function,
      default: () => false
    },
    isTagDisabled: {
      type: Function,
      default: () => false
    },
    triggerEvent: {
      type: String,
      default: ""
    }
  },
  methods: {
    onTagClick() {
      this.$emit("tagClick", this.option);
    }
  }
};
const __cssModules$6 = {};
var __component__$6 = /* @__PURE__ */ normalizeComponent(__vue2_script$6, render$6, staticRenderFns$6, false, __vue2_injectStyles$6, null, null, null);
function __vue2_injectStyles$6(context) {
  for (let o in __cssModules$6) {
    this[o] = __cssModules$6[o];
  }
}
var Tag = /* @__PURE__ */ function() {
  return __component__$6.exports;
}();
var render$5 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("span", {
    class: [_vm.bem("item", {
      light: _vm.more
    }), _vm.bem("expansion"), "no-user-select"],
    on: {
      "click": _vm.toggle
    }
  }, [_vm._v(" " + _vm._s(_vm.moreText) + " "), _c("AIcon", {
    attrs: {
      "type": _vm.moreIcon
    }
  })], 1);
};
var staticRenderFns$5 = [];
const __vue2_script$5 = {
  name: "tags-show-more",
  components: {
    AIcon: Icon
  },
  mixins: [bemMixin],
  props: {
    more: {
      type: Boolean,
      default: false
    }
  },
  computed: {
    moreText() {
      return this.more ? "\u6536\u8D77" : "\u66F4\u591A";
    },
    moreIcon() {
      return this.more ? "gdicon-up" : "gdicon-down";
    }
  },
  methods: {
    toggle() {
      this.$emit("change", !this.more);
    }
  }
};
const __cssModules$5 = {};
var __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, render$5, staticRenderFns$5, false, __vue2_injectStyles$5, null, null, null);
function __vue2_injectStyles$5(context) {
  for (let o in __cssModules$5) {
    this[o] = __cssModules$5[o];
  }
}
var ShowMore = /* @__PURE__ */ function() {
  return __component__$5.exports;
}();
var render$4 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    class: _vm.bem()
  }, _vm._l(_vm.showMore ? _vm.groupOptions : _vm.groupOptions.slice(0, _vm.minRow), function(options, i) {
    return _c("div", {
      key: i,
      class: _vm.bem("group")
    }, [_vm._l(options, function(option) {
      return _c("Tag", {
        key: option.value,
        attrs: {
          "option": option,
          "isTagSelected": _vm.isTagSelected,
          "isTagDisabled": _vm.isTagDisabled,
          "triggerEvent": _vm.triggerEvent
        },
        on: {
          "tagClick": _vm.onTagClick
        }
      });
    }), i === _vm.minRow - 1 && _vm.groupOptions.length > _vm.minRow ? _c("ShowMore", {
      attrs: {
        "more": _vm.showMore
      },
      on: {
        "change": _vm.toggleShowMore
      }
    }) : _vm._e()], 2);
  }), 0);
};
var staticRenderFns$4 = [];
const MORE_TAG_WIDTH = 126;
const DEFAULT_WIDTH = 930;
const __vue2_script$4 = {
  name: "tags-v2-list",
  components: {
    Tag,
    ShowMore
  },
  mixins: [bemMixin],
  props: {
    options: {
      type: Array,
      default: () => []
    },
    activeOptionValues: {
      type: Array,
      default: () => []
    },
    isHideDisabledValues: {
      type: Boolean,
      default: false
    },
    disabledValues: {
      type: Array,
      default: () => []
    },
    preventDefault: {
      type: Boolean,
      default: false
    },
    minRow: {
      type: Number,
      default: 1
    },
    needAllTag: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      showMore: false,
      width: DEFAULT_WIDTH
    };
  },
  computed: {
    filteredOptions() {
      const tags = this.isHideDisabledValues ? this.filterNoSelectedDisableTag(this.options) : this.options;
      return this.needAllTag ? [{
        id: "",
        value: "",
        label: "\u5168\u90E8"
      }].concat(tags) : tags;
    },
    groupOptions() {
      return this.calculateGroupOptions(this.filteredOptions, this.width - MORE_TAG_WIDTH);
    },
    triggerEvent() {
      return this.preventDefault ? "" : "click";
    },
    flattenOptions() {
      return lodash.exports.flatten(this.groupOptions);
    }
  },
  watch: {
    options(value, oldValue) {
      if (value !== oldValue) {
        this.changeShowMore();
      }
    },
    activeOptionValues(value, oldValue) {
      if (value !== oldValue) {
        this.changeShowMore();
      }
    }
  },
  mounted() {
    this.onResize();
    window.addEventListener("resize", this.onResize);
    this.changeShowMore();
  },
  beforeDestroy() {
    window.removeEventListener("resize", this.onResize);
  },
  methods: {
    calculateGroupOptions(data, maxWidth = 930) {
      let arr = [];
      let v = 0;
      let groupOptions = [];
      data.forEach((item) => {
        const label = lodash.exports.get(item, "label", "");
        const TAG_WIDTH = label.length * 14 + 24;
        v += TAG_WIDTH;
        if (v >= maxWidth) {
          groupOptions.push(arr);
          arr = [];
          v = TAG_WIDTH;
        }
        arr.push(item);
      });
      if (arr.length) {
        groupOptions.push(arr);
      }
      return groupOptions;
    },
    filterNoSelectedDisableTag(data = []) {
      return data.filter((item) => !this.isTagDisabled(item.value));
    },
    isTagSelected(value) {
      const isRecommendTag = !value;
      const hasSelectTag = !!this.activeOptionValues.length;
      return !hasSelectTag && isRecommendTag || !isRecommendTag && this.activeOptionValues.includes(String(value));
    },
    isTagDisabled(value) {
      return this.disabledValues.includes(value);
    },
    changeShowMore() {
      if (this.options.length && this.activeOptionValues.length) {
        const options = this.groupOptions[0];
        this.showMore = !!(options && !options.some((o) => this.isTagSelected(o.value)));
        return;
      }
      this.showMore = false;
    },
    onResize() {
      this.width = this.$el.clientWidth;
    },
    toggleShowMore(v) {
      this.showMore = !!v;
    },
    onTagClick(option) {
      this.$emit("tagClick", option, this.flattenOptions);
    }
  }
};
const __cssModules$4 = {};
var __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$4, staticRenderFns$4, false, __vue2_injectStyles$4, null, null, null);
function __vue2_injectStyles$4(context) {
  for (let o in __cssModules$4) {
    this[o] = __cssModules$4[o];
  }
}
var Tags$1 = /* @__PURE__ */ function() {
  return __component__$4.exports;
}();
var render$3 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    class: _vm.bem()
  }, [_vm.label ? _c("span", {
    class: _vm.bem("label")
  }, [_vm._v(_vm._s(_vm.label ? _vm.label + "\uFF1A" : ""))]) : _vm._e(), _c("Tags", {
    attrs: {
      "minRow": _vm.minRow,
      "options": _vm.options,
      "isHideDisabledValues": _vm.hideDisabledValues,
      "activeOptionValues": _vm.selectedTagInfo[0],
      "disabledValues": _vm.disabledValues,
      "preventDefault": _vm.preventDefault,
      "needAllTag": _vm.needAllTag
    },
    on: {
      "tagClick": _vm.onTagClick
    }
  }), _vm.childrenOptions.length ? _c("div", {
    class: _vm.bem("child")
  }, [_c("Tags", {
    attrs: {
      "minRow": _vm.minRow,
      "options": _vm.childrenOptions,
      "isHideDisabledValues": _vm.hideDisabledValues,
      "activeOptionValues": _vm.selectedTagInfo[0],
      "disabledValues": _vm.disabledValues,
      "preventDefault": _vm.preventDefault,
      "needAllTag": _vm.needAllTag
    },
    on: {
      "tagClick": _vm.onChildTagClick
    }
  })], 1) : _vm._e()], 1);
};
var staticRenderFns$3 = [];
const __vue2_script$3 = {
  name: "tags",
  components: {
    Tags: Tags$1
  },
  mixins: [bemMixin],
  model: {
    name: "value",
    event: "change"
  },
  props: {
    activeValues: {
      type: [String, Number, Array],
      required: true
    },
    label: {
      type: String,
      default: ""
    },
    options: {
      type: Array,
      required: true
    },
    disabledValues: {
      type: Array,
      default: () => []
    },
    hideDisabledValues: {
      type: Boolean,
      default: false
    },
    preventDefault: {
      type: Boolean,
      default: false
    },
    minRow: {
      type: Number,
      default: 1
    },
    needAllTag: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      childOptions: [],
      activeIndex: 0,
      width: 930
    };
  },
  computed: {
    activeTagIds() {
      return [].concat(this.activeValues).map(String).filter((v) => v);
    },
    selectedTagInfo() {
      const activeTagIds = this.activeTagIds;
      const parentTags = this.options.map((item) => lodash.exports.omit(item, "children"));
      const childTags = this.options.reduce((r, n) => {
        const childs = lodash.exports.get(n, "children", []).map((child) => __spreadProps(__spreadValues({}, child), { parent_id: n.value }));
        return r.concat(childs);
      }, []);
      const allTags = parentTags.concat(childTags);
      const matchTags = allTags.filter((tag) => activeTagIds.includes(String(tag.value)));
      const matchIds = matchTags.reduce((p, n) => p.concat([n.value, n.parent_id]), []).filter((v) => v).map(String);
      const matchIdsWithNoRepeat = lodash.exports.uniq(matchIds);
      const isChildTagSelected = childTags.some((tag) => activeTagIds.includes(String(tag.value)));
      return [matchIdsWithNoRepeat, isChildTagSelected];
    },
    childrenOptions() {
      const option = this.options.find((o) => this.isTagSelected(o.value));
      return lodash.exports.get(option, "children", []);
    },
    triggerEvent() {
      return this.preventDefault ? "" : "click";
    }
  },
  methods: {
    isTagSelected(value, isChildTag) {
      const [selectedTagIds, isChildTagSelected] = this.selectedTagInfo;
      const isSelectRecommendTag = !isChildTagSelected && isChildTag && !value;
      return !selectedTagIds.length && !value || isSelectRecommendTag || selectedTagIds.includes(value.toString());
    },
    isTagDisabled(value) {
      return this.disabledValues.includes(value);
    },
    onTagClick(option, options) {
      if (this.isTagDisabled(option.value))
        return;
      this.$emit("change", option, options);
    },
    onChildTagClick(option, options) {
      if (this.isTagDisabled(option.value))
        return;
      this.$emit("changeChildGroup", option, options);
    }
  }
};
const __cssModules$3 = {};
var __component__$3 = /* @__PURE__ */ normalizeComponent(__vue2_script$3, render$3, staticRenderFns$3, false, __vue2_injectStyles$3, null, null, null);
function __vue2_injectStyles$3(context) {
  for (let o in __cssModules$3) {
    this[o] = __cssModules$3[o];
  }
}
var Tags = /* @__PURE__ */ function() {
  return __component__$3.exports;
}();
const DEFAULT_AVATAR = "https://st-gdx.dancf.com/gaodingx/152/configs/system/20200713-145059-bf09.svg";
const COLORS = [
  {
    label: "\u5168\u90E8",
    image: "https://st-gdx.dancf.com/assets/20191101-210123-d54f.png",
    value: ""
  },
  {
    label: "\u7EA2\u8272",
    color: "#be2434",
    value: 1
  },
  {
    label: "\u6A59\u8272",
    color: "#e78558",
    value: 2
  },
  {
    label: "\u9EC4\u8272",
    color: "#e4c462",
    value: 3
  },
  {
    label: "\u7EFF\u8272",
    color: "#6cc56c",
    value: 4
  },
  {
    label: "\u6E56\u84DD",
    color: "#56e3e4",
    value: 5
  },
  {
    label: "\u84DD\u8272",
    color: "#6899d1",
    value: 6
  },
  {
    label: "\u7D2B\u8272",
    color: "#a157cb",
    value: 7
  },
  {
    label: "\u7C89\u8272",
    color: "#ec91bc",
    value: 8
  },
  {
    label: "\u68D5\u8272",
    color: "#a28872",
    value: 9
  },
  {
    label: "\u7070\u8272",
    color: "#a9acac",
    value: 10
  },
  {
    label: "\u9ED1\u8272",
    color: "#1b1b1b",
    value: 11
  },
  {
    label: "\u767D\u8272",
    color: "#fafafd",
    value: 12
  }
];
const SORT_OPTIONS = [
  {
    label: "\u7EFC\u5408\u6392\u5E8F",
    value: ""
  },
  {
    label: "\u6700\u65B0\u4E0A\u4F20",
    value: "publish_time"
  },
  {
    label: "\u6700\u591A\u4E0B\u8F7D",
    value: "hot"
  }
];
const STYLE_OPTIONS = [
  { label: "\u6587\u827A", value: "1" },
  { label: "\u5962\u534E", value: "2" },
  { label: "\u65F6\u5C1A", value: "3" },
  { label: "\u590D\u53E4", value: "4" },
  { label: "\u7B80\u7EA6", value: "5" },
  { label: "\u53EF\u7231", value: "6" },
  { label: "\u9177\u70AB", value: "7" },
  { label: "\u559C\u5E86", value: "8" },
  { label: "\u6E05\u65B0", value: "9" },
  { label: "\u5546\u52A1", value: "10" },
  { label: "\u4E2D\u56FD\u98CE", value: "11" },
  { label: "\u521B\u610F", value: "12" },
  { label: "\u5361\u901A", value: "13" },
  { label: "\u6241\u5E73", value: "14" },
  { label: "\u624B\u7ED8", value: "15" },
  { label: "\u653F\u52A1", value: "16" },
  { label: "\u79D1\u6280", value: "17" },
  { label: "\u5B9E\u666F", value: "18" }
];
const FORMAT_OPTIONS = [
  {
    label: "\u5168\u90E8",
    value: ""
  },
  {
    label: "\u65B9\u5F62",
    value: "1",
    iconType: "gdw-format-square"
  },
  {
    label: "\u7AD6\u7248",
    value: "2,3,4,5",
    iconType: "gdw-a-format-vertical"
  },
  {
    label: "\u6A2A\u7248",
    value: "6,7,8,9",
    iconType: "gdw-a-format-transverse"
  }
];
var constants = {
  DEFAULT_AVATAR,
  COLORS,
  SORT_OPTIONS,
  STYLE_OPTIONS,
  FORMAT_OPTIONS
};
var render$2 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    class: _vm.bem()
  }, [_c("div", {
    class: _vm.bem("main")
  }, [_c("img", {
    class: _vm.bem("empty-icon"),
    attrs: {
      "src": "https://st0.dancf.com/static/02/202111050234-a2c6.png",
      "alt": ""
    }
  }), _c("div", [_vm._v("\u62B1\u6B49\u6CA1\u6709\u76F8\u5173\u7ED3\u679C")])]), _c("div", {
    class: _vm.bem("feedback")
  }, [_vm._v(" \u60A8\u53EF\u4EE5\u70B9\u51FB\u6B64\u5904 "), _c("WjxFeedbackLink", {
    class: _vm.bem("link")
  }, [_vm._v("\u53CD\u9988\u7ED9\u6211\u4EEC")]), _vm._v(" \u6211\u4EEC\u5C06\u4F1A\u7B2C\u4E00\u65F6\u95F4\u8DDF\u8FDB\u60A8\u7684\u9700\u6C42\uFF01 ")], 1)]);
};
var staticRenderFns$2 = [];
var index_vue_vue_type_style_index_0_lang$1 = /* @__PURE__ */ (() => '.content-empty{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center}.content-empty__main{margin-top:16px;margin-bottom:16px;font-size:16px;font-weight:600;line-height:20px;color:#000}.content-empty__feedback{font-size:14px;line-height:22px;color:#7f8792}.content-empty__link,.content-empty__link:hover{color:#2254f4}.content-empty .content-empty__empty-icon{width:160px;height:160px}body{min-width:1200px;overflow:overlay;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0)}body::-webkit-scrollbar{width:7px}body::-webkit-scrollbar-thumb{background-color:#000000b3;border:1px solid #fff;border-radius:10rem}body::-webkit-scrollbar-track-piece:start,body::-webkit-scrollbar-track-piece:end{background:transparent}ul{padding:0;list-style:none}.tofh{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[id^=HUABAN],[class^=HUABAN],[id^=ZCOOL],[class^=ZCOOL],[id^=lvye],[class^=lvye],[id^=xmt-],[class^=xmt-]{display:none!important}body>iframe[src="chrome-extension://gpdjojdkbbmdfjfahjcgigfpmkopogic/html/grid.html"],body>iframe[src="chrome-extension://gpdjojdkbbmdfjfahjcgigfpmkopogic/html/search.html"]{visibility:hidden!important;transform:translate(-10000px)!important}.eui-popup-base{z-index:2100!important}.eui-tabs__header{border-bottom-width:1px!important}.gda-btn:not(.gda-btn-sm){min-width:88px}.gda-btn>.gdaicon{font-size:20px;vertical-align:-.1em}.gda-btn svg{vertical-align:bottom}.gda-btn.disabled,.gda-btn[disabled]{cursor:default}.gda-dropdown-menu{box-shadow:0 2px 8px #00000029}.gda-dropdown-menu-item{padding:10px 12px;line-height:20px}.gda-dropdown-menu-item>.gdaicon:first-child{font-size:20px;vertical-align:bottom}.gda-dropdown-menu-item:hover,.gda-dropdown-menu-submenu-title:hover{background:#f6f7f9}.gda-dropdown-menu-item-disabled:hover,.gda-dropdown-menu-submenu-title-disabled:hover{background-color:#fff}.gda-modal-header{padding:18px 24px;border-bottom:none}.gda-modal-title{line-height:24px}.gda-modal-close-x{width:60px;height:60px;line-height:60px}.gda-modal-footer{border-top:none}.gda-form-item-label{font-weight:700}.gda-form-horizontal .gda-form-item{margin-bottom:10px}.gda-form-horizontal .gda-form-item-label{font-weight:700;line-height:48px}.gda-pagination-item,.gda-pagination-item:focus,.gda-pagination-item:hover,.gda-pagination-prev .gda-pagination-item-link,.gda-pagination-next .gda-pagination-item-link{color:#444950;background-color:#f0f3f4;border:none}.gda-pagination-item-active,.gda-pagination-item-active:focus,.gda-pagination-item-active:hover{background:#2254f4;border:none}.gda-pagination-item-active a,.gda-pagination-item-active:focus a,.gda-pagination-item-active:hover a{color:#fff}.gda-pagination-prev.gda-pagination-disabled .gda-pagination-item-link,.gda-pagination-next.gda-pagination-disabled .gda-pagination-item-link{opacity:.3}.gda-pagination-prev:focus .gda-pagination-item-link,.gda-pagination-next:focus .gda-pagination-item-link,.gda-pagination-prev:hover .gda-pagination-item-link,.gda-pagination-next:hover .gda-pagination-item-link{color:#444950}.gda-tree li,.gda-tree li:first-child,.gda-tree li:last-child{padding:0}.gda-tree-child-tree>li:first-child{padding-top:0}:root .gda-tree li span.gda-tree-switcher.gda-tree-switcher_close .gda-tree-switcher-icon,:root .gda-tree li span.gda-tree-switcher.gda-tree-switcher_open .gda-tree-switcher-icon{font-size:16px;vertical-align:-3px}.gda-tree.gda-tree-directory>li span.gda-tree-node-content-wrapper:hover:before,.gda-tree.gda-tree-directory .gda-tree-child-tree>li span.gda-tree-node-content-wrapper:hover:before{border-radius:4px}.gda-tree .gda-tree-treenode-checkbox-checked .gda-tree-checkbox-checked:after{display:none}\n')();
const __vue2_script$2 = {
  name: "content-empty",
  components: {
    WjxFeedbackLink
  },
  mixins: [mixins.bem]
};
const __cssModules$2 = {};
var __component__$2 = /* @__PURE__ */ normalizeComponent(__vue2_script$2, render$2, staticRenderFns$2, false, __vue2_injectStyles$2, null, null, null);
function __vue2_injectStyles$2(context) {
  for (let o in __cssModules$2) {
    this[o] = __cssModules$2[o];
  }
}
var Empty = /* @__PURE__ */ function() {
  return __component__$2.exports;
}();
var render$1 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    class: _vm.bem()
  }, [_vm.loading || _vm.data.length ? _c("Spin", {
    attrs: {
      "spinning": _vm.loading
    }
  }, [_c("MaterialList", {
    class: _vm.bem("list"),
    attrs: {
      "trackerParams": _vm.trackerParams,
      "columns": 5,
      "materials": _vm.data
    }
  }), _vm.data.length ? _c("Pagination", {
    class: _vm.bem("pagination"),
    attrs: {
      "pageSize": _vm.pageInfo.size,
      "total": _vm.pageInfo.total,
      "current": _vm.pageNum
    },
    on: {
      "change": _vm.onPageChange
    }
  }) : _vm._e()], 1) : _c("Empty")], 1);
};
var staticRenderFns$1 = [];
var list_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => '.scenes-template-list{min-height:334px;margin-top:16px}.scenes-template-list__pagination{margin-top:24px!important;text-align:center}body{min-width:1200px;overflow:overlay;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0)}body::-webkit-scrollbar{width:7px}body::-webkit-scrollbar-thumb{background-color:#000000b3;border:1px solid #fff;border-radius:10rem}body::-webkit-scrollbar-track-piece:start,body::-webkit-scrollbar-track-piece:end{background:transparent}ul{padding:0;list-style:none}.tofh{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[id^=HUABAN],[class^=HUABAN],[id^=ZCOOL],[class^=ZCOOL],[id^=lvye],[class^=lvye],[id^=xmt-],[class^=xmt-]{display:none!important}body>iframe[src="chrome-extension://gpdjojdkbbmdfjfahjcgigfpmkopogic/html/grid.html"],body>iframe[src="chrome-extension://gpdjojdkbbmdfjfahjcgigfpmkopogic/html/search.html"]{visibility:hidden!important;transform:translate(-10000px)!important}.eui-popup-base{z-index:2100!important}.eui-tabs__header{border-bottom-width:1px!important}.gda-btn:not(.gda-btn-sm){min-width:88px}.gda-btn>.gdaicon{font-size:20px;vertical-align:-.1em}.gda-btn svg{vertical-align:bottom}.gda-btn.disabled,.gda-btn[disabled]{cursor:default}.gda-dropdown-menu{box-shadow:0 2px 8px #00000029}.gda-dropdown-menu-item{padding:10px 12px;line-height:20px}.gda-dropdown-menu-item>.gdaicon:first-child{font-size:20px;vertical-align:bottom}.gda-dropdown-menu-item:hover,.gda-dropdown-menu-submenu-title:hover{background:#f6f7f9}.gda-dropdown-menu-item-disabled:hover,.gda-dropdown-menu-submenu-title-disabled:hover{background-color:#fff}.gda-modal-header{padding:18px 24px;border-bottom:none}.gda-modal-title{line-height:24px}.gda-modal-close-x{width:60px;height:60px;line-height:60px}.gda-modal-footer{border-top:none}.gda-form-item-label{font-weight:700}.gda-form-horizontal .gda-form-item{margin-bottom:10px}.gda-form-horizontal .gda-form-item-label{font-weight:700;line-height:48px}.gda-pagination-item,.gda-pagination-item:focus,.gda-pagination-item:hover,.gda-pagination-prev .gda-pagination-item-link,.gda-pagination-next .gda-pagination-item-link{color:#444950;background-color:#f0f3f4;border:none}.gda-pagination-item-active,.gda-pagination-item-active:focus,.gda-pagination-item-active:hover{background:#2254f4;border:none}.gda-pagination-item-active a,.gda-pagination-item-active:focus a,.gda-pagination-item-active:hover a{color:#fff}.gda-pagination-prev.gda-pagination-disabled .gda-pagination-item-link,.gda-pagination-next.gda-pagination-disabled .gda-pagination-item-link{opacity:.3}.gda-pagination-prev:focus .gda-pagination-item-link,.gda-pagination-next:focus .gda-pagination-item-link,.gda-pagination-prev:hover .gda-pagination-item-link,.gda-pagination-next:hover .gda-pagination-item-link{color:#444950}.gda-tree li,.gda-tree li:first-child,.gda-tree li:last-child{padding:0}.gda-tree-child-tree>li:first-child{padding-top:0}:root .gda-tree li span.gda-tree-switcher.gda-tree-switcher_close .gda-tree-switcher-icon,:root .gda-tree li span.gda-tree-switcher.gda-tree-switcher_open .gda-tree-switcher-icon{font-size:16px;vertical-align:-3px}.gda-tree.gda-tree-directory>li span.gda-tree-node-content-wrapper:hover:before,.gda-tree.gda-tree-directory .gda-tree-child-tree>li span.gda-tree-node-content-wrapper:hover:before{border-radius:4px}.gda-tree .gda-tree-treenode-checkbox-checked .gda-tree-checkbox-checked:after{display:none}\n')();
const DEFAULT_PAGE_INFO = {
  num: 1,
  size: 120,
  total: 0
};
const __vue2_script$1 = {
  name: "scenes-template-list",
  components: {
    Pagination,
    MaterialList,
    Empty,
    Spin
  },
  mixins: [mixins.bem],
  props: {
    selectedFilterIds: {
      type: Array,
      default: () => []
    },
    activeTabFilter: {
      type: Object,
      default: () => ({})
    },
    trackerMetadata: {
      type: Object,
      default: () => ({})
    },
    trackerParams: {
      type: Object,
      default: () => ({})
    },
    adsConfig: {
      type: Array,
      default: () => []
    },
    selectedMenu: {
      type: Object,
      default: () => ({})
    }
  },
  data() {
    return {
      loading: false,
      data: [],
      err: null,
      pageInfo: DEFAULT_PAGE_INFO
    };
  },
  computed: {
    pageNum() {
      const num = Number(lodash.exports.get(this.$route, "query.num", this.pageInfo.num));
      return Math.max(num, 1);
    }
  },
  watch: {
    selectedFilterIds: {
      handler(filters, oldFilters) {
        filters = filters || [];
        oldFilters = oldFilters || [];
        const isSameFilters = filters.join("") === oldFilters.join("");
        if (isSameFilters)
          return;
        this.pageInfo = __spreadProps(__spreadValues({}, this.pageInfo), {
          num: 1
        });
        this.search(filters, true);
      },
      immediate: true
    },
    selectedMenu(newMenu) {
      if (!Object.keys(newMenu).length)
        return;
      this.search(this.selectedFilterIds);
    }
  },
  methods: {
    async search(filterIds = [], reset = false) {
      this.resetData();
      this.loading = true;
      const { size } = this.pageInfo;
      const { parent_id, ancestors } = this.activeTabFilter;
      let pids = ancestors || parent_id || "";
      pids = pids ? pids + "," : "";
      const fid = filterIds.join(",");
      const ids = `${pids}${fid}`;
      const menu = reset ? {} : this.selectedMenu;
      try {
        const res = await api.cdmApi.getTemplatesByTags(__spreadValues({
          filter_id: ids,
          page_num: this.pageNum,
          page_size: size
        }, menu));
        this.data = lodash.exports.get(res, "data", []);
        this.pageInfo = lodash.exports.get(res, "pagination", DEFAULT_PAGE_INFO);
      } catch (err) {
        this.err = err;
      } finally {
        this.loading = false;
      }
    },
    onPageChange(page) {
      this.pageInfo.num = page;
      this.$emit("pageChange", page);
      this.search(this.selectedFilterIds);
      window.scrollTo(0, 0);
    },
    resetData() {
      this.data = [];
      this.err = null;
    }
  }
};
const __cssModules$1 = {};
var __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, render$1, staticRenderFns$1, false, __vue2_injectStyles$1, null, null, null);
function __vue2_injectStyles$1(context) {
  for (let o in __cssModules$1) {
    this[o] = __cssModules$1[o];
  }
}
var List = /* @__PURE__ */ function() {
  return __component__$1.exports;
}();
var render = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("Spin", {
    class: [_vm.bem(), "no-user-select"],
    attrs: {
      "spinning": _vm.loading
    }
  }, [_vm.crumbs.length > 1 ? _c("Breadcrumb", {
    attrs: {
      "crumbs": _vm.crumbs
    }
  }) : _vm._e(), _c("Banner", {
    attrs: {
      "banner": _vm.banner,
      "tools": _vm.sceneTools
    }
  }), _vm.filterTools.length > 1 ? _c("FiltersSwiper", {
    attrs: {
      "activeValues": _vm.activeFilterIds,
      "filters": _vm.filterTools
    },
    on: {
      "filterChange": _vm.onFilterToolChange
    }
  }) : _vm._e(), _vm._l(_vm.filterTags.slice(0, 3), function(filter, index2) {
    return _c("Tags", {
      key: index2,
      class: _vm.bem("tags"),
      attrs: {
        "label": _vm.filterTags.length ? filter.name : "",
        "options": _vm.getOptions(filter),
        "activeValues": _vm.activeFilterIds,
        "needAllTag": ""
      },
      on: {
        "change": _vm.onTagChange
      }
    });
  }), _vm.filterTools.length ? _c("OptionFilters", {
    attrs: {
      "menu": _vm.menu,
      "selectedMenu": _vm.selectedMenu
    },
    on: {
      "menuChange": _vm.onMenuChange
    }
  }) : _vm._e(), !_vm.loading ? _c("List", {
    attrs: {
      "selectedMenu": _vm.selectedMenu,
      "selectedFilterIds": _vm.activeFilterIds
    }
  }) : _vm._e()], 2);
};
var staticRenderFns = [];
var index_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => 'div,p{padding:0;margin:0}.scenes{padding:32px 48px}.scenes__connector{color:#7f8792}.scenes__tags{margin-bottom:10px}body{min-width:1200px;overflow:overlay;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0)}body::-webkit-scrollbar{width:7px}body::-webkit-scrollbar-thumb{background-color:#000000b3;border:1px solid #fff;border-radius:10rem}body::-webkit-scrollbar-track-piece:start,body::-webkit-scrollbar-track-piece:end{background:transparent}ul{padding:0;list-style:none}.tofh{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[id^=HUABAN],[class^=HUABAN],[id^=ZCOOL],[class^=ZCOOL],[id^=lvye],[class^=lvye],[id^=xmt-],[class^=xmt-]{display:none!important}body>iframe[src="chrome-extension://gpdjojdkbbmdfjfahjcgigfpmkopogic/html/grid.html"],body>iframe[src="chrome-extension://gpdjojdkbbmdfjfahjcgigfpmkopogic/html/search.html"]{visibility:hidden!important;transform:translate(-10000px)!important}.eui-popup-base{z-index:2100!important}.eui-tabs__header{border-bottom-width:1px!important}.gda-btn:not(.gda-btn-sm){min-width:88px}.gda-btn>.gdaicon{font-size:20px;vertical-align:-.1em}.gda-btn svg{vertical-align:bottom}.gda-btn.disabled,.gda-btn[disabled]{cursor:default}.gda-dropdown-menu{box-shadow:0 2px 8px #00000029}.gda-dropdown-menu-item{padding:10px 12px;line-height:20px}.gda-dropdown-menu-item>.gdaicon:first-child{font-size:20px;vertical-align:bottom}.gda-dropdown-menu-item:hover,.gda-dropdown-menu-submenu-title:hover{background:#f6f7f9}.gda-dropdown-menu-item-disabled:hover,.gda-dropdown-menu-submenu-title-disabled:hover{background-color:#fff}.gda-modal-header{padding:18px 24px;border-bottom:none}.gda-modal-title{line-height:24px}.gda-modal-close-x{width:60px;height:60px;line-height:60px}.gda-modal-footer{border-top:none}.gda-form-item-label{font-weight:700}.gda-form-horizontal .gda-form-item{margin-bottom:10px}.gda-form-horizontal .gda-form-item-label{font-weight:700;line-height:48px}.gda-pagination-item,.gda-pagination-item:focus,.gda-pagination-item:hover,.gda-pagination-prev .gda-pagination-item-link,.gda-pagination-next .gda-pagination-item-link{color:#444950;background-color:#f0f3f4;border:none}.gda-pagination-item-active,.gda-pagination-item-active:focus,.gda-pagination-item-active:hover{background:#2254f4;border:none}.gda-pagination-item-active a,.gda-pagination-item-active:focus a,.gda-pagination-item-active:hover a{color:#fff}.gda-pagination-prev.gda-pagination-disabled .gda-pagination-item-link,.gda-pagination-next.gda-pagination-disabled .gda-pagination-item-link{opacity:.3}.gda-pagination-prev:focus .gda-pagination-item-link,.gda-pagination-next:focus .gda-pagination-item-link,.gda-pagination-prev:hover .gda-pagination-item-link,.gda-pagination-next:hover .gda-pagination-item-link{color:#444950}.gda-tree li,.gda-tree li:first-child,.gda-tree li:last-child{padding:0}.gda-tree-child-tree>li:first-child{padding-top:0}:root .gda-tree li span.gda-tree-switcher.gda-tree-switcher_close .gda-tree-switcher-icon,:root .gda-tree li span.gda-tree-switcher.gda-tree-switcher_open .gda-tree-switcher-icon{font-size:16px;vertical-align:-3px}.gda-tree.gda-tree-directory>li span.gda-tree-node-content-wrapper:hover:before,.gda-tree.gda-tree-directory .gda-tree-child-tree>li span.gda-tree-node-content-wrapper:hover:before{border-radius:4px}.gda-tree .gda-tree-treenode-checkbox-checked .gda-tree-checkbox-checked:after{display:none}\n')();
const __vue2_script = {
  name: "scenes",
  components: {
    Breadcrumb,
    Banner,
    FiltersSwiper,
    Tags,
    List,
    Spin,
    OptionFilters
  },
  mixins: [mixins.bem],
  data() {
    return {
      sceneData: {},
      crumbs: [
        {
          name: "\u9996\u9875",
          navigate: () => {
            this.$router.push("/");
          }
        }
      ],
      banner: {},
      sceneTools: [],
      filterTools: [],
      activeFilterIds: [],
      filterTags: [],
      loading: false,
      menu: {
        colors: [],
        styles: [],
        sorts: [],
        formats: []
      },
      selectedMenu: {
        colors: "",
        styles: "",
        ratios: "",
        sort: ""
      }
    };
  },
  computed: {
    activeFilterTool() {
      return {};
    },
    scene() {
      return lodash.exports.get(this.$route, "params.scene", "");
    },
    routeFilterIds() {
      return lodash.exports.get(this.$route, "query.ids", "");
    },
    activeFilterToolId() {
      return this.getActiveFilterToolId(this.filterTools);
    }
  },
  async created() {
    const {
      menu,
      crumbs,
      banner = {},
      sceneTools = [],
      filterTools = [],
      filterTags = [],
      activeIds
    } = await this.init();
    this.menu = menu;
    this.crumbs = crumbs;
    this.banner = banner;
    this.sceneTools = sceneTools;
    this.filterTools = filterTools;
    this.filterTags = filterTags;
    this.activeFilterIds = activeIds;
    this.loading = false;
  },
  methods: {
    async init() {
      this.loading = true;
      if (!this.scene) {
        this.$router.push({ name: "404" });
      }
      const [sceneData, menu] = await Promise.all([
        this.getSceneData(),
        this.fetchWebMenus()
      ]);
      const pits = lodash.exports.get(sceneData, "pits", []);
      const banner = this.formatMaterial(lodash.exports.get(pits.find((p) => p.mark === this.getMark("banner")), "materials[0]", {}));
      const sceneTools = lodash.exports.get(pits.find((p) => p.mark === this.getMark("scene_tools")), "materials", []);
      const filterTools = lodash.exports.get(pits.find((p) => p.mark === this.getMark("filter_tools")), "materials", []);
      const formatedFilterTools = this.formatMaterial(filterTools).map((f) => __spreadProps(__spreadValues({}, f), {
        id: lodash.exports.get(f.filter, "value", "")
      })).filter((f) => Boolean(f.id));
      const tags = await this.getFilterTags(this.getActiveFilterToolId(formatedFilterTools));
      const activeIds = this.updateActiveFilterIds(this.getMatchedFilterByRouteId(formatedFilterTools) || formatedFilterTools[0], formatedFilterTools, this.routeFilterIds.split(","));
      const crumbs = this.crumbs.concat([{ name: sceneData.exhibition_name }]);
      return {
        menu,
        crumbs,
        sceneData,
        banner: Object.assign(banner, {
          exhibition_name: sceneData.exhibition_name
        }),
        sceneTools: this.formatMaterial(sceneTools),
        filterTools: formatedFilterTools,
        filterTags: tags,
        activeIds
      };
    },
    async fetchWebMenus() {
      const { COLORS: COLORS2, SORT_OPTIONS: SORT_OPTIONS2, STYLE_OPTIONS: STYLE_OPTIONS2, FORMAT_OPTIONS: FORMAT_OPTIONS2 } = constants;
      return {
        formats: FORMAT_OPTIONS2,
        styles: [{ label: "\u5168\u90E8", value: "" }].concat(STYLE_OPTIONS2),
        colors: COLORS2,
        sorts: SORT_OPTIONS2
      };
    },
    formatMaterial(data) {
      if (!data)
        return {};
      if (lodash.exports.isArray(data)) {
        return data.map((d) => {
          return lodash.exports.isString(d.material) ? JSON.parse(d.material) : d.material || {};
        });
      }
      return lodash.exports.isString(data.material) ? JSON.parse(data.material) : data.material || {};
    },
    getActiveFilterToolId(filters = []) {
      let id = "";
      if (filters.length) {
        const matchedFilterTool = this.getMatchedFilterByRouteId(filters);
        id = matchedFilterTool ? lodash.exports.get(matchedFilterTool, "filter.value") : lodash.exports.get(filters, "[0].filter.value");
      }
      return String(id || "");
    },
    getMatchedFilterByRouteId(filters) {
      return filters.find((t) => this.routeFilterIds.includes(String(t.id)));
    },
    async getSceneData() {
      const res = await api.sceneApi.getSceneData({ scene: this.scene });
      return res.data || {};
    },
    async onFilterToolChange(filter) {
      this.activeFilterIds = this.updateActiveFilterIds(filter, this.filterTools, []);
      this.filterTags = await this.getFilterTags(filter.id || "");
    },
    async getFilterTags(ids) {
      ids = ids || this.activeFilterToolId;
      if (!ids)
        return [];
      const { data } = await api.cdmApi.getAllFilters({ parent_id: ids });
      return data;
    },
    getOptions(filter) {
      return (filter.children || []).map((f) => ({
        label: f.name,
        value: f.id,
        id: f.id
      }));
    },
    onTagChange(filter, filters) {
      this.activeFilterIds = this.updateActiveFilterIds(filter, filters, this.activeFilterIds);
    },
    updateActiveFilterIds(filter = {}, filters = [], curFilterIds = []) {
      if (!filters || !filters.length)
        return;
      this.selectedMenu = {};
      const { id: nextId } = filter;
      const activeIds = curFilterIds.map((id) => {
        if (filters.some((f) => String(f.id) === id)) {
          return String(nextId);
        }
        return String(id);
      }).filter((v) => !!v);
      if (nextId && !activeIds.includes(String(nextId)))
        activeIds.push(String(nextId));
      this.navigateAfterIdChange(activeIds);
      return activeIds;
    },
    navigateAfterIdChange(nextFilterIds) {
      const nextIds = nextFilterIds.join(",");
      if (nextIds !== this.routeFilterIds) {
        this.$router.push({
          name: this.$route.name,
          params: {
            scene: this.scene
          },
          query: {
            ids: nextIds
          }
        });
      }
    },
    getMark(mark) {
      return `${this.scene}--${mark}`;
    },
    onMenuChange(res) {
      this.selectedMenu = __spreadProps(__spreadValues({}, this.selectedMenu), {
        [res.type]: res.value
      });
    }
  }
};
const __cssModules = {};
var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);
function __vue2_injectStyles(context) {
  for (let o in __cssModules) {
    this[o] = __cssModules[o];
  }
}
var index = /* @__PURE__ */ function() {
  return __component__.exports;
}();
export { index as default };
