mirror of
https://gitee.com/niucloud-team/niucloud-admin.git
synced 2025-12-12 19:02:49 +00:00
update
This commit is contained in:
parent
f77419bb60
commit
154a6b5e02
54
admin/package-lock.json
generated
54
admin/package-lock.json
generated
@ -2330,15 +2330,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/browserslist": {
|
"node_modules/browserslist": {
|
||||||
"version": "4.22.2",
|
"version": "4.24.2",
|
||||||
"resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.22.2.tgz",
|
"resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.2.tgz",
|
||||||
"integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==",
|
"integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"caniuse-lite": "^1.0.30001565",
|
"caniuse-lite": "^1.0.30001669",
|
||||||
"electron-to-chromium": "^1.4.601",
|
"electron-to-chromium": "^1.5.41",
|
||||||
"node-releases": "^2.0.14",
|
"node-releases": "^2.0.18",
|
||||||
"update-browserslist-db": "^1.0.13"
|
"update-browserslist-db": "^1.1.1"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"browserslist": "cli.js"
|
"browserslist": "cli.js"
|
||||||
@ -2413,9 +2413,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001571",
|
"version": "1.0.30001680",
|
||||||
"resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001571.tgz",
|
"resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz",
|
||||||
"integrity": "sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==",
|
"integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/chalk": {
|
"node_modules/chalk": {
|
||||||
@ -2809,9 +2809,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.4.616",
|
"version": "1.5.56",
|
||||||
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz",
|
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.56.tgz",
|
||||||
"integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==",
|
"integrity": "sha512-7lXb9dAvimCFdvUMTyucD4mnIndt/xhRKFAlky0CyFogdnNmdPQNoHI23msF/2V4mpTxMzgMdjK4+YRlFlRQZw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/element-plus": {
|
"node_modules/element-plus": {
|
||||||
@ -2982,9 +2982,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/escalade": {
|
"node_modules/escalade": {
|
||||||
"version": "3.1.1",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz",
|
"resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
|
||||||
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
|
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
@ -4585,9 +4585,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/node-releases": {
|
"node_modules/node-releases": {
|
||||||
"version": "2.0.14",
|
"version": "2.0.18",
|
||||||
"resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz",
|
"resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz",
|
||||||
"integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
|
"integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/normalize-path": {
|
"node_modules/normalize-path": {
|
||||||
@ -4809,9 +4809,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/picocolors": {
|
"node_modules/picocolors": {
|
||||||
"version": "1.0.0",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
|
||||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
|
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
|
||||||
},
|
},
|
||||||
"node_modules/picomatch": {
|
"node_modules/picomatch": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
@ -5925,13 +5925,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/update-browserslist-db": {
|
"node_modules/update-browserslist-db": {
|
||||||
"version": "1.0.13",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
|
"resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
|
||||||
"integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
|
"integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"escalade": "^3.1.1",
|
"escalade": "^3.2.0",
|
||||||
"picocolors": "^1.0.0"
|
"picocolors": "^1.1.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"update-browserslist-db": "cli.js"
|
"update-browserslist-db": "cli.js"
|
||||||
|
|||||||
@ -145,7 +145,7 @@ div.edui-box {
|
|||||||
background-color: white;
|
background-color: white;
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
z-index: 1;
|
z-index: 1 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.edui-editor div {
|
.edui-editor div {
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import request from '@/utils/request'
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function getAddonLocal(params: Record<string, any>) {
|
export function getAddonLocal(params: Record<string, any>) {
|
||||||
return request.get('addon/local', params, { showSuccessMessage: true })
|
return request.get('addon/local', params)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -13,7 +13,7 @@ export function getAddonLocal(params: Record<string, any>) {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function getAddonDetail(id: number) {
|
export function getAddonDetail(id: number) {
|
||||||
return request.get(`addon/${id}`)
|
return request.get(`addon/${ id }`)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -22,7 +22,7 @@ export function getAddonDetail(id: number) {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function installAddon(params: Record<string, any>) {
|
export function installAddon(params: Record<string, any>) {
|
||||||
return request.post(`addon/install/${params.addon}`, params)
|
return request.post(`addon/install/${ params.addon }`, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,7 +31,7 @@ export function installAddon(params: Record<string, any>) {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function cloudInstallAddon(params: Record<string, any>) {
|
export function cloudInstallAddon(params: Record<string, any>) {
|
||||||
return request.post(`addon/cloudinstall/${params.addon}`, params)
|
return request.post(`addon/cloudinstall/${ params.addon }`, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -40,7 +40,7 @@ export function cloudInstallAddon(params: Record<string, any>) {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function uninstallAddon(params: Record<string, any>) {
|
export function uninstallAddon(params: Record<string, any>) {
|
||||||
return request.post(`addon/uninstall/${params.addon}`, params, { showSuccessMessage: true })
|
return request.post(`addon/uninstall/${ params.addon }`, params, { showSuccessMessage: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -49,7 +49,7 @@ export function uninstallAddon(params: Record<string, any>) {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function preInstallCheck(addon: string) {
|
export function preInstallCheck(addon: string) {
|
||||||
return request.get(`addon/install/check/${addon}`)
|
return request.get(`addon/install/check/${ addon }`)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -66,7 +66,7 @@ export function getAddonInstalltask() {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function getAddonCloudInstallLog(addon: string) {
|
export function getAddonCloudInstallLog(addon: string) {
|
||||||
return request.get(`addon/cloudinstall/${addon}`)
|
return request.get(`addon/cloudinstall/${ addon }`)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -75,7 +75,7 @@ export function getAddonCloudInstallLog(addon: string) {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function preUninstallCheck(addon: string) {
|
export function preUninstallCheck(addon: string) {
|
||||||
return request.get(`addon/uninstall/check/${addon}`)
|
return request.get(`addon/uninstall/check/${ addon }`)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -84,7 +84,7 @@ export function preUninstallCheck(addon: string) {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function cancelInstall(addon: string) {
|
export function cancelInstall(addon: string) {
|
||||||
return request.put(`addon/install/cancel/${addon}`, {}, { showErrorMessage: false })
|
return request.put(`addon/install/cancel/${ addon }`, {}, { showErrorMessage: false })
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getInstalledAddonList() {
|
export function getInstalledAddonList() {
|
||||||
|
|||||||
@ -480,6 +480,22 @@ export function getCronLogList(params: any) {
|
|||||||
return request.get(`sys/schedule/log/list`, { params })
|
return request.get(`sys/schedule/log/list`, { params })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除任务日志
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function deleteCronLog(params: Record<string, any>) {
|
||||||
|
return request.put(`sys/schedule/log/delete`, params, { showSuccessMessage: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清空任务日志
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function clearCronLog(params: Record<string, any>) {
|
||||||
|
return request.put(`sys/schedule/log/clear`, params, { showSuccessMessage: true })
|
||||||
|
}
|
||||||
|
|
||||||
/***************************************************** 协议管理 ****************************************************/
|
/***************************************************** 协议管理 ****************************************************/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -650,14 +666,6 @@ export function setDeveloperToken(params: Record<string, any>) {
|
|||||||
return request.put(`sys/config/developer_token`, params, { showSuccessMessage: true })
|
return request.put(`sys/config/developer_token`, params, { showSuccessMessage: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取布局设置
|
|
||||||
* @returns
|
|
||||||
*/
|
|
||||||
export function getWebsiteLayout() {
|
|
||||||
return request.get('sys/web/layout')
|
|
||||||
}
|
|
||||||
|
|
||||||
/***************************************************** 报表导出 ****************************************************/
|
/***************************************************** 报表导出 ****************************************************/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -715,4 +723,3 @@ export function deleteExport(id: number) {
|
|||||||
export function getInstallConfig() {
|
export function getInstallConfig() {
|
||||||
return request.get('sys/install/config')
|
return request.get('sys/install/config')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -105,6 +105,9 @@
|
|||||||
"styleSet": "风格设置",
|
"styleSet": "风格设置",
|
||||||
"titleStyle": "标题样式",
|
"titleStyle": "标题样式",
|
||||||
"selectStyle": "风格选择",
|
"selectStyle": "风格选择",
|
||||||
|
"activeCubeBlockBtnText": "按钮文字",
|
||||||
|
"btnTextItalics": "斜体",
|
||||||
|
"btnTextNormal": "常规",
|
||||||
"styleLabel": "风格",
|
"styleLabel": "风格",
|
||||||
"styleShowTips": "风格 1 2 3,仅在小程序中展示",
|
"styleShowTips": "风格 1 2 3,仅在小程序中展示",
|
||||||
"titleContent": "标题内容",
|
"titleContent": "标题内容",
|
||||||
@ -199,8 +202,17 @@
|
|||||||
"carouselSearchShowWayStatic": "正常显示",
|
"carouselSearchShowWayStatic": "正常显示",
|
||||||
"carouselSearchShowWayFixed": "滚动至顶部固定",
|
"carouselSearchShowWayFixed": "滚动至顶部固定",
|
||||||
"carouselSearchFixedBgColor": "置顶背景",
|
"carouselSearchFixedBgColor": "置顶背景",
|
||||||
|
"carouselSearchStyleSelect": "风格选择",
|
||||||
"carouselSearchSet": "搜索设置",
|
"carouselSearchSet": "搜索设置",
|
||||||
|
"carouselSearchSubTitle": "副标题",
|
||||||
|
"carouselSearchSubTitleStyle": "副标题样式",
|
||||||
|
"carouselSearchPositionStyle": "定位样式",
|
||||||
|
"carouselSearchSubTitlePlaceholder": "请输入副标题内容",
|
||||||
"carouselSearchText": "搜索内容",
|
"carouselSearchText": "搜索内容",
|
||||||
|
"carouselSearchTextColor": "文字颜色",
|
||||||
|
"carouselSearchBgColor": "背景颜色",
|
||||||
|
"carouselSearchBtnColor": "按钮颜色",
|
||||||
|
"carouselSearchBtnBgColor": "按钮背景色",
|
||||||
"carouselSearchHotWordSet": "搜索热词",
|
"carouselSearchHotWordSet": "搜索热词",
|
||||||
"carouselSearchHotWordInterval": "显示时间 / 秒",
|
"carouselSearchHotWordInterval": "显示时间 / 秒",
|
||||||
"carouselSearchHotWordText": "内容",
|
"carouselSearchHotWordText": "内容",
|
||||||
@ -223,6 +235,7 @@
|
|||||||
"carouselSearchSwiperInterval": "切换间隔 / 秒",
|
"carouselSearchSwiperInterval": "切换间隔 / 秒",
|
||||||
"carouselSearchSwiperTips": "建议上传尺寸相同的图片,推荐尺寸750*350;鼠标拖拽可调整图片顺序",
|
"carouselSearchSwiperTips": "建议上传尺寸相同的图片,推荐尺寸750*350;鼠标拖拽可调整图片顺序",
|
||||||
"carouselSearchTabStyle": "选项卡样式",
|
"carouselSearchTabStyle": "选项卡样式",
|
||||||
|
"carouselSearchStyle": "搜索框样式",
|
||||||
"noColor": "常规颜色",
|
"noColor": "常规颜色",
|
||||||
"selectColor": "选中颜色",
|
"selectColor": "选中颜色",
|
||||||
"fixedNoColor": "下滑常规颜色",
|
"fixedNoColor": "下滑常规颜色",
|
||||||
@ -232,6 +245,7 @@
|
|||||||
"carouselSearchSwiperStyle": "轮播样式",
|
"carouselSearchSwiperStyle": "轮播样式",
|
||||||
"carouselSearchSwiperIndicatorStyle1": "样式1",
|
"carouselSearchSwiperIndicatorStyle1": "样式1",
|
||||||
"carouselSearchSwiperIndicatorStyle2": "样式2",
|
"carouselSearchSwiperIndicatorStyle2": "样式2",
|
||||||
|
"carouselSearchSwiperIndicatorStyle3": "样式3",
|
||||||
"carouselSearchSwiperIndicatorAlign": "显示位置",
|
"carouselSearchSwiperIndicatorAlign": "显示位置",
|
||||||
"alignLeft": "居左",
|
"alignLeft": "居左",
|
||||||
"alignCenter": "居中",
|
"alignCenter": "居中",
|
||||||
@ -257,5 +271,13 @@
|
|||||||
"rollTopStatusBarTextColor": "滚动后标题颜色",
|
"rollTopStatusBarTextColor": "滚动后标题颜色",
|
||||||
"topStatusBarSearchName": "搜索内容",
|
"topStatusBarSearchName": "搜索内容",
|
||||||
"topStatusBarSearchNamePlaceholder": "请输入搜索关键词",
|
"topStatusBarSearchNamePlaceholder": "请输入搜索关键词",
|
||||||
"settingTips": "点击查看如何配置"
|
"settingTips": "点击查看如何配置",
|
||||||
|
"pictureShowBlockOne": "模块一",
|
||||||
|
"pictureShowBlockTwo": "模块二",
|
||||||
|
"subTitleTextColor": "标题颜色",
|
||||||
|
"pictureShowBgColor": "背景颜色",
|
||||||
|
"pictureShowBtnText": "按钮文字",
|
||||||
|
"pictureShowBtnColor": "文字颜色",
|
||||||
|
"pictureShowBtnBgColor": "背景颜色",
|
||||||
|
"pictureShowBlockStyle": "模块样式"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
"sex": "性别",
|
"sex": "性别",
|
||||||
"wxUnionid": "微信unionid",
|
"wxUnionid": "微信unionid",
|
||||||
"weappOpenid": "微信用户openid",
|
"weappOpenid": "微信用户openid",
|
||||||
"wxOpenid": "微信小程openid",
|
"wxOpenid": "微信小程序openid",
|
||||||
"head": "会员头像",
|
"head": "会员头像",
|
||||||
"username": "用户名",
|
"username": "用户名",
|
||||||
"usernamePlaceholder": "请输入用户名",
|
"usernamePlaceholder": "请输入用户名",
|
||||||
|
|||||||
@ -10,8 +10,10 @@
|
|||||||
"agreement": "政策协议",
|
"agreement": "政策协议",
|
||||||
"agreementTips": "注册时服务协议和隐私协议是否进行展示",
|
"agreementTips": "注册时服务协议和隐私协议是否进行展示",
|
||||||
"tripartiteSetting": "第三方设置",
|
"tripartiteSetting": "第三方设置",
|
||||||
"isAuthRegister": "快捷登录/注册",
|
"isAuthRegister": "自动注册会员",
|
||||||
"isAuthRegisterTip": "开启之后,微信公众号、小程序等第三方平台可以自动注册会员或者快捷登录/注册会员,方便会员自动登录",
|
"isAuthRegisterTip": "开启之后,微信公众号、小程序等第三方平台可以自动注册会员或者快捷登录/注册会员,方便会员自动登录",
|
||||||
|
"isForceAccessUserInfo": "强制获取用户信息",
|
||||||
|
"isForceAccessUserInfoTip": "开启之后,将强制获取用户头像、昵称等信息,需要用户同意后,才能注册成功",
|
||||||
"mobileOrUsernameNoEmpty": "普通注册方式至少需启用一种",
|
"mobileOrUsernameNoEmpty": "普通注册方式至少需启用一种",
|
||||||
"loginPageSet": "界面设置",
|
"loginPageSet": "界面设置",
|
||||||
"bgUrl": "背景图",
|
"bgUrl": "背景图",
|
||||||
|
|||||||
@ -4,8 +4,8 @@
|
|||||||
"isOpen": "定位开关",
|
"isOpen": "定位开关",
|
||||||
"validTime": "定位有效期",
|
"validTime": "定位有效期",
|
||||||
"minutes": "分钟",
|
"minutes": "分钟",
|
||||||
"validTimeTips": "过期后将重新获取定位信息,0为不过期",
|
"validTimeTips": "过期后将重新获取定位信息",
|
||||||
"validTimePlaceholder": "请输入定位有效期",
|
"validTimePlaceholder": "请输入定位有效期",
|
||||||
"validTimeFormatTips": "格式输入错误",
|
"validTimeFormatTips": "格式输入错误",
|
||||||
"validTimeNotZeroTips": "定位有效期不能小于0"
|
"validTimeNotZeroTips": "定位有效期不能小于5分钟"
|
||||||
}
|
}
|
||||||
@ -63,5 +63,7 @@
|
|||||||
"h5Domain": "H5支付域名",
|
"h5Domain": "H5支付域名",
|
||||||
"h5DomainTips": "需在微信商户号>产品中心>开发配置>支付配置 H5支付域名中添加该域名",
|
"h5DomainTips": "需在微信商户号>产品中心>开发配置>支付配置 H5支付域名中添加该域名",
|
||||||
"nativeDomain": "Native支付回调链接",
|
"nativeDomain": "Native支付回调链接",
|
||||||
"nativeDomainTips": "需在微信商户号>产品中心>开发配置>支付配置 Native支付回调链接中添加该链接"
|
"nativeDomainTips": "需在微信商户号>产品中心>开发配置>支付配置 Native支付回调链接中添加该链接",
|
||||||
|
"wechatpayPublicCert": "微信支付公钥",
|
||||||
|
"wechatpayPublicCertId": "微信支付公钥ID"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,5 +7,11 @@
|
|||||||
"status": "执行状态",
|
"status": "执行状态",
|
||||||
"executeTime": "执行时间",
|
"executeTime": "执行时间",
|
||||||
"info": "详情",
|
"info": "详情",
|
||||||
"cronInfo": "日志详情"
|
"cronInfo": "日志详情",
|
||||||
|
"batchDelete": "批量删除",
|
||||||
|
"clearAll": "清空",
|
||||||
|
"batchEmptySelectedCronLogTips": "请选择要删除的日志",
|
||||||
|
"batchDeleteTips": "确定要删除选中的日志吗?",
|
||||||
|
"clearAllTips": "确定要清空所有日志吗?",
|
||||||
|
"deleteTips": "确定要删除该条日志吗?"
|
||||||
}
|
}
|
||||||
@ -4,26 +4,33 @@
|
|||||||
<div class="flex justify-between items-center">
|
<div class="flex justify-between items-center">
|
||||||
<span class="text-page-title">应用管理</span>
|
<span class="text-page-title">应用管理</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-wrap plug-list pb-10 plug-large" v-if="appList.length">
|
<div class="flex flex-wrap plug-list pb-10 plug-large" v-if="appList.length">
|
||||||
<div v-for="(item, index) in appList" :key="index + 'b'">
|
<div v-for="(item, index) in appList" :key="index + 'b'" class="cursor-pointer mt-[20px] mr-4 bg-[#f7f7f7]" @click="toLink(item.key)">
|
||||||
<div
|
<el-tooltip class="box-item" effect="light" placement="top">
|
||||||
class="relative app-item cursor-pointer px-4 mr-4 mt-[20px] bg-[#f7f7f7] border-[1px] hover:border-primary">
|
<template #content>
|
||||||
<div @click="toLink(item.key)" class="flex py-5 items-center">
|
<div class="max-w-[250px]">{{item.desc}}</div>
|
||||||
<div class="flex justify-center items-center">
|
</template>
|
||||||
<el-image class="w-[40px] h-[40px]" :src="item.icon" fit="contain">
|
<div class="w-[264px] flex py-[20px] px-[17px] app-item relative">
|
||||||
|
<el-image class="w-[40px] h-[40px] mr-[10px]" :src="item.icon" fit="contain">
|
||||||
<template #error>
|
<template #error>
|
||||||
<div class="image-slot">
|
<div class="image-slot">
|
||||||
<img class="w-[50px] h-[50px]"
|
<img class="w-[40px] h-[40px]" src="@/app/assets/images/index/app_default.png" />
|
||||||
src="@/app/assets/images/index/app_default.png" />
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-image>
|
</el-image>
|
||||||
|
<div class="flex flex-col justify-between w-[180px]">
|
||||||
|
<div class="text-[14px] flex items-center">
|
||||||
|
<span class="app-text max-w-[170px]">{{ item.title }}</span>
|
||||||
|
<span class="iconfont iconxiaochengxu2 text-[#00b240] ml-[4px] !text-[14px]"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col justify-between text-left w-[190px]">
|
<!-- <el-icon color="#666">
|
||||||
<p class="app-text w-[190px] text-[17px] text-[#222] pl-3">{{ item.title }}</p>
|
<QuestionFilled />
|
||||||
</div>
|
</el-icon> -->
|
||||||
|
<p class="app-text text-[12px] text-[#999]">{{item.desc}}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="empty flex items-center justify-center" v-if="!appList.length">
|
<div class="empty flex items-center justify-center" v-if="!appList.length">
|
||||||
|
|||||||
@ -11,9 +11,12 @@
|
|||||||
<ArrowRight />
|
<ArrowRight />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('title')">
|
<el-form-item :label="t('title')" v-if="diyStore.editComponent && diyStore.editComponent.titleStyle && diyStore.editComponent.titleStyle.value != 'style-5'">
|
||||||
<el-input v-model.trim="diyStore.editComponent.text" :placeholder="t('titlePlaceholder')" clearable maxlength="10" show-word-limit />
|
<el-input v-model.trim="diyStore.editComponent.text" :placeholder="t('titlePlaceholder')" clearable maxlength="10" show-word-limit />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('image')" v-else>
|
||||||
|
<upload-image v-model="diyStore.editComponent.textImg" :limit="1"/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item :label="t('link')">
|
<el-form-item :label="t('link')">
|
||||||
<diy-link v-model="diyStore.editComponent.textLink"/>
|
<diy-link v-model="diyStore.editComponent.textLink"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -25,7 +28,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-dialog v-model="showTitleDialog" :title="t('selectStyle')" width="500px">
|
<el-dialog v-model="showTitleDialog" :title="t('selectStyle')" width="460px">
|
||||||
|
|
||||||
<div class="flex flex-wrap">
|
<div class="flex flex-wrap">
|
||||||
<template v-for="(item,index) in titleStyleList" :key="index">
|
<template v-for="(item,index) in titleStyleList" :key="index">
|
||||||
@ -92,7 +95,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item :label="t('activeCubeSubTitle')" v-if="diyStore.editComponent.blockStyle.value != 'style-3'">
|
<el-form-item :label="t('activeCubeSubTitle')" v-if="diyStore.editComponent.blockStyle.value != 'style-3'">
|
||||||
<el-input v-model.trim="item.subTitle.text" :placeholder="t('activeCubeSubTitlePlaceholder')" clearable :maxlength="(diyStore.editComponent.blockStyle.value != 'style-4' ? '6' : '4')" show-word-limit/>
|
<el-input v-model.trim="item.subTitle.text" :placeholder="t('activeCubeSubTitlePlaceholder')" clearable maxlength="6" show-word-limit/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<div v-show="diyStore.editComponent.blockStyle.value == 'style-4'">
|
<div v-show="diyStore.editComponent.blockStyle.value == 'style-4'">
|
||||||
@ -104,12 +107,13 @@
|
|||||||
<icon name="iconfont iconmap-connect" size="20px" class="block !text-gray-400 mx-[5px]"/>
|
<icon name="iconfont iconmap-connect" size="20px" class="block !text-gray-400 mx-[5px]"/>
|
||||||
<el-color-picker v-model="item.subTitle.endColor" show-alpha :predefine="diyStore.predefineColors"/>
|
<el-color-picker v-model="item.subTitle.endColor" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
<el-form-item :label="t('activeListFrameColor')">
|
<el-form-item :label="t('activeListFrameColor')">
|
||||||
<el-color-picker v-model="item.listFrame.startColor" show-alpha :predefine="diyStore.predefineColors" />
|
<el-color-picker v-model="item.listFrame.startColor" show-alpha :predefine="diyStore.predefineColors" />
|
||||||
<icon name="iconfont iconmap-connect" size="20px" class="block !text-gray-400 mx-[5px]"/>
|
<icon name="iconfont iconmap-connect" size="20px" class="block !text-gray-400 mx-[5px]"/>
|
||||||
<el-color-picker v-model="item.listFrame.endColor" show-alpha :predefine="diyStore.predefineColors"/>
|
<el-color-picker v-model="item.listFrame.endColor" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-show="diyStore.editComponent.blockStyle.value != 'style-4' && diyStore.editComponent.blockStyle.value != 'style-3'">
|
<div v-show="diyStore.editComponent.blockStyle.value != 'style-4' && diyStore.editComponent.blockStyle.value != 'style-3'">
|
||||||
<el-form-item :label="t('activeCubeButton')">
|
<el-form-item :label="t('activeCubeButton')">
|
||||||
@ -143,7 +147,7 @@
|
|||||||
<!-- 样式 -->
|
<!-- 样式 -->
|
||||||
<div class="style-wrap" v-show="diyStore.editTab == 'style'">
|
<div class="style-wrap" v-show="diyStore.editTab == 'style'">
|
||||||
|
|
||||||
<div class="edit-attr-item-wrap">
|
<div class="edit-attr-item-wrap" v-if="selectTitleStyle.value != 'style-5'">
|
||||||
<h3 class="mb-[10px]">{{ t('titleStyle') }}</h3>
|
<h3 class="mb-[10px]">{{ t('titleStyle') }}</h3>
|
||||||
<el-form label-width="90px" class="px-[10px]">
|
<el-form label-width="90px" class="px-[10px]">
|
||||||
<el-form-item :label="t('textColor')">
|
<el-form-item :label="t('textColor')">
|
||||||
@ -175,6 +179,12 @@
|
|||||||
<el-radio :label="'bold'">{{t('fontWeightBold')}}</el-radio>
|
<el-radio :label="'bold'">{{t('fontWeightBold')}}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('activeCubeBlockBtnText')" class="flex">
|
||||||
|
<el-radio-group v-model="diyStore.editComponent.blockStyle.btnText">
|
||||||
|
<el-radio :label="'normal'">{{t('btnTextNormal')}}</el-radio>
|
||||||
|
<el-radio :label="'italics'">{{t('btnTextItalics')}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -264,6 +274,10 @@ const titleStyleList = reactive([
|
|||||||
url : 'static/resource/images/diy/active_cube/title_style5.png',
|
url : 'static/resource/images/diy/active_cube/title_style5.png',
|
||||||
title:'风格4',
|
title:'风格4',
|
||||||
value:'style-4'
|
value:'style-4'
|
||||||
|
},{
|
||||||
|
url : 'static/resource/images/diy/active_cube/title_style6.png',
|
||||||
|
title:'风格5',
|
||||||
|
value:'style-5'
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
@ -280,9 +294,39 @@ const changeTitleStyle = (item:any) => {
|
|||||||
const confirmTitleStyle = () => {
|
const confirmTitleStyle = () => {
|
||||||
diyStore.editComponent.titleStyle.title = selectTitleStyle.title;
|
diyStore.editComponent.titleStyle.title = selectTitleStyle.title;
|
||||||
diyStore.editComponent.titleStyle.value = selectTitleStyle.value;
|
diyStore.editComponent.titleStyle.value = selectTitleStyle.value;
|
||||||
|
initTitleStyle(diyStore.editComponent.titleStyle.value);
|
||||||
showTitleDialog.value = false
|
showTitleDialog.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const initTitleStyle = (style)=>{
|
||||||
|
if(diyStore.editComponent.titleStyle.value == 'style-1'){
|
||||||
|
diyStore.editComponent.titleColor = "#F91700";
|
||||||
|
diyStore.editComponent.subTitle.textColor = "#FFFFFF";
|
||||||
|
diyStore.editComponent.subTitle.startColor = "#FB792F";
|
||||||
|
diyStore.editComponent.subTitle.endColor = "#F91700";
|
||||||
|
}else if(diyStore.editComponent.titleStyle.value == 'style-2'){
|
||||||
|
diyStore.editComponent.titleColor = "#F91700";
|
||||||
|
diyStore.editComponent.subTitle.textColor = "#FFFFFF";
|
||||||
|
diyStore.editComponent.subTitle.startColor = "#FB792F";
|
||||||
|
diyStore.editComponent.subTitle.endColor = "#F91700";
|
||||||
|
}else if(diyStore.editComponent.titleStyle.value == 'style-3'){
|
||||||
|
diyStore.editComponent.titleColor = "#F91700";
|
||||||
|
diyStore.editComponent.subTitle.textColor = "#FFFFFF";
|
||||||
|
diyStore.editComponent.subTitle.startColor = "#FB792F";
|
||||||
|
diyStore.editComponent.subTitle.endColor = "#F91700";
|
||||||
|
}else if(diyStore.editComponent.titleStyle.value == 'style-4'){
|
||||||
|
diyStore.editComponent.titleColor = "#FFFFFF";
|
||||||
|
diyStore.editComponent.subTitle.textColor = "#333333";
|
||||||
|
diyStore.editComponent.subTitle.startColor = "#FFFFFF";
|
||||||
|
diyStore.editComponent.subTitle.endColor = "#FFFFFF";
|
||||||
|
}else if(diyStore.editComponent.titleStyle.value == 'style-5'){
|
||||||
|
diyStore.editComponent.titleColor = "";
|
||||||
|
diyStore.editComponent.subTitle.textColor = "#999999";
|
||||||
|
diyStore.editComponent.subTitle.startColor = "#FFFFFF";
|
||||||
|
diyStore.editComponent.subTitle.endColor = "#FFFFFF";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 板块风格样式
|
// 板块风格样式
|
||||||
const showListDialog = ref(false)
|
const showListDialog = ref(false)
|
||||||
|
|
||||||
@ -326,9 +370,174 @@ const changeBlockStyle = (item:any) => {
|
|||||||
const confirmBlockStyle = () => {
|
const confirmBlockStyle = () => {
|
||||||
diyStore.editComponent.blockStyle.title = selectBlockStyle.title;
|
diyStore.editComponent.blockStyle.title = selectBlockStyle.title;
|
||||||
diyStore.editComponent.blockStyle.value = selectBlockStyle.value;
|
diyStore.editComponent.blockStyle.value = selectBlockStyle.value;
|
||||||
|
initBlockStyle(diyStore.editComponent.blockStyle.value);
|
||||||
showListDialog.value = false
|
showListDialog.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const initBlockStyle = (style: any)=>{
|
||||||
|
if(style == 'style-1'){
|
||||||
|
diyStore.editComponent.blockStyle.fontWeight = "normal";
|
||||||
|
diyStore.editComponent.blockStyle.btnText = "normal";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[0].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[0].subTitle.textColor = "#999999";
|
||||||
|
diyStore.editComponent.list[0].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[0].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[0].moreTitle.startColor = "#FEA715";
|
||||||
|
diyStore.editComponent.list[0].moreTitle.endColor = "#FE1E00";
|
||||||
|
diyStore.editComponent.list[0].listFrame.startColor = "#FFFAF5";
|
||||||
|
diyStore.editComponent.list[0].listFrame.endColor = "#FFFFFF";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[1].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[1].subTitle.textColor = "#999999";
|
||||||
|
diyStore.editComponent.list[1].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[1].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[1].moreTitle.startColor = "#FFBF50";
|
||||||
|
diyStore.editComponent.list[1].moreTitle.endColor = "#FF9E03";
|
||||||
|
diyStore.editComponent.list[1].listFrame.startColor = "#FFFAF5";
|
||||||
|
diyStore.editComponent.list[1].listFrame.endColor = "#FFFFFF";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[2].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[2].subTitle.textColor = "#999999";
|
||||||
|
diyStore.editComponent.list[2].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[2].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[2].moreTitle.startColor = "#A2E792";
|
||||||
|
diyStore.editComponent.list[2].moreTitle.endColor = "#49CD2D";
|
||||||
|
diyStore.editComponent.list[2].listFrame.startColor = "#FFFAF5";
|
||||||
|
diyStore.editComponent.list[2].listFrame.endColor = "#FFFFFF";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[3].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[3].subTitle.textColor = "#999999";
|
||||||
|
diyStore.editComponent.list[3].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[3].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[3].moreTitle.startColor = "#4AC1FF";
|
||||||
|
diyStore.editComponent.list[3].moreTitle.endColor = "#1D7CFF";
|
||||||
|
diyStore.editComponent.list[3].listFrame.startColor = "#FFFAF5";
|
||||||
|
diyStore.editComponent.list[3].listFrame.endColor = "#FFFFFF";
|
||||||
|
|
||||||
|
}else if(style == 'style-2'){
|
||||||
|
diyStore.editComponent.blockStyle.fontWeight = "normal";
|
||||||
|
diyStore.editComponent.blockStyle.btnText = "normal";
|
||||||
|
|
||||||
|
diyStore.editComponent.blockStyle.fontWeight = "bold";
|
||||||
|
diyStore.editComponent.blockStyle.btnText = "italics";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[0].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[0].subTitle.textColor = "#999999";
|
||||||
|
diyStore.editComponent.list[0].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[0].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[0].moreTitle.startColor = "#FFC051";
|
||||||
|
diyStore.editComponent.list[0].moreTitle.endColor = "#FF9C00";
|
||||||
|
diyStore.editComponent.list[0].listFrame.startColor = "#FFF1DB";
|
||||||
|
diyStore.editComponent.list[0].listFrame.endColor = "#FFFBF4";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[1].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[1].subTitle.textColor = "#999999";
|
||||||
|
diyStore.editComponent.list[1].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[1].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[1].moreTitle.startColor = "#A4E894";
|
||||||
|
diyStore.editComponent.list[1].moreTitle.endColor = "#45CC2A";
|
||||||
|
diyStore.editComponent.list[1].listFrame.startColor = "#E6F6E2";
|
||||||
|
diyStore.editComponent.list[1].listFrame.endColor = "#F5FDF3";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[2].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[2].subTitle.textColor = "#999999";
|
||||||
|
diyStore.editComponent.list[2].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[2].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[2].moreTitle.startColor = "#4BC2FF";
|
||||||
|
diyStore.editComponent.list[2].moreTitle.endColor = "#1F7DFF";
|
||||||
|
diyStore.editComponent.list[2].listFrame.startColor = "#E2F6FF";
|
||||||
|
diyStore.editComponent.list[2].listFrame.endColor = "#F2FAFF";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[3].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[3].subTitle.textColor = "#999999";
|
||||||
|
diyStore.editComponent.list[3].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[3].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[3].moreTitle.startColor = "#FB792F";
|
||||||
|
diyStore.editComponent.list[3].moreTitle.endColor = "#F91700";
|
||||||
|
diyStore.editComponent.list[3].listFrame.startColor = "#FFEAEA";
|
||||||
|
diyStore.editComponent.list[3].listFrame.endColor = "#FFFCFB";
|
||||||
|
}else if(style == 'style-3'){
|
||||||
|
diyStore.editComponent.blockStyle.fontWeight = "normal";
|
||||||
|
diyStore.editComponent.blockStyle.btnText = "normal";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[0].title.textColor = "#FF1128";
|
||||||
|
diyStore.editComponent.list[0].subTitle.textColor = "";
|
||||||
|
diyStore.editComponent.list[0].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[0].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[0].moreTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[0].moreTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[0].listFrame.startColor = "";
|
||||||
|
diyStore.editComponent.list[0].listFrame.endColor = "";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[1].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[1].subTitle.textColor = "";
|
||||||
|
diyStore.editComponent.list[1].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[1].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[1].moreTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[1].moreTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[1].listFrame.startColor = "";
|
||||||
|
diyStore.editComponent.list[1].listFrame.endColor = "";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[2].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[2].subTitle.textColor = "";
|
||||||
|
diyStore.editComponent.list[2].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[2].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[2].moreTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[2].moreTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[2].listFrame.startColor = "";
|
||||||
|
diyStore.editComponent.list[2].listFrame.endColor = "";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[3].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[3].subTitle.textColor = "";
|
||||||
|
diyStore.editComponent.list[3].subTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[3].subTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[3].moreTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[3].moreTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[3].listFrame.startColor = "";
|
||||||
|
diyStore.editComponent.list[3].listFrame.endColor = "";
|
||||||
|
}else if(style == 'style-4'){
|
||||||
|
diyStore.editComponent.blockStyle.fontWeight = "bold";
|
||||||
|
diyStore.editComponent.blockStyle.btnText = "normal";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[0].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[0].subTitle.textColor = "#ED6E00";
|
||||||
|
diyStore.editComponent.list[0].subTitle.startColor = "#FFE4D9";
|
||||||
|
diyStore.editComponent.list[0].subTitle.endColor = "#FFE4D9";
|
||||||
|
diyStore.editComponent.list[0].moreTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[0].moreTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[0].listFrame.startColor = "#FFAD4D";
|
||||||
|
diyStore.editComponent.list[0].listFrame.endColor = "#F93D02";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[1].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[1].subTitle.textColor = "#2E59E9";
|
||||||
|
diyStore.editComponent.list[1].subTitle.startColor = "#CAD7F8";
|
||||||
|
diyStore.editComponent.list[1].subTitle.endColor = "#CAD7F8";
|
||||||
|
diyStore.editComponent.list[1].moreTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[1].moreTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[1].listFrame.startColor = "#7CA7F4";
|
||||||
|
diyStore.editComponent.list[1].listFrame.endColor = "#2B56E9";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[2].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[2].subTitle.textColor = "#F62F55";
|
||||||
|
diyStore.editComponent.list[2].subTitle.startColor = "#FCD6D9";
|
||||||
|
diyStore.editComponent.list[2].subTitle.endColor = "#FCD6D9";
|
||||||
|
diyStore.editComponent.list[2].moreTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[2].moreTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[2].listFrame.startColor = "#FF7F48";
|
||||||
|
diyStore.editComponent.list[2].listFrame.endColor = "#EE335B";
|
||||||
|
|
||||||
|
diyStore.editComponent.list[3].title.textColor = "#303133";
|
||||||
|
diyStore.editComponent.list[3].subTitle.textColor = "#139B3C";
|
||||||
|
diyStore.editComponent.list[3].subTitle.startColor = "#D3F1DA";
|
||||||
|
diyStore.editComponent.list[3].subTitle.endColor = "#D3F1DA";
|
||||||
|
diyStore.editComponent.list[3].moreTitle.startColor = "";
|
||||||
|
diyStore.editComponent.list[3].moreTitle.endColor = "";
|
||||||
|
diyStore.editComponent.list[3].listFrame.startColor = "#90D48C";
|
||||||
|
diyStore.editComponent.list[3].listFrame.endColor = "#299F4F";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const addItem = () => {
|
const addItem = () => {
|
||||||
diyStore.editComponent.list.push({
|
diyStore.editComponent.list.push({
|
||||||
id: diyStore.generateRandom(),
|
id: diyStore.generateRandom(),
|
||||||
|
|||||||
@ -26,9 +26,18 @@
|
|||||||
<div class="edit-attr-item-wrap">
|
<div class="edit-attr-item-wrap">
|
||||||
<h3 class="mb-[10px]">{{ t('carouselSearchSet') }}</h3>
|
<h3 class="mb-[10px]">{{ t('carouselSearchSet') }}</h3>
|
||||||
<el-form label-width="100px" class="px-[10px]">
|
<el-form label-width="100px" class="px-[10px]">
|
||||||
<div class="text-sm text-gray-400 mb-[10px]">{{ t('carouselSearchLogoTips') }}</div>
|
<el-form-item :label="t('selectStyle')" class="flex">
|
||||||
|
<span class="text-primary flex-1 cursor-pointer" @click="showSearchStyle">{{ diyStore.editComponent.search.styleName }}</span>
|
||||||
|
<el-icon>
|
||||||
|
<ArrowRight />
|
||||||
|
</el-icon>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('carouselSearchSubTitle')" v-if="diyStore.editComponent.search.style == 'style-2'">
|
||||||
|
<el-input v-model.trim="diyStore.editComponent.search.subTitle.text" :placeholder="t('carouselSearchSubTitlePlaceholder')" clearable maxlength="10" show-word-limit />
|
||||||
|
</el-form-item>
|
||||||
<el-form-item :label="t('logo')">
|
<el-form-item :label="t('logo')">
|
||||||
<upload-image v-model="diyStore.editComponent.search.logo" :limit="1" />
|
<upload-image v-model="diyStore.editComponent.search.logo" :limit="1" />
|
||||||
|
<div class="text-sm text-gray-400 mb-[10px]">{{ t('carouselSearchLogoTips') }}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('carouselSearchText')">
|
<el-form-item :label="t('carouselSearchText')">
|
||||||
<div>
|
<div>
|
||||||
@ -39,16 +48,34 @@
|
|||||||
<el-form-item :label="t('link')">
|
<el-form-item :label="t('link')">
|
||||||
<diy-link v-model="diyStore.editComponent.search.link"/>
|
<diy-link v-model="diyStore.editComponent.search.link"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
|
<el-dialog v-model="showSearchDialog" :title="t('selectStyle')" width="500px">
|
||||||
|
|
||||||
|
<div class="flex flex-wrap">
|
||||||
|
<template v-for="(item,index) in searchStyleList" :key="index">
|
||||||
|
<div :class="{ 'border-primary': selectSearchStyle.value == item.value }" @click="changeSearchStyle(item)" class="flex items-center justify-center overflow-hidden w-[200px] h-[100px] m-[6px] cursor-pointer border bg-[#eee]">
|
||||||
|
<img :src="img(item.url)" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="edit-attr-item-wrap">
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button @click="showSearchDialog = false">{{ t('cancel') }}</el-button>
|
||||||
|
<el-button type="primary" @click="confirmSearchStyle">{{ t('confirm') }}</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="edit-attr-item-wrap mb-[20px]">
|
||||||
<h3 class="mb-[10px]">{{ t('carouselSearchHotWordSet') }}</h3>
|
<h3 class="mb-[10px]">{{ t('carouselSearchHotWordSet') }}</h3>
|
||||||
<el-form label-width="100px" class="px-[10px]">
|
<el-form label-width="100px" class="px-[10px]">
|
||||||
|
|
||||||
<el-form-item :label="t('carouselSearchHotWordInterval')">
|
<el-form-item :label="t('carouselSearchHotWordInterval')">
|
||||||
<el-slider v-model="diyStore.editComponent.search.hotWord.interval" show-input size="small" class="ml-[10px] horz-blank-slider" :min="1" :max="10"/>
|
<el-slider v-model="diyStore.editComponent.search.hotWord.interval" show-input size="small" class="ml-[10px] diy-nav-slider" :min="1" :max="10"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<p class="text-sm text-gray-400 mb-[10px]">{{ t('dragMouseAdjustOrder') }}</p>
|
<p class="text-sm text-gray-400 mb-[10px]">{{ t('dragMouseAdjustOrder') }}</p>
|
||||||
@ -137,12 +164,11 @@
|
|||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item :title="t('carouselSearchSwiperSet')" name="swiper">
|
<el-collapse-item :title="t('carouselSearchSwiperSet')" name="swiper">
|
||||||
<el-form label-width="100px" class="px-[10px]">
|
<el-form label-width="100px" class="px-[10px]">
|
||||||
|
|
||||||
<el-form-item :label="t('carouselSearchSwiperControl')">
|
<el-form-item :label="t('carouselSearchSwiperControl')">
|
||||||
<el-switch v-model="diyStore.editComponent.swiper.control" />
|
<el-switch v-model="diyStore.editComponent.swiper.control" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('carouselSearchSwiperInterval')">
|
<el-form-item :label="t('carouselSearchSwiperInterval')">
|
||||||
<el-slider v-model="diyStore.editComponent.swiper.interval" show-input size="small" class="ml-[10px] horz-blank-slider" :min="1" :max="10"/>
|
<el-slider v-model="diyStore.editComponent.swiper.interval" show-input size="small" class="ml-[10px] diy-nav-slider" :min="1" :max="10"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<div class="text-sm text-gray-400 mb-[10px]">{{ t('carouselSearchSwiperTips') }}</div>
|
<div class="text-sm text-gray-400 mb-[10px]">{{ t('carouselSearchSwiperTips') }}</div>
|
||||||
@ -173,6 +199,46 @@
|
|||||||
|
|
||||||
<!-- 样式 -->
|
<!-- 样式 -->
|
||||||
<div class="style-wrap" v-show="diyStore.editTab == 'style'">
|
<div class="style-wrap" v-show="diyStore.editTab == 'style'">
|
||||||
|
<div class="edit-attr-item-wrap" v-if="diyStore.editComponent.search.style == 'style-2'">
|
||||||
|
<h3 class="mb-[10px]">{{ t('carouselSearchPositionStyle') }}</h3>
|
||||||
|
<el-form label-width="100px" class="px-[10px]">
|
||||||
|
<el-form-item :label="t('carouselSearchTextColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.search.positionColor" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="edit-attr-item-wrap" v-if="diyStore.editComponent.search.style == 'style-2'">
|
||||||
|
<h3 class="mb-[10px]">{{ t('carouselSearchSubTitleStyle') }}</h3>
|
||||||
|
<el-form label-width="100px" class="px-[10px]">
|
||||||
|
<el-form-item :label="t('carouselSearchTextColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.search.subTitle.textColor" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('carouselSearchBgColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.search.subTitle.startColor" :predefine="diyStore.predefineColors" show-alpha/>
|
||||||
|
<icon name="iconfont iconmap-connect" size="20px" class="block !text-gray-400 mx-[5px]"/>
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.search.subTitle.endColor" :predefine="diyStore.predefineColors" show-alpha/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="edit-attr-item-wrap">
|
||||||
|
<h3 class="mb-[10px]">{{ t('carouselSearchStyle') }}</h3>
|
||||||
|
<el-form label-width="100px" class="px-[10px]">
|
||||||
|
<el-form-item :label="t('carouselSearchTextColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.search.color" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('carouselSearchBgColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.search.bgColor" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('carouselSearchBtnColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.search.btnColor" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('carouselSearchBtnBgColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.search.btnBgColor" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="edit-attr-item-wrap">
|
<div class="edit-attr-item-wrap">
|
||||||
<h3 class="mb-[10px]">{{ t('carouselSearchTabStyle') }}</h3>
|
<h3 class="mb-[10px]">{{ t('carouselSearchTabStyle') }}</h3>
|
||||||
@ -199,13 +265,14 @@
|
|||||||
<el-radio-group v-model="diyStore.editComponent.swiper.swiperStyle">
|
<el-radio-group v-model="diyStore.editComponent.swiper.swiperStyle">
|
||||||
<el-radio label="style-1">{{ t('carouselSearchSwiperIndicatorStyle1') }}</el-radio>
|
<el-radio label="style-1">{{ t('carouselSearchSwiperIndicatorStyle1') }}</el-radio>
|
||||||
<el-radio label="style-2">{{ t('carouselSearchSwiperIndicatorStyle2') }}</el-radio>
|
<el-radio label="style-2">{{ t('carouselSearchSwiperIndicatorStyle2') }}</el-radio>
|
||||||
|
<el-radio label="style-3">{{ t('carouselSearchSwiperIndicatorStyle3') }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('topRounded')">
|
<el-form-item :label="t('topRounded')">
|
||||||
<el-slider v-model="diyStore.editComponent.swiper.topRounded" show-input size="small" class="ml-[10px] horz-blank-slider" :max="50" />
|
<el-slider v-model="diyStore.editComponent.swiper.topRounded" show-input size="small" class="ml-[10px] diy-nav-slider" :max="50" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('bottomRounded')">
|
<el-form-item :label="t('bottomRounded')">
|
||||||
<el-slider v-model="diyStore.editComponent.swiper.bottomRounded" show-input size="small" class="ml-[10px] horz-blank-slider" :max="50" />
|
<el-slider v-model="diyStore.editComponent.swiper.bottomRounded" show-input size="small" class="ml-[10px] diy-nav-slider" :max="50" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -217,6 +284,7 @@
|
|||||||
<el-radio-group v-model="diyStore.editComponent.swiper.indicatorStyle">
|
<el-radio-group v-model="diyStore.editComponent.swiper.indicatorStyle">
|
||||||
<el-radio label="style-1">{{ t('carouselSearchSwiperIndicatorStyle1') }}</el-radio>
|
<el-radio label="style-1">{{ t('carouselSearchSwiperIndicatorStyle1') }}</el-radio>
|
||||||
<el-radio label="style-2">{{ t('carouselSearchSwiperIndicatorStyle2') }}</el-radio>
|
<el-radio label="style-2">{{ t('carouselSearchSwiperIndicatorStyle2') }}</el-radio>
|
||||||
|
<el-radio label="style-3">{{ t('carouselSearchSwiperIndicatorStyle3') }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('carouselSearchSwiperIndicatorAlign')">
|
<el-form-item :label="t('carouselSearchSwiperIndicatorAlign')">
|
||||||
@ -280,6 +348,7 @@ diyStore.editComponent.verify = (index: number) => {
|
|||||||
// }
|
// }
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if(diyStore.value[index].swiper.control){
|
||||||
diyStore.value[index].swiper.list.forEach((item: any) => {
|
diyStore.value[index].swiper.list.forEach((item: any) => {
|
||||||
if(item.imageUrl == ''){
|
if(item.imageUrl == ''){
|
||||||
res.code = false
|
res.code = false
|
||||||
@ -287,10 +356,51 @@ diyStore.editComponent.verify = (index: number) => {
|
|||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/************** 搜索框样式选择-start ********************/
|
||||||
|
const selectSearchStyle = reactive({
|
||||||
|
title: diyStore.editComponent.search.styleName,
|
||||||
|
value: diyStore.editComponent.search.style
|
||||||
|
})
|
||||||
|
|
||||||
|
const showSearchDialog = ref(false)
|
||||||
|
|
||||||
|
const showSearchStyle = () => {
|
||||||
|
showSearchDialog.value = true
|
||||||
|
selectSearchStyle.title = diyStore.editComponent.search.styleName;
|
||||||
|
selectSearchStyle.value = diyStore.editComponent.search.style;
|
||||||
|
}
|
||||||
|
|
||||||
|
const changeSearchStyle = (item:any) => {
|
||||||
|
selectSearchStyle.title = item.title;
|
||||||
|
selectSearchStyle.value = item.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
const confirmSearchStyle = () => {
|
||||||
|
diyStore.editComponent.search.styleName = selectSearchStyle.title;
|
||||||
|
diyStore.editComponent.search.style = selectSearchStyle.value;
|
||||||
|
showSearchDialog.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const searchStyleList = reactive([
|
||||||
|
{
|
||||||
|
url: 'static/resource/images/diy/carousel_search/style_1.png',
|
||||||
|
title: '风格1',
|
||||||
|
value: 'style-1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: 'static/resource/images/diy/carousel_search/style_2.png',
|
||||||
|
title: '风格2',
|
||||||
|
value: 'style-2'
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
/************** 搜索框样式选择-end ********************/
|
||||||
|
|
||||||
diyStore.editComponent.search.hotWord.list.forEach((item: any) => {
|
diyStore.editComponent.search.hotWord.list.forEach((item: any) => {
|
||||||
if (!item.id) item.id = diyStore.generateRandom()
|
if (!item.id) item.id = diyStore.generateRandom()
|
||||||
})
|
})
|
||||||
|
|||||||
@ -41,7 +41,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('floatBtnOffset')">
|
<el-form-item :label="t('floatBtnOffset')">
|
||||||
<el-slider v-model="diyStore.editComponent.offset" show-input size="small" class="ml-[10px] horz-blank-slider" :max="100"/>
|
<el-slider v-model="diyStore.editComponent.offset" show-input size="small" class="ml-[10px] diy-nav-slider" :max="100"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -49,10 +49,10 @@
|
|||||||
<h3 class="mb-[10px]">{{ t('floatBtnImageSet') }}</h3>
|
<h3 class="mb-[10px]">{{ t('floatBtnImageSet') }}</h3>
|
||||||
<el-form label-width="80px" class="px-[10px]">
|
<el-form label-width="80px" class="px-[10px]">
|
||||||
<el-form-item :label="t('floatBtnImageSize')">
|
<el-form-item :label="t('floatBtnImageSize')">
|
||||||
<el-slider v-model="diyStore.editComponent.imageSize" show-input size="small" class="ml-[10px] horz-blank-slider" :min="30" :max="100"/>
|
<el-slider v-model="diyStore.editComponent.imageSize" show-input size="small" class="ml-[10px] diy-nav-slider" :min="30" :max="100"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('floatBtnAroundRadius')">
|
<el-form-item :label="t('floatBtnAroundRadius')">
|
||||||
<el-slider v-model="diyStore.editComponent.aroundRadius" show-input size="small" class="ml-[10px] graphic-nav-slider" :max="50"/>
|
<el-slider v-model="diyStore.editComponent.aroundRadius" show-input size="small" class="ml-[10px] diy-nav-slider" :max="50"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<div class="text-[12px] text-[#999] mb-[15px] mt-[5px]">{{t('floatBtnImageSuggest')}}</div>
|
<div class="text-[12px] text-[#999] mb-[15px] mt-[5px]">{{t('floatBtnImageSuggest')}}</div>
|
||||||
|
|||||||
@ -45,7 +45,6 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<div class="edit-attr-item-wrap">
|
<div class="edit-attr-item-wrap">
|
||||||
@ -86,10 +85,10 @@
|
|||||||
<h3 class="mb-[10px]">{{ t('graphicNavImageSet') }}</h3>
|
<h3 class="mb-[10px]">{{ t('graphicNavImageSet') }}</h3>
|
||||||
<el-form label-width="90px" class="px-[10px]">
|
<el-form label-width="90px" class="px-[10px]">
|
||||||
<el-form-item :label="t('graphicNavImageSize')">
|
<el-form-item :label="t('graphicNavImageSize')">
|
||||||
<el-slider v-model="diyStore.editComponent.imageSize" show-input size="small" class="ml-[10px] graphic-nav-slider" :min="20" :max="60"/>
|
<el-slider v-model="diyStore.editComponent.imageSize" show-input size="small" class="ml-[10px] diy-nav-slider" :min="20" :max="60"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('graphicNavAroundRadius')">
|
<el-form-item :label="t('graphicNavAroundRadius')">
|
||||||
<el-slider v-model="diyStore.editComponent.aroundRadius" show-input size="small" class="ml-[10px] graphic-nav-slider" :max="50"/>
|
<el-slider v-model="diyStore.editComponent.aroundRadius" show-input size="small" class="ml-[10px] diy-nav-slider" :max="50"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -97,7 +96,7 @@
|
|||||||
<h3 class="mb-[10px]">{{ t('textSet') }}</h3>
|
<h3 class="mb-[10px]">{{ t('textSet') }}</h3>
|
||||||
<el-form label-width="90px" class="px-[10px]">
|
<el-form label-width="90px" class="px-[10px]">
|
||||||
<el-form-item :label="t('textFontSize')">
|
<el-form-item :label="t('textFontSize')">
|
||||||
<el-slider v-model="diyStore.editComponent.font.size" show-input size="small" class="ml-[10px] graphic-nav-slider" :min="12" :max="16"/>
|
<el-slider v-model="diyStore.editComponent.font.size" show-input size="small" class="ml-[10px] diy-nav-slider" :min="12" :max="16"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('textFontWeight')">
|
<el-form-item :label="t('textFontWeight')">
|
||||||
<el-radio-group v-model="diyStore.editComponent.font.weight">
|
<el-radio-group v-model="diyStore.editComponent.font.weight">
|
||||||
@ -111,6 +110,31 @@
|
|||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="edit-attr-item-wrap" v-show="diyStore.editComponent.showStyle == 'pageSlide' && diyStore.editComponent.layout == 'horizontal'">
|
||||||
|
<h3 class="mb-[10px]">{{ t('carouselSearchSwiperIndicatorSet') }}</h3>
|
||||||
|
<el-form label-width="100px" class="px-[10px]">
|
||||||
|
<el-form-item :label="t('carouselSearchSwiperIndicatorStyle')">
|
||||||
|
<el-radio-group v-model="diyStore.editComponent.swiper.indicatorStyle">
|
||||||
|
<el-radio label="style-1">{{ t('carouselSearchSwiperIndicatorStyle1') }}</el-radio>
|
||||||
|
<el-radio label="style-2">{{ t('carouselSearchSwiperIndicatorStyle2') }}</el-radio>
|
||||||
|
<el-radio label="style-3">{{ t('carouselSearchSwiperIndicatorStyle3') }}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('carouselSearchSwiperIndicatorAlign')">
|
||||||
|
<el-radio-group v-model="diyStore.editComponent.swiper.indicatorAlign">
|
||||||
|
<el-radio label="left">{{ t('alignLeft') }}</el-radio>
|
||||||
|
<el-radio label="center">{{ t('alignCenter') }}</el-radio>
|
||||||
|
<el-radio label="right">{{ t('alignRight') }}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('noColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.swiper.indicatorColor" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('selectColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.swiper.indicatorActiveColor" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- 组件样式 -->
|
<!-- 组件样式 -->
|
||||||
<slot name="style"></slot>
|
<slot name="style"></slot>
|
||||||
@ -130,7 +154,6 @@ import useDiyStore from '@/stores/modules/diy'
|
|||||||
|
|
||||||
const diyStore = useDiyStore()
|
const diyStore = useDiyStore()
|
||||||
diyStore.editComponent.ignore = [] // 忽略公共属性
|
diyStore.editComponent.ignore = [] // 忽略公共属性
|
||||||
|
|
||||||
// 组件验证
|
// 组件验证
|
||||||
diyStore.editComponent.verify = (index: number) => {
|
diyStore.editComponent.verify = (index: number) => {
|
||||||
const res = { code: true, message: '' }
|
const res = { code: true, message: '' }
|
||||||
@ -221,13 +244,6 @@ defineExpose({})
|
|||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.graphic-nav-slider {
|
|
||||||
.el-slider__input {
|
|
||||||
width: 100px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.edit-graphic-nav {
|
.edit-graphic-nav {
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<h3 class="mb-[10px]">{{ t('blankHeightSet') }}</h3>
|
<h3 class="mb-[10px]">{{ t('blankHeightSet') }}</h3>
|
||||||
<el-form label-width="80px" class="px-[10px]">
|
<el-form label-width="80px" class="px-[10px]">
|
||||||
<el-form-item :label="t('blankHeight')">
|
<el-form-item :label="t('blankHeight')">
|
||||||
<el-slider v-model="diyStore.editComponent.height" show-input size="small" max="200" class="ml-[10px] horz-blank-slider"/>
|
<el-slider v-model="diyStore.editComponent.height" show-input size="small" max="200" class="ml-[10px] diy-nav-slider"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -31,11 +31,4 @@ defineExpose({})
|
|||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.horz-blank-slider {
|
|
||||||
.el-slider__input {
|
|
||||||
width: 100px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
<el-color-picker v-model="diyStore.editComponent.borderColor" show-alpha :predefine="diyStore.predefineColors"/>
|
<el-color-picker v-model="diyStore.editComponent.borderColor" show-alpha :predefine="diyStore.predefineColors"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('horzLineBorderWidth')">
|
<el-form-item :label="t('horzLineBorderWidth')">
|
||||||
<el-slider v-model="diyStore.editComponent.borderWidth" show-input size="small" class="ml-[10px] horz-blank-slider" :min="1" :max="10"/>
|
<el-slider v-model="diyStore.editComponent.borderWidth" show-input size="small" class="ml-[10px] diy-nav-slider" :min="1" :max="10"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -40,11 +40,4 @@ defineExpose({})
|
|||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.horz-blank-slider {
|
|
||||||
.el-slider__input {
|
|
||||||
width: 100px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<!-- 内容 -->
|
<!-- 内容 -->
|
||||||
<div class="content-wrap" v-show="diyStore.editTab == 'content'">
|
<div class="content-wrap" v-show="diyStore.editTab == 'content'">
|
||||||
@ -12,11 +13,11 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-dialog v-model="showDialog" :title="t('selectStyle')" width="500px">
|
<el-dialog v-model="showDialog" :title="t('selectStyle')" width="660px">
|
||||||
|
|
||||||
<div class="flex flex-wrap">
|
<div class="flex flex-wrap">
|
||||||
<template v-for="(item,index) in styleList" :key="index">
|
<template v-for="(item,index) in styleList" :key="index">
|
||||||
<div :class="{ 'border-primary': selectStyle.value == item.value }" @click="changeStyle(item)" class="flex items-center justify-center overflow-hidden w-[200px] h-[100px] mr-[12px] cursor-pointer border bg-gray-50">
|
<div :class="{ 'border-primary': selectStyle.value == item.value, '!mr-[0]': [(index+1)%3] == 0 }" @click="changeStyle(item)" class="flex my-[5px] items-center justify-center overflow-hidden w-[200px] h-[100px] mr-[12px] cursor-pointer border bg-gray-50">
|
||||||
<img :src="img(item.url)" />
|
<img :src="img(item.url)" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -80,6 +81,16 @@ const styleList = reactive([
|
|||||||
url: 'static/resource/images/diy/member/member_level_style3.jpg',
|
url: 'static/resource/images/diy/member/member_level_style3.jpg',
|
||||||
title: '风格3',
|
title: '风格3',
|
||||||
value: 'style-3'
|
value: 'style-3'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: 'static/resource/images/diy/member/member_level_style4.png',
|
||||||
|
title: '风格4',
|
||||||
|
value: 'style-4'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: 'static/resource/images/diy/member/member_level_style5.png',
|
||||||
|
title: '风格5',
|
||||||
|
value: 'style-5'
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
@ -11,14 +11,14 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div class="flex items-center flex-wrap py-[8px] px-[10px] bg-[#f4f3f7] rounded mb-[18px] mx-[18px]" v-show="diyStore.editComponent.noticeType == 'img'">
|
<div class="flex items-center flex-wrap py-[8px] px-[10px] bg-[#f4f3f7] rounded mb-[18px] mx-[18px]" v-show="diyStore.editComponent.noticeType == 'img'">
|
||||||
<div :class="['mr-[10px] rounded cursor-pointer', {'border-[1px] border-solid border-[var(--el-color-primary)]': diyStore.editComponent.systemUrl == 'style_1' && diyStore.editComponent.imgType == 'system'}]">
|
<div :class="['mr-[10px] rounded cursor-pointer border-[1px] border-solid', {'border-[var(--el-color-primary)]': diyStore.editComponent.systemUrl == 'style_1' && diyStore.editComponent.imgType == 'system'}]">
|
||||||
<img src="@/app/assets/images/diy/notice/style_1.png" :class="['h-[28px] px-[10px] py-[5px]']" @click="changeStyle('style_1')"/>
|
<img src="@/app/assets/images/diy/notice/style_1.png" :class="['h-[28px] px-[10px] py-[5px]']" @click="changeStyle('style_1')"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div :class="['mr-[10px] rounded cursor-pointer w-[100px]', {'border-[1px] border-solid border-[var(--el-color-primary)]': diyStore.editComponent.systemUrl == 'style_2' && diyStore.editComponent.imgType == 'system'}]">
|
<div :class="['mr-[10px] rounded cursor-pointer w-[100px] border-[1px] border-solid', {'border-[var(--el-color-primary)]': diyStore.editComponent.systemUrl == 'style_2' && diyStore.editComponent.imgType == 'system'}]">
|
||||||
<img src="@/app/assets/images/diy/notice/style_2.png" class="px-[10px] py-[5px]" @click="changeStyle('style_2')"/>
|
<img src="@/app/assets/images/diy/notice/style_2.png" class="px-[10px] py-[5px]" @click="changeStyle('style_2')"/>
|
||||||
</div>
|
</div>
|
||||||
<div @click.stop="diyStore.editComponent.imgType = 'diy'" :class="['mr-[10px] rounded cursor-pointer diy-upload-img', {'border-[1px] border-solid border-[var(--el-color-primary)]': (diyStore.editComponent.imageUrl && diyStore.editComponent.imgType == 'diy') }]">
|
<div @click.stop="diyStore.editComponent.imgType = 'diy'" :class="['mr-[10px] rounded cursor-pointer diy-upload-img border-[1px] border-solid', {'border-[var(--el-color-primary)]': (diyStore.editComponent.imageUrl && diyStore.editComponent.imgType == 'diy') }]">
|
||||||
<upload-image v-model="diyStore.editComponent.imageUrl" :limit="1"/>
|
<upload-image v-model="diyStore.editComponent.imageUrl" :limit="1"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -80,7 +80,7 @@
|
|||||||
<h3 class="mb-[10px]">{{ t('textSet') }}</h3>
|
<h3 class="mb-[10px]">{{ t('textSet') }}</h3>
|
||||||
<el-form label-width="80px" class="px-[10px]">
|
<el-form label-width="80px" class="px-[10px]">
|
||||||
<el-form-item :label="t('textFontSize')">
|
<el-form-item :label="t('textFontSize')">
|
||||||
<el-slider v-model="diyStore.editComponent.fontSize" show-input size="small" class="ml-[10px] article-slider" :min="12" :max="20"/>
|
<el-slider v-model="diyStore.editComponent.fontSize" show-input size="small" class="ml-[10px] diy-nav-slider" :min="12" :max="20"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('textFontWeight')">
|
<el-form-item :label="t('textFontWeight')">
|
||||||
<el-radio-group v-model="diyStore.editComponent.fontWeight">
|
<el-radio-group v-model="diyStore.editComponent.fontWeight">
|
||||||
|
|||||||
@ -104,7 +104,7 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('bgHeightScale')">
|
<el-form-item :label="t('bgHeightScale')">
|
||||||
<el-slider v-model="diyStore.global.bgHeightScale" show-input size="small" class="ml-[10px] horz-blank-slider"/>
|
<el-slider v-model="diyStore.global.bgHeightScale" show-input size="small" class="ml-[10px] diy-nav-slider"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div class="text-sm text-gray-400 ml-[80px] mb-[10px]">{{ t('bgHeightScaleTip') }}</div>
|
<div class="text-sm text-gray-400 ml-[80px] mb-[10px]">{{ t('bgHeightScaleTip') }}</div>
|
||||||
<el-form-item :label="t('bgUrl')">
|
<el-form-item :label="t('bgUrl')">
|
||||||
@ -133,7 +133,7 @@
|
|||||||
<h3 class="mb-[10px]">{{ t('marginSet') }}</h3>
|
<h3 class="mb-[10px]">{{ t('marginSet') }}</h3>
|
||||||
<el-form label-width="115px" class="px-[10px]">
|
<el-form label-width="115px" class="px-[10px]">
|
||||||
<el-form-item :label="t('marginBoth')">
|
<el-form-item :label="t('marginBoth')">
|
||||||
<el-slider v-model="diyStore.global.template.margin.both" show-input size="small" @input="inputBoth" class="ml-[10px] horz-blank-slider"/>
|
<el-slider v-model="diyStore.global.template.margin.both" show-input size="small" @input="inputBoth" class="ml-[10px] diy-nav-slider"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
156
admin/src/app/views/diy/components/edit-picture-show.vue
Normal file
156
admin/src/app/views/diy/components/edit-picture-show.vue
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
<template>
|
||||||
|
<!-- 内容 -->
|
||||||
|
<div class="content-wrap" v-show="diyStore.editTab == 'content'">
|
||||||
|
|
||||||
|
<div class="edit-attr-item-wrap">
|
||||||
|
<h3 class="mb-[10px]">{{ t('pictureShowBlockOne') }}</h3>
|
||||||
|
<el-form label-width="80px" class="px-[10px]">
|
||||||
|
<el-form-item :label="t('image')">
|
||||||
|
<upload-image v-model="diyStore.editComponent.moduleOne.head.textImg" :limit="1"/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('subTitle')">
|
||||||
|
<el-input v-model.trim="diyStore.editComponent.moduleOne.head.subText" :placeholder="t('subTitlePlaceholder')" clearable maxlength="8" show-word-limit />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('subTitleTextColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.moduleOne.head.subTextColor" show-alpha />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('pictureShowBgColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.moduleOne.listFrame.startColor" show-alpha />
|
||||||
|
<icon name="iconfont iconmap-connect" size="20px" class="block !text-gray-400 mx-[5px]"/>
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.moduleOne.listFrame.endColor" show-alpha />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<div v-for="(item,index) in diyStore.editComponent.moduleOne.list" :key="item.id" class="item-wrap p-[10px] pb-0 relative border border-dashed border-gray-300 mb-[16px]">
|
||||||
|
<el-form-item :label="t('image')">
|
||||||
|
<upload-image v-model="item.imageUrl" :limit="1"/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('pictureShowBtnText')">
|
||||||
|
<el-input v-model.trim="item.btnTitle.text" :placeholder="t('activeCubeTitlePlaceholder')" clearable maxlength="4" show-word-limit/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('pictureShowBtnColor')">
|
||||||
|
<el-color-picker v-model="item.btnTitle.color" show-alpha />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('pictureShowBtnBgColor')">
|
||||||
|
<el-color-picker v-model="item.btnTitle.startColor" show-alpha />
|
||||||
|
<icon name="iconfont iconmap-connect" size="20px" class="block !text-gray-400 mx-[5px]"/>
|
||||||
|
<el-color-picker v-model="item.btnTitle.endColor" show-alpha />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('link')">
|
||||||
|
<diy-link v-model="item.link"/>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="edit-attr-item-wrap">
|
||||||
|
<h3 class="mb-[10px]">{{ t('pictureShowBlockTwo') }}</h3>
|
||||||
|
<el-form label-width="90px" class="px-[10px]">
|
||||||
|
<el-form-item :label="t('image')">
|
||||||
|
<upload-image v-model="diyStore.editComponent.moduleTwo.head.textImg" :limit="1"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('subTitle')">
|
||||||
|
<el-input v-model.trim="diyStore.editComponent.moduleTwo.head.subText" :placeholder="t('subTitlePlaceholder')" clearable maxlength="8" show-word-limit />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('subTitleTextColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.moduleTwo.head.subTextColor" show-alpha />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('pictureShowBgColor')">
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.moduleTwo.listFrame.startColor" show-alpha />
|
||||||
|
<icon name="iconfont iconmap-connect" size="20px" class="block !text-gray-400 mx-[5px]"/>
|
||||||
|
<el-color-picker v-model="diyStore.editComponent.moduleTwo.listFrame.endColor" show-alpha />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<div v-for="(item,index) in diyStore.editComponent.moduleTwo.list" :key="item.id" class="item-wrap p-[10px] pb-0 relative border border-dashed border-gray-300 mb-[16px]">
|
||||||
|
<el-form-item :label="t('image')">
|
||||||
|
<upload-image v-model="item.imageUrl" :limit="1"/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('pictureShowBtnText')">
|
||||||
|
<el-input v-model.trim="item.btnTitle.text" :placeholder="t('activeCubeTitlePlaceholder')" clearable maxlength="4" show-word-limit/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('pictureShowBtnColor')">
|
||||||
|
<el-color-picker v-model="item.btnTitle.color" show-alpha />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('pictureShowBtnBgColor')">
|
||||||
|
<el-color-picker v-model="item.btnTitle.startColor" show-alpha />
|
||||||
|
<icon name="iconfont iconmap-connect" size="20px" class="block !text-gray-400 mx-[5px]"/>
|
||||||
|
<el-color-picker v-model="item.btnTitle.endColor" show-alpha />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('link')">
|
||||||
|
<diy-link v-model="item.link"/>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 样式 -->
|
||||||
|
<div class="style-wrap" v-show="diyStore.editTab == 'style'">
|
||||||
|
<div class="edit-attr-item-wrap">
|
||||||
|
<h3 class="mb-[10px]">{{ t('pictureShowBlockStyle') }}</h3>
|
||||||
|
<el-form label-width="90px" class="px-[10px]">
|
||||||
|
<el-form-item :label="t('topRounded')">
|
||||||
|
<el-slider v-model="diyStore.editComponent.moduleRounded.topRounded" show-input size="small" class="ml-[10px] diy-nav-slider" :max="100"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('bottomRounded')">
|
||||||
|
<el-slider v-model="diyStore.editComponent.moduleRounded.bottomRounded" show-input size="small" class="ml-[10px] diy-nav-slider" :max="100"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 组件样式 -->
|
||||||
|
<slot name="style"></slot>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { t } from '@/lang'
|
||||||
|
import useDiyStore from '@/stores/modules/diy'
|
||||||
|
import { img } from '@/utils/common'
|
||||||
|
import { ref, reactive } from 'vue'
|
||||||
|
|
||||||
|
const diyStore = useDiyStore()
|
||||||
|
diyStore.editComponent.ignore = [] // 忽略公共属性
|
||||||
|
|
||||||
|
// 组件验证
|
||||||
|
diyStore.editComponent.verify = (index: number) => {
|
||||||
|
const res = { code: true, message: '' }
|
||||||
|
diyStore.value[index].moduleOne.list.forEach((item: any) => {
|
||||||
|
if (item.imageUrl === '') {
|
||||||
|
res.code = false
|
||||||
|
res.message = t('imageUrlTip')
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
diyStore.value[index].moduleTwo.list.forEach((item: any) => {
|
||||||
|
if (item.imageUrl === '') {
|
||||||
|
res.code = false
|
||||||
|
res.message = t('imageUrlTip')
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
</style>
|
||||||
@ -54,13 +54,13 @@
|
|||||||
<h3 class="mb-[10px]">{{ t('rubikCubeStyle') }}</h3>
|
<h3 class="mb-[10px]">{{ t('rubikCubeStyle') }}</h3>
|
||||||
<el-form label-width="80px" class="px-[10px]">
|
<el-form label-width="80px" class="px-[10px]">
|
||||||
<el-form-item :label="t('imageGap')">
|
<el-form-item :label="t('imageGap')">
|
||||||
<el-slider v-model="diyStore.editComponent.imageGap" show-input size="small" class="ml-[10px] horz-blank-slider" :max="30"/>
|
<el-slider v-model="diyStore.editComponent.imageGap" show-input size="small" class="ml-[10px] diy-nav-slider" :max="30"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('topRounded')">
|
<el-form-item :label="t('topRounded')">
|
||||||
<el-slider v-model="diyStore.editComponent.topElementRounded" show-input size="small" class="ml-[10px] horz-blank-slider" :max="50"/>
|
<el-slider v-model="diyStore.editComponent.topElementRounded" show-input size="small" class="ml-[10px] diy-nav-slider" :max="50"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('bottomRounded')">
|
<el-form-item :label="t('bottomRounded')">
|
||||||
<el-slider v-model="diyStore.editComponent.bottomElementRounded" show-input size="small" class="ml-[10px] horz-blank-slider" :max="50"/>
|
<el-slider v-model="diyStore.editComponent.bottomElementRounded" show-input size="small" class="ml-[10px] diy-nav-slider" :max="50"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -37,7 +37,7 @@
|
|||||||
<el-input v-model.trim="diyStore.editComponent.subTitle.text" :placeholder="t('subTitlePlaceholder')" clearable maxlength="30" show-word-limit />
|
<el-input v-model.trim="diyStore.editComponent.subTitle.text" :placeholder="t('subTitlePlaceholder')" clearable maxlength="30" show-word-limit />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('textFontSize')">
|
<el-form-item :label="t('textFontSize')">
|
||||||
<el-slider v-model="diyStore.editComponent.subTitle.fontSize" show-input size="small" class="ml-[10px] article-slider" :min="12" :max="16" />
|
<el-slider v-model="diyStore.editComponent.subTitle.fontSize" show-input size="small" class="ml-[10px] diy-nav-slider" :min="12" :max="16" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('textColor')">
|
<el-form-item :label="t('textColor')">
|
||||||
<el-color-picker v-model="diyStore.editComponent.subTitle.color" />
|
<el-color-picker v-model="diyStore.editComponent.subTitle.color" />
|
||||||
@ -91,7 +91,7 @@
|
|||||||
<h3 class="mb-[10px]">{{ t('titleStyle') }}</h3>
|
<h3 class="mb-[10px]">{{ t('titleStyle') }}</h3>
|
||||||
<el-form label-width="80px" class="px-[10px]">
|
<el-form label-width="80px" class="px-[10px]">
|
||||||
<el-form-item :label="t('textFontSize')">
|
<el-form-item :label="t('textFontSize')">
|
||||||
<el-slider v-model="diyStore.editComponent.fontSize" show-input size="small" class="ml-[10px] article-slider" :min="12" :max="30" />
|
<el-slider v-model="diyStore.editComponent.fontSize" show-input size="small" class="ml-[10px] diy-nav-slider" :min="12" :max="30" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('textFontWeight')">
|
<el-form-item :label="t('textFontWeight')">
|
||||||
<el-radio-group v-model="diyStore.editComponent.fontWeight">
|
<el-radio-group v-model="diyStore.editComponent.fontWeight">
|
||||||
|
|||||||
@ -165,7 +165,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item :label="t('componentBgAlpha')" v-if="diyStore.editComponent.ignore.indexOf('componentBgUrl') == -1 && diyStore.editComponent.componentBgUrl">
|
<el-form-item :label="t('componentBgAlpha')" v-if="diyStore.editComponent.ignore.indexOf('componentBgUrl') == -1 && diyStore.editComponent.componentBgUrl">
|
||||||
<el-slider v-model="diyStore.editComponent.componentBgAlpha" show-input size="small" :min="0" :max="10" class="ml-[10px] horz-blank-slider" />
|
<el-slider v-model="diyStore.editComponent.componentBgAlpha" show-input size="small" :min="0" :max="10" class="ml-[10px] diy-nav-slider" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item :label="t('componentBgColor')" v-if="diyStore.editComponent.ignore.indexOf('componentBgColor') == -1">
|
<el-form-item :label="t('componentBgColor')" v-if="diyStore.editComponent.ignore.indexOf('componentBgColor') == -1">
|
||||||
@ -182,19 +182,19 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item :label="t('marginTop')" v-if="diyStore.editComponent.ignore.indexOf('marginTop') == -1">
|
<el-form-item :label="t('marginTop')" v-if="diyStore.editComponent.ignore.indexOf('marginTop') == -1">
|
||||||
<el-slider v-model="diyStore.editComponent.margin.top" show-input size="small" :min="-100" class="ml-[10px] horz-blank-slider" />
|
<el-slider v-model="diyStore.editComponent.margin.top" show-input size="small" :min="-100" class="ml-[10px] diy-nav-slider" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('marginBottom')" v-if="diyStore.editComponent.ignore.indexOf('marginBottom') == -1">
|
<el-form-item :label="t('marginBottom')" v-if="diyStore.editComponent.ignore.indexOf('marginBottom') == -1">
|
||||||
<el-slider v-model="diyStore.editComponent.margin.bottom" show-input size="small" class="ml-[10px] horz-blank-slider" />
|
<el-slider v-model="diyStore.editComponent.margin.bottom" show-input size="small" class="ml-[10px] diy-nav-slider" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('marginBoth')" v-if="diyStore.editComponent.ignore.indexOf('marginBoth') == -1">
|
<el-form-item :label="t('marginBoth')" v-if="diyStore.editComponent.ignore.indexOf('marginBoth') == -1">
|
||||||
<el-slider v-model="diyStore.editComponent.margin.both" show-input size="small" class="ml-[10px] horz-blank-slider" />
|
<el-slider v-model="diyStore.editComponent.margin.both" show-input size="small" class="ml-[10px] diy-nav-slider" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('topRounded')" v-if="diyStore.editComponent.ignore.indexOf('topRounded') == -1">
|
<el-form-item :label="t('topRounded')" v-if="diyStore.editComponent.ignore.indexOf('topRounded') == -1">
|
||||||
<el-slider v-model="diyStore.editComponent.topRounded" show-input size="small" class="ml-[10px] horz-blank-slider" :max="100" />
|
<el-slider v-model="diyStore.editComponent.topRounded" show-input size="small" class="ml-[10px] diy-nav-slider" :max="100" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('bottomRounded')" v-if="diyStore.editComponent.ignore.indexOf('bottomRounded') == -1">
|
<el-form-item :label="t('bottomRounded')" v-if="diyStore.editComponent.ignore.indexOf('bottomRounded') == -1">
|
||||||
<el-slider v-model="diyStore.editComponent.bottomRounded" show-input size="small" class="ml-[10px] horz-blank-slider" :max="100" />
|
<el-slider v-model="diyStore.editComponent.bottomRounded" show-input size="small" class="ml-[10px] diy-nav-slider" :max="100" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -679,6 +679,11 @@ const settingTips = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.diy-nav-slider {
|
||||||
|
.el-slider__input {
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.full-container {
|
.full-container {
|
||||||
|
|||||||
@ -4,14 +4,14 @@
|
|||||||
|
|
||||||
<el-form class="page-form" :model="formData" label-width="150px" ref="ruleFormRef" :rules="formRules" v-loading="loading">
|
<el-form class="page-form" :model="formData" label-width="150px" ref="ruleFormRef" :rules="formRules" v-loading="loading">
|
||||||
<el-card class="box-card !border-none" shadow="never">
|
<el-card class="box-card !border-none" shadow="never">
|
||||||
<h3 class="panel-title !text-sm">{{ t('signRule') }}</h3>
|
<h3 class="text-page-title">{{ t('signRule') }}</h3>
|
||||||
|
|
||||||
<el-form-item :label="t('isUse')">
|
<el-form-item :label="t('isUse')">
|
||||||
<el-switch v-model="formData.is_use" />
|
<el-switch v-model="formData.is_use" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item :label="t('signPeriod')" v-if="formData.is_use">
|
<el-form-item :label="t('signPeriod')" v-if="formData.is_use">
|
||||||
<el-input-number v-model="formData.sign_period" :min="0" :precision="0" clearable class="input-width" controls-position="right" /><span class="ml-[10px]">天</span>
|
<el-input-number v-model="formData.sign_period" :min="1" :precision="0" clearable class="input-width" controls-position="right" /><span class="ml-[10px]">天</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item :label="t('daySignAward')" prop="day_award" v-if="formData.is_use">
|
<el-form-item :label="t('daySignAward')" prop="day_award" v-if="formData.is_use">
|
||||||
@ -89,7 +89,7 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 连签奖励 -->
|
<!-- 连签奖励 -->
|
||||||
<el-dialog v-model="continueSignDialog" :title="t('continueSignTitle')" width="1000px" :destroy-on-close="true" v-if="formData.is_use">
|
<el-dialog v-model="continueSignDialog" :title="t('continueSignTitle')" width="1200px" :destroy-on-close="true" v-if="formData.is_use">
|
||||||
<sign-continue ref="continueRef" v-model="continue_award" />
|
<sign-continue ref="continueRef" v-model="continue_award" />
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<el-card class="box-card !border-none" shadow="never">
|
<el-card class="box-card !border-none" shadow="never">
|
||||||
<h3 class="panel-title !text-sm">{{ t('admin') }}</h3>
|
<h3 class="panel-title !text-sm">{{ t('admin') }}</h3>
|
||||||
|
|
||||||
<el-form-item :label="t('isCaptcha')" prop="formData.is_auth_register">
|
<el-form-item :label="t('isCaptcha')">
|
||||||
<el-switch v-model="formData.is_captcha" :active-value="1" :inactive-value="0" />
|
<el-switch v-model="formData.is_captcha" :active-value="1" :inactive-value="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('bgImg')">
|
<el-form-item :label="t('bgImg')">
|
||||||
@ -39,8 +39,7 @@ const loading = ref(true)
|
|||||||
const ruleFormRef = ref<FormInstance>()
|
const ruleFormRef = ref<FormInstance>()
|
||||||
const formData = reactive<Record<string, number | string>>({
|
const formData = reactive<Record<string, number | string>>({
|
||||||
is_captcha: 0,
|
is_captcha: 0,
|
||||||
bg: '',
|
bg: ''
|
||||||
site_bg: ''
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const getFormData = async () => {
|
const getFormData = async () => {
|
||||||
|
|||||||
@ -26,6 +26,18 @@
|
|||||||
<div class="form-tip">{{ t('mchPublicCertPathTips') }}</div>
|
<div class="form-tip">{{ t('mchPublicCertPathTips') }}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('wechatpayPublicCert')" prop="config.wechat_public_cert_path">
|
||||||
|
<div class="input-width">
|
||||||
|
<upload-file v-model="formData.config.wechat_public_cert_path" api="sys/document/wechat" />
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('wechatpayPublicCertId')" prop="config.wechat_public_cert_id">
|
||||||
|
<div class="input-width">
|
||||||
|
<el-input v-model.trim="formData.config.wechat_public_cert_id" placeholder="" class="input-width" show-word-limit clearable />
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item :label="t('jsapiDir')" v-show="formData.channel == 'wechat' || formData.channel == 'weapp'">
|
<el-form-item :label="t('jsapiDir')" v-show="formData.channel == 'wechat' || formData.channel == 'weapp'">
|
||||||
<el-input :model-value="wapDomain + '/'" placeholder="Please input" class="input-width" :readonly="true" :disabled="true">
|
<el-input :model-value="wapDomain + '/'" placeholder="Please input" class="input-width" :readonly="true" :disabled="true">
|
||||||
<template #append>
|
<template #append>
|
||||||
@ -93,7 +105,9 @@ const initialFormData = {
|
|||||||
mch_id: '',
|
mch_id: '',
|
||||||
mch_secret_key: '',
|
mch_secret_key: '',
|
||||||
mch_secret_cert: '',
|
mch_secret_cert: '',
|
||||||
mch_public_cert_path: ''
|
mch_public_cert_path: '',
|
||||||
|
wechat_public_cert_path: '',
|
||||||
|
wechat_public_cert_id: ''
|
||||||
},
|
},
|
||||||
channel: '',
|
channel: '',
|
||||||
status: 0,
|
status: 0,
|
||||||
|
|||||||
90
admin/src/app/views/setting/components/sms-records-info.vue
Normal file
90
admin/src/app/views/setting/components/sms-records-info.vue
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog v-model="showDialog" :title="t('messageInfo')" width="550px" :destroy-on-close="true">
|
||||||
|
<el-form :model="formData" label-width="110px" ref="formRef" :rules="formRules" class="page-form" v-loading="loading">
|
||||||
|
|
||||||
|
<el-form-item :label="t('messageKey')">
|
||||||
|
<div class="input-width"> {{ formData.name }} </div>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('smsType')">
|
||||||
|
<div class="input-width"> {{ formData.sms_type_name }} </div>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<!-- <el-form-item :label="t('messageData')">
|
||||||
|
<div class="input-width"> {{ formData.message_data }} </div>
|
||||||
|
</el-form-item> -->
|
||||||
|
|
||||||
|
<!-- <el-form-item :label="t('nickname')">
|
||||||
|
<div class="input-width"> {{ formData.nickname }} </div>
|
||||||
|
</el-form-item> -->
|
||||||
|
|
||||||
|
<el-form-item :label="t('receiver')">
|
||||||
|
<div class="input-width"> {{ formData.mobile }} </div>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('createTime')">
|
||||||
|
<div class="input-width"> {{ formData.create_time }} </div>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="showDialog = false">{{ t('confirm') }}</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, reactive, computed } from 'vue'
|
||||||
|
import { t } from '@/lang'
|
||||||
|
import type { FormInstance } from 'element-plus'
|
||||||
|
|
||||||
|
const showDialog = ref(false)
|
||||||
|
const loading = ref(true)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 表单数据
|
||||||
|
*/
|
||||||
|
const initialFormData = {
|
||||||
|
create_time: 0,
|
||||||
|
message_data: '',
|
||||||
|
message_key: '',
|
||||||
|
message_type: '',
|
||||||
|
name: '',
|
||||||
|
nickname: '',
|
||||||
|
mobile: '',
|
||||||
|
sms_type_name: ''
|
||||||
|
}
|
||||||
|
const formData: Record<string, any> = reactive({ ...initialFormData })
|
||||||
|
|
||||||
|
const formRef = ref<FormInstance>()
|
||||||
|
|
||||||
|
// 表单验证规则
|
||||||
|
const formRules = computed(() => {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const setFormData = async (row: any = null) => {
|
||||||
|
loading.value = true
|
||||||
|
Object.assign(formData, initialFormData)
|
||||||
|
|
||||||
|
if (row) {
|
||||||
|
Object.keys(formData).forEach((key: string) => {
|
||||||
|
if (row[key] != undefined) formData[key] = row[key]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
showDialog,
|
||||||
|
setFormData
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
@ -30,6 +30,11 @@
|
|||||||
<el-switch v-model="formData.is_auth_register" :active-value="1" :inactive-value="0" />
|
<el-switch v-model="formData.is_auth_register" :active-value="1" :inactive-value="0" />
|
||||||
<div class="form-tip">{{ t('isAuthRegisterTip') }}</div>
|
<div class="form-tip">{{ t('isAuthRegisterTip') }}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item :label="t('isForceAccessUserInfo')" prop="formData.is_force_access_user_info" v-show="formData.is_auth_register == 1">
|
||||||
|
<el-switch v-model="formData.is_force_access_user_info" :active-value="1" :inactive-value="0" />
|
||||||
|
<div class="form-tip">{{ t('isForceAccessUserInfoTip') }}</div>
|
||||||
|
</el-form-item>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card class="box-card mt-[15px] !border-none" shadow="never">
|
<el-card class="box-card mt-[15px] !border-none" shadow="never">
|
||||||
@ -72,6 +77,7 @@ const formData:any = reactive({
|
|||||||
is_username: 0,
|
is_username: 0,
|
||||||
is_mobile: 0,
|
is_mobile: 0,
|
||||||
is_auth_register: 0,
|
is_auth_register: 0,
|
||||||
|
is_force_access_user_info: 0,
|
||||||
is_bind_mobile: 0,
|
is_bind_mobile: 0,
|
||||||
agreement_show: 0,
|
agreement_show: 0,
|
||||||
bg_url: '',
|
bg_url: '',
|
||||||
|
|||||||
@ -57,7 +57,7 @@ const formRules = computed(() => {
|
|||||||
callback(new Error(t('validTimePlaceholder')))
|
callback(new Error(t('validTimePlaceholder')))
|
||||||
} else if (isNaN(value) || !/^\d{0,10}$/.test(value)) {
|
} else if (isNaN(value) || !/^\d{0,10}$/.test(value)) {
|
||||||
callback(new Error(t('validTimeFormatTips')))
|
callback(new Error(t('validTimeFormatTips')))
|
||||||
} else if (value < 0) {
|
} else if (value < 5) {
|
||||||
callback(new Error(t('validTimeNotZeroTips')))
|
callback(new Error(t('validTimeNotZeroTips')))
|
||||||
} else {
|
} else {
|
||||||
callback()
|
callback()
|
||||||
|
|||||||
@ -9,13 +9,12 @@
|
|||||||
|
|
||||||
<el-card class="box-card !border-none my-[10px] table-search-wrap" shadow="never">
|
<el-card class="box-card !border-none my-[10px] table-search-wrap" shadow="never">
|
||||||
<el-form :inline="true" :model="recordsTableData.searchParam" ref="searchFormRef">
|
<el-form :inline="true" :model="recordsTableData.searchParam" ref="searchFormRef">
|
||||||
<el-form-item :label="t('searchReceiver')" prop="receiver">
|
<el-form-item :label="t('searchReceiver')" prop="mobile">
|
||||||
<el-input v-model="recordsTableData.searchParam.mobile" :placeholder="t('receiverPlaceholder')" />
|
<el-input v-model.trim="recordsTableData.searchParam.mobile" :placeholder="t('receiverPlaceholder')" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item :label="t('noticeKey')" prop="key">
|
<el-form-item :label="t('noticeKey')" prop="key">
|
||||||
<el-select v-model="recordsTableData.searchParam.key" clearable :placeholder="t('noticeKeyPlaceholder')" class="input-width">
|
<el-select v-model="recordsTableData.searchParam.key" clearable :placeholder="t('noticeKeyPlaceholder')" class="input-width">
|
||||||
<el-option :label="t('selectPlaceholder')" value="" />
|
|
||||||
<el-option-group v-for="(group, gindex) in templateList" :key="gindex" :label="group.label">
|
<el-option-group v-for="(group, gindex) in templateList" :key="gindex" :label="group.label">
|
||||||
<el-option :label="item.name" :value="item.value" :disabled="item.disabled ?? false" v-for="(item, index) in group.list" :key="index" />
|
<el-option :label="item.name" :value="item.value" :disabled="item.disabled ?? false" v-for="(item, index) in group.list" :key="index" />
|
||||||
</el-option-group>
|
</el-option-group>
|
||||||
@ -28,7 +27,7 @@
|
|||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="loadNoticeLogList()">{{ t('search') }}</el-button>
|
<el-button type="primary" @click="loadNoticeLogList()">{{ t('search') }}</el-button>
|
||||||
<el-button @click="searchFormRef?.resetFields()">{{ t('reset') }}</el-button>
|
<el-button @click="resetForm(searchFormRef)">{{ t('reset') }}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -70,7 +69,7 @@
|
|||||||
import { reactive, ref } from 'vue'
|
import { reactive, ref } from 'vue'
|
||||||
import { t } from '@/lang'
|
import { t } from '@/lang'
|
||||||
import { getNoticeList, getSmsLog } from '@/app/api/notice'
|
import { getNoticeList, getSmsLog } from '@/app/api/notice'
|
||||||
import RecordsInfo from '@/app/views/setting/components/notice-records-info.vue'
|
import RecordsInfo from '@/app/views/setting/components/sms-records-info.vue'
|
||||||
import { FormInstance } from 'element-plus'
|
import { FormInstance } from 'element-plus'
|
||||||
import { useRoute } from 'vue-router'
|
import { useRoute } from 'vue-router'
|
||||||
|
|
||||||
@ -152,6 +151,12 @@ const loadNoticeLogList = (page: number = 1) => {
|
|||||||
}
|
}
|
||||||
loadNoticeLogList()
|
loadNoticeLogList()
|
||||||
|
|
||||||
|
const resetForm = (formEl: FormInstance | undefined) => {
|
||||||
|
if (!formEl) return
|
||||||
|
formEl.resetFields()
|
||||||
|
loadNoticeLogList()
|
||||||
|
}
|
||||||
|
|
||||||
const recordsDialog: Record<string, any> | null = ref(null)
|
const recordsDialog: Record<string, any> | null = ref(null)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -52,8 +52,8 @@
|
|||||||
<span>{{ !cronTableData.loading ? t('emptyData') : '' }}</span>
|
<span>{{ !cronTableData.loading ? t('emptyData') : '' }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<el-table-column prop="name" :label="t('title')" min-width="150" />
|
|
||||||
<el-table-column prop="key" :label="t('key')" min-width="150" />
|
<el-table-column prop="key" :label="t('key')" min-width="150" />
|
||||||
|
<el-table-column prop="name" :label="t('title')" min-width="150" />
|
||||||
<el-table-column :label="t('crondType')" min-width="150">
|
<el-table-column :label="t('crondType')" min-width="150">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
{{ row.crontab_content }}
|
{{ row.crontab_content }}
|
||||||
|
|||||||
@ -39,10 +39,17 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<div class="mt-[20px]">
|
<div class="mt-[20px]">
|
||||||
<el-table :data="cronTableData.data" size="large" v-loading="cronTableData.loading">
|
<div class="mb-[10px] flex items-center">
|
||||||
|
<el-checkbox v-model="toggleCheckbox" size="large" class="px-[14px]" @change="toggleChange" :indeterminate="isIndeterminate" />
|
||||||
|
<el-button @click="batchDelete" size="small" :loading="deleteLoading">{{ t('batchDelete') }}</el-button>
|
||||||
|
<el-button @click="clearAll" size="small" :loading="clearLoading">{{ t('clearAll') }}</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-table :data="cronTableData.data" size="large" v-loading="cronTableData.loading" ref="cronLogListTableRef" @selection-change="handleSelectionChange">
|
||||||
<template #empty>
|
<template #empty>
|
||||||
<span>{{ !cronTableData.loading ? t('emptyData') : '' }}</span>
|
<span>{{ !cronTableData.loading ? t('emptyData') : '' }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column prop="id" :label="t('id')" min-width="80" />
|
<el-table-column prop="id" :label="t('id')" min-width="80" />
|
||||||
<el-table-column prop="name" :label="t('name')" min-width="150" />
|
<el-table-column prop="name" :label="t('name')" min-width="150" />
|
||||||
<el-table-column prop="key" :label="t('key')" min-width="150" />
|
<el-table-column prop="key" :label="t('key')" min-width="150" />
|
||||||
@ -57,6 +64,7 @@
|
|||||||
<el-table-column :label="t('operation')" align="right" fixed="right" width="130">
|
<el-table-column :label="t('operation')" align="right" fixed="right" width="130">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button type="primary" link @click="infoEvent(row)">{{ t('info') }}</el-button>
|
<el-button type="primary" link @click="infoEvent(row)">{{ t('info') }}</el-button>
|
||||||
|
<el-button type="primary" link @click="delEvent(row)">{{ t('delete') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -109,8 +117,8 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { reactive, ref, computed } from 'vue'
|
import { reactive, ref, computed } from 'vue'
|
||||||
import { t } from '@/lang'
|
import { t } from '@/lang'
|
||||||
import { getCronLogList, getCronTemplate } from '@/app/api/sys'
|
import { getCronLogList, getCronTemplate, deleteCronLog, clearCronLog } from '@/app/api/sys'
|
||||||
import { ElMessageBox, FormInstance } from 'element-plus'
|
import { ElMessageBox, ElMessage, FormInstance } from 'element-plus'
|
||||||
import { useRouter, useRoute } from 'vue-router'
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
@ -166,6 +174,10 @@ loadCronLogList()
|
|||||||
|
|
||||||
const showDialog = ref(false)
|
const showDialog = ref(false)
|
||||||
const loading = ref(true)
|
const loading = ref(true)
|
||||||
|
const repeat = ref(false)
|
||||||
|
const deleteLoading = ref(false)
|
||||||
|
const clearLoading = ref(false)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 表单数据
|
* 表单数据
|
||||||
*/
|
*/
|
||||||
@ -199,6 +211,134 @@ const infoEvent = (row: any) => {
|
|||||||
showDialog.value = true
|
showDialog.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 删除日志
|
||||||
|
const delEvent = (data: any) => {
|
||||||
|
ElMessageBox.confirm(t('deleteTips'), t('warning'),
|
||||||
|
{
|
||||||
|
confirmButtonText: t('confirm'),
|
||||||
|
cancelButtonText: t('cancel'),
|
||||||
|
type: 'warning'
|
||||||
|
}
|
||||||
|
).then(() => {
|
||||||
|
if (repeat.value) return
|
||||||
|
repeat.value = true
|
||||||
|
|
||||||
|
deleteCronLog({
|
||||||
|
ids: data.id
|
||||||
|
}).then((res: any) => {
|
||||||
|
if (res.code == 1) {
|
||||||
|
loadCronLogList()
|
||||||
|
}
|
||||||
|
repeat.value = false
|
||||||
|
}).catch(() => {
|
||||||
|
repeat.value = false
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 批量复选框
|
||||||
|
const toggleCheckbox = ref()
|
||||||
|
|
||||||
|
// 复选框中间状态
|
||||||
|
const isIndeterminate = ref(false)
|
||||||
|
|
||||||
|
// 监听批量复选框事件
|
||||||
|
const toggleChange = (value: any) => {
|
||||||
|
isIndeterminate.value = false
|
||||||
|
cronLogListTableRef.value.toggleAllSelection()
|
||||||
|
}
|
||||||
|
|
||||||
|
const cronLogListTableRef = ref()
|
||||||
|
|
||||||
|
// 选中数据
|
||||||
|
const multipleSelection: any = ref([])
|
||||||
|
|
||||||
|
// 监听表格单行选中
|
||||||
|
const handleSelectionChange = (val: []) => {
|
||||||
|
multipleSelection.value = val
|
||||||
|
|
||||||
|
toggleCheckbox.value = false
|
||||||
|
if (multipleSelection.value.length > 0 && multipleSelection.value.length < cronTableData.data.length) {
|
||||||
|
isIndeterminate.value = true
|
||||||
|
} else {
|
||||||
|
isIndeterminate.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (multipleSelection.value.length == cronTableData.data.length && cronTableData.data.length && multipleSelection.value.length) {
|
||||||
|
toggleCheckbox.value = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 批量删除
|
||||||
|
const batchDelete = () => {
|
||||||
|
if (multipleSelection.value.length == 0) {
|
||||||
|
ElMessage({
|
||||||
|
type: 'warning',
|
||||||
|
message: `${t('batchEmptySelectedCronLogTips')}`
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
ElMessageBox.confirm(t('batchDeleteTips'), t('warning'),
|
||||||
|
{
|
||||||
|
confirmButtonText: t('confirm'),
|
||||||
|
cancelButtonText: t('cancel'),
|
||||||
|
type: 'warning'
|
||||||
|
}
|
||||||
|
).then(() => {
|
||||||
|
if (repeat.value) return
|
||||||
|
repeat.value = true
|
||||||
|
deleteLoading.value = true
|
||||||
|
|
||||||
|
const ids: any = []
|
||||||
|
multipleSelection.value.forEach((item: any) => {
|
||||||
|
ids.push(item.id)
|
||||||
|
})
|
||||||
|
|
||||||
|
deleteCronLog({
|
||||||
|
ids: ids
|
||||||
|
}).then(() => {
|
||||||
|
loadCronLogList()
|
||||||
|
toggleCheckbox.value = false
|
||||||
|
repeat.value = false
|
||||||
|
deleteLoading.value = false
|
||||||
|
}).catch(() => {
|
||||||
|
repeat.value = false
|
||||||
|
deleteLoading.value = false
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清空日志
|
||||||
|
const clearAll = () => {
|
||||||
|
|
||||||
|
ElMessageBox.confirm(t('clearAllTips'), t('warning'),
|
||||||
|
{
|
||||||
|
confirmButtonText: t('confirm'),
|
||||||
|
cancelButtonText: t('cancel'),
|
||||||
|
type: 'warning'
|
||||||
|
}
|
||||||
|
).then(() => {
|
||||||
|
if (repeat.value) return
|
||||||
|
repeat.value = true
|
||||||
|
clearLoading.value = true
|
||||||
|
|
||||||
|
const schedule_id = route.query.id ?? ''
|
||||||
|
|
||||||
|
clearCronLog({
|
||||||
|
schedule_id: schedule_id
|
||||||
|
}).then(() => {
|
||||||
|
loadCronLogList()
|
||||||
|
toggleCheckbox.value = false
|
||||||
|
repeat.value = false
|
||||||
|
clearLoading.value = false
|
||||||
|
}).catch(() => {
|
||||||
|
repeat.value = false
|
||||||
|
clearLoading.value = false
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
||||||
|
|||||||
@ -55,7 +55,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="mb-[16px]">
|
<div class="mb-[16px]">
|
||||||
<el-form-item :label="t('diyAppletPage')">
|
<el-form-item :label="t('diyAppletPage')">
|
||||||
<el-input v-model="selectLink.page" :placeholder="t('diyAppletPagePlaceholder')" clearable maxlength="50" />
|
<el-input v-model="selectLink.page" :placeholder="t('diyAppletPagePlaceholder')" clearable maxlength="100" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<el-form-item label=" ">
|
<el-form-item label=" ">
|
||||||
@ -78,7 +78,7 @@
|
|||||||
<div v-else class="flex flex-wrap">
|
<div v-else class="flex flex-wrap">
|
||||||
<div v-for="(item, index) in childList" :key="index"
|
<div v-for="(item, index) in childList" :key="index"
|
||||||
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="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="[item.name == selectLink.name ? 'border-primary text-primary' : '']"
|
:class="{ 'border-primary text-primary': (parentLinkName != 'DIY_PAGE' && item.name == selectLink.name) || (parentLinkName == 'DIY_PAGE' && item.url == selectLink.url) }"
|
||||||
@click="changeChildLink(item)">{{ item.title }}
|
@click="changeChildLink(item)">{{ item.title }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
<icon name="iconfont icon24gf-playCircle" color="#fff" size="25px" @click="previewVideo()"/>
|
<icon name="iconfont icon24gf-playCircle" color="#fff" size="25px" @click="previewVideo()"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<icon name="element CircleCloseFilled" color="#bbb" size="18px" @click="removeVideo" class="absolute z-[2] top-[-9px] right-[-9px]"/>
|
<icon name="element CircleCloseFilled" color="#bbb" size="18px" @click="removeVideo" class="!absolute z-[2] top-[-9px] right-[-9px]"/>
|
||||||
</template>
|
</template>
|
||||||
<upload-attachment :limit="limit" type="video" @confirm="confirmSelect" v-else>
|
<upload-attachment :limit="limit" type="video" @confirm="confirmSelect" v-else>
|
||||||
<div class="w-full h-full flex items-center justify-center flex-col">
|
<div class="w-full h-full flex items-center justify-center flex-col">
|
||||||
|
|||||||
@ -1,2 +1 @@
|
|||||||
@import "addon/o2o/iconfont.css";
|
/* addon-iconfont.css */
|
||||||
@import "addon/tourism/iconfont.css";
|
|
||||||
|
|||||||
@ -1,38 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: "o2o"; /* Project id 4412516 */
|
|
||||||
src: url('//at.alicdn.com/t/c/font_4412516_cacqsbew46.woff2?t=1705720131974') format('woff2'),
|
|
||||||
url('//at.alicdn.com/t/c/font_4412516_cacqsbew46.woff?t=1705720131974') format('woff'),
|
|
||||||
url('//at.alicdn.com/t/c/font_4412516_cacqsbew46.ttf?t=1705720131974') format('truetype');
|
|
||||||
}
|
|
||||||
|
|
||||||
.o2o {
|
|
||||||
font-family: "o2o" !important;
|
|
||||||
font-size: 16px;
|
|
||||||
font-style: normal;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
||||||
|
|
||||||
.o2o-icon-danhanghuadong:before {
|
|
||||||
content: "\e66f";
|
|
||||||
}
|
|
||||||
|
|
||||||
.o2o-icon-yuanjiao:before {
|
|
||||||
content: "\e6c0";
|
|
||||||
}
|
|
||||||
|
|
||||||
.o2o-icon-gl-square:before {
|
|
||||||
content: "\ea92";
|
|
||||||
}
|
|
||||||
|
|
||||||
.o2o-icon-sousuo12:before {
|
|
||||||
content: "\e699";
|
|
||||||
}
|
|
||||||
|
|
||||||
.o2o-icon-sousuo11:before {
|
|
||||||
content: "\e6d4";
|
|
||||||
}
|
|
||||||
|
|
||||||
.o2o-icon-jishi:before {
|
|
||||||
content: "\e600";
|
|
||||||
}
|
|
||||||
@ -1,51 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "4412516",
|
|
||||||
"name": "上门服务",
|
|
||||||
"font_family": "o2o",
|
|
||||||
"css_prefix_text": "o2o-icon-",
|
|
||||||
"description": "",
|
|
||||||
"glyphs": [
|
|
||||||
{
|
|
||||||
"icon_id": "30621139",
|
|
||||||
"name": "单行滑动",
|
|
||||||
"font_class": "danhanghuadong",
|
|
||||||
"unicode": "e66f",
|
|
||||||
"unicode_decimal": 58991
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "7149037",
|
|
||||||
"name": "圆角",
|
|
||||||
"font_class": "yuanjiao",
|
|
||||||
"unicode": "e6c0",
|
|
||||||
"unicode_decimal": 59072
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "7594344",
|
|
||||||
"name": "20gl-square",
|
|
||||||
"font_class": "gl-square",
|
|
||||||
"unicode": "ea92",
|
|
||||||
"unicode_decimal": 60050
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "10133070",
|
|
||||||
"name": "搜索",
|
|
||||||
"font_class": "sousuo12",
|
|
||||||
"unicode": "e699",
|
|
||||||
"unicode_decimal": 59033
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "14652583",
|
|
||||||
"name": "搜索",
|
|
||||||
"font_class": "sousuo11",
|
|
||||||
"unicode": "e6d4",
|
|
||||||
"unicode_decimal": 59092
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "6818781",
|
|
||||||
"name": "技师",
|
|
||||||
"font_class": "jishi",
|
|
||||||
"unicode": "e600",
|
|
||||||
"unicode_decimal": 58880
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: "tourism"; /* Project id 4137250 */
|
|
||||||
src: url('//at.alicdn.com/t/c/font_4137250_st1ha9l0k1e.woff2?t=1687685028672') format('woff2'),
|
|
||||||
url('//at.alicdn.com/t/c/font_4137250_st1ha9l0k1e.woff?t=1687685028672') format('woff'),
|
|
||||||
url('//at.alicdn.com/t/c/font_4137250_st1ha9l0k1e.ttf?t=1687685028672') format('truetype');
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism {
|
|
||||||
font-family: "tourism" !important;
|
|
||||||
font-size: 16px;
|
|
||||||
font-style: normal;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-feiji:before {
|
|
||||||
content: "\e600";
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-lvyou:before {
|
|
||||||
content: "\e6a9";
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-lvyouchanpin:before {
|
|
||||||
content: "\e63b";
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-lvyou1:before {
|
|
||||||
content: "\e623";
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-lvyou2:before {
|
|
||||||
content: "\e601";
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-lvyou3:before {
|
|
||||||
content: "\e60c";
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-lvyoubaochedingdan:before {
|
|
||||||
content: "\e612";
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-lvyou4:before {
|
|
||||||
content: "\e653";
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-lvyou5:before {
|
|
||||||
content: "\e610";
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-lvyouguanguang:before {
|
|
||||||
content: "\e87e";
|
|
||||||
}
|
|
||||||
|
|
||||||
.tourism-icon-lvyou6:before {
|
|
||||||
content: "\e642";
|
|
||||||
}
|
|
||||||
@ -1,86 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "4137250",
|
|
||||||
"name": "旅游业",
|
|
||||||
"font_family": "tourism",
|
|
||||||
"css_prefix_text": "tourism-icon-",
|
|
||||||
"description": "",
|
|
||||||
"glyphs": [
|
|
||||||
{
|
|
||||||
"icon_id": "1443",
|
|
||||||
"name": "飞机",
|
|
||||||
"font_class": "feiji",
|
|
||||||
"unicode": "e600",
|
|
||||||
"unicode_decimal": 58880
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "446824",
|
|
||||||
"name": "旅游",
|
|
||||||
"font_class": "lvyou",
|
|
||||||
"unicode": "e6a9",
|
|
||||||
"unicode_decimal": 59049
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "1167173",
|
|
||||||
"name": "旅游产品",
|
|
||||||
"font_class": "lvyouchanpin",
|
|
||||||
"unicode": "e63b",
|
|
||||||
"unicode_decimal": 58939
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "1354920",
|
|
||||||
"name": "旅游",
|
|
||||||
"font_class": "lvyou1",
|
|
||||||
"unicode": "e623",
|
|
||||||
"unicode_decimal": 58915
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "1505555",
|
|
||||||
"name": "旅游",
|
|
||||||
"font_class": "lvyou2",
|
|
||||||
"unicode": "e601",
|
|
||||||
"unicode_decimal": 58881
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "2121726",
|
|
||||||
"name": "旅游",
|
|
||||||
"font_class": "lvyou3",
|
|
||||||
"unicode": "e60c",
|
|
||||||
"unicode_decimal": 58892
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "2357494",
|
|
||||||
"name": "旅游包车订单",
|
|
||||||
"font_class": "lvyoubaochedingdan",
|
|
||||||
"unicode": "e612",
|
|
||||||
"unicode_decimal": 58898
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "3944019",
|
|
||||||
"name": "旅游",
|
|
||||||
"font_class": "lvyou4",
|
|
||||||
"unicode": "e653",
|
|
||||||
"unicode_decimal": 58963
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "4838220",
|
|
||||||
"name": "旅游",
|
|
||||||
"font_class": "lvyou5",
|
|
||||||
"unicode": "e610",
|
|
||||||
"unicode_decimal": 58896
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "7444178",
|
|
||||||
"name": "旅游观光",
|
|
||||||
"font_class": "lvyouguanguang",
|
|
||||||
"unicode": "e87e",
|
|
||||||
"unicode_decimal": 59518
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "9748082",
|
|
||||||
"name": "旅游",
|
|
||||||
"font_class": "lvyou6",
|
|
||||||
"unicode": "e642",
|
|
||||||
"unicode_decimal": 58946
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,8 +1,8 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "iconfont"; /* Project id 3883393 */
|
font-family: "iconfont"; /* Project id 3883393 */
|
||||||
src: url('//at.alicdn.com/t/c/font_3883393_ikxpowvp5bs.woff2?t=1726212245389') format('woff2'),
|
src: url('//at.alicdn.com/t/c/font_3883393_t4cbwq5qdz.woff2?t=1729077942624') format('woff2'),
|
||||||
url('//at.alicdn.com/t/c/font_3883393_ikxpowvp5bs.woff?t=1726212245389') format('woff'),
|
url('//at.alicdn.com/t/c/font_3883393_t4cbwq5qdz.woff?t=1729077942624') format('woff'),
|
||||||
url('//at.alicdn.com/t/c/font_3883393_ikxpowvp5bs.ttf?t=1726212245389') format('truetype');
|
url('//at.alicdn.com/t/c/font_3883393_t4cbwq5qdz.ttf?t=1729077942624') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconfont {
|
.iconfont {
|
||||||
@ -13,6 +13,34 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icona-tupianzhanbopc302:before {
|
||||||
|
content: "\e83c";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icona-jingxuantuijianpc302:before {
|
||||||
|
content: "\e83d";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icona-jingxuantuijianpc30-12:before {
|
||||||
|
content: "\e83e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icona-baokuantuijianpc30:before {
|
||||||
|
content: "\e836";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icona-shangpintuijianpc30:before {
|
||||||
|
content: "\e839";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icona-paihangbangpc30:before {
|
||||||
|
content: "\e83a";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icona-xinrenzhuanxiangpc30:before {
|
||||||
|
content: "\e83b";
|
||||||
|
}
|
||||||
|
|
||||||
.icona-lipinkatupianpc30:before {
|
.icona-lipinkatupianpc30:before {
|
||||||
content: "\e82c";
|
content: "\e82c";
|
||||||
}
|
}
|
||||||
@ -1173,10 +1201,6 @@
|
|||||||
content: "\e628";
|
content: "\e628";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icongouwuche1:before {
|
|
||||||
content: "\e680";
|
|
||||||
}
|
|
||||||
|
|
||||||
.icongonggao:before {
|
.icongonggao:before {
|
||||||
content: "\e629";
|
content: "\e629";
|
||||||
}
|
}
|
||||||
@ -2258,7 +2282,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.iconwenhao:before {
|
.iconwenhao:before {
|
||||||
content: "\e890";
|
content: "\f1e3";
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconmofang-liangzuoliangyou:before {
|
.iconmofang-liangzuoliangyou:before {
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "nc-iconfont"; /* Project id 4567203 */
|
font-family: "nc-iconfont"; /* Project id 4567203 */
|
||||||
src: url('//at.alicdn.com/t/c/font_4567203_sxolqyse36.woff2?t=1717657005580') format('woff2'),
|
src: url('//at.alicdn.com/t/c/font_4567203_upzww1i5qjn.woff2?t=1731549702579') format('woff2'),
|
||||||
url('//at.alicdn.com/t/c/font_4567203_sxolqyse36.woff?t=1717657005580') format('woff'),
|
url('//at.alicdn.com/t/c/font_4567203_upzww1i5qjn.woff?t=1731549702579') format('woff'),
|
||||||
url('//at.alicdn.com/t/c/font_4567203_sxolqyse36.ttf?t=1717657005580') format('truetype');
|
url('//at.alicdn.com/t/c/font_4567203_upzww1i5qjn.ttf?t=1731549702579') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.nc-iconfont {
|
.nc-iconfont {
|
||||||
@ -13,6 +13,98 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nc-icon-gouwuche1:before {
|
||||||
|
content: "\e76e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-gouwuche:before {
|
||||||
|
content: "\e6ea";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-kabao:before {
|
||||||
|
content: "\e7ec";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-shouyeV6mm1:before {
|
||||||
|
content: "\e7e5";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-shouyeV6xx11:before {
|
||||||
|
content: "\e7bb";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-naozhongV6xx-36:before {
|
||||||
|
content: "\e7c4";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-shijianV6xx-36:before {
|
||||||
|
content: "\e7c3";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-yingyongzhongxinV6xx-36:before {
|
||||||
|
content: "\e7bf";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-bangzhuV6xx-36:before {
|
||||||
|
content: "\e7bc";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-riliV6xx-36:before {
|
||||||
|
content: "\e7c7";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-meiriqiandaoV6xx-36:before {
|
||||||
|
content: "\e7c6";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-yingyongliebiaoV6xx-36:before {
|
||||||
|
content: "\e7c5";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-shanchu-fanggai2V6xx-36:before {
|
||||||
|
content: "\e7be";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-cuohaoV6xx1:before {
|
||||||
|
content: "\e7cb";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-zhanghaoV6xx-36:before {
|
||||||
|
content: "\e7b9";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-wodeV6xx-36:before {
|
||||||
|
content: "\e7b8";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-shaixuan-36V6xx-36:before {
|
||||||
|
content: "\e7b3";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-lishijiluV6xx:before {
|
||||||
|
content: "\e6f6";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-paihangbangV6xx:before {
|
||||||
|
content: "\e79d";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-xiangshangV6xx1:before {
|
||||||
|
content: "\e799";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-a-xiangxiaV6xx1:before {
|
||||||
|
content: "\e796";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-fuzhiV6xx1:before {
|
||||||
|
content: "\e76c";
|
||||||
|
}
|
||||||
|
|
||||||
|
.nc-icon-kefuV6xx1:before {
|
||||||
|
content: "\e76a";
|
||||||
|
}
|
||||||
|
|
||||||
.nc-icon-huiyuandengjiV6xx1:before {
|
.nc-icon-huiyuandengjiV6xx1:before {
|
||||||
content: "\e761";
|
content: "\e761";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -159,7 +159,7 @@ export function strByteLength(str: string = ''): number {
|
|||||||
* @param url
|
* @param url
|
||||||
*/
|
*/
|
||||||
export function urlToRouteRaw(url: string) {
|
export function urlToRouteRaw(url: string) {
|
||||||
const query = {}
|
const query: any = {}
|
||||||
const [path, param] = url.split('?')
|
const [path, param] = url.split('?')
|
||||||
|
|
||||||
param && param.split('&').forEach((str: string) => {
|
param && param.split('&').forEach((str: string) => {
|
||||||
@ -204,7 +204,7 @@ export function deepClone(obj: object) {
|
|||||||
* @param {Boolean} firstU
|
* @param {Boolean} firstU
|
||||||
* @param {Number} radix
|
* @param {Number} radix
|
||||||
*/
|
*/
|
||||||
export function guid(len = 10, firstU = true, radix = null) {
|
export function guid(len = 10, firstU = true, radix: any = null) {
|
||||||
const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
|
const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
|
||||||
const uuid = []
|
const uuid = []
|
||||||
radix = radix || chars.length
|
radix = radix || chars.length
|
||||||
@ -244,19 +244,19 @@ export function moneyFormat(money : string) : string {
|
|||||||
/**
|
/**
|
||||||
* 时间戳转日期格式
|
* 时间戳转日期格式
|
||||||
*/
|
*/
|
||||||
export function timeStampTurnTime(timeStamp, type = "") {
|
export function timeStampTurnTime(timeStamp: any, type = "") {
|
||||||
if (timeStamp != undefined && timeStamp != "" && timeStamp > 0) {
|
if (timeStamp != undefined && timeStamp != "" && timeStamp > 0) {
|
||||||
var date = new Date();
|
var date = new Date();
|
||||||
date.setTime(timeStamp * 1000);
|
date.setTime(timeStamp * 1000);
|
||||||
var y = date.getFullYear();
|
var y: any = date.getFullYear();
|
||||||
var m = date.getMonth() + 1;
|
var m: any = date.getMonth() + 1;
|
||||||
m = m < 10 ? ('0' + m) : m;
|
m = m < 10 ? ('0' + m) : m;
|
||||||
var d = date.getDate();
|
var d: any = date.getDate();
|
||||||
d = d < 10 ? ('0' + d) : d;
|
d = d < 10 ? ('0' + d) : d;
|
||||||
var h = date.getHours();
|
var h: any = date.getHours();
|
||||||
h = h < 10 ? ('0' + h) : h;
|
h = h < 10 ? ('0' + h) : h;
|
||||||
var minute = date.getMinutes();
|
var minute: any = date.getMinutes();
|
||||||
var second = date.getSeconds();
|
var second: any = date.getSeconds();
|
||||||
minute = minute < 10 ? ('0' + minute) : minute;
|
minute = minute < 10 ? ('0' + minute) : minute;
|
||||||
second = second < 10 ? ('0' + second) : second;
|
second = second < 10 ? ('0' + second) : second;
|
||||||
if (type) {
|
if (type) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user