This commit is contained in:
wangchen147 2024-01-30 16:25:53 +08:00
parent 026d5fa334
commit 2305da5053
421 changed files with 1745 additions and 1085 deletions

View File

@ -86,23 +86,30 @@ export function getLink(params: Record<string, any>) {
}
/**
*
*
*/
export function getDiyBottom(params: Record<string, any>) {
export function getDiyBottomList(params: Record<string, any>) {
return request.get(`diy/bottom`, {params})
}
/**
*
*
*/
export function getDiyBottomConfig(params: Record<string, any>) {
return request.get(`diy/bottom/config`, {params})
}
/**
*
* @param params
* @returns
*/
export function setDiyBottom(params: Record<string, any>) {
export function setDiyBottomConfig(params: Record<string, any>) {
return request.post('diy/bottom', params, {showSuccessMessage: true})
}
/**
*
*
*/
export function getDiyTemplate(params: Record<string, any>) {
return request.get(`diy/template`, {params})
@ -124,6 +131,14 @@ export function getDiyRouteList(params: Record<string, any>) {
return request.get(`diy/route`, {params})
}
/**
*
* @returns
*/
export function getDiyRouteAppList() {
return request.get(`diy/route/apps`)
}
/**
*
* @param params
@ -159,7 +174,7 @@ export function changeTemplate(params: Record<string, any>) {
}
/**
*
*
* @param params
* @returns
*/

View File

@ -75,7 +75,7 @@ export function addonDevelopBuild(key: any) {
* @returns
*/
export function addonDevelopDownload(key: any) {
return request.post(`addon_develop/download/${key}`, {}, {"responseType": "blob"})
return request.post(`addon_develop/download/${key}`, {})
}
/***************************************************** 代码生成 ****************************************************/

View File

@ -249,6 +249,7 @@ const dialogClose = (done: () => {}) => {
watch(() => showDialog.value, () => {
if (!showDialog.value) {
active.value = 'build'
cloudBuildLog = []
flashInterval && clearInterval(flashInterval)
clearCloudBuildTask()

View File

@ -11,8 +11,6 @@
"isUse": "使用中",
"unused": "未使用",
"all": "全部",
"basicRoute": "基础页面",
"diyPage": "自定义页面",
"wapUrl": "wap链接",
"weappUrl": "小程序链接",
"shareLink": "分享链接",

View File

@ -1,6 +1,8 @@
{
"decorate": "装修",
"changePage": "设置",
"preview": "预览",
"pageSelectTips": "页面选择",
"developTitle": "开发环境配置",
"wapDomain": "wap域名WAP_DOMAIN",
"wapDomainPlaceholder": "请输入wap域名",

View File

@ -1,55 +1,4 @@
{
"title":"页面名称",
"name":"页面标识",
"type":"页面模板",
"value":"页面数据json格式",
"isDefault":"是否默认页面10否",
"visitCount":"访问量",
"titlePlaceholder":"请输入页面名称",
"namePlaceholder":"请输入页面标识",
"typePlaceholder":"请输入页面模板",
"valuePlaceholder":"请输入页面数据json格式",
"isDefaultPlaceholder":"请输入是否默认页面10否",
"visitCountPlaceholder":"请输入访问量",
"createTimePlaceholder":"请输入创建时间",
"updateTimePlaceholder":"请输入更新时间",
"addDiyPage":"添加自定义页面",
"updateDiyPage":"编辑自定义页面",
"diyPageDeleteTips":"确定要删除该自定义页面吗?",
"leastTwoNav":"至少添加2个导航",
"pleaseUpload":"请上传第[",
"pleaseEnter":"请输入第[",
"pleaseChoose":"请选择第[",
"navIcon":"]个图标",
"navSelectIcon":"]个选中图标",
"navTitle":"]个导航标题",
"navLink":"]个导航链接",
"backgroundColor":"背景颜色",
"imageText":"图文",
"image":"图片",
"text":"文字",
"textColor":"文字颜色",
"textSelectColor":"文字选中颜色",
"reset":"重置",
"navType":"导航类型",
"styleSet":"样式设置",
"addnav":"添加导航",
"linkPlaceholder":"请选择链接",
"navLinkOne":"导航链接",
"navTitleOne":"导航标题",
"titleContent":"请输入标题内容",
"navIconOne":"导航图标",
"navImage":"导航图片",
"bottomNav":"底部导航",
"bottomNavHint":"设置至少添加2个导航最多添加5个导航",
"selectLinkTips":"选择链接",
"selectLinkConfirm":"确定",
"uploadImgUnselected":"未选中",
"uploadImgSelected":"选中"
"title": "插件名称",
"key": "插件标识"
}

View File

@ -0,0 +1,30 @@
{
"leastTwoNav": "至少添加2个导航",
"pleaseUpload": "请上传第[",
"pleaseEnter": "请输入第[",
"pleaseChoose": "请选择第[",
"navIcon": "]个图标",
"navSelectIcon": "]个选中图标",
"navTitle": "]个导航标题",
"navLink": "]个导航链接",
"backgroundColor": "背景颜色",
"imageText": "图文",
"image": "图片",
"text": "文字",
"textColor": "文字颜色",
"textSelectColor": "文字选中颜色",
"reset": "重置",
"navType": "导航类型",
"styleSet": "样式设置",
"addnav": "添加导航",
"navLinkOne": "导航链接",
"navTitleOne": "导航标题",
"titleContent": "请输入标题内容",
"navIconOne": "导航图标",
"navImage": "导航图片",
"editing": "正在编辑",
"bottomNav": "底部导航",
"bottomNavHint": "设置至少添加2个导航最多添加5个导航",
"uploadImgUnselected": "未选中",
"uploadImgSelected": "选中"
}

View File

@ -11,7 +11,7 @@
"totalPay":"累计收款(元)",
"totalRefund":"累计退款(元)",
"totalTransfer":"累计转账(元)",
"accountType": "请选择退款类型",
"accountType": "请选择账单类型",
"startDate": "开始时间",
"endDate": "结束时间",
"transferNo" : "转账单号",
@ -22,5 +22,6 @@
"outTradeNo": "单号",
"refundMoney": "退款金额",
"failReason": "退款说明",
"body": "说明"
}
"body": "说明",
"all": "全部"
}

View File

@ -258,11 +258,13 @@ const goBack = () => {
//
const modulesFiles = import.meta.glob('./components/*.vue', { eager: true })
const addonModulesFiles = import.meta.glob('@/addon/**/views/diy/components/*.vue', { eager: true })
addonModulesFiles && Object.assign(modulesFiles, addonModulesFiles)
const modules = {}
for (const [key, value] of Object.entries(modulesFiles)) {
const moduleName = key.replace(/^\.\/(.*)\.\w+$/, '$1')
const name = moduleName.split('/')[1]
const moduleName = key.split('/').pop()
const name = moduleName.split('.')[0]
modules[name] = value.default
}

View File

@ -40,10 +40,10 @@
<div>
<div class="font-bold">{{ t('H5') }}</div>
<el-form label-width="40px" class="mt-[5px]">
<el-form-item :label="t('link')" v-show="page.use_template.wapPreview" class="mb-[5px]">
<el-input readonly :value="page.use_template.wapPreview">
<el-form-item :label="t('link')" class="mb-[5px]">
<el-input readonly :value="page.shareUrl">
<template #append>
<el-button @click="copyEvent(page.use_template.wapPreview)" class="bg-primary copy">{{ t('copy') }}</el-button>
<el-button @click="copyEvent(page.shareUrl)" class="bg-primary copy">{{ t('copy') }}</el-button>
</template>
</el-input>
</el-form-item>
@ -84,7 +84,7 @@ const link = ref({
name: ''
})
//
//
const formData = reactive({
type: '',
name: '',
@ -105,7 +105,7 @@ const refreshData = () => {
link.value.name = page.use_template.name;
link.value.title = page.use_template.title;
link.value.page = page.use_template.page;
link.value.url = page.use_template.page;
link.value.action = page.use_template.action;
link.value.parent = page.use_template.parent;
@ -200,7 +200,8 @@ const settingTips = () => {
const setDomain = () => {
page.use_template.wapPreview = page.wapUrl + page.use_template.url
QRCode.toDataURL(page.use_template.wapPreview, { errorCorrectionLevel: 'L', margin: 0, width: 100 }).then(url => {
page.shareUrl = page.wapUrl + '/';
QRCode.toDataURL(page.shareUrl, { errorCorrectionLevel: 'L', margin: 0, width: 100 }).then(url => {
wapImage.value = url
})
page.timeIframe = new Date().getTime()

View File

@ -12,7 +12,7 @@
<el-input v-model="diyPageTableData.searchParam.title" :placeholder="t('titlePlaceholder')" />
</el-form-item>
<el-form-item :label="t('forAddon')" prop="addon_name">
<el-select v-model="diyPageTableData.searchParam.addon_name" :placeholder="t('pageTypePlaceholder')">
<el-select v-model="diyPageTableData.searchParam.addon_name" :placeholder="t('pageTypePlaceholder')" @change="handleSelectAddonChange">
<el-option :label="t('all')" value="" />
<el-option v-for="(item, key) in apps" :label="item.title" :value="key" :key="key"/>
</el-select>
@ -179,11 +179,19 @@ const getDomain = async () => {
getDomain()
//
getDiyTemplate({ mode: '' }).then(res => {
for (const key in res.data) {
pageType[key] = res.data[key]
}
})
const loadDiyTemplate = (addon = '')=> {
getDiyTemplate({mode: '', addon}).then(res => {
for (let key in pageType) {
delete pageType[key];
}
for (const key in res.data) {
pageType[key] = res.data[key]
}
})
}
loadDiyTemplate();
const apps: any = reactive({}) //
@ -195,6 +203,12 @@ getApps({}).then(res=>{
}
});
//
const handleSelectAddonChange = (value: any) => {
diyPageTableData.searchParam.type = '';
loadDiyTemplate(value)
}
const diyPageTableData: any = reactive({
page: 1,
limit: 10,

View File

@ -28,7 +28,9 @@
<div class="w-[500px]">
<div class="flex flex-wrap">
<el-button type="primary" @click="toDecorate()" v-show="page.use_template.action == 'decorate'" class="mr-[12px]">{{ t('decorate') }}</el-button>
<!-- 多应用切换启动页 -->
<el-button type="primary" @click="showDialog = true" v-if="siteApps.length > 1">{{ t('changePage') }}</el-button>
<el-button type="primary" @click="toDecorate()" v-show="page.use_template.action == 'decorate'" class="ml-[12px]">{{ t('decorate') }}</el-button>
</div>
<div class="info-wrap">
@ -37,10 +39,10 @@
<div>
<div class="font-bold">{{ t('H5') }}</div>
<el-form label-width="40px" class="mt-[5px]">
<el-form-item :label="t('link')" v-show="page.use_template.wapPreview" class="mb-[5px]">
<el-input readonly :value="page.use_template.wapPreview">
<el-form-item :label="t('link')" class="mb-[5px]">
<el-input readonly :value="page.shareUrl">
<template #append>
<el-button @click="copyEvent(page.use_template.wapPreview)" class="bg-primary copy">{{ t('copy') }}</el-button>
<el-button @click="copyEvent(page.shareUrl)" class="bg-primary copy">{{ t('copy') }}</el-button>
</template>
</el-input>
</el-form-item>
@ -59,18 +61,45 @@
</div>
<el-dialog v-model="showDialog" :title="t('pageSelectTips')" width="400px" :close-on-press-escape="false" :destroy-on-close="true" :close-on-click-modal="false">
<div class="flex items-start">
<el-scrollbar class="pl-4 h-[300px] flex-1">
<div class="flex flex-wrap">
<div v-for="(item, key) in pageType" :key="key"
class="border border-br rounded-[3px] mr-[10px] mb-[10px] px-4 h-[32px] leading-[32px] cursor-pointer hover:bg-primary-light-9 px-[10px] hover:text-primary"
:class="[key == link.name ? 'border-primary text-primary' : '']"
@click="changeLink(key,item)">{{ item.title }}
</div>
</div>
</el-scrollbar>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="showDialog = false">{{ t('cancel') }}</el-button>
<el-button type="primary" @click="changePage()">{{ t('confirm') }}</el-button>
</span>
</template>
</el-dialog>
</template>
<script lang="ts" setup>
import { reactive, ref, watch } from 'vue'
import { reactive, ref, watch, computed } from 'vue'
import { t } from '@/lang'
import { img } from '@/utils/common'
import { useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
import { getDecoratePage, changeTemplate } from '@/app/api/diy'
import { getDecoratePage, changeTemplate,getDiyTemplate } from '@/app/api/diy'
import storage from '@/utils/storage'
import QRCode from 'qrcode'
import { useClipboard } from '@vueuse/core'
import useUserStore from '@/stores/modules/user'
const userStore = useUserStore()
const siteApps = computed(()=>{
return userStore.siteInfo.apps;
})
const type: any = ref('DIY_MEMBER_INDEX');
const page: any = reactive({})
@ -81,16 +110,25 @@ const link = ref({
name: ''
})
//
//
const formData = reactive({
type: '',
name: '',
parent:'',
page: '',
title: '',
action: ''
})
const showDialog = ref(false)
const pageType: any = reactive({}) //
//
getDiyTemplate({ type: 'member_index' }).then(res => {
for (const key in res.data) {
pageType[key] = res.data[key]
}
})
//
const refreshData = () => {
getDecoratePage({
@ -104,7 +142,6 @@ const refreshData = () => {
link.value.title = page.use_template.title;
link.value.page = page.use_template.page;
link.value.action = page.use_template.action;
link.value.parent = page.use_template.parent;
if (page.use_template.url) {
page.loadingIframe = false // iframe
@ -197,7 +234,8 @@ const settingTips = () => {
const setDomain = () => {
page.use_template.wapPreview = page.wapUrl + page.use_template.url
QRCode.toDataURL(page.use_template.wapPreview, { errorCorrectionLevel: 'L', margin: 0, width: 100 }).then(url => {
page.shareUrl = page.wapUrl + page.page;
QRCode.toDataURL(page.shareUrl, { errorCorrectionLevel: 'L', margin: 0, width: 100 }).then(url => {
wapImage.value = url
})
page.timeIframe = new Date().getTime()
@ -243,14 +281,22 @@ const toPreview = () => {
window.open(url.href)
}
//
const changeLink = (key:any,item: any) => {
link.value.name = key;
link.value.page = item.page;
link.value.title = item.title;
link.value.action = item.action;
}
const isRepeat = ref(false)
const changePage = ()=>{
formData.type = type.value;
formData.name = link.value.name;
formData.page = link.value.url;
formData.page = link.value.page;
formData.title = link.value.title;
formData.action = link.value.action;
formData.parent = link.value.parent;
if (isRepeat.value) return
isRepeat.value = true
@ -259,6 +305,7 @@ const changePage = ()=>{
...formData
}).then((res) => {
isRepeat.value = false
showDialog.value = false;
refreshData()
})
}

View File

@ -10,6 +10,12 @@
<el-form-item :label="t('title')" prop="title">
<el-input v-model="diyRouteTableData.searchParam.title" :placeholder="t('titlePlaceholder')" />
</el-form-item>
<el-form-item :label="t('forAddon')" prop="addon_name">
<el-select v-model="diyRouteTableData.searchParam.addon_name" :placeholder="t('pageTypePlaceholder')">
<el-option :label="t('all')" value="" />
<el-option v-for="(item, key) in apps" :label="item.title" :value="key" :key="key"/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="loadDiyRouteList()">{{ t('search') }}</el-button>
<el-button @click="resetForm(searchFormDiyRouteRef)">{{ t('reset') }}</el-button>
@ -22,8 +28,12 @@
<span>{{ !diyRouteTableData.loading ? t('emptyData') : '' }}</span>
</template>
<el-table-column prop="title" :label="t('title')" min-width="70" />
<el-table-column prop="addon_title" :label="t('forAddon')" min-width="70" />
<el-table-column prop="page" :label="t('wapUrl')" min-width="170">
<el-table-column prop="addon_title" :label="t('forAddon')" min-width="70">
<template #default="{ row }">
<span>{{ row.addon_info.title }}</span>
</template>
</el-table-column>
<el-table-column prop="page" :label="t('wapUrl')" min-width="230">
<template #default="{ row }">
<span class="mr-[10px]">{{ wapDomain + row.page }}</span>
<el-button type="primary" link @click="copyEvent(wapDomain + row.page)">{{ t('copy') }}</el-button>
@ -35,7 +45,7 @@
<el-button type="primary" link @click="copyEvent(row.page)">{{ t('copy') }}</el-button>
</template>
</el-table-column>
<el-table-column :label="t('share')" fixed="right" align="right" min-width="80">
<el-table-column :label="t('share')" fixed="right" align="right" min-width="40">
<template #default="{ row }">
<el-button v-if="row.is_share == 1" type="primary" link @click="openShare(row)">{{ t('shareSet') }}</el-button>
</template>
@ -82,7 +92,7 @@
<script lang="ts" setup>
import { reactive, ref, watch, computed } from 'vue'
import { t } from '@/lang'
import { getDiyTemplate, getDiyRouteList, getDiyRouteInfo, editDiyRouteShare } from '@/app/api/diy'
import { getDiyRouteAppList,getDiyTemplate, getDiyRouteList, getDiyRouteInfo, editDiyRouteShare } from '@/app/api/diy'
import { ElMessage, FormInstance } from 'element-plus'
import { useRoute, useRouter } from 'vue-router'
import { useClipboard } from '@vueuse/core'
@ -103,7 +113,8 @@ const diyRouteTableData = reactive({
loading: true,
data: [],
searchParam: {
title: ''
title: '',
addon_name:''
}
})
@ -114,6 +125,16 @@ const getDomain = async () => {
getDomain()
const apps: any = reactive({}) //
getDiyRouteAppList({}).then(res=>{
if(res.data){
for (const key in res.data) {
apps[key] = res.data[key];
}
}
});
/**
* 获取自定义路由列表
*/

View File

@ -1,256 +1,90 @@
<template>
<div class="main-container">
<el-card class="box-card !border-none" shadow="never" v-loading="loading">
<div class="flex">
<div class="w-[360px] h-[400px] absolute mr-[30px] border-[1px] border-gray-300">
<div class="flex items-center justify-between absolute h-[60px] left-[0px] right-[0px] bottom-[0px] bg-white border-[1px] border-primary" :style="{ 'backgroundColor': diyBottomData.backgroundColor }">
<div class="flex flex-1 flex-col items-center justify-center" v-for="(item, index) in diyBottomData.list" :key="'b' + index">
<el-image class="w-[22px] h-[22px] mb-[5px] leading-1" :src="img(item.iconPath)" :fit="contain" v-if="['1', '2'].includes(diyBottomData.type.toString())">
<template #error>
<div class="image-slot flex justify-center items-center mt-1">
<el-icon><Picture class="text-3xl text-gray-500" /></el-icon>
</div>
</template>
</el-image>
<span class="text-[12px]" v-if="['1', '3'].includes(diyBottomData.type.toString())" :style="{ 'color': diyBottomData.textColor }">{{ item.text }}</span>
</div>
</div>
</div>
<div class="flex-1 ml-[430px]">
<div class="flex items-center border-l-[3px] border-primary pl-[5px] leading-[1.1] mt-[10px]">
<span class="text-[14px]">{{ t('bottomNav') }}</span>
<span class="text-[12px] ml-[8px] text-gray-500">{{ t('bottomNavHint') }}</span>
</div>
<el-form :model="diyBottomData" label-width="100px" ref="formRef">
<el-tabs v-model="activeName" class="demo-tabs mt-[15px]">
<el-tab-pane :label="t('navImage')" name="navPicture">
<div ref="navItemRef">
<div v-for="(item,index) in diyBottomData.list" :key="'a'+index" :data-id="index" class="item-wrap border-2 border-dashed pt-[18px] m-[10px] mb-[15px] relative list-item">
<el-form-item :label="t('navIconOne')">
<div class="flex align-center">
<div class="flex flex-col justify-center items-center">
<upload-image v-model="item.iconPath" width="60px" height="60px" :limit="1" />
<span class="mr-[10px] text-sm">{{t('uploadImgUnselected')}}</span>
</div>
<div class="flex flex-col justify-center items-center">
<upload-image v-model="item.iconSelectPath" width="60px" height="60px" :limit="1" />
<span class="mr-[10px] text-sm">{{t('uploadImgSelected')}}</span>
</div>
</div>
</el-form-item>
<el-form-item :label="t('navTitleOne')">
<el-input class="w-[215px]" v-model="item.text" :placeholder="t('titleContent')" maxlength="5" show-word-limit />
</el-form-item>
<el-form-item :label="t('navLinkOne')">
<diy-link v-model="item.link"></diy-link>
</el-form-item>
<el-icon class="close-icon cursor-pointer -top-[11px] -right-[8px]" @click="deleteNav(index)">
<CircleCloseFilled />
</el-icon>
</div>
</div>
<el-card class="box-card !border-none" shadow="never">
<div class="flex justify-between items-center">
<span class="text-[20px]">{{ pageName }}</span>
</div>
<el-button type="primary" class="mt-[15px]" v-show="diyBottomData.list.length < 5" @click="addNav">{{ t('addnav') }}</el-button>
</el-tab-pane>
<el-tab-pane :label="t('styleSet')" name="setStyle">
<el-form-item :label="t('navType')">
<el-radio-group v-model="diyBottomData.type" class="ml-4">
<el-radio label="1" size="large">{{ t('imageText') }}</el-radio>
<el-radio label="2" size="large">{{ t('image') }}</el-radio>
<el-radio label="3" size="large">{{ t('text') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="t('textColor')">
<div class="flex align-center">
<el-color-picker v-model="diyBottomData.textColor" />
<el-input class="ml-[10px]" v-model="diyBottomData.textColor" disabled />
<el-button class="ml-[10px]" type="primary" @click="diyBottomData.textColor = '#333333'">{{ t('reset') }}</el-button>
</div>
</el-form-item>
<el-form-item :label="t('textSelectColor')">
<div class="flex align-center">
<el-color-picker v-model="diyBottomData.textHoverColor" />
<el-input class="ml-[10px]" v-model="diyBottomData.textHoverColor" disabled />
<el-button class="ml-[10px]" type="primary" @click="diyBottomData.textHoverColor = '#333333'">{{ t('reset') }}</el-button>
</div>
</el-form-item>
<el-form-item :label="t('backgroundColor')">
<div class="flex align-center">
<el-color-picker v-model="diyBottomData.backgroundColor" />
<el-input class="ml-[10px]" v-model="diyBottomData.backgroundColor" disabled />
<el-button class="ml-[10px]" type="primary" @click="diyBottomData.backgroundColor = '#FFFFFF'">{{ t('reset') }}</el-button>
</div>
</el-form-item>
</el-tab-pane>
</el-tabs>
</el-form>
</div>
<el-table class="mt-[20px]" :data="bottomNavTableData.data" size="large" v-loading="bottomNavTableData.loading">
<template #empty>
<span>{{ !bottomNavTableData.loading ? t('emptyData') : '' }}</span>
</template>
<el-table-column prop="title" :label="t('title')" min-width="120" >
<template #default="{ row }">
<span>{{ row.info.title }}</span>
</template>
</el-table-column>
<el-table-column prop="key" :label="t('key')" min-width="80"/>
<el-table-column :label="t('operation')" fixed="right" align="right" min-width="160">
<template #default="{ row }">
<el-button type="primary" link @click="editEvent(row)">{{ t('edit') }}</el-button>
</template>
</el-table-column>
</el-table>
<div class="mt-[16px] flex justify-end">
<el-pagination v-model:current-page="bottomNavTableData.page" v-model:page-size="bottomNavTableData.limit"
layout="total, sizes, prev, pager, next, jumper" :total="bottomNavTableData.total"
@size-change="loadbottomNavList()" @current-change="loadbottomNavList" />
</div>
</el-card>
<div class="fixed-footer-wrap">
<div class="fixed-footer">
<el-button type="primary" @click="onSave(formRef)">{{ t('save') }}</el-button>
</div>
</div>
</div>
</template>
<script lang="ts" setup>
import { ref, reactive, onMounted, nextTick } from 'vue'
import { t } from '@/lang'
import { img } from '@/utils/common'
import type { FormInstance, ElNotification } from 'element-plus'
import { getDiyBottom, setDiyBottom } from '@/app/api/diy'
import Sortable from 'sortablejs'
import { range } from 'lodash-es'
import { reactive, ref } from 'vue'
import { t } from '@/lang'
import { getDiyBottomList } from '@/app/api/diy'
import { useRoute, useRouter } from 'vue-router'
const activeName = ref<string>('navPicture')
const loading = ref<boolean>(false)
const router = useRouter()
const route = useRoute()
const pageName = route.meta.title
//
interface diyBottom {
backgroundColor: string,
textColor: string,
textHoverColor: string,
type: string,
list: Array<Object>
}
const diyBottomData = reactive<diyBottom>({
backgroundColor: '#FFFFFF',
textColor: '#333333',
textHoverColor: '#333333',
type: '1',
list: []
})
//
interface diyBottomItem {
text: string,
link: object,
iconSelectPath: string,
iconPath: string
}
const diyBottomItemData = reactive<diyBottomItem>({
text: '',
link: {
name: '',
title: '',
parent: '',
url: ''
},
iconSelectPath: '',
iconPath: ''
})
//
const addNav = (): void => {
if (diyBottomData.list.length >= 5) return
diyBottomData.list.push({ ...diyBottomItemData })
}
addNav()
//
const deleteNav = (index:any): void => {
const data = diyBottomData.list
data.splice(index, 1)
}
const formRef = ref<FormInstance>()
/**
* 获取导航数据
*/
const getDiyBottomFn = (page: number = 1) => {
loading.value = true
getDiyBottom({}).then(res => {
loading.value = false
Object.keys(diyBottomData).forEach((item, index) => {
diyBottomData[item] = res.data[item]
})
}).catch(() => {
loading.value = false
const bottomNavTableData: any = reactive({
page: 1,
limit: 10,
total: 0,
loading: true,
data: [],
})
}
getDiyBottomFn()
//
const onSave = async (formEl: FormInstance | undefined) => {
if (verifyFn()) return false
//
const loadBottomNavList = (page: number = 1) => {
bottomNavTableData.loading = true
bottomNavTableData.page = page
if (loading.value || !formEl) return
await formEl.validate(async (valid) => {
if (valid) {
loading.value = true
setDiyBottom({ menu: diyBottomData }).then(res => {
loading.value = false
}).catch(() => {
loading.value = false
})
}
})
}
getDiyBottomList({}).then(res => {
bottomNavTableData.loading = false
//
const verifyFn = (): boolean => {
if (diyBottomData.list.length < 2) {
ElNotification({
type: 'error',
message: t('leastTwoNav')
})
return true
}
try {
const msg = ref<string>('')
diyBottomData.list.forEach((item: any, index) => {
if (!item.iconPath) msg.value = `${t('pleaseUpload')}${index + 1}${t('navIcon')}`
if (!item.iconSelectPath) msg.value = `${t('pleaseUpload')}${index + 1}${t('navSelectIcon')}`
if (!item.text) msg.value = `${t('pleaseEnter')}[${index + 1}${t('navTitle')}`
if (!item.link.url) msg.value = `${t('pleaseChoose')}${index + 1}${t('navLink')}`
if (msg.value) {
ElNotification({
type: 'error',
message: msg.value
})
throw Error()
const len = Math.ceil(res.data.length / bottomNavTableData.limit)
const data = JSON.parse(JSON.stringify(res.data))
const dataGather = []
for (let i = 0; i < len; i++) {
dataGather[i] = data.splice(0, bottomNavTableData.limit)
}
bottomNavTableData.data = dataGather[bottomNavTableData.page - 1]
bottomNavTableData.total = res.data.length
}).catch(() => {
bottomNavTableData.loading = false
})
} catch (e) {
return true
}
return false
}
const navItemRef = ref()
loadBottomNavList()
onMounted(() => {
const sortable = Sortable.create(navItemRef.value, {
group: 'item-wrap',
animation: 200,
onEnd: event => {
const temp = diyBottomData.list[event.oldIndex!]
diyBottomData.list.splice(event.oldIndex!, 1)
diyBottomData.list.splice(event.newIndex!, 0, temp)
nextTick(() => {
sortable.sort(
range(diyBottomData.list.length).map(value => {
return value.toString()
})
)
})
}
})
})
//
const editEvent = (data: any) => {
router.push('/diy/tabbar_edit?key=' + data.key)
}
</script>
<style lang="scss" scoped>
.close-icon {
display: none;
position: absolute !important;
font-size: 20px !important;
color: #7d7b7b !important;
}
.list-item:hover .close-icon {
display: block;
}
</style>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,262 @@
<template>
<div class="main-container">
<el-card class="box-card !border-none" shadow="never" v-loading="loading">
<div class="flex">
<div class="w-[360px] h-[400px] absolute mr-[30px] border-[1px] border-gray-300">
<div class="flex items-center justify-between absolute h-[60px] left-[0px] right-[0px] bottom-[0px] bg-white border-[1px] border-primary" :style="{ 'backgroundColor': diyBottomData.value.backgroundColor }">
<div class="flex flex-1 flex-col items-center justify-center" v-for="(item, index) in diyBottomData.value.list" :key="'b' + index">
<el-image class="w-[22px] h-[22px] mb-[5px] leading-1" :src="img(item.iconPath)" :fit="contain" v-if="['1', '2'].includes(diyBottomData.value.type.toString())">
<template #error>
<div class="image-slot flex justify-center items-center mt-1">
<el-icon><Picture class="text-3xl text-gray-500" /></el-icon>
</div>
</template>
</el-image>
<span class="text-[12px]" v-if="['1', '3'].includes(diyBottomData.value.type.toString())" :style="{ 'color': diyBottomData.value.textColor }">{{ item.text }}</span>
</div>
</div>
</div>
<div class="flex-1 ml-[430px]">
<div class="flex items-center border-l-[3px] border-primary pl-[5px] leading-[1.1] mt-[10px]">
<span class="text-[14px]">{{ t('editing') }}</span>
<span class="text-[14px] text-primary mx-[3px]">{{ diyBottomData.info.title }}</span>
<span class="text-[14px]">{{ t('bottomNav') }}</span>
<span class="text-[12px] ml-[8px] text-gray-500">{{ t('bottomNavHint') }}</span>
</div>
<el-form :model="diyBottomData.value" label-width="100px" ref="formRef">
<el-tabs v-model="activeName" class="demo-tabs mt-[15px]">
<el-tab-pane :label="t('navImage')" name="navPicture">
<div ref="navItemRef">
<div v-for="(item,index) in diyBottomData.value.list" :key="'a'+index" :data-id="index" class="item-wrap border-2 border-dashed pt-[18px] m-[10px] mb-[15px] relative list-item">
<el-form-item :label="t('navIconOne')">
<div class="flex align-center">
<div class="flex flex-col justify-center items-center">
<upload-image v-model="item.iconPath" width="60px" height="60px" :limit="1" />
<span class="mr-[10px] text-sm">{{t('uploadImgUnselected')}}</span>
</div>
<div class="flex flex-col justify-center items-center">
<upload-image v-model="item.iconSelectPath" width="60px" height="60px" :limit="1" />
<span class="mr-[10px] text-sm">{{t('uploadImgSelected')}}</span>
</div>
</div>
</el-form-item>
<el-form-item :label="t('navTitleOne')">
<el-input class="w-[215px]" v-model="item.text" :placeholder="t('titleContent')" maxlength="5" show-word-limit />
</el-form-item>
<el-form-item :label="t('navLinkOne')">
<diy-link v-model="item.link"></diy-link>
</el-form-item>
<el-icon class="close-icon cursor-pointer -top-[11px] -right-[8px]" @click="deleteNav(index)">
<CircleCloseFilled />
</el-icon>
</div>
</div>
<el-button type="primary" class="mt-[15px]" v-show="diyBottomData.value.list.length < 5" @click="addNav">{{ t('addnav') }}</el-button>
</el-tab-pane>
<el-tab-pane :label="t('styleSet')" name="setStyle">
<el-form-item :label="t('navType')">
<el-radio-group v-model="diyBottomData.value.type" class="ml-4">
<el-radio label="1" size="large">{{ t('imageText') }}</el-radio>
<el-radio label="2" size="large">{{ t('image') }}</el-radio>
<el-radio label="3" size="large">{{ t('text') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="t('textColor')">
<div class="flex align-center">
<el-color-picker v-model="diyBottomData.value.textColor" />
<el-input class="ml-[10px]" v-model="diyBottomData.value.textColor" disabled />
<el-button class="ml-[10px]" type="primary" @click="diyBottomData.value.textColor = '#333333'">{{ t('reset') }}</el-button>
</div>
</el-form-item>
<el-form-item :label="t('textSelectColor')">
<div class="flex align-center">
<el-color-picker v-model="diyBottomData.value.textHoverColor" />
<el-input class="ml-[10px]" v-model="diyBottomData.value.textHoverColor" disabled />
<el-button class="ml-[10px]" type="primary" @click="diyBottomData.value.textHoverColor = '#333333'">{{ t('reset') }}</el-button>
</div>
</el-form-item>
<el-form-item :label="t('backgroundColor')">
<div class="flex align-center">
<el-color-picker v-model="diyBottomData.value.backgroundColor" />
<el-input class="ml-[10px]" v-model="diyBottomData.value.backgroundColor" disabled />
<el-button class="ml-[10px]" type="primary" @click="diyBottomData.value.backgroundColor = '#FFFFFF'">{{ t('reset') }}</el-button>
</div>
</el-form-item>
</el-tab-pane>
</el-tabs>
</el-form>
</div>
</div>
</el-card>
<div class="fixed-footer-wrap">
<div class="fixed-footer">
<el-button type="primary" @click="onSave(formRef)">{{ t('save') }}</el-button>
<el-button @click="back()">{{ t('back') }}</el-button>
</div>
</div>
</div>
</template>
<script lang="ts" setup>
import { ref, reactive, onMounted, nextTick } from 'vue'
import { t } from '@/lang'
import { img } from '@/utils/common'
import type { FormInstance, ElNotification } from 'element-plus'
import { getDiyBottomConfig, setDiyBottomConfig } from '@/app/api/diy'
import Sortable from 'sortablejs'
import { range } from 'lodash-es'
import { useRoute,useRouter } from 'vue-router'
const activeName = ref<string>('navPicture')
const loading = ref<boolean>(false)
const route = useRoute()
const router = useRouter()
route.query.key = route.query.key || '';
//
const diyBottomData = reactive({
key:'',
info:{},
value:{
backgroundColor: '#FFFFFF',
textColor: '#333333',
textHoverColor: '#333333',
type: '1',
list: []
}
})
//
const diyBottomItemData = reactive({
text: '',
link: {
name: '',
title: '',
parent: '',
url: ''
},
iconSelectPath: '',
iconPath: ''
})
//
const addNav = (): void => {
if (diyBottomData.value.list.length >= 5) return
diyBottomData.value.list.push({ ...diyBottomItemData })
}
addNav()
//
const deleteNav = (index:any): void => {
const data = diyBottomData.value.list
data.splice(index, 1)
}
const formRef = ref<FormInstance>()
/**
* 获取导航数据
*/
const getDiyBottomFn = () => {
loading.value = true
getDiyBottomConfig({
key:route.query.key
}).then(res => {
loading.value = false
Object.keys(diyBottomData).forEach((item, index) => {
diyBottomData[item] = res.data[item]
})
}).catch(() => {
loading.value = false
})
}
getDiyBottomFn()
//
const onSave = async (formEl: FormInstance | undefined) => {
if (verifyFn()) return false
if (loading.value || !formEl) return
await formEl.validate(async (valid) => {
if (valid) {
loading.value = true
setDiyBottomConfig({key: diyBottomData.key, value: diyBottomData.value}).then(res => {
loading.value = false
}).catch(() => {
loading.value = false
})
}
})
}
const back = () => {
router.push('/diy/tabbar')
}
//
const verifyFn = (): boolean => {
if (diyBottomData.value.list.length < 2) {
ElNotification({
type: 'error',
message: t('leastTwoNav')
})
return true
}
try {
const msg = ref<string>('')
diyBottomData.value.list.forEach((item: any, index) => {
if (!item.iconPath) msg.value = `${t('pleaseUpload')}${index + 1}${t('navIcon')}`
if (!item.iconSelectPath) msg.value = `${t('pleaseUpload')}${index + 1}${t('navSelectIcon')}`
if (!item.text) msg.value = `${t('pleaseEnter')}[${index + 1}${t('navTitle')}`
if (!item.link.url) msg.value = `${t('pleaseChoose')}${index + 1}${t('navLink')}`
if (msg.value) {
ElNotification({
type: 'error',
message: msg.value
})
throw Error()
}
})
} catch (e) {
return true
}
return false
}
const navItemRef = ref()
onMounted(() => {
const sortable = Sortable.create(navItemRef.value, {
group: 'item-wrap',
animation: 200,
onEnd: event => {
const temp = diyBottomData.value.list[event.oldIndex!]
diyBottomData.value.list.splice(event.oldIndex!, 1)
diyBottomData.value.list.splice(event.newIndex!, 0, temp)
nextTick(() => {
sortable.sort(
range(diyBottomData.value.list.length).map(value => {
return value.toString()
})
)
})
}
})
})
</script>
<style lang="scss" scoped>
.close-icon {
display: none;
position: absolute !important;
font-size: 20px !important;
color: #7d7b7b !important;
}
.list-item:hover .close-icon {
display: block;
}
</style>

View File

@ -44,9 +44,10 @@
</el-card>
<el-card class="box-card !border-none my-[10px] table-search-wrap" shadow="never">
<el-form :inline="true" :model="siteAccountLogTable.searchParam" ref="searchFormRef">
<el-form-item :label="t('type')" class="items-center">
<el-form-item :label="t('type')" class="items-center" prop="type">
<el-select v-model="siteAccountLogTable.searchParam.type" class="m-2"
:placeholder="t('accountType')">
<el-option :label="t('all')" value="" />
<el-option v-for="(item, index) in accountType" :key="index" :label="item" :value="index" />
</el-select>
</el-form-item>

View File

@ -25,38 +25,46 @@
</div>
<el-input v-model="params.keywords" class="!w-[300px] !h-[34px]" placeholder="输入要搜索的站点名称" @keyup.enter.native="query">
<template #suffix>
<el-icon @click.stop="query" class="cursor-pointer">
<el-icon @click.stop="getHomeSiteFn()" class="cursor-pointer">
<Search />
</el-icon>
</template>
</el-input>
</div>
<div class="flex flex-wrap mt-[30px]" v-loading="loading">
<div v-for="(item, index) in tableData" :key="index" @click="selectSite(item)"
:class="['home-item w-[285px] box-border mb-[20px] cursor-pointer',{'mr-[20px]': index ==0 || (index+1)%4 != 0}]">
<div class="flex items-center px-[24px] pt-[22px] pb-[16px] bg-[#F0F2F4] home-item-head">
<img v-if="item.logo" class="w-[48px] h-[48px] mr-[15px] rounded-[50%] overflow-hidden" :src="img(item.logo)" />
<img v-else class="w-[48px] h-[48px] mr-[15px] rounded-[50%] overflow-hidden" src="@/app/assets/images/member_head.png" />
<div class="flex flex-col flex-1 justify-center">
<div class="flex items-center flex-wrap">
<span class="text-[16px] text-[#000] max-w-[145px] font-bold truncate mr-[10px]">{{item.site_name}}</span>
<div class="flex items-center justify-center min-w-[42px] h-[18px] bg-[#FF5500] rounded-tl-md rounded-br-md items-tab" v-if="item.app_name">
<span class="text-[12px] text-[#fff]">{{item.app_name}}</span>
<div class="min-h-[580px]">
<div class="flex flex-wrap mt-[30px]" v-loading="loading">
<div v-for="(item, index) in tableData" :key="index" @click="selectSite(item)"
:class="['home-item w-[285px] box-border mb-[20px] cursor-pointer',{'mr-[20px]': index ==0 || (index+1)%4 != 0}]">
<div class="flex items-center px-[24px] pt-[22px] pb-[16px] bg-[#F0F2F4] home-item-head">
<img v-if="item.logo" class="w-[48px] h-[48px] mr-[15px] rounded-[50%] overflow-hidden" :src="img(item.logo)" />
<img v-else class="w-[48px] h-[48px] mr-[15px] rounded-[50%] overflow-hidden" src="@/app/assets/images/member_head.png" />
<div class="flex flex-col flex-1 justify-center">
<div class="flex items-center flex-wrap">
<span class="text-[16px] text-[#000] max-w-[145px] font-bold truncate mr-[10px]">{{item.site_name}}</span>
<div class="flex items-center justify-center min-w-[42px] h-[18px] bg-[#FF5500] rounded-tl-md rounded-br-md items-tab" v-if="item.app_name">
<span class="text-[12px] text-[#fff]">{{item.app_name}}</span>
</div>
</div>
<span class="text-[12px] mt-[3px] text-[#555]">{{item.create_time ? item.create_time.split(" ")[0] : '--'}} {{item.expire_time ? item.expire_time.split(" ")[0] : '--'}}</span>
</div>
<span class="text-[12px] mt-[3px] text-[#555]">{{item.create_time ? item.create_time.split(" ")[0] : '--'}} {{item.expire_time ? item.expire_time.split(" ")[0] : '--'}}</span>
</div>
<div class="px-[24px] py-[20px] text-[#6D7278]">
<p class="text-[14px]">站点编号{{item.site_id}}</p>
<p class="text-[14px] mt-[2px]">站点套餐{{item.group_name || '--'}}</p>
</div>
</div>
<div class="px-[24px] py-[20px] text-[#6D7278]">
<p class="text-[14px]">站点编号{{item.site_id}}</p>
<p class="text-[14px] mt-[2px]">站点套餐{{item.group_name || '--'}}</p>
<div v-if="!tableData.length && !loading" class="m-auto">
<img src="@/app/assets/images/empty.png"/>
<p class="text-center text-gray-400">暂无站点</p>
</div>
</div>
<div v-if="!tableData.length && !loading" class="m-auto">
<img src="@/app/assets/images/empty.png"/>
<p class="text-center text-gray-400">暂无站点</p>
</div>
</div>
<div class="mt-[16px] flex justify-end">
<el-pagination v-model:current-page="site.params.page" v-model:page-size="site.params.limit"
layout="total, sizes, prev, pager, next, jumper" :total="site.total"
@size-change="getHomeSiteFn()" @current-change="getHomeSiteFn" :hide-on-single-page="true"/>
</div>
</div>
</div>
@ -75,7 +83,7 @@ import { ElMessage } from 'element-plus'
import { AnyObject } from '@/types/global'
const userStore:AnyObject = useUserStore()
interface State{
interface Site{
params: {
keywords: string,
page: number,
@ -92,10 +100,11 @@ interface State{
expire_time: string,
site_id: number,
group_name: string
}[]
}[],
total: 0
}
const state:State = reactive({
const site:Site = reactive({
params: {
keywords: '',
page: 1,
@ -104,24 +113,27 @@ const state:State = reactive({
sort: false
},
loading: false,
tableData: []
tableData: [],
total: 0
})
const { params, loading, tableData } = toRefs(state)
const getHomeSiteFn = () => {
state.loading = true
getHomeSite(state.params).then(res => {
state.tableData = res.data.data
state.loading = false
const { params, loading, tableData } = toRefs(site)
const getHomeSiteFn = (page: number = 1) => {
site.params.page = page
site.loading = true
getHomeSite(site.params).then(res => {
site.tableData = res.data.data
site.total = res.data.total
site.loading = false
}).catch(() => {
state.loading = false
site.loading = false
})
}
getHomeSiteFn()
//
const cutAppFn = (app:any) => {
state.params.app = app
site.params.app = app
getHomeSiteFn()
}
@ -137,17 +149,12 @@ const getWebConfigFn = () => {
}
getWebConfigFn()
const query = () => {
state.params.page = 1
getHomeSiteFn()
}
const selectSite = (site: any) => {
storage.set({ key: 'siteId', data: site.site_id })
storage.set({ key: 'siteInfo', data: site })
storage.set({ key: 'comparisonSiteIdStorage', data: site.site_id })
useUserStore().$patch((state) => {
state.siteInfo = site
useUserStore().$patch((site) => {
site.siteInfo = site
})
location.href = `${location.origin}/site/`
}

View File

@ -11,18 +11,24 @@
</template>
</el-input>
</div>
<div class="flex mt-[24px]">
<div :class="['flex items-center text-[14px] h-[32px] border-[1px] border-solid my-[3px] border-[#E0E0E0] rounded-full px-[15px] mr-[24px] cursor-pointer bg-[#f8f8f8] hover:bg-[#fff]', { 'text-[#fff] !bg-[#000] border-[#000]': activeName === 'installed' }]"
@click="activeNameTabFn('installed')">
{{ t('installLabel') }}
<div class="flex mt-[24px] justify-between">
<div class="flex">
<div :class="['flex items-center text-[14px] h-[32px] border-[1px] border-solid my-[3px] border-[#E0E0E0] rounded-full px-[15px] mr-[24px] cursor-pointer bg-[#f8f8f8] hover:bg-[#fff]', { 'text-[#fff] !bg-[#000] border-[#000]': activeName === 'installed' }]"
@click="activeNameTabFn('installed')">
{{ t('installLabel') }}
</div>
<div :class="['flex items-center text-[14px] h-[32px] border-[1px] border-solid my-[3px] border-[#E0E0E0] rounded-full px-[15px] mr-[24px] cursor-pointer bg-[#f8f8f8] hover:bg-[#fff]', { 'text-[#fff] !bg-[#000] border-[#000]': activeName === 'uninstalled' }]"
@click="activeNameTabFn('uninstalled')">
{{ t('uninstalledLabel') }}
</div>
<div :class="['flex items-center text-[14px] h-[32px] border-[1px] border-solid my-[3px] border-[#E0E0E0] rounded-full px-[15px] mr-[24px] cursor-pointer bg-[#f8f8f8] hover:bg-[#fff]', { 'text-[#fff] !bg-[#000] border-[#000]': activeName === 'all' }]"
@click="activeNameTabFn('all')">
{{ t('buyLabel') }}
</div>
</div>
<div :class="['flex items-center text-[14px] h-[32px] border-[1px] border-solid my-[3px] border-[#E0E0E0] rounded-full px-[15px] mr-[24px] cursor-pointer bg-[#f8f8f8] hover:bg-[#fff]', { 'text-[#fff] !bg-[#000] border-[#000]': activeName === 'uninstalled' }]"
@click="activeNameTabFn('uninstalled')">
{{ t('uninstalledLabel') }}
</div>
<div :class="['flex items-center text-[14px] h-[32px] border-[1px] border-solid my-[3px] border-[#E0E0E0] rounded-full px-[15px] mr-[24px] cursor-pointer bg-[#f8f8f8] hover:bg-[#fff]', { 'text-[#fff] !bg-[#000] border-[#000]': activeName === 'all' }]"
@click="activeNameTabFn('all')">
{{ t('buyLabel') }}
<div :class="['flex items-center text-white text-[14px] h-[32px] border-[1px] border-solid my-[3px] border-primary rounded-full px-[15px] cursor-pointer bg-primary hover:bg-primary']"
@click="handleCloudBuild">
{{ t('cloudBuild') }}
</div>
</div>
<div class="mt-[25px]">
@ -100,8 +106,6 @@
<span v-else-if="row.is_download && row.install_info <= 0">{{ t('installDown') }}</span>
<span v-else>{{ t('down') }}</span>
</el-button>
<el-button class="!text-[13px]" type="primary" v-if="row.install_info && Object.keys(row.install_info)?.length" link @click="handleCloudBuild">{{
t('cloudBuild') }}</el-button>
</template>
</el-table-column>
</el-table>

View File

@ -2,7 +2,7 @@
<el-container
:class="['w-full h-screen bg-page flex flex-col', { 'login-wrap': loginType == 'admin' }, { 'site-login-wrap': loginType == 'site' }]">
<!-- 平台端登录 -->
<el-main class="login-main items-center justify-center" v-if="!imgLoading && loginType == 'admin'">
<el-main class="login-main items-center justify-center flex-1 h-0" v-if="loginType == 'admin'">
<div class="flex rounded-2xl overflow-hidden">
<div class="login-main-left w-[450px] flex flex-wrap justify-center">
<el-image v-if="loginConfig.bg" class="w-[450px] h-[400px]" :src="img(loginConfig.bg)" fit="cover" />
@ -49,44 +49,59 @@
<img v-if="loginConfig.site_bg" class="hidden h-[100%] lg:block" :src="img(loginConfig.site_bg)" />
<img v-else class="hidden h-[100%] lg:block" src="@/app/assets/images/site_login_bg.png" />
<div
class="w-[100%] bg-[#F8FAFF] flex justify-center items-center absolute right-0 top-0 h-screen lg:w-[60%]">
<div class="site-login-item w-[45%] py-[30px] relative rounded-[13px] max-w-[350px] bg-[#fff]">
<div class="w-[80%] mx-auto">
<h3 class="text-3xl mb-[30px]">{{ t('siteLogin') }}</h3>
<el-form :model="form" ref="formRef" :rules="formRules">
<el-form-item prop="username">
<el-input v-model="form.username" @keyup.enter="handleLogin(formRef)"
class="w-50 m-1 h-[40px]" :placeholder="t('userPlaceholder')">
<template #prefix>
<icon name="element-User" />
</template>
</el-input>
</el-form-item>
class="w-[100%] bg-[#F8FAFF] flex flex-col absolute right-0 top-0 h-screen lg:w-[60%]">
<div class="flex justify-center items-center flex-1 h-0">
<div class="site-login-item w-[45%] py-[30px] relative rounded-[13px] max-w-[350px] bg-[#fff]">
<div class="w-[80%] mx-auto">
<h3 class="text-3xl mb-[30px]">{{ t('siteLogin') }}</h3>
<el-form :model="form" ref="formRef" :rules="formRules">
<el-form-item prop="username">
<el-input v-model="form.username" @keyup.enter="handleLogin(formRef)"
class="w-50 m-1 h-[40px]" :placeholder="t('userPlaceholder')">
<template #prefix>
<icon name="element-User" />
</template>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input type="password" v-model="form.password" @keyup.enter="handleLogin(formRef)"
:show-password="true" class="w-50 m-1 h-[40px]"
:placeholder="t('passwordPlaceholder')">
<template #prefix>
<icon name="element-Lock" />
</template>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input type="password" v-model="form.password" @keyup.enter="handleLogin(formRef)"
:show-password="true" class="w-50 m-1 h-[40px]"
:placeholder="t('passwordPlaceholder')">
<template #prefix>
<icon name="element-Lock" />
</template>
</el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" class="mt-[30px] h-[40px] w-full"
@click="handleLogin(formRef)" :loading="loading">{{ loading ? t('logging') :
<el-form-item>
<el-button type="primary" class="mt-[30px] h-[40px] w-full"
@click="handleLogin(formRef)" :loading="loading">{{ loading ? t('logging') :
t('login') }}</el-button>
</el-form-item>
</el-form>
</el-form-item>
</el-form>
</div>
</div>
<!-- <img class="w-[15%] max-w-[50px] absolute top-0 right-0" src="@/app/assets/images/login/site_code.png"/> -->
</div>
<div class="flex items-center justify-center mt-[20px] text-[#999] text-sm pb-8 " v-if="copyright">
<a :href="copyright.gov_url" v-if="copyright.gov_record" class="flex" target="_blank">
<img src="@/app/assets/images/gov_icon.png" alt="" class="h-[20px] mr-1">
<span class="mr-3">公安备案号:{{ copyright.gov_record }}</span>
</a>
<a href="https://beian.miit.gov.cn/" target="_blank" v-if="copyright.icp">
<span class="mr-3">备案号:{{ copyright.icp }}</span>
</a>
<a :href="copyright.copyright_link" target="_blank">
<span class="mr-3" v-if="copyright.company_name">{{ copyright.company_name }}</span>
<span class="mr-3" v-if="copyright.copyright_desc">©{{ copyright.copyright_desc }}</span>
</a>
</div>
</div>
</div>
</el-main>
<div class="flex items-center justify-center mt-[20px] text-[#999] text-sm pb-10 " v-if="copyright">
<div class="flex items-center justify-center mt-[20px] text-[#999] text-sm pb-8" v-if="copyright && loginType == 'admin'">
<a :href="copyright.gov_url" v-if="copyright.gov_record" class="flex" target="_blank">
<img src="@/app/assets/images/gov_icon.png" alt="" class="h-[20px] mr-1">
<span class="mr-3">公安备案号:{{ copyright.gov_record }}</span>

View File

@ -47,8 +47,8 @@
:placeholder="t('memberInfoPlaceholder')" />
</el-form-item>
<el-form-item :label="t('balanceType')" prop="from_type">
<el-select v-model="memberAccountLogTableData.balance_type" clearable
<el-form-item :label="t('balanceType')" prop="balance_type">
<el-select v-model="memberAccountLogTableData.searchParam.balance_type" clearable
:placeholder="t('fromTypePlaceholder')" class="input-width" @change="checkAccountType">
<el-option :label="t('selectPlaceholder')" value="" />
<el-option :label="item.name" :value="item.type" v-for="(item, key) in balanceStatus" :key="key"/>
@ -81,7 +81,7 @@
<template #empty>
<span>{{ !memberAccountLogTableData.loading ? t('emptyData') : '' }}</span>
</template>
<el-table-column prop="member_id" :label="t('memberId')" min-width="80" :show-overflow-tooltip="true">
<el-table-column prop="member_id" :label="t('memberId')" min-width="100" :show-overflow-tooltip="true">
<template #default="{ row }">
{{ row.member.member_no }}
</template>
@ -104,10 +104,12 @@
{{ row.member.mobile || '' }}
</template>
</el-table-column>
<el-table-column prop="account_data" :label="t('accountData')" min-width="70" align="right">
<el-table-column prop="account_data" :label="t('accountData')" min-width="100" align="right">
<template #default="{ row }">
<span v-if="row.account_data >= 0">+{{ row.account_data }}</span>
<span v-else>{{ row.account_data }}</span>
<div class="whitespace-nowrap">
<span v-if="row.account_data >= 0">+{{ row.account_data }}</span>
<span v-else>{{ row.account_data }}</span>
</div>
</template>
</el-table-column>
<el-table-column prop="account_sum" :label="t('accountSum')" min-width="110" align="right" />
@ -165,10 +167,9 @@ const memberAccountLogTableData = reactive({
from_type: '',
create_time: '',
mobile: '',
member_id: member_id
},
balance_type: ''
member_id: member_id,
balance_type: ''
}
})
const fromTypeList = ref([])
@ -193,7 +194,7 @@ const resetForm = (formEl: FormInstance | undefined) => {
const loadMemberAccountLogList = (page: number = 1) => {
memberAccountLogTableData.loading = true
memberAccountLogTableData.page = page
if (memberAccountLogTableData.balance_type == '' || memberAccountLogTableData.balance_type == 'balance') {
if (memberAccountLogTableData.searchParam.balance_type == '' || memberAccountLogTableData.searchParam.balance_type == 'balance') {
getBalanceList({
page: memberAccountLogTableData.page,
limit: memberAccountLogTableData.limit,
@ -267,12 +268,13 @@ const checkBalanceStatus = () => {
checkBalanceStatus()
const checkAccountType = () => {
let account_type = memberAccountLogTableData.balance_type
if (memberAccountLogTableData.balance_type == '') {
account_type = 'balance'
let accountType = memberAccountLogTableData.searchParam.balance_type
if (accountType == '') {
accountType = 'balance'
}
getAccountType({
account_type
account_type: accountType
}).then(res => {
fromTypeList.value = res.data
})

View File

@ -2,7 +2,7 @@
<div class="main-container">
<el-card class="box-card !border-none" shadow="never">
<div class="flex justify-between items-center mb-[5px]">
<span class="text-[20x]">{{ pageName }}</span>
<span class="text-[20px]">{{ pageName }}</span>
</div>
<el-card class="box-card !border-none base-bg !px-[35px]" shadow="never">
<el-row class="flex">

View File

@ -257,31 +257,14 @@ const addonDevelopBuildFn = (data: any) => {
loading.value = true
addonDevelopBuild(data.key).then(res => {
loading.value = false
ElMessageBox.confirm(t('addonDownloadText'), t('warning'),
{
confirmButtonText: t('confirm'),
cancelButtonText: t('cancel'),
type: 'success',
}
).then(() => {
addonDevelopDownloadFn(data)
})
addonDevelopDownload(data.key).then(res => {
ElMessageBox.alert(`插件打包成功,插件包所在位置:网站根目录${res.data}下请手动进行下载`, t('warning'))
}).catch()
}).catch(() => {
loading.value = false
})
}
//
const addonDevelopDownloadFn = (data:any) => {
addonDevelopDownload(data.key).then(res => {
const blob = new Blob([res])
const url = window.URL.createObjectURL(blob) // url blob
const a = document.createElement('a')
a.href = url
a.download = data.title + '.zip'
a.click()
window.URL.revokeObjectURL(url) // url
})
}
/**
* 删除
*/

View File

@ -41,7 +41,7 @@
</el-form-item>
</div>
<el-form-item label=" ">
<div class="text-sm text-gray-400 select-text">路径必须以/开头/pages/index/index</div>
<div class="text-sm text-gray-400 select-text">路径必须以/开头/app/pages/index/index</div>
</el-form-item>
<el-form-item label=" ">
<div class="text-sm text-gray-400 select-text">跳转外部链接/开头https://baidu.com</div>
@ -188,7 +188,6 @@ const save = () => {
selectLink.value.parent = parentLinkName.value
selectLink.value.name = parentLinkName.value
selectLink.value.page = selectLink.value.url;
selectLink.value.action = '';
}else if(parentLinkName.value == 'DIY_PAGE'){
@ -199,6 +198,7 @@ const save = () => {
value.value = cloneDeep(selectLink.value)
showDialog.value = false
emit('success')
}

View File

@ -15,7 +15,7 @@ interface User {
addonIndexRoute: Record<string, symbol>
}
const useSystemStore = defineStore('user', {
const userStore = defineStore('user', {
state: (): User => {
return {
token: getToken() || '',
@ -96,4 +96,4 @@ const useSystemStore = defineStore('user', {
}
})
export default useSystemStore
export default userStore

View File

@ -120,7 +120,7 @@ class AddonDevelop extends BaseAdminController
*/
public function download($key){
return (new AddonDevelopService())->download($key);
return success(data:(new AddonDevelopService())->download($key));
}
}

View File

@ -23,25 +23,38 @@ use think\Response;
*/
class Config extends BaseAdminController
{
/**
* 获取底部导航列表
* @return Response
*/
public function getBottomList()
{
return success((new DiyConfigService())->getBottomList());
}
/**
* 获取底部导航
* @return Response
*/
public function getBottom()
public function getBottomConfig()
{
return success((new DiyConfigService())->getBottomConfig());
$params = $this->request->params([
[ 'key', 'app' ],
]);
return success((new DiyConfigService())->getBottomConfig($params[ 'key' ]));
}
/**
* 设置底部导航
* @return Response
*/
public function setBottom()
public function setBottomConfig()
{
$data = $this->request->params([
['menu', []]
[ 'value', [] ],
[ 'key', 'app' ]
]);
(new DiyConfigService())->setBottomConfig($data['menu']);
(new DiyConfigService())->setBottomConfig($data[ 'value' ], $data[ 'key' ]);
return success();
}

View File

@ -166,9 +166,11 @@ class Diy extends BaseAdminController
public function getTemplate()
{
$params = $this->request->params([
[ 'type', '' ], // 页面类型模板
[ 'key', '' ], // 页面模板标识
[ 'action', '' ], // 页面是否装修标识为空标识不装修decorate装修
[ 'mode', '' ] // 页面展示模式diy自定义fixed固定
[ 'mode', '' ], // 页面展示模式diy自定义fixed固定
[ 'type', '' ], // 页面类型index首页、member_index个人中心普通页面
[ 'addon', '' ], // 插件标识
]);
$diy_service = new DiyService();
return success($diy_service->getTemplate($params));
@ -223,15 +225,15 @@ class Diy extends BaseAdminController
public function getTemplatePages()
{
$params = $this->request->params([
[ 'type', '' ],
[ 'mode', '' ]
[ 'type', '' ], // 页面类型
[ 'mode', '' ] // 页面模式diy自定义fixed固定
]);
$pages = PagesDict::getPages($params);
return success($pages);
}
/**
* 获取模板页面的应用插件列表
* 获取模板页面(存在的应用插件列表
* @return Response
*/
public function getApps()

View File

@ -30,8 +30,9 @@ class DiyRoute extends BaseAdminController
public function lists()
{
$data = $this->request->params([
[ 'title', '' ],
[ 'addon_name', '' ]
[ 'title', '' ], // 页面名称
[ 'url', '' ], // 路由地址,格式:/app/pages/index/index
[ 'addon_name', '' ] // 插件标识
]);
return success((new DiyRouteService())->getList($data));
}
@ -121,4 +122,14 @@ class DiyRoute extends BaseAdminController
return success('MODIFY_SUCCESS');
}
/**
* 获取模板页面(存在的应用插件列表)
* @return Response
*/
public function getApps()
{
return success((new DiyRouteService())->getApps());
}
}

View File

@ -67,9 +67,6 @@ class Login extends BaseAdminController
}
public function test(){
// (new CoreMenuService())->refreshAddonMenu('shop');
// (new CoreAddonDevelopBuildService())->build('shop');
// (new CoreFileService())->driver(0);
dd((new CoreOrderRefundService())->refundSuccess('20240118393625662873600'));
dd(rtrim(dirname(root_path()) . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR));
}
}

View File

@ -26,6 +26,7 @@ class SiteAccount extends BaseAdminController
{
$data = $this->request->params([
['type', ''],
['trade_no', ''],
['create_time', []],
]);
return success((new SiteAccountLogService())->getPage($data));

View File

@ -62,6 +62,9 @@ Route::group('diy', function() {
// 自定义路由列表
Route::get('route', 'diy.DiyRoute/lists');
// 获取路由列表(存在的应用插件列表)
Route::get('route/apps', 'diy.DiyRoute/getApps');
// 获取自定义路由分享内容
Route::get('route/info', 'diy.DiyRoute/getInfoByName');
@ -71,16 +74,19 @@ Route::group('diy', function() {
// 编辑自定义页面分享内容
Route::put('diy/share', 'diy.Diy/modifyShare');
// 获取模板页面的应用插件列表
// 获取模板页面(存在的应用插件列表
Route::get('apps', 'diy.Diy/getApps');
/***************************************************** 配置相关 *****************************************************/
// 底部导航查询
Route::get('bottom', 'diy.Config/getBottom');
// 底部导航列表
Route::get('bottom', 'diy.Config/getBottomList');
// 底部导航配置
Route::post('bottom', 'diy.Config/setBottom');
Route::get('bottom/config', 'diy.Config/getBottomConfig');
// 设置底部导航
Route::post('bottom', 'diy.Config/setBottomConfig');
})->middleware([
AdminCheckToken::class,

View File

@ -30,7 +30,7 @@ class Diy extends BaseApiController
[ 'id', '' ],
[ 'name', '' ]
]);
return success(( new DiyService() )->getInfo($params));
return success((new DiyService())->getInfo($params));
}
/**
@ -39,7 +39,10 @@ class Diy extends BaseApiController
*/
public function tabbar()
{
return success(( new DiyConfigService() )->getBottomConfig());
$params = $this->request->params([
[ 'key', 'app' ],
]);
return success((new DiyConfigService())->getBottomConfig($params[ 'key' ]));
}
/**
@ -52,6 +55,6 @@ class Diy extends BaseApiController
[ 'route', '' ],
[ 'params', '' ]
]);
return success(( new DiyRouteService() )->getShare($data));
return success((new DiyRouteService())->getShare($data));
}
}

View File

@ -20,13 +20,15 @@ use core\dict\DictLoader;
*/
class LinkDict
{
public static function getLink()
public static function getLink($params = [])
{
$system_links = [
'SYSTEM_LINK' => [
'key' => '',
'addon_title' => get_lang('dict_diy.system_title'),
'title' => get_lang('dict_diy.system_link'),
'addon_info' => [
'title' => '系统',
'key' => 'app'
],
'child_list' => [
[
'name' => 'INDEX',
@ -38,9 +40,11 @@ class LinkDict
]
],
'MEMBER_LINK' => [
'key' => '',
'addon_title' => get_lang('dict_diy.system_title'),
'title' => get_lang('dict_diy.member_link'),
'addon_info' => [
'title' => '系统',
'key' => 'app'
],
'child_list' => [
[
'name' => 'MEMBER_CENTER',
@ -87,19 +91,37 @@ class LinkDict
]
],
'DIY_PAGE' => [
'key' => '',
'addon_title' => '',
'title' => get_lang('dict_diy.diy_page'),
'addon_info' => [
'title' => '系统',
'key' => 'app'
],
'child_list' => []
],
'DIY_LINK' => [
'key' => '',
'addon_title' => '',
'title' => get_lang('dict_diy.diy_link'),
'addon_info' => [
'title' => '系统',
'key' => 'app'
],
'child_list' => []
]
];
return ( new DictLoader("UniappLink") )->load($system_links);
// 查询存在页面路由的应用插件列表
if (!empty($params[ 'query' ]) && $params[ 'query' ] == 'addon') {
$system = [
'app' => [
'title' => '系统',
'key' => 'app'
]
];
$addons = (new DictLoader("UniappLink"))->load([], $params);
$app = array_merge($system, $addons);
return $app;
} else {
return (new DictLoader("UniappLink"))->load($system_links, $params);
}
}
}

View File

@ -782,7 +782,12 @@ class PagesDict
]
];
$pages = ( new DictLoader("UniappPages") )->load($system_pages);
if (!empty($params[ 'addon' ])) {
$pages = (new DictLoader("UniappPages"))->load($params);
} else {
$pages = (new DictLoader("UniappPages"))->load($system_pages);
}
if (!empty($params[ 'type' ])) {
if (!empty($pages[ $params[ 'type' ] ])) {
$temp = $pages[ $params[ 'type' ] ];
@ -797,7 +802,6 @@ class PagesDict
} else {
return [];
}
}
return $pages;

View File

@ -15,8 +15,6 @@ use core\dict\DictLoader;
/**
* 页面模板
* Class TemplateDict
* @package app\dict\diy
*/
class TemplateDict
{
@ -27,17 +25,20 @@ class TemplateDict
'DIY_INDEX' => [
'title' => get_lang('dict_diy.page_index'),
'page' => '/app/pages/index/index',
'action' => 'decorate' // 页面是否装修标识为空标识不装修decorate装修
'action' => 'decorate', // 页面是否装修标识为空标识不装修decorate装修
'type' => 'index' // 页面类型index首页、member_index个人中心普通页面
],
'DIY_MEMBER_INDEX' => [
'title' => get_lang('dict_diy.page_member_index'),
'page' => '/app/pages/member/index',
'action' => 'decorate'
'action' => 'decorate',
'type' => 'member_index'
],
'DIY_PAGE' => [
'title' => get_lang('dict_diy.page_diy'),
'page' => '/app/pages/index/diy',
'action' => ''
'action' => '',
'type' => ''
]
];
@ -50,15 +51,18 @@ class TemplateDict
'list' => $system_pages
]
];
$addon = (new DictLoader("UniappTemplate"))->load($params);
$addon = (new DictLoader("UniappTemplate"))->load([], $params);
$app = array_merge($system, $addon);
return $app;
} else {
// 查询应用插件下的模板页面数据
$pages = (new DictLoader("UniappTemplate"))->load($system_pages);
if (!empty($params[ 'type' ])) {
$pages = (new DictLoader("UniappTemplate"))->load($system_pages, $params);
// 根据关键字查询
if (!empty($params[ 'key' ])) {
$temp = [];
foreach ($params[ 'type' ] as $k => $v) {
foreach ($params[ 'key' ] as $k => $v) {
if (!empty($pages[ $v ])) {
$temp[ $v ] = $pages[ $v ];
}
@ -66,13 +70,24 @@ class TemplateDict
return $temp;
}
// 查询指定类型的页面
if (!empty($params[ 'type' ])) {
$temp = [];
foreach ($pages as $k => $v) {
if (isset($v[ 'type' ]) && $params[ 'type' ] == $v[ 'type' ]) {
$temp[ $k ] = $v;
}
}
return $temp;
}
// 查询可装修的页面类型
if (!empty($params[ 'action' ])) {
$temp = [];
foreach ($pages as $k => $v) {
if (isset($v[ 'action' ]) && $params[ 'action' ] == $v[ 'action' ]) {
$temp[ $k ] = $v;
}
}
return $temp;
}

View File

@ -108,6 +108,19 @@ return
],
],
],
[
'menu_name' => '编辑',
'menu_key' => 'diy_tabbar_edit',
'menu_type' => 1,
'icon' => '',
'api_url' => 'diy/bottom/edit',
'router_path' => 'tabbar_edit',
'view_path' => 'diy/tabbar_edit',
'methods' => 'post',
'sort' => 100,
'status' => 1,
'is_show' => 0,
],
[
'menu_name' => '素材管理',
'menu_key' => 'attachment',

View File

@ -60,6 +60,9 @@ $system_event = [
'AdminIndex' => [
'app\listener\system\AdminIndexListener'
],
'BottomNavigation' => [
'app\listener\system\BottomNavigationListener'
],
//消息模板数据内容
'NoticeData' => [
'app\listener\notice_template\VerifyCode',//手机验证码

View File

@ -203,7 +203,7 @@ return [
'dict_diy' => [
'page_index' => '首页',
'page_member_index' => '个人中心',
'page_diy' => '自定义页面',
'page_diy' => '页面',
'component_type_basic' => '基础组件',
'system_title' => '系统',

View File

@ -12,57 +12,139 @@
namespace app\listener\site;
use app\dict\diy\TemplateDict;
use app\service\admin\diy\DiyRouteService;
use app\service\admin\diy\DiyService;
/**
* 添加站点成功后事件
* Class AddSiteAfterListener
* @package app\listener\site
*/
class AddSiteAfterListener
{
/**
* 初始化站点
* @param $data
* @param array $params
*/
public function handle($params = [])
{
if (count($params['main_app']) > 1) {
$site_id = $params['site_id'];
request()->siteId($site_id);
$site_id = $params[ 'site_id' ];
request()->siteId($site_id);
$diy_service = new DiyService();
$count = count($params[ 'main_app' ]);
$addon = array_merge([ '' ], $params[ 'main_app' ]);
// 设置 商城 首页 模板
$index_flag = 'DIY_INDEX';
$index_template_name = 'default_index';
$index_template = $diy_service->getPageData($index_flag, $index_template_name);
foreach ($addon as $k => $v) {
if ($count > 1) {
// 站点多应用,使用系统的页面
if ($k == 0) {
$is_start = 1;
} else {
$is_start = 0;
}
} else {
// 站点单应用,将应用的设为使用中
if ($k == 0) {
$is_start = 0;
} else {
$is_start = 1;
}
}
// 设置 首页 默认模板
$this->setDiyData([
'key' => 'DIY_INDEX',
'type' => 'index',
'addon' => $v,
'is_start' => $is_start,
'site_id' => $site_id
]);
// 设置 个人中心 默认模板
$this->setDiyData([
'key' => 'DIY_MEMBER_INDEX',
'type' => 'member_index',
'addon' => $v,
'is_start' => $is_start,
'site_id' => $site_id
]);
}
}
/**
* 设置 首页/个人中心 的第一个模板 设置为启动页
* @param $params
*/
private function setDiyData($params)
{
$addon = $params[ 'addon' ] ?? '';
$addon_flag = $params[ 'key' ];
// 默认
$default_template = TemplateDict::getTemplate([
'key' => [ $params[ 'key' ] ]
]);
$addon_template_info = array_shift($default_template);
// 查询插件定义的页面类型
$addon_template = TemplateDict::getTemplate([
'type' => $params[ 'type' ],
'addon' => $addon
]);
if (!empty($addon_template)) {
$addon_flag = array_keys($addon_template)[ 0 ];
$addon_template_info = array_shift($addon_template);
}
$diy_service = new DiyService();
$addon_index_template = $diy_service->getFirstPageData($addon_flag, $addon);
if (!empty($addon_index_template)) {
$diy_service->add([
"title" => $index_template[ 'title' ],
"name" => "DIY_INDEX",
"type" => "DIY_INDEX",
"template" => $index_template_name,
"mode" => 'diy',
"value" => json_encode($index_template['data']),
"title" => $addon_index_template[ 'title' ],
"name" => $addon_flag,
"type" => $addon_flag,
"template" => $addon_index_template[ 'template' ],
"mode" => $addon_index_template[ 'mode' ],
"value" => json_encode($addon_index_template[ 'data' ]),
"is_default" => 1,
"is_change" => 0
]);
// 设置 商城 个人中心 模板
$member_index_flag = 'DIY_MEMBER_INDEX';
$member_index_template_name = 'default_member_index_one';
$member_index_template = $diy_service->getPageData($member_index_flag, $member_index_template_name);
$diy_service->add([
"title" => $member_index_template[ 'title' ],
"name" => "DIY_MEMBER_INDEX",
"type" => "DIY_MEMBER_INDEX",
"template" => $member_index_template_name,
"mode" => 'diy',
"value" => json_encode($member_index_template['data']),
"is_default" => 1,
"is_change" => 0
]);
$diy_page_list = $diy_service->getList([
[ 'site_id', '=', $params[ 'site_id' ] ],
[ 'type', '=', $params[ 'key' ] ]
], 'id,name,type');
// 多应用时,将首页和个人中心设为系统的
foreach ($diy_page_list as $k => $v) {
if ($v[ 'name' ] == $params[ 'key' ]) {
$diy_service->setUse($v[ 'id' ]);
break;
}
}
if ($params[ 'is_start' ] == 1) {
// 查询链接,设置启动页
$other_page = (new DiyRouteService())->getList([ 'url' => $addon_template_info[ 'page' ], 'addon' => $addon ]);
if (!empty($other_page)) {
$diy_service->changeTemplate([
'type' => $params[ 'key' ], // 页面类型
'name' => $other_page[ 0 ][ 'name' ], // 链接名称标识
'parent' => $other_page[ 0 ][ 'parent' ], // 链接父级名称标识
'page' => $other_page[ 0 ][ 'page' ], // 链接路由
'title' => $other_page[ 0 ][ 'title' ], // 链接标题
'action' => $other_page[ 0 ][ 'action' ] // 是否存在操作decorate 表示支持装修
]);
}
}
}
}
}

View File

@ -0,0 +1,68 @@
<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的多应用管理平台
// +----------------------------------------------------------------------
// | 官方网址https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\listener\system;
/**
* 底部导航
*/
class BottomNavigationListener
{
/**
* @param array $params
* @return array|void
*/
public function handle($params = [])
{
$key = 'app';
if (!empty($params) && $params[ 'key' ] != $key) return;
$addon_info = [
'title' => '系统',
];
return [
'key' => $key,
'info' => $addon_info,
'value' => [
'backgroundColor' => '#ffffff',
'textColor' => '#606266',
'textHoverColor' => '#007aff',
'type' => '1',
'list' => [
[
"text" => "首页",
"link" => [
"parent" => "SYSTEM_LINK",
"name" => "INDEX",
"title" => "首页",
"url" => "/app/pages/index/index"
],
"iconPath" => "static/resource/images/tabbar/index.png",
"iconSelectPath" => "static/resource/images/tabbar/index-selected.png"
],
[
"text" => "我的",
"link" => [
"parent" => "MEMBER_LINK",
"name" => "MEMBER_CENTER",
"title" => "个人中心",
"url" => "/app/pages/member/index"
],
"iconPath" => "static/resource/images/tabbar/my.png",
"iconSelectPath" => "static/resource/images/tabbar/my-selected.png"
]
]
]
];
}
}

View File

@ -73,7 +73,7 @@ class Diy extends BaseModel
public function getTypePageAttr($value, $data)
{
if (!empty($data[ 'type' ])) {
return TemplateDict::getTemplate([ 'type' => [ $data[ 'type' ] ] ])[ $data[ 'type' ] ][ 'page' ] ?? '';
return TemplateDict::getTemplate([ 'key' => [ $data[ 'type' ] ] ])[ $data[ 'type' ] ][ 'page' ] ?? '';
}
return '';
}
@ -87,7 +87,7 @@ class Diy extends BaseModel
public function getTypeNameAttr($value, $data)
{
if (!empty($data[ 'type' ])) {
return TemplateDict::getTemplate([ 'type' => [ $data[ 'type' ] ] ])[ $data[ 'type' ] ][ 'title' ] ?? '';
return TemplateDict::getTemplate([ 'key' => [ $data[ 'type' ] ] ])[ $data[ 'type' ] ][ 'title' ] ?? '';
}
return '';
}

View File

@ -118,7 +118,7 @@ class Refund extends BaseModel
public function searchOutTradeNoAttr($query, $value, $data)
{
if ($value != '') {
$query->where('out_trade_no', '=', $value);
$query->where('out_trade_no', 'like', "%$value%");
}
}
@ -131,7 +131,7 @@ class Refund extends BaseModel
public function searchRefundNoAttr($query, $value, $data)
{
if ($value != '') {
$query->where('refund_no', '=', $value);
$query->where('refund_no', 'like', "%$value%");
}
}
}

View File

@ -95,6 +95,13 @@ class SiteAccountLog extends BaseModel
}
}
public function searchTradeNoAttr($query, $value, $data)
{
if ($value) {
$query->where('trade_no', 'like', "%$value%");
}
}
/**
* 创建时间搜索器
* @param Query $query

View File

@ -13,6 +13,7 @@ namespace app\service\admin\diy;
use app\model\sys\SysConfig;
use app\service\core\diy\CoreDiyConfigService;
use app\service\core\site\CoreSiteService;
use core\base\BaseAdminService;
use think\Model;
@ -24,23 +25,49 @@ use think\Model;
class DiyConfigService extends BaseAdminService
{
/**
* 获取底部导航列表
* @param array $params
* @return array|mixed
*/
public function getBottomList($params = [])
{
$list = (new CoreDiyConfigService())->getBottomList($params);
$site_addon = (new CoreSiteService())->getSiteCache($this->site_id);
// 单应用,排除 系统 底部导航设置
if (count($site_addon[ 'apps' ]) == 1) {
foreach ($list as $k=>$v){
if($v['key'] = 'app'){
unset($list[$k]);
break;
}
}
$list = array_values($list);
}
return $list;
}
/**
* 获取底部导航配置
* @param $key
* @return array
*/
public function getBottomConfig()
public function getBottomConfig($key)
{
return (new CoreDiyConfigService())->getBottomConfig($this->site_id);
return (new CoreDiyConfigService())->getBottomConfig($this->site_id, $key);
}
/**
* 底部导航配置
* @param $data
* @param $key
* @return SysConfig|bool|Model
*/
public function setBottomConfig($data)
public function setBottomConfig($data, $key)
{
return (new CoreDiyConfigService())->setBottomConfig($this->site_id, $data);
return (new CoreDiyConfigService())->setBottomConfig($this->site_id, $data, $key);
}
/**
@ -50,7 +77,7 @@ class DiyConfigService extends BaseAdminService
*/
public function setStartUpPageConfig($data)
{
return ( new CoreDiyConfigService() )->setStartUpPageConfig($this->site_id, $data);
return (new CoreDiyConfigService())->setStartUpPageConfig($this->site_id, $data);
}
/**
@ -60,7 +87,7 @@ class DiyConfigService extends BaseAdminService
*/
public function getStartUpPageConfig($name)
{
return ( new CoreDiyConfigService() )->getStartUpPageConfig($this->site_id, $name);
return (new CoreDiyConfigService())->getStartUpPageConfig($this->site_id, $name);
}
}

View File

@ -36,25 +36,45 @@ class DiyRouteService extends BaseAdminService
*/
public function getList(array $where = [])
{
$link = LinkDict::getLink();
$condition = [];
if (!empty($where[ 'addon' ])) {
$condition[ 'addon' ] = $where[ 'addon' ];
}
$link = LinkDict::getLink($condition);
$diy_route_list = [];
$sort = 0;
foreach ($link as $k => $v) {
if (!empty($v[ 'child_list' ])) {
foreach ($v[ 'child_list' ] as $ck => $cv) {
if (!empty($cv[ 'url' ])) {
if (empty($where[ 'title' ]) || (!empty($where[ 'title' ]) && str_contains($cv[ 'title' ], $where[ 'title' ]))) {
$diy_route_list[] = [
'key' => $v[ 'key' ] ?? '',
'addon_title' => $v[ 'addon_title' ] ?? '',
'title' => $cv[ 'title' ],
'name' => $cv[ 'name' ],
'parent' => $k,
'page' => $cv[ 'url' ],
'is_share' => $cv[ 'is_share' ],
'action' => $cv[ 'action' ] ?? '',
'sort' => ++$sort
];
$is_add = true;
if (!empty($where[ 'title' ]) && !str_contains($cv[ 'title' ], $where[ 'title' ])) {
$is_add = false;
}
if (!empty($where[ 'url' ]) && $where[ 'url' ] != $cv[ 'url' ]) {
$is_add = false;
}
if (!empty($where[ 'addon_name' ]) && $where[ 'addon_name' ] != $v[ 'addon_info' ][ 'key' ]) {
$is_add = false;
}
$item = [
'addon_info' => $v[ 'addon_info' ] ?? '',
'title' => $cv[ 'title' ],
'name' => $cv[ 'name' ],
'parent' => $k,
'page' => $cv[ 'url' ],
'is_share' => $cv[ 'is_share' ],
'action' => $cv[ 'action' ] ?? '',
'sort' => ++$sort
];
if ($is_add) {
$diy_route_list[] = $item;
}
}
}
@ -86,7 +106,6 @@ class DiyRouteService extends BaseAdminService
public function getInfo(int $id)
{
$field = 'title,name,page,share,is_share,sort';
return $this->model->field($field)->where([ [ 'id', '=', $id ], [ 'site_id', '=', $this->site_id ] ])->findOrEmpty()->toArray();
}
@ -153,4 +172,16 @@ class DiyRouteService extends BaseAdminService
return true;
}
/**
* 获取路由列表(存在的应用插件列表)
* @return array|null
*/
public function getApps()
{
$link = LinkDict::getLink([
'query' => 'addon'
]);
return $link;
}
}

View File

@ -192,7 +192,7 @@ class DiyService extends BaseAdminService
$diy_config_service = new DiyConfigService();
$start_up_page = $diy_config_service->getStartUpPageConfig($params[ 'name' ]);
if (!empty($start_up_page)) {
if ($start_up_page[ 'parent' ] == 'DIY_PAGE') {
if (!empty($start_up_page[ 'parent' ]) && $start_up_page[ 'parent' ] == 'DIY_PAGE') {
$id = str_replace('/app/pages/index/diy?id=', '', $start_up_page[ 'page' ]);
$data = $this->getInfo($id);
if (!empty($data)) {
@ -375,8 +375,8 @@ class DiyService extends BaseAdminService
foreach ($page_template as $k => $v) {
// 查询页面数据
$page_params = [
'type' => $k,
'mode' => $params[ 'mode' ] ?? ''
'type' => $k, // 页面类型
'mode' => $params[ 'mode' ] ?? '' // 页面模式diy自定义fixed固定
];
$page_template[ $k ][ 'template' ] = PagesDict::getPages($page_params);
}
@ -398,11 +398,12 @@ class DiyService extends BaseAdminService
/**
* 获取默认页面数据
* @param $type
* @param string $addon
* @return array|mixed
*/
public function getFirstPageData($type)
public function getFirstPageData($type, $addon = '')
{
$pages = PagesDict::getPages([ 'type' => $type ]);
$pages = PagesDict::getPages([ 'type' => $type, 'addon' => $addon ]);
if (!empty($pages)) {
$template = array_key_first($pages);
$page = array_shift($pages);
@ -425,16 +426,13 @@ class DiyService extends BaseAdminService
{
// 查询当前装修的页面信息
$template = $this->getTemplate([ 'action' => 'decorate', 'type' => [ $params[ 'type' ] ] ])[ $params[ 'type' ] ];
$template = $this->getTemplate([ 'action' => 'decorate', 'key' => [ $params[ 'type' ] ] ])[ $params[ 'type' ] ];
$template[ 'domain_url' ] = (new SystemService())->getUrl();
// 查询默认页面数据
$default_page_data = $this->getFirstPageData($params[ 'type' ]);
// 查询其他页面,排除特定页面(不能分享的页面)
$other_page = (new DiyRouteService())->getList();
$use_template = [
'type' => $params[ 'type' ], // 页面类型标识
'name' => '', // 链接标识
@ -460,19 +458,11 @@ class DiyService extends BaseAdminService
$use_template[ 'action' ] = $start_up_page[ 'action' ] ?? '';
$use_template[ 'url' ] = $use_template[ 'page' ];
$use_template[ 'parent' ] = $start_up_page[ 'parent' ] ?? '';
} elseif (!empty($info)) {
$use_template[ 'id' ] = $info[ 'id' ];
$use_template[ 'title' ] = $info[ 'title' ];
// 查询链接的名称标识
foreach ($other_page as $ck => $cv) {
if ($cv[ 'page' ] == $use_template[ 'page' ]) {
$use_template[ 'name' ] = $cv[ 'name' ];
$use_template[ 'parent' ] = $cv[ 'parent' ];
break;
}
}
// 查询模板页面数据
$page_data = $this->getPageData($params[ 'type' ], $info[ 'template' ]);
if (!empty($page_data)) {
@ -486,6 +476,15 @@ class DiyService extends BaseAdminService
}
}
// 查询链接的名称标识,保证数据准确性
$other_page = (new DiyRouteService())->getList([ 'url' => $use_template[ 'page' ] ]);
if (!empty($other_page)) {
$use_template[ 'title' ] = $other_page[ 0 ][ 'title' ] ?? '';
$use_template[ 'name' ] = $other_page[ 0 ][ 'name' ];
$use_template[ 'parent' ] = $other_page[ 0 ][ 'parent' ];
$use_template[ 'action' ] = $other_page[ 0 ][ 'action' ];
}
// 如果没有预览图,并且没有地址,则赋值默认页面地址
if (empty($use_template[ 'cover' ]) && empty($use_template[ 'url' ])) {
$use_template[ 'url' ] = $template[ 'page' ];
@ -517,7 +516,7 @@ class DiyService extends BaseAdminService
}
/**
* 获取模板页面的应用插件列表
* 获取模板页面(存在的应用插件列表
* @return array
*/
public function getApps()

View File

@ -39,7 +39,7 @@ class SiteAccountLogService extends BaseAdminService
{
$field = 'id, site_id, type, money, trade_no, create_time';
$search_model = $this->model->where([ [ 'site_id', '=', $this->site_id ] ])->withSearch([ 'create_time', 'type' ], $where)->field($field)->append([ 'type_name', 'pay_info', 'money' ])->order('create_time desc');
$search_model = $this->model->where([ [ 'site_id', '=', $this->site_id ] ])->withSearch([ 'create_time', 'type', 'trade_no' ], $where)->field($field)->append([ 'type_name', 'pay_info', 'money' ])->order('create_time desc');
return $this->pageQuery($search_model);
}
@ -68,4 +68,4 @@ class SiteAccountLogService extends BaseAdminService
];
}
}
}

View File

@ -143,7 +143,7 @@ class SiteService extends BaseAdminService
return $site_id;
} catch ( Exception $e) {
Db::rollback();
throw new AdminException($e->getMessage());
throw new AdminException($e->getMessage().$e->getFile().$e->getLine());
}
}

View File

@ -32,7 +32,7 @@ class RestoreService extends UpgradeService
if (is_dir(public_path() . 'wap')) del_target_dir(public_path() . 'wap', true);
if (is_dir(public_path() . 'web')) del_target_dir(public_path() . 'web', true);
dir_copy($backup_dir, $this->root_path);
dir_copy($backup_dir, rtrim($this->root_path, DIRECTORY_SEPARATOR));
}
return true;
}

View File

@ -473,6 +473,7 @@ class UpgradeService extends BaseAdminService
$this->clearUpgradeTask(5);
return true;
} catch (\Exception $e) {
$this->clearUpgradeTask(5);
return true;
}
}

View File

@ -12,6 +12,7 @@
namespace app\service\api\diy;
use app\service\core\diy\CoreDiyConfigService;
use app\service\core\site\CoreSiteService;
use core\base\BaseApiService;
/**
@ -24,11 +25,19 @@ class DiyConfigService extends BaseApiService
/**
* 获取底部导航配置
* @param $key
* @return array
*/
public function getBottomConfig()
public function getBottomConfig($key)
{
return (new CoreDiyConfigService())->getBottomConfig($this->site_id);
// 检测当前站点是多应用还是单应用
if ($key == 'app') {
$site_addon = (new CoreSiteService())->getSiteCache($this->site_id);
if (count($site_addon[ 'apps' ]) == 1) {
$key = $site_addon[ 'apps' ][ 0 ][ 'key' ];
}
}
return (new CoreDiyConfigService())->getBottomConfig($this->site_id, $key);
}
/**

View File

@ -46,7 +46,10 @@ class DiyService extends BaseApiService
$diy_config_service = new DiyConfigService();
$start_up_page = $diy_config_service->getStartUpPageConfig($params[ 'name' ]);
$page_template = TemplateDict::getTemplate([ 'type' => [ $params[ 'name' ] ] ])[ $params[ 'name' ] ];
$page_template = TemplateDict::getTemplate([ 'key' => [ $params[ 'name' ] ] ]);
if (!empty($page_template)) {
$page_template = $page_template [ $params[ 'name' ] ];
}
}
if (!empty($start_up_page) && !empty($page_template) && !empty($start_up_page[ 'page' ]) && $start_up_page[ 'page' ] != $page_template[ 'page' ]) {

View File

@ -72,11 +72,8 @@ class CoreAddonDevelopBuildService extends BaseCoreService
*/
public function download(string $addon) {
$zip_file = runtime_path() . $addon . '.zip';
if (!file_exists($zip_file)) throw new AddonException('ADDON_ZIP_ERROR');//下载失败
$content = file_get_contents($zip_file);
@unlink($zip_file);
return download($content, $addon . '.zip', true);
return str_replace(project_path(), '', $zip_file);
}
/**
@ -89,7 +86,7 @@ class CoreAddonDevelopBuildService extends BaseCoreService
*/
public function menu(string $app_type) {
$where = [ ['app_type', '=', $app_type], ['addon', '=', $this->addon] ];
$field = 'menu_name,menu_key,parent_key,menu_type,icon,api_url,router_path,view_path,methods,sort,status,is_show';
$field = 'menu_name,menu_key,menu_short_name,parent_key,menu_type,icon,api_url,router_path,view_path,methods,sort,status,is_show';
$menu = (new SysMenu())->where($where)->field($field)->order('sort', 'desc')->select()->toArray();
if (!empty($menu)) {
$menu = (new MenuService())->menuToTree($menu, 'menu_key', 'parent_key', 'children');
@ -114,7 +111,7 @@ class CoreAddonDevelopBuildService extends BaseCoreService
}
$content = '';
foreach ($array as $k => $v) {
if (in_array($k, ['status_name', 'menu_type_name'])) continue;
if (in_array($k, ['status_name', 'menu_type_name']) || ($level > 2 && $k == 'parent_key')) continue;
if (is_array($v)) {
$content .= $tab;
if (is_string($k)) {
@ -142,6 +139,10 @@ class CoreAddonDevelopBuildService extends BaseCoreService
if (is_dir($addon_admin_path)) del_target_dir($addon_admin_path, true);
dir_copy($admin_path, $addon_admin_path);
// 打包admin icon文件
$icon_dir = $this->root_path . 'admin' . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'styles' . DIRECTORY_SEPARATOR . 'icon' . DIRECTORY_SEPARATOR . 'addon' . DIRECTORY_SEPARATOR . $this->addon;
if (is_dir($icon_dir)) dir_copy($icon_dir, $addon_admin_path . 'icon');
return true;
}

View File

@ -288,7 +288,12 @@ class CoreAddonInstallService extends CoreAddonBaseService
// 安装admin管理端
if (file_exists($from_admin_dir)) {
dir_copy($from_admin_dir, $to_admin_dir, $this->files['admin']);
dir_copy($from_admin_dir, $to_admin_dir, $this->files['admin'], exclude_dirs:['icon']);
// 判断图标目录是否存在
if (is_dir($from_admin_dir . 'icon')) {
$addon_icon_dir = $this->root_path . 'admin' . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'styles' . DIRECTORY_SEPARATOR . 'icon' . DIRECTORY_SEPARATOR . 'addon' . DIRECTORY_SEPARATOR . $this->addon;
dir_copy($from_admin_dir . 'icon', $addon_icon_dir);
}
// 编译后台图标库文件
$this->compileAdminIcon();
}
@ -588,6 +593,10 @@ class CoreAddonInstallService extends CoreAddonBaseService
// 卸载admin管理端
if (is_dir($to_admin_dir)) del_target_dir($to_admin_dir, true);
// 移除admin图标
$addon_icon_dir = $this->root_path . 'admin' . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'styles' . DIRECTORY_SEPARATOR . 'icon' . DIRECTORY_SEPARATOR . 'addon' . DIRECTORY_SEPARATOR . $this->addon;
if (is_dir($addon_icon_dir)) del_target_dir($addon_icon_dir, true);
// 编译后台图标库文件
$this->compileAdminIcon();

View File

@ -109,7 +109,7 @@ trait WapTrait
$content .= " </view>\n";
$content .= " <template v-if=\"diyStore.mode == '' && data.global.bottomTabBarSwitch\">\n";
$content .= " <view class=\"pt-[20rpx]\"></view>\n";
$content .= " <tabbar />\n";
$content .= " <tabbar :addon=\"tabbarAddonName\" />\n";
$content .= " </template>\n";
$content .= " </view>\n";
$content .= "</template>\n";
@ -121,9 +121,10 @@ trait WapTrait
}
$content .= " import useDiyStore from '@/app/stores/diy';\n";
$content .= " import { onMounted, nextTick, computed, ref,watch } from 'vue';\n";
$content .= " import { onMounted, nextTick, computed } from 'vue';\n";
$content .= " import Sortable from 'sortablejs';\n";
$content .= " import { range } from 'lodash-es';\n";
$content .= " import useConfigStore from '@/stores/config'\n";
$content .= " const props = defineProps(['data','pullDownRefreshCount']);\n";
$content .= " const diyStore = useDiyStore();\n\n";
@ -136,6 +137,10 @@ trait WapTrait
$content .= " }\n";
$content .= " })\n\n";
$content .= " const tabbarAddonName = computed(() => {\n";
$content .= " return useConfigStore().addon;\n";
$content .= " })\n\n";
$content .= " onMounted(() => {\n";
$content .= " // #ifdef H5\n";
$content .= " if (diyStore.mode == 'decorate') {\n";

View File

@ -22,64 +22,69 @@ use think\Model;
* Class CoreDiyConfigService
* @package app\service\core\diy
*/
class CoreDiyConfigService extends BaseCoreService
class CoreDiyConfigService extends BaseCoreService
{
public function getBottomList($params = [])
{
$list = array_values(array_filter(event('BottomNavigation', $params)));
$app_bottom_nav_config = [];
foreach ($list as $k => &$v) {
// 将系统底部导航放到第一个位置
if ($v[ 'key' ] == 'app') {
$app_bottom_nav_config = $v;
unset($list[ $k ]);
}
}
$list = array_values($list);
if (!empty($app_bottom_nav_config)) {
array_unshift($list, $app_bottom_nav_config);
}
return $list;
}
/**
* 获取底部导航
* 获取底部导航配置
* @param int $site_id
* @param string $key
* @return array
*/
public function getBottomConfig(int $site_id)
public function getBottomConfig(int $site_id, string $key = 'app')
{
$info = (new CoreConfigService())->getConfig($site_id, ConfigKeyDict::DIY_BOTTOM)[ 'value' ] ?? [];
if (empty($info)) {
$info = [
'backgroundColor' => '#ffffff',
'textColor' => '#606266',
'textHoverColor' => '#007aff',
'type' => 1,
'list' => [
[
"text" => "首页",
"link" => [
"parent" => "SYSTEM_LINK",
"name" => "INDEX",
"title" => "首页",
"url" => "/app/pages/index/index"
],
"iconPath" => "static/resource/images/tabbar/index.png",
"iconSelectPath" => "static/resource/images/tabbar/index-selected.png"
],
[
"text" => "会员",
"link" => [
"parent" => "MEMBER_LINK",
"name" => "MEMBER_CENTER",
"title" => "个人中心",
"url" => "/app/pages/member/index"
],
"iconPath" => "static/resource/images/tabbar/my.png",
"iconSelectPath" => "static/resource/images/tabbar/my-selected.png"
]
]
];
$default_config = $this->getBottomList([ 'key' => $key ])[ 0 ] ?? [];
$config_key = ConfigKeyDict::DIY_BOTTOM . '_' . $key;
$info = (new CoreConfigService())->getConfig($site_id, $config_key)[ 'value' ] ?? [];
if (!empty($default_config)) {
if (!empty($info)) {
$value = $info;
$res[ 'key' ] = $default_config[ 'key' ];
$res[ 'info' ] = $default_config[ 'info' ];
$res[ 'value' ] = $value;
$info = $res;
} else {
$info = $default_config;
}
}
return $info;
}
/**
* 置底部导航
* 设置底部导航
* @param int $site_id
* @param array $data
* @param string $key
* @return SysConfig|bool|Model
*/
public function setBottomConfig(int $site_id, array $data)
public function setBottomConfig(int $site_id, array $data, string $key = 'app')
{
return (new CoreConfigService())->setConfig($site_id, ConfigKeyDict::DIY_BOTTOM, $data);
return (new CoreConfigService())->setConfig($site_id, ConfigKeyDict::DIY_BOTTOM . '_' . $key, $data);
}
/**
* 设置启动页
* @param int $site_id
* @param array $data
* @return SysConfig|bool|Model
*/
@ -90,7 +95,8 @@ class CoreDiyConfigService extends BaseCoreService
/**
* 获取启动页配置
* @param $name
* @param int $site_id
* @param string $type
* @return array
*/
public function getStartUpPageConfig(int $site_id, string $type)

View File

@ -134,7 +134,7 @@ class CorePayEventService extends BaseCoreService
$pay_fun = 'wap';
break;
case ChannelDict::PC://pc
$pay_fun = 'web';
$pay_fun = 'scan';
break;
case ChannelDict::APP://app
$pay_fun = 'app';
@ -290,4 +290,4 @@ class CorePayEventService extends BaseCoreService
}
}
}

View File

@ -1,6 +1,6 @@
<?php
return [
'version' => '0.0.9',
'code' => '202401250001'
'version' => '0.1.0',
'code' => '202401310001'
];

View File

@ -11,33 +11,66 @@
namespace core\dict;
use app\service\admin\addon\AddonService;
class UniappLink extends BaseDict
{
/**
* 系统uniapp页面链接
* @param array $data
* @return array|mixed
* @param array $params
* @return array|false|mixed|string
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function load(array $data)
public function load(array $data = [], array $params = [])
{
$addons = $this->getLocalAddons();
if (!empty($params[ 'addon' ])) {
$addons = [ $params[ 'addon' ] ];
} else {
$addons = $this->getLocalAddons();
}
$link_files = [];
foreach ($addons as $v) {
$link_path = $this->getAddonDictPath($v) . "diy" . DIRECTORY_SEPARATOR . "links.php";
if (is_file($link_path)) {
$link_files[] = $link_path;
$link_files[ $v ] = $link_path;
}
}
$link_files_data = $this->loadFiles($link_files);
$links = $data;
foreach ($link_files_data as $file_data) {
if (empty($links)) {
$links = $file_data;
} else {
$links = array_merge2($links, $file_data);
$addon_service = new AddonService();
$addon_info_list = $addon_service->getAddonListByKeys(array_keys($link_files));
if (!empty($params[ 'query' ]) && $params[ 'query' ] == 'addon') {
$list_key = array_column($addon_info_list, 'key');
$addon_info_list = array_combine($list_key, $addon_info_list);
return $addon_info_list;
} else {
$links = $data;
foreach ($link_files as $k => $v) {
$addon_link = include $v;
if (!empty($addon_link)) {
$addon_info = [];
foreach ($addon_info_list as $ck => $cv) {
if ($cv[ 'key' ] == $k) {
$addon_info = $cv;
break;
}
}
foreach ($addon_link as $ck => $cv) {
$addon_link[ $ck ][ 'addon_info' ] = $addon_info;
}
$links = array_merge($links, $addon_link);
}
}
return $links;
}
return $links;
}
}

View File

@ -18,9 +18,15 @@ class UniappPages extends BaseDict
* @param array $data
* @return array|mixed
*/
public function load(array $data)
public function load(array $data = [])
{
$addons = $this->getLocalAddons();
// 筛选插件
if (!empty($data[ 'addon' ])) {
$addons = [ $data[ 'addon' ] ];
} else {
$addons = $this->getLocalAddons();
}
$page_files = [];
foreach ($addons as $v) {
$page_path = $this->getAddonDictPath($v) . "diy" . DIRECTORY_SEPARATOR . "pages.php";
@ -29,7 +35,11 @@ class UniappPages extends BaseDict
}
}
$page_files_data = $this->loadFiles($page_files);
$pages = $data;
if (!empty($data[ 'addon' ])) {
$pages = [];
} else {
$pages = $data;
}
foreach ($page_files_data as $file_data) {
if (empty($pages)) {
$pages = $file_data;

View File

@ -18,20 +18,42 @@ class UniappTemplate extends BaseDict
/**
* 系统uniapp页面模板
* @param array $data
* @return array|mixed
* @param array $params
* @return array|false|mixed|string
*/
public function load(array $data)
public function load(array $data, $params = [])
{
$addons = $this->getLocalAddons();
if (!empty($params[ 'addon' ])) {
$addons = [ $params[ 'addon' ] ];
} else {
$addons = $this->getLocalAddons();
}
$app_keys = []; // 应用插件key集合
$apps = []; // 应用插件集合
$page_files = []; // 模板页面文件集合
// 筛选插件
if (!empty($params) && !empty($params[ 'addon' ])) {
$is_pass = true;
foreach ($addons as $k => $v) {
if ($params[ 'addon' ] == $v) {
$addons = [ $v ];
$is_pass = false;
break;
}
}
// 如果没有匹配到,则返回系统的
if ($is_pass) {
return $data;
}
}
foreach ($addons as $v) {
$page_path = $this->getAddonDictPath($v) . "diy" . DIRECTORY_SEPARATOR . "template.php";
if (is_file($page_path)) {
if (!empty($data[ 'query' ]) && $data[ 'query' ] == 'addon') {
if (!empty($params[ 'query' ]) && $params[ 'query' ] == 'addon') {
$file = include $page_path;
if (!empty($file)) {
$app_keys[] = $v;
@ -44,7 +66,7 @@ class UniappTemplate extends BaseDict
}
// 查询存在模板页面的应用插件列表
if (!empty($data[ 'query' ]) && $data[ 'query' ] == 'addon') {
if (!empty($params[ 'query' ]) && $params[ 'query' ] == 'addon') {
$addon_service = new AddonService();
$list = $addon_service->getAddonListByKeys($app_keys);
$list_key = array_column($list, 'key');
@ -56,7 +78,11 @@ class UniappTemplate extends BaseDict
} else {
// 查询应用插件下的模板页面数据
$page_files_data = $this->loadFiles($page_files);
$pages = $data;
if (!empty($params) && !empty($params[ 'addon' ])) {
$pages = [];
} else {
$pages = $data;
}
foreach ($page_files_data as $file_data) {
if (empty($pages)) {
$pages = $file_data;

View File

@ -6,6 +6,7 @@ use app\dict\pay\OnlinePayDict;
use app\dict\pay\RefundDict;
use app\dict\pay\TransferDict;
use core\exception\PayException;
use Psr\Http\Message\MessageInterface;
use Psr\Http\Message\ResponseInterface;
use Throwable;
use Yansongda\Pay\Exception\ContainerException;
@ -54,6 +55,7 @@ class Alipay extends BasePay
'out_trade_no' => $params['out_trade_no'],
'total_amount' => $params['money'],
'subject' => $params['boby'],
'_method' => 'get',
]));
}
@ -184,6 +186,9 @@ class Alipay extends BasePay
'out_trade_no' => $out_trade_no,
]));
//todo 支付宝关闭异步回调
if (isset($result['sub_code']) && in_array($result['sub_code'], ['ACQ.REASON_ILLEGAL_STATUS', 'ACQ.REASON_TRADE_STATUS_INVALID', 'ACQ.TRADE_NOT_EXIST', 'ACQ.TRADE_STATUS_ERROR'])) {
return true;
}
if (!empty($result['msg']) && $result['msg'] == 'Success') {
return true;
} else {
@ -376,4 +381,4 @@ class Alipay extends BasePay
{
return ['url' => $params->getHeader('Location')[0]];
}
}
}

View File

@ -164,9 +164,6 @@ abstract class BasePay extends Storage
} else {
$return_value = $param;
}
if(isset($return_value['code'])){
throw new PayException($return_value['message']);
}
return $return_value;
}

View File

@ -450,4 +450,4 @@ class Wechatpay extends BasePay
];
return response($response, 400, [], 'json');
}
}
}

View File

@ -1 +1 @@
import{d as l,r as d,o as i,c as p,a as t,b as u,e as m,w as f,u as x,f as v,E as h,p as b,g,h as I,i as w,t as S}from"./index-b19d04dd.js";/* empty css */import{_ as B}from"./_plugin-vue_export-helper-c27b6911.js";const k=""+new URL("error-da01d378.png",import.meta.url).href,o=e=>(b("data-v-8fc03fb0"),e=e(),g(),e),y={class:"error"},C={class:"flex items-center"},E=o(()=>t("div",null,[t("img",{class:"w-[300px]",src:k})],-1)),N={class:"text-left ml-[100px]"},R=o(()=>t("div",{class:"error-text text-[28px] font-bold"},"404错误",-1)),U=o(()=>t("div",{class:"text-[#222] text-[20px] mt-[15px]"},"哎呀,出错了!您访问的页面不存在...",-1)),V=o(()=>t("div",{class:"text-[#c4c2c2] text-[12px] mt-[5px]"},"尝试检查URL的错误然后点击浏览器刷新按钮。",-1)),L={class:"mt-[40px]"},$=l({__name:"404",setup(e){let s=null;const a=d(5),c=v();return s=setInterval(()=>{a.value===0?(clearInterval(s),c.go(-1)):a.value--},1e3),i(()=>{s&&clearInterval(s)}),(r,n)=>{const _=h;return I(),p("div",y,[t("div",C,[u(r.$slots,"content",{},()=>[E],!0),t("div",N,[R,U,V,t("div",L,[m(_,{class:"bottom",onClick:n[0]||(n[0]=D=>x(c).go(-1))},{default:f(()=>[w(S(a.value)+" 秒后返回上一页",1)]),_:1})])])])])}}});const z=B($,[["__scopeId","data-v-8fc03fb0"]]);export{z as default};
import{d as l,r as d,o as i,c as p,a as t,b as u,e as m,w as f,u as x,f as v,E as h,p as b,g,h as I,i as w,t as S}from"./index-4ce69858.js";/* empty css */import{_ as B}from"./_plugin-vue_export-helper-c27b6911.js";const k=""+new URL("error-da01d378.png",import.meta.url).href,o=e=>(b("data-v-8fc03fb0"),e=e(),g(),e),y={class:"error"},C={class:"flex items-center"},E=o(()=>t("div",null,[t("img",{class:"w-[300px]",src:k})],-1)),N={class:"text-left ml-[100px]"},R=o(()=>t("div",{class:"error-text text-[28px] font-bold"},"404错误",-1)),U=o(()=>t("div",{class:"text-[#222] text-[20px] mt-[15px]"},"哎呀,出错了!您访问的页面不存在...",-1)),V=o(()=>t("div",{class:"text-[#c4c2c2] text-[12px] mt-[5px]"},"尝试检查URL的错误然后点击浏览器刷新按钮。",-1)),L={class:"mt-[40px]"},$=l({__name:"404",setup(e){let s=null;const a=d(5),c=v();return s=setInterval(()=>{a.value===0?(clearInterval(s),c.go(-1)):a.value--},1e3),i(()=>{s&&clearInterval(s)}),(r,n)=>{const _=h;return I(),p("div",y,[t("div",C,[u(r.$slots,"content",{},()=>[E],!0),t("div",N,[R,U,V,t("div",L,[m(_,{class:"bottom",onClick:n[0]||(n[0]=D=>x(c).go(-1))},{default:f(()=>[w(S(a.value)+" 秒后返回上一页",1)]),_:1})])])])])}}});const z=B($,[["__scopeId","data-v-8fc03fb0"]]);export{z as default};

View File

@ -1 +1 @@
import{d as j,f as S,r as v,v as I,a0 as N,h as T,c as q,a as e,t as o,u as n,N as a,e as s,w as t,aJ as w,i as b,R as B,aC as z,aD as F,a1 as R,E as $,ak as D,al as M,am as J,V as P,an as Q}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{g as U}from"./wechat-1d393ae2.js";import{_ as W}from"./_plugin-vue_export-helper-c27b6911.js";const G={class:"w-full p-5 bg-white"},H={class:"flex justify-between items-center mb-[20px]"},K={class:"text-[20px]"},L={class:"p-[20px]"},O={class:"text-[16px] mb-[20px]"},X={class:"text-[14px] text-[#303133] font-[700]"},Y={class:"text-[#999]"},Z={class:"mt-[20px] mb-[40px] h-[32px]"},ee={class:"text-[14px] text-[#303133] font-[700]"},te={class:"text-[#999]"},se={class:"mt-[20px] mb-[40px] h-[32px]"},ne={class:"text-[14px] text-[#303133] font-[700]"},ae={class:"text-[#999]"},oe={class:"mt-[20px] mb-[40px] h-[32px]"},le={class:"flex justify-center"},ce={class:"w-[100%] h-[100%] flex items-center justify-center bg-[#f5f7fa]"},ie={class:"mt-[22px] text-center"},pe={class:"text-[14px] text-[#303133] font-[700]"},de=j({__name:"access",setup(re){const r=S(),_=v("/channel/wechat"),c=v(2),p=v("");I(async()=>{const i=await U();p.value=i.data.qr_code});const y=i=>{window.open(i,"_blank")},k=i=>{r.push({path:_.value})};return(i,l)=>{const u=z,C=F,x=N("CircleCheckFilled"),m=R,f=$,h=D,E=M,g=J,A=P,V=Q;return T(),q("div",G,[e("div",H,[e("span",K,o(n(a)("title")),1)]),s(C,{modelValue:_.value,"onUpdate:modelValue":l[0]||(l[0]=d=>_.value=d),class:"demo-tabs",onTabChange:k},{default:t(()=>[s(u,{label:n(a)("wechatAccessFlow"),name:"/channel/wechat"},null,8,["label"]),s(u,{label:n(a)("customMenu"),name:"/channel/wechat/menu"},null,8,["label"]),s(u,{label:n(a)("wechatTemplate"),name:"/channel/wechat/message"},null,8,["label"])]),_:1},8,["modelValue"]),e("div",L,[e("p",O,o(n(a)("wechatInlet")),1),s(V,null,{default:t(()=>[s(g,{span:20},{default:t(()=>[s(E,{direction:"vertical"},{default:t(()=>[s(h,null,w({title:t(()=>[e("p",X,o(n(a)("wechatAttestation")),1)]),description:t(()=>[e("span",Y,o(n(a)("wechatAttestation1")),1),e("div",Z,[s(f,{type:"primary",onClick:l[1]||(l[1]=d=>y("https://mp.weixin.qq.com/"))},{default:t(()=>[b(o(n(a)("clickAccess")),1)]),_:1})])]),_:2},[c.value>1?{name:"icon",fn:t(()=>[s(m,{size:"25px",class:"text-color"},{default:t(()=>[s(x)]),_:1})]),key:"0"}:c.value==1?{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] box-border rounded-full bg-color1 flex items-center justify-center"},[e("div",{class:"h-[12px] w-[12px] bg-color rounded-full"})])]),key:"1"}:{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] text-[#fff] bg-[#778aa3] text-center leading-[24px] rounded-full"}," 1")]),key:"2"}]),1024),s(h,null,w({title:t(()=>[e("p",ee,o(n(a)("wechatSetting")),1)]),description:t(()=>[e("span",te,o(n(a)("wechatSetting1")),1),e("div",se,[s(f,{type:"primary",plain:"",onClick:l[2]||(l[2]=d=>n(r).push("/channel/wechat/config"))},{default:t(()=>[b(o(n(a)("settingInfo")),1)]),_:1})])]),_:2},[c.value>2?{name:"icon",fn:t(()=>[s(m,{size:"25px"},{default:t(()=>[s(x)]),_:1})]),key:"0"}:c.value==2?{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] box-border rounded-full bg-color1 flex items-center justify-center"},[e("div",{class:"h-[12px] w-[12px] bg-color rounded-full"})])]),key:"1"}:{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] text-[#fff] bg-[#778aa3] text-center leading-[24px] rounded-full"}," 2")]),key:"2"}]),1024),s(h,null,w({title:t(()=>[e("p",ne,o(n(a)("wechatAccess")),1)]),description:t(()=>[e("span",ae,o(n(a)("wechatAccess")),1),e("div",oe,[s(f,{type:"primary",plain:"",onClick:l[3]||(l[3]=d=>n(r).push("/channel/wechat/course"))},{default:t(()=>[b(o(n(a)("releaseCourse")),1)]),_:1})])]),_:2},[c.value>3?{name:"icon",fn:t(()=>[s(m,{size:"25px"},{default:t(()=>[s(x)]),_:1})]),key:"0"}:c.value==3?{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] box-border rounded-full bg-color1 flex items-center justify-center"},[e("div",{class:"h-[12px] w-[12px] bg-color rounded-full"})])]),key:"1"}:{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] text-[#fff] bg-[#778aa3] text-center leading-[24px] rounded-full"}," 3")]),key:"2"}]),1024)]),_:1})]),_:1}),s(g,{span:4},{default:t(()=>[e("div",le,[s(A,{class:"w-[180px] h-[180px]",src:p.value?n(B)(p.value):""},{error:t(()=>[e("div",ce,[e("span",null,o(p.value?n(a)("fileErr"):n(a)("emptyQrCode")),1)])]),_:1},8,["src"])]),e("div",ie,[e("p",pe,o(n(a)("clickAccess2")),1)])]),_:1})]),_:1})])])}}});const ye=W(de,[["__scopeId","data-v-594351e7"]]);export{ye as default};
import{d as j,f as S,r as v,v as I,a0 as N,h as T,c as q,a as e,t as o,u as n,N as a,e as s,w as t,aJ as w,i as b,R as B,aC as z,aD as F,a1 as R,E as $,al as D,am as M,an as J,V as P,ao as Q}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{g as U}from"./wechat-bce3215c.js";import{_ as W}from"./_plugin-vue_export-helper-c27b6911.js";const G={class:"w-full p-5 bg-white"},H={class:"flex justify-between items-center mb-[20px]"},K={class:"text-[20px]"},L={class:"p-[20px]"},O={class:"text-[16px] mb-[20px]"},X={class:"text-[14px] text-[#303133] font-[700]"},Y={class:"text-[#999]"},Z={class:"mt-[20px] mb-[40px] h-[32px]"},ee={class:"text-[14px] text-[#303133] font-[700]"},te={class:"text-[#999]"},se={class:"mt-[20px] mb-[40px] h-[32px]"},ne={class:"text-[14px] text-[#303133] font-[700]"},ae={class:"text-[#999]"},oe={class:"mt-[20px] mb-[40px] h-[32px]"},le={class:"flex justify-center"},ce={class:"w-[100%] h-[100%] flex items-center justify-center bg-[#f5f7fa]"},ie={class:"mt-[22px] text-center"},pe={class:"text-[14px] text-[#303133] font-[700]"},de=j({__name:"access",setup(re){const r=S(),_=v("/channel/wechat"),c=v(2),p=v("");I(async()=>{const i=await U();p.value=i.data.qr_code});const y=i=>{window.open(i,"_blank")},k=i=>{r.push({path:_.value})};return(i,l)=>{const u=z,C=F,x=N("CircleCheckFilled"),m=R,f=$,h=D,E=M,g=J,A=P,V=Q;return T(),q("div",G,[e("div",H,[e("span",K,o(n(a)("title")),1)]),s(C,{modelValue:_.value,"onUpdate:modelValue":l[0]||(l[0]=d=>_.value=d),class:"demo-tabs",onTabChange:k},{default:t(()=>[s(u,{label:n(a)("wechatAccessFlow"),name:"/channel/wechat"},null,8,["label"]),s(u,{label:n(a)("customMenu"),name:"/channel/wechat/menu"},null,8,["label"]),s(u,{label:n(a)("wechatTemplate"),name:"/channel/wechat/message"},null,8,["label"])]),_:1},8,["modelValue"]),e("div",L,[e("p",O,o(n(a)("wechatInlet")),1),s(V,null,{default:t(()=>[s(g,{span:20},{default:t(()=>[s(E,{direction:"vertical"},{default:t(()=>[s(h,null,w({title:t(()=>[e("p",X,o(n(a)("wechatAttestation")),1)]),description:t(()=>[e("span",Y,o(n(a)("wechatAttestation1")),1),e("div",Z,[s(f,{type:"primary",onClick:l[1]||(l[1]=d=>y("https://mp.weixin.qq.com/"))},{default:t(()=>[b(o(n(a)("clickAccess")),1)]),_:1})])]),_:2},[c.value>1?{name:"icon",fn:t(()=>[s(m,{size:"25px",class:"text-color"},{default:t(()=>[s(x)]),_:1})]),key:"0"}:c.value==1?{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] box-border rounded-full bg-color1 flex items-center justify-center"},[e("div",{class:"h-[12px] w-[12px] bg-color rounded-full"})])]),key:"1"}:{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] text-[#fff] bg-[#778aa3] text-center leading-[24px] rounded-full"}," 1")]),key:"2"}]),1024),s(h,null,w({title:t(()=>[e("p",ee,o(n(a)("wechatSetting")),1)]),description:t(()=>[e("span",te,o(n(a)("wechatSetting1")),1),e("div",se,[s(f,{type:"primary",plain:"",onClick:l[2]||(l[2]=d=>n(r).push("/channel/wechat/config"))},{default:t(()=>[b(o(n(a)("settingInfo")),1)]),_:1})])]),_:2},[c.value>2?{name:"icon",fn:t(()=>[s(m,{size:"25px"},{default:t(()=>[s(x)]),_:1})]),key:"0"}:c.value==2?{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] box-border rounded-full bg-color1 flex items-center justify-center"},[e("div",{class:"h-[12px] w-[12px] bg-color rounded-full"})])]),key:"1"}:{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] text-[#fff] bg-[#778aa3] text-center leading-[24px] rounded-full"}," 2")]),key:"2"}]),1024),s(h,null,w({title:t(()=>[e("p",ne,o(n(a)("wechatAccess")),1)]),description:t(()=>[e("span",ae,o(n(a)("wechatAccess")),1),e("div",oe,[s(f,{type:"primary",plain:"",onClick:l[3]||(l[3]=d=>n(r).push("/channel/wechat/course"))},{default:t(()=>[b(o(n(a)("releaseCourse")),1)]),_:1})])]),_:2},[c.value>3?{name:"icon",fn:t(()=>[s(m,{size:"25px"},{default:t(()=>[s(x)]),_:1})]),key:"0"}:c.value==3?{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] box-border rounded-full bg-color1 flex items-center justify-center"},[e("div",{class:"h-[12px] w-[12px] bg-color rounded-full"})])]),key:"1"}:{name:"icon",fn:t(()=>[e("div",{class:"w-[24px] h-[24px] text-[#fff] bg-[#778aa3] text-center leading-[24px] rounded-full"}," 3")]),key:"2"}]),1024)]),_:1})]),_:1}),s(g,{span:4},{default:t(()=>[e("div",le,[s(A,{class:"w-[180px] h-[180px]",src:p.value?n(B)(p.value):""},{error:t(()=>[e("div",ce,[e("span",null,o(p.value?n(a)("fileErr"):n(a)("emptyQrCode")),1)])]),_:1},8,["src"])]),e("div",ie,[e("p",pe,o(n(a)("clickAccess2")),1)])]),_:1})]),_:1})])])}}});const ye=W(de,[["__scopeId","data-v-594351e7"]]);export{ye as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{_ as o}from"./add-member.vue_vue_type_script_setup_true_lang-96ffda8c.js";import"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import"./member-358d18c9.js";export{o as default};
import{_ as o}from"./add-member.vue_vue_type_script_setup_true_lang-bf23051f.js";import"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import"./member-399a87da.js";export{o as default};

View File

@ -1 +1 @@
import{d as M,r as b,n as $,q as B,N as l,h,I as v,w as m,a as I,e as s,i as V,t as y,u as r,y as H,W as R,X as j,Y as L,E as O,a9 as T,$ as z}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import{p as A,q as S,r as W}from"./member-358d18c9.js";const X={class:"dialog-footer"},re=M({__name:"add-member",emits:["complete"],setup(Y,{expose:N,emit:P}){const p=b(!1),i=b(!1);let u="",c="";const f={member_id:"",nickname:"",member_no:"",init_member_no:"",mobile:"",password:"",password_copy:""},o=$({...f}),_=b(),D=B(()=>({member_no:[{required:!0,message:l("memberNoPlaceholder"),trigger:"blur"},{validator:C,trigger:"blur"}],mobile:[{required:!0,message:l("mobilePlaceholder"),trigger:"blur"},{validator:E,trigger:"blur"}],password:[{required:!0,message:l("passwordPlaceholder"),trigger:"blur"}],password_copy:[{required:!0,message:l("passwordPlaceholder"),trigger:"blur"},{validator:x,trigger:"blur"}]})),E=(d,e,a)=>{e&&!/^1[3-9]\d{9}$/.test(e)?a(new Error(l("mobileHint"))):a()},x=(d,e,a)=>{e!=o.password?a(l("doubleCipherHint")):a()},C=(d,e,a)=>{e&&!/^[0-9a-zA-Z]*$/g.test(e)?a(new Error(l("memberNoHint"))):a()},k=async()=>{await S().then(d=>{c=d.data}).catch(()=>{})},q=async d=>{if(i.value||!d)return;const e=W;await d.validate(async a=>{a&&(i.value=!0,e(o).then(w=>{i.value=!1,p.value=!1,P("complete")}).catch(()=>{i.value=!1}))})};return N({showDialog:p,setFormData:async(d=null)=>{if(i.value=!0,Object.assign(o,f),u=l("addMember"),d){u=l("updateMember");const e=await(await A(d.member_id)).data;e&&Object.keys(o).forEach(a=>{e[a]!=null&&(o[a]=e[a])})}else await k(),o.member_no=c,o.init_member_no=c;i.value=!1}}),(d,e)=>{const a=R,n=j,w=L,g=O,U=T,F=z;return h(),v(U,{modelValue:p.value,"onUpdate:modelValue":e[7]||(e[7]=t=>p.value=t),title:r(u),width:"500px","destroy-on-close":!0},{footer:m(()=>[I("span",X,[s(g,{onClick:e[5]||(e[5]=t=>p.value=!1)},{default:m(()=>[V(y(r(l)("cancel")),1)]),_:1}),s(g,{type:"primary",loading:i.value,onClick:e[6]||(e[6]=t=>q(_.value))},{default:m(()=>[V(y(r(l)("confirm")),1)]),_:1},8,["loading"])])]),default:m(()=>[H((h(),v(w,{model:o,"label-width":"90px",ref_key:"formRef",ref:_,rules:r(D),class:"page-form"},{default:m(()=>[s(n,{label:r(l)("memberNo"),prop:"member_no"},{default:m(()=>[s(a,{modelValue:o.member_no,"onUpdate:modelValue":e[0]||(e[0]=t=>o.member_no=t),clearable:"",maxlength:"20",placeholder:r(l)("memberNoPlaceholder"),class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(n,{label:r(l)("mobile"),prop:"mobile"},{default:m(()=>[s(a,{modelValue:o.mobile,"onUpdate:modelValue":e[1]||(e[1]=t=>o.mobile=t),clearable:"",placeholder:r(l)("mobilePlaceholder"),type:"number",class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(n,{label:r(l)("nickname")},{default:m(()=>[s(a,{modelValue:o.nickname,"onUpdate:modelValue":e[2]||(e[2]=t=>o.nickname=t),clearable:"",placeholder:r(l)("nickNamePlaceholder"),class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(n,{label:r(l)("password"),prop:"password"},{default:m(()=>[s(a,{modelValue:o.password,"onUpdate:modelValue":e[3]||(e[3]=t=>o.password=t),type:"password",placeholder:r(l)("passwordPlaceholder"),clearable:"",class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(n,{label:r(l)("passwordCopy"),prop:"password_copy"},{default:m(()=>[s(a,{modelValue:o.password_copy,"onUpdate:modelValue":e[4]||(e[4]=t=>o.password_copy=t),type:"password",placeholder:r(l)("passwordPlaceholder"),clearable:"",class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},8,["model","rules"])),[[F,i.value]])]),_:1},8,["modelValue","title"])}}});export{re as _};
import{d as M,r as b,n as $,q as B,N as l,h,I as v,w as m,a as I,e as s,i as V,t as y,u as r,y as H,W as R,X as j,Y as L,E as O,aa as T,$ as z}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import{p as A,q as S,r as W}from"./member-399a87da.js";const X={class:"dialog-footer"},re=M({__name:"add-member",emits:["complete"],setup(Y,{expose:N,emit:P}){const p=b(!1),i=b(!1);let u="",c="";const f={member_id:"",nickname:"",member_no:"",init_member_no:"",mobile:"",password:"",password_copy:""},o=$({...f}),_=b(),D=B(()=>({member_no:[{required:!0,message:l("memberNoPlaceholder"),trigger:"blur"},{validator:C,trigger:"blur"}],mobile:[{required:!0,message:l("mobilePlaceholder"),trigger:"blur"},{validator:E,trigger:"blur"}],password:[{required:!0,message:l("passwordPlaceholder"),trigger:"blur"}],password_copy:[{required:!0,message:l("passwordPlaceholder"),trigger:"blur"},{validator:x,trigger:"blur"}]})),E=(d,e,a)=>{e&&!/^1[3-9]\d{9}$/.test(e)?a(new Error(l("mobileHint"))):a()},x=(d,e,a)=>{e!=o.password?a(l("doubleCipherHint")):a()},C=(d,e,a)=>{e&&!/^[0-9a-zA-Z]*$/g.test(e)?a(new Error(l("memberNoHint"))):a()},k=async()=>{await S().then(d=>{c=d.data}).catch(()=>{})},q=async d=>{if(i.value||!d)return;const e=W;await d.validate(async a=>{a&&(i.value=!0,e(o).then(w=>{i.value=!1,p.value=!1,P("complete")}).catch(()=>{i.value=!1}))})};return N({showDialog:p,setFormData:async(d=null)=>{if(i.value=!0,Object.assign(o,f),u=l("addMember"),d){u=l("updateMember");const e=await(await A(d.member_id)).data;e&&Object.keys(o).forEach(a=>{e[a]!=null&&(o[a]=e[a])})}else await k(),o.member_no=c,o.init_member_no=c;i.value=!1}}),(d,e)=>{const a=R,n=j,w=L,g=O,U=T,F=z;return h(),v(U,{modelValue:p.value,"onUpdate:modelValue":e[7]||(e[7]=t=>p.value=t),title:r(u),width:"500px","destroy-on-close":!0},{footer:m(()=>[I("span",X,[s(g,{onClick:e[5]||(e[5]=t=>p.value=!1)},{default:m(()=>[V(y(r(l)("cancel")),1)]),_:1}),s(g,{type:"primary",loading:i.value,onClick:e[6]||(e[6]=t=>q(_.value))},{default:m(()=>[V(y(r(l)("confirm")),1)]),_:1},8,["loading"])])]),default:m(()=>[H((h(),v(w,{model:o,"label-width":"90px",ref_key:"formRef",ref:_,rules:r(D),class:"page-form"},{default:m(()=>[s(n,{label:r(l)("memberNo"),prop:"member_no"},{default:m(()=>[s(a,{modelValue:o.member_no,"onUpdate:modelValue":e[0]||(e[0]=t=>o.member_no=t),clearable:"",maxlength:"20",placeholder:r(l)("memberNoPlaceholder"),class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(n,{label:r(l)("mobile"),prop:"mobile"},{default:m(()=>[s(a,{modelValue:o.mobile,"onUpdate:modelValue":e[1]||(e[1]=t=>o.mobile=t),clearable:"",placeholder:r(l)("mobilePlaceholder"),type:"number",class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(n,{label:r(l)("nickname")},{default:m(()=>[s(a,{modelValue:o.nickname,"onUpdate:modelValue":e[2]||(e[2]=t=>o.nickname=t),clearable:"",placeholder:r(l)("nickNamePlaceholder"),class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(n,{label:r(l)("password"),prop:"password"},{default:m(()=>[s(a,{modelValue:o.password,"onUpdate:modelValue":e[3]||(e[3]=t=>o.password=t),type:"password",placeholder:r(l)("passwordPlaceholder"),clearable:"",class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(n,{label:r(l)("passwordCopy"),prop:"password_copy"},{default:m(()=>[s(a,{modelValue:o.password_copy,"onUpdate:modelValue":e[4]||(e[4]=t=>o.password_copy=t),type:"password",placeholder:r(l)("passwordPlaceholder"),clearable:"",class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},8,["model","rules"])),[[F,i.value]])]),_:1},8,["modelValue","title"])}}});export{re as _};

View File

@ -1 +1 @@
import{_ as o}from"./add-table.vue_vue_type_script_setup_true_lang-9ac8d41e.js";import"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./tools-e72ef746.js";export{o as default};
import{_ as o}from"./add-table.vue_vue_type_script_setup_true_lang-55f6e97f.js";import"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./tools-5de7422d.js";export{o as default};

View File

@ -1 +1 @@
import{d as T,f as E,r as u,n as L,q as k,h as p,I as _,w as o,a as h,y as x,u as t,t as b,N as n,e as d,i as B,ag as z,W as q,E as F,ai as I,a9 as P,$ as U}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css */import{j as $,k as j}from"./tools-e72ef746.js";const G={class:""},te=T({__name:"add-table",setup(R,{expose:g}){const f=E(),m=u(!1),s=u(""),e=L({loading:!0,data:[],searchParam:{table_name:"",table_content:""}}),v=k(()=>e.data.filter(a=>!s.value||a.Name.toLowerCase().includes(s.value.toLowerCase())||a.Comment.toLowerCase().includes(s.value.toLowerCase()))),c=()=>{e.loading=!0,$().then(a=>{e.loading=!1,e.data=a.data}).catch(()=>{e.loading=!1})};c();const w=a=>{const l=a.Name;e.loading=!0,j({table_name:l}).then(i=>{e.loading=!1,m.value=!1,f.push({path:"/tools/code/edit",query:{id:i.data.id}})}).catch(()=>{e.loading=!1})};return g({showDialog:m,setFormData:async(a=null)=>{c()}}),(a,l)=>{const i=z,C=q,y=F,D=I,V=P,N=U;return p(),_(V,{modelValue:m.value,"onUpdate:modelValue":l[1]||(l[1]=r=>m.value=r),title:t(n)("addCode"),width:"800px","destroy-on-close":!0},{default:o(()=>[h("div",G,[x((p(),_(D,{data:t(v),size:"large",height:"400"},{empty:o(()=>[h("span",null,b(e.loading?"":t(n)("emptyData")),1)]),default:o(()=>[d(i,{prop:"Name",label:t(n)("tableName"),"min-width":"150"},null,8,["label"]),d(i,{prop:"Comment",label:t(n)("tableComment"),"min-width":"120"},null,8,["label"]),d(i,{align:"right","min-width":"150"},{header:o(()=>[d(C,{modelValue:s.value,"onUpdate:modelValue":l[0]||(l[0]=r=>s.value=r),size:"small",placeholder:t(n)("searchPlaceholder")},null,8,["modelValue","placeholder"])]),default:o(r=>[d(y,{size:"small",type:"primary",onClick:W=>w(r.row)},{default:o(()=>[B(b(t(n)("addBtn")),1)]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])),[[N,e.loading]])])]),_:1},8,["modelValue","title"])}}});export{te as _};
import{d as T,f as E,r as u,n as L,q as k,h as p,I as _,w as o,a as h,y as x,u as t,t as b,N as n,e as d,i as B,ah as z,W as j,E as q,aj as F,aa as I,$ as P}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css */import{j as U,k as $}from"./tools-5de7422d.js";const G={class:""},te=T({__name:"add-table",setup(R,{expose:f}){const g=E(),m=u(!1),s=u(""),e=L({loading:!0,data:[],searchParam:{table_name:"",table_content:""}}),v=k(()=>e.data.filter(a=>!s.value||a.Name.toLowerCase().includes(s.value.toLowerCase())||a.Comment.toLowerCase().includes(s.value.toLowerCase()))),c=()=>{e.loading=!0,U().then(a=>{e.loading=!1,e.data=a.data}).catch(()=>{e.loading=!1})};c();const w=a=>{const l=a.Name;e.loading=!0,$({table_name:l}).then(i=>{e.loading=!1,m.value=!1,g.push({path:"/tools/code/edit",query:{id:i.data.id}})}).catch(()=>{e.loading=!1})};return f({showDialog:m,setFormData:async(a=null)=>{c()}}),(a,l)=>{const i=z,C=j,y=q,D=F,V=I,N=P;return p(),_(V,{modelValue:m.value,"onUpdate:modelValue":l[1]||(l[1]=r=>m.value=r),title:t(n)("addCode"),width:"800px","destroy-on-close":!0},{default:o(()=>[h("div",G,[x((p(),_(D,{data:t(v),size:"large",height:"400"},{empty:o(()=>[h("span",null,b(e.loading?"":t(n)("emptyData")),1)]),default:o(()=>[d(i,{prop:"Name",label:t(n)("tableName"),"min-width":"150"},null,8,["label"]),d(i,{prop:"Comment",label:t(n)("tableComment"),"min-width":"120"},null,8,["label"]),d(i,{align:"right","min-width":"150"},{header:o(()=>[d(C,{modelValue:s.value,"onUpdate:modelValue":l[0]||(l[0]=r=>s.value=r),size:"small",placeholder:t(n)("searchPlaceholder")},null,8,["modelValue","placeholder"])]),default:o(r=>[d(y,{size:"small",type:"primary",onClick:W=>w(r.row)},{default:o(()=>[B(b(t(n)("addBtn")),1)]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])),[[N,e.loading]])])]),_:1},8,["modelValue","title"])}}});export{te as _};

View File

@ -1 +1 @@
import{a2 as t}from"./index-b19d04dd.js";function o(n){return t.get("addon/local",n,{showSuccessMessage:!0})}function a(n){return t.post(`addon/install/${n.addon}`,n)}function s(n){return t.post(`addon/cloudinstall/${n.addon}`,n,{timeout:60*1e3})}function l(n){return t.post(`addon/uninstall/${n.addon}`,n,{showSuccessMessage:!0})}function d(n){return t.get(`addon/install/check/${n}`,{timeout:30*1e3})}function u(){return t.get("addon/installtask")}function c(n){return t.get(`addon/cloudinstall/${n}`)}function i(n){return t.get(`addon/uninstall/check/${n}`,{timeout:30*1e3})}function r(n){return t.put(`addon/install/cancel/${n}`,{},{showErrorMessage:!1})}function g(){return t.get("addon/list/install")}export{o as a,u as b,s as c,c as d,i as e,r as f,g,a as i,d as p,l as u};
import{a2 as t}from"./index-4ce69858.js";function o(n){return t.get("addon/local",n,{showSuccessMessage:!0})}function a(n){return t.post(`addon/install/${n.addon}`,n)}function s(n){return t.post(`addon/cloudinstall/${n.addon}`,n,{timeout:60*1e3})}function l(n){return t.post(`addon/uninstall/${n.addon}`,n,{showSuccessMessage:!0})}function d(n){return t.get(`addon/install/check/${n}`,{timeout:30*1e3})}function u(){return t.get("addon/installtask")}function c(n){return t.get(`addon/cloudinstall/${n}`)}function i(n){return t.get(`addon/uninstall/check/${n}`,{timeout:30*1e3})}function r(n){return t.put(`addon/install/cancel/${n}`,{},{showErrorMessage:!1})}function g(){return t.get("addon/list/install")}export{o as a,u as b,s as c,c as d,i as e,r as f,g,a as i,d as p,l as u};

View File

@ -1 +1 @@
import{d as N,O as B,r as g,n as C,h,c as E,a as r,t as p,u as s,y,I as D,w as m,e as o,N as i,i as I,aL as F,X as O,_ as S,Y as L,E as U,$ as j}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css */import{_ as J}from"./index-34e6dc3a.js";import"./el-form-item-4ed993c7.js";/* empty css */import{J as R,K as T}from"./sys-dbdff24e.js";import{_ as $}from"./_plugin-vue_export-helper-c27b6911.js";/* empty css */import"./index.vue_vue_type_style_index_0_lang-4806f3ef.js";/* empty css */import"./attachment-b6d6fc85.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-6089139d.js";/* empty css */const k={class:"main-container"},K={class:"flex ml-[18px] justify-between items-center mt-[20px]"},X={class:"text-[20px]"},Y={class:"panel-title !text-sm"},q={class:"form-tip"},z={class:"panel-title !text-sm"},A={class:"form-tip"},G={class:"fixed-footer-wrap"},H={class:"fixed-footer"},M=N({__name:"adminlogin",setup(P){const b=B().meta.title,_=g(!0),d=g(),e=C({is_captcha:0,is_site_captcha:0,bg:"",site_bg:""});(async(c=0)=>{const t=await(await R()).data;Object.keys(e).forEach(a=>{["is_captcha","is_site_captcha"].includes(a)?e[a]=Boolean(Number(t[a])):e[a]=t[a]}),_.value=!1})();const v=async c=>{_.value||!c||await c.validate(t=>{if(t){const a=JSON.parse(JSON.stringify(e));Object.keys(a).forEach(l=>{["is_captcha","is_site_captcha"].includes(l)&&(a[l]=Number(a[l]))}),T(a).then(()=>{_.value=!1}).catch(()=>{_.value=!1})}})};return(c,t)=>{const a=F,l=O,u=J,f=S,x=L,V=U,w=j;return h(),E("div",k,[r("div",K,[r("span",X,p(s(b)),1)]),y((h(),D(x,{model:e,"label-width":"150px",ref_key:"ruleFormRef",ref:d,class:"page-form"},{default:m(()=>[o(f,{class:"box-card !border-none",shadow:"never"},{default:m(()=>[r("h3",Y,p(s(i)("admin")),1),o(l,{label:s(i)("isCaptcha"),prop:"formData.is_auth_register"},{default:m(()=>[o(a,{modelValue:e.is_captcha,"onUpdate:modelValue":t[0]||(t[0]=n=>e.is_captcha=n)},null,8,["modelValue"])]),_:1},8,["label"]),o(l,{label:s(i)("bgImg")},{default:m(()=>[o(u,{modelValue:e.bg,"onUpdate:modelValue":t[1]||(t[1]=n=>e.bg=n)},null,8,["modelValue"]),r("div",q,p(s(i)("adminBgImgTip")),1)]),_:1},8,["label"])]),_:1}),o(f,{class:"box-card !border-none mt-4",shadow:"never"},{default:m(()=>[r("h3",z,p(s(i)("site")),1),o(l,{label:s(i)("isCaptcha"),prop:"formData.is_auth_register"},{default:m(()=>[o(a,{modelValue:e.is_site_captcha,"onUpdate:modelValue":t[2]||(t[2]=n=>e.is_site_captcha=n)},null,8,["modelValue"])]),_:1},8,["label"]),o(l,{label:s(i)("bgImg")},{default:m(()=>[o(u,{modelValue:e.site_bg,"onUpdate:modelValue":t[3]||(t[3]=n=>e.site_bg=n)},null,8,["modelValue"]),r("div",A,p(s(i)("siteBgImgTip")),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["model"])),[[w,_.value]]),r("div",G,[r("div",H,[o(V,{type:"primary",onClick:t[4]||(t[4]=n=>v(d.value))},{default:m(()=>[I(p(s(i)("save")),1)]),_:1})])])])}}});const Ft=$(M,[["__scopeId","data-v-09344233"]]);export{Ft as default};
import{d as N,O as B,r as g,n as C,h,c as E,a as r,t as p,u as s,y,I as D,w as m,e as o,N as i,i as I,aL as F,X as O,_ as S,Y as L,E as U,$ as j}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css */import{_ as J}from"./index-c520c584.js";import"./el-form-item-4ed993c7.js";/* empty css */import{J as R,K as T}from"./sys-e410b79c.js";import{_ as $}from"./_plugin-vue_export-helper-c27b6911.js";/* empty css */import"./index.vue_vue_type_style_index_0_lang-59777cba.js";/* empty css */import"./attachment-872c2aec.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-861395e6.js";/* empty css */const k={class:"main-container"},K={class:"flex ml-[18px] justify-between items-center mt-[20px]"},X={class:"text-[20px]"},Y={class:"panel-title !text-sm"},q={class:"form-tip"},z={class:"panel-title !text-sm"},A={class:"form-tip"},G={class:"fixed-footer-wrap"},H={class:"fixed-footer"},M=N({__name:"adminlogin",setup(P){const b=B().meta.title,_=g(!0),d=g(),e=C({is_captcha:0,is_site_captcha:0,bg:"",site_bg:""});(async(c=0)=>{const t=await(await R()).data;Object.keys(e).forEach(a=>{["is_captcha","is_site_captcha"].includes(a)?e[a]=Boolean(Number(t[a])):e[a]=t[a]}),_.value=!1})();const v=async c=>{_.value||!c||await c.validate(t=>{if(t){const a=JSON.parse(JSON.stringify(e));Object.keys(a).forEach(l=>{["is_captcha","is_site_captcha"].includes(l)&&(a[l]=Number(a[l]))}),T(a).then(()=>{_.value=!1}).catch(()=>{_.value=!1})}})};return(c,t)=>{const a=F,l=O,u=J,f=S,x=L,V=U,w=j;return h(),E("div",k,[r("div",K,[r("span",X,p(s(b)),1)]),y((h(),D(x,{model:e,"label-width":"150px",ref_key:"ruleFormRef",ref:d,class:"page-form"},{default:m(()=>[o(f,{class:"box-card !border-none",shadow:"never"},{default:m(()=>[r("h3",Y,p(s(i)("admin")),1),o(l,{label:s(i)("isCaptcha"),prop:"formData.is_auth_register"},{default:m(()=>[o(a,{modelValue:e.is_captcha,"onUpdate:modelValue":t[0]||(t[0]=n=>e.is_captcha=n)},null,8,["modelValue"])]),_:1},8,["label"]),o(l,{label:s(i)("bgImg")},{default:m(()=>[o(u,{modelValue:e.bg,"onUpdate:modelValue":t[1]||(t[1]=n=>e.bg=n)},null,8,["modelValue"]),r("div",q,p(s(i)("adminBgImgTip")),1)]),_:1},8,["label"])]),_:1}),o(f,{class:"box-card !border-none mt-4",shadow:"never"},{default:m(()=>[r("h3",z,p(s(i)("site")),1),o(l,{label:s(i)("isCaptcha"),prop:"formData.is_auth_register"},{default:m(()=>[o(a,{modelValue:e.is_site_captcha,"onUpdate:modelValue":t[2]||(t[2]=n=>e.is_site_captcha=n)},null,8,["modelValue"])]),_:1},8,["label"]),o(l,{label:s(i)("bgImg")},{default:m(()=>[o(u,{modelValue:e.site_bg,"onUpdate:modelValue":t[3]||(t[3]=n=>e.site_bg=n)},null,8,["modelValue"]),r("div",A,p(s(i)("siteBgImgTip")),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["model"])),[[w,_.value]]),r("div",G,[r("div",H,[o(V,{type:"primary",onClick:t[4]||(t[4]=n=>v(d.value))},{default:m(()=>[I(p(s(i)("save")),1)]),_:1})])])])}}});const Ft=$(M,[["__scopeId","data-v-09344233"]]);export{Ft as default};

View File

@ -1 +1 @@
import{d as v,O as y,n as x,f as k,h as m,c as E,e as a,w as o,a as i,t as r,u as t,y as C,I as N,N as n,i as p,ag as B,E as L,ai as T,_ as D,$ as A}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css */import{L as V}from"./sys-dbdff24e.js";const $={class:"main-container"},j={class:"flex justify-between items-center"},O={class:"text-[20px]"},R={class:"mt-[20px]"},Y=v({__name:"agreement",setup(z){const _=y().meta.title,e=x({loading:!0,data:[]});(()=>{e.loading=!0,e.data=[],V().then(l=>{Object.keys(l.data).forEach(d=>e.data.push(l.data[d])),e.loading=!1}).catch(()=>{e.loading=!1})})();const u=k(),g=l=>{u.push(`/setting/agreement/edit?key=${l.agreement_key}`)};return(l,d)=>{const s=B,h=L,f=T,b=D,w=A;return m(),E("div",$,[a(b,{class:"box-card !border-none",shadow:"never"},{default:o(()=>[i("div",j,[i("span",O,r(t(_)),1)]),i("div",R,[C((m(),N(f,{data:e.data,size:"large"},{empty:o(()=>[i("span",null,r(e.loading?"":t(n)("emptyData")),1)]),default:o(()=>[a(s,{prop:"type_name",label:t(n)("typeName"),"min-width":"100","show-overflow-tooltip":!0},null,8,["label"]),a(s,{prop:"title",label:t(n)("title"),"min-width":"100","show-overflow-tooltip":!0},null,8,["label"]),a(s,{label:t(n)("updateTime"),"min-width":"180",align:"center"},{default:o(({row:c})=>[p(r(c.update_time||""),1)]),_:1},8,["label"]),a(s,{label:t(n)("operation"),align:"right",fixed:"right",width:"100"},{default:o(({row:c})=>[a(h,{type:"primary",link:"",onClick:q=>g(c)},{default:o(()=>[p(r(t(n)("config")),1)]),_:2},1032,["onClick"])]),_:1},8,["label"])]),_:1},8,["data"])),[[w,e.loading]])])]),_:1})])}}});export{Y as default};
import{d as v,O as y,n as x,f as k,h as m,c as E,e as a,w as o,a as i,t as r,u as t,y as C,I as N,N as n,i as p,ah as B,E as L,aj as T,_ as D,$ as j}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css */import{L as A}from"./sys-e410b79c.js";const V={class:"main-container"},$={class:"flex justify-between items-center"},O={class:"text-[20px]"},R={class:"mt-[20px]"},Y=v({__name:"agreement",setup(z){const _=y().meta.title,e=x({loading:!0,data:[]});(()=>{e.loading=!0,e.data=[],A().then(l=>{Object.keys(l.data).forEach(d=>e.data.push(l.data[d])),e.loading=!1}).catch(()=>{e.loading=!1})})();const u=k(),g=l=>{u.push(`/setting/agreement/edit?key=${l.agreement_key}`)};return(l,d)=>{const s=B,h=L,f=T,b=D,w=j;return m(),E("div",V,[a(b,{class:"box-card !border-none",shadow:"never"},{default:o(()=>[i("div",$,[i("span",O,r(t(_)),1)]),i("div",R,[C((m(),N(f,{data:e.data,size:"large"},{empty:o(()=>[i("span",null,r(e.loading?"":t(n)("emptyData")),1)]),default:o(()=>[a(s,{prop:"type_name",label:t(n)("typeName"),"min-width":"100","show-overflow-tooltip":!0},null,8,["label"]),a(s,{prop:"title",label:t(n)("title"),"min-width":"100","show-overflow-tooltip":!0},null,8,["label"]),a(s,{label:t(n)("updateTime"),"min-width":"180",align:"center"},{default:o(({row:c})=>[p(r(c.update_time||""),1)]),_:1},8,["label"]),a(s,{label:t(n)("operation"),align:"right",fixed:"right",width:"100"},{default:o(({row:c})=>[a(h,{type:"primary",link:"",onClick:q=>g(c)},{default:o(()=>[p(r(t(n)("config")),1)]),_:2},1032,["onClick"])]),_:1},8,["label"])]),_:1},8,["data"])),[[w,e.loading]])])]),_:1})])}}});export{Y as default};

View File

@ -1 +1 @@
import{d as R,O as $,f as I,r as y,cM as P,n as S,q as T,N as r,h as k,c as j,a as l,u as o,t as p,y as q,I as O,w as m,e as s,i as x,W as U,X as A,Y as M,_ as z,E as L,$ as W}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css */import{_ as X}from"./index.vue_vue_type_script_setup_true_lang-337d68b2.js";import"./el-form-item-4ed993c7.js";/* empty css */import{M as Y,N as G}from"./sys-dbdff24e.js";import"./index.vue_vue_type_style_index_0_lang-4806f3ef.js";/* empty css */import"./attachment-b6d6fc85.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-6089139d.js";/* empty css */import"./_plugin-vue_export-helper-c27b6911.js";const H={class:"main-container"},J={class:"detail-head"},K=l("span",{class:"iconfont iconxiangzuojiantou !text-xs"},null,-1),Q={class:"ml-[1px]"},Z=l("span",{class:"adorn"},"|",-1),ee={class:"right"},te={class:"fixed-footer-wrap"},oe={class:"fixed-footer"},Se=R({__name:"agreement_edit",setup(ae){const u=$(),_=I(),f=u.query.key||"",i=y(!1),V=P(),w=u.meta.title,g={agreement_key:"",content:"",title:"",agreement_key_name:""},t=S({...g});i.value=!0,f&&(async(c="")=>{Object.assign(t,g);const e=await(await Y(c)).data;Object.keys(t).forEach(a=>{e[a]!=null&&(t[a]=e[a])}),i.value=!1})(f);const v=y(),E=T(()=>({title:[{required:!0,message:r("titlePlaceholder"),trigger:"blur"}]})),C=async c=>{i.value||!c||await c.validate(async e=>{if(e){i.value=!0;const a=t;a.key=t.agreement_key,G(a).then(d=>{i.value=!1,b()}).catch(()=>{i.value=!1})}})},b=()=>{V.removeTab(u.path),_.push({path:"/setting/agreement"})};return(c,e)=>{const a=U,d=A,D=X,N=M,B=z,h=L,F=W;return k(),j("div",H,[l("div",J,[l("div",{class:"left",onClick:e[0]||(e[0]=n=>o(_).push({path:"/setting/agreement"}))},[K,l("span",Q,p(o(r)("returnToPreviousPage")),1)]),Z,l("span",ee,p(o(w)),1)]),q((k(),O(B,{class:"box-card !border-none",shadow:"never"},{default:m(()=>[s(N,{model:t,"label-width":"90px",ref_key:"formRef",ref:v,rules:o(E),class:"page-form"},{default:m(()=>[s(d,{label:o(r)("type")},{default:m(()=>[s(a,{modelValue:t.agreement_key_name,"onUpdate:modelValue":e[1]||(e[1]=n=>t.agreement_key_name=n),readonly:"",class:"input-width"},null,8,["modelValue"])]),_:1},8,["label"]),s(d,{label:o(r)("title"),prop:"title"},{default:m(()=>[s(a,{modelValue:t.title,"onUpdate:modelValue":e[2]||(e[2]=n=>t.title=n),clearable:"",placeholder:o(r)("titlePlaceholder"),class:"input-width",maxlength:"20"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(d,{label:o(r)("content")},{default:m(()=>[s(D,{modelValue:t.content,"onUpdate:modelValue":e[3]||(e[3]=n=>t.content=n)},null,8,["modelValue"])]),_:1},8,["label"])]),_:1},8,["model","rules"])]),_:1})),[[F,i.value]]),l("div",te,[l("div",oe,[s(h,{type:"primary",onClick:e[4]||(e[4]=n=>C(v.value))},{default:m(()=>[x(p(o(r)("save")),1)]),_:1}),s(h,{onClick:e[5]||(e[5]=n=>b())},{default:m(()=>[x(p(o(r)("cancel")),1)]),_:1})])])])}}});export{Se as default};
import{d as R,O as $,f as I,r as y,cM as P,n as S,q as T,N as r,h as k,c as j,a as l,u as o,t as p,y as q,I as O,w as m,e as s,i as x,W as U,X as A,Y as M,_ as z,E as L,$ as W}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css */import{_ as X}from"./index.vue_vue_type_script_setup_true_lang-ca9ca6be.js";import"./el-form-item-4ed993c7.js";/* empty css */import{M as Y,N as G}from"./sys-e410b79c.js";import"./index.vue_vue_type_style_index_0_lang-59777cba.js";/* empty css */import"./attachment-872c2aec.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-861395e6.js";/* empty css */import"./_plugin-vue_export-helper-c27b6911.js";const H={class:"main-container"},J={class:"detail-head"},K=l("span",{class:"iconfont iconxiangzuojiantou !text-xs"},null,-1),Q={class:"ml-[1px]"},Z=l("span",{class:"adorn"},"|",-1),ee={class:"right"},te={class:"fixed-footer-wrap"},oe={class:"fixed-footer"},Se=R({__name:"agreement_edit",setup(ae){const u=$(),_=I(),f=u.query.key||"",i=y(!1),V=P(),w=u.meta.title,g={agreement_key:"",content:"",title:"",agreement_key_name:""},t=S({...g});i.value=!0,f&&(async(c="")=>{Object.assign(t,g);const e=await(await Y(c)).data;Object.keys(t).forEach(a=>{e[a]!=null&&(t[a]=e[a])}),i.value=!1})(f);const v=y(),E=T(()=>({title:[{required:!0,message:r("titlePlaceholder"),trigger:"blur"}]})),C=async c=>{i.value||!c||await c.validate(async e=>{if(e){i.value=!0;const a=t;a.key=t.agreement_key,G(a).then(d=>{i.value=!1,b()}).catch(()=>{i.value=!1})}})},b=()=>{V.removeTab(u.path),_.push({path:"/setting/agreement"})};return(c,e)=>{const a=U,d=A,D=X,N=M,B=z,h=L,F=W;return k(),j("div",H,[l("div",J,[l("div",{class:"left",onClick:e[0]||(e[0]=n=>o(_).push({path:"/setting/agreement"}))},[K,l("span",Q,p(o(r)("returnToPreviousPage")),1)]),Z,l("span",ee,p(o(w)),1)]),q((k(),O(B,{class:"box-card !border-none",shadow:"never"},{default:m(()=>[s(N,{model:t,"label-width":"90px",ref_key:"formRef",ref:v,rules:o(E),class:"page-form"},{default:m(()=>[s(d,{label:o(r)("type")},{default:m(()=>[s(a,{modelValue:t.agreement_key_name,"onUpdate:modelValue":e[1]||(e[1]=n=>t.agreement_key_name=n),readonly:"",class:"input-width"},null,8,["modelValue"])]),_:1},8,["label"]),s(d,{label:o(r)("title"),prop:"title"},{default:m(()=>[s(a,{modelValue:t.title,"onUpdate:modelValue":e[2]||(e[2]=n=>t.title=n),clearable:"",placeholder:o(r)("titlePlaceholder"),class:"input-width",maxlength:"20"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(d,{label:o(r)("content")},{default:m(()=>[s(D,{modelValue:t.content,"onUpdate:modelValue":e[3]||(e[3]=n=>t.content=n)},null,8,["modelValue"])]),_:1},8,["label"])]),_:1},8,["model","rules"])]),_:1})),[[F,i.value]]),l("div",te,[l("div",oe,[s(h,{type:"primary",onClick:e[4]||(e[4]=n=>C(v.value))},{default:m(()=>[x(p(o(r)("save")),1)]),_:1}),s(h,{onClick:e[5]||(e[5]=n=>b())},{default:m(()=>[x(p(o(r)("cancel")),1)]),_:1})])])])}}});export{Se as default};

View File

@ -1 +1 @@
import{a2 as t}from"./index-b19d04dd.js";function e(){return t.get("aliapp/config")}function p(a){return t.put("aliapp/config",a,{showSuccessMessage:!0})}function n(){return t.get("aliapp/static")}export{n as a,e as g,p as s};
import{a2 as t}from"./index-4ce69858.js";function e(){return t.get("aliapp/config")}function p(a){return t.put("aliapp/config",a,{showSuccessMessage:!0})}function n(){return t.get("aliapp/static")}export{n as a,e as g,p as s};

View File

@ -1 +1 @@
import{d as C,f as V,K as N,r as y,n as R,y as M,h as l,c as x,a as e,t as s,u as a,N as o,e as u,w as c,F as j,G as D,R as T,I as U,i as $,B as k,ad as b,U as w,E as z,V as G,ah as K,aj as O,ac as P,$ as q,p as H,g as J}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css */import{_ as Q}from"./apply_empty-cdca3e85.js";import{g as W}from"./addon-898c6ab6.js";import{_ as X}from"./_plugin-vue_export-helper-c27b6911.js";const Y=""+new URL("app_store_default-c0531792.png",import.meta.url).href,f=_=>(H("data-v-e51b31c1"),_=_(),J(),_),Z={class:"box-border pt-[68px] px-[76px] overview-top"},ee={key:0},te={class:"flex justify-between items-center"},se={class:"font-[600] text-[26px] text-[#222] leading-[37px]"},ae={class:"font-[500] text-[14px] text-[#222] leading-[20px] mt-[12px]"},oe=f(()=>e("div",{class:"mr-[9px] text-[#3F3F3F] iconfont iconxiazai01"},null,-1)),ne={class:"font-[600] text-[14px] text-[#222] leading-[20px]"},pe={class:"flex flex-wrap mt-[40px]"},ce=["onClick"],ie={class:"bg-[#F7FAFB] py-[18px] px-[24px] flex items-center app-item-head"},re=f(()=>e("div",{class:"image-slot"},[e("img",{class:"w-[40px] h-[40px] rounded-[8px]",src:Y})],-1)),le={class:"py-[18px] px-[24px]"},_e={class:"font-[600] leading-[1] text-[14px] text-[#222]"},de={class:"text-[13px] text-[#6D7278] leading-[18px] mt-[6px] truncate"},xe=f(()=>e("div",{class:"w-[230px] mx-auto"},[e("img",{src:Q,class:"max-w-full",alt:""})],-1)),ue={class:"flex items-center"},me=C({__name:"app_manage",setup(_){const v=V(),m=N(),n=y(!0),d=R({appList:[]}),h=y({});(()=>{n.value=!0,W().then(p=>{Object.values(p.data).forEach((t,i)=>{t.type=="app"&&d.appList.push(t)}),m.routers.forEach((t,i)=>{t.children&&t.children.length?(t.name=b(t.children),h.value[t.meta.app]=b(t.children)):h.value[t.meta.app]=t.name}),n.value=!1}).catch(()=>{n.value=!1})})();const L=p=>{w.set({key:"menuAppStorage",data:p.key}),w.set({key:"plugMenuTypeStorage",data:""});const t=m.appMenuList;t.push(p.key),m.setAppMenuList(t);const i=h.value[p.key];v.push({name:i})},g=()=>{v.push("/app_manage/app_store")};return(p,t)=>{const i=z,F=G,E=K,S=O,I=P,A=q;return M((l(),x("div",Z,[d.appList&&!n.value?(l(),x("div",ee,[e("div",te,[e("div",null,[e("div",se,s(a(o)("app")),1),e("div",ae,s(a(o)("versionInfo"))+" "+s(a(o)("currentVersion")),1)]),u(i,{onClick:g,class:"px-[15px]"},{default:c(()=>[oe,e("span",ne,s(a(o)("appStore")),1)]),_:1})]),e("div",pe,[(l(!0),x(j,null,D(d.appList,(r,B)=>(l(),x("div",{key:B,class:"app-item w-[280px] box-border !bg-[#fff] rounded-[6px] cursor-pointer mr-[20px] mb-[20px] overflow-hidden",onClick:fe=>L(r)},[e("div",ie,[u(F,{class:"w-[44px] h-[44px] rounded-[8px]",src:a(T)(r.icon),fit:"contain"},{error:c(()=>[re]),_:2},1032,["src"])]),e("div",le,[e("div",_e,s(r.title),1),u(E,{class:"box-item",effect:"light",content:r.desc,placement:"bottom-start"},{default:c(()=>[e("div",de,s(r.desc),1)]),_:2},1032,["content"])])],8,ce))),128)),!d.appList.length&&!n.value?(l(),U(I,{key:0,class:"mx-auto overview-empty"},{image:c(()=>[xe]),description:c(()=>[e("p",ue,[e("span",null,s(a(o)("descriptionLeft")),1),u(S,{type:"primary",onClick:g,class:"mx-[5px]"},{default:c(()=>[$(s(a(o)("link")),1)]),_:1}),e("span",null,s(a(o)("descriptionRight")),1)])]),_:1})):k("",!0)])])):k("",!0)])),[[A,n.value]])}}});const Be=X(me,[["__scopeId","data-v-e51b31c1"]]);export{Be as default};
import{d as C,f as V,K as N,r as y,n as R,y as M,h as l,c as x,a as e,t as s,u as a,N as o,e as u,w as c,F as D,G as T,R as U,I as j,i as $,B as k,ae as b,U as w,E as z,V as G,ai as K,ak as O,ad as P,$ as q,p as H,g as J}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css */import{_ as Q}from"./apply_empty-cdca3e85.js";import{g as W}from"./addon-74eac974.js";import{_ as X}from"./_plugin-vue_export-helper-c27b6911.js";const Y=""+new URL("app_store_default-c0531792.png",import.meta.url).href,f=_=>(H("data-v-e51b31c1"),_=_(),J(),_),Z={class:"box-border pt-[68px] px-[76px] overview-top"},ee={key:0},te={class:"flex justify-between items-center"},se={class:"font-[600] text-[26px] text-[#222] leading-[37px]"},ae={class:"font-[500] text-[14px] text-[#222] leading-[20px] mt-[12px]"},oe=f(()=>e("div",{class:"mr-[9px] text-[#3F3F3F] iconfont iconxiazai01"},null,-1)),ne={class:"font-[600] text-[14px] text-[#222] leading-[20px]"},pe={class:"flex flex-wrap mt-[40px]"},ce=["onClick"],ie={class:"bg-[#F7FAFB] py-[18px] px-[24px] flex items-center app-item-head"},re=f(()=>e("div",{class:"image-slot"},[e("img",{class:"w-[40px] h-[40px] rounded-[8px]",src:Y})],-1)),le={class:"py-[18px] px-[24px]"},_e={class:"font-[600] leading-[1] text-[14px] text-[#222]"},de={class:"text-[13px] text-[#6D7278] leading-[18px] mt-[6px] truncate"},xe=f(()=>e("div",{class:"w-[230px] mx-auto"},[e("img",{src:Q,class:"max-w-full",alt:""})],-1)),ue={class:"flex items-center"},me=C({__name:"app_manage",setup(_){const v=V(),m=N(),n=y(!0),d=R({appList:[]}),h=y({});(()=>{n.value=!0,W().then(p=>{Object.values(p.data).forEach((t,i)=>{t.type=="app"&&d.appList.push(t)}),m.routers.forEach((t,i)=>{t.children&&t.children.length?(t.name=b(t.children),h.value[t.meta.app]=b(t.children)):h.value[t.meta.app]=t.name}),n.value=!1}).catch(()=>{n.value=!1})})();const L=p=>{w.set({key:"menuAppStorage",data:p.key}),w.set({key:"plugMenuTypeStorage",data:""});const t=m.appMenuList;t.push(p.key),m.setAppMenuList(t);const i=h.value[p.key];v.push({name:i})},g=()=>{v.push("/app_manage/app_store")};return(p,t)=>{const i=z,F=G,E=K,S=O,I=P,A=q;return M((l(),x("div",Z,[d.appList&&!n.value?(l(),x("div",ee,[e("div",te,[e("div",null,[e("div",se,s(a(o)("app")),1),e("div",ae,s(a(o)("versionInfo"))+" "+s(a(o)("currentVersion")),1)]),u(i,{onClick:g,class:"px-[15px]"},{default:c(()=>[oe,e("span",ne,s(a(o)("appStore")),1)]),_:1})]),e("div",pe,[(l(!0),x(D,null,T(d.appList,(r,B)=>(l(),x("div",{key:B,class:"app-item w-[280px] box-border !bg-[#fff] rounded-[6px] cursor-pointer mr-[20px] mb-[20px] overflow-hidden",onClick:fe=>L(r)},[e("div",ie,[u(F,{class:"w-[44px] h-[44px] rounded-[8px]",src:a(U)(r.icon),fit:"contain"},{error:c(()=>[re]),_:2},1032,["src"])]),e("div",le,[e("div",_e,s(r.title),1),u(E,{class:"box-item",effect:"light",content:r.desc,placement:"bottom-start"},{default:c(()=>[e("div",de,s(r.desc),1)]),_:2},1032,["content"])])],8,ce))),128)),!d.appList.length&&!n.value?(l(),j(I,{key:0,class:"mx-auto overview-empty"},{image:c(()=>[xe]),description:c(()=>[e("p",ue,[e("span",null,s(a(o)("descriptionLeft")),1),u(S,{type:"primary",onClick:g,class:"mx-[5px]"},{default:c(()=>[$(s(a(o)("link")),1)]),_:1}),e("span",null,s(a(o)("descriptionRight")),1)])]),_:1})):k("",!0)])])):k("",!0)])),[[A,n.value]])}}});const Be=X(me,[["__scopeId","data-v-e51b31c1"]]);export{Be as default};

View File

@ -1 +1 @@
import{d as _,r as d,h as m,c as p,e,w as o,F as u,G as f,u as h,N as v,aC as y,aD as b,_ as x}from"./index-b19d04dd.js";/* empty css *//* empty css */import{a as C}from"./attachment-b6d6fc85.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-6089139d.js";/* empty css */import"./sys-dbdff24e.js";import"./_plugin-vue_export-helper-c27b6911.js";const E={class:"main-container attachment-container"},tt=_({__name:"attachment",setup(V){const a=["image","video","icon"],r=d(a[0]);return(g,n)=>{const i=y,s=b,l=x;return m(),p("div",E,[e(l,{class:"box-card !border-none full-container",shadow:"never"},{default:o(()=>[e(s,{modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=t=>r.value=t),class:""},{default:o(()=>[(m(),p(u,null,f(a,(t,c)=>e(i,{label:h(v)(t),name:t,key:c},{default:o(()=>[e(C,{scene:"attachment",type:t},null,8,["type"])]),_:2},1032,["label","name"])),64))]),_:1},8,["modelValue"])]),_:1})])}}});export{tt as default};
import{d as _,r as d,h as m,c as p,e,w as o,F as u,G as f,u as h,N as v,aC as y,aD as b,_ as x}from"./index-4ce69858.js";/* empty css *//* empty css */import{a as C}from"./attachment-872c2aec.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-861395e6.js";/* empty css */import"./sys-e410b79c.js";import"./_plugin-vue_export-helper-c27b6911.js";const E={class:"main-container attachment-container"},tt=_({__name:"attachment",setup(V){const a=["image","video","icon"],r=d(a[0]);return(g,n)=>{const i=y,s=b,l=x;return m(),p("div",E,[e(l,{class:"box-card !border-none full-container",shadow:"never"},{default:o(()=>[e(s,{modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=t=>r.value=t),class:""},{default:o(()=>[(m(),p(u,null,f(a,(t,c)=>e(i,{label:h(v)(t),name:t,key:c},{default:o(()=>[e(C,{scene:"attachment",type:t},null,8,["type"])]),_:2},1032,["label","name"])),64))]),_:1},8,["modelValue"])]),_:1})])}}});export{tt as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{d as D,O,r as v,n as x,h as i,c as E,a as b,t as u,u as r,y as I,I as d,w as t,e as n,N as s,B as f,i as p,F as S,G as W,aL as G,X as H,W as L,ay as j,az as P,aA as $,cN as M,_ as X,Y,E as q,$ as J}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import{b as K,H as Q,I as Z}from"./member-358d18c9.js";const ee={class:"main-container"},ae={class:"flex ml-[18px] justify-between items-center mt-[20px]"},te={class:"text-[20px]"},oe=b("span",{class:"ml-2"},"%",-1),le={class:"fixed-footer-wrap"},se={class:"fixed-footer"},Ee=D({__name:"cash_out",setup(re){const k=O().meta.title,c=v(!0),g=v(),a=x({is_auto_transfer:"0",is_auto_verify:"0",is_open:"0",min:"0.01",rate:"0",transfer_type:[]}),h=v([]);(async()=>{h.value=await(await K()).data})(),(async(m=0)=>{const e=await(await Q()).data;Object.keys(a).forEach(o=>{e[o]!=null&&(a[o]=e[o])}),a.is_open=Boolean(Number(a.is_open)),c.value=!1})();const N=x({min:[{validator:(m,e,o)=>{Number(e)<.01?o(new Error(s("cashWithdrawalAmountHint"))):o()},trigger:"blur"}],rate:[{validator:(m,e,o)=>{Number(e)>100||Number(e)<0?o(new Error(s("commissionRatioHint"))):o()},trigger:"blur"}]}),R=async m=>{c.value||!m||await m.validate(e=>{if(e){const o={...a};o.is_open=Number(o.is_open).toString(),Z(o).then(()=>{c.value=!1}).catch(()=>{c.value=!1})}})};return(m,e)=>{const o=G,_=H,V=L,y=j,w=P,C=$,F=M,B=X,T=Y,z=q,A=J;return i(),E("div",ee,[b("div",ae,[b("span",te,u(r(k)),1)]),I((i(),d(T,{model:a,"label-width":"150px",ref_key:"ruleFormRef",ref:g,rules:N,class:"page-form"},{default:t(()=>[n(B,{class:"box-card !border-none",shadow:"never"},{default:t(()=>[n(_,{label:r(s)("isOpen")},{default:t(()=>[n(o,{modelValue:a.is_open,"onUpdate:modelValue":e[0]||(e[0]=l=>a.is_open=l)},null,8,["modelValue"])]),_:1},8,["label"]),a.is_open?(i(),d(_,{key:0,label:r(s)("cashWithdrawalAmount"),prop:"min"},{default:t(()=>[n(V,{modelValue:a.min,"onUpdate:modelValue":e[1]||(e[1]=l=>a.min=l),type:"number",class:"input-width",placeholder:r(s)("cashWithdrawalAmountPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])):f("",!0),a.is_open?(i(),d(_,{key:1,label:r(s)("commissionRatio"),prop:"rate"},{default:t(()=>[n(V,{modelValue:a.rate,"onUpdate:modelValue":e[2]||(e[2]=l=>a.rate=l),type:"number",class:"input-width",placeholder:r(s)("commissionRatioPlaceholder")},null,8,["modelValue","placeholder"]),oe]),_:1},8,["label"])):f("",!0),a.is_open?(i(),d(_,{key:2,label:r(s)("audit"),class:"items-center"},{default:t(()=>[n(w,{modelValue:a.is_auto_verify,"onUpdate:modelValue":e[3]||(e[3]=l=>a.is_auto_verify=l)},{default:t(()=>[n(y,{label:"0",size:"large"},{default:t(()=>[p(u(r(s)("manualAudit")),1)]),_:1}),n(y,{label:"1",size:"large"},{default:t(()=>[p(u(r(s)("automaticAudit")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"])):f("",!0),a.is_open?(i(),d(_,{key:3,label:r(s)("transfer"),class:"items-center"},{default:t(()=>[n(w,{modelValue:a.is_auto_transfer,"onUpdate:modelValue":e[4]||(e[4]=l=>a.is_auto_transfer=l)},{default:t(()=>[n(y,{label:"0",size:"large"},{default:t(()=>[p(u(r(s)("manualTransfer")),1)]),_:1}),n(y,{label:"1",size:"large"},{default:t(()=>[p(u(r(s)("automatedTransit")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"])):f("",!0),a.is_open?(i(),d(_,{key:4,label:r(s)("transferMode"),class:"items-center"},{default:t(()=>[n(F,{modelValue:a.transfer_type,"onUpdate:modelValue":e[5]||(e[5]=l=>a.transfer_type=l),size:"large"},{default:t(()=>[(i(!0),E(S,null,W(h.value,(l,U)=>(i(),d(C,{label:l.key,key:"a"+U},{default:t(()=>[p(u(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["label"])):f("",!0)]),_:1})]),_:1},8,["model","rules"])),[[A,c.value]]),b("div",le,[b("div",se,[n(z,{type:"primary",onClick:e[6]||(e[6]=l=>R(g.value))},{default:t(()=>[p(u(r(s)("save")),1)]),_:1})])])])}}});export{Ee as default};
import{d as D,O,r as v,n as x,h as i,c as E,a as b,t as u,u as r,y as I,I as d,w as t,e as n,N as s,B as f,i as p,F as S,G as W,aL as G,X as H,W as L,ay as j,az as P,aA as $,cN as M,_ as X,Y,E as q,$ as J}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import{b as K,H as Q,I as Z}from"./member-399a87da.js";const ee={class:"main-container"},ae={class:"flex ml-[18px] justify-between items-center mt-[20px]"},te={class:"text-[20px]"},oe=b("span",{class:"ml-2"},"%",-1),le={class:"fixed-footer-wrap"},se={class:"fixed-footer"},Ee=D({__name:"cash_out",setup(re){const k=O().meta.title,c=v(!0),g=v(),a=x({is_auto_transfer:"0",is_auto_verify:"0",is_open:"0",min:"0.01",rate:"0",transfer_type:[]}),h=v([]);(async()=>{h.value=await(await K()).data})(),(async(m=0)=>{const e=await(await Q()).data;Object.keys(a).forEach(o=>{e[o]!=null&&(a[o]=e[o])}),a.is_open=Boolean(Number(a.is_open)),c.value=!1})();const N=x({min:[{validator:(m,e,o)=>{Number(e)<.01?o(new Error(s("cashWithdrawalAmountHint"))):o()},trigger:"blur"}],rate:[{validator:(m,e,o)=>{Number(e)>100||Number(e)<0?o(new Error(s("commissionRatioHint"))):o()},trigger:"blur"}]}),R=async m=>{c.value||!m||await m.validate(e=>{if(e){const o={...a};o.is_open=Number(o.is_open).toString(),Z(o).then(()=>{c.value=!1}).catch(()=>{c.value=!1})}})};return(m,e)=>{const o=G,_=H,V=L,y=j,w=P,C=$,F=M,B=X,T=Y,z=q,A=J;return i(),E("div",ee,[b("div",ae,[b("span",te,u(r(k)),1)]),I((i(),d(T,{model:a,"label-width":"150px",ref_key:"ruleFormRef",ref:g,rules:N,class:"page-form"},{default:t(()=>[n(B,{class:"box-card !border-none",shadow:"never"},{default:t(()=>[n(_,{label:r(s)("isOpen")},{default:t(()=>[n(o,{modelValue:a.is_open,"onUpdate:modelValue":e[0]||(e[0]=l=>a.is_open=l)},null,8,["modelValue"])]),_:1},8,["label"]),a.is_open?(i(),d(_,{key:0,label:r(s)("cashWithdrawalAmount"),prop:"min"},{default:t(()=>[n(V,{modelValue:a.min,"onUpdate:modelValue":e[1]||(e[1]=l=>a.min=l),type:"number",class:"input-width",placeholder:r(s)("cashWithdrawalAmountPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])):f("",!0),a.is_open?(i(),d(_,{key:1,label:r(s)("commissionRatio"),prop:"rate"},{default:t(()=>[n(V,{modelValue:a.rate,"onUpdate:modelValue":e[2]||(e[2]=l=>a.rate=l),type:"number",class:"input-width",placeholder:r(s)("commissionRatioPlaceholder")},null,8,["modelValue","placeholder"]),oe]),_:1},8,["label"])):f("",!0),a.is_open?(i(),d(_,{key:2,label:r(s)("audit"),class:"items-center"},{default:t(()=>[n(w,{modelValue:a.is_auto_verify,"onUpdate:modelValue":e[3]||(e[3]=l=>a.is_auto_verify=l)},{default:t(()=>[n(y,{label:"0",size:"large"},{default:t(()=>[p(u(r(s)("manualAudit")),1)]),_:1}),n(y,{label:"1",size:"large"},{default:t(()=>[p(u(r(s)("automaticAudit")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"])):f("",!0),a.is_open?(i(),d(_,{key:3,label:r(s)("transfer"),class:"items-center"},{default:t(()=>[n(w,{modelValue:a.is_auto_transfer,"onUpdate:modelValue":e[4]||(e[4]=l=>a.is_auto_transfer=l)},{default:t(()=>[n(y,{label:"0",size:"large"},{default:t(()=>[p(u(r(s)("manualTransfer")),1)]),_:1}),n(y,{label:"1",size:"large"},{default:t(()=>[p(u(r(s)("automatedTransit")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"])):f("",!0),a.is_open?(i(),d(_,{key:4,label:r(s)("transferMode"),class:"items-center"},{default:t(()=>[n(F,{modelValue:a.transfer_type,"onUpdate:modelValue":e[5]||(e[5]=l=>a.transfer_type=l),size:"large"},{default:t(()=>[(i(!0),E(S,null,W(h.value,(l,U)=>(i(),d(C,{label:l.key,key:"a"+U},{default:t(()=>[p(u(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["label"])):f("",!0)]),_:1})]),_:1},8,["model","rules"])),[[A,c.value]]),b("div",le,[b("div",se,[n(z,{type:"primary",onClick:e[6]||(e[6]=l=>R(g.value))},{default:t(()=>[p(u(r(s)("save")),1)]),_:1})])])])}}});export{Ee as default};

View File

@ -1 +1 @@
import{d as S,O as k,r as m,n as q,aK as I,s as N,a3 as d,N as e,y as D,h as R,c as B,a as n,t as l,u as s,e as o,w as a,X as F,W as V,_ as L,Y as U,$,p as j,g as K}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import{q as M}from"./sys-dbdff24e.js";import{_ as O}from"./_plugin-vue_export-helper-c27b6911.js";const P=""+new URL("preview-52aad803.png",import.meta.url).href,W=r=>(j("data-v-13e767fe"),r=r(),K(),r),X={class:"main-container"},Y={class:"flex ml-[18px] justify-between items-center mt-[20px]"},z={class:"text-[20px]"},A=W(()=>n("img",{class:"w-[500px]",src:P,alt:""},null,-1)),G=S({__name:"config",setup(r){const f=k().meta.title,p=m(!0),t=q({is_open:!1,request_url:""}),v=m();M().then(c=>{t.request_url=c.data.web_url+"/",p.value=!1});const{copy:g,isSupported:w,copied:i}=I(),h=c=>{if(!w.value){d({message:e("notSupportCopy"),type:"warning"});return}g(c)};N(i,()=>{i.value&&d({message:e("copySuccess"),type:"success"})});const y=()=>{window.open(t.request_url)};return(c,_)=>{const u=F,x=V,b=L,C=U,E=$;return D((R(),B("div",X,[n("div",Y,[n("span",z,l(s(f)),1)]),o(C,{model:t,"label-width":"150px",ref_key:"formRef",ref:v,class:"page-form"},{default:a(()=>[o(b,{class:"box-card !border-none",shadow:"never"},{default:a(()=>[o(u,{label:s(e)("preview"),prop:"weapp_name"},{default:a(()=>[A]),_:1},8,["label"]),o(u,{label:s(e)("PCDomainName")},{default:a(()=>[o(x,{"model-value":t.request_url,class:"input-width",readonly:!0},{append:a(()=>[n("div",{class:"cursor-pointer",onClick:_[0]||(_[0]=J=>h(t.request_url))},l(s(e)("copy")),1)]),_:1},8,["model-value"]),n("span",{class:"ml-2 cursor-pointer visit-btn",onClick:y},l(s(e)("clickVisit")),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["model"])])),[[E,p.value]])}}});const ne=O(G,[["__scopeId","data-v-13e767fe"]]);export{ne as default};
import{d as S,O as k,r as m,n as q,aK as I,s as N,a3 as d,N as e,y as D,h as R,c as B,a as n,t as l,u as s,e as o,w as a,X as F,W as V,_ as L,Y as U,$,p as j,g as K}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import{q as M}from"./sys-e410b79c.js";import{_ as O}from"./_plugin-vue_export-helper-c27b6911.js";const P=""+new URL("preview-52aad803.png",import.meta.url).href,W=r=>(j("data-v-13e767fe"),r=r(),K(),r),X={class:"main-container"},Y={class:"flex ml-[18px] justify-between items-center mt-[20px]"},z={class:"text-[20px]"},A=W(()=>n("img",{class:"w-[500px]",src:P,alt:""},null,-1)),G=S({__name:"config",setup(r){const f=k().meta.title,p=m(!0),t=q({is_open:!1,request_url:""}),v=m();M().then(c=>{t.request_url=c.data.web_url+"/",p.value=!1});const{copy:g,isSupported:w,copied:i}=I(),h=c=>{if(!w.value){d({message:e("notSupportCopy"),type:"warning"});return}g(c)};N(i,()=>{i.value&&d({message:e("copySuccess"),type:"success"})});const y=()=>{window.open(t.request_url)};return(c,_)=>{const u=F,x=V,b=L,C=U,E=$;return D((R(),B("div",X,[n("div",Y,[n("span",z,l(s(f)),1)]),o(C,{model:t,"label-width":"150px",ref_key:"formRef",ref:v,class:"page-form"},{default:a(()=>[o(b,{class:"box-card !border-none",shadow:"never"},{default:a(()=>[o(u,{label:s(e)("preview"),prop:"weapp_name"},{default:a(()=>[A]),_:1},8,["label"]),o(u,{label:s(e)("PCDomainName")},{default:a(()=>[o(x,{"model-value":t.request_url,class:"input-width",readonly:!0},{append:a(()=>[n("div",{class:"cursor-pointer",onClick:_[0]||(_[0]=J=>h(t.request_url))},l(s(e)("copy")),1)]),_:1},8,["model-value"]),n("span",{class:"ml-2 cursor-pointer visit-btn",onClick:y},l(s(e)("clickVisit")),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["model"])])),[[E,p.value]])}}});const ne=O(G,[["__scopeId","data-v-13e767fe"]]);export{ne as default};

View File

@ -1 +1 @@
import{a2 as y,d as D,O as I,r as v,n as F,aK as O,s as R,a3 as g,N as a,h,c as $,a as n,t as u,u as l,y as j,I as H,w as i,e as r,i as L,aL as M,X as U,W as K,_ as T,Y as W,E as X,$ as Y}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import{q as z}from"./sys-dbdff24e.js";import{_ as A}from"./_plugin-vue_export-helper-c27b6911.js";function G(){return y.get("channel/h5/config")}function J(_){return y.put("channel/h5/config",_,{showSuccessMessage:!0})}const P={class:"main-container"},Q={class:"flex ml-[18px] justify-between items-center mt-[20px]"},Z={class:"text-[20px]"},ee={class:"fixed-footer-wrap"},te={class:"fixed-footer"},oe=D({__name:"config",setup(_){const w=I().meta.title,s=v(!0),e=F({is_open:!0,request_url:""}),d=v();G().then(t=>{Object.assign(e,t.data),e.is_open=Boolean(Number(e.is_open)),s.value=!1}),z().then(t=>{e.request_url=t.data.wap_url+"/"});const{copy:x,isSupported:b,copied:m}=O(),C=t=>{if(!b.value){g({message:a("notSupportCopy"),type:"warning"});return}x(t)};R(m,()=>{m.value&&g({message:a("copySuccess"),type:"success"})});const E=()=>{window.open(e.request_url)},k=async t=>{s.value||!t||await t.validate(async o=>{if(o){s.value=!0;const c={...e};c.is_open=Number(c.is_open),J(c).then(()=>{s.value=!1}).catch(()=>{s.value=!1})}})};return(t,o)=>{const c=M,f=U,N=K,q=T,V=W,B=X,S=Y;return h(),$("div",P,[n("div",Q,[n("span",Z,u(l(w)),1)]),j((h(),H(V,{model:e,"label-width":"150px",ref_key:"formRef",ref:d,class:"page-form"},{default:i(()=>[r(q,{class:"box-card !border-none",shadow:"never"},{default:i(()=>[r(f,{label:l(a)("isOpen")},{default:i(()=>[r(c,{modelValue:e.is_open,"onUpdate:modelValue":o[0]||(o[0]=p=>e.is_open=p)},null,8,["modelValue"])]),_:1},8,["label"]),r(f,{label:l(a)("h5DomainName")},{default:i(()=>[r(N,{"model-value":e.request_url,class:"input-width",readonly:!0},{append:i(()=>[n("div",{class:"cursor-pointer",onClick:o[1]||(o[1]=p=>C(e.request_url))},u(l(a)("copy")),1)]),_:1},8,["model-value"]),n("span",{class:"ml-2 cursor-pointer visit-btn",onClick:E},u(l(a)("clickVisit")),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["model"])),[[S,s.value]]),n("div",ee,[n("div",te,[r(B,{type:"primary",loading:s.value,onClick:o[2]||(o[2]=p=>k(d.value))},{default:i(()=>[L(u(l(a)("save")),1)]),_:1},8,["loading"])])])])}}});const me=A(oe,[["__scopeId","data-v-69e17aca"]]);export{me as default};
import{a2 as y,d as D,O as I,r as v,n as F,aK as O,s as R,a3 as g,N as a,h,c as $,a as n,t as u,u as l,y as j,I as H,w as i,e as r,i as L,aL as M,X as U,W as K,_ as T,Y as W,E as X,$ as Y}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import{q as z}from"./sys-e410b79c.js";import{_ as A}from"./_plugin-vue_export-helper-c27b6911.js";function G(){return y.get("channel/h5/config")}function J(_){return y.put("channel/h5/config",_,{showSuccessMessage:!0})}const P={class:"main-container"},Q={class:"flex ml-[18px] justify-between items-center mt-[20px]"},Z={class:"text-[20px]"},ee={class:"fixed-footer-wrap"},te={class:"fixed-footer"},oe=D({__name:"config",setup(_){const w=I().meta.title,s=v(!0),e=F({is_open:!0,request_url:""}),d=v();G().then(t=>{Object.assign(e,t.data),e.is_open=Boolean(Number(e.is_open)),s.value=!1}),z().then(t=>{e.request_url=t.data.wap_url+"/"});const{copy:x,isSupported:b,copied:m}=O(),C=t=>{if(!b.value){g({message:a("notSupportCopy"),type:"warning"});return}x(t)};R(m,()=>{m.value&&g({message:a("copySuccess"),type:"success"})});const E=()=>{window.open(e.request_url)},k=async t=>{s.value||!t||await t.validate(async o=>{if(o){s.value=!0;const c={...e};c.is_open=Number(c.is_open),J(c).then(()=>{s.value=!1}).catch(()=>{s.value=!1})}})};return(t,o)=>{const c=M,f=U,N=K,q=T,V=W,B=X,S=Y;return h(),$("div",P,[n("div",Q,[n("span",Z,u(l(w)),1)]),j((h(),H(V,{model:e,"label-width":"150px",ref_key:"formRef",ref:d,class:"page-form"},{default:i(()=>[r(q,{class:"box-card !border-none",shadow:"never"},{default:i(()=>[r(f,{label:l(a)("isOpen")},{default:i(()=>[r(c,{modelValue:e.is_open,"onUpdate:modelValue":o[0]||(o[0]=p=>e.is_open=p)},null,8,["modelValue"])]),_:1},8,["label"]),r(f,{label:l(a)("h5DomainName")},{default:i(()=>[r(N,{"model-value":e.request_url,class:"input-width",readonly:!0},{append:i(()=>[n("div",{class:"cursor-pointer",onClick:o[1]||(o[1]=p=>C(e.request_url))},u(l(a)("copy")),1)]),_:1},8,["model-value"]),n("span",{class:"ml-2 cursor-pointer visit-btn",onClick:E},u(l(a)("clickVisit")),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["model"])),[[S,s.value]]),n("div",ee,[n("div",te,[r(B,{type:"primary",loading:s.value,onClick:o[2]||(o[2]=p=>k(d.value))},{default:i(()=>[L(u(l(a)("save")),1)]),_:1},8,["loading"])])])])}}});const me=A(oe,[["__scopeId","data-v-69e17aca"]]);export{me as default};

View File

@ -1 +1 @@
import{d as k,r as g,n as f,N as o,h as v,c as U,y as E,I as P,w as i,e as a,a as c,t as u,u as t,i as D,X as N,W as R,_ as C,Y as B,E as F,$ as I}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import{_ as L}from"./index-34e6dc3a.js";import{Q as S,R as O}from"./sys-dbdff24e.js";/* empty css */import"./index.vue_vue_type_style_index_0_lang-4806f3ef.js";/* empty css */import"./attachment-b6d6fc85.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-6089139d.js";/* empty css */import"./_plugin-vue_export-helper-c27b6911.js";const $={class:"main-container"},j={class:"panel-title !text-sm"},q={class:"panel-title !text-sm"},Q={class:"fixed-footer-wrap"},T={class:"fixed-footer"},Ve=k({__name:"copyright",setup(W){const n=g(!0),l=f({icp:"",gov_record:"",gov_url:"",market_supervision_url:"",logo:"",company_name:"",copyright_link:"",copyright_desc:""});(async(m=0)=>{const e=await(await S()).data;Object.keys(l).forEach(p=>{e[p]!=null&&(l[p]=e[p])}),n.value=!1})();const _=g(),b=f({site_name:[{required:!0,message:o("siteNamePlaceholder"),trigger:"blur"}]}),y=async m=>{n.value||!m||await m.validate(async e=>{e&&(n.value=!0,O(l).then(()=>{n.value=!1}).catch(()=>{n.value=!1}))})};return(m,e)=>{const p=L,d=N,s=R,h=C,V=B,w=F,x=I;return v(),U("div",$,[E((v(),P(V,{model:l,"label-width":"150px",ref_key:"formRef",ref:_,rules:b,class:"page-form"},{default:i(()=>[a(h,{class:"box-card !border-none",shadow:"never"},{default:i(()=>[c("h3",j,u(t(o)("copyrightEdit")),1),a(d,{label:t(o)("logo")},{default:i(()=>[a(p,{modelValue:l.logo,"onUpdate:modelValue":e[0]||(e[0]=r=>l.logo=r)},null,8,["modelValue"])]),_:1},8,["label"]),a(d,{label:t(o)("companyName"),prop:"company_name"},{default:i(()=>[a(s,{modelValue:l.company_name,"onUpdate:modelValue":e[1]||(e[1]=r=>l.company_name=r),placeholder:t(o)("companyNamePlaceholder"),class:"input-width",clearable:"",maxlength:"30"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(d,{label:t(o)("copyrightLink")},{default:i(()=>[a(s,{modelValue:l.copyright_link,"onUpdate:modelValue":e[2]||(e[2]=r=>l.copyright_link=r),placeholder:t(o)("copyrightLinkPlaceholder"),class:"input-width",clearable:""},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(d,{label:t(o)("copyrightDesc")},{default:i(()=>[a(s,{modelValue:l.copyright_desc,"onUpdate:modelValue":e[3]||(e[3]=r=>l.copyright_desc=r),type:"textarea",rows:"4",clearable:"",placeholder:t(o)("copyrightDescPlaceholder"),class:"input-width",maxlength:"150"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1}),a(h,{class:"box-card !border-none mt-[16px]",shadow:"never"},{default:i(()=>[c("h3",q,u(t(o)("putOnRecordEdit")),1),a(d,{label:t(o)("icp"),prop:"icp"},{default:i(()=>[a(s,{modelValue:l.icp,"onUpdate:modelValue":e[4]||(e[4]=r=>l.icp=r),placeholder:t(o)("icpPlaceholder"),class:"input-width",clearable:"",maxlength:"20"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(d,{label:t(o)("govRecord")},{default:i(()=>[a(s,{modelValue:l.gov_record,"onUpdate:modelValue":e[5]||(e[5]=r=>l.gov_record=r),placeholder:t(o)("govRecordPlaceholder"),class:"input-width",clearable:"",maxlength:"50"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(d,{label:t(o)("govUrl")},{default:i(()=>[a(s,{modelValue:l.gov_url,"onUpdate:modelValue":e[6]||(e[6]=r=>l.gov_url=r),placeholder:t(o)("govUrlPlaceholder"),class:"input-width",clearable:""},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(d,{label:t(o)("marketSupervisionUrl")},{default:i(()=>[a(s,{modelValue:l.market_supervision_url,"onUpdate:modelValue":e[7]||(e[7]=r=>l.market_supervision_url=r),rows:"4",clearable:"",placeholder:t(o)("marketSupervisionUrlPlaceholder"),class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["model","rules"])),[[x,n.value]]),c("div",Q,[c("div",T,[a(w,{type:"primary",loading:n.value,onClick:e[8]||(e[8]=r=>y(_.value))},{default:i(()=>[D(u(t(o)("save")),1)]),_:1},8,["loading"])])])])}}});export{Ve as default};
import{d as k,r as g,n as f,N as o,h as v,c as U,y as E,I as P,w as i,e as a,a as c,t as u,u as t,i as D,X as N,W as R,_ as C,Y as B,E as F,$ as I}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import{_ as L}from"./index-c520c584.js";import{Q as S,R as O}from"./sys-e410b79c.js";/* empty css */import"./index.vue_vue_type_style_index_0_lang-59777cba.js";/* empty css */import"./attachment-872c2aec.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-861395e6.js";/* empty css */import"./_plugin-vue_export-helper-c27b6911.js";const $={class:"main-container"},j={class:"panel-title !text-sm"},q={class:"panel-title !text-sm"},Q={class:"fixed-footer-wrap"},T={class:"fixed-footer"},Ve=k({__name:"copyright",setup(W){const n=g(!0),l=f({icp:"",gov_record:"",gov_url:"",market_supervision_url:"",logo:"",company_name:"",copyright_link:"",copyright_desc:""});(async(m=0)=>{const e=await(await S()).data;Object.keys(l).forEach(p=>{e[p]!=null&&(l[p]=e[p])}),n.value=!1})();const _=g(),b=f({site_name:[{required:!0,message:o("siteNamePlaceholder"),trigger:"blur"}]}),y=async m=>{n.value||!m||await m.validate(async e=>{e&&(n.value=!0,O(l).then(()=>{n.value=!1}).catch(()=>{n.value=!1}))})};return(m,e)=>{const p=L,d=N,s=R,h=C,V=B,w=F,x=I;return v(),U("div",$,[E((v(),P(V,{model:l,"label-width":"150px",ref_key:"formRef",ref:_,rules:b,class:"page-form"},{default:i(()=>[a(h,{class:"box-card !border-none",shadow:"never"},{default:i(()=>[c("h3",j,u(t(o)("copyrightEdit")),1),a(d,{label:t(o)("logo")},{default:i(()=>[a(p,{modelValue:l.logo,"onUpdate:modelValue":e[0]||(e[0]=r=>l.logo=r)},null,8,["modelValue"])]),_:1},8,["label"]),a(d,{label:t(o)("companyName"),prop:"company_name"},{default:i(()=>[a(s,{modelValue:l.company_name,"onUpdate:modelValue":e[1]||(e[1]=r=>l.company_name=r),placeholder:t(o)("companyNamePlaceholder"),class:"input-width",clearable:"",maxlength:"30"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(d,{label:t(o)("copyrightLink")},{default:i(()=>[a(s,{modelValue:l.copyright_link,"onUpdate:modelValue":e[2]||(e[2]=r=>l.copyright_link=r),placeholder:t(o)("copyrightLinkPlaceholder"),class:"input-width",clearable:""},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(d,{label:t(o)("copyrightDesc")},{default:i(()=>[a(s,{modelValue:l.copyright_desc,"onUpdate:modelValue":e[3]||(e[3]=r=>l.copyright_desc=r),type:"textarea",rows:"4",clearable:"",placeholder:t(o)("copyrightDescPlaceholder"),class:"input-width",maxlength:"150"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1}),a(h,{class:"box-card !border-none mt-[16px]",shadow:"never"},{default:i(()=>[c("h3",q,u(t(o)("putOnRecordEdit")),1),a(d,{label:t(o)("icp"),prop:"icp"},{default:i(()=>[a(s,{modelValue:l.icp,"onUpdate:modelValue":e[4]||(e[4]=r=>l.icp=r),placeholder:t(o)("icpPlaceholder"),class:"input-width",clearable:"",maxlength:"20"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(d,{label:t(o)("govRecord")},{default:i(()=>[a(s,{modelValue:l.gov_record,"onUpdate:modelValue":e[5]||(e[5]=r=>l.gov_record=r),placeholder:t(o)("govRecordPlaceholder"),class:"input-width",clearable:"",maxlength:"50"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(d,{label:t(o)("govUrl")},{default:i(()=>[a(s,{modelValue:l.gov_url,"onUpdate:modelValue":e[6]||(e[6]=r=>l.gov_url=r),placeholder:t(o)("govUrlPlaceholder"),class:"input-width",clearable:""},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(d,{label:t(o)("marketSupervisionUrl")},{default:i(()=>[a(s,{modelValue:l.market_supervision_url,"onUpdate:modelValue":e[7]||(e[7]=r=>l.market_supervision_url=r),rows:"4",clearable:"",placeholder:t(o)("marketSupervisionUrlPlaceholder"),class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["model","rules"])),[[x,n.value]]),c("div",Q,[c("div",T,[a(w,{type:"primary",loading:n.value,onClick:e[8]||(e[8]=r=>y(_.value))},{default:i(()=>[D(u(t(o)("save")),1)]),_:1},8,["loading"])])])])}}});export{Ve as default};

View File

@ -1 +1 @@
import{d as w,O as u,f,r as g,n as v,h as y,c as b,a as t,u as s,t as e,N as n,e as c,w as r,i as o,E as T,_ as k}from"./index-b19d04dd.js";/* empty css *//* empty css */import{g as E}from"./wechat-1d393ae2.js";const O=""+new URL("wechat_1-0a26d3a6.png",import.meta.url).href,R=""+new URL("wechat_4-94a271d5.png",import.meta.url).href,C=""+new URL("wechat_2-0513f476.png",import.meta.url).href,j=""+new URL("wechat_3-0a96f3fe.png",import.meta.url).href,L={class:"main-container"},N={class:"detail-head"},U=t("span",{class:"iconfont iconxiangzuojiantou !text-xs"},null,-1),B={class:"ml-[1px]"},q=t("span",{class:"adorn"},"|",-1),V={class:"right"},D={class:"mt-[20px]"},P={class:"flex"},S=t("div",{class:"min-w-[60px]"},[t("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"1")],-1),z={class:"flex items-center text-[14px]"},A=t("span",{class:"text-primary"},"URL / Token / EncondingAESKey",-1),K=t("div",{class:"w-[100%] mt-[10px]"},[t("img",{class:"w-[100%]",src:O})],-1),W={class:"flex items-center text-[14px] mt-[20px]"},$=t("div",{class:"w-[100%] mt-[10px]"},[t("img",{class:"w-[100%]",src:R})],-1),F={class:"flex mt-[40px]"},G=t("div",{class:"min-w-[60px]"},[t("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"2")],-1),H={class:"flex items-center text-[14px]"},I=t("div",{class:"w-[100%] mt-[10px]"},[t("img",{class:"w-[100%]",src:C})],-1),J={class:"flex mt-[40px]"},M=t("div",{class:"min-w-[60px]"},[t("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"3")],-1),Q={class:"flex items-center text-[14px]"},X={class:"text-primary"},Y=t("div",{class:"w-[100%] mt-[10px]"},[t("img",{class:"w-[100%]",src:j})],-1),at=w({__name:"course",setup(Z){const p=u().meta.title,_=f(),l=g(!0),d=v({wechat_name:"",wechat_original:"",app_id:"",app_secret:"",qr_code:"",token:"",encoding_aes_key:"",encryption_type:"not_encrypt"});E().then(i=>{Object.assign(d,i.data),l.value=!1});const m=()=>{window.open("https://mp.weixin.qq.com/","_blank")};return(i,a)=>{const x=T,h=k;return y(),b("div",L,[t("div",N,[t("div",{class:"left",onClick:a[0]||(a[0]=st=>s(_).push({path:"/channel/wechat"}))},[U,t("span",B,e(s(n)("returnToPreviousPage")),1)]),q,t("span",V,e(s(p)),1)]),c(h,{class:"box-card !border-none",shadow:"never"},{default:r(()=>[t("div",D,[t("div",P,[S,t("div",null,[t("p",z,[o(e(s(n)("writingTipsOne1"))+"--",1),c(x,{link:"",type:"primary",onClick:m},{default:r(()=>[o(e(s(n)("writingTipsOne2")),1)]),_:1}),o(", "+e(s(n)("writingTipsOne3")),1),A,o(e(s(n)("writingTipsOne4")),1)]),K,t("p",W,e(s(n)("writingTipsOne5")),1),$])]),t("div",F,[G,t("div",null,[t("p",H,e(s(n)("writingTipsTwo1")),1),I])]),t("div",J,[M,t("div",null,[t("p",Q,[o(e(s(n)("writingTipsThree1")),1),t("span",X,e(s(n)("writingTipsThree2")),1)]),Y])])])]),_:1})])}}});export{at as default};
import{d as w,O as u,f,r as g,n as v,h as y,c as b,a as t,u as s,t as e,N as n,e as c,w as r,i as o,E as T,_ as k}from"./index-4ce69858.js";/* empty css *//* empty css */import{g as E}from"./wechat-bce3215c.js";const O=""+new URL("wechat_1-0a26d3a6.png",import.meta.url).href,R=""+new URL("wechat_4-94a271d5.png",import.meta.url).href,C=""+new URL("wechat_2-0513f476.png",import.meta.url).href,j=""+new URL("wechat_3-0a96f3fe.png",import.meta.url).href,L={class:"main-container"},N={class:"detail-head"},U=t("span",{class:"iconfont iconxiangzuojiantou !text-xs"},null,-1),B={class:"ml-[1px]"},q=t("span",{class:"adorn"},"|",-1),V={class:"right"},D={class:"mt-[20px]"},P={class:"flex"},S=t("div",{class:"min-w-[60px]"},[t("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"1")],-1),z={class:"flex items-center text-[14px]"},A=t("span",{class:"text-primary"},"URL / Token / EncondingAESKey",-1),K=t("div",{class:"w-[100%] mt-[10px]"},[t("img",{class:"w-[100%]",src:O})],-1),W={class:"flex items-center text-[14px] mt-[20px]"},$=t("div",{class:"w-[100%] mt-[10px]"},[t("img",{class:"w-[100%]",src:R})],-1),F={class:"flex mt-[40px]"},G=t("div",{class:"min-w-[60px]"},[t("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"2")],-1),H={class:"flex items-center text-[14px]"},I=t("div",{class:"w-[100%] mt-[10px]"},[t("img",{class:"w-[100%]",src:C})],-1),J={class:"flex mt-[40px]"},M=t("div",{class:"min-w-[60px]"},[t("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"3")],-1),Q={class:"flex items-center text-[14px]"},X={class:"text-primary"},Y=t("div",{class:"w-[100%] mt-[10px]"},[t("img",{class:"w-[100%]",src:j})],-1),at=w({__name:"course",setup(Z){const p=u().meta.title,_=f(),l=g(!0),d=v({wechat_name:"",wechat_original:"",app_id:"",app_secret:"",qr_code:"",token:"",encoding_aes_key:"",encryption_type:"not_encrypt"});E().then(i=>{Object.assign(d,i.data),l.value=!1});const m=()=>{window.open("https://mp.weixin.qq.com/","_blank")};return(i,a)=>{const x=T,h=k;return y(),b("div",L,[t("div",N,[t("div",{class:"left",onClick:a[0]||(a[0]=st=>s(_).push({path:"/channel/wechat"}))},[U,t("span",B,e(s(n)("returnToPreviousPage")),1)]),q,t("span",V,e(s(p)),1)]),c(h,{class:"box-card !border-none",shadow:"never"},{default:r(()=>[t("div",D,[t("div",P,[S,t("div",null,[t("p",z,[o(e(s(n)("writingTipsOne1"))+"--",1),c(x,{link:"",type:"primary",onClick:m},{default:r(()=>[o(e(s(n)("writingTipsOne2")),1)]),_:1}),o(", "+e(s(n)("writingTipsOne3")),1),A,o(e(s(n)("writingTipsOne4")),1)]),K,t("p",W,e(s(n)("writingTipsOne5")),1),$])]),t("div",F,[G,t("div",null,[t("p",H,e(s(n)("writingTipsTwo1")),1),I])]),t("div",J,[M,t("div",null,[t("p",Q,[o(e(s(n)("writingTipsThree1")),1),t("span",X,e(s(n)("writingTipsThree2")),1)]),Y])])])]),_:1})])}}});export{at as default};

View File

@ -1 +1 @@
import{d as m,O as h,f as u,h as w,c as f,a as s,u as t,t as e,N as n,e as r,w as a,i,E as v,_ as g}from"./index-b19d04dd.js";/* empty css *//* empty css */const y=""+new URL("weapp_1-7017a047.png",import.meta.url).href,b=""+new URL("weapp_2-8fac7fa5.png",import.meta.url).href,T=""+new URL("weapp_3-07a2249e.png",import.meta.url).href,k=""+new URL("weapp_4-d837a9b1.png",import.meta.url).href,E={class:"main-container"},R={class:"detail-head"},j=s("span",{class:"iconfont iconxiangzuojiantou !text-xs"},null,-1),C={class:"ml-[1px]"},L=s("span",{class:"adorn"},"|",-1),N={class:"right"},U={class:"mt-[20px]"},B={class:"flex"},O=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"1")],-1),V={class:"flex items-center text-[14px]"},q=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:y})],-1),F={class:"flex mt-[40px]"},P=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"2")],-1),S={class:"flex items-center text-[14px]"},z=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:b})],-1),A={class:"flex mt-[40px]"},D=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"3")],-1),K={class:"flex items-center text-[14px]"},$={class:"text-primary"},G=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:T})],-1),H={class:"flex mt-[40px]"},I=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"4")],-1),J={class:"flex items-center text-[14px]"},M=s("span",{class:"text-primary"},"URL / Token / EncondingAESKey",-1),Q=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:k})],-1),es=m({__name:"course",setup(W){const c=h(),p=u(),l=c.meta.title,d=()=>{window.open("https://mp.weixin.qq.com/","_blank")};return(X,o)=>{const _=v,x=g;return w(),f("div",E,[s("div",R,[s("div",{class:"left",onClick:o[0]||(o[0]=Y=>t(p).push({path:"/channel/weapp"}))},[j,s("span",C,e(t(n)("returnToPreviousPage")),1)]),L,s("span",N,e(t(l)),1)]),r(x,{class:"box-card !border-none",shadow:"never"},{default:a(()=>[s("div",U,[s("div",B,[O,s("div",null,[s("p",V,[i(e(t(n)("writingTipsOne1")),1),r(_,{link:"",type:"primary",onClick:d},{default:a(()=>[i(e(t(n)("writingTipsOne2")),1)]),_:1}),i(","+e(t(n)("writingTipsOne3")),1)]),q])]),s("div",F,[P,s("div",null,[s("p",S,e(t(n)("writingTipsTwo1")),1),z])]),s("div",A,[D,s("div",null,[s("p",K,[i(e(t(n)("writingTipsThree1")),1),s("span",$,e(t(n)("writingTipsThree2")),1)]),G])]),s("div",H,[I,s("div",null,[s("p",J,[i(e(t(n)("writingTipsFour1")),1),M,i(e(t(n)("writingTipsFour2")),1)]),Q])])])]),_:1})])}}});export{es as default};
import{d as m,O as h,f as u,h as w,c as f,a as s,u as t,t as e,N as n,e as r,w as a,i,E as v,_ as g}from"./index-4ce69858.js";/* empty css *//* empty css */const y=""+new URL("weapp_1-7017a047.png",import.meta.url).href,b=""+new URL("weapp_2-8fac7fa5.png",import.meta.url).href,T=""+new URL("weapp_3-07a2249e.png",import.meta.url).href,k=""+new URL("weapp_4-d837a9b1.png",import.meta.url).href,E={class:"main-container"},R={class:"detail-head"},j=s("span",{class:"iconfont iconxiangzuojiantou !text-xs"},null,-1),C={class:"ml-[1px]"},L=s("span",{class:"adorn"},"|",-1),N={class:"right"},U={class:"mt-[20px]"},B={class:"flex"},O=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"1")],-1),V={class:"flex items-center text-[14px]"},q=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:y})],-1),F={class:"flex mt-[40px]"},P=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"2")],-1),S={class:"flex items-center text-[14px]"},z=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:b})],-1),A={class:"flex mt-[40px]"},D=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"3")],-1),K={class:"flex items-center text-[14px]"},$={class:"text-primary"},G=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:T})],-1),H={class:"flex mt-[40px]"},I=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"4")],-1),J={class:"flex items-center text-[14px]"},M=s("span",{class:"text-primary"},"URL / Token / EncondingAESKey",-1),Q=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:k})],-1),es=m({__name:"course",setup(W){const c=h(),p=u(),l=c.meta.title,d=()=>{window.open("https://mp.weixin.qq.com/","_blank")};return(X,o)=>{const _=v,x=g;return w(),f("div",E,[s("div",R,[s("div",{class:"left",onClick:o[0]||(o[0]=Y=>t(p).push({path:"/channel/weapp"}))},[j,s("span",C,e(t(n)("returnToPreviousPage")),1)]),L,s("span",N,e(t(l)),1)]),r(x,{class:"box-card !border-none",shadow:"never"},{default:a(()=>[s("div",U,[s("div",B,[O,s("div",null,[s("p",V,[i(e(t(n)("writingTipsOne1")),1),r(_,{link:"",type:"primary",onClick:d},{default:a(()=>[i(e(t(n)("writingTipsOne2")),1)]),_:1}),i(","+e(t(n)("writingTipsOne3")),1)]),q])]),s("div",F,[P,s("div",null,[s("p",S,e(t(n)("writingTipsTwo1")),1),z])]),s("div",A,[D,s("div",null,[s("p",K,[i(e(t(n)("writingTipsThree1")),1),s("span",$,e(t(n)("writingTipsThree2")),1)]),G])]),s("div",H,[I,s("div",null,[s("p",J,[i(e(t(n)("writingTipsFour1")),1),M,i(e(t(n)("writingTipsFour2")),1)]),Q])])])]),_:1})])}}});export{es as default};

View File

@ -1 +1 @@
import{d as g,O as y,f as v,r as b,n as C,h as R,c as T,a as s,u as t,t as e,N as a,e as o,w as i,i as c,E as k,am as L,an as U,_ as j}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css */import{g as E}from"./wechat-1d393ae2.js";const N=""+new URL("alipay1-029c00a2.png",import.meta.url).href,O=""+new URL("alipay2-f74219b9.png",import.meta.url).href,B=""+new URL("alipay3-0895ce6e.png",import.meta.url).href,V=""+new URL("alipay4-92fef352.png",import.meta.url).href,D=""+new URL("alipay4_1-ad9b08e3.jpg",import.meta.url).href,P=""+new URL("alipay4_2-cbaa820b.jpg",import.meta.url).href,q=""+new URL("alipay4_3-4a213289.jpg",import.meta.url).href,z=""+new URL("alipay4_4-7924cbdd.jpg",import.meta.url).href,S=""+new URL("alipay5-6dba1989.png",import.meta.url).href,W=""+new URL("alipay6-f1e18995.png",import.meta.url).href,$=""+new URL("alipay7-c805d7c0.png",import.meta.url).href,A=""+new URL("alipay8-3097d150.png",import.meta.url).href,F={class:"main-container"},G={class:"detail-head"},H=s("span",{class:"iconfont iconxiangzuojiantou !text-xs"},null,-1),I={class:"ml-[1px]"},J=s("span",{class:"adorn"},"|",-1),K={class:"right"},M={class:"mt-[20px]"},Q={class:"flex"},X=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"1")],-1),Y={class:"flex items-center text-[14px]"},Z=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:N})],-1),ss={class:"flex items-center text-[14px] mt-[20px]"},ts=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:O})],-1),es=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:B})],-1),as={class:"flex mt-[40px]"},os=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"2")],-1),is={class:"flex items-center text-[14px]"},ns={class:"w-[100%] mt-[10px] flex flex-wrap"},cs=s("div",{class:"w-[100%]"},[s("img",{class:"w-[100%]",src:V})],-1),rs=s("div",{class:"w-[100%]"},[s("img",{class:"w-[100%]",src:D})],-1),ps=s("div",{class:"w-[100%]"},[s("img",{class:"w-[100%]",src:P})],-1),ls=s("div",{class:"w-[100%]"},[s("img",{class:"w-[100%]",src:q})],-1),_s=s("div",{class:"w-[100%]"},[s("img",{class:"w-[100%]",src:z})],-1),ds={class:"flex mt-[40px]"},ms=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"3")],-1),xs={class:"flex items-center text-[14px]"},hs=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:S})],-1),us=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:W})],-1),ws={class:"flex items-center text-[14px] mt-[20px]"},fs=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:$})],-1),gs={class:"flex items-center text-[14px] mt-[20px]"},ys=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:A})],-1),Us=g({__name:"course",setup(vs){const l=y(),_=v(),d=l.meta.title,m=b(!0),x=C({wechat_name:"",wechat_original:"",app_id:"",app_secret:"",qr_code:"",token:"",encoding_aes_key:"",encryption_type:"not_encrypt"});E().then(r=>{Object.assign(x,r.data),m.value=!1});const h=()=>{window.open("https://open.alipay.com/develop/manage","_blank")};return(r,p)=>{const u=k,n=L,w=U,f=j;return R(),T("div",F,[s("div",G,[s("div",{class:"left",onClick:p[0]||(p[0]=bs=>t(_).push({path:"/channel/aliapp"}))},[H,s("span",I,e(t(a)("returnToPreviousPage")),1)]),J,s("span",K,e(t(d)),1)]),o(f,{class:"box-card !border-none",shadow:"never"},{default:i(()=>[s("div",M,[s("div",Q,[X,s("div",null,[s("p",Y,[c(e(t(a)("alipayCourseTipsOne1"))+"--",1),o(u,{link:"",type:"primary",onClick:h},{default:i(()=>[c(e(t(a)("alipayCourseTipsOne2")),1)]),_:1}),c(", "+e(t(a)("alipayCourseTipsOne3")),1)]),Z,s("p",ss,e(t(a)("alipayCourseTipsTwo1")),1),ts,es])]),s("div",as,[os,s("div",null,[s("p",is,e(t(a)("alipayCourseTipsTwo2")),1),s("div",ns,[cs,s("div",null,[o(w,{gutter:20},{default:i(()=>[o(n,{span:6},{default:i(()=>[rs]),_:1}),o(n,{span:6},{default:i(()=>[ps]),_:1}),o(n,{span:6},{default:i(()=>[ls]),_:1}),o(n,{span:6},{default:i(()=>[_s]),_:1})]),_:1})])])])]),s("div",ds,[ms,s("div",null,[s("p",xs,e(t(a)("alipayCourseTipsThree1")),1),hs,us,s("p",ws,e(t(a)("alipayCourseTipsThree2")),1),fs,s("p",gs,e(t(a)("alipayCourseTipsThree3")),1),ys])])])]),_:1})])}}});export{Us as default};
import{d as g,O as y,f as v,r as b,n as C,h as R,c as T,a as s,u as t,t as e,N as a,e as o,w as i,i as c,E as k,an as L,ao as U,_ as j}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css */import{g as E}from"./wechat-bce3215c.js";const N=""+new URL("alipay1-029c00a2.png",import.meta.url).href,O=""+new URL("alipay2-f74219b9.png",import.meta.url).href,B=""+new URL("alipay3-0895ce6e.png",import.meta.url).href,V=""+new URL("alipay4-92fef352.png",import.meta.url).href,D=""+new URL("alipay4_1-ad9b08e3.jpg",import.meta.url).href,P=""+new URL("alipay4_2-cbaa820b.jpg",import.meta.url).href,q=""+new URL("alipay4_3-4a213289.jpg",import.meta.url).href,z=""+new URL("alipay4_4-7924cbdd.jpg",import.meta.url).href,S=""+new URL("alipay5-6dba1989.png",import.meta.url).href,W=""+new URL("alipay6-f1e18995.png",import.meta.url).href,$=""+new URL("alipay7-c805d7c0.png",import.meta.url).href,A=""+new URL("alipay8-3097d150.png",import.meta.url).href,F={class:"main-container"},G={class:"detail-head"},H=s("span",{class:"iconfont iconxiangzuojiantou !text-xs"},null,-1),I={class:"ml-[1px]"},J=s("span",{class:"adorn"},"|",-1),K={class:"right"},M={class:"mt-[20px]"},Q={class:"flex"},X=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"1")],-1),Y={class:"flex items-center text-[14px]"},Z=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:N})],-1),ss={class:"flex items-center text-[14px] mt-[20px]"},ts=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:O})],-1),es=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:B})],-1),as={class:"flex mt-[40px]"},os=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"2")],-1),is={class:"flex items-center text-[14px]"},ns={class:"w-[100%] mt-[10px] flex flex-wrap"},cs=s("div",{class:"w-[100%]"},[s("img",{class:"w-[100%]",src:V})],-1),rs=s("div",{class:"w-[100%]"},[s("img",{class:"w-[100%]",src:D})],-1),ps=s("div",{class:"w-[100%]"},[s("img",{class:"w-[100%]",src:P})],-1),ls=s("div",{class:"w-[100%]"},[s("img",{class:"w-[100%]",src:q})],-1),_s=s("div",{class:"w-[100%]"},[s("img",{class:"w-[100%]",src:z})],-1),ds={class:"flex mt-[40px]"},ms=s("div",{class:"min-w-[60px]"},[s("span",{class:"flex justify-center items-center block w-[40px] h-[40px] border-[1px] border-primary rounded-[999px] text-primary"},"3")],-1),xs={class:"flex items-center text-[14px]"},hs=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:S})],-1),us=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:W})],-1),ws={class:"flex items-center text-[14px] mt-[20px]"},fs=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:$})],-1),gs={class:"flex items-center text-[14px] mt-[20px]"},ys=s("div",{class:"w-[100%] mt-[10px]"},[s("img",{class:"w-[100%]",src:A})],-1),Us=g({__name:"course",setup(vs){const l=y(),_=v(),d=l.meta.title,m=b(!0),x=C({wechat_name:"",wechat_original:"",app_id:"",app_secret:"",qr_code:"",token:"",encoding_aes_key:"",encryption_type:"not_encrypt"});E().then(r=>{Object.assign(x,r.data),m.value=!1});const h=()=>{window.open("https://open.alipay.com/develop/manage","_blank")};return(r,p)=>{const u=k,n=L,w=U,f=j;return R(),T("div",F,[s("div",G,[s("div",{class:"left",onClick:p[0]||(p[0]=bs=>t(_).push({path:"/channel/aliapp"}))},[H,s("span",I,e(t(a)("returnToPreviousPage")),1)]),J,s("span",K,e(t(d)),1)]),o(f,{class:"box-card !border-none",shadow:"never"},{default:i(()=>[s("div",M,[s("div",Q,[X,s("div",null,[s("p",Y,[c(e(t(a)("alipayCourseTipsOne1"))+"--",1),o(u,{link:"",type:"primary",onClick:h},{default:i(()=>[c(e(t(a)("alipayCourseTipsOne2")),1)]),_:1}),c(", "+e(t(a)("alipayCourseTipsOne3")),1)]),Z,s("p",ss,e(t(a)("alipayCourseTipsTwo1")),1),ts,es])]),s("div",as,[os,s("div",null,[s("p",is,e(t(a)("alipayCourseTipsTwo2")),1),s("div",ns,[cs,s("div",null,[o(w,{gutter:20},{default:i(()=>[o(n,{span:6},{default:i(()=>[rs]),_:1}),o(n,{span:6},{default:i(()=>[ps]),_:1}),o(n,{span:6},{default:i(()=>[ls]),_:1}),o(n,{span:6},{default:i(()=>[_s]),_:1})]),_:1})])])])]),s("div",ds,[ms,s("div",null,[s("p",xs,e(t(a)("alipayCourseTipsThree1")),1),hs,us,s("p",ws,e(t(a)("alipayCourseTipsThree2")),1),fs,s("p",gs,e(t(a)("alipayCourseTipsThree3")),1),ys])])])]),_:1})])}}});export{Us as default};

View File

@ -1 +1 @@
import{d as T,n as z,r as k,h as c,c as h,e as a,w as r,u as o,N as n,i as p,t as i,a as b,y as F,I as $,W as B,X as N,cJ as Y,E as U,Y as I,_ as L,ag as S,ai as j,as as H,$ as M}from"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import{S as R}from"./sys-dbdff24e.js";import{_ as J}from"./cron-info.vue_vue_type_script_setup_true_lang-86542322.js";/* empty css */const W={class:"main-container"},X={class:"mt-[16px]"},q={key:0},A={key:1},G={class:"mt-[16px] flex justify-end"},he=T({__name:"cron",setup(K){const e=z({page:1,limit:10,total:0,loading:!0,data:[],searchParam:{title:"",type:"",last_time:""}}),y=k(),m=(d=1)=>{e.loading=!0,e.page=d,R({page:e.page,limit:e.limit,...e.searchParam}).then(l=>{e.loading=!1,e.data=l.data.data,e.total=l.data.total}).catch(()=>{e.loading=!1})};m();const _=k(null),w=d=>{_.value.setFormData(d),_.value.showDialog=!0};return(d,l)=>{const x=B,u=N,C=Y,f=U,D=I,v=L,s=S,E=j,P=H,V=M;return c(),h("div",W,[a(v,{class:"box-card !border-none",shadow:"never"},{default:r(()=>[a(v,{class:"box-card !border-none my-[16px] table-search-wrap",shadow:"never"},{default:r(()=>[a(D,{inline:!0,model:e.searchParam,ref_key:"searchFormRef",ref:y},{default:r(()=>[a(u,{label:o(n)("title"),prop:"title"},{default:r(()=>[a(x,{modelValue:e.searchParam.title,"onUpdate:modelValue":l[0]||(l[0]=t=>e.searchParam.title=t),placeholder:o(n)("titlePlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(u,{label:o(n)("lastTime"),prop:"last_time"},{default:r(()=>[a(C,{modelValue:e.searchParam.last_time,"onUpdate:modelValue":l[1]||(l[1]=t=>e.searchParam.last_time=t),type:"datetimerange","value-format":"YYYY-MM-DD HH:mm:ss","start-placeholder":o(n)("startDate"),"end-placeholder":o(n)("endDate")},null,8,["modelValue","start-placeholder","end-placeholder"])]),_:1},8,["label"]),a(u,null,{default:r(()=>[a(f,{type:"primary",onClick:l[2]||(l[2]=t=>m())},{default:r(()=>[p(i(o(n)("search")),1)]),_:1}),a(f,{onClick:l[3]||(l[3]=t=>{var g;return(g=y.value)==null?void 0:g.resetFields()})},{default:r(()=>[p(i(o(n)("reset")),1)]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),b("div",X,[F((c(),$(E,{data:e.data,size:"large"},{empty:r(()=>[b("span",null,i(e.loading?"":o(n)("emptyData")),1)]),default:r(()=>[a(s,{prop:"title","show-overflow-tooltip":!0,label:o(n)("title"),"min-width":"150"},null,8,["label"]),a(s,{prop:"type_name",label:o(n)("typeName"),"min-width":"120"},null,8,["label"]),a(s,{label:o(n)("crondType"),"min-width":"180",align:"center"},{default:r(({row:t})=>[t.type=="crond"?(c(),h("span",q,i(t.crond_length)+i(t.crond_type_name),1)):(c(),h("span",A,i(o(n)("cron")),1))]),_:1},8,["label"]),a(s,{prop:"count",label:o(n)("count"),"min-width":"120"},null,8,["label"]),a(s,{label:o(n)("lastTime"),"min-width":"180",align:"center"},{default:r(({row:t})=>[p(i(t.last_time||""),1)]),_:1},8,["label"]),a(s,{label:o(n)("nextTime"),"min-width":"180",align:"center"},{default:r(({row:t})=>[p(i(t.next_time||""),1)]),_:1},8,["label"]),a(s,{label:o(n)("operation"),align:"right",fixed:"right",width:"100"},{default:r(({row:t})=>[a(f,{type:"primary",link:"",onClick:g=>w(t)},{default:r(()=>[p(i(o(n)("info")),1)]),_:2},1032,["onClick"])]),_:1},8,["label"])]),_:1},8,["data"])),[[V,e.loading]]),b("div",G,[a(P,{"current-page":e.page,"onUpdate:current-page":l[4]||(l[4]=t=>e.page=t),"page-size":e.limit,"onUpdate:page-size":l[5]||(l[5]=t=>e.limit=t),layout:"total, sizes, prev, pager, next, jumper",total:e.total,onSizeChange:l[6]||(l[6]=t=>m()),onCurrentChange:m},null,8,["current-page","page-size","total"])])])]),_:1}),a(J,{ref_key:"cronDialog",ref:_,onComplete:m},null,512)])}}});export{he as default};
import{d as T,n as z,r as k,h as c,c as h,e as a,w as r,u as o,N as n,i as p,t as i,a as b,y as F,I as $,W as B,X as N,cJ as Y,E as U,Y as j,_ as I,ah as L,aj as S,a4 as H,$ as M}from"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import{S as R}from"./sys-e410b79c.js";import{_ as J}from"./cron-info.vue_vue_type_script_setup_true_lang-67dd29a7.js";/* empty css */const W={class:"main-container"},X={class:"mt-[16px]"},q={key:0},A={key:1},G={class:"mt-[16px] flex justify-end"},he=T({__name:"cron",setup(K){const e=z({page:1,limit:10,total:0,loading:!0,data:[],searchParam:{title:"",type:"",last_time:""}}),y=k(),m=(d=1)=>{e.loading=!0,e.page=d,R({page:e.page,limit:e.limit,...e.searchParam}).then(l=>{e.loading=!1,e.data=l.data.data,e.total=l.data.total}).catch(()=>{e.loading=!1})};m();const _=k(null),w=d=>{_.value.setFormData(d),_.value.showDialog=!0};return(d,l)=>{const x=B,u=N,C=Y,f=U,D=j,v=I,s=L,E=S,P=H,V=M;return c(),h("div",W,[a(v,{class:"box-card !border-none",shadow:"never"},{default:r(()=>[a(v,{class:"box-card !border-none my-[16px] table-search-wrap",shadow:"never"},{default:r(()=>[a(D,{inline:!0,model:e.searchParam,ref_key:"searchFormRef",ref:y},{default:r(()=>[a(u,{label:o(n)("title"),prop:"title"},{default:r(()=>[a(x,{modelValue:e.searchParam.title,"onUpdate:modelValue":l[0]||(l[0]=t=>e.searchParam.title=t),placeholder:o(n)("titlePlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(u,{label:o(n)("lastTime"),prop:"last_time"},{default:r(()=>[a(C,{modelValue:e.searchParam.last_time,"onUpdate:modelValue":l[1]||(l[1]=t=>e.searchParam.last_time=t),type:"datetimerange","value-format":"YYYY-MM-DD HH:mm:ss","start-placeholder":o(n)("startDate"),"end-placeholder":o(n)("endDate")},null,8,["modelValue","start-placeholder","end-placeholder"])]),_:1},8,["label"]),a(u,null,{default:r(()=>[a(f,{type:"primary",onClick:l[2]||(l[2]=t=>m())},{default:r(()=>[p(i(o(n)("search")),1)]),_:1}),a(f,{onClick:l[3]||(l[3]=t=>{var g;return(g=y.value)==null?void 0:g.resetFields()})},{default:r(()=>[p(i(o(n)("reset")),1)]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),b("div",X,[F((c(),$(E,{data:e.data,size:"large"},{empty:r(()=>[b("span",null,i(e.loading?"":o(n)("emptyData")),1)]),default:r(()=>[a(s,{prop:"title","show-overflow-tooltip":!0,label:o(n)("title"),"min-width":"150"},null,8,["label"]),a(s,{prop:"type_name",label:o(n)("typeName"),"min-width":"120"},null,8,["label"]),a(s,{label:o(n)("crondType"),"min-width":"180",align:"center"},{default:r(({row:t})=>[t.type=="crond"?(c(),h("span",q,i(t.crond_length)+i(t.crond_type_name),1)):(c(),h("span",A,i(o(n)("cron")),1))]),_:1},8,["label"]),a(s,{prop:"count",label:o(n)("count"),"min-width":"120"},null,8,["label"]),a(s,{label:o(n)("lastTime"),"min-width":"180",align:"center"},{default:r(({row:t})=>[p(i(t.last_time||""),1)]),_:1},8,["label"]),a(s,{label:o(n)("nextTime"),"min-width":"180",align:"center"},{default:r(({row:t})=>[p(i(t.next_time||""),1)]),_:1},8,["label"]),a(s,{label:o(n)("operation"),align:"right",fixed:"right",width:"100"},{default:r(({row:t})=>[a(f,{type:"primary",link:"",onClick:g=>w(t)},{default:r(()=>[p(i(o(n)("info")),1)]),_:2},1032,["onClick"])]),_:1},8,["label"])]),_:1},8,["data"])),[[V,e.loading]]),b("div",G,[a(P,{"current-page":e.page,"onUpdate:current-page":l[4]||(l[4]=t=>e.page=t),"page-size":e.limit,"onUpdate:page-size":l[5]||(l[5]=t=>e.limit=t),layout:"total, sizes, prev, pager, next, jumper",total:e.total,onSizeChange:l[6]||(l[6]=t=>m()),onCurrentChange:m},null,8,["current-page","page-size","total"])])])]),_:1}),a(J,{ref_key:"cronDialog",ref:_,onComplete:m},null,512)])}}});export{he as default};

View File

@ -1 +1 @@
import{_ as o}from"./cron-info.vue_vue_type_script_setup_true_lang-86542322.js";import"./index-b19d04dd.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";export{o as default};
import{_ as o}from"./cron-info.vue_vue_type_script_setup_true_lang-67dd29a7.js";import"./index-4ce69858.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";export{o as default};

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