fix selelct table
This commit is contained in:
		
							parent
							
								
									92fa833be7
								
							
						
					
					
						commit
						49d7a25529
					
				@ -33,7 +33,8 @@ const _sfc_main = defineComponent({
 | 
			
		||||
    allowClear: { type: Boolean, default: false },
 | 
			
		||||
    showSearch: { type: Boolean, default: false },
 | 
			
		||||
    contentClass: null,
 | 
			
		||||
    contentStyle: null
 | 
			
		||||
    contentStyle: null,
 | 
			
		||||
    position: { default: "top" }
 | 
			
		||||
  },
 | 
			
		||||
  emits: ["update:modelValue", "change", "search"],
 | 
			
		||||
  setup(__props, { emit: emits }) {
 | 
			
		||||
@ -180,6 +181,7 @@ const _sfc_main = defineComponent({
 | 
			
		||||
              disabledInput: !__props.showSearch,
 | 
			
		||||
              size: __props.size,
 | 
			
		||||
              class: normalizeClass({ "layui-unselect": true }),
 | 
			
		||||
              position: __props.position,
 | 
			
		||||
              onRemove: handleRemove,
 | 
			
		||||
              onClear: handleClear,
 | 
			
		||||
              onInputValueChange: handleSearch,
 | 
			
		||||
@ -199,7 +201,7 @@ const _sfc_main = defineComponent({
 | 
			
		||||
                }, null, 8, ["class"])
 | 
			
		||||
              ]),
 | 
			
		||||
              _: 1
 | 
			
		||||
            }, 8, ["modelValue", "input-value", "allow-clear", "placeholder", "collapseTagsTooltip", "minCollapsedNum", "disabled", "disabledInput", "size"])) : (openBlock(), createBlock(_sfc_main$4, {
 | 
			
		||||
            }, 8, ["modelValue", "input-value", "allow-clear", "placeholder", "collapseTagsTooltip", "minCollapsedNum", "disabled", "disabledInput", "size", "position"])) : (openBlock(), createBlock(_sfc_main$4, {
 | 
			
		||||
              key: 1,
 | 
			
		||||
              size: __props.size,
 | 
			
		||||
              disabled: __props.disabled,
 | 
			
		||||
 | 
			
		||||
@ -32,8 +32,7 @@ function makeDots(props) {
 | 
			
		||||
  return dots;
 | 
			
		||||
}
 | 
			
		||||
const _hoisted_1$4 = ["onMousedown"];
 | 
			
		||||
const _hoisted_2$4 = /* @__PURE__ */ createElementVNode("div", { class: "layui-slider-line-v" }, null, -1);
 | 
			
		||||
const _hoisted_3$4 = ["onClick"];
 | 
			
		||||
const _hoisted_2$4 = ["onClick"];
 | 
			
		||||
const __default__$4 = {
 | 
			
		||||
  name: "StandardVue"
 | 
			
		||||
};
 | 
			
		||||
@ -45,7 +44,8 @@ const _sfc_main$4 = defineComponent({
 | 
			
		||||
    step: { default: 0 },
 | 
			
		||||
    min: { default: 0 },
 | 
			
		||||
    max: { default: 100 },
 | 
			
		||||
    showDots: { type: Boolean, default: false }
 | 
			
		||||
    showDots: { type: Boolean, default: false },
 | 
			
		||||
    backgroundColor: { default: "#ccc" }
 | 
			
		||||
  },
 | 
			
		||||
  emits: ["link-val-hook"],
 | 
			
		||||
  setup(__props, { emit }) {
 | 
			
		||||
@ -129,14 +129,19 @@ const _sfc_main$4 = defineComponent({
 | 
			
		||||
          style: normalizeStyle({ width: __props.val + "%" }),
 | 
			
		||||
          class: normalizeClass(["layui-slider-rate-v", [__props.disabled ? "layui-slider-disabled disable-line" : ""]])
 | 
			
		||||
        }, null, 6),
 | 
			
		||||
        _hoisted_2$4,
 | 
			
		||||
        createElementVNode("div", {
 | 
			
		||||
          class: "layui-slider-line-v",
 | 
			
		||||
          style: normalizeStyle({
 | 
			
		||||
            backgroundColor: props.backgroundColor
 | 
			
		||||
          })
 | 
			
		||||
        }, null, 4),
 | 
			
		||||
        (openBlock(true), createElementBlock(Fragment, null, renderList(unref(dots), (item, index2) => {
 | 
			
		||||
          return withDirectives((openBlock(), createElementBlock("div", {
 | 
			
		||||
            onClick: ($event) => focusDot(item),
 | 
			
		||||
            class: "layui-slider-dots",
 | 
			
		||||
            key: index2,
 | 
			
		||||
            style: normalizeStyle({ left: item + "%" })
 | 
			
		||||
          }, null, 12, _hoisted_3$4)), [
 | 
			
		||||
          }, null, 12, _hoisted_2$4)), [
 | 
			
		||||
            [vShow, __props.showDots]
 | 
			
		||||
          ]);
 | 
			
		||||
        }), 128))
 | 
			
		||||
@ -628,7 +633,8 @@ const _sfc_main = defineComponent({
 | 
			
		||||
    disabled: { type: Boolean, default: false },
 | 
			
		||||
    range: { type: Boolean },
 | 
			
		||||
    rangeValue: null,
 | 
			
		||||
    showDots: { type: Boolean, default: false }
 | 
			
		||||
    showDots: { type: Boolean, default: false },
 | 
			
		||||
    backgroundColor: { default: "#ccc" }
 | 
			
		||||
  },
 | 
			
		||||
  emits: ["update:modelValue"],
 | 
			
		||||
  setup(__props, { emit }) {
 | 
			
		||||
@ -680,8 +686,9 @@ const _sfc_main = defineComponent({
 | 
			
		||||
              step: __props.step,
 | 
			
		||||
              min: __props.min,
 | 
			
		||||
              max: __props.max,
 | 
			
		||||
              showDots: __props.showDots
 | 
			
		||||
            }, null, 8, ["val", "disabled", "step", "min", "max", "showDots"])
 | 
			
		||||
              showDots: __props.showDots,
 | 
			
		||||
              backgroundColor: props.backgroundColor
 | 
			
		||||
            }, null, 8, ["val", "disabled", "step", "min", "max", "showDots", "backgroundColor"])
 | 
			
		||||
          ]))
 | 
			
		||||
        ]))
 | 
			
		||||
      ]);
 | 
			
		||||
 | 
			
		||||
@ -951,7 +951,8 @@ const _sfc_main = defineComponent({
 | 
			
		||||
    } },
 | 
			
		||||
    getRadioProps: { type: Function, default: () => {
 | 
			
		||||
    } },
 | 
			
		||||
    download: { default: "" }
 | 
			
		||||
    download: { default: "" },
 | 
			
		||||
    serverpage: { type: Boolean, default: false }
 | 
			
		||||
  },
 | 
			
		||||
  emits: [
 | 
			
		||||
    "change",
 | 
			
		||||
@ -1128,8 +1129,12 @@ const _sfc_main = defineComponent({
 | 
			
		||||
    });
 | 
			
		||||
    let pagecurrent;
 | 
			
		||||
    const change = function(page) {
 | 
			
		||||
      pagecurrent = page.current;
 | 
			
		||||
      datalist.value = tableDataSource.value.slice(page.limit * (page.current - 1), page.limit * page.current);
 | 
			
		||||
      if (props.serverpage) {
 | 
			
		||||
        emit("change", page);
 | 
			
		||||
      } else {
 | 
			
		||||
        pagecurrent = page.current;
 | 
			
		||||
        datalist.value = tableDataSource.value.slice(page.limit * (page.current - 1), page.limit * page.current);
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
    const rowClick = function(data, evt) {
 | 
			
		||||
      emit("row", data, evt);
 | 
			
		||||
 | 
			
		||||
@ -34,7 +34,8 @@ const _sfc_main = defineComponent({
 | 
			
		||||
    collapseTagsTooltip: { type: Boolean },
 | 
			
		||||
    size: { default: "md" },
 | 
			
		||||
    tagProps: null,
 | 
			
		||||
    disabledInput: { type: Boolean }
 | 
			
		||||
    disabledInput: { type: Boolean },
 | 
			
		||||
    position: { default: "top" }
 | 
			
		||||
  },
 | 
			
		||||
  emits: [
 | 
			
		||||
    "update:modelValue",
 | 
			
		||||
@ -247,7 +248,8 @@ const _sfc_main = defineComponent({
 | 
			
		||||
            isDark: false,
 | 
			
		||||
            trigger: "hover",
 | 
			
		||||
            popperStyle: "padding:6px",
 | 
			
		||||
            disabled: !__props.collapseTagsTooltip
 | 
			
		||||
            disabled: !__props.collapseTagsTooltip,
 | 
			
		||||
            position: __props.position
 | 
			
		||||
          }, {
 | 
			
		||||
            content: withCtx(() => [
 | 
			
		||||
              createElementVNode("div", _hoisted_3, [
 | 
			
		||||
@ -283,7 +285,7 @@ const _sfc_main = defineComponent({
 | 
			
		||||
              }, 16, ["size"])
 | 
			
		||||
            ]),
 | 
			
		||||
            _: 1
 | 
			
		||||
          }, 8, ["disabled"])) : createCommentVNode("", true),
 | 
			
		||||
          }, 8, ["disabled", "position"])) : createCommentVNode("", true),
 | 
			
		||||
          createElementVNode("input", {
 | 
			
		||||
            ref_key: "inputRefEl",
 | 
			
		||||
            ref: inputRefEl,
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { w as withInstall } from "../badge/index2.js";
 | 
			
		||||
import { defineComponent, useSlots, ref, toRef, shallowRef, computed, watch, onMounted, openBlock, createBlock, Teleport, withDirectives, createVNode, Transition, withCtx, createElementVNode, normalizeClass, normalizeStyle, renderSlot, createTextVNode, toDisplayString, vShow, createCommentVNode, nextTick, getCurrentInstance, createElementBlock, Fragment, normalizeProps, mergeProps, unref } from "vue";
 | 
			
		||||
import { defineComponent, useSlots, ref, toRef, shallowRef, computed, watch, onMounted, openBlock, createBlock, Teleport, withDirectives, createVNode, Transition, withCtx, createElementVNode, normalizeClass, normalizeStyle, renderSlot, createTextVNode, toDisplayString, vShow, createCommentVNode, nextTick, getCurrentInstance, createElementBlock, Fragment, mergeProps, unref } from "vue";
 | 
			
		||||
import { o as onClickOutside, a as useResizeObserver, c as useEventListener, b as useThrottleFn } from "../_chunks/@vueuse/index.js";
 | 
			
		||||
var index$1 = /* @__PURE__ */ (() => ".lay-tooltip-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}\n")();
 | 
			
		||||
var index = /* @__PURE__ */ (() => '.layui-popper{position:fixed;padding:10px;border-radius:3px;word-wrap:break-word;min-width:12px;min-height:12px;font-size:14px;box-sizing:border-box;box-shadow:0 2px 12px #00000026;background-color:#fff;color:#3a3a3a;border:1px solid #cecece;max-width:300px;z-index:99999}.layui-popper[position=top]{margin-bottom:6px}.layui-popper[position=top] .layui-popper-arrow{bottom:-6px;border-bottom-width:0;border-top-color:#cecece}.layui-popper[position=top] .layui-popper-arrow:after{bottom:1px;border-bottom-width:0;margin-left:-6px;border-top-color:#fff}.layui-popper[position=bottom]{margin-top:6px}.layui-popper[position=bottom] .layui-popper-arrow{top:-6px;border-top-width:0;border-bottom-color:#cecece}.layui-popper[position=bottom] .layui-popper-arrow:after{top:1px;border-top-width:0;margin-left:-6px;border-bottom-color:#fff}.layui-popper[position=right]{margin-left:6px}.layui-popper[position=right] .layui-popper-arrow{left:-6px;border-left-width:0;border-right-color:#cecece}.layui-popper[position=right] .layui-popper-arrow:after{left:1px;border-left-width:0;margin-top:-6px;border-right-color:#fff}.layui-popper[position=left]{margin-right:6px}.layui-popper[position=left] .layui-popper-arrow{right:-6px;border-right-width:0;border-left-color:#cecece}.layui-popper[position=left] .layui-popper-arrow:after{right:1px;border-right-width:0;margin-top:-6px;border-left-color:#fff}.layui-popper[position=top] .layui-popper-arrow,.layui-popper[position=bottom] .layui-popper-arrow{left:-moz-calc(44%);left:-webkit-calc(44%);left:calc(50% - 6px)}.layui-popper[position=left] .layui-popper-arrow,.layui-popper[position=right] .layui-popper-arrow{top:-moz-calc(44%);top:-webkit-calc(44%);top:calc(50% - 6px)}.layui-popper:after{content:" ";position:absolute;display:block}.layui-popper[position=top]:after{bottom:-7px;left:0;width:100%;height:7px}.layui-popper[position=bottom]:after{top:-7px;left:0;width:100%;height:7px}.layui-popper[position=left]:after{right:-7px;bottom:0;height:100%;width:7px}.layui-popper[position=right]:after{left:-7px;bottom:0;height:100%;width:7px}.layui-popper .layui-popper-arrow,.layui-popper .layui-popper-arrow:after{position:absolute;display:block;width:0;height:0;border-width:6px;border-style:solid;border-color:transparent}.layui-popper .layui-popper-arrow:after{content:" "}.layui-popper.layui-dark{background-color:#353535;color:#fff;border:1px solid #353535}.layui-popper.layui-dark[position=top]{margin-bottom:6px}.layui-popper.layui-dark[position=top] .layui-popper-arrow{bottom:-6px;border-bottom-width:0;border-top-color:#353535}.layui-popper.layui-dark[position=top] .layui-popper-arrow:after{bottom:1px;border-bottom-width:0;margin-left:-6px;border-top-color:#353535}.layui-popper.layui-dark[position=bottom]{margin-top:6px}.layui-popper.layui-dark[position=bottom] .layui-popper-arrow{top:-6px;border-top-width:0;border-bottom-color:#353535}.layui-popper.layui-dark[position=bottom] .layui-popper-arrow:after{top:1px;border-top-width:0;margin-left:-6px;border-bottom-color:#353535}.layui-popper.layui-dark[position=right]{margin-left:6px}.layui-popper.layui-dark[position=right] .layui-popper-arrow{left:-6px;border-left-width:0;border-right-color:#353535}.layui-popper.layui-dark[position=right] .layui-popper-arrow:after{left:1px;border-left-width:0;margin-top:-6px;border-right-color:#353535}.layui-popper.layui-dark[position=left]{margin-right:6px}.layui-popper.layui-dark[position=left] .layui-popper-arrow{right:-6px;border-right-width:0;border-left-color:#353535}.layui-popper.layui-dark[position=left] .layui-popper-arrow:after{right:1px;border-right-width:0;margin-top:-6px;border-left-color:#353535}\n')();
 | 
			
		||||
@ -360,12 +360,15 @@ const _sfc_main = defineComponent({
 | 
			
		||||
            renderSlot(_ctx.$slots, "default")
 | 
			
		||||
          ])
 | 
			
		||||
        ], 512)) : renderSlot(_ctx.$slots, "default", { key: 1 }),
 | 
			
		||||
        isMounted.value ? (openBlock(), createBlock(_sfc_main$1, normalizeProps(mergeProps({ key: 2 }, unref(innerProps))), {
 | 
			
		||||
        isMounted.value ? (openBlock(), createBlock(_sfc_main$1, mergeProps({
 | 
			
		||||
          key: 2,
 | 
			
		||||
          positio: __props.position
 | 
			
		||||
        }, unref(innerProps)), {
 | 
			
		||||
          default: withCtx(() => [
 | 
			
		||||
            renderSlot(_ctx.$slots, "content")
 | 
			
		||||
          ]),
 | 
			
		||||
          _: 3
 | 
			
		||||
        }, 16)) : createCommentVNode("", true)
 | 
			
		||||
        }, 16, ["positio"])) : createCommentVNode("", true)
 | 
			
		||||
      ], 64);
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -44,6 +44,7 @@ export interface SelectProps {
 | 
			
		||||
  showSearch?: boolean;
 | 
			
		||||
  contentClass?: string | Array<string | object> | object;
 | 
			
		||||
  contentStyle?: StyleValue;
 | 
			
		||||
  position?:string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SelectEmits {
 | 
			
		||||
@ -61,6 +62,7 @@ const props = withDefaults(defineProps<SelectProps>(), {
 | 
			
		||||
  disabled: false,
 | 
			
		||||
  multiple: false,
 | 
			
		||||
  size: "md",
 | 
			
		||||
  position:"top"
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const slots = useSlots();
 | 
			
		||||
@ -215,6 +217,7 @@ provide("searchMethod", props.searchMethod);
 | 
			
		||||
        :disabledInput="!showSearch"
 | 
			
		||||
        :size="size"
 | 
			
		||||
        :class="{ 'layui-unselect': true }"
 | 
			
		||||
        :position="position"
 | 
			
		||||
        @remove="handleRemove"
 | 
			
		||||
        @clear="handleClear"
 | 
			
		||||
        @input-value-change="handleSearch"
 | 
			
		||||
 | 
			
		||||
@ -17,6 +17,7 @@ export interface StandardProps {
 | 
			
		||||
  min?: number;
 | 
			
		||||
  max?: number;
 | 
			
		||||
  showDots?: boolean;
 | 
			
		||||
  backgroundColor:string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const props = withDefaults(defineProps<StandardProps>(), {
 | 
			
		||||
@ -26,6 +27,7 @@ const props = withDefaults(defineProps<StandardProps>(), {
 | 
			
		||||
  min: 0,
 | 
			
		||||
  max: 100,
 | 
			
		||||
  showDots: false,
 | 
			
		||||
  backgroundColor:"#ccc"
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const moveAction = throttle(standardMove);
 | 
			
		||||
@ -117,7 +119,9 @@ const focusDot = (val: number) => {
 | 
			
		||||
      class="layui-slider-rate-v"
 | 
			
		||||
      :class="[disabled ? 'layui-slider-disabled disable-line' : '']"
 | 
			
		||||
    ></div>
 | 
			
		||||
    <div class="layui-slider-line-v"></div>
 | 
			
		||||
    <div class="layui-slider-line-v" :style="{
 | 
			
		||||
      backgroundColor:props.backgroundColor
 | 
			
		||||
    }"></div>
 | 
			
		||||
    <div
 | 
			
		||||
      v-show="showDots"
 | 
			
		||||
      @click="focusDot(item)"
 | 
			
		||||
 | 
			
		||||
@ -22,6 +22,7 @@ export interface SliderProps {
 | 
			
		||||
  range?: boolean;
 | 
			
		||||
  rangeValue?: number[];
 | 
			
		||||
  showDots?: boolean;
 | 
			
		||||
  backgroundColor:string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const emit = defineEmits(["update:modelValue"]);
 | 
			
		||||
@ -34,6 +35,7 @@ const props = withDefaults(defineProps<SliderProps>(), {
 | 
			
		||||
  min: 0,
 | 
			
		||||
  max: 100,
 | 
			
		||||
  showDots: false,
 | 
			
		||||
  backgroundColor:"#ccc"
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
let rangeValues: Ref<number[]> | any = toRef(props, "rangeValue");
 | 
			
		||||
@ -94,6 +96,7 @@ function valHook(val: any) {
 | 
			
		||||
          :min="min"
 | 
			
		||||
          :max="max"
 | 
			
		||||
          :showDots="showDots"
 | 
			
		||||
          :backgroundColor="props.backgroundColor"
 | 
			
		||||
        ></StandardVue>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
@ -53,6 +53,7 @@ export interface TableProps {
 | 
			
		||||
  getCheckboxProps?: Function;
 | 
			
		||||
  getRadioProps?: Function;
 | 
			
		||||
  download?: string;
 | 
			
		||||
  serverpage?: boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const props = withDefaults(defineProps<TableProps>(), {
 | 
			
		||||
@ -72,12 +73,13 @@ const props = withDefaults(defineProps<TableProps>(), {
 | 
			
		||||
  rowStyle: "",
 | 
			
		||||
  cellStyle: "",
 | 
			
		||||
  defaultExpandAll: false,
 | 
			
		||||
  spanMethod: () => {},
 | 
			
		||||
  spanMethod: () => { },
 | 
			
		||||
  expandKeys: () => [],
 | 
			
		||||
  loading: false,
 | 
			
		||||
  getCheckboxProps: () => {},
 | 
			
		||||
  getRadioProps: () => {},
 | 
			
		||||
  getCheckboxProps: () => { },
 | 
			
		||||
  getRadioProps: () => { },
 | 
			
		||||
  download: "",
 | 
			
		||||
  serverpage: false
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const emit = defineEmits([
 | 
			
		||||
@ -356,12 +358,16 @@ watch(
 | 
			
		||||
);
 | 
			
		||||
let pagecurrent: number;
 | 
			
		||||
const change = function (page: any) {
 | 
			
		||||
  // emit("change", page);
 | 
			
		||||
  pagecurrent = page.current;
 | 
			
		||||
  datalist.value = tableDataSource.value.slice(
 | 
			
		||||
    page.limit * (page.current - 1),
 | 
			
		||||
    page.limit * page.current
 | 
			
		||||
  );
 | 
			
		||||
  if (props.serverpage) {
 | 
			
		||||
    emit("change", page);
 | 
			
		||||
  } else {
 | 
			
		||||
    pagecurrent = page.current;
 | 
			
		||||
    datalist.value = tableDataSource.value.slice(
 | 
			
		||||
      page.limit * (page.current - 1),
 | 
			
		||||
      page.limit * page.current
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const rowClick = function (data: any, evt: MouseEvent) {
 | 
			
		||||
@ -830,50 +836,27 @@ window.addEventListener("click", heddin);
 | 
			
		||||
        </div>
 | 
			
		||||
        <div v-if="defaultToolbar" class="layui-table-tool-self">
 | 
			
		||||
          <!-- 筛选 -->
 | 
			
		||||
          <lay-dropdown
 | 
			
		||||
            v-if="showToolbar('filter')"
 | 
			
		||||
            updateAtScroll
 | 
			
		||||
            :style="toolbarStyle('filter')"
 | 
			
		||||
          >
 | 
			
		||||
          <lay-dropdown v-if="showToolbar('filter')" updateAtScroll :style="toolbarStyle('filter')">
 | 
			
		||||
            <div class="layui-inline" title="筛选" lay-event>
 | 
			
		||||
              <i class="layui-icon layui-icon-slider"></i>
 | 
			
		||||
            </div>
 | 
			
		||||
            <template #content>
 | 
			
		||||
              <div class="layui-table-tool-checkbox">
 | 
			
		||||
                <lay-checkbox
 | 
			
		||||
                  v-for="column in tableHeadColumns[0]"
 | 
			
		||||
                  v-model="tableColumnKeys"
 | 
			
		||||
                  skin="primary"
 | 
			
		||||
                  :disabled="column.children"
 | 
			
		||||
                  :key="column.key"
 | 
			
		||||
                  :value="column.key"
 | 
			
		||||
                  >{{ column.title }}</lay-checkbox
 | 
			
		||||
                >
 | 
			
		||||
                <lay-checkbox v-for="column in tableHeadColumns[0]" v-model="tableColumnKeys" skin="primary"
 | 
			
		||||
                  :disabled="column.children" :key="column.key" :value="column.key">{{ column.title }}</lay-checkbox>
 | 
			
		||||
              </div>
 | 
			
		||||
            </template>
 | 
			
		||||
          </lay-dropdown>
 | 
			
		||||
 | 
			
		||||
          <!-- 导出 -->
 | 
			
		||||
          <div
 | 
			
		||||
            v-if="showToolbar('export')"
 | 
			
		||||
            class="layui-inline"
 | 
			
		||||
            title="导出"
 | 
			
		||||
            lay-event
 | 
			
		||||
            :style="toolbarStyle('export')"
 | 
			
		||||
            @click="exportData()"
 | 
			
		||||
          >
 | 
			
		||||
          <div v-if="showToolbar('export')" class="layui-inline" title="导出" lay-event :style="toolbarStyle('export')"
 | 
			
		||||
            @click="exportData()">
 | 
			
		||||
            <i class="layui-icon layui-icon-export"></i>
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <!-- 打印 -->
 | 
			
		||||
          <div
 | 
			
		||||
            v-if="showToolbar('print')"
 | 
			
		||||
            :style="toolbarStyle('print')"
 | 
			
		||||
            class="layui-inline"
 | 
			
		||||
            title="打印"
 | 
			
		||||
            lay-event
 | 
			
		||||
            @click="print()"
 | 
			
		||||
          >
 | 
			
		||||
          <div v-if="showToolbar('print')" :style="toolbarStyle('print')" class="layui-inline" title="打印" lay-event
 | 
			
		||||
            @click="print()">
 | 
			
		||||
            <i class="layui-icon layui-icon-print"></i>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@ -885,47 +868,26 @@ window.addEventListener("click", heddin);
 | 
			
		||||
 | 
			
		||||
      <div class="layui-table-box">
 | 
			
		||||
        <!-- 表头 -->
 | 
			
		||||
        <div
 | 
			
		||||
          class="layui-table-header"
 | 
			
		||||
          :style="[{ 'padding-right': `${scrollWidthCell}px` }]"
 | 
			
		||||
        >
 | 
			
		||||
        <div class="layui-table-header" :style="[{ 'padding-right': `${scrollWidthCell}px` }]">
 | 
			
		||||
          <div class="layui-table-header-wrapper" ref="tableHeader">
 | 
			
		||||
            <table
 | 
			
		||||
              class="layui-table"
 | 
			
		||||
              :lay-size="size"
 | 
			
		||||
              :lay-skin="skin"
 | 
			
		||||
              ref="tableHeaderTable"
 | 
			
		||||
            >
 | 
			
		||||
            <table class="layui-table" :lay-size="size" :lay-skin="skin" ref="tableHeaderTable">
 | 
			
		||||
              <colgroup>
 | 
			
		||||
                <template v-for="column in tableBodyColumns" :key="column">
 | 
			
		||||
                  <template v-if="tableColumnKeys.includes(column.key)">
 | 
			
		||||
                    <col
 | 
			
		||||
                      :width="column.width"
 | 
			
		||||
                      :style="{
 | 
			
		||||
                        minWidth: column.minWidth ? column.minWidth : '50px',
 | 
			
		||||
                      }"
 | 
			
		||||
                    />
 | 
			
		||||
                    <col :width="column.width" :style="{
 | 
			
		||||
                      minWidth: column.minWidth ? column.minWidth : '50px',
 | 
			
		||||
                    }" />
 | 
			
		||||
                  </template>
 | 
			
		||||
                </template>
 | 
			
		||||
              </colgroup>
 | 
			
		||||
              <thead>
 | 
			
		||||
                <template
 | 
			
		||||
                  v-for="(
 | 
			
		||||
                <template v-for="(
 | 
			
		||||
                    tableHeadColumn, tableHeadColumnIndex
 | 
			
		||||
                  ) in tableHeadColumns"
 | 
			
		||||
                  :key="tableHeadColumnIndex"
 | 
			
		||||
                >
 | 
			
		||||
                  ) in tableHeadColumns" :key="tableHeadColumnIndex">
 | 
			
		||||
                  <tr>
 | 
			
		||||
                    <template
 | 
			
		||||
                      v-for="(column, columnIndex) in tableHeadColumn"
 | 
			
		||||
                      :key="column"
 | 
			
		||||
                    >
 | 
			
		||||
                      <th
 | 
			
		||||
                        v-if="tableColumnKeys.includes(column.key)"
 | 
			
		||||
                        :colspan="column.colspan"
 | 
			
		||||
                        :rowspan="column.rowspan"
 | 
			
		||||
                        class="layui-table-cell"
 | 
			
		||||
                        :class="[
 | 
			
		||||
                    <template v-for="(column, columnIndex) in tableHeadColumn" :key="column">
 | 
			
		||||
                      <th v-if="tableColumnKeys.includes(column.key)" :colspan="column.colspan" :rowspan="column.rowspan"
 | 
			
		||||
                        class="layui-table-cell" :class="[
 | 
			
		||||
                          renderFixedClassName(column, columnIndex),
 | 
			
		||||
                          column.fixed
 | 
			
		||||
                            ? `layui-table-fixed-${column.fixed}`
 | 
			
		||||
@ -939,26 +901,19 @@ window.addEventListener("click", heddin);
 | 
			
		||||
                          column.type == 'number'
 | 
			
		||||
                            ? 'layui-table-cell-number'
 | 
			
		||||
                            : '',
 | 
			
		||||
                        ]"
 | 
			
		||||
                        :style="[
 | 
			
		||||
                          {
 | 
			
		||||
                            textAlign: column.align,
 | 
			
		||||
                          },
 | 
			
		||||
                          renderHeadFixedStyle(
 | 
			
		||||
                            column,
 | 
			
		||||
                            columnIndex,
 | 
			
		||||
                            tableHeadColumn
 | 
			
		||||
                          ),
 | 
			
		||||
                        ]"
 | 
			
		||||
                      >
 | 
			
		||||
                        ]" :style="[
 | 
			
		||||
  {
 | 
			
		||||
    textAlign: column.align,
 | 
			
		||||
  },
 | 
			
		||||
  renderHeadFixedStyle(
 | 
			
		||||
    column,
 | 
			
		||||
    columnIndex,
 | 
			
		||||
    tableHeadColumn
 | 
			
		||||
  ),
 | 
			
		||||
]">
 | 
			
		||||
                        <template v-if="column.type == 'checkbox'">
 | 
			
		||||
                          <lay-checkbox
 | 
			
		||||
                            v-model="hasChecked"
 | 
			
		||||
                            :is-indeterminate="!allChecked"
 | 
			
		||||
                            skin="primary"
 | 
			
		||||
                            value="all"
 | 
			
		||||
                            @change="changeAll"
 | 
			
		||||
                          />
 | 
			
		||||
                          <lay-checkbox v-model="hasChecked" :is-indeterminate="!allChecked" skin="primary" value="all"
 | 
			
		||||
                            @change="changeAll" />
 | 
			
		||||
                        </template>
 | 
			
		||||
                        <template v-else>
 | 
			
		||||
                          <span>
 | 
			
		||||
@ -970,33 +925,16 @@ window.addEventListener("click", heddin);
 | 
			
		||||
                            </template>
 | 
			
		||||
                          </span>
 | 
			
		||||
                          <!-- 插槽 -->
 | 
			
		||||
                          <span
 | 
			
		||||
                            v-if="column.sort"
 | 
			
		||||
                            class="layui-table-sort layui-inline"
 | 
			
		||||
                            lay-sort
 | 
			
		||||
                          >
 | 
			
		||||
                            <i
 | 
			
		||||
                              @click.stop="sortTable($event, column.key, 'asc')"
 | 
			
		||||
                              class="layui-edge layui-table-sort-asc"
 | 
			
		||||
                              title="升序"
 | 
			
		||||
                            ></i>
 | 
			
		||||
                            <i
 | 
			
		||||
                              @click.stop="
 | 
			
		||||
                                sortTable($event, column.key, 'desc')
 | 
			
		||||
                              "
 | 
			
		||||
                              class="layui-edge layui-table-sort-desc"
 | 
			
		||||
                              title="降序"
 | 
			
		||||
                            ></i>
 | 
			
		||||
                          <span v-if="column.sort" class="layui-table-sort layui-inline" lay-sort>
 | 
			
		||||
                            <i @click.stop="sortTable($event, column.key, 'asc')" class="layui-edge layui-table-sort-asc"
 | 
			
		||||
                              title="升序"></i>
 | 
			
		||||
                            <i @click.stop="
 | 
			
		||||
                              sortTable($event, column.key, 'desc')
 | 
			
		||||
                              " class="layui-edge layui-table-sort-desc" title="降序"></i>
 | 
			
		||||
                          </span>
 | 
			
		||||
                          <span
 | 
			
		||||
                            v-if="column.soul"
 | 
			
		||||
                            class="layui-table-sort layui-inline soul-icon"
 | 
			
		||||
                          >
 | 
			
		||||
                            <i
 | 
			
		||||
                              class="soul-icon soul-box"
 | 
			
		||||
                              :class="column.soulclass || 'soul-icon-filter'"
 | 
			
		||||
                              @click.stop="showsoul($event, column, column.key)"
 | 
			
		||||
                            >
 | 
			
		||||
                          <span v-if="column.soul" class="layui-table-sort layui-inline soul-icon">
 | 
			
		||||
                            <i class="soul-icon soul-box" :class="column.soulclass || 'soul-icon-filter'"
 | 
			
		||||
                              @click.stop="showsoul($event, column, column.key)">
 | 
			
		||||
                              <!-- <div v-show="column.soulshow" @click.stop="" class="soulbox">
 | 
			
		||||
                                    11111
 | 
			
		||||
                                  </div> -->
 | 
			
		||||
@ -1012,61 +950,29 @@ window.addEventListener("click", heddin);
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <!-- 表身 -->
 | 
			
		||||
        <div
 | 
			
		||||
          class="layui-table-body layui-table-main"
 | 
			
		||||
          :style="{ height: height, maxHeight: maxHeight }"
 | 
			
		||||
          ref="tableBody"
 | 
			
		||||
        >
 | 
			
		||||
          <table
 | 
			
		||||
            class="layui-table"
 | 
			
		||||
            v-if="datalist.length > 0 && loading == false"
 | 
			
		||||
            :class="{ 'layui-table-even': props.even }"
 | 
			
		||||
            :lay-size="size"
 | 
			
		||||
            :lay-skin="skin"
 | 
			
		||||
          >
 | 
			
		||||
        <div class="layui-table-body layui-table-main" :style="{ height: height, maxHeight: maxHeight }" ref="tableBody">
 | 
			
		||||
          <table class="layui-table" v-if="datalist.length > 0 && loading == false"
 | 
			
		||||
            :class="{ 'layui-table-even': props.even }" :lay-size="size" :lay-skin="skin">
 | 
			
		||||
            <colgroup>
 | 
			
		||||
              <template
 | 
			
		||||
                v-for="(column, columnIndex) in tableBodyColumns"
 | 
			
		||||
                :key="columnIndex"
 | 
			
		||||
              >
 | 
			
		||||
              <template v-for="(column, columnIndex) in tableBodyColumns" :key="columnIndex">
 | 
			
		||||
                <template v-if="tableColumnKeys.includes(column.key)">
 | 
			
		||||
                  <col
 | 
			
		||||
                    :width="column.width"
 | 
			
		||||
                    :style="{
 | 
			
		||||
                      minWidth: column.minWidth ? column.minWidth : '50px',
 | 
			
		||||
                    }"
 | 
			
		||||
                  />
 | 
			
		||||
                  <col :width="column.width" :style="{
 | 
			
		||||
                    minWidth: column.minWidth ? column.minWidth : '50px',
 | 
			
		||||
                  }" />
 | 
			
		||||
                </template>
 | 
			
		||||
              </template>
 | 
			
		||||
            </colgroup>
 | 
			
		||||
            <tbody>
 | 
			
		||||
              <!-- 渲染 -->
 | 
			
		||||
              <template v-for="(children, index) in datalist" :key="index">
 | 
			
		||||
                <table-row
 | 
			
		||||
                  :id="id"
 | 
			
		||||
                  :index="index"
 | 
			
		||||
                  :data="children"
 | 
			
		||||
                  :columns="tableBodyColumns"
 | 
			
		||||
                  :indent-size="indentSize"
 | 
			
		||||
                  :currentIndentSize="currentIndentSize"
 | 
			
		||||
                  :tableColumnKeys="tableColumnKeys"
 | 
			
		||||
                  :expandSpace="childrenExpandSpace"
 | 
			
		||||
                  :expandIndex="expandIndex"
 | 
			
		||||
                  :cellStyle="cellStyle"
 | 
			
		||||
                  :cellClassName="cellClassName"
 | 
			
		||||
                  :rowStyle="rowStyle"
 | 
			
		||||
                  :rowClassName="rowClassName"
 | 
			
		||||
                  :spanMethod="spanMethod"
 | 
			
		||||
                  :defaultExpandAll="defaultExpandAll"
 | 
			
		||||
                  :getCheckboxProps="getCheckboxProps"
 | 
			
		||||
                  :getRadioProps="getRadioProps"
 | 
			
		||||
                  v-model:expandKeys="tableExpandKeys"
 | 
			
		||||
                  v-model:selectedKeys="tableSelectedKeys"
 | 
			
		||||
                  v-model:selectedKey="tableSelectedKey"
 | 
			
		||||
                  @row="rowClick"
 | 
			
		||||
                  @row-double="rowDoubleClick"
 | 
			
		||||
                  @row-contextmenu="rowContextmenu"
 | 
			
		||||
                >
 | 
			
		||||
                <table-row :id="id" :index="index" :data="children" :columns="tableBodyColumns" :indent-size="indentSize"
 | 
			
		||||
                  :currentIndentSize="currentIndentSize" :tableColumnKeys="tableColumnKeys"
 | 
			
		||||
                  :expandSpace="childrenExpandSpace" :expandIndex="expandIndex" :cellStyle="cellStyle"
 | 
			
		||||
                  :cellClassName="cellClassName" :rowStyle="rowStyle" :rowClassName="rowClassName"
 | 
			
		||||
                  :spanMethod="spanMethod" :defaultExpandAll="defaultExpandAll" :getCheckboxProps="getCheckboxProps"
 | 
			
		||||
                  :getRadioProps="getRadioProps" v-model:expandKeys="tableExpandKeys"
 | 
			
		||||
                  v-model:selectedKeys="tableSelectedKeys" v-model:selectedKey="tableSelectedKey" @row="rowClick"
 | 
			
		||||
                  @row-double="rowDoubleClick" @row-contextmenu="rowContextmenu">
 | 
			
		||||
                  <template v-for="name in slotsData" #[name]="{ data }">
 | 
			
		||||
                    <slot :name="name" :data="data"></slot>
 | 
			
		||||
                  </template>
 | 
			
		||||
@ -1076,28 +982,21 @@ window.addEventListener("click", heddin);
 | 
			
		||||
                </table-row>
 | 
			
		||||
              </template>
 | 
			
		||||
              <tr v-if="hasTotalRow" class="layui-table-total">
 | 
			
		||||
                <template
 | 
			
		||||
                  v-for="(column, columnIndex) in columns"
 | 
			
		||||
                  :key="columnIndex"
 | 
			
		||||
                >
 | 
			
		||||
                <template v-for="(column, columnIndex) in columns" :key="columnIndex">
 | 
			
		||||
                  <template v-if="tableColumnKeys.includes(column.key)">
 | 
			
		||||
                    <td
 | 
			
		||||
                      :style="[
 | 
			
		||||
                        {
 | 
			
		||||
                          textAlign: column.align,
 | 
			
		||||
                          whiteSpace: column.ellipsisTooltip
 | 
			
		||||
                            ? 'nowrap'
 | 
			
		||||
                            : 'normal',
 | 
			
		||||
                        },
 | 
			
		||||
                        renderFixedStyle(column, columnIndex),
 | 
			
		||||
                      ]"
 | 
			
		||||
                      :class="[
 | 
			
		||||
                        'layui-table-cell',
 | 
			
		||||
                        renderFixedClassName(column, columnIndex),
 | 
			
		||||
                        column.fixed ? `layui-table-fixed-${column.fixed}` : '',
 | 
			
		||||
                      ]"
 | 
			
		||||
                      v-html="renderTotalRowCell(column)"
 | 
			
		||||
                    ></td>
 | 
			
		||||
                    <td :style="[
 | 
			
		||||
                      {
 | 
			
		||||
                        textAlign: column.align,
 | 
			
		||||
                        whiteSpace: column.ellipsisTooltip
 | 
			
		||||
                          ? 'nowrap'
 | 
			
		||||
                          : 'normal',
 | 
			
		||||
                      },
 | 
			
		||||
                      renderFixedStyle(column, columnIndex),
 | 
			
		||||
                    ]" :class="[
 | 
			
		||||
  'layui-table-cell',
 | 
			
		||||
  renderFixedClassName(column, columnIndex),
 | 
			
		||||
  column.fixed ? `layui-table-fixed-${column.fixed}` : '',
 | 
			
		||||
]" v-html="renderTotalRowCell(column)"></td>
 | 
			
		||||
                  </template>
 | 
			
		||||
                </template>
 | 
			
		||||
              </tr>
 | 
			
		||||
@ -1109,9 +1008,7 @@ window.addEventListener("click", heddin);
 | 
			
		||||
          </template>
 | 
			
		||||
          <template v-if="loading == true">
 | 
			
		||||
            <div class="layui-table-loading">
 | 
			
		||||
              <i
 | 
			
		||||
                class="layui-icon-loading layui-icon layui-anim layui-anim-rotate layui-anim-loop"
 | 
			
		||||
              ></i>
 | 
			
		||||
              <i class="layui-icon-loading layui-icon layui-anim layui-anim-rotate layui-anim-loop"></i>
 | 
			
		||||
            </div>
 | 
			
		||||
          </template>
 | 
			
		||||
        </div>
 | 
			
		||||
@ -1120,41 +1017,17 @@ window.addEventListener("click", heddin);
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div v-if="page && page.total > 0" class="layui-table-page">
 | 
			
		||||
        <table-page
 | 
			
		||||
          :total="page.total"
 | 
			
		||||
          :pages="page.pages"
 | 
			
		||||
          :theme="page.theme"
 | 
			
		||||
          :limits="page.limits"
 | 
			
		||||
          :showSkip="page.showSkip"
 | 
			
		||||
          :show-page="page.showPage"
 | 
			
		||||
          :showRefresh="page.showRefresh"
 | 
			
		||||
          :showLimit="page.showLimit"
 | 
			
		||||
          :showCount="page.showCount"
 | 
			
		||||
          :count="page.count"
 | 
			
		||||
          v-model:current="page.current"
 | 
			
		||||
          v-model:limit="page.limit"
 | 
			
		||||
          @change="change"
 | 
			
		||||
        >
 | 
			
		||||
        <table-page :total="page.total" :pages="page.pages" :theme="page.theme" :limits="page.limits"
 | 
			
		||||
          :showSkip="page.showSkip" :show-page="page.showPage" :showRefresh="page.showRefresh" :showLimit="page.showLimit"
 | 
			
		||||
          :showCount="page.showCount" :count="page.count" v-model:current="page.current" v-model:limit="page.limit"
 | 
			
		||||
          @change="change">
 | 
			
		||||
        </table-page>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div
 | 
			
		||||
      v-for="(tableHeadColumn, tableHeadColumnIndex) in tableHeadColumns"
 | 
			
		||||
      :key="tableHeadColumnIndex"
 | 
			
		||||
    >
 | 
			
		||||
    <div v-for="(tableHeadColumn, tableHeadColumnIndex) in tableHeadColumns" :key="tableHeadColumnIndex">
 | 
			
		||||
      <div v-for="(column, columnIndex) in tableHeadColumn" :key="column">
 | 
			
		||||
        <soultable
 | 
			
		||||
          :top="soultop"
 | 
			
		||||
          :left="soulleft"
 | 
			
		||||
          v-show="soulkey == column.key"
 | 
			
		||||
          :show="soulkey == column.key"
 | 
			
		||||
          @asc="asc"
 | 
			
		||||
          @desc="desc"
 | 
			
		||||
          @daochu="exportData"
 | 
			
		||||
          :list="datalist"
 | 
			
		||||
          :soulkey="column.key"
 | 
			
		||||
          @sx="sx"
 | 
			
		||||
        ></soultable>
 | 
			
		||||
        <soultable :top="soultop" :left="soulleft" v-show="soulkey == column.key" :show="soulkey == column.key" @asc="asc"
 | 
			
		||||
          @desc="desc" @daochu="exportData" :list="datalist" :soulkey="column.key" @sx="sx"></soultable>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
@ -40,12 +40,14 @@ export interface TagInputProps {
 | 
			
		||||
  size?: TagInputSize;
 | 
			
		||||
  tagProps?: TagProps;
 | 
			
		||||
  disabledInput?: boolean;
 | 
			
		||||
  position?:string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const props = withDefaults(defineProps<TagInputProps>(), {
 | 
			
		||||
  placeholder: undefined,
 | 
			
		||||
  minCollapsedNum: 0,
 | 
			
		||||
  size: "md",
 | 
			
		||||
  position:"top"
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const emit = defineEmits([
 | 
			
		||||
@ -274,6 +276,7 @@ defineExpose({
 | 
			
		||||
          trigger="hover"
 | 
			
		||||
          popperStyle="padding:6px"
 | 
			
		||||
          :disabled="!collapseTagsTooltip"
 | 
			
		||||
          :position="position"
 | 
			
		||||
        >
 | 
			
		||||
          <LayTag v-bind="tagProps" key="more" :closable="false" :size="size">
 | 
			
		||||
            +{{ moreCount }}...
 | 
			
		||||
 | 
			
		||||
@ -108,7 +108,7 @@ onMounted(() => {
 | 
			
		||||
    </span>
 | 
			
		||||
  </div>
 | 
			
		||||
  <slot v-else></slot>
 | 
			
		||||
  <lay-popper v-if="isMounted" v-bind="innerProps">
 | 
			
		||||
  <lay-popper :positio="position" v-if="isMounted" v-bind="innerProps">
 | 
			
		||||
    <slot name="content"></slot>
 | 
			
		||||
  </lay-popper>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user