mirror of
				https://gitee.com/hhyykk/ipms-sjy-ui.git
				synced 2025-11-04 20:28:45 +08:00 
			
		
		
		
	style: unocss eslint
This commit is contained in:
		@@ -70,23 +70,23 @@ const dialogStyle = computed(() => {
 | 
			
		||||
    :show-close="false"
 | 
			
		||||
  >
 | 
			
		||||
    <template #header="{ close }">
 | 
			
		||||
      <div class="flex justify-between items-center h-54px pl-15px pr-15px relative">
 | 
			
		||||
      <div class="relative h-54px flex items-center justify-between pl-15px pr-15px">
 | 
			
		||||
        <slot name="title">
 | 
			
		||||
          {{ title }}
 | 
			
		||||
        </slot>
 | 
			
		||||
        <div
 | 
			
		||||
          class="h-54px flex justify-between items-center absolute top-[50%] right-15px translate-y-[-50%]"
 | 
			
		||||
          class="absolute right-15px top-[50%] h-54px flex translate-y-[-50%] items-center justify-between"
 | 
			
		||||
        >
 | 
			
		||||
          <Icon
 | 
			
		||||
            v-if="fullscreen"
 | 
			
		||||
            class="cursor-pointer is-hover mr-10px"
 | 
			
		||||
            class="is-hover mr-10px cursor-pointer"
 | 
			
		||||
            :icon="isFullscreen ? 'radix-icons:exit-full-screen' : 'radix-icons:enter-full-screen'"
 | 
			
		||||
            color="var(--el-color-info)"
 | 
			
		||||
            hover-color="var(--el-color-primary)"
 | 
			
		||||
            @click="toggleFull"
 | 
			
		||||
          />
 | 
			
		||||
          <Icon
 | 
			
		||||
            class="cursor-pointer is-hover"
 | 
			
		||||
            class="is-hover cursor-pointer"
 | 
			
		||||
            icon="ep:close"
 | 
			
		||||
            hover-color="var(--el-color-primary)"
 | 
			
		||||
            color="var(--el-color-info)"
 | 
			
		||||
 
 | 
			
		||||
@@ -180,12 +180,12 @@ defineExpose({
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="border-1 border-solid border-[var(--el-border-color)] z-99">
 | 
			
		||||
  <div class="z-99 border-1 border-[var(--el-border-color)] border-solid">
 | 
			
		||||
    <!-- 工具栏 -->
 | 
			
		||||
    <Toolbar
 | 
			
		||||
      :editor="editorRef"
 | 
			
		||||
      :editorId="editorId"
 | 
			
		||||
      class="border-0 b-b-1 border-solid border-[var(--el-border-color)]"
 | 
			
		||||
      class="border-0 b-b-1 border-[var(--el-border-color)] border-solid"
 | 
			
		||||
    />
 | 
			
		||||
    <!-- 编辑器 -->
 | 
			
		||||
    <Editor
 | 
			
		||||
 
 | 
			
		||||
@@ -203,7 +203,7 @@ export default defineComponent({
 | 
			
		||||
                      icon="ep:warning"
 | 
			
		||||
                      size={16}
 | 
			
		||||
                      color="var(--el-color-primary)"
 | 
			
		||||
                      class="ml-2px relative top-1px"
 | 
			
		||||
                      class="relative top-1px ml-2px"
 | 
			
		||||
                    ></Icon>
 | 
			
		||||
                  )
 | 
			
		||||
                }}
 | 
			
		||||
 
 | 
			
		||||
@@ -128,7 +128,7 @@ watch(
 | 
			
		||||
        >
 | 
			
		||||
          <template #reference>
 | 
			
		||||
            <div
 | 
			
		||||
              class="w-40px h-32px cursor-pointer flex justify-center items-center"
 | 
			
		||||
              class="h-32px w-40px flex cursor-pointer items-center justify-center"
 | 
			
		||||
              @click="visible = !visible"
 | 
			
		||||
            >
 | 
			
		||||
              <Icon :icon="currentActiveType + icon" />
 | 
			
		||||
@@ -147,13 +147,13 @@ watch(
 | 
			
		||||
            >
 | 
			
		||||
              <ElDivider border-style="dashed" class="tab-divider" />
 | 
			
		||||
              <ElScrollbar height="220px">
 | 
			
		||||
                <ul class="flex flex-wrap px-2 ml-2">
 | 
			
		||||
                <ul class="ml-2 flex flex-wrap px-2">
 | 
			
		||||
                  <li
 | 
			
		||||
                    v-for="(item, key) in pageList"
 | 
			
		||||
                    :key="key"
 | 
			
		||||
                    :style="iconItemStyle(item)"
 | 
			
		||||
                    :title="item"
 | 
			
		||||
                    class="icon-item p-2 w-1/10 cursor-pointer mr-2 mt-1 flex justify-center items-center border border-solid"
 | 
			
		||||
                    class="icon-item mr-2 mt-1 w-1/10 flex cursor-pointer items-center justify-center border border-solid p-2"
 | 
			
		||||
                    @click="onChangeIcon(item)"
 | 
			
		||||
                  >
 | 
			
		||||
                    <Icon :icon="currentActiveType + item" />
 | 
			
		||||
@@ -169,7 +169,7 @@ watch(
 | 
			
		||||
            :page-size="pageSize"
 | 
			
		||||
            :total="iconCount"
 | 
			
		||||
            background
 | 
			
		||||
            class="flex items-center justify-center h-10"
 | 
			
		||||
            class="h-10 flex items-center justify-center"
 | 
			
		||||
            layout="prev, pager, next"
 | 
			
		||||
            small
 | 
			
		||||
            @current-change="onCurrentChange"
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,7 @@ const keyClick = (key: string) => {
 | 
			
		||||
      <span :class="[`${prefixCls}__title`, 'pl-5px text-16px font-bold']">{{ title }}</span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div :class="`${prefixCls}__content`">
 | 
			
		||||
      <p v-for="(item, $index) in schema" :key="$index" class="text-14px mt-15px">
 | 
			
		||||
      <p v-for="(item, $index) in schema" :key="$index" class="mt-15px text-14px">
 | 
			
		||||
        <Highlight
 | 
			
		||||
          :color="highlightColor"
 | 
			
		||||
          :keys="typeof item === 'string' ? [] : item.keys"
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ const getIconName = computed(() => (unref(textType) === 'password' ? 'ep:hide' :
 | 
			
		||||
    <div
 | 
			
		||||
      v-if="strength"
 | 
			
		||||
      :class="`${prefixCls}__bar`"
 | 
			
		||||
      class="relative h-6px mt-10px mb-6px mr-auto ml-auto"
 | 
			
		||||
      class="relative mb-6px ml-auto mr-auto mt-10px h-6px"
 | 
			
		||||
    >
 | 
			
		||||
      <div :class="`${prefixCls}__bar--fill`" :data-score="getPasswordStrength"></div>
 | 
			
		||||
    </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
    :pager-count="pagerCount"
 | 
			
		||||
    :total="total"
 | 
			
		||||
    :small="isSmall"
 | 
			
		||||
    class="float-right mt-15px mb-15px"
 | 
			
		||||
    class="float-right mb-15px mt-15px"
 | 
			
		||||
    layout="total, sizes, prev, pager, next, jumper"
 | 
			
		||||
    @size-change="handleSizeChange"
 | 
			
		||||
    @current-change="handleCurrentChange"
 | 
			
		||||
 
 | 
			
		||||
@@ -227,10 +227,10 @@ const disabledClick = () => {
 | 
			
		||||
    <div
 | 
			
		||||
      v-if="disabled"
 | 
			
		||||
      :class="`${prefixCls}--disabled`"
 | 
			
		||||
      class="absolute top-0 left-0 flex w-full h-full items-center justify-center"
 | 
			
		||||
      class="absolute left-0 top-0 h-full w-full flex items-center justify-center"
 | 
			
		||||
      @click="disabledClick"
 | 
			
		||||
    >
 | 
			
		||||
      <div class="absolute top-[50%] left-[50%] font-bold">
 | 
			
		||||
      <div class="absolute left-[50%] top-[50%] font-bold">
 | 
			
		||||
        <Icon :size="30" color="var(--el-color-primary)" icon="ep:refresh-right" />
 | 
			
		||||
        <div>{{ disabledText }}</div>
 | 
			
		||||
      </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -289,7 +289,7 @@ export default defineComponent({
 | 
			
		||||
          <ElPagination
 | 
			
		||||
            v-model:pageSize={pageSizeRef.value}
 | 
			
		||||
            v-model:currentPage={currentPageRef.value}
 | 
			
		||||
            class="float-right mt-15px mb-15px"
 | 
			
		||||
            class="float-right mb-15px mt-15px"
 | 
			
		||||
            {...unref(pagination)}
 | 
			
		||||
          ></ElPagination>
 | 
			
		||||
        ) : undefined}
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,6 @@ defineProps({
 | 
			
		||||
<template>
 | 
			
		||||
  <span>{{ titel }}</span>
 | 
			
		||||
  <ElTooltip :content="message" placement="top">
 | 
			
		||||
    <Icon :icon="icon" class="ml-1px relative top-1px" />
 | 
			
		||||
    <Icon :icon="icon" class="relative top-1px ml-1px" />
 | 
			
		||||
  </ElTooltip>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@
 | 
			
		||||
    <!--字段列表-->
 | 
			
		||||
    <div class="element-property list-property">
 | 
			
		||||
      <el-divider><Icon icon="ep:coin" /> 表单字段</el-divider>
 | 
			
		||||
      <el-table :data="fieldList" max-height="240" border fit>
 | 
			
		||||
      <el-table :data="fieldList" max-height="240" fit border>
 | 
			
		||||
        <el-table-column label="序号" type="index" width="50px" />
 | 
			
		||||
        <el-table-column label="字段名称" prop="label" min-width="80px" show-overflow-tooltip />
 | 
			
		||||
        <el-table-column
 | 
			
		||||
@@ -97,7 +97,7 @@
 | 
			
		||||
            >添加枚举值</el-button
 | 
			
		||||
          >
 | 
			
		||||
        </p>
 | 
			
		||||
        <el-table :data="fieldEnumList" key="enum-table" max-height="240" border fit>
 | 
			
		||||
        <el-table :data="fieldEnumList" key="enum-table" max-height="240" fit border>
 | 
			
		||||
          <el-table-column label="序号" width="50px" type="index" />
 | 
			
		||||
          <el-table-column label="枚举值编号" prop="id" min-width="100px" show-overflow-tooltip />
 | 
			
		||||
          <el-table-column label="枚举值名称" prop="name" min-width="100px" show-overflow-tooltip />
 | 
			
		||||
@@ -130,7 +130,7 @@
 | 
			
		||||
          >添加约束</el-button
 | 
			
		||||
        >
 | 
			
		||||
      </p>
 | 
			
		||||
      <el-table :data="fieldConstraintsList" key="validation-table" max-height="240" border fit>
 | 
			
		||||
      <el-table :data="fieldConstraintsList" key="validation-table" max-height="240" fit border>
 | 
			
		||||
        <el-table-column label="序号" width="50px" type="index" />
 | 
			
		||||
        <el-table-column label="约束名称" prop="name" min-width="100px" show-overflow-tooltip />
 | 
			
		||||
        <el-table-column label="约束配置" prop="config" min-width="100px" show-overflow-tooltip />
 | 
			
		||||
@@ -162,7 +162,7 @@
 | 
			
		||||
          >添加属性</el-button
 | 
			
		||||
        >
 | 
			
		||||
      </p>
 | 
			
		||||
      <el-table :data="fieldPropertiesList" key="property-table" max-height="240" border fit>
 | 
			
		||||
      <el-table :data="fieldPropertiesList" key="property-table" max-height="240" fit border>
 | 
			
		||||
        <el-table-column label="序号" width="50px" type="index" />
 | 
			
		||||
        <el-table-column label="属性编号" prop="id" min-width="100px" show-overflow-tooltip />
 | 
			
		||||
        <el-table-column label="属性值" prop="value" min-width="100px" show-overflow-tooltip />
 | 
			
		||||
 
 | 
			
		||||
@@ -139,8 +139,8 @@
 | 
			
		||||
        :data="fieldsListOfListener"
 | 
			
		||||
        size="small"
 | 
			
		||||
        max-height="240"
 | 
			
		||||
        border
 | 
			
		||||
        fit
 | 
			
		||||
        border
 | 
			
		||||
        style="flex: none"
 | 
			
		||||
      >
 | 
			
		||||
        <el-table-column label="序号" width="50px" type="index" />
 | 
			
		||||
 
 | 
			
		||||
@@ -184,8 +184,8 @@
 | 
			
		||||
        :data="fieldsListOfListener"
 | 
			
		||||
        size="small"
 | 
			
		||||
        max-height="240"
 | 
			
		||||
        border
 | 
			
		||||
        fit
 | 
			
		||||
        border
 | 
			
		||||
        style="flex: none"
 | 
			
		||||
      >
 | 
			
		||||
        <el-table-column label="序号" width="50px" type="index" />
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="panel-tab__content">
 | 
			
		||||
    <el-table :data="elementPropertyList" max-height="240" border fit>
 | 
			
		||||
    <el-table :data="elementPropertyList" max-height="240" fit border>
 | 
			
		||||
      <el-table-column label="序号" width="50px" type="index" />
 | 
			
		||||
      <el-table-column label="属性名" prop="name" min-width="100px" show-overflow-tooltip />
 | 
			
		||||
      <el-table-column label="属性值" prop="value" min-width="100px" show-overflow-tooltip />
 | 
			
		||||
 
 | 
			
		||||
@@ -50,7 +50,7 @@ export default defineComponent({
 | 
			
		||||
      <section class={[prefixCls, `${prefixCls}__${layout.value}`, 'w-[100%] h-[100%] relative']}>
 | 
			
		||||
        {mobile.value && !collapse.value ? (
 | 
			
		||||
          <div
 | 
			
		||||
            class="absolute top-0 left-0 w-full h-full opacity-30 z-99 bg-[var(--el-color-black)]"
 | 
			
		||||
            class="absolute left-0 top-0 z-99 h-full w-full bg-[var(--el-color-black)] opacity-30"
 | 
			
		||||
            onClick={handleClickOutside}
 | 
			
		||||
          ></div>
 | 
			
		||||
        ) : undefined}
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ const title = computed(() => appStore.getTitle)
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    :class="prefixCls"
 | 
			
		||||
    class="text-center text-[var(--el-text-color-placeholder)] bg-[var(--app-content-bg-color)] h-[var(--app-footer-height)] leading-[var(--app-footer-height)] dark:bg-[var(--el-bg-color)]"
 | 
			
		||||
    class="h-[var(--app-footer-height)] bg-[var(--app-content-bg-color)] text-center leading-[var(--app-footer-height)] text-[var(--el-text-color-placeholder)] dark:bg-[var(--el-bg-color)]"
 | 
			
		||||
  >
 | 
			
		||||
    <p style="font-size: 14px">Copyright ©2022-{{ title }}</p>
 | 
			
		||||
  </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ watch(
 | 
			
		||||
      to="/"
 | 
			
		||||
    >
 | 
			
		||||
      <img
 | 
			
		||||
        class="w-[calc(var(--logo-height)-10px)] h-[calc(var(--logo-height)-10px)]"
 | 
			
		||||
        class="h-[calc(var(--logo-height)-10px)] w-[calc(var(--logo-height)-10px)]"
 | 
			
		||||
        src="@/assets/imgs/logo.png"
 | 
			
		||||
      />
 | 
			
		||||
      <div
 | 
			
		||||
 
 | 
			
		||||
@@ -200,7 +200,7 @@ const clear = () => {
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    :class="prefixCls"
 | 
			
		||||
    class="fixed top-[45%] right-0 w-40px h-40px text-center leading-40px bg-[var(--el-color-primary)] cursor-pointer"
 | 
			
		||||
    class="fixed right-0 top-[45%] h-40px w-40px cursor-pointer bg-[var(--el-color-primary)] text-center leading-40px"
 | 
			
		||||
    @click="drawer = true"
 | 
			
		||||
  >
 | 
			
		||||
    <Icon color="#fff" icon="ep:setting" />
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ watch(
 | 
			
		||||
      :style="{
 | 
			
		||||
        background: item
 | 
			
		||||
      }"
 | 
			
		||||
      class="w-20px h-20px cursor-pointer rounded-2px border-solid border-gray-300 border-2px text-center leading-20px mb-5px"
 | 
			
		||||
      class="mb-5px h-20px w-20px cursor-pointer border-2px border-gray-300 rounded-2px border-solid text-center leading-20px"
 | 
			
		||||
      @click="colorVal = item"
 | 
			
		||||
    >
 | 
			
		||||
      <Icon v-if="colorVal === item" :size="16" color="#fff" icon="ep:check" />
 | 
			
		||||
 
 | 
			
		||||
@@ -141,84 +141,84 @@ watch(
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div :class="prefixCls">
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.breadcrumb') }}</span>
 | 
			
		||||
      <ElSwitch v-model="breadcrumb" @change="breadcrumbChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.breadcrumbIcon') }}</span>
 | 
			
		||||
      <ElSwitch v-model="breadcrumbIcon" @change="breadcrumbIconChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.hamburgerIcon') }}</span>
 | 
			
		||||
      <ElSwitch v-model="hamburger" @change="hamburgerChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.screenfullIcon') }}</span>
 | 
			
		||||
      <ElSwitch v-model="screenfull" @change="screenfullChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.sizeIcon') }}</span>
 | 
			
		||||
      <ElSwitch v-model="size" @change="sizeChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.localeIcon') }}</span>
 | 
			
		||||
      <ElSwitch v-model="locale" @change="localeChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.messageIcon') }}</span>
 | 
			
		||||
      <ElSwitch v-model="message" @change="messageChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.tagsView') }}</span>
 | 
			
		||||
      <ElSwitch v-model="tagsView" @change="tagsViewChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.tagsViewIcon') }}</span>
 | 
			
		||||
      <ElSwitch v-model="tagsViewIcon" @change="tagsViewIconChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.logo') }}</span>
 | 
			
		||||
      <ElSwitch v-model="logo" @change="logoChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.uniqueOpened') }}</span>
 | 
			
		||||
      <ElSwitch v-model="uniqueOpened" @change="uniqueOpenedChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.fixedHeader') }}</span>
 | 
			
		||||
      <ElSwitch v-model="fixedHeader" @change="fixedHeaderChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.footer') }}</span>
 | 
			
		||||
      <ElSwitch v-model="footer" @change="footerChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.greyMode') }}</span>
 | 
			
		||||
      <ElSwitch v-model="greyMode" @change="greyModeChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('setting.fixedMenu') }}</span>
 | 
			
		||||
      <ElSwitch v-model="fixedMenu" @change="fixedMenuChange" />
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex justify-between items-center">
 | 
			
		||||
    <div class="flex items-center justify-between">
 | 
			
		||||
      <span class="text-14px">{{ t('watermark.watermark') }}</span>
 | 
			
		||||
      <ElInput v-model="water" class="w-20 right-1" @change="setWater()" />
 | 
			
		||||
      <ElInput v-model="water" class="right-1 w-20" @change="setWater()" />
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@ const layout = computed(() => appStore.getLayout)
 | 
			
		||||
      ]"
 | 
			
		||||
      @click="appStore.setLayout('cutMenu')"
 | 
			
		||||
    >
 | 
			
		||||
      <div class="absolute h-full w-[33%] top-0 left-[10%] bg-gray-200"></div>
 | 
			
		||||
      <div class="absolute left-[10%] top-0 h-full w-[33%] bg-gray-200"></div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -176,7 +176,7 @@ export default defineComponent({
 | 
			
		||||
                      <Icon icon={item?.meta?.icon}></Icon>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    {!unref(showTitle) ? undefined : (
 | 
			
		||||
                      <p class="break-words mt-5px px-2px">{t(item.meta?.title)}</p>
 | 
			
		||||
                      <p class="mt-5px break-words px-2px">{t(item.meta?.title)}</p>
 | 
			
		||||
                    )}
 | 
			
		||||
                  </div>
 | 
			
		||||
                )
 | 
			
		||||
 
 | 
			
		||||
@@ -263,11 +263,11 @@ watch(
 | 
			
		||||
  <div
 | 
			
		||||
    :id="prefixCls"
 | 
			
		||||
    :class="prefixCls"
 | 
			
		||||
    class="flex w-full relative bg-[#fff] dark:bg-[var(--el-bg-color)]"
 | 
			
		||||
    class="relative w-full flex bg-[#fff] dark:bg-[var(--el-bg-color)]"
 | 
			
		||||
  >
 | 
			
		||||
    <span
 | 
			
		||||
      :class="`${prefixCls}__tool ${prefixCls}__tool--first`"
 | 
			
		||||
      class="w-[var(--tags-view-height)] h-[var(--tags-view-height)] flex items-center justify-center cursor-pointer"
 | 
			
		||||
      class="h-[var(--tags-view-height)] w-[var(--tags-view-height)] flex cursor-pointer items-center justify-center"
 | 
			
		||||
      @click="move(-200)"
 | 
			
		||||
    >
 | 
			
		||||
      <Icon
 | 
			
		||||
@@ -276,9 +276,9 @@ watch(
 | 
			
		||||
        :hover-color="isDark ? '#fff' : 'var(--el-color-black)'"
 | 
			
		||||
      />
 | 
			
		||||
    </span>
 | 
			
		||||
    <div class="overflow-hidden flex-1">
 | 
			
		||||
    <div class="flex-1 overflow-hidden">
 | 
			
		||||
      <ElScrollbar ref="scrollbarRef" class="h-full" @scroll="scroll">
 | 
			
		||||
        <div class="flex h-full">
 | 
			
		||||
        <div class="h-full flex">
 | 
			
		||||
          <ContextMenu
 | 
			
		||||
            :ref="itemRefs.set"
 | 
			
		||||
            :schema="[
 | 
			
		||||
@@ -354,7 +354,7 @@ watch(
 | 
			
		||||
              <router-link :ref="tagLinksRefs.set" :to="{ ...item }" custom v-slot="{ navigate }">
 | 
			
		||||
                <div
 | 
			
		||||
                  @click="navigate"
 | 
			
		||||
                  class="h-full flex justify-center items-center whitespace-nowrap pl-15px"
 | 
			
		||||
                  class="h-full flex items-center justify-center whitespace-nowrap pl-15px"
 | 
			
		||||
                >
 | 
			
		||||
                  <Icon
 | 
			
		||||
                    v-if="
 | 
			
		||||
@@ -384,7 +384,7 @@ watch(
 | 
			
		||||
    </div>
 | 
			
		||||
    <span
 | 
			
		||||
      :class="`${prefixCls}__tool`"
 | 
			
		||||
      class="w-[var(--tags-view-height)] h-[var(--tags-view-height)] flex items-center justify-center cursor-pointer"
 | 
			
		||||
      class="h-[var(--tags-view-height)] w-[var(--tags-view-height)] flex cursor-pointer items-center justify-center"
 | 
			
		||||
      @click="move(200)"
 | 
			
		||||
    >
 | 
			
		||||
      <Icon
 | 
			
		||||
@@ -395,7 +395,7 @@ watch(
 | 
			
		||||
    </span>
 | 
			
		||||
    <span
 | 
			
		||||
      :class="`${prefixCls}__tool`"
 | 
			
		||||
      class="w-[var(--tags-view-height)] h-[var(--tags-view-height)] flex items-center justify-center cursor-pointer"
 | 
			
		||||
      class="h-[var(--tags-view-height)] w-[var(--tags-view-height)] flex cursor-pointer items-center justify-center"
 | 
			
		||||
      @click="refreshSelectedTag(selectedTag)"
 | 
			
		||||
    >
 | 
			
		||||
      <Icon
 | 
			
		||||
@@ -460,7 +460,7 @@ watch(
 | 
			
		||||
    >
 | 
			
		||||
      <span
 | 
			
		||||
        :class="`${prefixCls}__tool`"
 | 
			
		||||
        class="w-[var(--tags-view-height)] h-[var(--tags-view-height)] flex items-center justify-center cursor-pointer block"
 | 
			
		||||
        class="block h-[var(--tags-view-height)] w-[var(--tags-view-height)] flex cursor-pointer items-center justify-center"
 | 
			
		||||
      >
 | 
			
		||||
        <Icon
 | 
			
		||||
          icon="ep:menu"
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,7 @@ const toDocument = () => {
 | 
			
		||||
  <ElDropdown class="custom-hover" :class="prefixCls" trigger="click">
 | 
			
		||||
    <div class="flex items-center">
 | 
			
		||||
      <ElAvatar :src="avatar" alt="" class="w-[calc(var(--logo-height)-25px)] rounded-[50%]" />
 | 
			
		||||
      <span class="<lg:hidden text-14px pl-[5px] text-[var(--top-header-text-color)]">
 | 
			
		||||
      <span class="pl-[5px] text-14px text-[var(--top-header-text-color)] <lg:hidden">
 | 
			
		||||
        {{ userName }}
 | 
			
		||||
      </span>
 | 
			
		||||
    </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
        <el-row :gutter="20" justify="space-between">
 | 
			
		||||
          <el-col :xl="12" :lg="12" :md="12" :sm="24" :xs="24">
 | 
			
		||||
            <div class="flex items-center">
 | 
			
		||||
              <img :src="avatar" alt="" class="w-70px h-70px rounded-[50%] mr-20px" />
 | 
			
		||||
              <img :src="avatar" alt="" class="mr-20px h-70px w-70px rounded-[50%]" />
 | 
			
		||||
              <div>
 | 
			
		||||
                <div class="text-20px">
 | 
			
		||||
                  {{ t('workplace.welcome') }} {{ username }} {{ t('workplace.happyDay') }}
 | 
			
		||||
@@ -17,9 +17,9 @@
 | 
			
		||||
            </div>
 | 
			
		||||
          </el-col>
 | 
			
		||||
          <el-col :xl="12" :lg="12" :md="12" :sm="24" :xs="24">
 | 
			
		||||
            <div class="flex h-70px items-center justify-end lt-sm:mt-10px">
 | 
			
		||||
            <div class="h-70px flex items-center justify-end lt-sm:mt-10px">
 | 
			
		||||
              <div class="px-8px text-right">
 | 
			
		||||
                <div class="text-14px text-gray-400 mb-20px">{{ t('workplace.project') }}</div>
 | 
			
		||||
                <div class="mb-20px text-14px text-gray-400">{{ t('workplace.project') }}</div>
 | 
			
		||||
                <CountTo
 | 
			
		||||
                  class="text-20px"
 | 
			
		||||
                  :start-val="0"
 | 
			
		||||
@@ -29,7 +29,7 @@
 | 
			
		||||
              </div>
 | 
			
		||||
              <el-divider direction="vertical" />
 | 
			
		||||
              <div class="px-8px text-right">
 | 
			
		||||
                <div class="text-14px text-gray-400 mb-20px">{{ t('workplace.toDo') }}</div>
 | 
			
		||||
                <div class="mb-20px text-14px text-gray-400">{{ t('workplace.toDo') }}</div>
 | 
			
		||||
                <CountTo
 | 
			
		||||
                  class="text-20px"
 | 
			
		||||
                  :start-val="0"
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
              </div>
 | 
			
		||||
              <el-divider direction="vertical" border-style="dashed" />
 | 
			
		||||
              <div class="px-8px text-right">
 | 
			
		||||
                <div class="text-14px text-gray-400 mb-20px">{{ t('workplace.access') }}</div>
 | 
			
		||||
                <div class="mb-20px text-14px text-gray-400">{{ t('workplace.access') }}</div>
 | 
			
		||||
                <CountTo
 | 
			
		||||
                  class="text-20px"
 | 
			
		||||
                  :start-val="0"
 | 
			
		||||
@@ -58,7 +58,7 @@
 | 
			
		||||
    <el-col :xl="16" :lg="16" :md="24" :sm="24" :xs="24" class="mb-10px">
 | 
			
		||||
      <el-card shadow="never">
 | 
			
		||||
        <template #header>
 | 
			
		||||
          <div class="flex justify-between h-3">
 | 
			
		||||
          <div class="h-3 flex justify-between">
 | 
			
		||||
            <span>{{ t('workplace.project') }}</span>
 | 
			
		||||
            <el-link type="primary" :underline="false">{{ t('action.more') }}</el-link>
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -80,7 +80,7 @@
 | 
			
		||||
                  <span class="text-16px">{{ item.name }}</span>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="mt-15px text-14px text-gray-400">{{ t(item.message) }}</div>
 | 
			
		||||
                <div class="mt-20px text-12px text-gray-400 flex justify-between">
 | 
			
		||||
                <div class="mt-20px flex justify-between text-12px text-gray-400">
 | 
			
		||||
                  <span>{{ item.personal }}</span>
 | 
			
		||||
                  <span>{{ formatTime(item.time, 'yyyy-MM-dd') }}</span>
 | 
			
		||||
                </div>
 | 
			
		||||
@@ -114,7 +114,7 @@
 | 
			
		||||
    <el-col :xl="8" :lg="8" :md="24" :sm="24" :xs="24" class="mb-10px">
 | 
			
		||||
      <el-card shadow="never">
 | 
			
		||||
        <template #header>
 | 
			
		||||
          <div class="flex justify-between h-3">
 | 
			
		||||
          <div class="h-3 flex justify-between">
 | 
			
		||||
            <span>{{ t('workplace.shortcutOperation') }}</span>
 | 
			
		||||
          </div>
 | 
			
		||||
        </template>
 | 
			
		||||
@@ -133,7 +133,7 @@
 | 
			
		||||
      </el-card>
 | 
			
		||||
      <el-card shadow="never" class="mt-10px">
 | 
			
		||||
        <template #header>
 | 
			
		||||
          <div class="flex justify-between h-3">
 | 
			
		||||
          <div class="h-3 flex justify-between">
 | 
			
		||||
            <span>{{ t('workplace.notice') }}</span>
 | 
			
		||||
            <el-link type="primary" :underline="false">{{ t('action.more') }}</el-link>
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -141,7 +141,7 @@
 | 
			
		||||
        <el-skeleton :loading="loading" animated>
 | 
			
		||||
          <div v-for="(item, index) in notice" :key="`dynamics-${index}`">
 | 
			
		||||
            <div class="flex items-center">
 | 
			
		||||
              <img :src="avatar" alt="" class="w-35px h-35px rounded-[50%] mr-20px" />
 | 
			
		||||
              <img :src="avatar" alt="" class="mr-20px h-35px w-35px rounded-[50%]" />
 | 
			
		||||
              <div>
 | 
			
		||||
                <div class="text-14px">
 | 
			
		||||
                  <Highlight :keys="item.keys.map((v) => t(v))">
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,7 @@
 | 
			
		||||
                  :duration="2600"
 | 
			
		||||
                  :end-val="102400"
 | 
			
		||||
                  :start-val="0"
 | 
			
		||||
                  class="text-20px font-700 text-right"
 | 
			
		||||
                  class="text-right text-20px font-700"
 | 
			
		||||
                />
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
@@ -49,7 +49,7 @@
 | 
			
		||||
                  :duration="2600"
 | 
			
		||||
                  :end-val="81212"
 | 
			
		||||
                  :start-val="0"
 | 
			
		||||
                  class="text-20px font-700 text-right"
 | 
			
		||||
                  class="text-right text-20px font-700"
 | 
			
		||||
                />
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
@@ -78,7 +78,7 @@
 | 
			
		||||
                  :duration="2600"
 | 
			
		||||
                  :end-val="9280"
 | 
			
		||||
                  :start-val="0"
 | 
			
		||||
                  class="text-20px font-700 text-right"
 | 
			
		||||
                  class="text-right text-20px font-700"
 | 
			
		||||
                />
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
@@ -107,7 +107,7 @@
 | 
			
		||||
                  :duration="2600"
 | 
			
		||||
                  :end-val="13600"
 | 
			
		||||
                  :start-val="0"
 | 
			
		||||
                  class="text-20px font-700 text-right"
 | 
			
		||||
                  class="text-right text-20px font-700"
 | 
			
		||||
                />
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,19 +1,19 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    :class="prefixCls"
 | 
			
		||||
    class="h-[100%] relative lt-xl:bg-[var(--login-bg-color)] lt-sm:px-10px lt-xl:px-10px lt-md:px-10px"
 | 
			
		||||
    class="relative h-[100%] lt-xl:bg-[var(--login-bg-color)] lt-md:px-10px lt-sm:px-10px lt-xl:px-10px"
 | 
			
		||||
  >
 | 
			
		||||
    <div class="relative h-full flex mx-auto">
 | 
			
		||||
    <div class="relative mx-auto h-full flex">
 | 
			
		||||
      <div
 | 
			
		||||
        :class="`${prefixCls}__left flex-1 bg-gray-500 bg-opacity-20 relative p-30px lt-xl:hidden`"
 | 
			
		||||
      >
 | 
			
		||||
        <!-- 左上角的 logo + 系统标题 -->
 | 
			
		||||
        <div class="flex items-center relative text-white">
 | 
			
		||||
          <img alt="" class="w-48px h-48px mr-10px" src="@/assets/imgs/logo.png" />
 | 
			
		||||
        <div class="relative flex items-center text-white">
 | 
			
		||||
          <img alt="" class="mr-10px h-48px w-48px" src="@/assets/imgs/logo.png" />
 | 
			
		||||
          <span class="text-20px font-bold">{{ underlineToHump(appStore.getTitle) }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <!-- 左边的背景图 + 欢迎语 -->
 | 
			
		||||
        <div class="flex justify-center items-center h-[calc(100%-60px)]">
 | 
			
		||||
        <div class="h-[calc(100%-60px)] flex items-center justify-center">
 | 
			
		||||
          <TransitionGroup
 | 
			
		||||
            appear
 | 
			
		||||
            enter-active-class="animate__animated animate__bounceInLeft"
 | 
			
		||||
@@ -21,41 +21,41 @@
 | 
			
		||||
          >
 | 
			
		||||
            <img key="1" alt="" class="w-350px" src="@/assets/svgs/login-box-bg.svg" />
 | 
			
		||||
            <div key="2" class="text-3xl text-white">{{ t('login.welcome') }}</div>
 | 
			
		||||
            <div key="3" class="mt-5 font-normal text-white text-14px">
 | 
			
		||||
            <div key="3" class="mt-5 text-14px font-normal text-white">
 | 
			
		||||
              {{ t('login.message') }}
 | 
			
		||||
            </div>
 | 
			
		||||
          </TransitionGroup>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="flex-1 p-30px lt-sm:p-10px dark:bg-[var(--login-bg-color)] relative">
 | 
			
		||||
      <div class="relative flex-1 p-30px dark:bg-[var(--login-bg-color)] lt-sm:p-10px">
 | 
			
		||||
        <!-- 右上角的主题、语言选择 -->
 | 
			
		||||
        <div
 | 
			
		||||
          class="flex justify-between items-center text-white at-2xl:justify-end at-xl:justify-end"
 | 
			
		||||
          class="flex items-center justify-between text-white at-2xl:justify-end at-xl:justify-end"
 | 
			
		||||
        >
 | 
			
		||||
          <div class="flex items-center at-2xl:hidden at-xl:hidden">
 | 
			
		||||
            <img alt="" class="w-48px h-48px mr-10px" src="@/assets/imgs/logo.png" />
 | 
			
		||||
            <img alt="" class="mr-10px h-48px w-48px" src="@/assets/imgs/logo.png" />
 | 
			
		||||
            <span class="text-20px font-bold">{{ underlineToHump(appStore.getTitle) }}</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="flex justify-end items-center space-x-10px">
 | 
			
		||||
          <div class="flex items-center justify-end space-x-10px">
 | 
			
		||||
            <ThemeSwitch />
 | 
			
		||||
            <LocaleDropdown class="lt-xl:text-white dark:text-white" />
 | 
			
		||||
            <LocaleDropdown class="dark:text-white lt-xl:text-white" />
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <!-- 右边的登录界面 -->
 | 
			
		||||
        <Transition appear enter-active-class="animate__animated animate__bounceInRight">
 | 
			
		||||
          <div
 | 
			
		||||
            class="h-full flex items-center m-auto w-[100%] at-2xl:max-w-500px at-xl:max-w-500px at-md:max-w-500px at-lg:max-w-500px"
 | 
			
		||||
            class="m-auto h-full w-[100%] flex items-center at-2xl:max-w-500px at-lg:max-w-500px at-md:max-w-500px at-xl:max-w-500px"
 | 
			
		||||
          >
 | 
			
		||||
            <!-- 账号登录 -->
 | 
			
		||||
            <LoginForm class="p-20px h-auto m-auto lt-xl:(rounded-3xl light:bg-white)" />
 | 
			
		||||
            <LoginForm class="m-auto h-auto p-20px lt-xl:(rounded-3xl light:bg-white)" />
 | 
			
		||||
            <!-- 手机登录 -->
 | 
			
		||||
            <MobileForm class="p-20px h-auto m-auto lt-xl:(rounded-3xl light:bg-white)" />
 | 
			
		||||
            <MobileForm class="m-auto h-auto p-20px lt-xl:(rounded-3xl light:bg-white)" />
 | 
			
		||||
            <!-- 二维码登录 -->
 | 
			
		||||
            <QrCodeForm class="p-20px h-auto m-auto lt-xl:(rounded-3xl light:bg-white)" />
 | 
			
		||||
            <QrCodeForm class="m-auto h-auto p-20px lt-xl:(rounded-3xl light:bg-white)" />
 | 
			
		||||
            <!-- 注册 -->
 | 
			
		||||
            <RegisterForm class="p-20px h-auto m-auto lt-xl:(rounded-3xl light:bg-white)" />
 | 
			
		||||
            <RegisterForm class="m-auto h-auto p-20px lt-xl:(rounded-3xl light:bg-white)" />
 | 
			
		||||
            <!-- 三方登录 -->
 | 
			
		||||
            <SSOLoginVue class="p-20px h-auto m-auto lt-xl:(rounded-3xl light:bg-white)" />
 | 
			
		||||
            <SSOLoginVue class="m-auto h-auto p-20px lt-xl:(rounded-3xl light:bg-white)" />
 | 
			
		||||
          </div>
 | 
			
		||||
        </Transition>
 | 
			
		||||
      </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -112,13 +112,13 @@
 | 
			
		||||
      <el-divider content-position="center">{{ t('login.otherLogin') }}</el-divider>
 | 
			
		||||
      <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
 | 
			
		||||
        <el-form-item>
 | 
			
		||||
          <div class="flex justify-between w-[100%]">
 | 
			
		||||
          <div class="w-[100%] flex justify-between">
 | 
			
		||||
            <Icon
 | 
			
		||||
              v-for="(item, key) in socialList"
 | 
			
		||||
              :key="key"
 | 
			
		||||
              :icon="item.icon"
 | 
			
		||||
              :size="30"
 | 
			
		||||
              class="cursor-pointer anticon"
 | 
			
		||||
              class="anticon cursor-pointer"
 | 
			
		||||
              color="#999"
 | 
			
		||||
              @click="doSocialLogin(item.type)"
 | 
			
		||||
            />
 | 
			
		||||
@@ -128,7 +128,7 @@
 | 
			
		||||
      <el-divider content-position="center">萌新必读</el-divider>
 | 
			
		||||
      <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
 | 
			
		||||
        <el-form-item>
 | 
			
		||||
          <div class="flex justify-between w-[100%]">
 | 
			
		||||
          <div class="w-[100%] flex justify-between">
 | 
			
		||||
            <el-link href="https://doc.iocoder.cn/" target="_blank">📚开发指南</el-link>
 | 
			
		||||
            <el-link href="https://doc.iocoder.cn/video/" target="_blank">🔥视频教程</el-link>
 | 
			
		||||
            <el-link href="https://www.iocoder.cn/Interview/good-collection/" target="_blank">
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <h2 class="mb-3 text-2xl font-bold text-center xl:text-3xl enter-x xl:text-center">
 | 
			
		||||
  <h2 class="enter-x mb-3 text-center text-2xl font-bold xl:text-center xl:text-3xl">
 | 
			
		||||
    {{ getFormTitle }}
 | 
			
		||||
  </h2>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
    </el-col>
 | 
			
		||||
    <el-divider class="enter-x">{{ t('login.qrcode') }}</el-divider>
 | 
			
		||||
    <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
 | 
			
		||||
      <div class="w-[100%] mt-15px">
 | 
			
		||||
      <div class="mt-15px w-[100%]">
 | 
			
		||||
        <XButton :title="t('login.backLogin')" class="w-[100%]" @click="handleBackLogin()" />
 | 
			
		||||
      </div>
 | 
			
		||||
    </el-col>
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@
 | 
			
		||||
          @click="loginRegister()"
 | 
			
		||||
        />
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="w-[100%] mt-15px">
 | 
			
		||||
      <div class="mt-15px w-[100%]">
 | 
			
		||||
        <XButton :title="t('login.hasUser')" class="w-[100%]" @click="handleBackLogin()" />
 | 
			
		||||
      </div>
 | 
			
		||||
    </template>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="flex">
 | 
			
		||||
    <el-card class="w-1/3 user" shadow="hover">
 | 
			
		||||
    <el-card class="user w-1/3" shadow="hover">
 | 
			
		||||
      <template #header>
 | 
			
		||||
        <div class="card-header">
 | 
			
		||||
          <span>{{ t('profile.user.title') }}</span>
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
      </template>
 | 
			
		||||
      <ProfileUser />
 | 
			
		||||
    </el-card>
 | 
			
		||||
    <el-card class="w-2/3 user ml-3" shadow="hover">
 | 
			
		||||
    <el-card class="user ml-3 w-2/3" shadow="hover">
 | 
			
		||||
      <template #header>
 | 
			
		||||
        <div class="card-header">
 | 
			
		||||
          <span>{{ t('profile.info.title') }}</span>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
  <ContentWrap>
 | 
			
		||||
    <el-row>
 | 
			
		||||
      <el-col>
 | 
			
		||||
        <div class="mb-2 float-right">
 | 
			
		||||
        <div class="float-right mb-2">
 | 
			
		||||
          <el-button size="small" type="primary" @click="showJson">生成 JSON</el-button>
 | 
			
		||||
          <el-button size="small" type="success" @click="showOption">生成 Options</el-button>
 | 
			
		||||
          <el-button size="small" type="danger" @click="showTemplate">生成组件</el-button>
 | 
			
		||||
 
 | 
			
		||||
@@ -20,8 +20,8 @@
 | 
			
		||||
            ref="treeRef"
 | 
			
		||||
            :data="preview.fileTree"
 | 
			
		||||
            :expand-on-click-node="false"
 | 
			
		||||
            default-expand-all
 | 
			
		||||
            highlight-current
 | 
			
		||||
            default-expand-all
 | 
			
		||||
            node-key="id"
 | 
			
		||||
            @node-click="handleNodeClick"
 | 
			
		||||
          />
 | 
			
		||||
@@ -31,7 +31,7 @@
 | 
			
		||||
      <el-card
 | 
			
		||||
        v-loading="loading"
 | 
			
		||||
        :gutter="12"
 | 
			
		||||
        class="w-2/3 ml-3"
 | 
			
		||||
        class="ml-3 w-2/3"
 | 
			
		||||
        element-loading-text="加载代码中..."
 | 
			
		||||
        shadow="hover"
 | 
			
		||||
      >
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
        </div>
 | 
			
		||||
      </template>
 | 
			
		||||
      <div class="flex items-center">
 | 
			
		||||
        <span class="text-lg font-medium mr-4"> 连接状态: </span>
 | 
			
		||||
        <span class="mr-4 text-lg font-medium"> 连接状态: </span>
 | 
			
		||||
        <el-tag :color="getTagColor">{{ status }}</el-tag>
 | 
			
		||||
      </div>
 | 
			
		||||
      <hr class="my-4" />
 | 
			
		||||
@@ -20,7 +20,7 @@
 | 
			
		||||
          {{ getIsOpen ? '关闭连接' : '开启连接' }}
 | 
			
		||||
        </el-button>
 | 
			
		||||
      </div>
 | 
			
		||||
      <p class="text-lg font-medium mt-4">设置</p>
 | 
			
		||||
      <p class="mt-4 text-lg font-medium">设置</p>
 | 
			
		||||
      <hr class="my-4" />
 | 
			
		||||
      <el-input
 | 
			
		||||
        v-model="sendValue"
 | 
			
		||||
@@ -43,7 +43,7 @@
 | 
			
		||||
        <ul>
 | 
			
		||||
          <li v-for="item in getList" :key="item.time" class="mt-2">
 | 
			
		||||
            <div class="flex items-center">
 | 
			
		||||
              <span class="mr-2 text-primary font-medium">收到消息:</span>
 | 
			
		||||
              <span class="text-primary mr-2 font-medium">收到消息:</span>
 | 
			
		||||
              <span>{{ formatDate(item.time) }}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div>
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
      v-loading="formLoading"
 | 
			
		||||
    >
 | 
			
		||||
      <el-form-item label="商品" prop="spuId">
 | 
			
		||||
        <div @click="handleSelectSpu" class="w-60px h-60px">
 | 
			
		||||
        <div @click="handleSelectSpu" class="h-60px w-60px">
 | 
			
		||||
          <div v-if="spuData && spuData.picUrl">
 | 
			
		||||
            <el-image :src="spuData.picUrl" />
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
        </div>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item label="商品规格" prop="skuId" v-if="formData.spuId">
 | 
			
		||||
        <div @click="handleSelectSku" class="w-60px h-60px">
 | 
			
		||||
        <div @click="handleSelectSku" class="h-60px w-60px">
 | 
			
		||||
          <div v-if="skuData && skuData.picUrl">
 | 
			
		||||
            <el-image :src="skuData.picUrl" />
 | 
			
		||||
          </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -63,12 +63,12 @@
 | 
			
		||||
      <el-table-column label="用户名称" align="center" prop="userNickname" width="80" />
 | 
			
		||||
      <el-table-column label="商品信息" align="center" min-width="300">
 | 
			
		||||
        <template #default="scope">
 | 
			
		||||
          <div class="flex row items-center gap-x-4px">
 | 
			
		||||
          <div class="row flex items-center gap-x-4px">
 | 
			
		||||
            <el-image
 | 
			
		||||
              v-if="scope.row.skuPicUrl"
 | 
			
		||||
              :src="scope.row.skuPicUrl"
 | 
			
		||||
              :preview-src-list="[scope.row.skuPicUrl]"
 | 
			
		||||
              class="w-40px h-40px shrink-0"
 | 
			
		||||
              class="h-40px w-40px shrink-0"
 | 
			
		||||
              preview-teleported
 | 
			
		||||
            />
 | 
			
		||||
            <div>{{ scope.row.spuName }}</div>
 | 
			
		||||
@@ -95,7 +95,7 @@
 | 
			
		||||
              :src="picUrl"
 | 
			
		||||
              :preview-src-list="scope.row.picUrls"
 | 
			
		||||
              :initial-index="index"
 | 
			
		||||
              class="w-40px h-40px"
 | 
			
		||||
              class="h-40px w-40px"
 | 
			
		||||
              preview-teleported
 | 
			
		||||
            />
 | 
			
		||||
          </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -124,7 +124,7 @@
 | 
			
		||||
    <el-table-column v-if="isComponent" type="selection" width="45" />
 | 
			
		||||
    <el-table-column align="center" label="图片" min-width="80">
 | 
			
		||||
      <template #default="{ row }">
 | 
			
		||||
        <el-image :src="row.picUrl" class="w-60px h-60px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
        <el-image :src="row.picUrl" class="h-60px w-60px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
      </template>
 | 
			
		||||
    </el-table-column>
 | 
			
		||||
    <template v-if="formData!.specType && !isBatch">
 | 
			
		||||
@@ -204,7 +204,7 @@
 | 
			
		||||
    <el-table-column v-if="isComponent" type="selection" width="45" />
 | 
			
		||||
    <el-table-column align="center" label="图片" min-width="80">
 | 
			
		||||
      <template #default="{ row }">
 | 
			
		||||
        <el-image :src="row.picUrl" class="w-60px h-60px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
        <el-image :src="row.picUrl" class="h-60px w-60px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
      </template>
 | 
			
		||||
    </el-table-column>
 | 
			
		||||
    <template v-if="formData!.specType">
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
        <template #default="{ row }">
 | 
			
		||||
          <el-image
 | 
			
		||||
            :src="row.picUrl"
 | 
			
		||||
            class="w-30px h-30px"
 | 
			
		||||
            class="h-30px w-30px"
 | 
			
		||||
            :preview-src-list="[row.picUrl]"
 | 
			
		||||
            preview-teleported
 | 
			
		||||
          />
 | 
			
		||||
 
 | 
			
		||||
@@ -73,7 +73,7 @@
 | 
			
		||||
          <template #default="{ row }">
 | 
			
		||||
            <el-image
 | 
			
		||||
              :src="row.picUrl"
 | 
			
		||||
              class="w-30px h-30px"
 | 
			
		||||
              class="h-30px w-30px"
 | 
			
		||||
              :preview-src-list="[row.picUrl]"
 | 
			
		||||
              preview-teleported
 | 
			
		||||
            />
 | 
			
		||||
 
 | 
			
		||||
@@ -117,7 +117,7 @@
 | 
			
		||||
          />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item v-if="formData.specType" label="商品属性">
 | 
			
		||||
          <el-button class="mr-15px mb-10px" @click="attributesAddFormRef.open">添加规格</el-button>
 | 
			
		||||
          <el-button class="mb-10px mr-15px" @click="attributesAddFormRef.open">添加规格</el-button>
 | 
			
		||||
          <ProductAttributes :propertyList="propertyList" @success="generateSkus" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <template v-if="formData.specType && propertyList.length > 0">
 | 
			
		||||
@@ -153,14 +153,14 @@
 | 
			
		||||
      {{ row.subCommissionType ? '自行设置' : '默认设置' }}
 | 
			
		||||
    </template>
 | 
			
		||||
    <template #picUrl="{ row }">
 | 
			
		||||
      <el-image :src="row.picUrl" class="w-60px h-60px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
      <el-image :src="row.picUrl" class="h-60px w-60px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
    </template>
 | 
			
		||||
    <template #sliderPicUrls="{ row }">
 | 
			
		||||
      <el-image
 | 
			
		||||
        v-for="(item, index) in row.sliderPicUrls"
 | 
			
		||||
        :key="index"
 | 
			
		||||
        :src="item.url"
 | 
			
		||||
        class="w-60px h-60px mr-10px"
 | 
			
		||||
        class="mr-10px h-60px w-60px"
 | 
			
		||||
        @click="imagePreview(row.sliderPicUrls)"
 | 
			
		||||
      />
 | 
			
		||||
    </template>
 | 
			
		||||
 
 | 
			
		||||
@@ -125,7 +125,7 @@
 | 
			
		||||
      <el-table-column key="id" align="center" label="商品编号" prop="id" />
 | 
			
		||||
      <el-table-column label="商品图" min-width="80">
 | 
			
		||||
        <template #default="{ row }">
 | 
			
		||||
          <el-image :src="row.picUrl" class="w-30px h-30px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
          <el-image :src="row.picUrl" class="h-30px w-30px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column :show-overflow-tooltip="true" label="商品名称" min-width="300" prop="name" />
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
      <template #spuId="{ row }">
 | 
			
		||||
        <el-image
 | 
			
		||||
          :src="row.picUrl"
 | 
			
		||||
          class="w-30px h-30px align-middle mr-5px"
 | 
			
		||||
          class="mr-5px h-30px w-30px align-middle"
 | 
			
		||||
          @click="imagePreview(row.picUrl)"
 | 
			
		||||
        />
 | 
			
		||||
        <span class="align-middle">{{ row.spuName }}</span>
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@
 | 
			
		||||
      <template #spuId="{ row }">
 | 
			
		||||
        <el-image
 | 
			
		||||
          :src="row.picUrl"
 | 
			
		||||
          class="w-30px h-30px align-middle mr-5px"
 | 
			
		||||
          class="mr-5px h-30px w-30px align-middle"
 | 
			
		||||
          @click="imagePreview(row.picUrl)"
 | 
			
		||||
        />
 | 
			
		||||
        <span class="align-middle">{{ row.spuName }}</span>
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
    <el-table-column key="id" align="center" label="商品编号" prop="id" />
 | 
			
		||||
    <el-table-column label="商品图" min-width="80">
 | 
			
		||||
      <template #default="{ row }">
 | 
			
		||||
        <el-image :src="row.picUrl" class="w-30px h-30px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
        <el-image :src="row.picUrl" class="h-30px w-30px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
      </template>
 | 
			
		||||
    </el-table-column>
 | 
			
		||||
    <el-table-column :show-overflow-tooltip="true" label="商品名称" min-width="300" prop="name" />
 | 
			
		||||
 
 | 
			
		||||
@@ -70,7 +70,7 @@
 | 
			
		||||
        <el-table-column key="id" align="center" label="商品编号" prop="id" />
 | 
			
		||||
        <el-table-column label="商品图" min-width="80">
 | 
			
		||||
          <template #default="{ row }">
 | 
			
		||||
            <el-image :src="row.picUrl" class="w-30px h-30px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
            <el-image :src="row.picUrl" class="h-30px w-30px" @click="imagePreview(row.picUrl)" />
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,7 @@
 | 
			
		||||
        v-if="formData.productScope === PromotionProductScopeEnum.SPU.scope"
 | 
			
		||||
        prop="productSpuIds"
 | 
			
		||||
      >
 | 
			
		||||
        <div class="flex items-center gap-1 flex-wrap">
 | 
			
		||||
        <div class="flex flex-wrap items-center gap-1">
 | 
			
		||||
          <div class="select-box spu-pic" v-for="(spu, index) in productSpus" :key="spu.id">
 | 
			
		||||
            <el-image :src="spu.picUrl" />
 | 
			
		||||
            <Icon icon="ep:circle-close-filled" class="del-icon" @click="handleRemoveSpu(index)" />
 | 
			
		||||
@@ -62,7 +62,7 @@
 | 
			
		||||
        <el-input-number
 | 
			
		||||
          v-model="formData.discountPrice"
 | 
			
		||||
          placeholder="请输入优惠金额,单位:元"
 | 
			
		||||
          class="!w-400px mr-2"
 | 
			
		||||
          class="mr-2 !w-400px"
 | 
			
		||||
          :precision="2"
 | 
			
		||||
          :min="0"
 | 
			
		||||
        />
 | 
			
		||||
@@ -76,7 +76,7 @@
 | 
			
		||||
        <el-input-number
 | 
			
		||||
          v-model="formData.discountPercent"
 | 
			
		||||
          placeholder="优惠券折扣不能小于 1 折,且不可大于 9.9 折"
 | 
			
		||||
          class="!w-400px mr-2"
 | 
			
		||||
          class="mr-2 !w-400px"
 | 
			
		||||
          :precision="1"
 | 
			
		||||
          :min="1"
 | 
			
		||||
          :max="9.9"
 | 
			
		||||
@@ -91,7 +91,7 @@
 | 
			
		||||
        <el-input-number
 | 
			
		||||
          v-model="formData.discountLimitPrice"
 | 
			
		||||
          placeholder="请输入最多优惠"
 | 
			
		||||
          class="!w-400px mr-2"
 | 
			
		||||
          class="mr-2 !w-400px"
 | 
			
		||||
          :precision="2"
 | 
			
		||||
          :min="0"
 | 
			
		||||
        />
 | 
			
		||||
@@ -101,7 +101,7 @@
 | 
			
		||||
        <el-input-number
 | 
			
		||||
          v-model="formData.usePrice"
 | 
			
		||||
          placeholder="无门槛请设为 0"
 | 
			
		||||
          class="!w-400px mr-2"
 | 
			
		||||
          class="mr-2 !w-400px"
 | 
			
		||||
          :precision="2"
 | 
			
		||||
          :min="0"
 | 
			
		||||
        />
 | 
			
		||||
@@ -117,7 +117,7 @@
 | 
			
		||||
        <el-input-number
 | 
			
		||||
          v-model="formData.totalCount"
 | 
			
		||||
          placeholder="发放数量,没有之后不能领取或发放,-1 为不限制"
 | 
			
		||||
          class="!w-400px mr-2"
 | 
			
		||||
          class="mr-2 !w-400px"
 | 
			
		||||
          :precision="0"
 | 
			
		||||
          :min="-1"
 | 
			
		||||
        />
 | 
			
		||||
@@ -127,7 +127,7 @@
 | 
			
		||||
        <el-input-number
 | 
			
		||||
          v-model="formData.takeLimitCount"
 | 
			
		||||
          placeholder="设置为 -1 时,可无限领取"
 | 
			
		||||
          class="!w-400px mr-2"
 | 
			
		||||
          class="mr-2 !w-400px"
 | 
			
		||||
          :precision="0"
 | 
			
		||||
          :min="-1"
 | 
			
		||||
        />
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@
 | 
			
		||||
      <template #spuId="{ row }">
 | 
			
		||||
        <el-image
 | 
			
		||||
          :src="row.picUrl"
 | 
			
		||||
          class="w-30px h-30px align-middle mr-5px"
 | 
			
		||||
          class="mr-5px h-30px w-30px align-middle"
 | 
			
		||||
          @click="imagePreview(row.picUrl)"
 | 
			
		||||
        />
 | 
			
		||||
        <span class="align-middle">{{ row.spuName }}</span>
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@
 | 
			
		||||
          v-for="(item, index) in row.sliderPicUrls"
 | 
			
		||||
          :key="index"
 | 
			
		||||
          :src="item"
 | 
			
		||||
          class="w-60px h-60px mr-10px"
 | 
			
		||||
          class="mr-10px h-60px w-60px"
 | 
			
		||||
          @click="imagePreview(row.sliderPicUrls)"
 | 
			
		||||
        />
 | 
			
		||||
      </template>
 | 
			
		||||
 
 | 
			
		||||
@@ -57,7 +57,7 @@
 | 
			
		||||
          v-for="(item, index) in formData.applyPicUrls"
 | 
			
		||||
          :key="index"
 | 
			
		||||
          :src="item.url"
 | 
			
		||||
          class="w-60px h-60px mr-10px"
 | 
			
		||||
          class="mr-10px h-60px w-60px"
 | 
			
		||||
          @click="imagePreview(formData.applyPicUrls)"
 | 
			
		||||
        />
 | 
			
		||||
      </el-descriptions-item>
 | 
			
		||||
 
 | 
			
		||||
@@ -123,7 +123,7 @@
 | 
			
		||||
          <div class="flex items-center">
 | 
			
		||||
            <el-image
 | 
			
		||||
              :src="row.picUrl"
 | 
			
		||||
              class="w-30px h-30px mr-10px"
 | 
			
		||||
              class="mr-10px h-30px w-30px"
 | 
			
		||||
              @click="imagePreview(row.picUrl)"
 | 
			
		||||
            />
 | 
			
		||||
            <span class="mr-10px">{{ row.spuName }}</span>
 | 
			
		||||
 
 | 
			
		||||
@@ -28,13 +28,13 @@
 | 
			
		||||
              <!--   区域数据太多,用赖加载方式,要不然性能有问题 -->
 | 
			
		||||
              <el-tree-select
 | 
			
		||||
                v-model="row.areaIds"
 | 
			
		||||
                lazy
 | 
			
		||||
                :load="loadChargeArea"
 | 
			
		||||
                :props="defaultProps"
 | 
			
		||||
                multiple
 | 
			
		||||
                node-key="id"
 | 
			
		||||
                multiple
 | 
			
		||||
                check-strictly
 | 
			
		||||
                show-checkbox
 | 
			
		||||
                lazy
 | 
			
		||||
                check-on-click-node
 | 
			
		||||
                :render-after-expand="false"
 | 
			
		||||
                :cache-data="areaCache"
 | 
			
		||||
 
 | 
			
		||||
@@ -192,7 +192,7 @@
 | 
			
		||||
                <div class="flex items-center">
 | 
			
		||||
                  <el-image
 | 
			
		||||
                    :src="row.picUrl"
 | 
			
		||||
                    class="w-30px h-30px mr-10px"
 | 
			
		||||
                    class="mr-10px h-30px w-30px"
 | 
			
		||||
                    @click="imagePreview(row.picUrl)"
 | 
			
		||||
                  />
 | 
			
		||||
                  <span class="mr-10px">{{ row.spuName }}</span>
 | 
			
		||||
@@ -266,7 +266,7 @@
 | 
			
		||||
            <el-table-column align="center" fixed="right" label="操作" width="160">
 | 
			
		||||
              <template #default>
 | 
			
		||||
                <!-- TODO 权限后续补齐 -->
 | 
			
		||||
                <div class="flex justify-center items-center">
 | 
			
		||||
                <div class="flex items-center justify-center">
 | 
			
		||||
                  <el-button link type="primary" @click="openForm(scope.row.id)">
 | 
			
		||||
                    <Icon icon="ep:notification" />
 | 
			
		||||
                    详情
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@
 | 
			
		||||
        <template #default="scope">
 | 
			
		||||
          <el-image
 | 
			
		||||
            :src="scope.row.icon"
 | 
			
		||||
            class="w-30px h-30px"
 | 
			
		||||
            class="h-30px w-30px"
 | 
			
		||||
            :preview-src-list="[scope.row.icon]"
 | 
			
		||||
          />
 | 
			
		||||
        </template>
 | 
			
		||||
@@ -54,7 +54,7 @@
 | 
			
		||||
        <template #default="scope">
 | 
			
		||||
          <el-image
 | 
			
		||||
            :src="scope.row.backgroundUrl"
 | 
			
		||||
            class="w-30px h-30px"
 | 
			
		||||
            class="h-30px w-30px"
 | 
			
		||||
            :preview-src-list="[scope.row.backgroundUrl]"
 | 
			
		||||
          />
 | 
			
		||||
        </template>
 | 
			
		||||
 
 | 
			
		||||
@@ -26,8 +26,8 @@
 | 
			
		||||
        :src="props.url"
 | 
			
		||||
        poster=""
 | 
			
		||||
        crossorigin="anonymous"
 | 
			
		||||
        playsinline
 | 
			
		||||
        controls
 | 
			
		||||
        playsinline
 | 
			
		||||
        :volume="0.6"
 | 
			
		||||
        :width="800"
 | 
			
		||||
        :playback-rates="[0.7, 1.0, 1.5, 2.0]"
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,7 @@
 | 
			
		||||
            @end="onChildDragEnd"
 | 
			
		||||
          >
 | 
			
		||||
            <template #item="{ element: child, index: y }">
 | 
			
		||||
              <div class="subtitle menu_bottom">
 | 
			
		||||
              <div class="menu_bottom subtitle">
 | 
			
		||||
                <div
 | 
			
		||||
                  class="menu_subItem"
 | 
			
		||||
                  v-if="parent.children"
 | 
			
		||||
 
 | 
			
		||||
@@ -10,13 +10,13 @@
 | 
			
		||||
  </ContentWrap>
 | 
			
		||||
 | 
			
		||||
  <ContentWrap>
 | 
			
		||||
    <div class="public-account-management clearfix" v-loading="loading">
 | 
			
		||||
    <div class="clearfix public-account-management" v-loading="loading">
 | 
			
		||||
      <!--左边配置菜单-->
 | 
			
		||||
      <div class="left">
 | 
			
		||||
        <div class="weixin-hd">
 | 
			
		||||
          <div class="weixin-title">{{ accountName }}</div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="weixin-menu clearfix">
 | 
			
		||||
        <div class="clearfix weixin-menu">
 | 
			
		||||
          <MenuPreviewer
 | 
			
		||||
            v-model="menuList"
 | 
			
		||||
            :account-id="accountId"
 | 
			
		||||
 
 | 
			
		||||
@@ -58,9 +58,9 @@
 | 
			
		||||
      <el-form-item label="授权范围" prop="scopes">
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="formData.scopes"
 | 
			
		||||
          allow-create
 | 
			
		||||
          filterable
 | 
			
		||||
          multiple
 | 
			
		||||
          allow-create
 | 
			
		||||
          placeholder="请输入授权范围"
 | 
			
		||||
          style="width: 500px"
 | 
			
		||||
        >
 | 
			
		||||
 
 | 
			
		||||
@@ -136,7 +136,7 @@
 | 
			
		||||
          />
 | 
			
		||||
          <el-table-column label="操作" align="center" width="160">
 | 
			
		||||
            <template #default="scope">
 | 
			
		||||
              <div class="flex justify-center items-center">
 | 
			
		||||
              <div class="flex items-center justify-center">
 | 
			
		||||
                <el-button
 | 
			
		||||
                  type="primary"
 | 
			
		||||
                  link
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user