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