Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop

This commit is contained in:
TinyAnts
2022-09-13 11:15:24 +08:00
172 changed files with 2126 additions and 1341 deletions

View File

@@ -7,5 +7,6 @@ export interface Link {
path: string
name?: string
type: string
params?: Record<string, any>
isTab: boolean
query?: Record<string, any>
}

View File

@@ -4,7 +4,10 @@
<div
class="link-item border border-br px-5 py-[5px] rounded-[3px] cursor-pointer mr-[10px] mb-[10px]"
v-for="(item, index) in linkList"
:class="{ 'border-primary text-primary': modelValue.path == item.path }"
:class="{
'border-primary text-primary':
modelValue.path == item.path && modelValue.name == item.name
}"
:key="index"
@click="handleSelect(item)"
>
@@ -32,16 +35,65 @@ const linkList = ref([
{
path: '/pages/index/index',
name: '商城首页',
type: LinkTypeEnum.SHOP_PAGES
type: LinkTypeEnum.SHOP_PAGES,
isTab: true
},
{
path: '/pages/news/news',
name: '文章资讯',
type: LinkTypeEnum.SHOP_PAGES
type: LinkTypeEnum.SHOP_PAGES,
isTab: true
},
{
path: '/pages/user/user',
name: '个人中心',
type: LinkTypeEnum.SHOP_PAGES,
isTab: true
},
{
path: '/pages/collection/collection',
name: '我的收藏',
type: LinkTypeEnum.SHOP_PAGES
},
{
path: '/pages/customer_service/customer_service',
name: '联系客服',
type: LinkTypeEnum.SHOP_PAGES
},
{
path: '/pages/user_set/user_set',
name: '个人设置',
type: LinkTypeEnum.SHOP_PAGES
},
{
path: '/pages/as_us/as_us',
name: '关于我们',
type: LinkTypeEnum.SHOP_PAGES
},
{
path: '/pages/user_data/user_data',
name: '个人资料',
type: LinkTypeEnum.SHOP_PAGES
},
{
path: '/pages/agreement/agreement',
name: '隐私政策',
query: {
type: 'privacy'
},
type: LinkTypeEnum.SHOP_PAGES
},
{
path: '/pages/agreement/agreement',
name: '服务协议',
query: {
type: 'service'
},
type: LinkTypeEnum.SHOP_PAGES
},
{
path: '/pages/search/search',
name: '搜索',
type: LinkTypeEnum.SHOP_PAGES
}
])

View File

@@ -16,7 +16,7 @@ export const addUnit = (value: string | number, unit = 'px') => {
* @return {Boolean}
*/
export const isEmpty = (value: unknown) => {
return value !== null && value !== '' && typeof value !== 'undefined'
return value == null && typeof value == 'undefined'
}
/**

View File

@@ -9,7 +9,7 @@
:key="index"
class="flex flex-col items-center w-1/4 mb-[15px]"
>
<image-contain width="26px" height="26px" :src="item.image" alt="" />
<image-contain width="26px" height="26px" :src="getImageUrl(item.image)" alt="" />
<div class="mt-[7px]">{{ item.name }}</div>
</div>
</div>

View File

@@ -4,7 +4,6 @@ import { useAppStore } from './stores/app'
import { useUserStore } from './stores/user'
const { getConfig } = useAppStore()
const { getUser } = useUserStore()
console.log(useUserStore())
onLaunch(() => {
getConfig()
getUser()

View File

@@ -2,7 +2,7 @@ import request from '@/utils/request'
/**
* @description 获取文章分类
* @return { Promise }
* @return { Promise }
*/
export function getArticleCate() {
return request.get({ url: '/article/category' })
@@ -10,7 +10,7 @@ export function getArticleCate() {
/**
* @description 获取文章列表
* @return { Promise }
* @return { Promise }
*/
export function getArticleList(data: Record<string, any>) {
return request.get({ url: '/article/list', data: data })
@@ -18,8 +18,8 @@ export function getArticleList(data: Record<string, any>) {
/**
* @description 获取文章详情
* @param { number } id
* @return { Promise }
* @param { number } id
* @return { Promise }
*/
export function getArticleDetail(data: { id: number }) {
return request.get({ url: '/article/detail', data: data })
@@ -27,25 +27,25 @@ export function getArticleDetail(data: { id: number }) {
/**
* @description 加入收藏
* @param { number } articleId
* @return { Promise }
* @param { number } articleId
* @return { Promise }
*/
export function addCollect(data: { articleId: number }) {
return request.post({ url: '/article/addCollect', data: data })
return request.post({ url: '/article/addCollect', data: data }, { isAuth: true })
}
/**
* @description 取消收藏
* @param { number } id
* @return { Promise }
* @param { number } id
* @return { Promise }
*/
export function cancelCollect(data: { articleId: number }) {
return request.post({ url: '/article/cancelCollect', data: data })
return request.post({ url: '/article/cancelCollect', data: data }, { isAuth: true })
}
/**
* @description 获取收藏列表
* @return { Promise }
* @return { Promise }
*/
export function getCollect() {
return request.get({ url: '/article/collect' })

View File

@@ -12,7 +12,7 @@ export function getDecorate(data: any) {
/**
* @description 热门搜索
* @return { Promise }
* @return { Promise }
*/
export function getHotSearch() {
return request.get({ url: '/hotSearch' })
@@ -21,8 +21,8 @@ export function getHotSearch() {
/**
* @description 搜索
* @param { string } keyword 关键词
* @return { Promise }
* @return { Promise }
*/
export function getSearch(data: { keyword: string, pageNo: number, pageSize: number }) {
export function getSearch(data: { keyword: string; pageNo: number; pageSize: number }) {
return request.get({ url: '/search', data })
}

View File

@@ -23,4 +23,6 @@ export function userBindMobile(data: any) {
export function userMnpMobile(data: any) {
return request.post({ url: '/user/mnpMobile', data: data })
}
export function userChangePwd(data: any) {
return request.post({ url: '/user/changePwd', data: data })
}

View File

@@ -1,57 +1,65 @@
<template>
<navigator :url="`/pages/news_detail/news_detail?id=${ newsId }`">
<view class="news-card flex bg-white px-[20rpx] py-[32rpx]">
<view class="mr-[20rpx]" v-if="item.image">
<u-image :src="item.image" width="240" height="180"></u-image>
</view>
<view class="news-card-content flex flex-col justify-between flex-1">
<view class="news-card-content-title text-lg font-medium">{{ item.title }}</view>
<view class="news-card-content-intro text-gray-400 text-sm mt-[16rpx] ">{{ item.intro }}</view>
<view class="text-muted text-xs w-full flex justify-between mt-[12rpx]">
<view>{{ item.createTime }}</view>
<view class="flex items-center">
<image src="/static/images/icon/icon_visit.png" class="w-[30rpx] h-[30rpx]"></image>
<view class="ml-[10rpx]">{{ item.visit }}</view>
</view>
</view>
</view>
</view>
</navigator>
<navigator :url="`/pages/news_detail/news_detail?id=${newsId}`">
<view class="news-card flex bg-white px-[20rpx] py-[32rpx]">
<view class="mr-[20rpx]" v-if="item.image">
<u-image :src="item.image" width="240" height="180"></u-image>
</view>
<view class="news-card-content flex flex-col justify-between flex-1">
<view class="news-card-content-title text-lg font-medium">{{ item.title }}</view>
<view class="news-card-content-intro text-gray-400 text-sm mt-[16rpx]">{{
item.intro
}}</view>
<view class="text-muted text-xs w-full flex justify-between mt-[12rpx]">
<view>{{ item.createTime }}</view>
<view class="flex items-center">
<image
src="/static/images/icon/icon_visit.png"
class="w-[30rpx] h-[30rpx]"
></image>
<view class="ml-[10rpx]">{{ item.visit }}</view>
</view>
</view>
</view>
</view>
</navigator>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
const props = withDefaults(defineProps < {
item: any,
newsId: number
} > (), {
item: {},
newsId: ''
})
import { ref } from 'vue'
const props = withDefaults(
defineProps<{
item: any
newsId: number
}>(),
{
item: {},
newsId: ''
}
)
</script>
<style lang="scss" scoped>
.news-card {
border-bottom: 1px solid #f8f8f8;
&-content {
&-title {
-webkit-line-clamp: 2;
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
}
&-intro {
-webkit-line-clamp: 1;
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
}
}
}
</style>
.news-card {
border-bottom: 1px solid #f8f8f8;
&-content {
&-title {
-webkit-line-clamp: 2;
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
}
&-intro {
-webkit-line-clamp: 1;
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
}
}
}
</style>

View File

@@ -1,79 +1,83 @@
<template>
<view :class="{ active, inactive: !active, tab: true }" :style="shouldShow ? '' : 'display: none;'">
<slot v-if="shouldRender"></slot>
</view>
</template>
<template>
<view
:class="{ active, inactive: !active, tab: true }"
:style="shouldShow ? '' : 'display: none;'"
>
<slot v-if="shouldRender"></slot>
</view>
</template>
<script lang="ts" setup>
import { ref, provide, inject, watch, computed, onMounted, getCurrentInstance } from "vue"
const props = withDefaults(defineProps < {
dot ? : boolean | string
name ? : boolean | string
info ? : any
} > (), {
import { ref, provide, inject, watch, computed, onMounted, getCurrentInstance } from 'vue'
const props = withDefaults(
defineProps<{
dot?: boolean | string
name?: boolean | string
info?: any
}>(),
{
dot: false,
name: ''
})
const active = ref<boolean>(false)
const shouldShow = ref<boolean>(false)
const shouldRender = ref<boolean>(false)
const inited = ref(undefined)
const updateTabs: any = inject('updateTabs')
const handleChange: any = inject('handleChange')
const updateRender = (value) => {
inited.value = inited.value || value;
active.value = value
shouldRender.value = inited.value
shouldShow.value = value
}
const update = () => {
if (updateTabs) {
updateTabs();
}
}
)
const { ctx } = getCurrentInstance()
handleChange(ctx, updateRender)
onMounted(() => {
update()
})
const changeData = computed(() => {
const {
dot,
info,
} = props;
return {
dot,
info,
}
})
watch(() => changeData.value, () => {
const active = ref<boolean>(false)
const shouldShow = ref<boolean>(false)
const shouldRender = ref<boolean>(false)
const inited = ref(undefined)
const updateTabs: any = inject('updateTabs')
const handleChange: any = inject('handleChange')
const updateRender = (value) => {
inited.value = inited.value || value
active.value = value
shouldRender.value = inited.value
shouldShow.value = value
}
const update = () => {
if (updateTabs) {
updateTabs()
}
}
const { ctx } = getCurrentInstance()
handleChange(ctx, updateRender)
onMounted(() => {
update()
})
const changeData = computed(() => {
const { dot, info } = props
return {
dot,
info
}
})
watch(
() => changeData.value,
() => {
update()
})
watch(() => props.name, (val) => {
}
)
watch(
() => props.name,
(val) => {
update()
})
</script>
<style>
.tab.active {
height: auto;
}
.tab.inactive {
height: 0;
overflow: visible;
}
}
)
</script>
<style>
.tab.active {
height: auto;
}
.tab.inactive {
height: 0;
overflow: visible;
}
</style>

View File

@@ -1,71 +1,106 @@
<template>
<view class="tabs">
<u-sticky :enable="isFixed" :bg-color="stickyBgColor" :offset-top="top" :h5-nav-height="0">
<view :id="id" :style="{
background: bgColor
}">
<scroll-view :style="{height: height + 'rpx'}" scroll-x class="scroll-view" :scroll-left="scrollLeft"
scroll-with-animation>
<view class="scroll-box" :class="{'tabs-scorll-flex': !isScroll}">
<view class="tab-item line1" :id="'tab-item-' + index" v-for="(item, index) in list"
:key="index" @tap="clickTab(index)" :style="[tabItemStyle(index)]">
<u-badge :count="item[count] || item['dot'] || 0" :offset="offset" size="mini"></u-badge>
{{ item[name] || item['name']}}
</view>
<view v-if="showBar" class="tab-bar" :style="[tabBarStyle]"></view>
</view>
</scroll-view>
</view>
</u-sticky>
<view class="tab-content" @touchstart="onTouchStart" @touchmove="onTouchMove" @touchcancel="onTouchEnd" @touchend="onTouchEnd">
<!-- <view class="tab-track" :class="{'tab-animated': animated}" :style="[trackStyle]"> -->
<view>
<slot></slot>
</view>
<!-- </view> -->
</view>
</view>
</template>
<script lang="ts" setup>
import { getRect } from '@/utils/util'
import { ref, reactive, computed, watch, provide, nextTick, onMounted, getCurrentInstance } from "vue"
import { useTouch } from "@/hooks/useTouch"
// Touch 钩子
const { touch, resetTouchStatus, touchStart, touchMove } = useTouch()
const emit = defineEmits<{
(event: 'change', value: number): void
}>()
const props = withDefaults(defineProps < {
isScroll ? : boolean // 导航菜单是否需要滚动如只有2或者3个的时候就不需要滚动了此时使用flex平分tab的宽度
current ? : number | string // 当前活动tab的索引
height ? : number | string // 导航栏的高度和行高
fontSize ? : number | string // 字体大小
duration ? : number | string // 过渡动画时长, 单位ms
activeColor ? : number | string // 选中项的主题颜色
inactiveColor ? : number | string // 未选中项的颜色
barWidth ? : number | string // 菜单底部移动的bar的宽度单位rpx
barHeight ? : number // 移动bar的高度
gutter ? : number | string // 单个tab的左或有内边距左右相同
bgColor ? : number | string // 导航栏的背景颜色
name ? : string // 读取传入的数组对象的属性(tab名称)
count ? : string // 读取传入的数组对象的属性(徽标数)
offset ? : number[] // 徽标数位置偏移
bold ? : boolean // 活动tab字体是否加粗
activeItemStyle ? : any // 当前活动tab item的样式
showBar ? : boolean // 是否显示底部的滑块
barStyle ? : any // 底部滑块的自定义样式
itemWidth ? : string // 标签的宽度
isFixed ? : boolean // 吸顶是否固定
top ? : number | string // 吸顶顶部距离
stickyBgColor ? : string // 吸顶颜色
swipeable: boolean // 是否允许滑动切换
<template>
<view class="tabs">
<u-sticky :enable="isFixed" :bg-color="stickyBgColor" :offset-top="top" :h5-nav-height="0">
<view
:id="id"
:style="{
background: bgColor
}"
>
<scroll-view
:style="{ height: height + 'rpx' }"
scroll-x
class="scroll-view"
:scroll-left="scrollLeft"
scroll-with-animation
>
<view class="scroll-box" :class="{ 'tabs-scorll-flex': !isScroll }">
<view
class="tab-item line1"
:id="'tab-item-' + index"
v-for="(item, index) in list"
:key="index"
@tap="clickTab(index)"
:style="[tabItemStyle(index)]"
>
<u-badge
:count="item[count] || item['dot'] || 0"
:offset="offset"
size="mini"
></u-badge>
{{ item[name] || item['name'] }}
</view>
<view v-if="showBar" class="tab-bar" :style="[tabBarStyle]"></view>
</view>
</scroll-view>
</view>
</u-sticky>
<view
class="tab-content"
@touchstart="onTouchStart"
@touchmove="onTouchMove"
@touchcancel="onTouchEnd"
@touchend="onTouchEnd"
>
<!-- <view class="tab-track" :class="{'tab-animated': animated}" :style="[trackStyle]"> -->
<view>
<slot></slot>
</view>
<!-- </view> -->
</view>
</view>
</template>
<script lang="ts" setup>
import { getRect } from '@/utils/util'
import {
ref,
reactive,
computed,
watch,
provide,
nextTick,
onMounted,
getCurrentInstance
} from 'vue'
import { useTouch } from '@/hooks/useTouch'
// Touch 钩子
const { touch, resetTouchStatus, touchStart, touchMove } = useTouch()
const emit = defineEmits<{
(event: 'change', value: number): void
}>()
const props = withDefaults(
defineProps<{
isScroll?: boolean // 导航菜单是否需要滚动如只有2或者3个的时候就不需要滚动了此时使用flex平分tab的宽度
current?: number | string // 当前活动tab的索引
height?: number | string // 导航栏的高度和行高
fontSize?: number | string // 字体大小
duration?: number | string // 过渡动画时长, 单位ms
activeColor?: number | string // 选中项的主题颜色
inactiveColor?: number | string // 未选中项的颜色
barWidth?: number | string // 菜单底部移动的bar的宽度单位rpx
barHeight?: number // 移动bar的高度
gutter?: number | string // 单个tab的左或有内边距左右相同
bgColor?: number | string // 导航栏的背景颜色
name?: string // 读取传入的数组对象的属性(tab名称)
count?: string // 读取传入的数组对象的属性(徽标数)
offset?: number[] // 徽标数位置偏移
bold?: boolean // 活动tab字体是否加粗
activeItemStyle?: any // 当前活动tab item的样式
showBar?: boolean // 是否显示底部的滑块
barStyle?: any // 底部滑块的自定义样式
itemWidth?: string // 标签的宽度
isFixed?: boolean // 吸顶是否固定
top?: number | string // 吸顶顶部距离
stickyBgColor?: string // 吸顶颜色
swipeable: boolean // 是否允许滑动切换
// animated: boolean // 切换动画
} > (), {
}>(),
{
isScroll: true,
current: 0,
height: 80,
@@ -88,318 +123,315 @@
isFixed: false,
top: 0,
stickyBgColor: '#FFFFFF',
swipeable: true,
swipeable: true
// animated: true
})
const list = ref<any>([])
const childrens = ref<any>([])
const scrollLeft = ref<number>(0) // 滚动scroll-view的左边滚动距离
const tabQueryInfo = ref<any>([]) // 存放对tab菜单查询后的节点信息
const componentWidth = ref<number>(0) // 屏幕宽度单位为px
const scrollBarLeft = ref<number>(0) // 移动bar需要通过translateX()移动的距离
const parentLeft = ref<number>(0) // 父元素(tabs组件)到屏幕左边的距离
const id = ref<string>('cu-tab') // id值
const currentIndex = ref<any>(props.current)
const barFirstTimeMove = ref<boolean>(true)// 滑块第一次移动时(页面刚生成时),无需动画,否则给人怪异的感觉
const swiping = ref<boolean>(false)
//@ts-ignore
const { ctx } = getCurrentInstance()
// 监听tab的变化重新计算tab菜单的布局信息因为实际使用中菜单可能是通过
// 后台获取的如新闻app顶部的菜单获取返回需要一定时间所以list变化,重新获取布局信息
watch(() => list.value, async (n, o) => {
// list变动时重制内部索引否则可能导致超出数组边界的情况
if(!barFirstTimeMove.value && n.length !== o.length) {
currentIndex.value = 0;
}
// 用$nextTick等待视图更新完毕后再计算tab的局部信息否则可能因为tab还没生成就获取就会有问题
await nextTick();
init();
})
watch(() => props.current, (nVal, oVal) => {
}
)
const list = ref<any>([])
const childrens = ref<any>([])
const scrollLeft = ref<number>(0) // 滚动scroll-view的左边滚动距离
const tabQueryInfo = ref<any>([]) // 存放对tab菜单查询后的节点信息
const componentWidth = ref<number>(0) // 屏幕宽度单位为px
const scrollBarLeft = ref<number>(0) // 移动bar需要通过translateX()移动的距离
const parentLeft = ref<number>(0) // 父元素(tabs组件)到屏幕左边的距离
const id = ref<string>('cu-tab') // id值
const currentIndex = ref<any>(props.current)
const barFirstTimeMove = ref<boolean>(true) // 滑块第一次移动时(页面刚生成时),无需动画,否则给人怪异的感觉
const swiping = ref<boolean>(false)
//@ts-ignore
const { ctx } = getCurrentInstance()
// 监听tab的变化,重新计算tab菜单的布局信息因为实际使用中菜单可能是通过
// 后台获取的如新闻app顶部的菜单获取返回需要一定时间所以list变化时重新获取布局信息
watch(
() => list.value,
async (n, o) => {
// list变动时重制内部索引否则可能导致超出数组边界的情况
if (!barFirstTimeMove.value && n.length !== o.length) {
currentIndex.value = 0
}
// 用$nextTick等待视图更新完毕后再计算tab的局部信息否则可能因为tab还没生成就获取就会有问题
await nextTick()
init()
}
)
watch(
() => props.current,
(nVal, oVal) => {
// 视图更新后再执行移动操作、
nextTick(() => {
currentIndex.value = nVal;
scrollByIndex();
});
}, { immediate: true })
// 移动bar的样式
const tabBarStyle = computed(() => {
let style = {
width: props.barWidth + 'rpx',
transform: `translate(${scrollBarLeft.value}px, -100%)`,
// 滑块在页面渲染后第一次滑动时,无需动画效果
'transition-duration': `${barFirstTimeMove.value ? 0 : props.duration }s`,
'background-color': props.activeColor,
height: props.barHeight + 'rpx',
opacity: barFirstTimeMove.value ? 0 : 1,
// 设置一个很大的值,它会自动取能用的最大值,不用高度的一半,是因为高度可能是单数,会有小数出现
'border-radius': `${props.barHeight / 2}px`
};
Object.assign(style, props.barStyle);
return style;
})
// tab的样式
const tabItemStyle = computed(() => {
return (index) => {
let style: any = {
height: props.height + 'rpx',
'line-height': props.height + 'rpx',
'font-size': props.fontSize + 'rpx',
padding: props.isScroll ? `0 ${props.gutter}rpx` : '',
flex: props.isScroll ? 'auto' : '1',
width: `${props.itemWidth}rpx`
};
// 字体加粗
if (index == currentIndex.value && props.bold) style.fontWeight = 'bold';
if (index == currentIndex.value) {
style.color = props.activeColor;
// 给选中的tab item添加外部自定义的样式
style = Object.assign(style, props.activeItemStyle);
} else {
style.color = props.inactiveColor;
}
return style;
}
})
// const trackStyle = computed(() => {
// if (!props.animated) return ''
// return {
// left: -100 * currentIndex.value + '%',
// 'transition-duration': props.duration + 's',
// '-webkit-transition-duration': props.duration + 's',
// }
// })
const updateTabs = () => {
list.value = childrens.value.map((item) => {
const {
name,
dot,
active,
inited,
} = item.event
const { updateRender } = item
return {
name,
dot,
active,
inited,
updateRender
}
})
// nextTick(() => {
// init()
// })
currentIndex.value = nVal
scrollByIndex()
})
},
{ immediate: true }
)
// 移动bar的样式
const tabBarStyle = computed(() => {
const style = {
width: props.barWidth + 'rpx',
transform: `translate(${scrollBarLeft.value}px, -100%)`,
// 滑块在页面渲染后第一次滑动时,无需动画效果
'transition-duration': `${barFirstTimeMove.value ? 0 : props.duration}s`,
'background-color': props.activeColor,
height: props.barHeight + 'rpx',
opacity: barFirstTimeMove.value ? 0 : 1,
// 设置一个很大的值,它会自动取能用的最大值,不用高度的一半,是因为高度可能是单数,会有小数出现
'border-radius': `${props.barHeight / 2}px`
}
// 设置一个init方法方便多处调用
const init = async () => {
// 获取tabs组件的尺寸信息
let tabRect = await getRect('#' + id.value, false, ctx);
// tabs组件距离屏幕左边的宽度
parentLeft.value = tabRect.left;
// tabs组件的宽度
componentWidth.value = tabRect.width;
getTabRect();
}
// 点击某一个tab菜单
const clickTab = (index) => {
// 点击当前活动tab不触发事件
if (index == currentIndex.value) return;
nextTick(() => {
currentIndex.value = index;
scrollByIndex();
});
// 发送事件给父组件
emit('change', index);
}
// 查询tab的布局信息
const getTabRect = () => {
// 创建节点查询
let query: any = uni.createSelectorQuery().in(ctx);
// 历遍所有tab这里是执行了查询最终使用exec()会一次性返回查询的数组结果
for (let i = 0; i < list.value.length; i++) {
// 只要size和rect两个参数
query.select(`#tab-item-${i}`).fields({
size: true,
rect: true
});
}
// 执行查询,一次性获取多个结果
query.exec((res) => {
tabQueryInfo.value = res;
// 初始化滚动条和移动bar的位置
scrollByIndex();
});
}
// 滚动scroll-view让活动的tab处于屏幕的中间位置
const scrollByIndex = () => {
// 当前活动tab的布局信息有tab菜单的width和left(为元素左边界到父元素左边界的距离)等信息
let tabInfo = tabQueryInfo.value[currentIndex.value];
if (!tabInfo) return;
// 活动tab的宽度
let tabWidth = tabInfo.width;
// 活动item的左边到tabs组件左边的距离用item的left减去tabs的left
let offsetLeft = tabInfo.left - parentLeft.value;
// 将活动的tabs-item移动到屏幕正中间实际上是对scroll-view的移动
let scrollLefts = offsetLeft - (componentWidth.value - tabWidth) / 2;
scrollLeft.value = scrollLefts < 0 ? 0 : scrollLefts;
// 当前活动item的中点点到左边的距离减去滑块宽度的一半即可得到滑块所需的移动距离
let left = tabInfo.left + tabInfo.width / 2 - parentLeft.value;
// 计算当前活跃item到组件左边的距离
scrollBarLeft.value = left - uni.upx2px(props.barWidth) / 2;
// 第一次移动滑块的时候barFirstTimeMove为true放到延时中将其设置false
// 延时是因为scrollBarLeft作用于computed计算时需要一个过程需否则导致出错
if (barFirstTimeMove.value == true) {
setTimeout(() => {
barFirstTimeMove.value = false;
}, 100)
Object.assign(style, props.barStyle)
return style
})
// tab的样式
const tabItemStyle = computed(() => {
return (index) => {
let style: any = {
height: props.height + 'rpx',
'line-height': props.height + 'rpx',
'font-size': props.fontSize + 'rpx',
padding: props.isScroll ? `0 ${props.gutter}rpx` : '',
flex: props.isScroll ? 'auto' : '1',
width: `${props.itemWidth}rpx`
}
// 更新子组件的显示
childrens.value.forEach((item, ind) => {
let active = ind === currentIndex.value;
if (active !== item.event.active || !item.event.inited) {
item.updateRender(active);
}
});
}
// 子组件调用此函数而产生的事件通信
const handleChange = (event, updateRender) => {
childrens.value.push({event: event, updateRender})
}
// 手指触摸
const onTouchStart = (event) => {
if (!props.swipeable)
return;
swiping.value = true;
touchStart(event);
}
// 手指滑动
const onTouchMove = (event) => {
if (!props.swipeable || !swiping.value)
return;
touchMove(event);
}
// 手指滑动结束
const onTouchEnd = () => {
if (!props.swipeable || !swiping.value)
return;
const minSwipeDistance = 50;
if (touch.direction === 'horizontal' && touch.offsetX >= minSwipeDistance) {
let index, len = list.value.length, curIndex = currentIndex.value;
if (touch.deltaX <= 0) {
curIndex >= (len - 1) ? index = 0 : index = curIndex + 1
} else {
curIndex <= 0 ? index = (len - 1) : index = curIndex - 1
}
nextTick(() => {
currentIndex.value = index;
scrollByIndex();
});
// 发送事件给父组件
emit('change', index);
// 字体加粗
if (index == currentIndex.value && props.bold) style.fontWeight = 'bold'
if (index == currentIndex.value) {
style.color = props.activeColor
// 给选中的tab item添加外部自定义的样式
style = Object.assign(style, props.activeItemStyle)
} else {
style.color = props.inactiveColor
}
swiping.value = false;
return style
}
onMounted(() => {
updateTabs();
})
provide('handleChange', handleChange)
provide('updateTabs', updateTabs)
</script>
<style lang="scss" scoped>
/* #ifndef APP-NVUE */
::-webkit-scrollbar,
::-webkit-scrollbar,
::-webkit-scrollbar {
display: none;
width: 0 !important;
height: 0 !important;
-webkit-appearance: none;
background: transparent;
}
/* #endif */
.scroll-box {
height: 100%;
position: relative;
/* #ifdef MP-TOUTIAO */
white-space: nowrap;
/* #endif */
}
.tab-fixed {
position: sticky;
top: 0;
width: 100%;
}
/* #ifdef H5 */
// 通过样式穿透隐藏H5下scroll-view下的滚动条
scroll-view ::v-deep ::-webkit-scrollbar {
display: none;
width: 0 !important;
height: 0 !important;
-webkit-appearance: none;
background: transparent;
}
/* #endif */
.scroll-view {
width: 100%;
white-space: nowrap;
position: relative;
}
.tab-item {
position: relative;
/* #ifndef APP-NVUE */
display: inline-block;
/* #endif */
text-align: center;
transition-property: background-color, color;
}
.tab-bar {
position: absolute;
bottom: 6rpx;
}
.tabs-scorll-flex {
display: flex;
justify-content: space-between;
}
// .tab-content {
// overflow: hidden;
// .tab-track {
// position: relative;
// width: 100%;
// height: 100%;
// }
// .tab-animated {
// display: flex;
// transition-property: left;
// }
// }
})
// const trackStyle = computed(() => {
// if (!props.animated) return ''
// return {
// left: -100 * currentIndex.value + '%',
// 'transition-duration': props.duration + 's',
// '-webkit-transition-duration': props.duration + 's',
// }
// })
const updateTabs = () => {
list.value = childrens.value.map((item) => {
const { name, dot, active, inited } = item.event
const { updateRender } = item
return {
name,
dot,
active,
inited,
updateRender
}
})
// nextTick(() => {
// init()
// })
}
// 设置一个init方法方便多处调用
const init = async () => {
// 获取tabs组件的尺寸信息
const tabRect = await getRect('#' + id.value, false, ctx)
// tabs组件距离屏幕左边的宽度
parentLeft.value = tabRect.left
// tabs组件的宽度
componentWidth.value = tabRect.width
getTabRect()
}
// 点击某一个tab菜单
const clickTab = (index) => {
// 点击当前活动tab不触发事件
if (index == currentIndex.value) return
nextTick(() => {
currentIndex.value = index
scrollByIndex()
})
// 发送事件给父组件
emit('change', index)
}
// 查询tab的布局信息
const getTabRect = () => {
// 创建节点查询
const query: any = uni.createSelectorQuery().in(ctx)
// 历遍所有tab这里是执行了查询最终使用exec()会一次性返回查询的数组结果
for (let i = 0; i < list.value.length; i++) {
// 只要size和rect两个参数
query.select(`#tab-item-${i}`).fields({
size: true,
rect: true
})
}
// 执行查询,一次性获取多个结果
query.exec((res) => {
tabQueryInfo.value = res
// 初始化滚动条和移动bar的位置
scrollByIndex()
})
}
// 滚动scroll-view让活动的tab处于屏幕的中间位置
const scrollByIndex = () => {
// 当前活动tab的布局信息有tab菜单的width和left(为元素左边界到父元素左边界的距离)等信息
const tabInfo = tabQueryInfo.value[currentIndex.value]
if (!tabInfo) return
// 活动tab的宽度
const tabWidth = tabInfo.width
// 活动item的左边到tabs组件左边的距离用item的left减去tabs的left
const offsetLeft = tabInfo.left - parentLeft.value
// 将活动的tabs-item移动到屏幕正中间实际上是对scroll-view的移动
const scrollLefts = offsetLeft - (componentWidth.value - tabWidth) / 2
scrollLeft.value = scrollLefts < 0 ? 0 : scrollLefts
// 当前活动item的中点点到左边的距离减去滑块宽度的一半即可得到滑块所需的移动距离
const left = tabInfo.left + tabInfo.width / 2 - parentLeft.value
// 计算当前活跃item到组件左边的距离
scrollBarLeft.value = left - uni.upx2px(props.barWidth) / 2
// 第一次移动滑块的时候barFirstTimeMove为true放到延时中将其设置false
// 延时是因为scrollBarLeft作用于computed计算时需要一个过程需否则导致出错
if (barFirstTimeMove.value == true) {
setTimeout(() => {
barFirstTimeMove.value = false
}, 100)
}
// 更新子组件的显示
childrens.value.forEach((item, ind) => {
const active = ind === currentIndex.value
if (active !== item.event.active || !item.event.inited) {
item.updateRender(active)
}
})
}
// 子组件调用此函数而产生的事件通信
const handleChange = (event, updateRender) => {
childrens.value.push({ event: event, updateRender })
}
// 手指触摸
const onTouchStart = (event) => {
if (!props.swipeable) return
swiping.value = true
touchStart(event)
}
// 手指滑动
const onTouchMove = (event) => {
if (!props.swipeable || !swiping.value) return
touchMove(event)
}
// 手指滑动结束
const onTouchEnd = () => {
if (!props.swipeable || !swiping.value) return
const minSwipeDistance = 50
if (touch.direction === 'horizontal' && touch.offsetX >= minSwipeDistance) {
let index,
len = list.value.length,
curIndex = currentIndex.value
if (touch.deltaX <= 0) {
curIndex >= len - 1 ? (index = 0) : (index = curIndex + 1)
} else {
curIndex <= 0 ? (index = len - 1) : (index = curIndex - 1)
}
nextTick(() => {
currentIndex.value = index
scrollByIndex()
})
// 发送事件给父组件
emit('change', index)
}
swiping.value = false
}
onMounted(() => {
updateTabs()
})
provide('handleChange', handleChange)
provide('updateTabs', updateTabs)
</script>
<style lang="scss" scoped>
/* #ifndef APP-NVUE */
::-webkit-scrollbar,
::-webkit-scrollbar,
::-webkit-scrollbar {
display: none;
width: 0 !important;
height: 0 !important;
-webkit-appearance: none;
background: transparent;
}
/* #endif */
.scroll-box {
height: 100%;
position: relative;
/* #ifdef MP-TOUTIAO */
white-space: nowrap;
/* #endif */
}
.tab-fixed {
position: sticky;
top: 0;
width: 100%;
}
/* #ifdef H5 */
// 通过样式穿透隐藏H5下scroll-view下的滚动条
scroll-view ::v-deep ::-webkit-scrollbar {
display: none;
width: 0 !important;
height: 0 !important;
-webkit-appearance: none;
background: transparent;
}
/* #endif */
.scroll-view {
width: 100%;
white-space: nowrap;
position: relative;
}
.tab-item {
position: relative;
/* #ifndef APP-NVUE */
display: inline-block;
/* #endif */
text-align: center;
transition-property: background-color, color;
}
.tab-bar {
position: absolute;
bottom: 6rpx;
}
.tabs-scorll-flex {
display: flex;
justify-content: space-between;
}
// .tab-content {
// overflow: hidden;
// .tab-track {
// position: relative;
// width: 100%;
// height: 100%;
// }
// .tab-animated {
// display: flex;
// transition-property: left;
// }
// }
</style>

View File

@@ -9,7 +9,11 @@
indicator-active-color="#4173ff"
:autoplay="true"
>
<swiper-item v-for="(item, index) in content.data" :key="index">
<swiper-item
v-for="(item, index) in content.data"
:key="index"
@click="handleClick(item.link)"
>
<u-image
mode="aspectFit"
width="100%"
@@ -23,6 +27,7 @@
<script setup lang="ts">
import { useAppStore } from '@/stores/app'
import { navigateTo } from '@/utils/util'
const props = defineProps({
content: {
@@ -35,6 +40,9 @@ const props = defineProps({
}
})
const { getImageUrl } = useAppStore()
const handleClick = (link: any) => {
navigateTo(link)
}
</script>
<style></style>

View File

@@ -11,6 +11,7 @@
v-for="(item, index) in content.data"
:key="index"
class="flex flex-col items-center w-1/4 mb-[15px]"
@click="handleClick(item.link)"
>
<u-image width="52" height="52" :src="getImageUrl(item.image)" alt="" />
<div class="mt-[7px]">{{ item.name }}</div>
@@ -21,8 +22,9 @@
v-for="(item, index) in content.data"
:key="index"
class="flex items-center border-light border-solid border-0 border-b h-[100rpx] px-[24rpx]"
@click="handleClick(item.link)"
>
<u-image width="48" height="48" :src="item.image" alt="" />
<u-image width="48" height="48" :src="getImageUrl(item.image)" alt="" />
<div class="ml-[20rpx] flex-1">{{ item.name }}</div>
<div class="text-muted">
<u-icon name="arrow-right" />
@@ -33,6 +35,7 @@
</template>
<script lang="ts" setup>
import { useAppStore } from '@/stores/app'
import { navigateTo } from '@/utils/util'
const props = defineProps({
content: {
@@ -45,6 +48,9 @@ const props = defineProps({
}
})
const { getImageUrl } = useAppStore()
const handleClick = (link: any) => {
navigateTo(link)
}
</script>
<style lang="scss"></style>

View File

@@ -5,6 +5,7 @@
v-for="(item, index) in content.data"
:key="index"
class="flex flex-col items-center w-1/5 mb-[30rpx]"
@click="handleClick(item.link)"
>
<u-image width="41px" height="41px" :src="getImageUrl(item.image)" alt="" />
<view class="mt-[14rpx]">{{ item.name }}</view>
@@ -15,6 +16,7 @@
<script setup lang="ts">
import { useAppStore } from '@/stores/app'
import { navigateTo } from '@/utils/util'
const props = defineProps({
content: {
@@ -27,6 +29,9 @@ const props = defineProps({
}
})
const handleClick = (link: any) => {
navigateTo(link)
}
const { getImageUrl } = useAppStore()
</script>

View File

@@ -9,7 +9,11 @@
indicator-active-color="#4173ff"
:autoplay="true"
>
<swiper-item v-for="(item, index) in content.data" :key="index">
<swiper-item
v-for="(item, index) in content.data"
:key="index"
@click="handleClick(item.limk)"
>
<u-image
mode="aspectFit"
width="100%"
@@ -24,6 +28,7 @@
<script setup lang="ts">
import { useAppStore } from '@/stores/app'
import { navigateTo } from '@/utils/util'
const props = defineProps({
content: {
@@ -35,6 +40,9 @@ const props = defineProps({
default: () => ({})
}
})
const handleClick = (link: any) => {
navigateTo(link)
}
const { getImageUrl } = useAppStore()
</script>

View File

@@ -1,19 +1,25 @@
<template>
<div class="user-info flex items-center px-[50rpx]">
<view class="user-info flex px-[50rpx] justify-between py-[50rpx]">
<navigator
v-if="isLogin"
class="flex items-center"
hover-class="none"
url="/pages/login/login"
url="/pages/user_data/user_data"
>
<u-avatar :src="user.avatar" :size="120"></u-avatar>
<div class="text-white text-3xl ml-[20rpx]">{{ user.nickname }}</div>
<view class="text-white ml-[20rpx]">
<view class="text-2xl">{{ user.nickname }}</view>
<view class="text-xs mt-[18rpx]">账号{{ user.username }}</view>
</view>
</navigator>
<navigator v-else class="flex items-center" hover-class="none" url="/pages/login/login">
<u-avatar src="/static/images/user/default_avatar.png" :size="120"></u-avatar>
<div class="text-white text-3xl ml-[20rpx]">未登录</div>
<view class="text-white text-3xl ml-[20rpx]">未登录</view>
</navigator>
</div>
<navigator v-if="isLogin" hover-class="none" url="/pages/user_set/user_set">
<u-icon name="setting" color="#fff" :size="58"></u-icon>
</navigator>
</view>
</template>
<script lang="ts" setup>
const props = defineProps({

View File

@@ -3,4 +3,3 @@ export enum AgreementEnum {
PRIVACY = 'privacy',
SERVICE = 'service'
}

View File

@@ -21,5 +21,14 @@ export enum SMSEnum {
}
export enum SearchTypeEnum {
HISTORY = 'history'
}
HISTORY = 'history'
}
// 用户资料
export enum FieldType {
NONE = '',
AVATAR = 'avatar',
USERNAME = 'username',
NICKNAME = 'nickname',
SEX = 'sex'
}

View File

@@ -4,4 +4,4 @@
export const TOKEN_KEY = 'token'
// 搜索历史记录
export const HISTORY = 'history'
export const HISTORY = 'history'

View File

@@ -1,13 +1,13 @@
import { reactive } from "vue"
import { reactive } from 'vue'
/**
* @description 触碰屏幕钩子函数
* @return { Function } 暴露钩子
*/
export function useTouch () {
export function useTouch() {
// 最小移动距离
const MIN_DISTANCE = 10;
const MIN_DISTANCE = 10
const touch = reactive({
direction: '',
deltaX: 0,
@@ -22,48 +22,47 @@ export function useTouch () {
*/
const getDirection = (x: number, y: number) => {
if (x > y && x > MIN_DISTANCE) {
return 'horizontal';
return 'horizontal'
}
if (y > x && y > MIN_DISTANCE) {
return 'vertical';
return 'vertical'
}
return '';
return ''
}
/**
* @description 重置参数
*/
const resetTouchStatus = () => {
touch.direction = '';
touch.deltaX = 0;
touch.deltaY = 0;
touch.offsetX = 0;
touch.offsetY = 0;
touch.direction = ''
touch.deltaX = 0
touch.deltaY = 0
touch.offsetX = 0
touch.offsetY = 0
}
/**
* @description 触发
*/
const touchStart = (event: any) => {
resetTouchStatus();
const events = event.touches[0];
touch.startX = events.clientX;
touch.startY = events.clientY;
resetTouchStatus()
const events = event.touches[0]
touch.startX = events.clientX
touch.startY = events.clientY
}
/**
* @description 移动
*/
const touchMove = (event: any) => {
const events = event.touches[0];
touch.deltaX = events.clientX - touch.startX;
touch.deltaY = events.clientY - touch.startY;
touch.offsetX = Math.abs(touch.deltaX);
touch.offsetY = Math.abs(touch.deltaY);
touch.direction =
touch.direction || getDirection(touch.offsetX, touch.offsetY);
const events = event.touches[0]
touch.deltaX = events.clientX - touch.startX
touch.deltaY = events.clientY - touch.startY
touch.offsetX = Math.abs(touch.deltaX)
touch.offsetY = Math.abs(touch.deltaY)
touch.direction = touch.direction || getDirection(touch.offsetX, touch.offsetY)
}
return {
touch,
resetTouchStatus,

View File

@@ -5,6 +5,7 @@ import './router'
import './styles/index.scss'
export function createApp() {
const app = createSSRApp(App)
app.use(plugins)
return {
app

View File

@@ -52,7 +52,8 @@
"path": "pages/user_set/user_set",
"style": {
"navigationBarTitleText": "个人设置"
}
},
"auth": true
},
{
"path": "pages/collection/collection",
@@ -77,19 +78,31 @@
"path": "pages/change_password/change_password",
"style": {
"navigationBarTitleText": "修改密码"
}
},
"auth": true
},
{
"path": "pages/user_data/user_data",
"style": {
"navigationBarTitleText": "个人资料"
}
},
"auth": true
},
{
"path": "pages/search/search",
"style": {
"navigationBarTitleText": "搜索"
}
},
{
"path": "pages/webview/webview"
},
{
"path": "uni_modules/vk-uview-ui/components/u-avatar-cropper/u-avatar-cropper",
"style": {
"navigationBarTitleText": "头像裁剪",
"navigationBarBackgroundColor": "#000000"
}
}
],
"globalStyle": {

View File

@@ -1,36 +1,35 @@
<template>
<view class="">
<u-parse :html="agreementContent"></u-parse>
</view>
</template>
<template>
<view class="">
<u-parse :html="agreementContent"></u-parse>
</view>
</template>
<script setup lang="ts">
import { reactive, ref } from 'vue'
import { onLoad } from "@dcloudio/uni-app";
import { AgreementEnum } from '@/enums/agreementEnums'
import { getPolicy } from '@/api/app'
let agreementType = ref('') // 协议类型
let agreementContent = ref('') // 协议内容
const getData = async (type) => {
let res = await getPolicy({ type })
console.log(res, 'res')
agreementContent.value = res.content
uni.setNavigationBarTitle({
title: res.name
})
}
onLoad((options: any) => {
if(options.type) {
agreementType = options.type
getData(agreementType)
}
})
</script>
<style lang="scss" scoped>
</style>
import { reactive, ref } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { AgreementEnum } from '@/enums/agreementEnums'
import { getPolicy } from '@/api/app'
let agreementType = ref('') // 协议类型
const agreementContent = ref('') // 协议内容
const getData = async (type) => {
const res = await getPolicy({ type })
console.log(res, 'res')
agreementContent.value = res.content
uni.setNavigationBarTitle({
title: res.name
})
}
onLoad((options: any) => {
if (options.type) {
agreementType = options.type
getData(agreementType)
}
})
</script>
<style lang="scss" scoped></style>

View File

@@ -1,22 +1,22 @@
<template>
<view class="as-us flex flex-1 flex-col items-center">
<image :src="appStore.config.website.logo" mode="" class="img"></image>
<view class="text-content mt-[20rpx]">当前版本{{ appStore.config.version }}</view>
</view>
</template>
<template>
<view class="as-us flex flex-1 flex-col items-center">
<image :src="appStore.config.website.logo" mode="" class="img"></image>
<view class="text-content mt-[20rpx]">当前版本{{ appStore.config.version }}</view>
</view>
</template>
<script setup lang="ts">
import { useAppStore } from '@/stores/app'
const appStore = useAppStore()
</script>
<style lang="scss" scoped>
.as-us {
.img {
width: 160rpx;
height: 160rpx;
border-radius: 20rpx;
margin-top: 96rpx;
}
}
import { useAppStore } from '@/stores/app'
const appStore = useAppStore()
</script>
<style lang="scss" scoped>
.as-us {
.img {
width: 160rpx;
height: 160rpx;
border-radius: 20rpx;
margin-top: 96rpx;
}
}
</style>

View File

@@ -1,37 +1,67 @@
<template>
<view class="">
<u-parse :html="agreementContent"></u-parse>
</view>
</template>
<template>
<view
class="register bg-white min-h-full flex flex-col items-center px-[40rpx] pt-[100rpx] box-border"
>
<view class="w-full">
<view class="text-2xl font-medium mb-[60rpx]">修改登录密码</view>
<u-form borderBottom :label-width="150">
<u-form-item label="原密码" borderBottom>
<u-input
class="flex-1"
v-model="formData.oldPassword"
:border="false"
placeholder="请输入原来的密码"
/>
</u-form-item>
<u-form-item label="新密码" borderBottom>
<u-input
class="flex-1"
type="password"
v-model="formData.password"
placeholder="6-20位数字+字母或符号组合"
:border="false"
/>
</u-form-item>
<u-form-item label="确认密码" borderBottom>
<u-input
class="flex-1"
type="password"
v-model="formData.password2"
placeholder="再次输入新密码"
:border="false"
/>
</u-form-item>
</u-form>
<view class="mt-[100rpx]">
<u-button type="primary" shape="circle" @click="handleConfirm"> 确定 </u-button>
</view>
</view>
</view>
</template>
<script setup lang="ts">
import { reactive, ref } from 'vue'
import { onLoad } from "@dcloudio/uni-app";
import { AgreementEnum } from '@/enums/agreementEnums'
import { getPolicy } from '@/api/app'
let agreementType = ref('') // 协议类型
let agreementContent = ref('') // 协议内容
// let agreementName = ref('') // 协议名称
const getData = async (type) => {
let res = await getPolicy({ type })
console.log(res, 'res')
agreementContent.value = res.content
uni.setNavigationBarTitle({
title: res.name
})
}
onLoad((options: any) => {
if(options.type) {
agreementType.value = options.type
getData(agreementType)
}
})
</script>
<style lang="scss" scoped>
import { userChangePwd } from '@/api/user'
import { reactive } from 'vue'
const formData = reactive({
oldPassword: '',
password: '',
password2: ''
})
const handleConfirm = async () => {
if (!formData.oldPassword) return uni.$u.toast('请输入原来的密码')
if (!formData.password) return uni.$u.toast('请输入密码')
if (!formData.password2) return uni.$u.toast('请输入确认密码')
if (formData.password != formData.password2) return uni.$u.toast('两次输入的密码不一致')
await userChangePwd(formData)
uni.$u.toast('操作成功')
uni.navigateBack()
}
</script>
<style lang="scss">
page {
height: 100%;
}
</style>

View File

@@ -1,50 +1,61 @@
<template>
<z-paging ref="paging" v-model="collectData" @query="queryList" :fixed="false" height="100%"
use-page-scroll>
<u-swipe-action :show="item.show" :index="index" v-for="(item, index) in collectData" :key="item.id"
@click="handleCollect" :options="options" btn-width="120">
<news-card :item="item" :newsId="item.articleId"></news-card>
</u-swipe-action>
</z-paging>
</template>
<script lang="ts" setup>
import { ref, reactive, shallowRef } from 'vue';
import { getCollect, cancelCollect } from "@/api/news"
const paging = shallowRef()
const options = reactive([{
text: '取消收藏',
style: {
color: '#FFFFFF',
backgroundColor: '#FF2C3C'
}
}])
const collectData: any = ref([])
const queryList = async (pageNo, pageSize) => {
const { lists } = await getCollect()
lists.forEach(item => {
item.show = false
})
collectData.value = lists
paging.value.complete(lists);
}
const handleCollect = async (index: number): Promise<void> => {
try{
const articleId: number = collectData.value[index].articleId
await cancelCollect({ articleId })
paging.value.reload()
}catch(err){
//TODO handle the exception
console.log('取消收藏报错=>', err)
}
}
</script>
<style scoped>
</style>
<template>
<z-paging
ref="paging"
v-model="collectData"
@query="queryList"
:fixed="false"
height="100%"
use-page-scroll
>
<u-swipe-action
:show="item.show"
:index="index"
v-for="(item, index) in collectData"
:key="item.id"
@click="handleCollect"
:options="options"
btn-width="120"
>
<news-card :item="item" :newsId="item.articleId"></news-card>
</u-swipe-action>
</z-paging>
</template>
<script lang="ts" setup>
import { ref, reactive, shallowRef } from 'vue'
import { getCollect, cancelCollect } from '@/api/news'
const paging = shallowRef()
const options = reactive([
{
text: '取消收藏',
style: {
color: '#FFFFFF',
backgroundColor: '#FF2C3C'
}
}
])
const collectData: any = ref([])
const queryList = async (pageNo, pageSize) => {
const { lists } = await getCollect()
lists.forEach((item) => {
item.show = false
})
collectData.value = lists
paging.value.complete(lists)
}
const handleCollect = async (index: number): Promise<void> => {
try {
const articleId: number = collectData.value[index].articleId
await cancelCollect({ articleId })
paging.value.reload()
} catch (err) {
//TODO handle the exception
console.log('取消收藏报错=>', err)
}
}
</script>
<style scoped></style>

View File

@@ -3,7 +3,7 @@
class="register bg-white min-h-full flex flex-col items-center px-[40rpx] pt-[100rpx] box-border"
>
<view class="w-full">
<view class="text-2xl font-medium mb-[100rpx]">忘记登录密码</view>
<view class="text-2xl font-medium mb-[60rpx]">忘记登录密码</view>
<u-form borderBottom :label-width="150">
<u-form-item label="手机号" borderBottom>
<u-input

View File

@@ -42,15 +42,18 @@ const getData = async () => {
state.pages = JSON.parse(data.pages)
state.article = data.article
}
getData()
</script>
<style lang="scss">
.article-title {
&::before {
content: '';
width: 8rpx;
height: 34rpx;
display: block;
margin-right: 10rpx;
background: $u-type-primary;
}
}

View File

@@ -81,8 +81,20 @@
<u-checkbox v-model="isCheckAgreement" shape="circle">
<view class="text-xs flex">
已阅读并同意
<navigator class="text-primary" hover-class="none">服务协议</navigator>
<navigator class="text-primary" hover-class="none">
<navigator
@click.stop=""
class="text-primary"
hover-class="none"
url="/pages/agreement/agreement?type=service"
>
服务协议
</navigator>
<navigator
@click.stop=""
class="text-primary"
hover-class="none"
url="/pages/agreement/agreement?type=privacy"
>
隐私协议
</navigator>
</view>
@@ -125,6 +137,7 @@ import { SMSEnum } from '@/enums/appEnums'
import { useLockFn } from '@/hooks/useLockFn'
import { useAppStore } from '@/stores/app'
import { useUserStore } from '@/stores/user'
import { currentPage } from '@/utils/util'
import { reactive, ref, shallowRef } from 'vue'
enum LoginTypeEnum {
MOBILE = 'mobile',
@@ -185,7 +198,14 @@ const loginFun = async (scene: LoginTypeEnum, code?: string) => {
await userStore.getUser()
uni.$u.toast('登录成功')
uni.hideLoading()
uni.navigateBack()
uni.navigateBack({
success: () => {
// @ts-ignore
const { onLoad, options } = currentPage()
// 刷新上一个页面
onLoad && onLoad(options)
}
})
} catch (error: any) {
uni.hideLoading()
throw new Error(error)

View File

@@ -1,43 +1,65 @@
<template>
<z-paging ref="paging" v-model="dataList" v-if="i == index" @query="queryList" :fixed="false" height="100%">
<block v-for="(newsItem,newsIndex) in dataList" :key="newsIndex">
<news-card :item="newsItem" :newsId="newsItem.id"></news-card>
</block>
</z-paging>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
import { getArticleList } from "@/api/news"
const props = withDefaults(defineProps < {
cid: number,
i: number,
index: number
} > (), {
cid: 0
})
const paging = ref(null)
const dataList = ref([{
title: '123'
}])
const queryList = async (pageNo, pageSize) => {
try{
const { lists } = await getArticleList({
cid: props.cid,
pageNo, pageSize
})
paging.value.complete(lists);
}catch(e){
console.log('报错=>',e)
//TODO handle the exception
paging.value.complete(false);
}
}
</script>
<style scoped>
</style>
<template>
<z-paging
auto-show-back-to-top
:auto="i == index"
ref="paging"
v-model="dataList"
:data-key="i"
@query="queryList"
:fixed="false"
height="100%"
>
<block v-for="(newsItem, newsIndex) in dataList" :key="newsIndex">
<news-card :item="newsItem" :newsId="newsItem.id"></news-card>
</block>
</z-paging>
</template>
<script lang="ts" setup>
import { ref, watch, nextTick } from 'vue'
import { getArticleList } from '@/api/news'
const props = withDefaults(
defineProps<{
cid: number
i: number
index: number
}>(),
{
cid: 0
}
)
const paging = ref(null)
const dataList = ref([])
const isFirst = ref<boolean>(true)
watch(
() => props.index,
async () => {
await nextTick()
if (props.i == props.index && isFirst.value) {
isFirst.value = false
paging.value?.reload()
}
},
{ immediate: true }
)
const queryList = async (pageNo, pageSize) => {
try {
const { lists } = await getArticleList({
cid: props.cid,
pageNo,
pageSize
})
paging.value.complete(lists)
} catch (e) {
console.log('报错=>', e)
//TODO handle the exception
paging.value.complete(false)
}
}
</script>
<style scoped></style>

View File

@@ -1,65 +1,58 @@
<template>
<view class="news" >
<!-- 搜索 -->
<navigator url="/pages/search/search">
<view class="news-search px-[24rpx] py-[14rpx] bg-white">
<u-search placeholder="请输入关键词搜索" disabled :show-action="false"></u-search>
</view>
</navigator>
<!-- 内容 -->
<tabs
:current="current"
@change="handleChange"
height="80"
bar-width="60"
:barStyle="{'bottom': '0'}"
>
<tab
v-for="(item, i) in tabList"
:key="i"
:name="item.name"
>
<view class="news">
<!-- 搜索 -->
<navigator class="news-search px-[24rpx] py-[14rpx] bg-white" url="/pages/search/search">
<u-search placeholder="请输入关键词搜索" disabled :show-action="false"></u-search>
</navigator>
<!-- 内容 -->
<tabs
:current="current"
@change="handleChange"
height="80"
bar-width="60"
:barStyle="{ bottom: '0' }"
>
<tab v-for="(item, i) in tabList" :key="i" :name="item.name">
<view class="news-list pt-[20rpx]">
<news-list :cid="item.id" :i="i" :index="current"></news-list>
<news-list :cid="item.id" :i="i" :index="current"></news-list>
</view>
</tab>
</tabs>
</view>
</template>
<script lang="ts" setup>
import { ref, reactive, computed } from "vue"
import { onLoad, onShow, onReady } from "@dcloudio/uni-app";
import NewsList from "./component/news-list.vue"
import { getArticleCate } from "@/api/news"
</view>
</template>
<script lang="ts" setup>
import { ref, reactive, computed } from 'vue'
import { onLoad, onShow, onReady } from '@dcloudio/uni-app'
import NewsList from './component/news-list.vue'
import { getArticleCate } from '@/api/news'
const tabList = ref<any>([])
const current = ref<number>(0)
const handleChange = (index: number) => {
console.log(index)
current.value = Number(index)
}
const getData = async () => {
tabList.value = await getArticleCate()
}
onLoad((options) => {
getData()
})
</script>
const tabList = ref< any >([])
const current = ref<number>(0)
const handleChange = (index: number) => {
console.log(index)
current.value = Number(index)
}
const getData = async () => {
tabList.value = await getArticleCate()
}
onLoad((options) => {
getData()
})
</script>
<style lang="scss">
.news {
&-search {
margin-bottom: 2rpx;
}
&-list {
height: calc(100vh - 86px);
}
}
.news {
&-search {
margin-bottom: 2rpx;
}
&-list {
height: calc(100vh - 86px);
}
}
</style>

View File

@@ -1,95 +1,96 @@
<template>
<view class="news-detail bg-white" >
<!-- 标题信心 -->
<view class="news-detail-header py-[20rpx] px-[30rpx]">
<view class="text-3xl font-medium">{{ newsData.title }}</view>
<view class="flex mt-[20rpx] text-xs">
<view class="mr-[40rpx]" v-if="newsData.author">作者: {{ newsData.author }}</view>
<view class="text-muted mr-[40rpx]">{{ newsData.createTime }}</view>
<view class="flex items-center text-muted ">
<image src="/static/images/icon/icon_visit.png" class="w-[30rpx] h-[30rpx]"></image>
<view class="ml-[10rpx]">{{ newsData.visit }}</view>
</view>
</view>
</view>
<!-- 咨询内容 -->
<view class="news-detail-section bg-white p-[20rpx]">
<!-- 摘要 -->
<view class="summary p-[20rpx] text-base" v-if="newsData.summary">
摘要: {{ newsData.summary }}
</view>
<!-- 封面 -->
<view class="mt-[20rpx]" v-if="newsData.image">
<image class="w-full" :src="newsData.image" mode="widthFix"></image>
</view>
<!-- 内容 -->
<view class="mt-[20rpx]">
<u-parse :html="newsData.content"></u-parse>
</view>
</view>
<view class="panel-btn flex items-center px-[34rpx]" @click="handleAddCollect(newsData.id)">
<u-icon :name="newsData.collect ? 'star-fill' : 'star'" size="36"></u-icon>
<text class="ml-[10rpx]">收藏</text>
</view>
</view>
</template>
<script lang="ts" setup>
import { ref, reactive, computed } from "vue"
import { onLoad, onShow, onReady } from "@dcloudio/uni-app";
import { getArticleDetail, addCollect, cancelCollect } from "@/api/news"
<view class="news-detail bg-white">
<!-- 标题信心 -->
<view class="news-detail-header py-[20rpx] px-[30rpx]">
<view class="text-3xl font-medium">{{ newsData.title }}</view>
<view class="flex mt-[20rpx] text-xs">
<view class="mr-[40rpx]" v-if="newsData.author">作者: {{ newsData.author }}</view>
<view class="text-muted mr-[40rpx]">{{ newsData.createTime }}</view>
<view class="flex items-center text-muted">
<image
src="/static/images/icon/icon_visit.png"
class="w-[30rpx] h-[30rpx]"
></image>
<view class="ml-[10rpx]">{{ newsData.visit }}</view>
</view>
</view>
</view>
<!-- 咨询内容 -->
<view class="news-detail-section bg-white p-[20rpx]">
<!-- 摘要 -->
<view class="summary p-[20rpx] text-base" v-if="newsData.summary">
摘要: {{ newsData.summary }}
</view>
<!-- 封面 -->
<view class="mt-[20rpx]" v-if="newsData.image">
<image class="w-full" :src="newsData.image" mode="widthFix"></image>
</view>
<!-- 内容 -->
<view class="mt-[20rpx]">
<u-parse :html="newsData.content"></u-parse>
</view>
</view>
<view class="panel-btn flex items-center px-[34rpx]" @click="handleAddCollect(newsData.id)">
<u-icon :name="newsData.collect ? 'star-fill' : 'star'" size="36"></u-icon>
<text class="ml-[10rpx]">收藏</text>
</view>
</view>
</template>
<script lang="ts" setup>
import { ref, reactive, computed } from 'vue'
import { onLoad, onShow, onReady } from '@dcloudio/uni-app'
import { getArticleDetail, addCollect, cancelCollect } from '@/api/news'
const newsData = ref<any>({})
let newsId = ''
const getData = async (id) => {
newsData.value = await getArticleDetail({ id })
}
const handleAddCollect = async (articleId: number) => {
try {
if (newsData.value.collect) {
await cancelCollect({ articleId })
} else await addCollect({ articleId })
getData(newsId)
} catch (e) {
//TODO handle the exception
}
}
onLoad((options: any) => {
newsId = options.id
getData(newsId)
})
</script>
const newsData = ref< any >({})
let newsId = ''
const getData = async (id) => {
newsData.value = await getArticleDetail({ id })
}
const handleAddCollect = async (articleId: number) => {
try{
if( newsData.value.collect ) {
await cancelCollect({ articleId })
} else await addCollect({ articleId })
getData(newsId)
}catch(e){
//TODO handle the exception
}
}
onLoad((options: any) => {
newsId = options.id
getData(newsId)
})
</script>
<style lang="scss">
.news-detail {
height: 100%;
&-header {
border-bottom: 2rpx solid #F8F8F8;
}
&-section {
.summary {
border-radius: 12rpx;
background-color: #F7F7F7;
}
}
.panel-btn {
position: fixed;
right: 30rpx;
height: 80rpx;
bottom: 80rpx;
border-radius: 40rpx;
background: rgba(255, 255, 255, 0.95);
box-shadow: 0 0 10px rgba(0, 0, 0, 0.16);
}
}
.news-detail {
height: 100%;
&-header {
border-bottom: 2rpx solid #f8f8f8;
}
&-section {
.summary {
border-radius: 12rpx;
background-color: #f7f7f7;
}
}
.panel-btn {
position: fixed;
right: 30rpx;
height: 80rpx;
bottom: 80rpx;
border-radius: 40rpx;
background: rgba(255, 255, 255, 0.95);
box-shadow: 0 0 10px rgba(0, 0, 0, 0.16);
}
}
</style>

View File

@@ -35,8 +35,22 @@
<u-checkbox v-model="isCheckAgreement" shape="circle">
<view class="text-xs flex">
已阅读并同意
<navigator class="text-primary">服务协议</navigator>
<navigator class="text-primary">隐私协议</navigator>
<navigator
@click.stop=""
class="text-primary"
hover-class="none"
url="/pages/agreement/agreement?type=service"
>
服务协议
</navigator>
<navigator
@click.stop=""
class="text-primary"
hover-class="none"
url="/pages/agreement/agreement?type=privacy"
>
隐私协议
</navigator>
</view>
</u-checkbox>
</view>

View File

@@ -1,67 +1,70 @@
<template>
<view class="suggest bg-white">
<!-- 热门搜索 -->
<view class="hot" v-if="hot_search.length">
<view class="text-base font-medium pl-[24rpx] pt-[26rpx] pb-[6rpx]">热门搜索</view>
<view class="w-full pl-[24rpx] pr-[8rpx]">
<block v-for="hotItem in hot_search">
<view class="keyword" @click="handleHistoreSearch(hotItem)">{{ hotItem }}</view>
</block>
</view>
</view>
<view class="mx-[24rpx] my-[40rpx] border-b border-solid border-0 border-light" v-if="hot_search.length && his_search.length"></view>
<!-- 历史搜索 -->
<view class="history" v-if="his_search.length">
<view class="flex justify-between px-[24rpx] pb-[6rpx]">
<view class="text-base font-medium">历史搜索</view>
<view class="text-xs text-muted" @click="() => emit('clear')">清空</view>
</view>
<view class="w-full pl-[24rpx] pr-[8rpx]">
<block v-for="hisItem in his_search">
<view class="keyword" @click="handleHistoreSearch(hisItem)">{{ hisItem }}</view>
</block>
</view>
</view>
</view>
<view class="suggest bg-white">
<!-- 热门搜索 -->
<view class="hot" v-if="hot_search.length">
<view class="text-base font-medium pl-[24rpx] pt-[26rpx] pb-[6rpx]">热门搜索</view>
<view class="w-full pl-[24rpx] pr-[8rpx]">
<block v-for="hotItem in hot_search">
<view class="keyword" @click="handleHistoreSearch(hotItem)">{{ hotItem }}</view>
</block>
</view>
</view>
<view
class="mx-[24rpx] my-[40rpx] border-b border-solid border-0 border-light"
v-if="hot_search.length && his_search.length"
></view>
<!-- 历史搜索 -->
<view class="history" v-if="his_search.length">
<view class="flex justify-between px-[24rpx] pb-[6rpx]">
<view class="text-base font-medium">历史搜索</view>
<view class="text-xs text-muted" @click="() => emit('clear')">清空</view>
</view>
<view class="w-full pl-[24rpx] pr-[8rpx]">
<block v-for="hisItem in his_search">
<view class="keyword" @click="handleHistoreSearch(hisItem)">{{ hisItem }}</view>
</block>
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import { ref, reactive, nextTick } from "vue"
const emit = defineEmits<{
(event: 'search', value: string): void
(event: 'clear', value: void): void
}>()
const props = withDefaults(defineProps < {
hot_search?: string[],
his_search?: string[]
} > (), {
<script lang="ts" setup>
import { ref, reactive, nextTick } from 'vue'
const emit = defineEmits<{
(event: 'search', value: string): void
(event: 'clear', value: void): void
}>()
const props = withDefaults(
defineProps<{
hot_search?: string[]
his_search?: string[]
}>(),
{
hot_search: [],
his_search: []
})
const handleHistoreSearch = (text: string) => {
emit('search', text)
}
his_search: []
}
)
const handleHistoreSearch = (text: string) => {
emit('search', text)
}
</script>
<style lang="scss" scoped>
.suggest {
height: 100%;
.keyword {
display: inline-block;
margin: 24rpx 16rpx 0 0;
padding: 8rpx 24rpx;
border-radius: 26rpx;
background-color: #F4F4F4;
}
}
</style>
.suggest {
height: 100%;
.keyword {
display: inline-block;
margin: 24rpx 16rpx 0 0;
padding: 8rpx 24rpx;
border-radius: 26rpx;
background-color: #f4f4f4;
}
}
</style>

View File

@@ -1,126 +1,127 @@
<template>
<view class="search">
<!-- 搜索框 -->
<view class="px-[24rpx] py-[14rpx] bg-white">
<u-search
v-model="keyword"
placeholder="请输入关键词搜索"
height="72"
@search="handleSearch"
@custom="handleSearch"
@clear="search.searching = false"
></u-search>
</view>
<!-- 搜索 -->
<view class="search-content">
<!-- -->
<suggest
v-show="!search.searching"
@search="handleSearch"
@clear="handleClear"
:hot_search="search.hot_search"
:his_search="search.his_search"
></suggest>
<!-- -->
<view class="search-content-s pt-[20rpx]" v-show="search.searching">
<z-paging
ref="paging"
v-model="search.result"
@query="queryList"
:fixed="false"
height="100%"
>
<block v-for="(item, index) in search.result" :key="item.id">
<news-card :item="item" :newsId="item.id"></news-card>
</block>
</z-paging>
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import { ref, reactive, shallowRef } from 'vue';
import Suggest from "./component/suggest.vue"
import { HISTORY } from "@/enums/cacheEnums"
import { getHotSearch, getSearch } from "@/api/shop"
import cache from "@/utils/cache"
interface Search {
hot_search: any
his_search: any
result: any
searching: boolean
}
const search = reactive<Search>({
hot_search: [],
his_search: [],
result: [],
searching: false
})
const keyword = ref<string>('')
const paging = shallowRef()
<view class="search">
<!-- 搜索框 -->
<view class="px-[24rpx] py-[14rpx] bg-white">
<u-search
v-model="keyword"
placeholder="请输入关键词搜索"
height="72"
@search="handleSearch"
@custom="handleSearch"
@clear="search.searching = false"
></u-search>
</view>
const handleSearch = (value: string) => {
keyword.value = value
if ( keyword.value ) {
if ( !search.his_search.includes(keyword.value) ) {
search.his_search.unshift(keyword.value)
cache.set(HISTORY, search.his_search)
}
}
paging.value.reload()
search.searching = true
}
const getHotSearchFunc = async () => {
try{
search.hot_search = await getHotSearch()
}catch(e){
//TODO handle the exception
}
}
const handleClear = async (): Promise<void> => {
const resModel: any = await uni.showModal({
title: '温馨提示',
content: '是否清空历史记录?'
})
if ( resModel.confirm ) {
cache.set(HISTORY, '')
search.his_search = []
}
}
const queryList = async (pageNo, pageSize) => {
try{
const { lists } = await getSearch({
keyword: keyword.value,
pageNo, pageSize
})
paging.value.complete(lists);
}catch(e){
console.log('报错=>',e)
//TODO handle the exception
paging.value.complete(false);
}
}
getHotSearchFunc()
search.his_search = cache.get(HISTORY) || new Array()
</script>
<style lang="scss" scoped>
.search {
&-content {
height: calc(100vh - 46px - env(safe-area-inset-bottom));
&-s {
height: 100%;
}
}
}
<!-- 搜索 -->
<view class="search-content">
<!-- -->
<suggest
v-show="!search.searching"
@search="handleSearch"
@clear="handleClear"
:hot_search="search.hot_search"
:his_search="search.his_search"
></suggest>
<!-- -->
<view class="search-content-s pt-[20rpx]" v-show="search.searching">
<z-paging
ref="paging"
v-model="search.result"
@query="queryList"
:fixed="false"
height="100%"
>
<block v-for="(item, index) in search.result" :key="item.id">
<news-card :item="item" :newsId="item.id"></news-card>
</block>
</z-paging>
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import { ref, reactive, shallowRef } from 'vue'
import Suggest from './component/suggest.vue'
import { HISTORY } from '@/enums/cacheEnums'
import { getHotSearch, getSearch } from '@/api/shop'
import cache from '@/utils/cache'
interface Search {
hot_search: string[]
his_search: string[]
result: any
searching: boolean
}
const search = reactive<Search>({
hot_search: [],
his_search: [],
result: [],
searching: false
})
const keyword = ref<string>('')
const paging = shallowRef()
const handleSearch = (value: string) => {
keyword.value = value
if (keyword.value) {
if (!search.his_search.includes(keyword.value)) {
search.his_search.unshift(keyword.value)
cache.set(HISTORY, search.his_search)
}
}
paging.value.reload()
search.searching = true
}
const getHotSearchFunc = async () => {
try {
search.hot_search = await getHotSearch()
} catch (e) {
//TODO handle the exception
console.log('获取热门搜索失败=>', e)
}
}
const handleClear = async (): Promise<void> => {
const resModel: any = await uni.showModal({
title: '温馨提示',
content: '是否清空历史记录?'
})
if (resModel.confirm) {
cache.set(HISTORY, '')
search.his_search = []
}
}
const queryList = async (pageNo, pageSize) => {
try {
const { lists } = await getSearch({
keyword: keyword.value,
pageNo,
pageSize
})
paging.value.complete(lists)
} catch (e) {
console.log('报错=>', e)
//TODO handle the exception
paging.value.complete(false)
}
}
getHotSearchFunc()
search.his_search = cache.get(HISTORY) || []
</script>
<style lang="scss" scoped>
.search {
&-content {
height: calc(100vh - 46px - env(safe-area-inset-bottom));
&-s {
height: 100%;
}
}
}
</style>

View File

@@ -0,0 +1,351 @@
<template>
<!-- Main Start -->
<!-- 头部修改头像 -->
<view class="header bg-white pt-[30rpx]">
<view class="flex justify-center">
<image @click="uploaderAvatar" :src="userInfo?.avatar"></image>
</view>
<view class="mt-[20rpx] text-center text-muted text-xs" @click="uploaderAvatar"
>点击修改头像</view
>
</view>
<!-- 用户ID -->
<view
class="item text-nr flex justify-between"
@click=";(showUserName = true), (newUsername = userInfo?.username)"
>
<view class="label">账号</view>
<view class="content">{{ userInfo?.username }}</view>
<u-icon name="arrow-right" size="22" color="#666"></u-icon>
</view>
<!-- 昵称 -->
<view
class="item text-nr flex justify-between"
@click=";(showNickName = true), (newNickname = userInfo?.nickname)"
>
<view class="label">昵称</view>
<view class="content">{{ userInfo?.nickname }}</view>
<u-icon name="arrow-right" size="22" color="#666"></u-icon>
</view>
<!-- 性别 -->
<view class="item text-nr flex justify-between" @click="changeSex">
<view class="label">性别</view>
<view class="content">{{ userInfo?.sex }}</view>
<u-icon name="arrow-right" size="22" color="#666"></u-icon>
</view>
<!-- 手机号 -->
<view class="item text-nr flex justify-between">
<view class="label">手机号</view>
<view class="content">{{
userInfo?.mobile == '' ? '未绑定手机号' : userInfo?.mobile
}}</view>
<!-- #ifdef MP-WEIXIN -->
<u-button
open-type="getPhoneNumber"
@getphonenumber="getPhoneNumber"
size="mini"
type="primary"
shape="circle"
:plain="true"
>
{{ userInfo?.mobile == '' ? '绑定手机号' : '更换手机号' }}
</u-button>
<!-- #endif -->
<!-- #ifndef MP-WEIXIN -->
<u-button @click="" size="mini" type="primary" shape="circle" :plain="true">
{{ userInfo?.mobile == '' ? '绑定手机号' : '更换手机号' }}
</u-button>
<!-- #endif -->
</view>
<!-- 注册时间 -->
<view class="item text-nr flex justify-between">
<view class="label">注册时间</view>
<view class="content">{{ userInfo?.createTime }}</view>
</view>
<!-- 昵称修改组件 -->
<u-popup v-model="showNickName" :closeable="true" mode="center" border-radius="20">
<view class="px-[50rpx] py-[40rpx] bg-white" style="width: 85vw">
<view class="mb-[70rpx] text-xl text-center">修改昵称</view>
<u-form-item borderBottom>
<u-input
class="flex-1"
v-model="newNickname"
placeholder="请输入昵称"
:border="false"
/>
</u-form-item>
<view class="mt-[80rpx]">
<u-button @click="changeNameConfirm" type="primary" shape="circle"> 确定 </u-button>
</view>
</view>
</u-popup>
<!-- 账号修改组件 -->
<u-popup v-model="showUserName" :closeable="true" mode="center" border-radius="20">
<view class="px-[50rpx] py-[40rpx] bg-white" style="width: 85vw">
<view class="mb-[70rpx] text-xl text-center">修改账号</view>
<u-form-item borderBottom>
<u-input
class="flex-1"
v-model="newUsername"
placeholder="请输入账号"
:border="false"
/>
</u-form-item>
<view class="mt-[80rpx]">
<u-button @click="changeUserNameConfirm" type="primary" shape="circle">
确定
</u-button>
</view>
</view>
</u-popup>
<!-- 性别修改组件 -->
<u-picker
mode="selector"
v-model="showPicker"
confirm-color="#4173FF"
:default-selector="[0]"
:range="sexList"
@confirm="changeSexConfirm"
/>
<!-- 账号修改组件 -->
<u-popup v-model="showMobilePop" :closeable="true" mode="center" border-radius="20">
<view class="px-[50rpx] py-[40rpx] bg-white" style="width: 85vw">
<view class="mb-[70rpx] text-xl text-center">修改手机号码</view>
<u-form-item borderBottom>
<u-input
class="flex-1"
v-model="newMobile"
placeholder="请输入新的手机号码"
:border="false"
/>
</u-form-item>
<u-form-item borderBottom>
<u-input
class="flex-1"
v-model="mobileCode"
placeholder="请输入验证码"
:border="false"
/>
<view
class="border-l border-solid border-0 border-light pl-3 text-muted leading-4 ml-3 w-[180rpx]"
@click="sendSms"
>
<u-verification-code
ref="uCodeRef"
:seconds="60"
@change="codeChange"
change-text="x秒"
/>
{{ codeTips }}
</view>
</u-form-item>
<view class="mt-[80rpx]">
<u-button @click="changeCodeMobile" type="primary" shape="circle"> 确定 </u-button>
</view>
</view>
</u-popup>
</template>
<script lang="ts" setup>
import { ref, shallowRef } from 'vue'
import { onShow, onUnload } from '@dcloudio/uni-app'
import { getUserInfo, userEdit, userBindMobile, userMnpMobile } from '@/api/user.ts'
import { smsSend } from '@/api/app'
import { FieldType, SMSEnum } from '@/enums/appEnums'
import { uploadFile } from '@/utils/util.ts'
// 用户信息
const userInfo = ref<any | null>(null)
// 用户信息的枚举
const fieldType = ref(FieldType.NONE)
//选择性别数据
const sexList = ref<Array<string> | null>(['男', '女'])
//显示昵称弹窗
const showNickName = ref<boolean | null>(false)
//显示账户弹窗
const showUserName = ref<boolean | null>(false)
//显示性别选择弹窗
const showPicker = ref<boolean | null>(false)
// 显示手机号验证码调整弹窗 非小程序才需要
const showMobilePop = ref<boolean | null>(false)
//新昵称
const newNickname = ref<string>('')
//新账号
const newUsername = ref<string>('')
//新的手机号码
const newMobile = ref<string>('')
//修改手机验证码
const mobileCode = ref<string>('')
const codeTips = ref('')
const uCodeRef = shallowRef()
// 获取用户信息
const getUser = async (): Promise<void> => {
userInfo.value = await getUserInfo()
}
// 获取验证码显示字段
const codeChange = (text: string) => {
codeTips.value = text
}
// 发送验证码
const sendSms = async () => {
if (!newMobile.value) return uni.$u.toast('请输入新的手机号码')
if (uCodeRef.value?.canGetCode) {
await smsSend({
scene: userInfo.value.mobile ? SMSEnum.CHANGE_MOBILE : SMSEnum.BIND_MOBILE,
mobile: newMobile.value
})
uni.$u.toast('发送成功')
uCodeRef.value?.start()
}
}
// 验证码修改手机号-非微信小程序
const changeCodeMobile = async () => {
await userBindMobile({
type: userInfo.value.mobile ? 'change' : 'bind',
mobile: newMobile.value,
code: mobileCode.value
})
getUser()
}
// 修改用户信息
const setUserInfoFun = async (value: string): Promise<void> => {
await userEdit({
field: fieldType.value,
value: value
})
getUser()
}
// 上传头像
const uploaderAvatar = () => {
fieldType.value = FieldType.AVATAR
uni.navigateTo({
url: '/uni_modules/vk-uview-ui/components/u-avatar-cropper/u-avatar-cropper?destWidth=300&rectWidth=200&fileType=jpg'
})
}
// 显示修改用户性别弹窗
const changeSex = () => {
showPicker.value = true
fieldType.value = FieldType.SEX
}
// 修改用户性别
const changeSexConfirm = (value) => {
setUserInfoFun(value[0] + 1)
showPicker.value = false
}
// 修改用户账号
const changeUserNameConfirm = () => {
if (newUsername.value == '') return uni.$u.toast('账号不能为空')
if (newUsername.value.length > 10) return uni.$u.toast('账号长度不得超过十位数')
fieldType.value = FieldType.USERNAME
setUserInfoFun(newUsername.value)
showUserName.value = false
}
// 修改用户昵称
const changeNameConfirm = () => {
if (newNickname.value == '') return uni.$u.toast('昵称不能为空')
if (newNickname.value.length > 10) return uni.$u.toast('昵称长度不得超过十位数')
showNickName.value = false
fieldType.value = FieldType.NICKNAME
setUserInfoFun(newNickname.value)
}
// 微信小程序 绑定||修改用户手机号
const getPhoneNumber = async (e): Promise<void> => {
fieldType.value = FieldType.MOBILE
const { encryptedData, iv, code } = e.detail
const data = {
code,
encrypted_data: encryptedData,
iv
}
if (encryptedData) {
await userMnpMobile({
...data
})
getUser()
}
}
const goPage = (url: string) => {
uni.navigateTo({
url: url
})
}
// 监听从裁剪页发布的事件,获得裁剪结果
uni.$on('uAvatarCropper', (path) => {
uni.showLoading({
title: '正在上传中...',
mask: true
})
uploadFile(path)
.then((res) => {
uni.hideLoading()
setUserInfoFun(res.url)
})
.catch(() => {
uni.hideLoading()
uni.$u.toast('上传失败')
})
})
onShow(async () => {
getUser()
})
onUnload(() => {
uni.$off('uAvatarCropper')
})
</script>
<style lang="scss">
.header {
width: 100%;
height: 240rpx;
image {
width: 120rpx;
height: 120rpx;
border-radius: 50%;
}
}
.item {
margin-top: 2rpx;
padding: 30rpx;
background-color: #ffffff;
.label {
width: 150rpx;
}
.content {
flex: 1;
width: 80%;
}
}
</style>

View File

@@ -1,97 +1,136 @@
<template>
<view class="user-set">
<navigator :url="`/pages/user_data/user_data`">
<view class="item flex bg-white mt-[20rpx]">
<u-avatar :src="userInfo.avatar" shape="square"></u-avatar>
<view class="ml-[20rpx] flex flex-1 justify-between">
<view>
<view class="mb-[15rpx] text-xl font-medium">{{ userInfo.nickname }}</view>
<view class="text-content text-xs">账号{{ userInfo.username }}</view>
</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
</view>
</navigator>
<view class="item bg-white mt-[20rpx] btn-border flex flex-1 justify-between">
<view class="text-xl">登录密码</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
<view class="item bg-white btn-border flex flex-1 justify-between">
<view class="text-xl">绑定微信</view>
<view class=" flex justify-between">
<view class="text-muted mr-[20rpx]">
{{ userInfo.isBindMnp ? '已绑定' : '未绑定' }}
</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
</view>
<navigator :url="`/pages/agreement/agreement?type=${ AgreementEnum.PRIVACY }`">
<view class="item bg-white mt-[20rpx] btn-border flex flex-1 justify-between">
<view class="text-xl">隐私政策</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
</navigator>
<navigator :url="`/pages/agreement/agreement?type=${ AgreementEnum.SERVICE }`">
<view class="item bg-white btn-border flex flex-1 justify-between">
<view class="text-xl">服务协议</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
</navigator>
<view class="item bg-white btn-border flex flex-1 justify-between">
<view class="text-xl">关于我们</view>
<view class="flex justify-between">
<view class="text-muted mr-[20rpx]">
{{ appStore.config.version }}
</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
</view>
</view>
</template>
<script setup lang="ts">
import {
getUserInfo
} from '@/api/user'
import {
onShow
} from '@dcloudio/uni-app'
import {
reactive,
ref,
} from 'vue'
import {
useAppStore
} from '@/stores/app'
import {
AgreementEnum
} from '@/enums/agreementEnums'
const appStore = useAppStore()
let userInfo = ref({})
const getUser = async () => {
let res = await getUserInfo()
console.log(res, 'res')
userInfo.value = res
}
onShow(() => {
getUser()
})
</script>
<style lang="scss" scoped>
.user-set {
.item {
padding: 30rpx;
}
.btn-border {
border-bottom: 1rpx solid $u-form-item-border-color;
}
}
<template>
<view class="user-set">
<navigator :url="`/pages/user_data/user_data`">
<view class="item flex bg-white mt-[20rpx]">
<u-avatar :src="userInfo.avatar" shape="square" :size="100"></u-avatar>
<view class="ml-[20rpx] flex flex-1 justify-between items-center">
<view>
<view class="mb-[15rpx] text-xl font-medium">{{ userInfo.nickname }}</view>
<view class="text-content text-xs">账号{{ userInfo.username }}</view>
</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
</view>
</navigator>
<view
class="item bg-white mt-[20rpx] btn-border flex flex-1 justify-between"
@click="show = true"
>
<view class="">登录密码</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
<view class="item bg-white flex flex-1 justify-between">
<view class="">绑定微信</view>
<view class="flex justify-between">
<view class="text-muted mr-[20rpx]">
{{ userInfo.isBindMnp ? '已绑定' : '未绑定' }}
</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
</view>
<navigator :url="`/pages/agreement/agreement?type=${AgreementEnum.PRIVACY}`">
<view class="item bg-white mt-[20rpx] btn-border flex flex-1 justify-between">
<view class="">隐私政策</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
</navigator>
<navigator :url="`/pages/agreement/agreement?type=${AgreementEnum.SERVICE}`">
<view class="item bg-white btn-border flex flex-1 justify-between">
<view class="">服务协议</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
</navigator>
<navigator url="/pages/as_us/as_us">
<view class="item bg-white flex flex-1 justify-between">
<view class="">关于我们</view>
<view class="flex justify-between">
<view class="text-muted mr-[20rpx]">
{{ appStore.config.version }}
</view>
<u-icon name="arrow-right" color="#666"></u-icon>
</view>
</view>
</navigator>
<view class="mt-[60rpx] mx-[26rpx]">
<u-button type="primary" shape="circle" @click="logoutHandle">
退出登录
</u-button>
</view>
<u-action-sheet :list="list" v-model="show" @click="handleClick" :safe-area-inset-bottom="true"></u-action-sheet>
</view>
</template>
<script setup lang="ts">
import { getUserInfo } from '@/api/user'
import { onShow } from '@dcloudio/uni-app'
import { reactive, ref } from 'vue'
import { useAppStore } from '@/stores/app'
import { useUserStore } from '@/stores/user'
import { AgreementEnum } from '@/enums/agreementEnums'
const appStore = useAppStore()
const userStore = useUserStore()
const userInfo = ref({})
const list = ref([
{
text: '修改密码'
},
{
text: '忘记密码'
}
])
const show = ref(false)
// 获取用户信息
const getUser = async () => {
const res = await getUserInfo()
userInfo.value = res
}
// 修改/忘记密码
const handleClick = (index: number) => {
switch (index) {
case 0:
uni.navigateTo({ url: '/pages/change_password/change_password' })
break
case 1:
uni.navigateTo({ url: '/pages/forget_pwd/forget_pwd' })
break
}
}
// 退出登录
const logoutHandle = () => {
uni.showModal({
content: '是否退出登录?',
confirmColor: '#4173FF',
success: ({
cancel
}) => {
if (cancel) return
userStore.login()
uni.redirectTo({ url: '/pages/login/login' })
}
})
}
onShow(() => {
getUser()
})
</script>
<style lang="scss" scoped>
.user-set {
.item {
padding: 30rpx;
}
.btn-border {
border-bottom: 2rpx solid #F8F8F8;
}
}
</style>

View File

@@ -0,0 +1,16 @@
<template>
<web-view :src="url" />
</template>
<script setup lang="ts">
import { onLoad } from '@dcloudio/uni-app'
import { ref } from 'vue'
const url = ref('')
onLoad((options) => {
url.value = options.url!
})
</script>
<style></style>

View File

@@ -1,31 +1,27 @@
import { getToken } from '@/utils/auth'
import { generateRoutes } from './transformPages'
const routes = generateRoutes()
export default async function () {
const list = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab']
list.forEach((item) => {
uni.addInterceptor(item, {
invoke(e) {
// 获取要跳转的页面路径url去掉"?"和"?"后的参数)
const url = e.url.split('?')[0]
const currentRoute = routes.find((item) => {
return url === item.path
export const routes = generateRoutes()
const list = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab']
list.forEach((item) => {
uni.addInterceptor(item, {
invoke(e) {
// 获取要跳转的页面路径url去掉"?"和"?"后的参数)
const url = e.url.split('?')[0]
const currentRoute = routes.find((item) => {
return url === item.path
})
// 需要登录并且没有token
if (currentRoute?.auth && !getToken()) {
uni.navigateTo({
url: '/pages/login/login'
})
// 需要登录并且没有token
if (currentRoute?.isAuth && !getToken()) {
uni.navigateTo({
url: '/pages/login/login'
})
return false
}
return e
},
fail(err) {
// 失败回调拦截
console.log(err)
return false
}
})
return e
},
fail(err) {
// 失败回调拦截
console.log(err)
}
})
}
})

View File

@@ -3,11 +3,7 @@
* (c) 2020 dlhandsome
* @license MIT
*/
(function(global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global.WeCropper = factory());
}(this, (function() {
'use strict';
var device = void 0;
@@ -1260,6 +1256,6 @@
WeCropper.prototype.cutt = cut;
WeCropper.prototype.update = update;
return WeCropper;
export default WeCropper
})));

View File

@@ -243,7 +243,6 @@ export default {
.u-image {
position: relative;
transition: opacity 0.5s ease-in-out;
&__image {
width: 100%;
height: 100%;

View File

@@ -23,7 +23,7 @@ const requestHooks: RequestHooks = {
return options
},
responseInterceptorsHook(response, config) {
const { isTransformResponse, isReturnDefaultResponse } = config
const { isTransformResponse, isReturnDefaultResponse, isAuth } = config
//返回默认响应,当需要获取响应头及其他数据时可使用
if (isReturnDefaultResponse) {
@@ -54,6 +54,11 @@ const requestHooks: RequestHooks = {
case RequestCodeEnum.TOKEN_INVALID:
case RequestCodeEnum.TOKEN_EMPTY:
logout()
if (isAuth && !getToken()) {
uni.navigateTo({
url: '/pages/login/login'
})
}
return Promise.reject()
default:
@@ -77,6 +82,7 @@ const defaultOptions: HttpRequestOptions = {
ignoreCancel: false,
// 是否携带token
withToken: true,
isAuth: false,
requestHooks: requestHooks
}

View File

@@ -14,6 +14,7 @@ export interface RequestConfig {
urlPrefix: string
ignoreCancel: boolean
withToken: boolean
isAuth: boolean
}
export interface RequestHooks {

View File

@@ -1,3 +1,6 @@
import { isObject } from '@vue/shared'
import { getToken } from './auth'
/**
* @description 获取元素节点信息在组件中的元素必须要传ctx
* @param { String } selector 选择器 '.app' | '#app'
@@ -23,3 +26,114 @@ export const getRect = (selector: string, all = false, context?: any) => {
.exec()
})
}
/**
<<<<<<< HEAD
* @description 获取当前页面实例
*/
export function currentPage() {
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
return currentPage || {}
}
/**
* @description 后台选择链接专用跳转
*/
interface Link {
path: string
name?: string
type: string
isTab: boolean
query?: Record<string, any>
}
export enum LinkTypeEnum {
'SHOP_PAGES' = 'shop',
'CUSTOM_LINK' = 'custom'
}
export function navigateTo(link: Link) {
let url: string
switch (link.type) {
case LinkTypeEnum.SHOP_PAGES:
url = link.query ? `${link.path}?${objectToQuery(link.query)}` : link.path
if (link.isTab) {
uni.switchTab({ url })
} else {
uni.navigateTo({ url })
}
break
case LinkTypeEnum.CUSTOM_LINK:
uni.navigateTo({ url: `/pages/webview/webview?url=${link.path}` })
}
}
/**
* @description 是否为空
* @param {unknown} value
* @return {Boolean}
*/
export const isEmpty = (value: unknown) => {
return value == null && typeof value == 'undefined'
}
/**
* @description 对象格式化为Query语法
* @param { Object } params
* @return {string} Query语法
*/
export function objectToQuery(params: Record<string, any>): string {
let query = ''
for (const props of Object.keys(params)) {
const value = params[props]
const part = encodeURIComponent(props) + '='
if (!isEmpty(value)) {
console.log(encodeURIComponent(props), isObject(value))
if (isObject(value)) {
for (const key of Object.keys(value)) {
if (!isEmpty(value[key])) {
const params = props + '[' + key + ']'
const subPart = encodeURIComponent(params) + '='
query += subPart + encodeURIComponent(value[key]) + '&'
}
}
} else {
console.log(part + encodeURIComponent(value), '####')
query += part + encodeURIComponent(value) + '&'
}
}
}
return query.slice(0, -1)
}
/**
* @description 上传图片
* @param { String } path 选择的本地地址
*/
export function uploadFile(path: any) {
return new Promise((resolve, reject) => {
const token = getToken()
uni.uploadFile({
url: `${import.meta.env.VITE_APP_BASE_URL}/api/upload/image`,
filePath: path,
name: 'file',
header: {
token
},
fileType: 'image',
success: (res) => {
console.log('uploadFile res ==> ', res)
const data = JSON.parse(res.data)
console.log('data.code', data.code)
if (data.code == 200) {
resolve(data.data)
} else {
reject()
}
},
fail: (err) => {
console.log(err)
reject()
}
})
})
}

View File

@@ -1 +1 @@
import o from"./error.bbecbd19.js";import{d as r,o as t,c as m,V as p}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.5046cc50.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const i={class:"error404"},J=r({__name:"403",setup(u){return(e,s)=>(t(),m("div",i,[p(o,{code:"403",title:"\u60A8\u7684\u8D26\u53F7\u6743\u9650\u4E0D\u8DB3\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650\uFF01","show-btn":!1})]))}});export{J as default};
import o from"./error.44f50702.js";import{d as r,o as t,c as m,V as p}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.5046cc50.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const i={class:"error404"},J=r({__name:"403",setup(u){return(e,s)=>(t(),m("div",i,[p(o,{code:"403",title:"\u60A8\u7684\u8D26\u53F7\u6743\u9650\u4E0D\u8DB3\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650\uFF01","show-btn":!1})]))}});export{J as default};

View File

@@ -1 +1 @@
import o from"./error.bbecbd19.js";import{d as r,o as t,c as m,V as p}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.5046cc50.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const i={class:"error404"},J=r({__name:"404",setup(e){return(u,c)=>(t(),m("div",i,[p(o,{code:"404",title:"\u54CE\u5440\uFF0C\u51FA\u9519\u4E86\uFF01\u60A8\u8BBF\u95EE\u7684\u9875\u9762\u4E0D\u5B58\u5728\u2026"})]))}});export{J as default};
import o from"./error.44f50702.js";import{d as r,o as t,c as m,V as p}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.5046cc50.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const i={class:"error404"},J=r({__name:"404",setup(e){return(u,c)=>(t(),m("div",i,[p(o,{code:"404",title:"\u54CE\u5440\uFF0C\u51FA\u9519\u4E86\uFF01\u60A8\u8BBF\u95EE\u7684\u9875\u9762\u4E0D\u5B58\u5728\u2026"})]))}});export{J as default};

View File

@@ -1 +1 @@
import"./add-nav.vue_vue_type_script_setup_true_lang.1cb09cc7.js";import{_ as Q}from"./add-nav.vue_vue_type_script_setup_true_lang.1cb09cc7.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.e14f68ca.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.51278156.js";import"./index.ea69f3d7.js";import"./picker.29f42532.js";import"./index.be7557e1.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{Q as default};
import"./add-nav.vue_vue_type_script_setup_true_lang.c1cec697.js";import{_ as Q}from"./add-nav.vue_vue_type_script_setup_true_lang.c1cec697.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.8c4e7c10.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.a54c417b.js";import"./index.78e6f421.js";import"./picker.99919d7c.js";import"./index.1f6589be.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{Q as default};

View File

@@ -1 +1 @@
import{y as b,u as v}from"./element-plus.f93fd622.js";import{_ as y}from"./index.e14f68ca.js";import{_ as F}from"./picker.vue_vue_type_script_setup_true_lang.51278156.js";import{_ as A}from"./picker.29f42532.js";import{f as _,b as B}from"./index.ab5c8d8d.js";import{d as E,o as u,c as r,a as e,W as D,a8 as C,L as U,M as m,V as t,T as $}from"./@vue.cab01781.js";const w={class:"bg-fill-light flex items-center w-full p-4 mb-4"},N={class:"upload-btn w-[60px] h-[60px]"},z={class:"ml-3 flex-1"},L={class:"flex"},T=e("span",{class:"text-tx-regular flex-none mr-3"},"\u540D\u79F0",-1),I={class:"flex mt-[18px]"},M=e("span",{class:"text-tx-regular flex-none mr-3"},"\u94FE\u63A5",-1),P=$("\u6DFB\u52A0"),K=E({__name:"add-nav",props:{modelValue:{type:Array,default:()=>[]},max:{type:Number,default:10},min:{type:Number,default:1}},setup(d){const l=d,p=()=>{var n;((n=l.modelValue)==null?void 0:n.length)<l.max?l.modelValue.push({image:"",name:"",link:{}}):_.msgError(`\u6700\u591A\u6DFB\u52A0${l.max}\u4E2A`)},i=n=>{var s;if(((s=l.modelValue)==null?void 0:s.length)<=l.min)return _.msgError(`\u6700\u5C11\u4FDD\u7559${l.min}\u4E2A`);l.modelValue.splice(n,1)};return(n,s)=>{const f=B,x=A,V=b,h=F,g=y,k=v;return u(),r("div",null,[e("div",null,[(u(!0),r(D,null,C(d.modelValue,(o,c)=>(u(),U(g,{class:"max-w-[400px]",key:c,onClose:a=>i(c)},{default:m(()=>[e("div",w,[t(x,{modelValue:o.image,"onUpdate:modelValue":a=>o.image=a,"upload-class":"bg-body",size:"60px","exclude-domain":""},{upload:m(()=>[e("div",N,[t(f,{name:"el-icon-Plus",size:20})])]),_:2},1032,["modelValue","onUpdate:modelValue"]),e("div",z,[e("div",L,[T,t(V,{modelValue:o.name,"onUpdate:modelValue":a=>o.name=a,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),e("div",I,[M,t(h,{modelValue:o.link,"onUpdate:modelValue":a=>o.link=a},null,8,["modelValue","onUpdate:modelValue"])])])])]),_:2},1032,["onClose"]))),128))]),e("div",null,[t(k,{type:"primary",onClick:p},{default:m(()=>[P]),_:1})])])}}});export{K as _};
import{y as b,u as v}from"./element-plus.f93fd622.js";import{_ as y}from"./index.8c4e7c10.js";import{_ as F}from"./picker.vue_vue_type_script_setup_true_lang.a54c417b.js";import{_ as A}from"./picker.99919d7c.js";import{f as _,b as B}from"./index.86c64501.js";import{d as E,o as u,c as r,a as e,W as D,a8 as C,L as U,M as m,V as t,T as $}from"./@vue.cab01781.js";const w={class:"bg-fill-light flex items-center w-full p-4 mb-4"},N={class:"upload-btn w-[60px] h-[60px]"},z={class:"ml-3 flex-1"},L={class:"flex"},T=e("span",{class:"text-tx-regular flex-none mr-3"},"\u540D\u79F0",-1),I={class:"flex mt-[18px]"},M=e("span",{class:"text-tx-regular flex-none mr-3"},"\u94FE\u63A5",-1),P=$("\u6DFB\u52A0"),K=E({__name:"add-nav",props:{modelValue:{type:Array,default:()=>[]},max:{type:Number,default:10},min:{type:Number,default:1}},setup(d){const l=d,p=()=>{var n;((n=l.modelValue)==null?void 0:n.length)<l.max?l.modelValue.push({image:"",name:"",link:{}}):_.msgError(`\u6700\u591A\u6DFB\u52A0${l.max}\u4E2A`)},i=n=>{var s;if(((s=l.modelValue)==null?void 0:s.length)<=l.min)return _.msgError(`\u6700\u5C11\u4FDD\u7559${l.min}\u4E2A`);l.modelValue.splice(n,1)};return(n,s)=>{const f=B,x=A,V=b,h=F,g=y,k=v;return u(),r("div",null,[e("div",null,[(u(!0),r(D,null,C(d.modelValue,(o,c)=>(u(),U(g,{class:"max-w-[400px]",key:c,onClose:a=>i(c)},{default:m(()=>[e("div",w,[t(x,{modelValue:o.image,"onUpdate:modelValue":a=>o.image=a,"upload-class":"bg-body",size:"60px","exclude-domain":""},{upload:m(()=>[e("div",N,[t(f,{name:"el-icon-Plus",size:20})])]),_:2},1032,["modelValue","onUpdate:modelValue"]),e("div",z,[e("div",L,[T,t(V,{modelValue:o.name,"onUpdate:modelValue":a=>o.name=a,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),e("div",I,[M,t(h,{modelValue:o.link,"onUpdate:modelValue":a=>o.link=a},null,8,["modelValue","onUpdate:modelValue"])])])])]),_:2},1032,["onClose"]))),128))]),e("div",null,[t(k,{type:"primary",onClick:p},{default:m(()=>[P]),_:1})])])}}});export{K as _};

View File

@@ -0,0 +1 @@
import{r as e}from"./index.86c64501.js";function a(t){return e.get({url:"/article/cate/list",params:t})}function l(t){return e.get({url:"/article/cate/all",params:t})}function i(t){return e.post({url:"/article/cate/add",params:t})}function c(t){return e.post({url:"/article/cate/edit",params:t})}function u(t){return e.post({url:"/article/cate/del",params:t})}function n(t){return e.get({url:"/article/cate/detail",params:t})}function s(t){return e.post({url:"/article/cate/change",params:t})}function o(t){return e.get({url:"/article/list",params:t})}function d(t){return e.post({url:"/article/add",params:t})}function f(t){return e.post({url:"/article/edit",params:t})}function p(t){return e.post({url:"/article/del",params:t})}function g(t){return e.get({url:"/article/detail",params:t})}function C(t){return e.post({url:"/article/change",params:t})}export{c as a,i as b,n as c,u as d,s as e,a as f,g,l as h,f as i,d as j,C as k,p as l,o as m};

View File

@@ -1 +0,0 @@
import{r as e}from"./index.ab5c8d8d.js";function a(t){return e.get({url:"/article/cate/list",params:t})}function l(t){return e.get({url:"/article/cate/all",params:t})}function i(t){return e.post({url:"/article/cate/add",params:t})}function c(t){return e.post({url:"/article/cate/edit",params:t})}function u(t){return e.post({url:"/article/cate/del",params:t})}function n(t){return e.get({url:"/article/cate/detail",params:t})}function s(t){return e.post({url:"/article/cate/change",params:t})}function o(t){return e.get({url:"/article/list",params:t})}function f(t){return e.post({url:"/article/edit",params:t})}function d(t){return e.post({url:"/article/del",params:t})}function p(t){return e.get({url:"/article/detail",params:t})}function g(t){return e.post({url:"/article/change",params:t})}export{c as a,i as b,n as c,u as d,s as e,a as f,p as g,l as h,f as i,g as j,d as k,o as l};

View File

@@ -1 +1 @@
import"./attr-setting.vue_vue_type_script_setup_true_lang.1fae1728.js";import{_ as pm}from"./attr-setting.vue_vue_type_script_setup_true_lang.1fae1728.js";import"./index.c5fc6e86.js";import"./attr.vue_vue_type_script_setup_true_lang.1b6e0b72.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.e14f68ca.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.51278156.js";import"./index.ea69f3d7.js";import"./picker.29f42532.js";import"./index.be7557e1.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";import"./content.vue_vue_type_script_setup_true_lang.ef2a15e8.js";import"./attr.vue_vue_type_script_setup_true_lang.acb50d99.js";import"./content.be9a8727.js";import"./attr.vue_vue_type_script_setup_true_lang.741d6988.js";import"./add-nav.vue_vue_type_script_setup_true_lang.1cb09cc7.js";import"./content.0444bd3e.js";import"./attr.vue_vue_type_script_setup_true_lang.b011bc50.js";import"./content.f81b935d.js";import"./attr.vue_vue_type_script_setup_true_lang.0b87e513.js";import"./content.b1a283df.js";import"./attr.vue_vue_type_script_setup_true_lang.1a7dc398.js";import"./content.vue_vue_type_script_setup_true_lang.d03661f0.js";import"./attr.vue_vue_type_script_setup_true_lang.0583d8bc.js";import"./content.f0e3062b.js";export{pm as default};
import"./attr-setting.vue_vue_type_script_setup_true_lang.c086565f.js";import{_ as pm}from"./attr-setting.vue_vue_type_script_setup_true_lang.c086565f.js";import"./index.6f5e57de.js";import"./attr.vue_vue_type_script_setup_true_lang.a4d005a2.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.8c4e7c10.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.a54c417b.js";import"./index.78e6f421.js";import"./picker.99919d7c.js";import"./index.1f6589be.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";import"./content.vue_vue_type_script_setup_true_lang.2c4c92b3.js";import"./attr.vue_vue_type_script_setup_true_lang.ee163012.js";import"./content.38542add.js";import"./attr.vue_vue_type_script_setup_true_lang.920d9401.js";import"./add-nav.vue_vue_type_script_setup_true_lang.c1cec697.js";import"./content.10c5ef91.js";import"./attr.vue_vue_type_script_setup_true_lang.2a1b1b18.js";import"./content.279cc4b8.js";import"./attr.vue_vue_type_script_setup_true_lang.0b87e513.js";import"./content.b6235baf.js";import"./attr.vue_vue_type_script_setup_true_lang.be11ffff.js";import"./content.vue_vue_type_script_setup_true_lang.a3e925ac.js";import"./attr.vue_vue_type_script_setup_true_lang.0583d8bc.js";import"./content.7ebe44c2.js";export{pm as default};

View File

@@ -1 +1 @@
import{w as i}from"./index.c5fc6e86.js";import{d as l,o as t,c as d,a as m,U as f,L as c,R as p,u as g,aK as b}from"./@vue.cab01781.js";const u={class:"pages-setting"},w={class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2"},k=l({__name:"attr-setting",props:{widget:{type:Object,default:()=>({})}},setup(e){return(y,x)=>{var s,a,n,o,r;return t(),d("div",u,[m("div",w,f((s=e.widget)==null?void 0:s.title),1),(t(),c(b,null,[(t(),c(p((n=g(i)[(a=e.widget)==null?void 0:a.name])==null?void 0:n.attr),{class:"pt-5 pr-4",content:(o=e.widget)==null?void 0:o.content,styles:(r=e.widget)==null?void 0:r.styles},null,8,["content","styles"]))],1024))])}}});export{k as _};
import{w as i}from"./index.6f5e57de.js";import{d as l,o as t,c as d,a as m,U as f,L as c,R as p,u as g,aK as b}from"./@vue.cab01781.js";const u={class:"pages-setting"},w={class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2"},k=l({__name:"attr-setting",props:{widget:{type:Object,default:()=>({})}},setup(e){return(y,x)=>{var s,a,n,o,r;return t(),d("div",u,[m("div",w,f((s=e.widget)==null?void 0:s.title),1),(t(),c(b,null,[(t(),c(p((n=g(i)[(a=e.widget)==null?void 0:a.name])==null?void 0:n.attr),{class:"pt-5 pr-4",content:(o=e.widget)==null?void 0:o.content,styles:(r=e.widget)==null?void 0:r.styles},null,8,["content","styles"]))],1024))])}}});export{k as _};

View File

@@ -1 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.741d6988.js";import{_ as R}from"./attr.vue_vue_type_script_setup_true_lang.741d6988.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.1cb09cc7.js";import"./index.e14f68ca.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.51278156.js";import"./index.ea69f3d7.js";import"./picker.29f42532.js";import"./index.be7557e1.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{R as default};
import"./attr.vue_vue_type_script_setup_true_lang.2a1b1b18.js";import{_ as R}from"./attr.vue_vue_type_script_setup_true_lang.2a1b1b18.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.c1cec697.js";import"./index.8c4e7c10.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.a54c417b.js";import"./index.78e6f421.js";import"./picker.99919d7c.js";import"./index.1f6589be.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{R as default};

View File

@@ -1 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.b011bc50.js";import{_ as R}from"./attr.vue_vue_type_script_setup_true_lang.b011bc50.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.1cb09cc7.js";import"./index.e14f68ca.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.51278156.js";import"./index.ea69f3d7.js";import"./picker.29f42532.js";import"./index.be7557e1.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{R as default};
import"./attr.vue_vue_type_script_setup_true_lang.920d9401.js";import{_ as R}from"./attr.vue_vue_type_script_setup_true_lang.920d9401.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.c1cec697.js";import"./index.8c4e7c10.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.a54c417b.js";import"./index.78e6f421.js";import"./picker.99919d7c.js";import"./index.1f6589be.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{R as default};

View File

@@ -1 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.1b6e0b72.js";import{_ as Q}from"./attr.vue_vue_type_script_setup_true_lang.1b6e0b72.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.e14f68ca.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.51278156.js";import"./index.ea69f3d7.js";import"./picker.29f42532.js";import"./index.be7557e1.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{Q as default};
import"./attr.vue_vue_type_script_setup_true_lang.a4d005a2.js";import{_ as Q}from"./attr.vue_vue_type_script_setup_true_lang.a4d005a2.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.8c4e7c10.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.a54c417b.js";import"./index.78e6f421.js";import"./picker.99919d7c.js";import"./index.1f6589be.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{Q as default};

View File

@@ -1 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.acb50d99.js";import{_ as P}from"./attr.vue_vue_type_script_setup_true_lang.acb50d99.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.29f42532.js";import"./index.ea69f3d7.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.be7557e1.js";import"./usePaging.226fac59.js";import"./index.e14f68ca.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{P as default};
import"./attr.vue_vue_type_script_setup_true_lang.ee163012.js";import{_ as P}from"./attr.vue_vue_type_script_setup_true_lang.ee163012.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.99919d7c.js";import"./index.78e6f421.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.1f6589be.js";import"./usePaging.226fac59.js";import"./index.8c4e7c10.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{P as default};

View File

@@ -1 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.1a7dc398.js";import{_ as Q}from"./attr.vue_vue_type_script_setup_true_lang.1a7dc398.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.e14f68ca.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.51278156.js";import"./index.ea69f3d7.js";import"./picker.29f42532.js";import"./index.be7557e1.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{Q as default};
import"./attr.vue_vue_type_script_setup_true_lang.be11ffff.js";import{_ as Q}from"./attr.vue_vue_type_script_setup_true_lang.be11ffff.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.8c4e7c10.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.vue_vue_type_script_setup_true_lang.a54c417b.js";import"./index.78e6f421.js";import"./picker.99919d7c.js";import"./index.1f6589be.js";import"./usePaging.226fac59.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";export{Q as default};

View File

@@ -1 +1 @@
import{M as c,N as r,A as i,B as f}from"./element-plus.f93fd622.js";import{_ as p}from"./add-nav.vue_vue_type_script_setup_true_lang.1cb09cc7.js";import{d as F,o as E,c as b,V as e,M as t,a as d,T as s}from"./@vue.cab01781.js";const V=s("\u5F00\u542F"),B=s("\u505C\u7528"),x={class:"flex-1"},A=d("div",{class:"form-tips mb-4"},"\u6700\u591A\u53EF\u6DFB\u52A010\u4E2A\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A100px*100px",-1),y=F({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){return(C,a)=>{const u=c,m=r,n=i,_=f;return E(),b("div",null,[e(_,{"label-width":"70px"},{default:t(()=>[e(n,{label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(m,{modelValue:o.content.enabled,"onUpdate:modelValue":a[0]||(a[0]=l=>o.content.enabled=l)},{default:t(()=>[e(u,{label:1},{default:t(()=>[V]),_:1}),e(u,{label:0},{default:t(()=>[B]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(n,{label:"\u83DC\u5355\u8BBE\u7F6E"},{default:t(()=>[d("div",x,[A,e(p,{modelValue:o.content.data,"onUpdate:modelValue":a[1]||(a[1]=l=>o.content.data=l)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{y as _};
import{M as c,N as r,A as i,B as f}from"./element-plus.f93fd622.js";import{_ as p}from"./add-nav.vue_vue_type_script_setup_true_lang.c1cec697.js";import{d as F,o as E,c as b,V as e,M as t,a as d,T as s}from"./@vue.cab01781.js";const V=s("\u5F00\u542F"),B=s("\u505C\u7528"),x={class:"flex-1"},A=d("div",{class:"form-tips mb-4"},"\u6700\u591A\u53EF\u6DFB\u52A010\u4E2A\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A100px*100px",-1),y=F({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){return(C,a)=>{const u=c,m=r,n=i,_=f;return E(),b("div",null,[e(_,{"label-width":"70px"},{default:t(()=>[e(n,{label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(m,{modelValue:o.content.enabled,"onUpdate:modelValue":a[0]||(a[0]=l=>o.content.enabled=l)},{default:t(()=>[e(u,{label:1},{default:t(()=>[V]),_:1}),e(u,{label:0},{default:t(()=>[B]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(n,{label:"\u83DC\u5355\u8BBE\u7F6E"},{default:t(()=>[d("div",x,[A,e(p,{modelValue:o.content.data,"onUpdate:modelValue":a[1]||(a[1]=l=>o.content.data=l)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{y as _};

View File

@@ -1 +1 @@
import{M as _,N as i,A as r,y as f,B as p}from"./element-plus.f93fd622.js";import{_ as V}from"./add-nav.vue_vue_type_script_setup_true_lang.1cb09cc7.js";import{d as b,o as E,c as x,V as e,M as t,a as y,T as d}from"./@vue.cab01781.js";const B=d("\u6A2A\u6392"),F=d("\u7AD6\u6392"),A={class:"flex-1"},U=b({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(l){return(N,o)=>{const u=_,s=i,n=r,m=f,c=p;return E(),x("div",null,[e(c,{"label-width":"70px"},{default:t(()=>[e(n,{label:"\u6392\u7248\u6837\u5F0F"},{default:t(()=>[e(s,{modelValue:l.content.style,"onUpdate:modelValue":o[0]||(o[0]=a=>l.content.style=a)},{default:t(()=>[e(u,{label:1},{default:t(()=>[B]),_:1}),e(u,{label:2},{default:t(()=>[F]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(n,{label:"\u6807\u9898\u540D\u79F0"},{default:t(()=>[e(m,{class:"w-[400px]",modelValue:l.content.title,"onUpdate:modelValue":o[1]||(o[1]=a=>l.content.title=a)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u83DC\u5355\u8BBE\u7F6E"},{default:t(()=>[y("div",A,[e(V,{modelValue:l.content.data,"onUpdate:modelValue":o[2]||(o[2]=a=>l.content.data=a)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{U as _};
import{M as _,N as i,A as r,y as f,B as p}from"./element-plus.f93fd622.js";import{_ as V}from"./add-nav.vue_vue_type_script_setup_true_lang.c1cec697.js";import{d as b,o as E,c as x,V as e,M as t,a as y,T as d}from"./@vue.cab01781.js";const B=d("\u6A2A\u6392"),F=d("\u7AD6\u6392"),A={class:"flex-1"},U=b({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(l){return(N,o)=>{const u=_,s=i,n=r,m=f,c=p;return E(),x("div",null,[e(c,{"label-width":"70px"},{default:t(()=>[e(n,{label:"\u6392\u7248\u6837\u5F0F"},{default:t(()=>[e(s,{modelValue:l.content.style,"onUpdate:modelValue":o[0]||(o[0]=a=>l.content.style=a)},{default:t(()=>[e(u,{label:1},{default:t(()=>[B]),_:1}),e(u,{label:2},{default:t(()=>[F]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(n,{label:"\u6807\u9898\u540D\u79F0"},{default:t(()=>[e(m,{class:"w-[400px]",modelValue:l.content.title,"onUpdate:modelValue":o[1]||(o[1]=a=>l.content.title=a)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u83DC\u5355\u8BBE\u7F6E"},{default:t(()=>[y("div",A,[e(V,{modelValue:l.content.data,"onUpdate:modelValue":o[2]||(o[2]=a=>l.content.data=a)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{U as _};

View File

@@ -1 +1 @@
import{M as D,N as U,A as v,y as w,u as N,B as $}from"./element-plus.f93fd622.js";import{_ as j}from"./index.e14f68ca.js";import{_ as I}from"./picker.vue_vue_type_script_setup_true_lang.51278156.js";import{_ as L}from"./picker.29f42532.js";import{f as F}from"./index.ab5c8d8d.js";import{d as M,o as c,c as E,V as e,M as t,a as m,W as O,a8 as R,L as V,S as T,T as r}from"./@vue.cab01781.js";const G=r("\u5F00\u542F"),S=r("\u505C\u7528"),W={class:"flex-1"},q=m("div",{class:"form-tips"},"\u6700\u591A\u6DFB\u52A05\u5F20\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A750px*240px",-1),z={class:"bg-fill-light flex items-center w-full p-4 mt-4"},H={class:"ml-3 flex-1"},J=r("\u6DFB\u52A0\u56FE\u7247"),ee=M({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(a){const d=a,_=5,b=()=>{var n;((n=d.content.data)==null?void 0:n.length)<_?d.content.data.push({image:"",name:"",link:{}}):F.msgError(`\u6700\u591A\u6DFB\u52A0${_}\u5F20\u56FE\u7247`)},h=n=>{var u;if(((u=d.content.data)==null?void 0:u.length)<=1)return F.msgError("\u6700\u5C11\u4FDD\u7559\u4E00\u5F20\u56FE\u7247");d.content.data.splice(n,1)};return(n,u)=>{const i=D,g=U,s=v,B=L,k=w,x=I,A=j,C=N,y=$;return c(),E("div",null,[e(y,{"label-width":"70px"},{default:t(()=>{var p;return[e(s,{label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(g,{modelValue:a.content.enabled,"onUpdate:modelValue":u[0]||(u[0]=o=>a.content.enabled=o)},{default:t(()=>[e(i,{label:1},{default:t(()=>[G]),_:1}),e(i,{label:0},{default:t(()=>[S]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(s,{label:"\u56FE\u7247\u8BBE\u7F6E"},{default:t(()=>[m("div",W,[q,(c(!0),E(O,null,R(a.content.data,(o,f)=>(c(),V(A,{key:f,onClose:l=>h(f),class:"max-w-[400px]"},{default:t(()=>[m("div",z,[e(B,{modelValue:o.image,"onUpdate:modelValue":l=>o.image=l,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),m("div",H,[e(s,{label:"\u56FE\u7247\u540D\u79F0"},{default:t(()=>[e(k,{modelValue:o.name,"onUpdate:modelValue":l=>o.name=l,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(s,{class:"mt-[18px]",label:"\u56FE\u7247\u94FE\u63A5"},{default:t(()=>[e(x,{modelValue:o.link,"onUpdate:modelValue":l=>o.link=l},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)])])]),_:2},1032,["onClose"]))),128))])]),_:1}),((p=a.content.data)==null?void 0:p.length)<_?(c(),V(s,{key:0},{default:t(()=>[e(C,{type:"primary",onClick:b},{default:t(()=>[J]),_:1})]),_:1})):T("",!0)]}),_:1})])}}});export{ee as _};
import{M as D,N as U,A as v,y as w,u as N,B as $}from"./element-plus.f93fd622.js";import{_ as j}from"./index.8c4e7c10.js";import{_ as I}from"./picker.vue_vue_type_script_setup_true_lang.a54c417b.js";import{_ as L}from"./picker.99919d7c.js";import{f as F}from"./index.86c64501.js";import{d as M,o as c,c as E,V as e,M as t,a as m,W as O,a8 as R,L as V,S as T,T as r}from"./@vue.cab01781.js";const G=r("\u5F00\u542F"),S=r("\u505C\u7528"),W={class:"flex-1"},q=m("div",{class:"form-tips"},"\u6700\u591A\u6DFB\u52A05\u5F20\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A750px*240px",-1),z={class:"bg-fill-light flex items-center w-full p-4 mt-4"},H={class:"ml-3 flex-1"},J=r("\u6DFB\u52A0\u56FE\u7247"),ee=M({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(a){const d=a,_=5,b=()=>{var n;((n=d.content.data)==null?void 0:n.length)<_?d.content.data.push({image:"",name:"",link:{}}):F.msgError(`\u6700\u591A\u6DFB\u52A0${_}\u5F20\u56FE\u7247`)},h=n=>{var u;if(((u=d.content.data)==null?void 0:u.length)<=1)return F.msgError("\u6700\u5C11\u4FDD\u7559\u4E00\u5F20\u56FE\u7247");d.content.data.splice(n,1)};return(n,u)=>{const i=D,g=U,s=v,B=L,k=w,x=I,A=j,C=N,y=$;return c(),E("div",null,[e(y,{"label-width":"70px"},{default:t(()=>{var p;return[e(s,{label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(g,{modelValue:a.content.enabled,"onUpdate:modelValue":u[0]||(u[0]=o=>a.content.enabled=o)},{default:t(()=>[e(i,{label:1},{default:t(()=>[G]),_:1}),e(i,{label:0},{default:t(()=>[S]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(s,{label:"\u56FE\u7247\u8BBE\u7F6E"},{default:t(()=>[m("div",W,[q,(c(!0),E(O,null,R(a.content.data,(o,f)=>(c(),V(A,{key:f,onClose:l=>h(f),class:"max-w-[400px]"},{default:t(()=>[m("div",z,[e(B,{modelValue:o.image,"onUpdate:modelValue":l=>o.image=l,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),m("div",H,[e(s,{label:"\u56FE\u7247\u540D\u79F0"},{default:t(()=>[e(k,{modelValue:o.name,"onUpdate:modelValue":l=>o.name=l,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(s,{class:"mt-[18px]",label:"\u56FE\u7247\u94FE\u63A5"},{default:t(()=>[e(x,{modelValue:o.link,"onUpdate:modelValue":l=>o.link=l},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)])])]),_:2},1032,["onClose"]))),128))])]),_:1}),((p=a.content.data)==null?void 0:p.length)<_?(c(),V(s,{key:0},{default:t(()=>[e(C,{type:"primary",onClick:b},{default:t(()=>[J]),_:1})]),_:1})):T("",!0)]}),_:1})])}}});export{ee as _};

View File

@@ -1 +1 @@
import{M as D,N as U,A as v,y as w,u as N,B as $}from"./element-plus.f93fd622.js";import{_ as j}from"./index.e14f68ca.js";import{_ as I}from"./picker.vue_vue_type_script_setup_true_lang.51278156.js";import{_ as L}from"./picker.29f42532.js";import{f as F}from"./index.ab5c8d8d.js";import{d as M,o as c,c as E,V as e,M as t,a as m,W as O,a8 as R,L as V,S as T,T as r}from"./@vue.cab01781.js";const G=r("\u5F00\u542F"),S=r("\u505C\u7528"),W={class:"flex-1"},q=m("div",{class:"form-tips"},"\u6700\u591A\u6DFB\u52A05\u5F20\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A750px*200px",-1),z={class:"bg-fill-light flex items-center w-full p-4 mt-4"},H={class:"ml-3 flex-1"},J=r("\u6DFB\u52A0\u56FE\u7247"),ee=M({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(a){const d=a,_=5,b=()=>{var n;((n=d.content.data)==null?void 0:n.length)<_?d.content.data.push({image:"",name:"",link:{}}):F.msgError(`\u6700\u591A\u6DFB\u52A0${_}\u5F20\u56FE\u7247`)},h=n=>{var u;if(((u=d.content.data)==null?void 0:u.length)<=1)return F.msgError("\u6700\u5C11\u4FDD\u7559\u4E00\u5F20\u56FE\u7247");d.content.data.splice(n,1)};return(n,u)=>{const i=D,g=U,s=v,B=L,k=w,x=I,A=j,C=N,y=$;return c(),E("div",null,[e(y,{"label-width":"70px"},{default:t(()=>{var p;return[e(s,{label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(g,{modelValue:a.content.enabled,"onUpdate:modelValue":u[0]||(u[0]=o=>a.content.enabled=o)},{default:t(()=>[e(i,{label:1},{default:t(()=>[G]),_:1}),e(i,{label:0},{default:t(()=>[S]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(s,{label:"\u56FE\u7247\u8BBE\u7F6E"},{default:t(()=>[m("div",W,[q,(c(!0),E(O,null,R(a.content.data,(o,f)=>(c(),V(A,{key:f,onClose:l=>h(f),class:"max-w-[400px]"},{default:t(()=>[m("div",z,[e(B,{modelValue:o.image,"onUpdate:modelValue":l=>o.image=l,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),m("div",H,[e(s,{label:"\u56FE\u7247\u540D\u79F0"},{default:t(()=>[e(k,{modelValue:o.name,"onUpdate:modelValue":l=>o.name=l,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(s,{class:"mt-[18px]",label:"\u56FE\u7247\u94FE\u63A5"},{default:t(()=>[e(x,{modelValue:o.link,"onUpdate:modelValue":l=>o.link=l},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)])])]),_:2},1032,["onClose"]))),128))])]),_:1}),((p=a.content.data)==null?void 0:p.length)<_?(c(),V(s,{key:0},{default:t(()=>[e(C,{type:"primary",onClick:b},{default:t(()=>[J]),_:1})]),_:1})):T("",!0)]}),_:1})])}}});export{ee as _};
import{M as D,N as U,A as v,y as w,u as N,B as $}from"./element-plus.f93fd622.js";import{_ as j}from"./index.8c4e7c10.js";import{_ as I}from"./picker.vue_vue_type_script_setup_true_lang.a54c417b.js";import{_ as L}from"./picker.99919d7c.js";import{f as F}from"./index.86c64501.js";import{d as M,o as c,c as E,V as e,M as t,a as m,W as O,a8 as R,L as V,S as T,T as r}from"./@vue.cab01781.js";const G=r("\u5F00\u542F"),S=r("\u505C\u7528"),W={class:"flex-1"},q=m("div",{class:"form-tips"},"\u6700\u591A\u6DFB\u52A05\u5F20\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A750px*200px",-1),z={class:"bg-fill-light flex items-center w-full p-4 mt-4"},H={class:"ml-3 flex-1"},J=r("\u6DFB\u52A0\u56FE\u7247"),ee=M({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(a){const d=a,_=5,b=()=>{var n;((n=d.content.data)==null?void 0:n.length)<_?d.content.data.push({image:"",name:"",link:{}}):F.msgError(`\u6700\u591A\u6DFB\u52A0${_}\u5F20\u56FE\u7247`)},h=n=>{var u;if(((u=d.content.data)==null?void 0:u.length)<=1)return F.msgError("\u6700\u5C11\u4FDD\u7559\u4E00\u5F20\u56FE\u7247");d.content.data.splice(n,1)};return(n,u)=>{const i=D,g=U,s=v,B=L,k=w,x=I,A=j,C=N,y=$;return c(),E("div",null,[e(y,{"label-width":"70px"},{default:t(()=>{var p;return[e(s,{label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(g,{modelValue:a.content.enabled,"onUpdate:modelValue":u[0]||(u[0]=o=>a.content.enabled=o)},{default:t(()=>[e(i,{label:1},{default:t(()=>[G]),_:1}),e(i,{label:0},{default:t(()=>[S]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(s,{label:"\u56FE\u7247\u8BBE\u7F6E"},{default:t(()=>[m("div",W,[q,(c(!0),E(O,null,R(a.content.data,(o,f)=>(c(),V(A,{key:f,onClose:l=>h(f),class:"max-w-[400px]"},{default:t(()=>[m("div",z,[e(B,{modelValue:o.image,"onUpdate:modelValue":l=>o.image=l,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),m("div",H,[e(s,{label:"\u56FE\u7247\u540D\u79F0"},{default:t(()=>[e(k,{modelValue:o.name,"onUpdate:modelValue":l=>o.name=l,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(s,{class:"mt-[18px]",label:"\u56FE\u7247\u94FE\u63A5"},{default:t(()=>[e(x,{modelValue:o.link,"onUpdate:modelValue":l=>o.link=l},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)])])]),_:2},1032,["onClose"]))),128))])]),_:1}),((p=a.content.data)==null?void 0:p.length)<_?(c(),V(s,{key:0},{default:t(()=>[e(C,{type:"primary",onClick:b},{default:t(()=>[J]),_:1})]),_:1})):T("",!0)]}),_:1})])}}});export{ee as _};

View File

@@ -1 +1 @@
import{y as c,A as i,B as F}from"./element-plus.f93fd622.js";import{_ as p}from"./picker.29f42532.js";import{d as r,o as f,c as V,V as e,M as o,a as m}from"./@vue.cab01781.js";const B=m("div",{class:"form-tips"},"\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A200*200\u50CF\u7D20\uFF1B\u56FE\u7247\u683C\u5F0F\uFF1Ajpg\u3001png\u3001jpeg",-1),x=r({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(t){return(E,l)=>{const a=c,n=i,d=p,s=F;return f(),V("div",null,[e(s,{"label-width":"90px"},{default:o(()=>[e(n,{label:"\u5BA2\u670D\u6807\u9898"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.title,"onUpdate:modelValue":l[0]||(l[0]=u=>t.content.title=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u670D\u52A1\u65F6\u95F4"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.time,"onUpdate:modelValue":l[1]||(l[1]=u=>t.content.time=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u8054\u7CFB\u7535\u8BDD"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.mobile,"onUpdate:modelValue":l[2]||(l[2]=u=>t.content.mobile=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u5BA2\u670D\u4E8C\u7EF4\u7801"},{default:o(()=>[m("div",null,[e(d,{modelValue:t.content.qrcode,"onUpdate:modelValue":l[3]||(l[3]=u=>t.content.qrcode=u),"exclude-domain":""},null,8,["modelValue"]),B])]),_:1})]),_:1})])}}});export{x as _};
import{y as c,A as i,B as F}from"./element-plus.f93fd622.js";import{_ as p}from"./picker.99919d7c.js";import{d as r,o as f,c as V,V as e,M as o,a as m}from"./@vue.cab01781.js";const B=m("div",{class:"form-tips"},"\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A200*200\u50CF\u7D20\uFF1B\u56FE\u7247\u683C\u5F0F\uFF1Ajpg\u3001png\u3001jpeg",-1),x=r({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(t){return(E,l)=>{const a=c,n=i,d=p,s=F;return f(),V("div",null,[e(s,{"label-width":"90px"},{default:o(()=>[e(n,{label:"\u5BA2\u670D\u6807\u9898"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.title,"onUpdate:modelValue":l[0]||(l[0]=u=>t.content.title=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u670D\u52A1\u65F6\u95F4"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.time,"onUpdate:modelValue":l[1]||(l[1]=u=>t.content.time=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u8054\u7CFB\u7535\u8BDD"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.mobile,"onUpdate:modelValue":l[2]||(l[2]=u=>t.content.mobile=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u5BA2\u670D\u4E8C\u7EF4\u7801"},{default:o(()=>[m("div",null,[e(d,{modelValue:t.content.qrcode,"onUpdate:modelValue":l[3]||(l[3]=u=>t.content.qrcode=u),"exclude-domain":""},null,8,["modelValue"]),B])]),_:1})]),_:1})])}}});export{x as _};

View File

@@ -1 +1 @@
import"./auth.vue_vue_type_script_setup_true_lang.358a1248.js";import{_ as I}from"./auth.vue_vue_type_script_setup_true_lang.358a1248.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./role.2bbcee68.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./menu.9fdfcc4b.js";import"./index.ea69f3d7.js";export{I as default};
import"./auth.vue_vue_type_script_setup_true_lang.80191698.js";import{_ as I}from"./auth.vue_vue_type_script_setup_true_lang.80191698.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./role.60797ac7.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./menu.8455a8d1.js";import"./index.78e6f421.js";export{I as default};

View File

@@ -1 +1 @@
import{C as V,T as S,A as T,E as M,B as N}from"./element-plus.f93fd622.js";import{a as I,b as L}from"./role.2bbcee68.js";import{m as P}from"./menu.9fdfcc4b.js";import{P as j}from"./index.ea69f3d7.js";import{f as q,t as H}from"./index.ab5c8d8d.js";import{d as O,s as i,r as u,a0 as U,o as z,c as G,V as t,M as c,a as _,n as k}from"./@vue.cab01781.js";const J={class:"edit-popup"},te=O({__name:"auth",emits:["success","close"],setup(Q,{expose:v,emit:p}){const l=i(),f=i(),r=i(),y=u(!1),d=u(!0),h=u([]),m=u([]),o=U({id:"",name:"",remark:"",sort:0,isDisable:0,menus:[]}),C={name:[{required:!0,message:"\u8BF7\u8F93\u5165\u540D\u79F0",trigger:["blur"]}]},b=async()=>{const e=await P();m.value=e,h.value=H(e)},x=()=>{var s,n;const e=(s=l.value)==null?void 0:s.getCheckedKeys(),a=(n=l.value)==null?void 0:n.getHalfCheckedKeys();return e==null||e.unshift.apply(e,a),e},E=()=>{o.menus.forEach(e=>{k(()=>{var a;(a=l.value)==null||a.setChecked(e,!0,!1)})})},g=e=>{const a=m.value;for(let s=0;s<a.length;s++)l.value.store.nodesMap[a[s].id].expanded=e},F=e=>{var a,s;e?(a=l.value)==null||a.setCheckedKeys(h.value.map(n=>n.id)):(s=l.value)==null||s.setCheckedKeys([])},w=async()=>{var e,a;await((e=f.value)==null?void 0:e.validate()),o.menus=x(),await I({...o,menuIds:o.menus.join()}),(a=r.value)==null||a.close(),q.msgSuccess("\u64CD\u4F5C\u6210\u529F"),p("success")},D=()=>{p("close")};return v({open:()=>{var e;(e=r.value)==null||e.open()},setFormData:async e=>{await b();const a=await L({id:e.id});for(const s in o)a[s]!=null&&a[s]!=null&&(o[s]=a[s]);k(()=>{E()})}}),(e,a)=>{const s=V,n=S,B=T,A=M,R=N;return z(),G("div",J,[t(j,{ref_key:"popupRef",ref:r,title:"\u6743\u9650\u8BBE\u7F6E",async:!0,width:"550px",clickModalClose:!0,onConfirm:w,onClose:D},{default:c(()=>[t(R,{class:"ls-form",ref_key:"formRef",ref:f,rules:C,model:o,"label-width":"60px"},{default:c(()=>[t(A,{class:"h-[400px] sm:h-[600px]"},{default:c(()=>[t(B,{label:"\u6743\u9650",prop:"menus"},{default:c(()=>[_("div",null,[t(s,{label:"\u5C55\u5F00/\u6298\u53E0",onChange:g}),t(s,{label:"\u5168\u9009/\u4E0D\u5168\u9009",onChange:F}),t(s,{modelValue:d.value,"onUpdate:modelValue":a[0]||(a[0]=K=>d.value=K),label:"\u7236\u5B50\u8054\u52A8"},null,8,["modelValue"]),_("div",null,[t(n,{ref_key:"treeRef",ref:l,data:m.value,props:{label:"menuName",children:"children"},"check-strictly":!d.value,"node-key":"id","default-expand-all":y.value,"show-checkbox":""},null,8,["data","check-strictly","default-expand-all"])])])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},512)])}}});export{te as _};
import{C as V,T as S,A as T,E as M,B as N}from"./element-plus.f93fd622.js";import{a as I,b as L}from"./role.60797ac7.js";import{m as P}from"./menu.8455a8d1.js";import{P as j}from"./index.78e6f421.js";import{f as q,t as H}from"./index.86c64501.js";import{d as O,s as i,r as u,a0 as U,o as z,c as G,V as t,M as c,a as _,n as k}from"./@vue.cab01781.js";const J={class:"edit-popup"},te=O({__name:"auth",emits:["success","close"],setup(Q,{expose:v,emit:p}){const l=i(),f=i(),r=i(),y=u(!1),d=u(!0),h=u([]),m=u([]),o=U({id:"",name:"",remark:"",sort:0,isDisable:0,menus:[]}),C={name:[{required:!0,message:"\u8BF7\u8F93\u5165\u540D\u79F0",trigger:["blur"]}]},b=async()=>{const e=await P();m.value=e,h.value=H(e)},x=()=>{var s,n;const e=(s=l.value)==null?void 0:s.getCheckedKeys(),a=(n=l.value)==null?void 0:n.getHalfCheckedKeys();return e==null||e.unshift.apply(e,a),e},E=()=>{o.menus.forEach(e=>{k(()=>{var a;(a=l.value)==null||a.setChecked(e,!0,!1)})})},g=e=>{const a=m.value;for(let s=0;s<a.length;s++)l.value.store.nodesMap[a[s].id].expanded=e},F=e=>{var a,s;e?(a=l.value)==null||a.setCheckedKeys(h.value.map(n=>n.id)):(s=l.value)==null||s.setCheckedKeys([])},w=async()=>{var e,a;await((e=f.value)==null?void 0:e.validate()),o.menus=x(),await I({...o,menuIds:o.menus.join()}),(a=r.value)==null||a.close(),q.msgSuccess("\u64CD\u4F5C\u6210\u529F"),p("success")},D=()=>{p("close")};return v({open:()=>{var e;(e=r.value)==null||e.open()},setFormData:async e=>{await b();const a=await L({id:e.id});for(const s in o)a[s]!=null&&a[s]!=null&&(o[s]=a[s]);k(()=>{E()})}}),(e,a)=>{const s=V,n=S,B=T,A=M,R=N;return z(),G("div",J,[t(j,{ref_key:"popupRef",ref:r,title:"\u6743\u9650\u8BBE\u7F6E",async:!0,width:"550px",clickModalClose:!0,onConfirm:w,onClose:D},{default:c(()=>[t(R,{class:"ls-form",ref_key:"formRef",ref:f,rules:C,model:o,"label-width":"60px"},{default:c(()=>[t(A,{class:"h-[400px] sm:h-[600px]"},{default:c(()=>[t(B,{label:"\u6743\u9650",prop:"menus"},{default:c(()=>[_("div",null,[t(s,{label:"\u5C55\u5F00/\u6298\u53E0",onChange:g}),t(s,{label:"\u5168\u9009/\u4E0D\u5168\u9009",onChange:F}),t(s,{modelValue:d.value,"onUpdate:modelValue":a[0]||(a[0]=K=>d.value=K),label:"\u7236\u5B50\u8054\u52A8"},null,8,["modelValue"]),_("div",null,[t(n,{ref_key:"treeRef",ref:l,data:m.value,props:{label:"menuName",children:"children"},"check-strictly":!d.value,"node-key":"id","default-expand-all":y.value,"show-checkbox":""},null,8,["data","check-strictly","default-expand-all"])])])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},512)])}}});export{te as _};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import"./code-preview.vue_vue_type_script_setup_true_lang.6ad1d693.js";import{_ as H}from"./code-preview.vue_vue_type_script_setup_true_lang.6ad1d693.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./vue-clipboard3.91d4fd5f.js";import"./clipboard.c0a70c0c.js";export{H as default};
import"./code-preview.vue_vue_type_script_setup_true_lang.15a5c65d.js";import{_ as H}from"./code-preview.vue_vue_type_script_setup_true_lang.15a5c65d.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./vue-clipboard3.91d4fd5f.js";import"./clipboard.c0a70c0c.js";export{H as default};

View File

@@ -1 +1 @@
import{v as w,w as y,E as D,u as B,D as T}from"./element-plus.f93fd622.js";import{f as r,b as N}from"./index.ab5c8d8d.js";import{u as $}from"./vue-clipboard3.91d4fd5f.js";import{d as j,r as F,e as L,a5 as S,o as s,c as i,V as o,M as t,W as U,a8 as M,L as P,a as m,u as R,k as W,T as q}from"./@vue.cab01781.js";const z={class:"code-preview"},A={class:"flex",style:{height:"50vh"}},G=q(" \u590D\u5236 "),Q=j({__name:"code-preview",props:{modelValue:{type:Boolean},code:null},emits:["update:modelValue"],setup(u,{emit:p}){const _=u,{toClipboard:f}=$(),c=F("index0"),b=async l=>{try{await f(l),r.msgSuccess("\u590D\u5236\u6210\u529F")}catch{r.msgError("\u590D\u5236\u5931\u8D25")}},n=L({get(){return _.modelValue},set(l){p("update:modelValue",l)}});return(l,a)=>{const h=S("highlightjs"),V=D,v=N,g=B,C=w,E=y,x=T;return s(),i("div",z,[o(x,{modelValue:R(n),"onUpdate:modelValue":a[1]||(a[1]=e=>W(n)?n.value=e:null),width:"900px",title:"\u4EE3\u7801\u9884\u89C8"},{default:t(()=>[o(E,{modelValue:c.value,"onUpdate:modelValue":a[0]||(a[0]=e=>c.value=e)},{default:t(()=>[(s(!0),i(U,null,M(u.code,(e,d,k)=>(s(),P(C,{label:d,name:`index${k}`,key:d},{default:t(()=>[m("div",A,[o(V,{class:"flex-1"},{default:t(()=>[o(h,{autodetect:"",code:e},null,8,["code"])]),_:2},1024),m("div",null,[o(g,{onClick:H=>b(e),type:"primary",link:""},{icon:t(()=>[o(v,{name:"el-icon-CopyDocument"})]),default:t(()=>[G]),_:2},1032,["onClick"])])])]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{Q as _};
import{v as w,w as y,E as D,u as B,D as T}from"./element-plus.f93fd622.js";import{f as r,b as N}from"./index.86c64501.js";import{u as $}from"./vue-clipboard3.91d4fd5f.js";import{d as j,r as F,e as L,a5 as S,o as s,c as i,V as o,M as t,W as U,a8 as M,L as P,a as m,u as R,k as W,T as q}from"./@vue.cab01781.js";const z={class:"code-preview"},A={class:"flex",style:{height:"50vh"}},G=q(" \u590D\u5236 "),Q=j({__name:"code-preview",props:{modelValue:{type:Boolean},code:null},emits:["update:modelValue"],setup(u,{emit:p}){const _=u,{toClipboard:f}=$(),c=F("index0"),b=async l=>{try{await f(l),r.msgSuccess("\u590D\u5236\u6210\u529F")}catch{r.msgError("\u590D\u5236\u5931\u8D25")}},n=L({get(){return _.modelValue},set(l){p("update:modelValue",l)}});return(l,a)=>{const h=S("highlightjs"),V=D,v=N,g=B,C=w,E=y,x=T;return s(),i("div",z,[o(x,{modelValue:R(n),"onUpdate:modelValue":a[1]||(a[1]=e=>W(n)?n.value=e:null),width:"900px",title:"\u4EE3\u7801\u9884\u89C8"},{default:t(()=>[o(E,{modelValue:c.value,"onUpdate:modelValue":a[0]||(a[0]=e=>c.value=e)},{default:t(()=>[(s(!0),i(U,null,M(u.code,(e,d,k)=>(s(),P(C,{label:d,name:`index${k}`,key:d},{default:t(()=>[m("div",A,[o(V,{class:"flex-1"},{default:t(()=>[o(h,{autodetect:"",code:e},null,8,["code"])]),_:2},1024),m("div",null,[o(g,{onClick:H=>b(e),type:"primary",link:""},{icon:t(()=>[o(v,{name:"el-icon-CopyDocument"})]),default:t(()=>[G]),_:2},1032,["onClick"])])])]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{Q as _};

View File

@@ -1 +1 @@
import{r as n}from"./index.ab5c8d8d.js";function r(e){return n.get({url:"/gen/list",params:e})}function a(e){return n.get({url:"/gen/db",params:e})}function o(e){return n.post({url:"/gen/importTable",params:e},{isParamsToData:!1})}function s(e){return n.get({url:"/gen/detail",params:e})}function u(e){return n.post({url:"/gen/syncTable",params:e},{isParamsToData:!1})}function l(e){return n.post({url:"/gen/delTable",params:e})}function g(e){return n.post({url:"/gen/editTable",params:e})}function i(e){return n.get({url:"/gen/previewCode",params:e})}function d(e){return n.get({url:"/gen/genCode",params:e})}function f(e){return n.get({responseType:"blob",url:"/gen/downloadCode",params:e},{isTransformResponse:!1})}export{l as a,i as b,d as c,f as d,r as e,o as f,g,a as h,u as s,s as t};
import{r as n}from"./index.86c64501.js";function r(e){return n.get({url:"/gen/list",params:e})}function a(e){return n.get({url:"/gen/db",params:e})}function o(e){return n.post({url:"/gen/importTable",params:e},{isParamsToData:!1})}function s(e){return n.get({url:"/gen/detail",params:e})}function u(e){return n.post({url:"/gen/syncTable",params:e},{isParamsToData:!1})}function l(e){return n.post({url:"/gen/delTable",params:e})}function g(e){return n.post({url:"/gen/editTable",params:e})}function i(e){return n.get({url:"/gen/previewCode",params:e})}function d(e){return n.get({url:"/gen/genCode",params:e})}function f(e){return n.get({responseType:"blob",url:"/gen/downloadCode",params:e},{isTransformResponse:!1})}export{l as a,i as b,d as c,f as d,r as e,o as f,g,a as h,u as s,s as t};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{r as t}from"./index.ab5c8d8d.js";function u(r){return t.get({url:"/user/list",params:r})}function s(r){return t.get({url:"/user/detail",params:r})}function i(r){return t.post({url:"/user/edit",params:r})}export{u as a,s as g,i as u};
import{r as t}from"./index.86c64501.js";function u(r){return t.get({url:"/user/list",params:r})}function s(r){return t.get({url:"/user/detail",params:r})}function i(r){return t.post({url:"/user/edit",params:r})}export{u as a,s as g,i as u};

View File

@@ -1 +0,0 @@
import{u,_ as x,b as f,d as h}from"./index.ab5c8d8d.js";import{d as y,o as t,c as e,a as i,U as s,S as c,W as m,a8 as l,V as a,u as v}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const g={class:"my-service"},b={key:0,class:"title px-[15px] py-[10px]"},k={key:1,class:"flex flex-wrap pt-[20px] pb-[10px]"},w={class:"mt-[7px]"},V={key:2},B={class:"ml-[10px] flex-1"},N=y({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){const{getImageUrl:d}=u();return(S,j)=>{const p=x,_=f;return t(),e("div",g,[o.content.title?(t(),e("div",b,[i("div",null,s(o.content.title),1)])):c("",!0),o.content.style==1?(t(),e("div",k,[(t(!0),e(m,null,l(o.content.data,(n,r)=>(t(),e("div",{key:r,class:"flex flex-col items-center w-1/4 mb-[15px]"},[a(p,{width:"26px",height:"26px",src:n.image,alt:""},null,8,["src"]),i("div",w,s(n.name),1)]))),128))])):c("",!0),o.content.style==2?(t(),e("div",V,[(t(!0),e(m,null,l(o.content.data,(n,r)=>(t(),e("div",{key:r,class:"flex items-center border-b border-[#e5e5e5] h-[50px] px-[12px]"},[a(p,{width:"24px",height:"24px",src:v(d)(n.image),alt:""},null,8,["src"]),i("div",B,s(n.name),1),i("div",null,[a(_,{name:"el-icon-ArrowRight"})])]))),128))])):c("",!0)])}}});const nt=h(N,[["__scopeId","data-v-f5f55985"]]);export{nt as default};

View File

@@ -0,0 +1 @@
import{u as x,_ as f,b as h,d as y}from"./index.86c64501.js";import{d as v,o as t,c as e,a as i,U as s,S as c,W as l,a8 as d,V as a,u as _}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const g={class:"my-service"},b={key:0,class:"title px-[15px] py-[10px]"},k={key:1,class:"flex flex-wrap pt-[20px] pb-[10px]"},w={class:"mt-[7px]"},V={key:2},B={class:"ml-[10px] flex-1"},N=v({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){const{getImageUrl:p}=x();return(S,j)=>{const m=f,u=h;return t(),e("div",g,[o.content.title?(t(),e("div",b,[i("div",null,s(o.content.title),1)])):c("",!0),o.content.style==1?(t(),e("div",k,[(t(!0),e(l,null,d(o.content.data,(n,r)=>(t(),e("div",{key:r,class:"flex flex-col items-center w-1/4 mb-[15px]"},[a(m,{width:"26px",height:"26px",src:_(p)(n.image),alt:""},null,8,["src"]),i("div",w,s(n.name),1)]))),128))])):c("",!0),o.content.style==2?(t(),e("div",V,[(t(!0),e(l,null,d(o.content.data,(n,r)=>(t(),e("div",{key:r,class:"flex items-center border-b border-[#e5e5e5] h-[50px] px-[12px]"},[a(m,{width:"24px",height:"24px",src:_(p)(n.image),alt:""},null,8,["src"]),i("div",B,s(n.name),1),i("div",null,[a(u,{name:"el-icon-ArrowRight"})])]))),128))])):c("",!0)])}}});const nt=y(N,[["__scopeId","data-v-df02fc9c"]]);export{nt as default};

View File

@@ -1 +1 @@
import{u as a,_ as m,d as c}from"./index.ab5c8d8d.js";import{d as _,o as t,c as e,a as p,W as d,a8 as l,V as u,u as x,U as f}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const g={class:"nav pt-[15px] pb-[8px]"},v={class:"flex flex-wrap"},h={class:"mt-[7px]"},y=_({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(r){const{getImageUrl:s}=a();return(b,k)=>{const i=m;return t(),e("div",g,[p("div",v,[(t(!0),e(d,null,l(r.content.data,(o,n)=>(t(),e("div",{key:n,class:"flex flex-col items-center w-1/5 mb-[15px]"},[u(i,{width:"41px",height:"41px",src:x(s)(o.image),alt:""},null,8,["src"]),p("div",h,f(o.name),1)]))),128))])])}}});const Y=c(y,[["__scopeId","data-v-7d752d9c"]]);export{Y as default};
import{u as a,_ as m,d as c}from"./index.86c64501.js";import{d as _,o as t,c as e,a as p,W as d,a8 as l,V as u,u as x,U as f}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const g={class:"nav pt-[15px] pb-[8px]"},v={class:"flex flex-wrap"},h={class:"mt-[7px]"},y=_({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(r){const{getImageUrl:s}=a();return(b,k)=>{const i=m;return t(),e("div",g,[p("div",v,[(t(!0),e(d,null,l(r.content.data,(o,n)=>(t(),e("div",{key:n,class:"flex flex-col items-center w-1/5 mb-[15px]"},[u(i,{width:"41px",height:"41px",src:x(s)(o.image),alt:""},null,8,["src"]),p("div",h,f(o.name),1)]))),128))])])}}});const Y=c(y,[["__scopeId","data-v-7d752d9c"]]);export{Y as default};

View File

@@ -1 +0,0 @@
.my-service[data-v-f5f55985]{margin:10px 10px 0;background-color:#fff;border-radius:7px}.my-service .title[data-v-f5f55985]{border-bottom:1px solid #e5e5e5;font-size:16px;font-weight:500}

View File

@@ -1 +1 @@
import{u as s,_ as c,d as n}from"./index.ab5c8d8d.js";import{d as r,o as m,c as a,V as u,u as _,a as e,U as o,b9 as d,b8 as l}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const x=t=>(d("data-v-14c2b598"),t=t(),l(),t),f={class:"customer-service"},h={class:"text-[15px] mt-[7px] font-medium"},F={class:"text-[#666] mt-[20px]"},v={class:"text-[#666] mt-[7px]"},b=x(()=>e("div",{class:"text-white text-[16px] rounded-[42px] bg-[#4173FF] w-full h-[42px] flex justify-center items-center mt-[50px]"}," \u4FDD\u5B58\u4E8C\u7EF4\u7801\u56FE\u7247 ",-1)),g=r({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(t){const{getImageUrl:i}=s();return(y,D)=>{const p=c;return m(),a("div",f,[u(p,{width:"140px",height:"140px",src:_(i)(t.content.qrcode),alt:""},null,8,["src"]),e("div",h,o(t.content.title),1),e("div",F,"\u670D\u52A1\u65F6\u95F4\uFF1A"+o(t.content.time),1),e("div",v,"\u5BA2\u670D\u7535\u8BDD\uFF1A"+o(t.content.mobile),1),b])}}});const Z=n(g,[["__scopeId","data-v-14c2b598"]]);export{Z as default};
import{u as s,_ as c,d as n}from"./index.86c64501.js";import{d as r,o as m,c as a,V as u,u as _,a as e,U as o,b9 as d,b8 as l}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const x=t=>(d("data-v-14c2b598"),t=t(),l(),t),f={class:"customer-service"},h={class:"text-[15px] mt-[7px] font-medium"},F={class:"text-[#666] mt-[20px]"},v={class:"text-[#666] mt-[7px]"},b=x(()=>e("div",{class:"text-white text-[16px] rounded-[42px] bg-[#4173FF] w-full h-[42px] flex justify-center items-center mt-[50px]"}," \u4FDD\u5B58\u4E8C\u7EF4\u7801\u56FE\u7247 ",-1)),g=r({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(t){const{getImageUrl:i}=s();return(y,D)=>{const p=c;return m(),a("div",f,[u(p,{width:"140px",height:"140px",src:_(i)(t.content.qrcode),alt:""},null,8,["src"]),e("div",h,o(t.content.title),1),e("div",F,"\u670D\u52A1\u65F6\u95F4\uFF1A"+o(t.content.time),1),e("div",v,"\u5BA2\u670D\u7535\u8BDD\uFF1A"+o(t.content.mobile),1),b])}}});const Z=n(g,[["__scopeId","data-v-14c2b598"]]);export{Z as default};

View File

@@ -1 +1 @@
import{d as r}from"./index.ab5c8d8d.js";import{o as e,c as i,b9 as c,b8 as s,a as o}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const m="/assets/default_avatar.fa19527b.png";const _={},p=t=>(c("data-v-cdcc3d15"),t=t(),s(),t),a={class:"user-info flex items-center px-[25px]"},d=p(()=>o("img",{src:m,class:"w-[60px] h-[60px]",alt:""},null,-1)),n=p(()=>o("div",{class:"text-white text-[18px] ml-[10px]"},"\u672A\u767B\u5F55",-1)),l=[d,n];function x(t,f){return e(),i("div",a,l)}const P=r(_,[["render",x],["__scopeId","data-v-cdcc3d15"]]);export{P as default};
import{d as r}from"./index.86c64501.js";import{o as e,c as i,b9 as c,b8 as s,a as o}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const m="/assets/default_avatar.fa19527b.png";const _={},p=t=>(c("data-v-cdcc3d15"),t=t(),s(),t),a={class:"user-info flex items-center px-[25px]"},d=p(()=>o("img",{src:m,class:"w-[60px] h-[60px]",alt:""},null,-1)),n=p(()=>o("div",{class:"text-white text-[18px] ml-[10px]"},"\u672A\u767B\u5F55",-1)),l=[d,n];function x(t,f){return e(),i("div",a,l)}const P=r(_,[["render",x],["__scopeId","data-v-cdcc3d15"]]);export{P as default};

View File

@@ -1 +1 @@
import"./content.vue_vue_type_script_setup_true_lang.d03661f0.js";import{_ as F}from"./content.vue_vue_type_script_setup_true_lang.d03661f0.js";import"./index.ab5c8d8d.js";import"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{F as default};
import"./content.vue_vue_type_script_setup_true_lang.a3e925ac.js";import{_ as F}from"./content.vue_vue_type_script_setup_true_lang.a3e925ac.js";import"./index.86c64501.js";import"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{F as default};

View File

@@ -1 +1 @@
import{d as p,b as r}from"./index.ab5c8d8d.js";import{o as c,c as i,a as t,V as s,b9 as m,b8 as a}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const _={},n=o=>(m("data-v-6fb29c10"),o=o(),a(),o),d={class:"search"},f={class:"search-con flex items-center px-[15px]"},l=n(()=>t("span",{class:"ml-[5px]"},"\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u641C\u7D22",-1));function h(o,x){const e=r;return c(),i("div",d,[t("div",f,[s(e,{name:"el-icon-Search",size:17}),l])])}const P=p(_,[["render",h],["__scopeId","data-v-6fb29c10"]]);export{P as default};
import{d as p,b as r}from"./index.86c64501.js";import{o as c,c as i,a as t,V as s,b9 as m,b8 as a}from"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const _={},n=o=>(m("data-v-6fb29c10"),o=o(),a(),o),d={class:"search"},f={class:"search-con flex items-center px-[15px]"},l=n(()=>t("span",{class:"ml-[5px]"},"\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u641C\u7D22",-1));function h(o,x){const e=r;return c(),i("div",d,[t("div",f,[s(e,{name:"el-icon-Search",size:17}),l])])}const P=p(_,[["render",h],["__scopeId","data-v-6fb29c10"]]);export{P as default};

View File

@@ -1 +1 @@
import"./content.vue_vue_type_script_setup_true_lang.ef2a15e8.js";import{_ as F}from"./content.vue_vue_type_script_setup_true_lang.ef2a15e8.js";import"./index.ab5c8d8d.js";import"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{F as default};
import"./content.vue_vue_type_script_setup_true_lang.2c4c92b3.js";import{_ as F}from"./content.vue_vue_type_script_setup_true_lang.2c4c92b3.js";import"./index.86c64501.js";import"./@vue.cab01781.js";import"./element-plus.f93fd622.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{F as default};

View File

@@ -0,0 +1 @@
.my-service[data-v-df02fc9c]{margin:10px 10px 0;background-color:#fff;border-radius:7px}.my-service .title[data-v-df02fc9c]{border-bottom:1px solid #e5e5e5;font-size:16px;font-weight:500}

View File

@@ -1 +1 @@
import{u as r,_ as i}from"./index.ab5c8d8d.js";import{d as p,e as _,o as m,c as u,a as d,V as l,u as t}from"./@vue.cab01781.js";const f={class:"banner"},g={class:"banner-image"},x=p({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){const o=n,{getImageUrl:s}=r(),a=_(()=>{const{data:e}=o.content;return Array.isArray(e)&&e[0]?e[0].image:""});return(e,h)=>{const c=i;return m(),u("div",f,[d("div",g,[l(c,{width:"100%",height:"170px",src:t(s)(t(a)),fit:"contain"},null,8,["src"])])])}}});export{x as _};
import{u as r,_ as i}from"./index.86c64501.js";import{d as p,e as _,o as m,c as u,a as d,V as l,u as t}from"./@vue.cab01781.js";const f={class:"banner"},g={class:"banner-image"},x=p({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){const o=n,{getImageUrl:s}=r(),a=_(()=>{const{data:e}=o.content;return Array.isArray(e)&&e[0]?e[0].image:""});return(e,h)=>{const c=i;return m(),u("div",f,[d("div",g,[l(c,{width:"100%",height:"170px",src:t(s)(t(a)),fit:"contain"},null,8,["src"])])])}}});export{x as _};

View File

@@ -1 +1 @@
import{u as r,_ as p}from"./index.ab5c8d8d.js";import{d as i,e as _,o as m,c as u,a as d,V as l,u as t}from"./@vue.cab01781.js";const f={class:"banner mx-[10px] mt-[10px]"},g={class:"banner-image"},b=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){const o=n,{getImageUrl:s}=r(),a=_(()=>{const{data:e}=o.content;return Array.isArray(e)&&e[0]?e[0].image:""});return(e,h)=>{const c=p;return m(),u("div",f,[d("div",g,[l(c,{width:"100%",height:"100px",src:t(s)(t(a)),fit:"contain"},null,8,["src"])])])}}});export{b as _};
import{u as r,_ as p}from"./index.86c64501.js";import{d as i,e as _,o as m,c as u,a as d,V as l,u as t}from"./@vue.cab01781.js";const f={class:"banner mx-[10px] mt-[10px]"},g={class:"banner-image"},b=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){const o=n,{getImageUrl:s}=r(),a=_(()=>{const{data:e}=o.content;return Array.isArray(e)&&e[0]?e[0].image:""});return(e,h)=>{const c=p;return m(),u("div",f,[d("div",g,[l(c,{width:"100%",height:"100px",src:t(s)(t(a)),fit:"contain"},null,8,["src"])])])}}});export{b as _};

View File

@@ -1 +1 @@
import"./data-table.vue_vue_type_script_setup_true_lang.710e99ff.js";import{_ as I}from"./data-table.vue_vue_type_script_setup_true_lang.710e99ff.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.ea69f3d7.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./usePaging.226fac59.js";import"./code.c9ce80f0.js";export{I as default};
import"./data-table.vue_vue_type_script_setup_true_lang.13faadd0.js";import{_ as I}from"./data-table.vue_vue_type_script_setup_true_lang.13faadd0.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.78e6f421.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./usePaging.226fac59.js";import"./code.3cf40a70.js";export{I as default};

View File

@@ -1 +1 @@
import{y,A as N,u as T,B as D,H as x,I as P,J as I}from"./element-plus.f93fd622.js";import{P as R}from"./index.ea69f3d7.js";import{u as S,_ as U}from"./usePaging.226fac59.js";import{f as j,h as z}from"./code.c9ce80f0.js";import{f}from"./index.ab5c8d8d.js";import{d as A,s as L,a0 as M,r as $,w as H,o as b,c as C,V as e,M as t,I as J,u as s,O,a as q,k as G,T as h}from"./@vue.cab01781.js";const K={class:"data-table"},Q=h("\u67E5\u8BE2"),W=h("\u91CD\u7F6E"),X={class:"m-4"},Y={class:"flex justify-end mt-4"},ne=A({__name:"data-table",emits:["success"],setup(Z,{emit:g}){const i=L(),o=M({tableName:"",tableComment:""}),{pager:n,getLists:d,resetParams:F,resetPage:E}=S({fetchFun:z,params:o,size:10}),r=$([]),v=a=>{r.value=a.map(({tableName:l})=>l)},w=async()=>{var a;if(!r.value.length)return f.msgError("\u8BF7\u9009\u62E9\u6570\u636E\u8868");await j({tables:r.value.join()}),f.msgSuccess("\u5BFC\u5165\u6210\u529F"),(a=i.value)==null||a.close(),g("success")};return H(()=>{var a;return(a=i.value)==null?void 0:a.visible},a=>{a&&d()}),(a,l)=>{const _=y,c=N,p=T,V=D,m=x,k=P,B=I;return b(),C("div",K,[e(R,{ref_key:"popupRef",ref:i,clickModalClose:!1,title:"\u9009\u62E9\u8868",width:"900px",async:!0,onConfirm:w},{trigger:t(()=>[J(a.$slots,"default")]),default:t(()=>[e(V,{class:"ls-form",model:o,inline:""},{default:t(()=>[e(c,{label:"\u8868\u540D\u79F0"},{default:t(()=>[e(_,{class:"w-56",modelValue:o.tableName,"onUpdate:modelValue":l[0]||(l[0]=u=>o.tableName=u)},null,8,["modelValue"])]),_:1}),e(c,{label:"\u8868\u63CF\u8FF0"},{default:t(()=>[e(_,{class:"w-56",modelValue:o.tableComment,"onUpdate:modelValue":l[1]||(l[1]=u=>o.tableComment=u)},null,8,["modelValue"])]),_:1}),e(c,null,{default:t(()=>[e(p,{type:"primary",onClick:s(E)},{default:t(()=>[Q]),_:1},8,["onClick"]),e(p,{onClick:s(F)},{default:t(()=>[W]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"]),O((b(),C("div",X,[e(k,{height:"400",size:"large",data:s(n).lists,onSelectionChange:v},{default:t(()=>[e(m,{type:"selection",width:"55"}),e(m,{label:"\u8868\u540D\u79F0",prop:"tableName","min-width":"150"}),e(m,{label:"\u8868\u63CF\u8FF0",prop:"tableComment","min-width":"160"}),e(m,{label:"\u521B\u5EFA\u65F6\u95F4",prop:"createTime","min-width":"180"})]),_:1},8,["data"])])),[[B,s(n).loading]]),q("div",Y,[e(U,{modelValue:s(n),"onUpdate:modelValue":l[2]||(l[2]=u=>G(n)?n.value=u:null),onChange:s(d)},null,8,["modelValue","onChange"])])]),_:3},512)])}}});export{ne as _};
import{y,A as N,u as T,B as D,H as x,I as P,J as I}from"./element-plus.f93fd622.js";import{P as R}from"./index.78e6f421.js";import{u as S,_ as U}from"./usePaging.226fac59.js";import{f as j,h as z}from"./code.3cf40a70.js";import{f}from"./index.86c64501.js";import{d as A,s as L,a0 as M,r as $,w as H,o as b,c as C,V as e,M as t,I as J,u as s,O,a as q,k as G,T as h}from"./@vue.cab01781.js";const K={class:"data-table"},Q=h("\u67E5\u8BE2"),W=h("\u91CD\u7F6E"),X={class:"m-4"},Y={class:"flex justify-end mt-4"},ne=A({__name:"data-table",emits:["success"],setup(Z,{emit:g}){const i=L(),o=M({tableName:"",tableComment:""}),{pager:n,getLists:d,resetParams:F,resetPage:E}=S({fetchFun:z,params:o,size:10}),r=$([]),v=a=>{r.value=a.map(({tableName:l})=>l)},w=async()=>{var a;if(!r.value.length)return f.msgError("\u8BF7\u9009\u62E9\u6570\u636E\u8868");await j({tables:r.value.join()}),f.msgSuccess("\u5BFC\u5165\u6210\u529F"),(a=i.value)==null||a.close(),g("success")};return H(()=>{var a;return(a=i.value)==null?void 0:a.visible},a=>{a&&d()}),(a,l)=>{const _=y,c=N,p=T,V=D,m=x,k=P,B=I;return b(),C("div",K,[e(R,{ref_key:"popupRef",ref:i,clickModalClose:!1,title:"\u9009\u62E9\u8868",width:"900px",async:!0,onConfirm:w},{trigger:t(()=>[J(a.$slots,"default")]),default:t(()=>[e(V,{class:"ls-form",model:o,inline:""},{default:t(()=>[e(c,{label:"\u8868\u540D\u79F0"},{default:t(()=>[e(_,{class:"w-56",modelValue:o.tableName,"onUpdate:modelValue":l[0]||(l[0]=u=>o.tableName=u)},null,8,["modelValue"])]),_:1}),e(c,{label:"\u8868\u63CF\u8FF0"},{default:t(()=>[e(_,{class:"w-56",modelValue:o.tableComment,"onUpdate:modelValue":l[1]||(l[1]=u=>o.tableComment=u)},null,8,["modelValue"])]),_:1}),e(c,null,{default:t(()=>[e(p,{type:"primary",onClick:s(E)},{default:t(()=>[Q]),_:1},8,["onClick"]),e(p,{onClick:s(F)},{default:t(()=>[W]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"]),O((b(),C("div",X,[e(k,{height:"400",size:"large",data:s(n).lists,onSelectionChange:v},{default:t(()=>[e(m,{type:"selection",width:"55"}),e(m,{label:"\u8868\u540D\u79F0",prop:"tableName","min-width":"150"}),e(m,{label:"\u8868\u63CF\u8FF0",prop:"tableComment","min-width":"160"}),e(m,{label:"\u521B\u5EFA\u65F6\u95F4",prop:"createTime","min-width":"180"})]),_:1},8,["data"])])),[[B,s(n).loading]]),q("div",Y,[e(U,{modelValue:s(n),"onUpdate:modelValue":l[2]||(l[2]=u=>G(n)?n.value=u:null),onChange:s(d)},null,8,["modelValue","onChange"])])]),_:3},512)])}}});export{ne as _};

View File

@@ -1 +1 @@
import{r as t}from"./index.ab5c8d8d.js";function r(e){return t.get({url:"/decorate/pages/detail",params:e},{ignoreCancelToken:!0})}function o(e){return t.post({url:"/decorate/pages/save",params:e})}function s(e){return t.get({url:"/decorate/tabbar/detail",params:e})}function n(e){return t.post({url:"/decorate/tabbar/save",params:e})}export{s as a,n as b,r as g,o as s};
import{r as t}from"./index.86c64501.js";function r(e){return t.get({url:"/decorate/pages/detail",params:e},{ignoreCancelToken:!0})}function o(e){return t.post({url:"/decorate/pages/save",params:e})}function s(e){return t.get({url:"/decorate/tabbar/detail",params:e})}function n(e){return t.post({url:"/decorate/tabbar/save",params:e})}export{s as a,n as b,r as g,o as s};

View File

@@ -1 +1 @@
import{r as e}from"./index.ab5c8d8d.js";function r(t){return e.get({url:"/system/dept/list",params:t})}function d(t){return e.post({url:"/system/dept/add",params:t})}function u(t){return e.post({url:"/system/dept/edit",params:t})}function n(t){return e.post({url:"/system/dept/del",params:t})}function p(t){return e.get({url:"/system/dept/detail",params:t})}export{u as a,d as b,p as c,r as d,n as e};
import{r as e}from"./index.86c64501.js";function r(t){return e.get({url:"/system/dept/list",params:t})}function d(t){return e.post({url:"/system/dept/add",params:t})}function u(t){return e.post({url:"/system/dept/edit",params:t})}function n(t){return e.post({url:"/system/dept/del",params:t})}function p(t){return e.get({url:"/system/dept/detail",params:t})}export{u as a,d as b,p as c,r as d,n as e};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{r as e}from"./index.ab5c8d8d.js";function n(t){return e.get({url:"/setting/dict/type/list",params:t})}function d(t){return e.get({url:"/setting/dict/type/all",params:t})}function r(t){return e.post({url:"/setting/dict/type/add",params:t})}function s(t){return e.post({url:"/setting/dict/type/edit",params:t})}function a(t){return e.post({url:"/setting/dict/type/del",params:t})}function c(t){return e.get({url:"/setting/dict/data/list",params:t},{ignoreCancelToken:!0})}function u(t){return e.post({url:"/setting/dict/data/add",params:t})}function l(t){return e.post({url:"/setting/dict/data/edit",params:t})}function o(t){return e.post({url:"/setting/dict/data/del",params:t})}export{l as a,u as b,o as c,d,c as e,s as f,r as g,a as h,n as i};
import{r as e}from"./index.86c64501.js";function n(t){return e.get({url:"/setting/dict/type/list",params:t})}function d(t){return e.get({url:"/setting/dict/type/all",params:t})}function r(t){return e.post({url:"/setting/dict/type/add",params:t})}function s(t){return e.post({url:"/setting/dict/type/edit",params:t})}function a(t){return e.post({url:"/setting/dict/type/del",params:t})}function c(t){return e.get({url:"/setting/dict/data/list",params:t},{ignoreCancelToken:!0})}function u(t){return e.post({url:"/setting/dict/data/add",params:t})}function l(t){return e.post({url:"/setting/dict/data/edit",params:t})}function o(t){return e.post({url:"/setting/dict/data/del",params:t})}export{l as a,u as b,o as c,d,c as e,s as f,r as g,a as h,n as i};

View File

@@ -1 +1 @@
import"./edit.vue_vue_type_script_setup_true_lang.23109308.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.23109308.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./role.2bbcee68.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.ea69f3d7.js";export{H as default};
import"./edit.vue_vue_type_script_setup_true_lang.2ddf59bd.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.2ddf59bd.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./post.a69d1775.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.78e6f421.js";export{H as default};

View File

@@ -1 +1 @@
import"./edit.vue_vue_type_script_setup_true_lang.6383396b.js";import{_ as G}from"./edit.vue_vue_type_script_setup_true_lang.6383396b.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.ea69f3d7.js";export{G as default};
import"./edit.vue_vue_type_script_setup_true_lang.afd65d73.js";import{_ as G}from"./edit.vue_vue_type_script_setup_true_lang.afd65d73.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.78e6f421.js";export{G as default};

View File

@@ -1 +1 @@
import"./edit.vue_vue_type_script_setup_true_lang.4a41cfb9.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.4a41cfb9.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./message.22e9789c.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.ea69f3d7.js";export{H as default};
import"./edit.vue_vue_type_script_setup_true_lang.7d0c4811.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.7d0c4811.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./article.83af4cc1.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.78e6f421.js";export{H as default};

View File

@@ -1 +1 @@
import{L as h,M as k,N as y,G as V,A as I,y as x,B as R,u as q,J as U}from"./element-plus.f93fd622.js";import{_ as $}from"./index.8ed21860.js";import{u as L,a as S}from"./vue-router.5046cc50.js";import{f as G}from"./index.ab5c8d8d.js";import{n as M,s as O}from"./message.22e9789c.js";import{d as T,r as j,a0 as H,s as J,o as f,c as P,V as e,M as u,O as z,L as K,T as s,U as d,a}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const Q=a("div",{class:"font-medium mb-7"},"\u901A\u77E5\u540D\u79F0",-1),W=a("div",{class:"font-medium mb-7"},"\u77ED\u4FE1\u901A\u77E5",-1),X=s("\u5173\u95ED"),Y=s("\u5F00\u542F"),Z={class:"w-80"},ee={class:"flex-1"},ue={class:"w-full max-w-[320px]"},te=a("div",{class:"form-tips"},[s(" \u53EF\u9009\u53D8\u91CF \u7528\u6237\u6635\u79F0:nickname \u8BA2\u5355\u7F16\u53F7:order_sn \u652F\u4ED8\u65F6\u95F4:pay_time "),a("br"),s(" \u793A\u4F8B\uFF1A\u4EB2\u7231\u7684${nickname}\uFF0C\u60A8\u7684\u8BA2\u5355${order_sn}\u5DF2\u652F\u4ED8\u6210\u529F\uFF0C\u5546\u5BB6\u6B63\u5728\u5FEB\u9A6C\u52A0\u97AD\u4E3A\u60A8\u5B89\u6392\u53D1\u8D27\u3002 "),a("br"),s(" \u751F\u6548\u6761\u4EF6\uFF1A1\u3001\u7BA1\u7406\u540E\u53F0\u5B8C\u6210\u77ED\u4FE1\u8BBE\u7F6E\u30022\u3001\u7B2C\u4E09\u65B9\u77ED\u4FE1\u5E73\u53F0\u7533\u8BF7\u6A21\u677F\u3002 ")],-1),oe=s("\u4FDD\u5B58"),Ue=T({__name:"edit",setup(se){const p=L(),E=S(),m=j(!1),t=H({id:"",name:"",type:"",remarks:"",smsNotice:{status:0,templateId:"",content:""}}),B={"smsNotice.templateId":[{required:!0,message:"\u8BF7\u8F93\u5165\u6A21\u677FID",trigger:"blur"}],"smsNotice.content":[{required:!0,message:"\u8BF7\u8F93\u5165\u77ED\u4FE1\u5185\u5BB9",trigger:"blur"}]},c=J(),D=async()=>{m.value=!0;const r=await M({id:p.query.id});Object.keys(r).forEach(o=>{t[o]=r[o]}),m.value=!1},A=async()=>{var r;await((r=c.value)==null?void 0:r.validate()),await O(t),G.msgSuccess("\u64CD\u4F5C\u6210\u529F"),E.back()};return p.query.id&&D(),(r,o)=>{const b=h,i=V,l=I,_=k,v=y,F=x,g=R,N=q,w=$,C=U;return f(),P("div",null,[e(i,{class:"!border-none",shadow:"never"},{default:u(()=>[e(b,{content:"\u7F16\u8F91\u901A\u77E5\u8BBE\u7F6E",onBack:o[0]||(o[0]=n=>r.$router.back())})]),_:1}),z((f(),K(g,{ref_key:"formRef",ref:c,model:t,"label-width":"120px",rules:B},{default:u(()=>[e(i,{class:"!border-none mt-4",shadow:"never"},{default:u(()=>[Q,e(l,{label:"\u901A\u77E5\u540D\u79F0",prop:"name"},{default:u(()=>[s(d(t.name),1)]),_:1}),e(l,{label:"\u901A\u77E5\u7C7B\u578B",prop:"name"},{default:u(()=>[s(d(t.type),1)]),_:1}),e(l,{label:"\u901A\u77E5\u4E1A\u52A1",prop:"name"},{default:u(()=>[s(d(t.remarks),1)]),_:1})]),_:1}),e(i,{class:"!border-none mt-4",shadow:"never"},{default:u(()=>[W,e(l,{label:"\u5F00\u542F\u72B6\u6001",prop:"smsNotice.status",required:""},{default:u(()=>[e(v,{modelValue:t.smsNotice.status,"onUpdate:modelValue":o[1]||(o[1]=n=>t.smsNotice.status=n)},{default:u(()=>[e(_,{label:"0"},{default:u(()=>[X]),_:1}),e(_,{label:"1"},{default:u(()=>[Y]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(l,{label:"\u6A21\u677FID",prop:"smsNotice.templateId"},{default:u(()=>[a("div",Z,[e(F,{modelValue:t.smsNotice.templateId,"onUpdate:modelValue":o[2]||(o[2]=n=>t.smsNotice.templateId=n),placeholder:"\u8BF7\u8F93\u5165\u6A21\u677FID"},null,8,["modelValue"])])]),_:1}),e(l,{label:"\u77ED\u4FE1\u5185\u5BB9",prop:"smsNotice.content"},{default:u(()=>[a("div",ee,[a("div",ue,[e(F,{type:"textarea",rows:6,modelValue:t.smsNotice.content,"onUpdate:modelValue":o[3]||(o[3]=n=>t.smsNotice.content=n)},null,8,["modelValue"])]),te])]),_:1})]),_:1})]),_:1},8,["model"])),[[C,m.value]]),e(w,null,{default:u(()=>[e(N,{type:"primary",onClick:A},{default:u(()=>[oe]),_:1})]),_:1})])}}});export{Ue as default};
import{L as h,M as k,N as y,G as V,A as I,y as x,B as R,u as q,J as U}from"./element-plus.f93fd622.js";import{_ as $}from"./index.250c57ef.js";import{u as L,a as S}from"./vue-router.5046cc50.js";import{f as G}from"./index.86c64501.js";import{n as M,s as O}from"./message.e116a72b.js";import{d as T,r as j,a0 as H,s as J,o as f,c as P,V as e,M as u,O as z,L as K,T as s,U as d,a}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.b68d77aa.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const Q=a("div",{class:"font-medium mb-7"},"\u901A\u77E5\u540D\u79F0",-1),W=a("div",{class:"font-medium mb-7"},"\u77ED\u4FE1\u901A\u77E5",-1),X=s("\u5173\u95ED"),Y=s("\u5F00\u542F"),Z={class:"w-80"},ee={class:"flex-1"},ue={class:"w-full max-w-[320px]"},te=a("div",{class:"form-tips"},[s(" \u53EF\u9009\u53D8\u91CF \u7528\u6237\u6635\u79F0:nickname \u8BA2\u5355\u7F16\u53F7:order_sn \u652F\u4ED8\u65F6\u95F4:pay_time "),a("br"),s(" \u793A\u4F8B\uFF1A\u4EB2\u7231\u7684${nickname}\uFF0C\u60A8\u7684\u8BA2\u5355${order_sn}\u5DF2\u652F\u4ED8\u6210\u529F\uFF0C\u5546\u5BB6\u6B63\u5728\u5FEB\u9A6C\u52A0\u97AD\u4E3A\u60A8\u5B89\u6392\u53D1\u8D27\u3002 "),a("br"),s(" \u751F\u6548\u6761\u4EF6\uFF1A1\u3001\u7BA1\u7406\u540E\u53F0\u5B8C\u6210\u77ED\u4FE1\u8BBE\u7F6E\u30022\u3001\u7B2C\u4E09\u65B9\u77ED\u4FE1\u5E73\u53F0\u7533\u8BF7\u6A21\u677F\u3002 ")],-1),oe=s("\u4FDD\u5B58"),Ue=T({__name:"edit",setup(se){const p=L(),E=S(),m=j(!1),t=H({id:"",name:"",type:"",remarks:"",smsNotice:{status:0,templateId:"",content:""}}),B={"smsNotice.templateId":[{required:!0,message:"\u8BF7\u8F93\u5165\u6A21\u677FID",trigger:"blur"}],"smsNotice.content":[{required:!0,message:"\u8BF7\u8F93\u5165\u77ED\u4FE1\u5185\u5BB9",trigger:"blur"}]},c=J(),D=async()=>{m.value=!0;const r=await M({id:p.query.id});Object.keys(r).forEach(o=>{t[o]=r[o]}),m.value=!1},A=async()=>{var r;await((r=c.value)==null?void 0:r.validate()),await O(t),G.msgSuccess("\u64CD\u4F5C\u6210\u529F"),E.back()};return p.query.id&&D(),(r,o)=>{const b=h,i=V,l=I,_=k,v=y,F=x,g=R,N=q,w=$,C=U;return f(),P("div",null,[e(i,{class:"!border-none",shadow:"never"},{default:u(()=>[e(b,{content:"\u7F16\u8F91\u901A\u77E5\u8BBE\u7F6E",onBack:o[0]||(o[0]=n=>r.$router.back())})]),_:1}),z((f(),K(g,{ref_key:"formRef",ref:c,model:t,"label-width":"120px",rules:B},{default:u(()=>[e(i,{class:"!border-none mt-4",shadow:"never"},{default:u(()=>[Q,e(l,{label:"\u901A\u77E5\u540D\u79F0",prop:"name"},{default:u(()=>[s(d(t.name),1)]),_:1}),e(l,{label:"\u901A\u77E5\u7C7B\u578B",prop:"name"},{default:u(()=>[s(d(t.type),1)]),_:1}),e(l,{label:"\u901A\u77E5\u4E1A\u52A1",prop:"name"},{default:u(()=>[s(d(t.remarks),1)]),_:1})]),_:1}),e(i,{class:"!border-none mt-4",shadow:"never"},{default:u(()=>[W,e(l,{label:"\u5F00\u542F\u72B6\u6001",prop:"smsNotice.status",required:""},{default:u(()=>[e(v,{modelValue:t.smsNotice.status,"onUpdate:modelValue":o[1]||(o[1]=n=>t.smsNotice.status=n)},{default:u(()=>[e(_,{label:"0"},{default:u(()=>[X]),_:1}),e(_,{label:"1"},{default:u(()=>[Y]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(l,{label:"\u6A21\u677FID",prop:"smsNotice.templateId"},{default:u(()=>[a("div",Z,[e(F,{modelValue:t.smsNotice.templateId,"onUpdate:modelValue":o[2]||(o[2]=n=>t.smsNotice.templateId=n),placeholder:"\u8BF7\u8F93\u5165\u6A21\u677FID"},null,8,["modelValue"])])]),_:1}),e(l,{label:"\u77ED\u4FE1\u5185\u5BB9",prop:"smsNotice.content"},{default:u(()=>[a("div",ee,[a("div",ue,[e(F,{type:"textarea",rows:6,modelValue:t.smsNotice.content,"onUpdate:modelValue":o[3]||(o[3]=n=>t.smsNotice.content=n)},null,8,["modelValue"])]),te])]),_:1})]),_:1})]),_:1},8,["model"])),[[C,m.value]]),e(w,null,{default:u(()=>[e(N,{type:"primary",onClick:A},{default:u(()=>[oe]),_:1})]),_:1})])}}});export{Ue as default};

View File

@@ -1 +1 @@
import"./edit.vue_vue_type_script_setup_true_lang.95237981.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.95237981.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./article.99eb0f9b.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.ea69f3d7.js";export{H as default};
import"./edit.vue_vue_type_script_setup_true_lang.3597711b.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.3597711b.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./message.e116a72b.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.78e6f421.js";export{H as default};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import"./edit.vue_vue_type_script_setup_true_lang.29312fb0.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.29312fb0.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.ea69f3d7.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./dict.25b3b485.js";export{H as default};
import"./edit.vue_vue_type_script_setup_true_lang.0d4b0bdf.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.0d4b0bdf.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.78e6f421.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./dict.e61ac0ab.js";export{H as default};

View File

@@ -1 +1 @@
import"./edit.vue_vue_type_script_setup_true_lang.e1d8ecd9.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.e1d8ecd9.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.ea69f3d7.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./dict.25b3b485.js";export{H as default};
import"./edit.vue_vue_type_script_setup_true_lang.cfb685b3.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.cfb685b3.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.78e6f421.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./dict.e61ac0ab.js";export{H as default};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import"./edit.vue_vue_type_script_setup_true_lang.85afe771.js";import{_ as I}from"./edit.vue_vue_type_script_setup_true_lang.85afe771.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./department.9406e6bc.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.ea69f3d7.js";import"./useDictOptions.254b0f8d.js";export{I as default};
import"./edit.vue_vue_type_script_setup_true_lang.9e6f8458.js";import{_ as I}from"./edit.vue_vue_type_script_setup_true_lang.9e6f8458.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./department.e46fc6ed.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.78e6f421.js";import"./useDictOptions.7e2891d1.js";export{I as default};

View File

@@ -1 +1 @@
import"./edit.vue_vue_type_script_setup_true_lang.7b1d4669.js";import{_ as T}from"./edit.vue_vue_type_script_setup_true_lang.7b1d4669.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.29f42532.js";import"./index.ea69f3d7.js";import"./index.ab5c8d8d.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.be7557e1.js";import"./usePaging.226fac59.js";import"./index.e14f68ca.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";import"./useDictOptions.254b0f8d.js";import"./role.2bbcee68.js";import"./post.58b0c96b.js";import"./department.9406e6bc.js";export{T as default};
import"./edit.vue_vue_type_script_setup_true_lang.eb1a840d.js";import{_ as T}from"./edit.vue_vue_type_script_setup_true_lang.eb1a840d.js";import"./element-plus.f93fd622.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.66926594.js";import"./axios.2d915936.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.99919d7c.js";import"./index.78e6f421.js";import"./index.86c64501.js";import"./lodash.b68d77aa.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.a96d99f2.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.1f6589be.js";import"./usePaging.226fac59.js";import"./index.8c4e7c10.js";import"./index.vue_vue_type_script_setup_true_lang.6f61ba2e.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.a5db575d.js";import"./vue.de4be77f.js";import"./sortablejs.cd7e2c7e.js";import"./useDictOptions.7e2891d1.js";import"./role.60797ac7.js";import"./post.a69d1775.js";import"./department.e46fc6ed.js";export{T as default};

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More