diff --git a/.env.development b/.env.development index 6855adf..756656a 100644 --- a/.env.development +++ b/.env.development @@ -1,13 +1,13 @@ # 页面标题 -VUE_APP_TITLE = 志愿者管理系统 +VUE_APP_TITLE = 苏州园区志愿服务活动区块链平台 # 开发环境配置 ENV = 'development' -# 志愿者管理系统/开发环境 +# 苏州园区志愿服务活动区块链平台/开发环境 # VUE_APP_BASE_API = 'https://vue.ruoyi.vip/prod-api' -# VUE_APP_BASE_API = 'http://192.168.0.108:9034' VUE_APP_BASE_API = 'http://39.101.188.84:9034' +# VUE_APP_BASE_API = 'http://192.168.0.117:9034' # 路由懒加载 VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/.env.production b/.env.production index 2143b78..3ac36c2 100644 --- a/.env.production +++ b/.env.production @@ -1,8 +1,8 @@ # 页面标题 -VUE_APP_TITLE = 志愿者管理系统 +VUE_APP_TITLE = 苏州园区志愿服务活动区块链平台 # 生产环境配置 ENV = 'production' -# 志愿者管理系统/生产环境 +# 苏州园区志愿服务活动区块链平台/生产环境 VUE_APP_BASE_API = 'http://39.101.188.84:9034' diff --git a/.env.staging b/.env.staging index a38ef25..1a6570c 100644 --- a/.env.staging +++ b/.env.staging @@ -1,10 +1,10 @@ # 页面标题 -VUE_APP_TITLE = 志愿者管理系统 +VUE_APP_TITLE = 苏州园区志愿服务活动区块链平台 NODE_ENV = production # 测试环境配置 ENV = 'staging' -# 志愿者管理系统/测试环境 +# 苏州园区志愿服务活动区块链平台/测试环境 VUE_APP_BASE_API = '/stage-api' diff --git a/package.json b/package.json index 7c32c0c..7d42b65 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ruoyi", "version": "3.8.6", - "description": "志愿者管理系统", + "description": "苏州园区志愿服务活动区块链平台", "author": "若依", "license": "MIT", "scripts": { @@ -45,6 +45,7 @@ "file-saver": "2.0.5", "fuse.js": "6.4.3", "highlight.js": "9.18.5", + "html2canvas": "^1.4.1", "js-beautify": "1.13.0", "js-cookie": "3.0.1", "jsencrypt": "3.0.0-rc.1", diff --git a/src/api/volunteer/gxhzs/gxhzsgl/index.js b/src/api/volunteer/gxhzs/gxhzsgl/index.js index e40f3a6..b128292 100644 --- a/src/api/volunteer/gxhzs/gxhzsgl/index.js +++ b/src/api/volunteer/gxhzs/gxhzsgl/index.js @@ -42,3 +42,26 @@ export function delCertificates(id) { method: "delete", }); } +//可兑换的一次性证书 +export function zskdh(query) { + return request({ + url: "/zhiyuanzhe/pointsRedemption/page", + method: "get", + params: query, + }); +} +//发放 +export function exchange(data) { + return request({ + url: "/zhiyuanzhe/pointsRedemption/exchange", + method: "post", + data, + }); +} +//查询用户多少积分 +export function findIntegral() { + return request({ + url: "/zhiyuanzhe/pointsRedemption/findIntegral", + method: "get", + }); +} diff --git a/src/api/volunteer/gxhzs/hdzsff/index.js b/src/api/volunteer/gxhzs/hdzsff/index.js index 391fed8..d79ceda 100644 --- a/src/api/volunteer/gxhzs/hdzsff/index.js +++ b/src/api/volunteer/gxhzs/hdzsff/index.js @@ -30,3 +30,52 @@ export function editData(data) { data, }); } + +//获取个性化证书发放列表 +export function dsbrecordsList(query) { + return request({ + url: "/zhiyuanzhe/dsbrecords/list", + method: "get", + params: query, + }); +} +//获取兑换记录详细信息 +export function dsbrecordsInfo(id) { + return request({ + url: "/zhiyuanzhe/dsbrecords/" + id, + method: "get", + }); +} +//发放个性化证书 +export function issue(data) { + return request({ + url: "/zhiyuanzhe/dsbrecords/issue", + method: "post", + data, + }); +} + +// 查询一次性证书列表 +export function getYcList(query) { + return request({ + url: "/zhiyuanzhe/points/list", + method: "get", + params: query, + }); +} +//获取一次性活动详情信息 +export function getYcInfo(id) { + return request({ + url: "/zhiyuanzhe/points/" + id, + method: "get", + }); +} + +//发放一次行证书 +export function ycIssue(data) { + return request({ + url: "/zhiyuanzhe/points/issue", + method: "post", + data, + }); +} diff --git a/src/assets/icons/svg/diy1.svg b/src/assets/icons/svg/diy1.svg new file mode 100644 index 0000000..df7190e --- /dev/null +++ b/src/assets/icons/svg/diy1.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/src/assets/icons/svg/diy2.svg b/src/assets/icons/svg/diy2.svg new file mode 100644 index 0000000..c2e867d --- /dev/null +++ b/src/assets/icons/svg/diy2.svg @@ -0,0 +1,40 @@ + + + + + + + + + diff --git a/src/assets/icons/svg/diy3.svg b/src/assets/icons/svg/diy3.svg new file mode 100644 index 0000000..2c8f364 --- /dev/null +++ b/src/assets/icons/svg/diy3.svg @@ -0,0 +1,17 @@ + + + + + + + diff --git a/src/assets/icons/svg/diy4.svg b/src/assets/icons/svg/diy4.svg new file mode 100644 index 0000000..e7b3033 --- /dev/null +++ b/src/assets/icons/svg/diy4.svg @@ -0,0 +1,17 @@ + + + + + + diff --git a/src/assets/icons/svg/diy5.svg b/src/assets/icons/svg/diy5.svg new file mode 100644 index 0000000..8fa6ca9 --- /dev/null +++ b/src/assets/icons/svg/diy5.svg @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/src/assets/images/login-background.jpg b/src/assets/images/login-background.jpg index 8a89eb8..58c5129 100644 Binary files a/src/assets/images/login-background.jpg and b/src/assets/images/login-background.jpg differ diff --git a/src/assets/images/sidebar.png b/src/assets/images/sidebar.png index 95e9e92..0811d24 100644 Binary files a/src/assets/images/sidebar.png and b/src/assets/images/sidebar.png differ diff --git a/src/assets/images/z.png b/src/assets/images/z.png new file mode 100644 index 0000000..397d2e4 Binary files /dev/null and b/src/assets/images/z.png differ diff --git a/src/assets/images/zs.jpg b/src/assets/images/zs.jpg new file mode 100644 index 0000000..2a46b2b Binary files /dev/null and b/src/assets/images/zs.jpg differ diff --git a/src/assets/styles/myTable.scss b/src/assets/styles/myTable.scss index c1012f8..155860b 100644 --- a/src/assets/styles/myTable.scss +++ b/src/assets/styles/myTable.scss @@ -42,7 +42,7 @@ // align-items: center; margin-bottom: 20px; .item-lable { - width: 80px; + min-width: 80px; font-size: 16px; font-family: "Alibaba-PuHuiTi-Regular"; font-weight: 400; @@ -63,7 +63,7 @@ justify-content: space-between; } //卡片布局 -.book-main { +::v-deep .book-main { margin: 0; padding: 0; display: flex; @@ -80,13 +80,14 @@ border-radius: 10px; position: relative; overflow: hidden; + .integral-num { position: absolute; top: 6%; - right: 10%; + right: 7%; font-size: 18px; font-weight: bold; - color: #2aa984; + color: $--color-primary; z-index: 10; font-family: "din-bold-2.ttf"; } @@ -95,7 +96,7 @@ width: 100%; display: flex; justify-content: space-between; - align-content: center; + align-items: center; padding: 0 10px; .integral { flex: 1; @@ -135,3 +136,112 @@ top: 20px; } } + +.noData { + display: flex; + align-items: center; + justify-content: center; +} + +//证书查看 +::v-deep .conversionInfo { + .basicInfo, + .logisticsInfo { + .title { + display: flex; + align-items: center; + img { + width: 14px; + margin-right: 10px; + } + span { + font-size: 16px; + font-family: "Alibaba PuHuiTi"; + font-weight: bold; + color: #4c4949; + } + } + .info { + margin-top: 20px; + display: grid; + grid-column: 1fr; + grid-row-gap: 20px; + .lists { + display: flex; + align-items: center; + justify-content: space-between; + .list-left, + .list-right { + flex: 1; + display: flex; + align-items: center; + div { + &:nth-child(1) { + font-size: 14px; + font-family: "Alibaba PuHuiTi"; + font-weight: 400; + color: #4c4949; + } + &:nth-child(2) { + font-size: 14px; + font-family: "Alibaba PuHuiTi"; + font-weight: 400; + color: #807a7a; + } + } + } + } + } + } + .logisticsInfo { + margin-top: 30px; + } +} + +// 电子证书 +.zs-box { + height: 450px; + width: 300px; + position: relative; + background: url("~@/assets/images/zs.jpg"); + background-size: 100% 100%; + .zs-z { + position: absolute; + bottom: 10%; + right: 10%; + border: 1px solid red; + height: 50px; + width: 50px; + border-radius: 50%; + overflow: hidden; + background: url("~@/assets/images/z.png"); + background-size: 100% 100%; + } + .top-text { + position: absolute; + top: 30%; + left: 50%; + font-size: 14px; + transform: translateX(-50%); + z-index: 10; + span { + display: inline-block; + width: 60px; + text-align: center; + border-bottom: 1px solid #333; + } + } + .bottom-text { + position: absolute; + bottom: 10%; + right: 10%; + z-index: 10; + .lable-value { + margin-bottom: 3px; + font-size: 13px; + display: flex; + align-items: center; + justify-content: space-between; + } + } +} diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss index 2a5c264..943f8fe 100644 --- a/src/assets/styles/sidebar.scss +++ b/src/assets/styles/sidebar.scss @@ -24,8 +24,8 @@ left: 0; z-index: 1001; overflow: hidden; - -webkit-box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); - box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); + // -webkit-box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); + // box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); // reset element-ui css .horizontal-collapse-transition { @@ -73,6 +73,11 @@ .el-menu-item, .el-submenu__title { + font-size: 14px !important; + font-family: "Alibaba-PuHuiTi-Regular"; + + height: 50px !important; + line-height: 50px; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; @@ -82,6 +87,7 @@ .submenu-title-noDropdown, .el-submenu__title { &:hover { + border-radius: 5px !important; color: #f8414d !important; background-color: rgba(255, 72, 83, 0.2) !important; } @@ -89,6 +95,8 @@ & .theme-dark .is-active > .el-submenu__title { // color: $base-menu-color-active !important; + border-radius: 5px !important; + color: #fff !important; background-color: #f23f4a !important; } @@ -111,9 +119,12 @@ & .theme-dark .el-submenu .el-menu-item { // background-color: $base-sub-menu-background !important; background-color: #faf7f7 !important; + height: 50px !important; + line-height: 50px !important; &:hover { // background-color: $base-sub-menu-hover !important; + border-radius: 5px !important; color: #f8414d !important; background-color: rgba(255, 72, 83, 0.2) !important; } diff --git a/src/components/TopNav/index.vue b/src/components/TopNav/index.vue index daee1b8..1e703dc 100644 --- a/src/components/TopNav/index.vue +++ b/src/components/TopNav/index.vue @@ -5,7 +5,11 @@ @select="handleSelect" >