From 643eadfd148beb0fdbcefdba494bfaace0be2026 Mon Sep 17 00:00:00 2001 From: CQ <8051778+cq-hm@user.noreply.gitee.com> Date: Fri, 21 Nov 2025 14:46:35 +0800 Subject: [PATCH] fix --- admin/components.d.ts | 2 + admin/package-lock.json | 65 + admin/package.json | 8 +- .../ueditor/themes/default/css/ueditor.css | 5 +- admin/src/app/api/addon.ts | 9 +- admin/src/app/api/app.ts | 68 + admin/src/app/api/member.ts | 48 +- .../assets/images/app_store/app_manage.png | Bin 0 -> 1252 bytes .../images/app_store/app_type_addon.png | Bin 0 -> 518 bytes .../assets/images/app_store/app_type_app.png | Bin 0 -> 478 bytes .../images/app_store/system_version.png | Bin 0 -> 834 bytes admin/src/app/components/upgrade/index.vue | 6 +- .../app/lang/zh-cn/channel.app.access.json | 13 + .../app/lang/zh-cn/channel.app.config.json | 17 + .../app/lang/zh-cn/channel.app.version.json | 55 + .../app/lang/zh-cn/channel.wechat.config.json | 7 +- admin/src/app/lang/zh-cn/setting.map.json | 5 +- admin/src/app/lang/zh-cn/setting.system.json | 4 + admin/src/app/views/app/index.vue | 10 +- admin/src/app/views/app/marketing.vue | 123 +- admin/src/app/views/auth/log.vue | 11 +- admin/src/app/views/auth/role.vue | 4 +- admin/src/app/views/channel/app/access.vue | 119 + .../app/components/app-version-edit.vue | 286 + .../app/components/generate-sing-cert.vue | 156 + admin/src/app/views/channel/app/config.vue | 129 + admin/src/app/views/channel/app/version.vue | 339 + admin/src/app/views/channel/wechat/config.vue | 8 +- .../app/views/diy/components/edit-page.vue | 18 + .../diy/components/tabbar-select-popup.vue | 211 + admin/src/app/views/diy/edit.vue | 3 +- admin/src/app/views/diy/list.vue | 8 +- admin/src/app/views/diy/tabbar.vue | 2 +- admin/src/app/views/diy/theme_style.vue | 7 +- admin/src/app/views/diy_form/list.vue | 12 +- admin/src/app/views/index/store.vue | 1029 +- admin/src/app/views/member/level.vue | 2 +- admin/src/app/views/poster/edit.vue | 5 +- admin/src/app/views/poster/list.vue | 13 +- admin/src/app/views/printer/list.vue | 6 +- admin/src/app/views/printer/template_list.vue | 2 +- admin/src/app/views/setting/copyright.vue | 8 +- admin/src/app/views/setting/map.vue | 15 +- admin/src/app/views/tools/backup_records.vue | 2 +- admin/src/components/diy-link/index.vue | 4 +- admin/src/components/editor/index.vue | 14 +- admin/src/components/upload-file/index.vue | 38 +- admin/src/lang/zh-cn/common.json | 449 +- .../default/components/aside/menu-item.vue | 351 +- .../layout/default/components/aside/side.vue | 209 +- .../default/components/header/index.vue | 47 +- .../major/components/aside/menu-item.vue | 42 +- .../layout/major/components/aside/side.vue | 321 +- .../layout/major/components/header/index.vue | 68 + admin/src/stores/modules/diy.ts | 21 + admin/src/styles/icon/iconfont.css | 78 +- admin/src/utils/common.ts | 5 +- uni-app/package-lock.json | 15581 +++------------- uni-app/package.json | 2 + uni-app/src/App.vue | 6 +- .../src/addon/components/diy/group/index.vue | 304 +- .../addon/components/diy/group/useDiyGroup.ts | 7 + uni-app/src/androidPrivacy.json | 3 + uni-app/src/app/api/auth.ts | 10 + uni-app/src/app/api/system.ts | 9 +- .../components/diy/carousel-search/index.vue | 26 +- .../app/components/diy/rubik-cube/index.vue | 5 +- uni-app/src/app/pages/auth/bind.vue | 4 +- uni-app/src/app/pages/auth/index.vue | 10 +- uni-app/src/app/pages/auth/login.vue | 29 +- uni-app/src/app/pages/auth/register.vue | 2 +- uni-app/src/app/pages/auth/resetpwd.vue | 2 +- uni-app/src/app/pages/friendspay/money.vue | 10 +- uni-app/src/app/pages/friendspay/share.vue | 9 +- uni-app/src/app/pages/index/index.vue | 25 +- uni-app/src/app/pages/member/address_edit.vue | 56 +- uni-app/src/app/pages/member/balance.vue | 5 +- uni-app/src/app/pages/member/commission.vue | 2 +- uni-app/src/app/pages/member/contact.vue | 7 + .../src/app/pages/member/detailed_account.vue | 6 +- uni-app/src/app/pages/member/level.vue | 6 +- uni-app/src/app/pages/member/point.vue | 7 +- uni-app/src/app/pages/member/point_detail.vue | 10 +- uni-app/src/app/pages/member/sign_in.vue | 15 +- uni-app/src/app/pages/setting/index.vue | 44 + uni-app/src/app/pages/verify/index.vue | 2 +- uni-app/src/app/pages/verify/record.vue | 8 +- uni-app/src/app/stores/diy.ts | 10 + .../components/area-select/area-select.vue | 57 +- .../avatar-swiper/avatar-swiper.vue | 18 +- .../src/components/copy-right/copy-right.vue | 46 + .../src/components/nc-contact/nc-contact.vue | 13 +- .../online-service/online-service.vue | 4 +- uni-app/src/components/pay/pay.vue | 18 +- .../components/share-popup/share-popup.vue | 29 +- .../components/share-poster/share-poster.vue | 6 +- uni-app/src/components/tabbar/tabbar.vue | 14 +- .../src/components/top-tabbar/top-tabbar.vue | 26 +- .../update-version/update-version.vue | 287 + uni-app/src/hooks/useLogin.ts | 52 +- uni-app/src/hooks/useShare.ts | 16 +- uni-app/src/layouts/default.vue | 15 + uni-app/src/locale/language.ts | 11 +- uni-app/src/locale/zh-Hans/common.json | 43 +- uni-app/src/manifest.json | 26 +- uni-app/src/pages.json | 6 +- uni-app/src/stores/system.ts | 72 +- uni-app/src/styles/account_info.scss | 41 - uni-app/src/styles/common.scss | 79 +- uni-app/src/styles/iconfont.css | 59 +- uni-app/src/styles/member_record_detail.scss | 25 - uni-app/src/styles/member_record_list.scss | 21 - uni-app/src/tabbar.json | 3 +- .../uni_modules/rt-uni-update/changelog.md | 97 + .../rt-uni-update/rt-uni-update.vue | 303 + .../rt-uni-update/js_sdk/silence-update.js | 31 + .../uni_modules/rt-uni-update/package.json | 80 + .../src/uni_modules/rt-uni-update/readme.md | 192 + .../rt-uni-update/static/app_update_close.png | Bin 0 -> 2378 bytes .../rt-uni-update/static/bg_top.png | Bin 0 -> 7744 bytes uni-app/src/utils/common.ts | 43 + uni-app/src/utils/mixin.ts | 17 + uni-app/src/utils/topTabbar.ts | 2 +- uni-app/vite.config.ts | 2 + 124 files changed, 8341 insertions(+), 14122 deletions(-) create mode 100644 admin/src/app/api/app.ts create mode 100644 admin/src/app/assets/images/app_store/app_manage.png create mode 100644 admin/src/app/assets/images/app_store/app_type_addon.png create mode 100644 admin/src/app/assets/images/app_store/app_type_app.png create mode 100644 admin/src/app/assets/images/app_store/system_version.png create mode 100644 admin/src/app/lang/zh-cn/channel.app.access.json create mode 100644 admin/src/app/lang/zh-cn/channel.app.config.json create mode 100644 admin/src/app/lang/zh-cn/channel.app.version.json create mode 100644 admin/src/app/views/channel/app/access.vue create mode 100644 admin/src/app/views/channel/app/components/app-version-edit.vue create mode 100644 admin/src/app/views/channel/app/components/generate-sing-cert.vue create mode 100644 admin/src/app/views/channel/app/config.vue create mode 100644 admin/src/app/views/channel/app/version.vue create mode 100644 admin/src/app/views/diy/components/tabbar-select-popup.vue create mode 100644 uni-app/src/androidPrivacy.json create mode 100644 uni-app/src/components/copy-right/copy-right.vue create mode 100644 uni-app/src/components/update-version/update-version.vue create mode 100644 uni-app/src/layouts/default.vue delete mode 100644 uni-app/src/styles/account_info.scss delete mode 100644 uni-app/src/styles/member_record_detail.scss delete mode 100644 uni-app/src/styles/member_record_list.scss create mode 100644 uni-app/src/uni_modules/rt-uni-update/changelog.md create mode 100644 uni-app/src/uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update.vue create mode 100644 uni-app/src/uni_modules/rt-uni-update/js_sdk/silence-update.js create mode 100644 uni-app/src/uni_modules/rt-uni-update/package.json create mode 100644 uni-app/src/uni_modules/rt-uni-update/readme.md create mode 100644 uni-app/src/uni_modules/rt-uni-update/static/app_update_close.png create mode 100644 uni-app/src/uni_modules/rt-uni-update/static/bg_top.png diff --git a/admin/components.d.ts b/admin/components.d.ts index 08ed7ab72..e9749fac5 100644 --- a/admin/components.d.ts +++ b/admin/components.d.ts @@ -9,6 +9,7 @@ declare module '@vue/runtime-core' { export interface GlobalComponents { Attachment: typeof import('./src/components/upload-attachment/attachment.vue')['default'] DiyLink: typeof import('./src/components/diy-link/index.vue')['default'] + DiyPage: typeof import('./src/components/diy-page/index.vue')['default'] Editor: typeof import('./src/components/editor/index.vue')['default'] ElAlert: typeof import('element-plus/es')['ElAlert'] ElAside: typeof import('element-plus/es')['ElAside'] @@ -89,6 +90,7 @@ declare module '@vue/runtime-core' { SelectIcon: typeof import('./src/components/select-icon/index.vue')['default'] SpreadPopup: typeof import('./src/components/spread-popup/index.vue')['default'] UploadAttachment: typeof import('./src/components/upload-attachment/index.vue')['default'] + UploadAudio: typeof import('./src/components/upload-audio/index.vue')['default'] UploadFile: typeof import('./src/components/upload-file/index.vue')['default'] UploadImage: typeof import('./src/components/upload-image/index.vue')['default'] UploadVideo: typeof import('./src/components/upload-video/index.vue')['default'] diff --git a/admin/package-lock.json b/admin/package-lock.json index 64fda158d..d8760d42d 100644 --- a/admin/package-lock.json +++ b/admin/package-lock.json @@ -9,12 +9,18 @@ "version": "1.0.0", "dependencies": { "@element-plus/icons-vue": "2.0.10", + "@fullcalendar/core": "^6.1.19", + "@fullcalendar/daygrid": "^6.1.19", + "@fullcalendar/interaction": "^6.1.19", + "@fullcalendar/vue3": "^6.1.19", + "@heroicons/vue": "^2.2.0", "@highlightjs/vue-plugin": "2.1.0", "@types/lodash-es": "4.17.6", "@vueuse/core": "9.12.0", "axios": "1.4.0", "crypto-js": "4.1.1", "css-color-function": "1.3.3", + "date-fns": "^4.1.0", "day": "^0.0.2", "echarts": "5.4.1", "element-plus": "^2.7.4", @@ -963,6 +969,47 @@ "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.1.6.tgz", "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" }, + "node_modules/@fullcalendar/core": { + "version": "6.1.19", + "resolved": "https://registry.npmmirror.com/@fullcalendar/core/-/core-6.1.19.tgz", + "integrity": "sha512-z0aVlO5e4Wah6p6mouM0UEqtRf1MZZPt4mwzEyU6kusaNL+dlWQgAasF2cK23hwT4cmxkEmr4inULXgpyeExdQ==", + "dependencies": { + "preact": "~10.12.1" + } + }, + "node_modules/@fullcalendar/daygrid": { + "version": "6.1.19", + "resolved": "https://registry.npmmirror.com/@fullcalendar/daygrid/-/daygrid-6.1.19.tgz", + "integrity": "sha512-IAAfnMICnVWPjpT4zi87i3FEw0xxSza0avqY/HedKEz+l5MTBYvCDPOWDATpzXoLut3aACsjktIyw9thvIcRYQ==", + "peerDependencies": { + "@fullcalendar/core": "~6.1.19" + } + }, + "node_modules/@fullcalendar/interaction": { + "version": "6.1.19", + "resolved": "https://registry.npmmirror.com/@fullcalendar/interaction/-/interaction-6.1.19.tgz", + "integrity": "sha512-GOciy79xe8JMVp+1evAU3ytdwN/7tv35t5i1vFkifiuWcQMLC/JnLg/RA2s4sYmQwoYhTw/p4GLcP0gO5B3X5w==", + "peerDependencies": { + "@fullcalendar/core": "~6.1.19" + } + }, + "node_modules/@fullcalendar/vue3": { + "version": "6.1.19", + "resolved": "https://registry.npmmirror.com/@fullcalendar/vue3/-/vue3-6.1.19.tgz", + "integrity": "sha512-j5eUSxx0xIy3ADljo0f5B9PhjqXnCQ+7nUMPfsslc2eGVjp4F74YvY3dyd6OBbg13IvpsjowkjncGipYMQWmTA==", + "peerDependencies": { + "@fullcalendar/core": "~6.1.19", + "vue": "^3.0.11" + } + }, + "node_modules/@heroicons/vue": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/@heroicons/vue/-/vue-2.2.0.tgz", + "integrity": "sha512-G3dbSxoeEKqbi/DFalhRxJU4mTXJn7GwZ7ae8NuEQzd1bqdd0jAbdaBZlHPcvPD2xI1iGzNVB4k20Un2AguYPw==", + "peerDependencies": { + "vue": ">= 3" + } + }, "node_modules/@highlightjs/vue-plugin": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/@highlightjs/vue-plugin/-/vue-plugin-2.1.0.tgz", @@ -2624,6 +2671,15 @@ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, "node_modules/day": { "version": "0.0.2", "resolved": "https://registry.npmmirror.com/day/-/day-0.0.2.tgz", @@ -5003,6 +5059,15 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, + "node_modules/preact": { + "version": "10.12.1", + "resolved": "https://registry.npmmirror.com/preact/-/preact-10.12.1.tgz", + "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", diff --git a/admin/package.json b/admin/package.json index 75cceeca3..b956c880f 100644 --- a/admin/package.json +++ b/admin/package.json @@ -10,12 +10,18 @@ }, "dependencies": { "@element-plus/icons-vue": "2.0.10", + "@fullcalendar/core": "^6.1.19", + "@fullcalendar/daygrid": "^6.1.19", + "@fullcalendar/interaction": "^6.1.19", + "@fullcalendar/vue3": "^6.1.19", + "@heroicons/vue": "^2.2.0", "@highlightjs/vue-plugin": "2.1.0", "@types/lodash-es": "4.17.6", "@vueuse/core": "9.12.0", "axios": "1.4.0", "crypto-js": "4.1.1", "css-color-function": "1.3.3", + "date-fns": "^4.1.0", "day": "^0.0.2", "echarts": "5.4.1", "element-plus": "^2.7.4", @@ -56,4 +62,4 @@ "vite": "4.1.0", "vue-tsc": "1.0.24" } -} \ No newline at end of file +} diff --git a/admin/public/ueditor/themes/default/css/ueditor.css b/admin/public/ueditor/themes/default/css/ueditor.css index 81421c3ea..9572e0bd5 100644 --- a/admin/public/ueditor/themes/default/css/ueditor.css +++ b/admin/public/ueditor/themes/default/css/ueditor.css @@ -147,7 +147,10 @@ div.edui-box { overflow: visible; z-index: 1 !important; } - +/* 全屏状态 */ +.edui-default .edui-editor.edui-fullscreen { + z-index: 999 !important; + } .edui-editor div { width: auto; height: auto; diff --git a/admin/src/app/api/addon.ts b/admin/src/app/api/addon.ts index 28a0b592f..2b23b6d7f 100644 --- a/admin/src/app/api/addon.ts +++ b/admin/src/app/api/addon.ts @@ -96,18 +96,17 @@ export function getInstalledAddonList() { * @returns */ export function getShowApp() { - return request.get('addon/list/showapp') + return request.get('addon/showCustomer') } /** - * 获取营销列表 + * 获取站点应用特殊 * @returns */ -export function getShowMarketing() { - return request.get('showMarketing') +export function getShowSpecialMenu() { + return request.get('addon/special_menu') } - export function getAddonInit() { return request.get('addon/init') } diff --git a/admin/src/app/api/app.ts b/admin/src/app/api/app.ts new file mode 100644 index 000000000..ad0973abe --- /dev/null +++ b/admin/src/app/api/app.ts @@ -0,0 +1,68 @@ +import request from '@/utils/request' + +/** + * 获取app配置 + * @returns + */ +export function getAppConfig() { + return request.get('channel/app/config') +} + +/** + * 编辑app配置 + * @param params + * @returns + */ +export function setAppConfig(params: Record) { + return request.put('channel/app/config', params, { showSuccessMessage: true }) +} + + +export function getVersionList(params: Record) { + return request.get('channel/app/version', { params }) +} + +export function getVersionInfo(id: number) { + return request.get(`channel/app/version/${id}`) +} + +export function getAppPlatform() { + return request.get(`channel/app/platfrom`) +} + +/** + * 添加版本 + * @param params + * @returns + */ +export function addVersion(params: Record) { + return request.post('channel/app/version', params, { showSuccessMessage: true }) +} + +/** + * 更新版本 + * @param params + */ +export function editVersion(params: Record) { + return request.put(`channel/app/version/${ params.id }`, params, { showSuccessMessage: true }) +} + +/** + * 删除版本 + * @param siteId + */ +export function deleteVersion(params: Record) { + return request.delete(`channel/app/version/${ params.id }`) +} + +export function getBuildLog(key: string) { + return request.get(`channel/app/build/log/${ key }`) +} + +export function releaseVersion(id: number) { + return request.put(`channel/app/version/${ id }/release`, {}, { showSuccessMessage: true }) +} + +export function generateSingCert(params: Record) { + return request.post(`channel/app/generate_sing_cert`, params, { showSuccessMessage: true }); +} diff --git a/admin/src/app/api/member.ts b/admin/src/app/api/member.ts index 4a03299ea..a97ff721c 100644 --- a/admin/src/app/api/member.ts +++ b/admin/src/app/api/member.ts @@ -18,7 +18,7 @@ export function getMemberList(params: Record) { * @returns */ export function getMemberInfo(id: number) { - return request.get(`member/member/${id}`); + return request.get(`member/member/${ id }`); } /** @@ -61,7 +61,7 @@ export function getRegisterChannelType(params: Record) { * @param member_id */ export function deleteMember(member_id: number) { - return request.delete(`member/member/${member_id}`, { showSuccessMessage: true }) + return request.delete(`member/member/${ member_id }`, { showSuccessMessage: true }) } /***************************************************** 会员标签 ****************************************************/ @@ -81,7 +81,7 @@ export function getMemberLabelList(params: Record) { * @returns */ export function getMemberLabelInfo(label_id: number) { - return request.get(`member/label/${label_id}`); + return request.get(`member/label/${ label_id }`); } /** @@ -98,7 +98,7 @@ export function addMemberLabel(params: Record) { * @param params */ export function updateMemberLabel(params: Record) { - return request.put(`member/label/${params.label_id}`, params, { showSuccessMessage: true }) + return request.put(`member/label/${ params.label_id }`, params, { showSuccessMessage: true }) } /** @@ -107,7 +107,7 @@ export function updateMemberLabel(params: Record) { * @returns */ export function deleteMemberLabel(label_id: number) { - return request.delete(`member/label/${label_id}`, { showSuccessMessage: true }) + return request.delete(`member/label/${ label_id }`, { showSuccessMessage: true }) } /** @@ -122,7 +122,7 @@ export function getMemberLabelAll() { * @param params */ export function editMemberDetail(params: Record) { - return request.put(`member/member/modify/${params.member_id}/${params.field}`, params, { showSuccessMessage: true }) + return request.put(`member/member/modify/${ params.member_id }/${ params.field }`, params, { showSuccessMessage: true }) } /** @@ -143,7 +143,7 @@ export function memberBatchModify(params: Record) { * @param change_type */ export function getChangeTypeList(change_type: string) { - return request.get(`member/account/change_type/${change_type}`) + return request.get(`member/account/change_type/${ change_type }`) } /** @@ -321,7 +321,7 @@ export function getBalanceStatus() { * 获取余额变动类型 */ export function getAccountType(params: Record) { - return request.get(`member/account/change_type/${params.account_type}`) + return request.get(`member/account/change_type/${ params.account_type }`) } @@ -357,7 +357,7 @@ export function getCashOutList(params: Record) { * @param id */ export function getCashOutDetail(id: number) { - return request.get(`member/cash_out/${id}`, {}) + return request.get(`member/cash_out/${ id }`, {}) } /** @@ -365,14 +365,18 @@ export function getCashOutDetail(id: number) { * @param params */ export function memberAudit(params: Record) { - return request.put(`member/cash_out/audit/${params.id}/${params.action}`, params, { showSuccessMessage: true }) + return request.put(`member/cash_out/audit/${ params.id }/${ params.action }`, params, { showSuccessMessage: true }) } + /** * 会员取消提现 * @param params */ export function memberCancel(params: Record) { - return request.put(`member/cash_out/cancel/${params.id}`, params, { showSuccessMessage: true,showErrorMessage: true }) + return request.put(`member/cash_out/cancel/${ params.id }`, params, { + showSuccessMessage: true, + showErrorMessage: true + }) } @@ -381,7 +385,7 @@ export function memberCancel(params: Record) { * @param params */ export function memberTransfer(params: Record) { - return request.put(`member/cash_out/transfer/${params.id}`, params, { showSuccessMessage: true }) + return request.put(`member/cash_out/transfer/${ params.id }`, params, { showSuccessMessage: true }) } /** @@ -389,14 +393,15 @@ export function memberTransfer(params: Record) { * @param params */ export function memberRemark(params: Record) { - return request.put(`member/cash_out/remark/${params.id}`, params, { showSuccessMessage: true }) + return request.put(`member/cash_out/remark/${ params.id }`, params, { showSuccessMessage: true }) } + /** * 检查打款进度 * @param id */ export function memberCheck(id: number) { - return request.put(`member/cash_out/check/${id}`, {}, { showSuccessMessage: true }) + return request.put(`member/cash_out/check/${ id }`, {}, { showSuccessMessage: true }) } /** @@ -404,7 +409,7 @@ export function memberCheck(id: number) { * @param params */ export function editMemberStatus(params: Record) { - return request.put(`member/setstatus/${params.status}`, params, { showSuccessMessage: true }) + return request.put(`member/setstatus/${ params.status }`, params, { showSuccessMessage: true }) } /** @@ -453,6 +458,7 @@ export function getGrowthRuleDict() { export function getPointRuleDict() { return request.get(`member/dict/point_rule`) } + /***************************************************** 会员等级 ****************************************************/ /** @@ -470,7 +476,7 @@ export function getMemberLevelPageList(params: Record) { * @returns */ export function getMemberLevelInfo(level_id: number) { - return request.get(`member/level/${level_id}`); + return request.get(`member/level/${ level_id }`); } /** @@ -487,7 +493,7 @@ export function addMemberLevel(params: Record) { * @param params */ export function updateMemberLevel(params: Record) { - return request.put(`member/level/${params.level_id}`, params, { showSuccessMessage: true }) + return request.put(`member/level/${ params.level_id }`, params, { showSuccessMessage: true }) } /** @@ -496,7 +502,7 @@ export function updateMemberLevel(params: Record) { * @returns */ export function deleteMemberLevel(level_id: number) { - return request.delete(`member/level/${level_id}`, { showSuccessMessage: true }) + return request.delete(`member/level/${ level_id }`, { showSuccessMessage: true }) } /** @@ -512,14 +518,14 @@ export function getMemberLevelAll() { * 获取会员权益内容 */ export function getMemberBenefitsContent() { - return request.get(`member/benefits/content`); + return request.post(`member/benefits/content`); } /** * 获取会员礼包内容 */ export function getMemberGiftsContent(params: Record) { - return request.get(`member/gifts/content`, { params }); + return request.post(`member/gifts/content`, params); } /** @@ -555,7 +561,7 @@ export function getMemberAddress(params: Record) { } /** - * 添加收货地址 + * 添加收货地址 */ export function addMemberAddress(params: Record) { return request.post(`member/address`, params); diff --git a/admin/src/app/assets/images/app_store/app_manage.png b/admin/src/app/assets/images/app_store/app_manage.png new file mode 100644 index 0000000000000000000000000000000000000000..b858a8f0a9c1ef59a9e10a086632aff96e4d1890 GIT binary patch literal 1252 zcmV? z4@^~69LK-!`oO1Xf@Ct~k2sJ=Jmm4G;bt{#wOB&da2>)ciE-nr+T-}(K{ z?{m-j-E)6?0_3ZDodGqkZehiO-p7Js#h?^Fb{_x z+=!zIZ^Ae;45pxks7iPP-^ag>Mbkr76DkHY2znGoX2F(Hh^)Cw(Jx-d){cY7Z~qpK zaVMS$HKRGT81F?s4TDbkd#DI-?YwlfrIw;7G8+aV0G0oogsGtzySk6zm1s*V#hUxsS4_crP6^OBBMjAvn^76J9^unNP&?R;WsUFSg>(DRJ=*Vf-{TzQ zvNY=sScki~?$^d#RGT&m0&{wy*Gr?L(Zr*5T7n z{ZJ>8Ev0zv`~mcg4j>~q4z)>d0&8mjtEBc`qZyCVMG?*iFgW@ zfY@-VBo8CJ96722yoyS&DR5nVZR`GVll|Oi_9_am3_NAy+1xOz0 zNXca@nPJ;SU0xnO{Q+KX`x0`ja-qVTYCzfVZv*G#CQb}qaJSVqZW*9j5MTCpAK
O}*Htb)r9`gh4b8ChN26GuD2DGiDo6}m(ZCgir+2fP-{h2w?cF#b0z@)0RRC1|M}?ca{vGU21!IgR09Atki%_XP(oz@ O0000ugK~#7Fl~X%z z!axw+#TIm=OOqf3h>BF{oC`pcG8_OURZ0#JH~@$qi6$Mn04D&YC#A7u(ps|V{LdR} zjh2l=#7L|8cxT?5nKfqx;y6y#^SpkVrUu+Q&iO6H;eSJIbzNW8>-7(caW&bt?QR%` zGbB~ndD&~4HaRI^n&udZ&+G!xa$~pK4UzmRBfwvRwh7%iTL8&@sBs=d(xFnRJjQW+ z4gDTP5o+-Jq5`@|AapXnV6R~BkyN9izV91|jbM8?S89tTLYJnz!eBPgHK6y!od zBBRx6z5QZ)M($750wqF|1A+k!@4yNK@d>qhEP&II(0arG4`q!) z12x&QtP$yQxjaCjP1b^Pr$Z}45!P%rZ!jMf{e^~&!IHbiF?4#K`4E}31)!bGMlhTw zNkS`L20^gMT7YaNglr4M0vBg$3ynr&L>dfcqV=^ddg;j*2?c7dG7v0=lDp*e=ee%? zDb|&>!2S@ht+X>#qG<$xc-v#?eXte;^V#w2WyPa*}2L)8$VHA=y7XSbN07*qo IM6N<$f_dlE*8l(j literal 0 HcmV?d00001 diff --git a/admin/src/app/assets/images/app_store/app_type_app.png b/admin/src/app/assets/images/app_store/app_type_app.png new file mode 100644 index 0000000000000000000000000000000000000000..385b275b5fece56b912b8b80630815145c6c862c GIT binary patch literal 478 zcmV<40U`d0P) zfN(T>=ZFOA=s52%+yc z3>ipc)t8Vz^O^Vlo6m={KM;mtH;&^~Q4}+5FFEHr<*^SCc0!2v(P;EWIo>4uzQ4$_ z>=~pkJB)p+)iP@WuIm~g-m()QKf zI73a-zA6D6+R8?a$KwG6ziEx8nYC)1ubXE?SzTvmLO^waO0}e{j4prXc|KFtW>bK} z!3W}0AzKK0<;)F=6lGpwh#Wa*no2$ZB3zg2sU%B*8q{u+ZG=~H)a&(@ASRto=MipR zDuHr5>-R#p>5=y*`%x6pj2LN}8u)~EB>?Q$|CmFBX5Yqn3&Iy=-WGU4Hs$?T5CoVb zeIWNVNN__=9zfjST61OGElz(P>}`+ud1|0fjec#ke!ri<*4>e$glxmflE{?%0nW{* U&UfMf{{R3007*qoM6N<$f)3Woq5uE@ literal 0 HcmV?d00001 diff --git a/admin/src/app/assets/images/app_store/system_version.png b/admin/src/app/assets/images/app_store/system_version.png new file mode 100644 index 0000000000000000000000000000000000000000..762b2ad779a61b2257e67c505b4233ddd01d318a GIT binary patch literal 834 zcmV-I1HJr-P)LFyh%I>V;!UAd5I?R3t1Wo&prHSS9(wVh_;u*LAT+u7 z2dEWNKM+4!X%7l5^`imvRDb2Ot^q*Wdd$F0Bk=R&p0MXN-P&UgXwNy&naMs0LC$n*|;+no8LJ$VCJAd z4(}cUukQkH@0p)@fccX3#u~fgh0hbEyqRkPY3zXV1Rsn10#a^|};I}U(Xzm33jc2$^iQ{u8O$_c0 zO>Ozo8gOFN1j`=A;!Y;ITd}EUdrgct1>YrtvQq>c^!x@!q{D7OC92=L%C@J|5w zv~$nQwm#gM#PyT%7CyXWBzv>YpnXWUJ^uqhjk4Qkb{egsX^nB74-Pww z={A&yVKr05RUu7W7RfaG9oN+9J6>51F?%Suef+nH;`JRE?KNH|G3P5i7aH|)IR_K0RR6FSXi3?000I_L_t&o054vB>1$Ss+W-In M07*qoM6N<$f<`)nHUIzs literal 0 HcmV?d00001 diff --git a/admin/src/app/components/upgrade/index.vue b/admin/src/app/components/upgrade/index.vue index f61bf9c97..2f3af58d9 100644 --- a/admin/src/app/components/upgrade/index.vue +++ b/admin/src/app/components/upgrade/index.vue @@ -249,7 +249,7 @@ import Storage from '@/utils/storage' import { useRouter } from 'vue-router' const router = useRouter() -const terminalId = ref(Date.now()); +const terminalId = ref(Date.now()); const showDialog = ref(false) const upgradeContent = ref(null) const isAllowUpgrade = ref(true) // 是否允许升级 @@ -299,7 +299,7 @@ const getUpgradeTaskFn = () => { if (!upgradeContent.value) { upgradeContent.value = data.upgrade_content - if (upgradeContent.value || !data.upgrade_content || !Array.isArray(data.upgrade_content.content)) { + if (!data.upgrade_content || !Array.isArray(data.upgrade_content.content)) { return } @@ -691,7 +691,7 @@ defineExpose({ white-space: pre-wrap; } -::v-deep .number-of-steps { +:deep(.number-of-steps) { .el-step__line { margin: 0 25px; background: #dddddd; diff --git a/admin/src/app/lang/zh-cn/channel.app.access.json b/admin/src/app/lang/zh-cn/channel.app.access.json new file mode 100644 index 000000000..eb0410748 --- /dev/null +++ b/admin/src/app/lang/zh-cn/channel.app.access.json @@ -0,0 +1,13 @@ +{ + "accessFlow": "接入流程", + "versionManage": "版本管理", + "title": "APP端管理", + "appInlet": "App接入流程", + "uniappApp": "uni-app应用开通", + "appAttestation1": "点击进入Dcloud官网开发者后台,创建或选择应用并维护好应用平台信息", + "clickAccess": "点击接入", + "appSetting": "App端配置", + "settingInfo": "点击配置", + "releaseVersion": "发布版本", + "toCreate": "去创建" +} diff --git a/admin/src/app/lang/zh-cn/channel.app.config.json b/admin/src/app/lang/zh-cn/channel.app.config.json new file mode 100644 index 000000000..180840277 --- /dev/null +++ b/admin/src/app/lang/zh-cn/channel.app.config.json @@ -0,0 +1,17 @@ +{ + "wechatAppInfo": "微信应用信息", + "wechatAppid": "微信移动应用AppID", + "wechatAppidTips": "用于app端 微信登录 微信支付 微信分享", + "wechatAppsecret": "微信移动应用AppSecret", + "appidPlaceholder": "请输入AppID", + "appSecretPlaceholder": "请输入AppSecret", + "appInfo": "应用信息", + "uniAppId": "uniapp应用id", + "uniAppIdTips": "uniapp应用id需在Dcloud开发者中心创建", + "toCreate": "前往Dcloud官网", + "appName": "应用名称", + "applicationId": "安卓应用包名", + "applicationIdTips": "安卓应用的包名是Android系统中用于唯一标识应用的字符串,采用反向域名格式(如com.example.myapp)。每个应用在系统中拥有唯一的包名,用于区分不同应用", + "androidAppKey": "安卓离线打包Key", + "androidAppKeyTips": "安卓离线打包Key在Dcloud开发者中心 - 应用管理 - 点击应用 - 各平台信息 创建以及查看离线AppKey" +} diff --git a/admin/src/app/lang/zh-cn/channel.app.version.json b/admin/src/app/lang/zh-cn/channel.app.version.json new file mode 100644 index 000000000..f68a37191 --- /dev/null +++ b/admin/src/app/lang/zh-cn/channel.app.version.json @@ -0,0 +1,55 @@ +{ + "accessFlow": "接入流程", + "versionManage": "版本管理", + "versionCode":"版本号", + "versionCodePlaceholder":"请输入版本号", + "versionCodeTips": "应用版本号,必须是整数,取值范围1~2147483647;必须高于上一版本设置的值", + "versionName":"版本名称", + "versionNamePlaceholder":"请输入版本名称", + "versionDesc":"", + "versionDescPlaceholder":"请输入", + "icon":"应用图标", + "iconPlaceholder":"请输入应用图标", + "push":"消息推送图标", + "pushPlaceholder":"请输入消息推送图标", + "splash":"应用启动页图标", + "splashPlaceholder":"请输入应用启动页的图标", + "platform":"客户端", + "packagePath":"安装包路径", + "packagePathPlaceholder":"请输入安装包路径", + "status":"状态", + "statusPlaceholder":"请输入状态", + "addAppVersion":"添加版本", + "updateAppVersion":"编辑版本", + "startDate":"请选择开始时间", + "endDate":"请选择结束时间", + "isForcedUpgrade": "强制升级", + "versionDesc": "更新内容", + "isForcedUpgradeTitle": "是否强制升级", + "releaseTime": "发布时间", + "release": "发布", + "resourceFile": "上传资源文件", + "androidResourceFileTips": "只能上传apk文件", + "iosResourceFileTips": "只能上传wgt文件", + "index": "序号", + "next": "下一步", + "prev": "上一步", + "certType": "证书类型", + "certFile": "证书文件", + "certAlias": "证书别名", + "certKeyPassword": "证书密码", + "certStorePassword": "证书库密码", + "publicCertTips": "niucloud提供的公共测试证书,证书的描述信息都是测试数据,任何人都可以使用,仅适合应用开发期间体验测试使用", + "privateCertTips": "Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。", + "download": "下载", + "failReason": "失败原因", + "appVersionReleaseTips": "发布后无法再对该版本进行修改,确定要发布该版本吗?", + "appVersionDeleteTips": "确定要删除该版本吗?", + "upgradeType": "升级方式", + "seeBuildLog": "查看打包日志", + "buildLog": "打包日志", + "authTips": "上传代码需先绑定授权码,如果已有授权请先进行绑定,没有授权可到niucloud官网购买云服务之后再进行操作", + "toBind": "绑定授权", + "toNiucloud": "去niucloud官网", + "siteAuthTips": "上传代码需先绑定授权码,请联系平台管理员进行绑定" +} diff --git a/admin/src/app/lang/zh-cn/channel.wechat.config.json b/admin/src/app/lang/zh-cn/channel.wechat.config.json index a86663f97..73e8a1b72 100644 --- a/admin/src/app/lang/zh-cn/channel.wechat.config.json +++ b/admin/src/app/lang/zh-cn/channel.wechat.config.json @@ -29,5 +29,8 @@ "encodingAesKeyPlaceholder": "请输入EncodingAESKey", "cleartextModeTips": "明文模式下,不使用消息体加解密功能,安全系数较低", "compatibleModeTips": "兼容模式下,明文、密文将共存,方便开发者调试和维护", - "safeModeTips": "安全模式下,消息包为纯密文,需要开发者加密和解密,安全系数高" -} \ No newline at end of file + "safeModeTips": "安全模式下,消息包为纯密文,需要开发者加密和解密,安全系数高", + "wechatBaseUri": "借权域名", + "wechatBaseUriPlaceholder": "", + "wechatBaseUriTips": "默认留空,填写后将替换https://open.weixin.gg.com/获取授权!" +} diff --git a/admin/src/app/lang/zh-cn/setting.map.json b/admin/src/app/lang/zh-cn/setting.map.json index 346d9fc75..9bbab2230 100644 --- a/admin/src/app/lang/zh-cn/setting.map.json +++ b/admin/src/app/lang/zh-cn/setting.map.json @@ -7,5 +7,6 @@ "validTimeTips": "过期后将重新获取定位信息", "validTimePlaceholder": "请输入定位有效期", "validTimeFormatTips": "格式输入错误", - "validTimeNotZeroTips": "定位有效期不能小于5分钟" -} \ No newline at end of file + "validTimeNotZeroTips": "定位有效期不能小于5分钟", + "aMapKey": "高德地图KEY" +} diff --git a/admin/src/app/lang/zh-cn/setting.system.json b/admin/src/app/lang/zh-cn/setting.system.json index c60aa7b04..af44cb0a2 100644 --- a/admin/src/app/lang/zh-cn/setting.system.json +++ b/admin/src/app/lang/zh-cn/setting.system.json @@ -32,6 +32,10 @@ "contactsTelPlaceholder": "请输入联系电话", "logoPlaceholder": "建议图片尺寸:210*30像素;图片格式:jpg、png、jpeg。", "iconPlaceholder": "建议图片尺寸:100*100像素;图片格式:jpg、png、jpeg。", + "siteLoginLogo": "站点登录Logo", + "siteLoginLogoTips": "站点端登录Logo,建议图片尺寸:132*40像素;图片格式:jpg、png、jpeg。", + "siteLoginBgImg": "站点登录背景图", + "siteLoginBgImgTips": "站点端登录背景图,建议图片尺寸:1920*1280像素;图片格式:jpg、png、jpeg。", "metaTitle": "Meta 标题", "MetaPlaceholder": "请输入Meta 标题", "metaDescription": "Meta 描述", diff --git a/admin/src/app/views/app/index.vue b/admin/src/app/views/app/index.vue index 317593f06..d3f56ce4e 100644 --- a/admin/src/app/views/app/index.vue +++ b/admin/src/app/views/app/index.vue @@ -50,6 +50,7 @@ import { img } from '@/utils/common' import useUserStore from '@/stores/modules/user' import { useRouter } from 'vue-router' import { t } from '@/lang' +import storage from '@/utils/storage' const addonIndexRoute = useUserStore().addonIndexRoute const router = useRouter() @@ -65,10 +66,17 @@ getAppList() const toLink = (item: any) => { if (item.url) { - router.push(item.url) + // 判断如果携带is_target=true就通过新窗口打开 + if (item.url.indexOf('is_target=true') != -1) { + const url = router.resolve(item.url) + window.open(url.href) + } else { + router.push(item.url) + } } else { addonIndexRoute[item.key] && router.push({ name: addonIndexRoute[item.key] }) } + storage.set({ key: 'activeAppKey', data: item.key }) } diff --git a/admin/src/app/views/app/marketing.vue b/admin/src/app/views/app/marketing.vue index da01772f0..2a38e7b93 100644 --- a/admin/src/app/views/app/marketing.vue +++ b/admin/src/app/views/app/marketing.vue @@ -1,51 +1,50 @@ diff --git a/admin/src/app/views/auth/log.vue b/admin/src/app/views/auth/log.vue index 893f1be3b..ab66b3064 100644 --- a/admin/src/app/views/auth/log.vue +++ b/admin/src/app/views/auth/log.vue @@ -19,13 +19,19 @@ + + + + {{ t('search') }} {{ t('reset') }} -
+
{{ t('清空日志') }}
@@ -83,7 +89,8 @@ const sysUserLogTableData = reactive({ searchParam: { ip: '', username: '', - url: '' + url: '', + create_time:'' } }) diff --git a/admin/src/app/views/auth/role.vue b/admin/src/app/views/auth/role.vue index 2c013c3e7..ec4e3f432 100644 --- a/admin/src/app/views/auth/role.vue +++ b/admin/src/app/views/auth/role.vue @@ -3,9 +3,9 @@
- +
diff --git a/admin/src/app/views/channel/app/access.vue b/admin/src/app/views/channel/app/access.vue new file mode 100644 index 000000000..f285ce34f --- /dev/null +++ b/admin/src/app/views/channel/app/access.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/admin/src/app/views/channel/app/components/app-version-edit.vue b/admin/src/app/views/channel/app/components/app-version-edit.vue new file mode 100644 index 000000000..f67251913 --- /dev/null +++ b/admin/src/app/views/channel/app/components/app-version-edit.vue @@ -0,0 +1,286 @@ + + + + + + diff --git a/admin/src/app/views/channel/app/components/generate-sing-cert.vue b/admin/src/app/views/channel/app/components/generate-sing-cert.vue new file mode 100644 index 000000000..0879d75e2 --- /dev/null +++ b/admin/src/app/views/channel/app/components/generate-sing-cert.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/admin/src/app/views/channel/app/config.vue b/admin/src/app/views/channel/app/config.vue new file mode 100644 index 000000000..c6344a810 --- /dev/null +++ b/admin/src/app/views/channel/app/config.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/admin/src/app/views/channel/app/version.vue b/admin/src/app/views/channel/app/version.vue new file mode 100644 index 000000000..4adf345d4 --- /dev/null +++ b/admin/src/app/views/channel/app/version.vue @@ -0,0 +1,339 @@ + + + + + diff --git a/admin/src/app/views/channel/wechat/config.vue b/admin/src/app/views/channel/wechat/config.vue index b5874951c..d24f6678e 100644 --- a/admin/src/app/views/channel/wechat/config.vue +++ b/admin/src/app/views/channel/wechat/config.vue @@ -36,6 +36,11 @@
{{ t('wechatAppsecretTips') }}
+ + + +
{{ t('wechatBaseUriTips') }}
+
@@ -140,7 +145,8 @@ const formData = reactive>({ token: '', encoding_aes_key: '', encryption_type: 'not_encrypt', - is_authorization: 0 + is_authorization: 0, + base_uri: '' }) const formRef = ref() diff --git a/admin/src/app/views/diy/components/edit-page.vue b/admin/src/app/views/diy/components/edit-page.vue index 0d513860d..1234d177e 100644 --- a/admin/src/app/views/diy/components/edit-page.vue +++ b/admin/src/app/views/diy/components/edit-page.vue @@ -63,6 +63,23 @@
{{ t('tabbarSwitchTips') }}
+ + + +
+ + +
+
+

{{ t('版权信息内容') }}

+ + + +
{{ t('此处控制当前页面版权信息是否显示') }}
+
+ + +
@@ -178,6 +195,7 @@ import { t } from '@/lang' import { watch, ref } from 'vue' import useDiyStore from '@/stores/modules/diy' import { img } from '@/utils/common' +import tabbarSelectPopup from './tabbar-select-popup.vue' const diyStore = useDiyStore() diff --git a/admin/src/app/views/diy/components/tabbar-select-popup.vue b/admin/src/app/views/diy/components/tabbar-select-popup.vue new file mode 100644 index 000000000..9b03d2316 --- /dev/null +++ b/admin/src/app/views/diy/components/tabbar-select-popup.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/admin/src/app/views/diy/edit.vue b/admin/src/app/views/diy/edit.vue index 74ec223b0..321bb80ae 100644 --- a/admin/src/app/views/diy/edit.vue +++ b/admin/src/app/views/diy/edit.vue @@ -185,7 +185,7 @@ - + @@ -455,7 +455,6 @@ initPage({ diyStore.components.push(com) } } - loadDiyTemplatePages(data.type) // 加载预览 diff --git a/admin/src/app/views/diy/list.vue b/admin/src/app/views/diy/list.vue index d37b39405..d4d916da9 100644 --- a/admin/src/app/views/diy/list.vue +++ b/admin/src/app/views/diy/list.vue @@ -256,7 +256,7 @@ const editEvent = (data: any) => { // 设为使用 const setUse = (id: any) => { setUseDiyPage({ id }).then(() => { - loadDiyPageList() + loadDiyPageList(getTablePageStorage(diyPageTableData.searchParam).page) }) } const repeat = ref(false) @@ -275,7 +275,7 @@ const copyEvent = (id: any) => { copyDiy({ id }).then((res: any) => { if (res.code == 1) { - loadDiyPageList() + loadDiyPageList(getTablePageStorage(diyPageTableData.searchParam).page) } repeat.value = false }).catch(err => { @@ -294,7 +294,7 @@ const deleteEvent = (id: number) => { } ).then(() => { deleteDiyPage(id).then(() => { - loadDiyPageList() + loadDiyPageList(getTablePageStorage(diyPageTableData.searchParam).page) }).catch(() => { }) }) @@ -358,7 +358,7 @@ const shareEvent = async (formEl: FormInstance | undefined) => { id: shareFormId.value, share: JSON.stringify(shareFormData) }).then(() => { - loadDiyPageList() + loadDiyPageList(getTablePageStorage(diyPageTableData.searchParam).page) shareDialogVisible.value = false }).catch(() => { }) diff --git a/admin/src/app/views/diy/tabbar.vue b/admin/src/app/views/diy/tabbar.vue index bc869edf9..60f3598e1 100644 --- a/admin/src/app/views/diy/tabbar.vue +++ b/admin/src/app/views/diy/tabbar.vue @@ -35,7 +35,7 @@
+ @size-change="loadBottomNavList()" @current-change="loadBottomNavList" />
diff --git a/admin/src/app/views/diy/theme_style.vue b/admin/src/app/views/diy/theme_style.vue index df5a6b348..c3a7645cc 100644 --- a/admin/src/app/views/diy/theme_style.vue +++ b/admin/src/app/views/diy/theme_style.vue @@ -13,7 +13,7 @@