源文件

This commit is contained in:
gyq
2024-05-23 14:39:33 +08:00
commit a1128dd791
2997 changed files with 500069 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
> 1%
last 2 versions
not ie <= 10

View File

@@ -0,0 +1,8 @@
# base url
# VITE_API_BASE_URL=s
# VITE_API_BASE_URL=http://mgruxxkwhmz.shouyinbei.com/
# VITE_API_BASE_URL=https://atmgr.yinshangfu.cn/
VITE_APP_BASE_URL=http://manager.sxczgkj.cn
# http加解密KEY(16位)
VITE_HTTP_MESSAGE_ENCRYPT_KEY=1234567890123456

View File

@@ -0,0 +1,77 @@
module.exports = {
parser: 'vue-eslint-parser',
parserOptions: {
parser: '@typescript-eslint/parser',
ecmaVersion: 2020,
sourceType: 'module',
ecmaFeatures: {
jsx: true
}
},
extends: [
'plugin:vue/vue3-recommended',
],
rules: {
// VUE相关规则配置 https://eslint.vuejs.org/rules/
// 避免单行标签的换行
'vue/singleline-html-element-content-newline': 'off',
// 允许 自定义组件的 驼峰属性和中划线连接属性
'vue/attribute-hyphenation': 0,
'vue/v-on-event-hyphenation': 0,
// // 允许 子组件更改props参数值
// 'vue/no-mutating-props': 0,
// https://eslint.vuejs.org/rules/max-attributes-per-line.html#vue-max-attributes-per-line
'vue/max-attributes-per-line': ['error', {
'singleline': {
'max': 5 // vue 属性单行最多5个元素
},
'multiline': {
'max': 1 // 多行最多1个
}
}],
'no-multiple-empty-lines': [2, { 'max': 2 }], //空行最多不能超过2行
'no-empty': 2, //块语句中的内容不能为空
'no-tabs': 2,
/**
* 分号配置项:
* 第一个参数:
' off'或0 - 关闭规则
' warn'或1 - 将该规则作为警告打开(不影响退出代码)
' error'或2 - 将规则作为错误打开退出代码将为1
*
*第二个参数
always默认在语句末尾需要分号
never不允许加分号
*
* 第三个参数:
'beforeStatementContinuationChars': 'any'(默认)如果下一行语句以 [(/+,或 - 开头,忽略语句末尾的分号(或缺失分号),
'beforeStatementContinuationChars': 'always' 如果下一行语句以 [(/+,或 - 开头,在语句末尾需要添加分号。
'beforeStatementContinuationChars': 'never' 如果该语句不会因为ASI而带来风险那么即使它的下一行语句以 [(/+,或 - 开头,也不允许在语句末尾添加分号。
* **/
'semi': [
2,
'never',
{
'beforeStatementContinuationChars': 'never'
}
],
// 单引号
'quotes': [
2,
'single',
{
'avoidEscape': true,
'allowTemplateLiterals': true
}
],
},
}

View File

@@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<title></title>
<link rel="icon" />
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
<style>.first-loading-wrp{display:flex;justify-content:center;align-items:center;flex-direction:column;min-height:420px;height:90vh}.first-loading-wrp>h1{font-size:128px}.first-loading-wrp .loading-wrp{padding:98px;display:flex;justify-content:center;align-items:center}.dot{animation:antRotate 1.2s infinite linear;transform:rotate(45deg);position:relative;display:inline-block;font-size:32px;width:32px;height:32px;box-sizing:border-box}.dot i{width:14px;height:14px;position:absolute;display:block;background-color:#1890ff;border-radius:100%;transform:scale(.75);transform-origin:50% 50%;opacity:.3;animation:antSpinMove 1s infinite linear alternate}.dot i:nth-child(1){top:0;left:0}.dot i:nth-child(2){top:0;right:0;-webkit-animation-delay:.4s;animation-delay:.4s}.dot i:nth-child(3){right:0;bottom:0;-webkit-animation-delay:.8s;animation-delay:.8s}.dot i:nth-child(4){bottom:0;left:0;-webkit-animation-delay:1.2s;animation-delay:1.2s}@keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@-webkit-keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antSpinMove{to{opacity:1}}</style>
</head>
<body>
<div id="app">
<!-- 默认页面的等待效果 -->
<div class="first-loading-wrp">
<div>
<img id="jeepay_index_logo_img" type="text/javascript" style="height: 50px;" class="logo">
</div>
<div class="loading-wrp"><span class="dot dot-spin"><i></i><i></i><i></i><i></i></span></div>
<div id="jeepay_index_logo_text" style="display: flex; justify-content: center; align-items: center;"></div>
</div>
</div>
<script>
var $SITE_INFO_NAME = 'JEEPAY_SITE_INFO';
// 改变首页显示信息
function $CHANGE_INDEX_SITE_INFO(){
let siteInfos = window.localStorage.getItem($SITE_INFO_NAME)
if (!siteInfos){
return false;
}
let siteInfoJSON = JSON.parse(siteInfos).siteInfo
document.title = siteInfoJSON.sysName
document.querySelector('link[rel="icon"]').href = siteInfoJSON.iconUrl
document.getElementById('jeepay_index_logo_img').src = siteInfoJSON.sysLogoUrl
document.getElementById('jeepay_index_logo_text').innerHTML = siteInfoJSON.sysName
}
// 初次调用
$CHANGE_INDEX_SITE_INFO()
</script>
<script type="module" src="/src/main.ts"></script>
</body>
<!-- 引入 web-view 项app推送相关js脚本 -->
<script src="/js/jweixin-1.6.0.js"></script>
<script src="/js/uni.webview.1.5.4.js"></script>
</html>

10370
jeepay-ui-manager/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,60 @@
{
"name": "jeepay-plus-ui-manager",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "vite",
"build": "vite build",
"serve": "vite preview"
},
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@ant-design-vue/pro-layout": "3.1.9",
"@ant-design/icons-vue": "^6.0.1",
"@soerenmartius/vue3-clipboard": "^0.1.2",
"@wangeditor/core": "^0.14.0",
"@wangeditor/editor": "^0.15.20",
"@wangeditor/editor-for-vue": "^5.1.8-11",
"ant-design-vue": "3.1.1",
"axios": "^0.20.0-0",
"bootstrap-icons": "^1.7.1",
"echarts": "^5.2.2",
"gm-crypto": "^0.1.8",
"js-base64": "^3.7.2",
"js-file-download": "^0.4.12",
"lodash-es": "^4.17.21",
"mitt": "^3.0.1",
"nprogress": "^0.2.0",
"pinia": "^2.0.0-rc.10",
"qrcode.vue": "^3.3.3",
"qs": "^6.10.1",
"reconnectingwebsocket": "^1.0.0",
"snabbdom": "^3.5.1",
"store": "^2.0.12",
"v-viewer": "^3.0.10",
"video.js": "^8.10.0",
"vue": "^3.2.21",
"vue-router": "^4.0.12"
},
"devDependencies": {
"@types/crypto-js": "^4.0.2",
"@types/lodash-es": "^4.17.11",
"@types/node": "^16.11.12",
"@types/qs": "^6.9.7",
"@types/store": "^2.0.2",
"@typescript-eslint/parser": "^5.4.0",
"@vitejs/plugin-vue": "^1.9.4",
"@vitejs/plugin-vue-jsx": "^1.3.3",
"@vue/compiler-sfc": "^3.2.19",
"crypto-js": "^4.1.1",
"eslint": "^8.2.0",
"eslint-plugin-vue": "^8.0.3",
"less": "^4.1.2",
"less-loader": "^10.2.0",
"typescript": "^4.4.3",
"unplugin-vue-components": "^0.17.2",
"vite": "^2.6.13",
"vue-eslint-parser": "^8.0.1",
"vue-tsc": "^0.3.0"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="30" height="30" viewBox="0 0 30 30">
<defs>
<clipPath id="clip-path">
<rect id="矩形_3368" data-name="矩形 3368" width="30" height="30" transform="translate(35 30)" fill="#2691ff"/>
</clipPath>
<clipPath id="clip-path-2">
<rect id="矩形_3367" data-name="矩形 3367" width="30" height="30" fill="#2691ff"/>
</clipPath>
</defs>
<g id="logo-on-bar" transform="translate(-35 -30)" clip-path="url(#clip-path)">
<g id="组_1181" data-name="组 1181" transform="translate(35 30)">
<g id="组_1180" data-name="组 1180" clip-path="url(#clip-path-2)">
<path id="路径_10752" data-name="路径 10752" d="M1574.822,2391.229h0l-3.758,3.757c-1.3,1.3-.037,3.743,1.934,3.743h7.236c1.185,0,1.039-1.048.4-1.689Z" transform="translate(-1566.342 -2368.729)" fill="#2691ff" opacity="0.5"/>
<path id="路径_10753" data-name="路径 10753" d="M1584.022,2331.229h-19.333a5.333,5.333,0,0,0-5.333,5.333V2355.9a5.333,5.333,0,0,0,5.333,5.333h.5a1.667,1.667,0,0,0,1.667-1.667V2355.4a1.666,1.666,0,0,1,1.667-1.667h4.167a1.667,1.667,0,0,0,1.667-1.667V2347.9a1.666,1.666,0,0,1,1.667-1.667h4.167a1.667,1.667,0,0,1,1.667,1.667v11.667a1.667,1.667,0,0,0,1.667,1.667h.5a5.334,5.334,0,0,0,5.333-5.333v-19.334A5.333,5.333,0,0,0,1584.022,2331.229Zm-2.167,9.583a1.667,1.667,0,0,1-1.667,1.667h-4.167a1.667,1.667,0,0,1-1.667-1.667v-4.167a1.666,1.666,0,0,1,1.667-1.667h4.167a1.667,1.667,0,0,1,1.667,1.667Z" transform="translate(-1559.356 -2331.229)" fill="#2691ff"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="62.17" height="25.5" viewBox="0 0 62.17 25.5">
<defs>
<clipPath id="clip-path">
<rect id="矩形_3369" data-name="矩形 3369" width="62.17" height="25.5" transform="translate(70.68 32.25)" fill="#fff" stroke="#707070" stroke-width="1"/>
</clipPath>
</defs>
<g id="蒙版组_255" data-name="蒙版组 255" transform="translate(-70.68 -32.25)" clip-path="url(#clip-path)">
<g id="组_1184" data-name="组 1184">
<g id="组_1182" data-name="组 1182" transform="translate(73.32 48.375)">
<path id="路径_10754" data-name="路径 10754" d="M1666.025,2380.728a5.113,5.113,0,0,0-.72-.05h-3.761v9.026h1.811v-3.027h1.95a5.264,5.264,0,0,0,.719-.05,3.023,3.023,0,0,0,0-5.9Zm.537,2.952a1.192,1.192,0,0,1-.82,1.229,1.946,1.946,0,0,1-.5.053h-1.89V2382.4h1.89a2.232,2.232,0,0,1,.5.049A1.2,1.2,0,0,1,1666.562,2383.681Z" transform="translate(-1661.543 -2380.51)" fill="#2691ff"/>
<path id="路径_10755" data-name="路径 10755" d="M1684.171,2380.678h-1.811v9.026H1688v-1.72h-3.827Z" transform="translate(-1674.554 -2380.51)" fill="#2691ff"/>
<path id="路径_10756" data-name="路径 10756" d="M1704.675,2386.266a1.842,1.842,0,1,1-3.684,0v-5.592l-1.829.015v5.613a3.672,3.672,0,0,0,7.341,0v-5.626h-1.829Z" transform="translate(-1685.055 -2380.507)" fill="#2691ff"/>
<path id="路径_10757" data-name="路径 10757" d="M1725.149,2384.165l-1.554-.434c-.671-.18-1.118-.4-1.118-.861a.721.721,0,0,1,.236-.527,1.842,1.842,0,0,1,2.909.906l.035.172,1.92-.334-.045-.186a3.43,3.43,0,0,0-3.592-2.672,3.64,3.64,0,0,0-2.63.909,2.48,2.48,0,0,0-.717,1.8,2.409,2.409,0,0,0,2.061,2.387l2.238.661c.74.224.835.56.835.827,0,.7-.812,1.065-1.613,1.065a1.939,1.939,0,0,1-2-1.476l-.039-.16-1.847.281.029.18a3.527,3.527,0,0,0,3.765,2.9c1.782,0,3.58-.891,3.58-2.882C1727.6,2384.831,1725.945,2384.381,1725.149,2384.165Z" transform="translate(-1698.222 -2380.229)" fill="#2691ff"/>
</g>
<g id="组_1183" data-name="组 1183" transform="translate(70.684 32.25)">
<path id="路径_10758" data-name="路径 10758" d="M1681.682,2337.229h8.3v2.018h-6.152v3.17h5.08v2.018h-5.08v3.634h6.152v2.018h-8.3Z" transform="translate(-1671.494 -2337.229)" fill="#43454d"/>
<path id="路径_10759" data-name="路径 10759" d="M1709.543,2337.229h8.3v2.018H1711.7v3.17h5.08v2.018h-5.08v3.634h6.152v2.018h-8.3Z" transform="translate(-1688.907 -2337.229)" fill="#43454d"/>
<path id="路径_10760" data-name="路径 10760" d="M1743.743,2337.3a7.374,7.374,0,0,0-1.027-.072H1737.4v12.857h2.152V2345.6h3.161a7.524,7.524,0,0,0,1.027-.072,3.774,3.774,0,0,0,3.277-4.107C1747.02,2339.292,1745.975,2337.648,1743.743,2337.3Zm1.107,4.116a1.98,1.98,0,0,1-1.41,2.08,3.179,3.179,0,0,1-.813.089h-3.071v-4.339h3.071a3.636,3.636,0,0,1,.813.08A2,2,0,0,1,1744.85,2341.417Z" transform="translate(-1706.32 -2337.229)" fill="#43454d"/>
<path id="路径_10761" data-name="路径 10761" d="M1770.257,2337.229h-3.152l-4.053,12.857h2.214l.884-2.786h5.053l.893,2.786h2.214Zm-3.482,8.063,1.884-5.991,1.911,5.991Z" transform="translate(-1722.35 -2337.229)" fill="#43454d"/>
<path id="路径_10762" data-name="路径 10762" d="M1795.55,2344.818l-4.375-7.589h2.509l2.955,5.125,2.947-5.125h2.509l-4.366,7.589v5.268h-2.179Z" transform="translate(-1739.927 -2337.229)" fill="#43454d"/>
<path id="路径_10763" data-name="路径 10763" d="M1662.024,2339.4v-2.17h-4.875v2.17h2.694v6.482a4.249,4.249,0,0,1-.17,1.607,1.566,1.566,0,0,1-1.42.848,1.7,1.7,0,0,1-1.616-1.33l-2.125.509a3.767,3.767,0,0,0,3.821,2.84,3.539,3.539,0,0,0,3.259-1.759,4.741,4.741,0,0,0,.429-2.714V2339.4Z" transform="translate(-1654.513 -2337.229)" fill="#43454d"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

6
jeepay-ui-manager/src/App.d.ts vendored Normal file
View File

@@ -0,0 +1,6 @@
declare module '*.vue' {
import { defineComponent } from 'vue'
const Component: ReturnType<typeof defineComponent>
export default Component
}
//https://juejin.cn/post/6968364365237993479

View File

@@ -0,0 +1,59 @@
<template>
<a-config-provider :locale="locale">
<a-spin :spinning="userStore.globalLoading" style="max-height: 100vh">
<div id="app">
<router-view />
</div>
</a-spin>
</a-config-provider>
</template>
<script setup lang="ts">
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
import dayjs from 'dayjs'
import 'dayjs/locale/zh-cn'
import { useUserStore } from '@/store/modules/user'
import { useOem } from '@/store/modules/oem'
const userStore = useUserStore()
let locale = zhCN
dayjs.locale('zh-cn')
const colorList = [
{ color: '#1965FF', title: '默认', name: 'theme-default' },
{ color: '#409EFF', title: '蓝色', name: 'theme-blue' },
{ color: '#67C23A', title: '绿色', name: 'theme-green' },
{ color: '#FF9326', title: '橙色', name: 'theme-orange' },
{ color: '#F56C6C', title: '红色', name: 'theme-red' },
{ color: '#A126FF', title: '紫色', name: 'theme-purple' },
{ color: '#6C6F91', title: '深夜', name: 'theme-black' }
]
const calcColor = () => {
let color = '#1965FF'
colorList.forEach((v) => {
if (v.name == useOem().getSiteInfo().mgr.sysPrimaryColor) {
color = v.color
}
})
return color
}
// 切换主题色
import { ConfigProvider } from 'ant-design-vue'
ConfigProvider.config({
theme: {
primaryColor: calcColor()
}
})
</script>
<style>
.tooltip-box-name {
max-width: 900px !important;
}
.my-tooltip-title-box{
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
max-width: 13em; /* 限制一行显示五个字符 */
}
</style>

View File

@@ -0,0 +1,65 @@
import request from '@/http/request'
import { Base64 } from 'js-base64'
// 登录认证接口
export function login ({ username, password, vercode, vercodeToken, googleCode }) {
const data = {
ia: Base64.encode(username), // 账号
ip: Base64.encode(password), // 密码
vc: Base64.encode(vercode), // 验证码值
vt: Base64.encode(vercodeToken), // 验证码token
mc: Base64.encode(googleCode), // 谷歌验证码
lt: Base64.encode('WEB')
}
return request.request({
url: '/api/anon/auth/validate',
method: 'post',
data: data
}, true, false, false)
}
// 获取图形验证码信息接口
export function vercode () {
return request.request({ url: '/api/anon/auth/vercode', method: 'get' }, true, true, true)
}
// 获取当前用户信息
export function getCurrentUserInfo () {
return request.request({
url: '/api/current/user',
method: 'get'
})
}
// 发送短信验证接口
export function sendSmsCode ({ phone }) {
const data = {
phone: phone // 手机号
}
return request.request({
url: '/api/anon/cipher/smsCode',
method: 'post',
data: data
}, true, true, false)
}
// 重置密码接口
export function retrieve ({ phone, code, newPwd }) {
const data = {
phone: Base64.encode(phone), // 手机号
code: Base64.encode(code), // 验证码
newPwd: Base64.encode(newPwd) // 密码
}
return request.request({
url: '/api/anon/cipher/retrieve',
method: 'post',
data: data
}, true, true, false)
}
// 获取上传 配置接口
export function $getUploadImgSize(){
return request.request({
url: '/api/defaultConfig',
method: 'get'
})
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="198" height="44" viewBox="0 0 198 44"><defs><clipPath id="a"><rect width="141" height="36" fill="#262626"/></clipPath><clipPath id="b"><rect width="48" height="44" transform="translate(0.013 -0.162)" fill="#1a53ff"/></clipPath></defs><g transform="translate(-3298 -941)"><g transform="translate(2668.271 -1127)"><g transform="translate(686.73 2076)" clip-path="url(#a)"><path d="M942.424,2095.354A5.627,5.627,0,0,0,936.7,2091H924.375l-.505,3.6h12.076a3.074,3.074,0,0,1,2.434,1.072,2.282,2.282,0,0,1-1.758,3.728h-8a7.611,7.611,0,0,0-7.3,6.4l-.393,2.8a5.432,5.432,0,0,0,5.5,6.4h5.6a8.888,8.888,0,0,0,4.583-1.322l-.185,1.322h3.6l1.124-8,1.067-7.6.281-2h0A5.815,5.815,0,0,0,942.424,2095.354ZM938.115,2103l-.225,1.6-.337,2.4a5.24,5.24,0,0,1-5.016,4.4h-5.6a2.379,2.379,0,0,1-2.406-2.8l.393-2.8a3.334,3.334,0,0,1,3.192-2.8h8a6,6,0,0,0,2.051-.368Z" transform="translate(-827.264 -2085)" fill="#262626"/><path d="M811,2091h-7.2a7.611,7.611,0,0,0-7.3,6.4l-.534,3.8-.505,3.6-.534,3.8a5.432,5.432,0,0,0,5.5,6.4h7.2a7.611,7.611,0,0,0,7.3-6.4l.028-.2h-3.6l-.028.2a3.333,3.333,0,0,1-3.192,2.8h-7.2a2.379,2.379,0,0,1-2.406-2.8l.534-3.8H815.46l.505-3.6.534-3.8A5.432,5.432,0,0,0,811,2091Zm-11.428,10.2.534-3.8a3.333,3.333,0,0,1,3.192-2.8h7.2a2.379,2.379,0,0,1,2.406,2.8l-.534,3.8Z" transform="translate(-751.638 -2085)" fill="#262626"/><path d="M749,2091h-7.2a7.611,7.611,0,0,0-7.3,6.4l-.534,3.8-.505,3.6-.534,3.8a5.432,5.432,0,0,0,5.5,6.4h7.2a7.611,7.611,0,0,0,7.3-6.4l.028-.2h-3.6l-.028.2a3.333,3.333,0,0,1-3.192,2.8h-7.2a2.379,2.379,0,0,1-2.406-2.8l.534-3.8H753.46l.505-3.6.534-3.8A5.432,5.432,0,0,0,749,2091Zm-11.428,10.2.534-3.8a3.333,3.333,0,0,1,3.192-2.8h7.2a2.379,2.379,0,0,1,2.406,2.8l-.534,3.8Z" transform="translate(-714.425 -2085)" fill="#262626"/><path d="M702.938,2076h-8l-.562,4h4l-1.911,13.6-.73,5.2a3.811,3.811,0,0,1-3.648,3.2h-4.8l-.562,4h4.8a8.564,8.564,0,0,0,8.208-7.2l2.641-18.8h0Z" transform="translate(-686.73 -2076)" fill="#262626"/><path d="M1001.279,2091l-.506,3.6-.73,5.2-1.067,7.6-.169,1.2a3.334,3.334,0,0,1-3.192,2.8h-7.2a2.379,2.379,0,0,1-2.405-2.8l1.236-8.8.73-5.2.506-3.6h-3.6l-2.472,17.6a5.432,5.432,0,0,0,5.5,6.4h7.2a6.958,6.958,0,0,0,2.89-.652l-.092.652a2.854,2.854,0,0,1-2.736,2.4H982.379l-.506,3.6h12.793a7.136,7.136,0,0,0,6.84-6l.9-6.4.169-1.2,2.3-16.4Z" transform="translate(-863.877 -2085)" fill="#262626"/><path d="M872.537,2091h-7.2a6.958,6.958,0,0,0-2.89.652l.091-.652h-3.6l-.9,6.4-1.574,11.2L854.73,2121h3.6l.934-6.652a5.789,5.789,0,0,0,2.707.652h7.2a7.611,7.611,0,0,0,7.3-6.4l1.574-11.2A5.432,5.432,0,0,0,872.537,2091Zm.326,17.6a3.333,3.333,0,0,1-3.192,2.8h-7.2a2.379,2.379,0,0,1-2.406-2.8l1.574-11.2a3.334,3.334,0,0,1,3.192-2.8h7.2a2.379,2.379,0,0,1,2.406,2.8Z" transform="translate(-787.565 -2085)" fill="#262626"/></g></g><g transform="translate(267.246 -836.852)"><g transform="translate(3030.741 1778.014)" clip-path="url(#b)"><path d="M3045.511,1838h0l-6.29,5.493a3.121,3.121,0,0,0,2.066,5.471h11.29a1.094,1.094,0,0,0,.833-1.808Z" transform="translate(-3034.172 -1805.125)" fill="#1a53ff" opacity="0.5"/><path d="M3034.916,1783.662l-4.332,30.7a6.588,6.588,0,0,0,6.541,7.494h2.454a1.1,1.1,0,0,0,1.089-.943l1.148-8.134a2.2,2.2,0,0,1,2.177-1.886h7.184a2.2,2.2,0,0,0,2.179-1.886l1.014-7.189a2.2,2.2,0,0,1,2.18-1.887h6.562a2.2,2.2,0,0,1,2.18,2.5l-1.194,8.465-1.371,9.717a1.1,1.1,0,0,0,1.087,1.246h4a6.6,6.6,0,0,0,6.541-5.662l4.332-30.7a6.586,6.586,0,0,0-6.54-7.492h-30.694A6.6,6.6,0,0,0,3034.916,1783.662Zm29.588,10.782h-6.559a2.2,2.2,0,0,1-2.182-2.5l.928-6.574a2.2,2.2,0,0,1,2.182-1.889h6.557a2.2,2.2,0,0,1,2.183,2.5l-.928,6.574A2.2,2.2,0,0,1,3064.5,1794.445Z" transform="translate(-3030.743 -1778.014)" fill="#1a53ff"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="308" height="230" viewBox="0 0 308 230"><defs><style>.a{fill:none;}.b{clip-path:url(#a);}.c{opacity:0.05;}.d{opacity:0.1;}.e{fill:#999691;}.f{fill:#ffd200;}.g{fill:#aeb8c2;}.h{fill:#ff4633;}.i{fill:#fff;}</style><clipPath id="a"><rect class="a" width="308" height="230" transform="translate(179 574)"/></clipPath></defs><g transform="translate(-179 -574)"><g class="b"><ellipse class="c" cx="154" cy="35" rx="154" ry="35" transform="translate(179 734)"/><ellipse class="d" cx="34" cy="7.727" rx="34" ry="7.727" transform="translate(354 774.773)"/><path class="e" d="M235.514,736.729H179V716.794l40.835-86.53H244.19l-40.835,86.53h32.159V683.575h21.607v33.219h11.958v19.935H257.121V757.8H235.514Z"/><path class="e" d="M290.391,714.573V673.478c0-27.189,18.694-45.883,45.883-45.883s45.884,18.694,45.884,45.883v41.095c0,27.2-18.694,45.883-45.884,45.883S290.391,741.777,290.391,714.573Zm69.979,1.515v-44.2a24.092,24.092,0,1,0-48.184,0v44.2a24.092,24.092,0,0,0,48.184,0Z"/><path class="e" d="M487,717.948c0,24.175-19.574,42.249-43.489,42.249-19.134,0-36.313-11.871-41.809-30.378l20.642-5.582A21.347,21.347,0,0,0,443.424,740,21.571,21.571,0,0,0,465.3,717.948c0-12.578-9.03-22.242-21.875-22.242a23.294,23.294,0,0,0-11.07,3.015l-9.744-16.833,36.847-31.532H406.664V630.264H484.88v20.193L456.089,678.08C475.663,682.075,487,698.548,487,717.948Z"/><path class="f" d="M487,649.66,179,736.34v-19L487,630.66Z"/><path d="M194.8,732l-12,3.126,2.394-19.628,12-3.126Z"/><path d="M218.8,725.241l-12,3.126,2.394-19.628,12-3.126Z"/><path d="M242.8,718.487l-12,3.126,2.394-19.628,12-3.126Z"/><path d="M266.8,711.733l-12,3.126,2.394-19.628,12-3.126Z"/><path d="M290.8,704.978l-12,3.126,2.394-19.628,12-3.126Z"/><path d="M314.8,698.224l-12,3.126,2.394-19.628,12-3.126Z"/><path d="M338.8,691.47l-12,3.126,2.394-19.628,12-3.126Z"/><path d="M362.8,684.715l-12,3.126,2.394-19.628,12-3.126Z"/><path d="M386.8,677.961l-12,3.126,2.394-19.628,12-3.126Z"/><path d="M410.8,671.207l-12,3.126L401.2,654.7l12-3.126Z"/><path d="M434.8,664.452l-12,3.126L425.2,647.95l12-3.126Z"/><path d="M458.8,657.7l-12,3.126L449.2,641.2l12-3.126Z"/><path d="M482.8,650.944l-12,3.126,2.394-19.628,12-3.126Z"/><path class="g" d="M386,650V782c0,.552.895,1,2,1s2-.448,2-1V650Z"/><rect class="h" width="80" height="80" rx="9.891" transform="translate(348 574)"/><path class="i" d="M388,584a30,30,0,1,0,30,30A30,30,0,0,0,388,584Zm0,55a25,25,0,1,1,25-25A25,25,0,0,1,388,639Z"/><rect class="i" width="25" height="5" transform="translate(375.5 611.5)"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="308" height="230" viewBox="0 0 308 230"><defs><style>.a{fill:none;}.b{clip-path:url(#a);}.c{opacity:0.05;}.d{fill:#f5f5f7;}.e{fill:#dce0e6;}.f{fill:#24285b;}.g{fill:#596380;}.h{fill:#ffd200;}.i{fill:#fff;}.j{fill:#97a3ad;}</style><clipPath id="a"><rect class="a" width="308" height="230" transform="translate(1010 582)"/></clipPath></defs><g transform="translate(-1010 -582)"><g class="b"><ellipse class="c" cx="154" cy="35" rx="154" ry="35" transform="translate(1010 742)"/><ellipse class="c" cx="121" cy="2" rx="121" ry="2" transform="translate(1043 752)"/><rect class="d" width="228.672" height="158.82" transform="translate(1049.664 582)"/><rect class="e" width="228.672" height="125.754" transform="translate(1049.664 615.066)"/><ellipse class="f" cx="4.398" cy="4.429" rx="4.398" ry="4.429" transform="translate(1063.711 592.142)"/><ellipse class="g" cx="4.398" cy="4.429" rx="4.398" ry="4.429" transform="translate(1076.794 592.142)"/><ellipse class="h" cx="4.398" cy="4.429" rx="4.398" ry="4.429" transform="translate(1089.123 592.142)"/><path class="i" d="M1111.9,664.221a2.54,2.54,0,0,1,0-3.575l0,0,14.97-15.067a2.5,2.5,0,0,1,3.545.2,2.542,2.542,0,0,1,0,3.369l-14.971,15.077A2.5,2.5,0,0,1,1111.9,664.221Z"/><path class="i" d="M1127.106,664.464l-14.97-15.077a2.541,2.541,0,0,1-.057-3.575,2.5,2.5,0,0,1,3.55-.057c.021.02.041.041.061.062l14.961,15.067a2.542,2.542,0,0,1,.066,3.575,2.5,2.5,0,0,1-3.549.067l-.062-.062Z"/><path class="i" d="M1194.91,664.221a2.54,2.54,0,0,1-.005-3.575l.005,0,14.97-15.067a2.5,2.5,0,0,1,3.544-.2,2.539,2.539,0,0,1,.2,3.569,2.483,2.483,0,0,1-.2.2l-14.96,15.077A2.517,2.517,0,0,1,1194.91,664.221Z"/><path class="i" d="M1210.151,664.464l-14.97-15.077a2.541,2.541,0,0,1-.057-3.575,2.5,2.5,0,0,1,3.549-.057l.062.062,14.96,15.067a2.541,2.541,0,0,1,.067,3.575,2.5,2.5,0,0,1-3.549.067l-.062-.062Z"/><path class="i" d="M1142.82,707.39a2.508,2.508,0,0,1-2.49-2.326c-.7-8.605,2.54-25.543,19.8-28.01,5.392-.759,9.9.485,13.394,3.721,8.2,7.594,7.39,23.561,7.36,24.269a2.514,2.514,0,1,1-5.02-.283h0c0-.142.713-14.258-5.743-20.225-2.37-2.184-5.4-2.973-9.288-2.426-16.948,2.335-15.573,21.72-15.5,22.56a2.523,2.523,0,0,1-2.3,2.72Z"/><ellipse cx="52.8" cy="12" rx="52.8" ry="12" transform="translate(1111.2 765)"/><path class="j" d="M1065.337,756.844H1010V737.324l39.985-84.729h23.855l-39.985,84.729h31.482V704.8H1086.5v32.527H1098.2v19.519H1086.5v20.635h-21.158Z"/><path class="j" d="M1285.134,756.844H1229.8V737.324l39.985-84.729h23.855l-39.985,84.729h31.482V704.8h21.158v32.527H1318v19.519h-11.709v20.635h-21.158Z"/><path class="j" d="M1142.457,787.955a23.67,23.67,0,0,1,42.566.054,115.012,115.012,0,0,0,21.241-3.822c-5.762-17.839-21.556-29.205-42.531-29.205-20.925,0-36.693,11.3-42.5,29.049A111.5,111.5,0,0,0,1142.457,787.955Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="308" height="230" viewBox="0 0 308 230"><defs><style>.a{fill:none;}.b{clip-path:url(#a);}.c{fill:#e6e6e6;}.d{fill:#f5f5f7;}.e{fill:#9294ad;}.f{fill:#ffd200;}.g{fill:#aeb8c2;}.h{fill:#dce0e6;}.i{fill:#24285b;}.j{fill:#ff4d4d;}.k{fill:#fff;}</style><clipPath id="a"><rect class="a" width="308" height="230" transform="translate(638 574)"/></clipPath></defs><g transform="translate(-638 -574)"><g class="b"><path class="c" d="M788,799.455H748.216v-3.017h36.743V742.822H788Z"/><path class="d" d="M879.86,659.975c-.944,0-1.868.06-2.781.15v-1.3a39.4,39.4,0,0,0-39.585-39.217h-1.675c-.724-25.9-22.5-46.31-48.642-45.593a47.1,47.1,0,0,0-46.021,48.19,46.481,46.481,0,0,0,1.192,9.239,39.2,39.2,0,0,0,1.492,78.363H879.85a24.909,24.909,0,1,0,0-49.815h0Z"/><path class="e" d="M724.522,702.141c0,23.811-20.829,42.683-44.952,42.683A42.973,42.973,0,0,1,638,713.341l20.651-5.468c2.582,10.23,12.107,16.579,21.72,16.579a22.462,22.462,0,0,0,22.61-22.311c0-12.346-10.326-22.223-22.61-22.223-9.88,0-16.2,4.321-19.672,8.289l-18.338-5.82,3.917-67.2h69.61v19.93h-50.56l-1.959,31.219a39.764,39.764,0,0,1,19.94-5.644C707.342,660.693,724.522,678.33,724.522,702.141Z"/><path class="e" d="M744.521,699.142V658.224c0-27.074,18.782-45.682,46.11-45.682s46.109,18.608,46.109,45.682v40.918c0,27.074-18.782,45.682-46.109,45.682S744.521,726.216,744.521,699.142Zm70.322,1.5V656.636a24.212,24.212,0,0,0-48.424,0v44.006a24.213,24.213,0,0,0,48.424,0Z"/><path class="e" d="M853.89,699.142V658.224c0-27.074,18.782-45.682,46.11-45.682s46.11,18.608,46.11,45.682v40.918c0,27.074-18.782,45.682-46.11,45.682S853.89,726.216,853.89,699.142Zm70.322,1.5V656.636a24.212,24.212,0,0,0-48.424,0v44.006a24.213,24.213,0,0,0,48.424,0Z"/><rect class="f" width="94.385" height="58.936" transform="translate(743.832 700.859)"/><rect class="g" width="94.385" height="58.936" transform="translate(743.832 700.859)"/><rect class="h" width="111.021" height="28.91" transform="translate(735.691 676.123)"/><rect class="i" width="66.239" height="6.727" transform="translate(748.216 686.741)"/><ellipse class="j" cx="5.542" cy="5.49" rx="5.542" ry="5.49" transform="translate(823.063 685.615)"/><rect class="h" width="111.021" height="28.91" transform="translate(735.691 710.975)"/><rect class="i" width="66.239" height="6.727" transform="translate(748.216 721.584)"/><ellipse class="k" cx="5.542" cy="5.49" rx="5.542" ry="5.49" transform="translate(823.063 720.468)"/><rect class="h" width="111.021" height="28.91" transform="translate(735.691 745.828)"/><rect class="i" width="66.239" height="6.727" transform="translate(748.216 756.437)"/><ellipse class="k" cx="5.542" cy="5.49" rx="5.542" ry="5.49" transform="translate(823.063 755.321)"/><rect class="c" width="36.581" height="3.017" transform="translate(786.482 796.438)"/><ellipse class="i" cx="5.988" cy="5.933" rx="5.988" ry="5.933" transform="translate(743.842 792.134)"/><ellipse class="i" cx="5.988" cy="5.933" rx="5.988" ry="5.933" transform="translate(817.074 792.134)"/></g></g></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="76" height="76" viewBox="0 0 76 76"><defs><style>.a{fill:#1953ff;}</style></defs><path class="a" d="M-1198-1084a6.007,6.007,0,0,1-6-6v-64a6.007,6.007,0,0,1,6-6h64a6.007,6.007,0,0,1,6,6v64a6.006,6.006,0,0,1-6,6Zm-4-70v64a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4v-64a4,4,0,0,0-4-4h-64A4.005,4.005,0,0,0-1202-1154Zm35,47v-14h-14a1,1,0,0,1-1-1,1,1,0,0,1,1-1h14v-14a1,1,0,0,1,1-1,1,1,0,0,1,1,1v14h14a1,1,0,0,1,1,1,1,1,0,0,1-1,1h-14v14a1,1,0,0,1-1,1A1,1,0,0,1-1167-1107Z" transform="translate(1204 1160)"/></svg>

After

Width:  |  Height:  |  Size: 543 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="76" height="76" viewBox="0 0 76 76"><defs><style>.a{fill:#ccced1;}</style></defs><path class="a" d="M-1198-1084a6.007,6.007,0,0,1-6-6v-64a6.007,6.007,0,0,1,6-6h64a6.007,6.007,0,0,1,6,6v64a6.006,6.006,0,0,1-6,6Zm-4-70v64a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4v-64a4,4,0,0,0-4-4h-64A4.005,4.005,0,0,0-1202-1154Zm35,47v-14h-14a1,1,0,0,1-1-1,1,1,0,0,1,1-1h14v-14a1,1,0,0,1,1-1,1,1,0,0,1,1,1v14h14a1,1,0,0,1,1,1,1,1,0,0,1-1,1h-14v14a1,1,0,0,1-1,1A1,1,0,0,1-1167-1107Z" transform="translate(1204 1160)"/></svg>

After

Width:  |  Height:  |  Size: 543 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1920" height="970" viewBox="0 0 1920 970"><defs><style>.a{fill:url(#a);}.b{clip-path:url(#b);}.c{filter:url(#n);}.d{filter:url(#k);}.e{filter:url(#h);}.f{filter:url(#e);}</style><linearGradient id="a" y1="0.383" x2="1" y2="0.589" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#f1f8ff"/><stop offset="1" stop-color="#f7fbfe"/></linearGradient><clipPath id="b"><rect class="a" width="1920" height="970"/></clipPath><filter id="e" x="-169" y="375" width="756" height="756" filterUnits="userSpaceOnUse"><feOffset dx="20" dy="-20" input="SourceAlpha"/><feGaussianBlur stdDeviation="30" result="f"/><feFlood flood-color="#211f47" flood-opacity="0.071"/><feComposite operator="in" in2="f"/><feComposite in="SourceGraphic"/></filter><filter id="h" x="1230" y="568" width="433" height="433" filterUnits="userSpaceOnUse"><feOffset dx="2" dy="-10" input="SourceAlpha"/><feGaussianBlur stdDeviation="30" result="i"/><feFlood flood-color="#211f47" flood-opacity="0.071"/><feComposite operator="in" in2="i"/><feComposite in="SourceGraphic"/></filter><filter id="k" x="1440" y="88.44" width="655.121" height="655.121" filterUnits="userSpaceOnUse"><feOffset dx="2" dy="30" input="SourceAlpha"/><feGaussianBlur stdDeviation="30" result="l"/><feFlood flood-color="#211f47" flood-opacity="0.122"/><feComposite operator="in" in2="l"/><feComposite in="SourceGraphic"/></filter><filter id="n" x="422.061" y="2.561" width="350.879" height="350.879" filterUnits="userSpaceOnUse"><feOffset dx="2" dy="10" input="SourceAlpha"/><feGaussianBlur stdDeviation="30" result="o"/><feFlood flood-color="#211f47" flood-opacity="0.122"/><feComposite operator="in" in2="o"/><feComposite in="SourceGraphic"/></filter></defs><g class="b"><rect class="a" width="1920" height="970"/><g class="f" transform="matrix(1, 0, 0, 1, 0, 0)"><circle class="a" cx="288" cy="288" r="288" transform="translate(-99 485)"/></g><g class="e" transform="matrix(1, 0, 0, 1, 0, 0)"><circle class="a" cx="126.5" cy="126.5" r="126.5" transform="translate(1318 668)"/></g><g class="d" transform="matrix(1, 0, 0, 1, 0, 0)"><rect class="a" width="335.961" height="335.961" rx="30" transform="translate(1528 386) rotate(-45)"/></g><g class="c" transform="matrix(1, 0, 0, 1, 0, 0)"><rect class="a" width="170.879" height="170.879" transform="translate(510.06 82.56)"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="1361px" height="609px" viewBox="0 0 1361 609" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
<title>Group 21</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Ant-Design-Pro-3.0" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="账户密码登录-校验" transform="translate(-79.000000, -82.000000)">
<g id="Group-21" transform="translate(77.000000, 73.000000)">
<g id="Group-18" opacity="0.8" transform="translate(74.901416, 569.699158) rotate(-7.000000) translate(-74.901416, -569.699158) translate(4.901416, 525.199158)">
<ellipse id="Oval-11" fill="#CFDAE6" opacity="0.25" cx="63.5748792" cy="32.468367" rx="21.7830479" ry="21.766008"></ellipse>
<ellipse id="Oval-3" fill="#CFDAE6" opacity="0.599999964" cx="5.98746479" cy="13.8668601" rx="5.2173913" ry="5.21330997"></ellipse>
<path d="M38.1354514,88.3520215 C43.8984227,88.3520215 48.570234,83.6838647 48.570234,77.9254015 C48.570234,72.1669383 43.8984227,67.4987816 38.1354514,67.4987816 C32.3724801,67.4987816 27.7006688,72.1669383 27.7006688,77.9254015 C27.7006688,83.6838647 32.3724801,88.3520215 38.1354514,88.3520215 Z" id="Oval-3-Copy" fill="#CFDAE6" opacity="0.45"></path>
<path d="M64.2775582,33.1704963 L119.185836,16.5654915" id="Path-12" stroke="#CFDAE6" stroke-width="1.73913043" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M42.1431708,26.5002681 L7.71190162,14.5640702" id="Path-16" stroke="#E0B4B7" stroke-width="0.702678964" opacity="0.7" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.405357899873153,2.108036953469981"></path>
<path d="M63.9262187,33.521561 L43.6721326,69.3250951" id="Path-15" stroke="#BACAD9" stroke-width="0.702678964" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.405357899873153,2.108036953469981"></path>
<g id="Group-17" transform="translate(126.850922, 13.543654) rotate(30.000000) translate(-126.850922, -13.543654) translate(117.285705, 4.381889)" fill="#CFDAE6">
<ellipse id="Oval-4" opacity="0.45" cx="9.13482653" cy="9.12768076" rx="9.13482653" ry="9.12768076"></ellipse>
<path d="M18.2696531,18.2553615 C18.2696531,13.2142826 14.1798519,9.12768076 9.13482653,9.12768076 C4.08980114,9.12768076 0,13.2142826 0,18.2553615 L18.2696531,18.2553615 Z" id="Oval-4" transform="translate(9.134827, 13.691521) scale(-1, -1) translate(-9.134827, -13.691521) "></path>
</g>
</g>
<g id="Group-14" transform="translate(216.294700, 123.725600) rotate(-5.000000) translate(-216.294700, -123.725600) translate(106.294700, 35.225600)">
<ellipse id="Oval-2" fill="#CFDAE6" opacity="0.25" cx="29.1176471" cy="29.1402439" rx="29.1176471" ry="29.1402439"></ellipse>
<ellipse id="Oval-2" fill="#CFDAE6" opacity="0.3" cx="29.1176471" cy="29.1402439" rx="21.5686275" ry="21.5853659"></ellipse>
<ellipse id="Oval-2-Copy" stroke="#CFDAE6" opacity="0.4" cx="179.019608" cy="138.146341" rx="23.7254902" ry="23.7439024"></ellipse>
<ellipse id="Oval-2" fill="#BACAD9" opacity="0.5" cx="29.1176471" cy="29.1402439" rx="10.7843137" ry="10.7926829"></ellipse>
<path d="M29.1176471,39.9329268 L29.1176471,18.347561 C23.1616351,18.347561 18.3333333,23.1796097 18.3333333,29.1402439 C18.3333333,35.1008781 23.1616351,39.9329268 29.1176471,39.9329268 Z" id="Oval-2" fill="#BACAD9"></path>
<g id="Group-9" opacity="0.45" transform="translate(172.000000, 131.000000)" fill="#E6A1A6">
<ellipse id="Oval-2-Copy-2" cx="7.01960784" cy="7.14634146" rx="6.47058824" ry="6.47560976"></ellipse>
<path d="M0.549019608,13.6219512 C4.12262681,13.6219512 7.01960784,10.722722 7.01960784,7.14634146 C7.01960784,3.56996095 4.12262681,0.670731707 0.549019608,0.670731707 L0.549019608,13.6219512 Z" id="Oval-2-Copy-2" transform="translate(3.784314, 7.146341) scale(-1, 1) translate(-3.784314, -7.146341) "></path>
</g>
<ellipse id="Oval-10" fill="#CFDAE6" cx="218.382353" cy="138.685976" rx="1.61764706" ry="1.61890244"></ellipse>
<ellipse id="Oval-10-Copy-2" fill="#E0B4B7" opacity="0.35" cx="179.558824" cy="175.381098" rx="1.61764706" ry="1.61890244"></ellipse>
<ellipse id="Oval-10-Copy" fill="#E0B4B7" opacity="0.35" cx="180.098039" cy="102.530488" rx="2.15686275" ry="2.15853659"></ellipse>
<path d="M28.9985381,29.9671598 L171.151018,132.876024" id="Path-11" stroke="#CFDAE6" opacity="0.8"></path>
</g>
<g id="Group-10" opacity="0.799999952" transform="translate(1054.100635, 36.659317) rotate(-11.000000) translate(-1054.100635, -36.659317) translate(1026.600635, 4.659317)">
<ellipse id="Oval-7" stroke="#CFDAE6" stroke-width="0.941176471" cx="43.8135593" cy="32" rx="11.1864407" ry="11.2941176"></ellipse>
<g id="Group-12" transform="translate(34.596774, 23.111111)" fill="#BACAD9">
<ellipse id="Oval-7" opacity="0.45" cx="9.18534718" cy="8.88888889" rx="8.47457627" ry="8.55614973"></ellipse>
<path d="M9.18534718,17.4450386 C13.8657264,17.4450386 17.6599235,13.6143199 17.6599235,8.88888889 C17.6599235,4.16345787 13.8657264,0.332739156 9.18534718,0.332739156 L9.18534718,17.4450386 Z" id="Oval-7"></path>
</g>
<path d="M34.6597385,24.809694 L5.71666084,4.76878945" id="Path-2" stroke="#CFDAE6" stroke-width="0.941176471"></path>
<ellipse id="Oval" stroke="#CFDAE6" stroke-width="0.941176471" cx="3.26271186" cy="3.29411765" rx="3.26271186" ry="3.29411765"></ellipse>
<ellipse id="Oval-Copy" fill="#F7E1AD" cx="2.79661017" cy="61.1764706" rx="2.79661017" ry="2.82352941"></ellipse>
<path d="M34.6312443,39.2922712 L5.06366663,59.785082" id="Path-10" stroke="#CFDAE6" stroke-width="0.941176471"></path>
</g>
<g id="Group-19" opacity="0.33" transform="translate(1282.537219, 446.502867) rotate(-10.000000) translate(-1282.537219, -446.502867) translate(1142.537219, 327.502867)">
<g id="Group-17" transform="translate(141.333539, 104.502742) rotate(275.000000) translate(-141.333539, -104.502742) translate(129.333539, 92.502742)" fill="#BACAD9">
<circle id="Oval-4" opacity="0.45" cx="11.6666667" cy="11.6666667" r="11.6666667"></circle>
<path d="M23.3333333,23.3333333 C23.3333333,16.8900113 18.1099887,11.6666667 11.6666667,11.6666667 C5.22334459,11.6666667 0,16.8900113 0,23.3333333 L23.3333333,23.3333333 Z" id="Oval-4" transform="translate(11.666667, 17.500000) scale(-1, -1) translate(-11.666667, -17.500000) "></path>
</g>
<circle id="Oval-5-Copy-6" fill="#CFDAE6" cx="201.833333" cy="87.5" r="5.83333333"></circle>
<path d="M143.5,88.8126685 L155.070501,17.6038544" id="Path-17" stroke="#BACAD9" stroke-width="1.16666667"></path>
<path d="M17.5,37.3333333 L127.466252,97.6449735" id="Path-18" stroke="#BACAD9" stroke-width="1.16666667"></path>
<polyline id="Path-19" stroke="#CFDAE6" stroke-width="1.16666667" points="143.902597 120.302281 174.935455 231.571342 38.5 147.510847 126.366941 110.833333"></polyline>
<path d="M159.833333,99.7453842 L195.416667,89.25" id="Path-20" stroke="#E0B4B7" stroke-width="1.16666667" opacity="0.6"></path>
<path d="M205.333333,82.1372105 L238.719406,36.1666667" id="Path-24" stroke="#BACAD9" stroke-width="1.16666667"></path>
<path d="M266.723424,132.231988 L207.083333,90.4166667" id="Path-25" stroke="#CFDAE6" stroke-width="1.16666667"></path>
<circle id="Oval-5" fill="#C1D1E0" cx="156.916667" cy="8.75" r="8.75"></circle>
<circle id="Oval-5-Copy-3" fill="#C1D1E0" cx="39.0833333" cy="148.75" r="5.25"></circle>
<circle id="Oval-5-Copy-2" fill-opacity="0.6" fill="#D1DEED" cx="8.75" cy="33.25" r="8.75"></circle>
<circle id="Oval-5-Copy-4" fill-opacity="0.6" fill="#D1DEED" cx="243.833333" cy="30.3333333" r="5.83333333"></circle>
<circle id="Oval-5-Copy-5" fill="#E0B4B7" cx="175.583333" cy="232.75" r="5.25"></circle>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="14" viewBox="0 0 14 14"><defs><style>.a{fill:#fff;stroke:#707070;}.b{fill:#596380;}.c{clip-path:url(#a);}.d{clip-path:url(#b);}</style><clipPath id="a"><rect class="a" width="14" height="14" transform="translate(796 520)"/></clipPath><clipPath id="b"><rect class="b" width="12" height="12" transform="translate(0)"/></clipPath></defs><g class="c" transform="translate(-796 -520)"><g transform="translate(-100 289.628)"><g class="d" transform="translate(897 231.372)"><path class="b" d="M1182.9,231.267h-3.343v3.745a2.254,2.254,0,0,1,0,4.508v3.75h3.343a2.291,2.291,0,0,0,2.258-2.308V233.58a2.289,2.289,0,0,0-2.258-2.313Zm0,0" transform="translate(-1173.16 -231.269)"/><path class="b" d="M903.133,235.581a1.657,1.657,0,0,0-.531.086v-4.3h-3.343A2.291,2.291,0,0,0,897,233.68v7.381a2.291,2.291,0,0,0,2.258,2.308H902.6v-4.293a1.713,1.713,0,0,0,.531.086,1.791,1.791,0,0,0,0-3.582Zm0,0" transform="translate(-897 -231.372)"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621586617012" class="icon" viewBox="0 0 1146 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6384" xmlns:xlink="http://www.w3.org/1999/xlink" width="17.90625" height="16"><defs><style type="text/css"></style></defs><path d="M0 788.389381a507.469027 108.743363 0 1 0 1014.938053 0 507.469027 108.743363 0 1 0-1014.938053 0Z" fill="#F3F3F8" p-id="6385"></path><path d="M321.880354 246.303717h367.915044l174.714337 220.749026s-174.895575 180.151504-352.328496 179.607788-357.584425-181.238938-357.584425-181.238938z" fill="#FBFBFD" p-id="6386"></path><path d="M797.451327 815.575221H217.486726a63.433628 63.433628 0 0 1-63.433629-63.433628V471.221239h166.558584l14.680354 29.360708A81.738761 81.738761 0 0 0 416.849558 579.964602h199.362831a63.614867 63.614867 0 0 0 63.433629-60.533806L711.72531 471.221239h149.159646v280.920354A63.433628 63.433628 0 0 1 797.451327 815.575221z" fill="#FBFBFD" p-id="6387"></path><path d="M797.451327 806.513274a54.371681 54.371681 0 0 0 54.371682-54.371681v-271.858407h-135.385487L688.707965 522.330619a72.495575 72.495575 0 0 1-72.495576 66.69593H416.849558a90.619469 90.619469 0 0 1-90.61947-86.088496l-11.236814-22.654867H163.115044v271.858407a54.371681 54.371681 0 0 0 54.371682 54.371681h579.964601m0 18.123894H217.486726a72.495575 72.495575 0 0 1-72.495576-72.495575v-289.982301h181.238938l18.123894 36.247788a72.495575 72.495575 0 0 0 72.495576 72.495575h199.362831a54.371681 54.371681 0 0 0 54.371682-54.371682l36.247787-54.371681h163.115045v289.982301a72.495575 72.495575 0 0 1-72.495576 72.495575z" fill="#E2E2EE" p-id="6388"></path><path d="M863.059823 467.958938L684.539469 253.734513H330.398584L151.87823 467.958938l-13.774159-11.599292L322.061593 235.610619h370.814867l183.957522 220.749027z" fill="#E2E2EE" p-id="6389"></path></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="62.667" height="16" viewBox="0 0 62.667 16"><defs><style>.a{fill:#262626;}.b{clip-path:url(#a);}</style><clipPath id="a"><rect class="a" width="62.667" height="16"/></clipPath></defs><g transform="translate(-686.73 -2076)"><g class="b" transform="translate(686.73 2076)"><path class="a" d="M930.451,2092.935a2.5,2.5,0,0,0-2.543-1.935h-5.479l-.225,1.6h5.367a1.366,1.366,0,0,1,1.082.476,1.014,1.014,0,0,1-.781,1.657h-3.554a3.383,3.383,0,0,0-3.243,2.844l-.175,1.245a2.414,2.414,0,0,0,2.443,2.845h2.488a3.952,3.952,0,0,0,2.037-.588l-.082.588h1.6l.5-3.556.474-3.378.125-.889h0A2.585,2.585,0,0,0,930.451,2092.935Zm-1.915,3.4-.1.711-.15,1.067a2.329,2.329,0,0,1-2.229,1.956h-2.488a1.057,1.057,0,0,1-1.069-1.244l.175-1.245a1.482,1.482,0,0,1,1.419-1.244h3.554a2.665,2.665,0,0,0,.911-.163Z" transform="translate(-879.269 -2088.333)"/><path class="a" d="M802.041,2091h-3.2a3.383,3.383,0,0,0-3.242,2.844l-.237,1.689-.225,1.6-.237,1.689a2.414,2.414,0,0,0,2.443,2.845h3.2a3.383,3.383,0,0,0,3.242-2.845l.013-.089h-1.6l-.013.089a1.482,1.482,0,0,1-1.418,1.244h-3.2a1.057,1.057,0,0,1-1.069-1.244l.237-1.689h7.285l.225-1.6.237-1.689A2.414,2.414,0,0,0,802.041,2091Zm-5.079,4.533.237-1.689a1.482,1.482,0,0,1,1.419-1.244h3.2a1.057,1.057,0,0,1,1.069,1.244l-.237,1.689Z" transform="translate(-775.657 -2088.333)"/><path class="a" d="M740.041,2091h-3.2a3.383,3.383,0,0,0-3.242,2.844l-.237,1.689-.225,1.6-.237,1.689a2.415,2.415,0,0,0,2.444,2.845h3.2a3.383,3.383,0,0,0,3.242-2.845l.013-.089h-1.6l-.013.089a1.482,1.482,0,0,1-1.418,1.244h-3.2a1.057,1.057,0,0,1-1.069-1.244l.237-1.689h7.285l.225-1.6.237-1.689A2.414,2.414,0,0,0,740.041,2091Zm-5.079,4.533.237-1.689a1.482,1.482,0,0,1,1.418-1.244h3.2a1.057,1.057,0,0,1,1.069,1.244l-.237,1.689Z" transform="translate(-724.674 -2088.333)"/><path class="a" d="M693.933,2076H690.38l-.25,1.778h1.777l-.849,6.044-.325,2.311a1.694,1.694,0,0,1-1.621,1.423H686.98l-.25,1.777h2.132a3.806,3.806,0,0,0,3.648-3.2l1.174-8.355h0Z" transform="translate(-686.73 -2076)"/><path class="a" d="M990.5,2091l-.225,1.6-.325,2.311-.474,3.377-.075.533a1.482,1.482,0,0,1-1.418,1.244h-3.2a1.057,1.057,0,0,1-1.069-1.244l.549-3.911.325-2.311.225-1.6h-1.6l-1.1,7.822a2.414,2.414,0,0,0,2.443,2.845h3.2a3.094,3.094,0,0,0,1.284-.29l-.041.29a1.268,1.268,0,0,1-1.216,1.066H982.1l-.225,1.6h5.686a3.171,3.171,0,0,0,3.04-2.666l.4-2.845.075-.533L992.1,2091Z" transform="translate(-929.43 -2088.333)"/><path class="a" d="M862.644,2091h-3.2a3.094,3.094,0,0,0-1.285.29l.041-.29h-1.6l-.4,2.844-.7,4.978-.774,5.511h1.6l.415-2.956a2.574,2.574,0,0,0,1.2.29h3.2a3.383,3.383,0,0,0,3.242-2.845l.7-4.978A2.414,2.414,0,0,0,862.644,2091Zm.145,7.822a1.482,1.482,0,0,1-1.419,1.244h-3.2a1.057,1.057,0,0,1-1.069-1.244l.7-4.978a1.482,1.482,0,0,1,1.418-1.244h3.2a1.057,1.057,0,0,1,1.069,1.244Z" transform="translate(-824.879 -2088.333)"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="14" viewBox="0 0 14 14"><defs><style>.a{fill:#fff;stroke:#707070;}.b{fill:#596380;}.c{clip-path:url(#a);}.d{clip-path:url(#b);}</style><clipPath id="a"><rect class="a" width="14" height="14" transform="translate(786 458)"/></clipPath><clipPath id="b"><rect class="b" width="11" height="14"/></clipPath></defs><g class="c" transform="translate(-786 -458)"><g transform="translate(155.5 328)"><g transform="translate(632 130)"><g class="d" transform="translate(0)"><path class="b" d="M636.689,140.115V141.7a.687.687,0,1,0,1.374,0v-1.584a1.4,1.4,0,0,0,.687-1.21,1.374,1.374,0,1,0-2.748,0,1.4,1.4,0,0,0,.687,1.21Zm-2.061-4.7v-2.1a2.748,2.748,0,1,1,5.5,0v2.1H641.5a1.386,1.386,0,0,1,1.374,1.4V143.1a1.386,1.386,0,0,1-1.374,1.4h-8.243a1.386,1.386,0,0,1-1.374-1.4v-6.288a1.386,1.386,0,0,1,1.374-1.4Zm2.748-3.493a1.386,1.386,0,0,0-1.374,1.4v2.1h2.748v-2.1a1.386,1.386,0,0,0-1.374-1.4Zm0,0" transform="translate(-631.882 -130.511)"/></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="30" height="30" viewBox="0 0 30 30">
<defs>
<clipPath id="clip-path">
<rect id="矩形_3368" data-name="矩形 3368" width="30" height="30" transform="translate(35 30)" fill="#2691ff"/>
</clipPath>
<clipPath id="clip-path-2">
<rect id="矩形_3367" data-name="矩形 3367" width="30" height="30" fill="#2691ff"/>
</clipPath>
</defs>
<g id="logo-on-bar" transform="translate(-35 -30)" clip-path="url(#clip-path)">
<g id="组_1181" data-name="组 1181" transform="translate(35 30)">
<g id="组_1180" data-name="组 1180" clip-path="url(#clip-path-2)">
<path id="路径_10752" data-name="路径 10752" d="M1574.822,2391.229h0l-3.758,3.757c-1.3,1.3-.037,3.743,1.934,3.743h7.236c1.185,0,1.039-1.048.4-1.689Z" transform="translate(-1566.342 -2368.729)" fill="#2691ff" opacity="0.5"/>
<path id="路径_10753" data-name="路径 10753" d="M1584.022,2331.229h-19.333a5.333,5.333,0,0,0-5.333,5.333V2355.9a5.333,5.333,0,0,0,5.333,5.333h.5a1.667,1.667,0,0,0,1.667-1.667V2355.4a1.666,1.666,0,0,1,1.667-1.667h4.167a1.667,1.667,0,0,0,1.667-1.667V2347.9a1.666,1.666,0,0,1,1.667-1.667h4.167a1.667,1.667,0,0,1,1.667,1.667v11.667a1.667,1.667,0,0,0,1.667,1.667h.5a5.334,5.334,0,0,0,5.333-5.333v-19.334A5.333,5.333,0,0,0,1584.022,2331.229Zm-2.167,9.583a1.667,1.667,0,0,1-1.667,1.667h-4.167a1.667,1.667,0,0,1-1.667-1.667v-4.167a1.666,1.666,0,0,1,1.667-1.667h4.167a1.667,1.667,0,0,1,1.667,1.667Z" transform="translate(-1559.356 -2331.229)" fill="#2691ff"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="62.17" height="25.5" viewBox="0 0 62.17 25.5">
<defs>
<clipPath id="clip-path">
<rect id="矩形_3369" data-name="矩形 3369" width="62.17" height="25.5" transform="translate(70.68 32.25)" fill="#fff" stroke="#707070" stroke-width="1"/>
</clipPath>
</defs>
<g id="蒙版组_257" data-name="蒙版组 257" transform="translate(-70.68 -32.25)" clip-path="url(#clip-path)">
<g id="组_1184" data-name="组 1184">
<g id="组_1182" data-name="组 1182" transform="translate(73.32 48.375)">
<path id="路径_10754" data-name="路径 10754" d="M1666.025,2380.728a5.113,5.113,0,0,0-.72-.05h-3.761v9.026h1.811v-3.027h1.95a5.264,5.264,0,0,0,.719-.05,3.023,3.023,0,0,0,0-5.9Zm.537,2.952a1.192,1.192,0,0,1-.82,1.229,1.946,1.946,0,0,1-.5.053h-1.89V2382.4h1.89a2.232,2.232,0,0,1,.5.049A1.2,1.2,0,0,1,1666.562,2383.681Z" transform="translate(-1661.543 -2380.51)" fill="#2691ff"/>
<path id="路径_10755" data-name="路径 10755" d="M1684.171,2380.678h-1.811v9.026H1688v-1.72h-3.827Z" transform="translate(-1674.554 -2380.51)" fill="#2691ff"/>
<path id="路径_10756" data-name="路径 10756" d="M1704.675,2386.266a1.842,1.842,0,1,1-3.684,0v-5.592l-1.829.015v5.613a3.672,3.672,0,0,0,7.341,0v-5.626h-1.829Z" transform="translate(-1685.055 -2380.507)" fill="#2691ff"/>
<path id="路径_10757" data-name="路径 10757" d="M1725.149,2384.165l-1.554-.434c-.671-.18-1.118-.4-1.118-.861a.721.721,0,0,1,.236-.527,1.842,1.842,0,0,1,2.909.906l.035.172,1.92-.334-.045-.186a3.43,3.43,0,0,0-3.592-2.672,3.64,3.64,0,0,0-2.63.909,2.48,2.48,0,0,0-.717,1.8,2.409,2.409,0,0,0,2.061,2.387l2.238.661c.74.224.835.56.835.827,0,.7-.812,1.065-1.613,1.065a1.939,1.939,0,0,1-2-1.476l-.039-.16-1.847.281.029.18a3.527,3.527,0,0,0,3.765,2.9c1.782,0,3.58-.891,3.58-2.882C1727.6,2384.831,1725.945,2384.381,1725.149,2384.165Z" transform="translate(-1698.222 -2380.229)" fill="#2691ff"/>
</g>
<g id="组_1183" data-name="组 1183" transform="translate(70.684 32.25)">
<path id="路径_10758" data-name="路径 10758" d="M1681.682,2337.229h8.3v2.018h-6.152v3.17h5.08v2.018h-5.08v3.634h6.152v2.018h-8.3Z" transform="translate(-1671.494 -2337.229)" fill="#fff"/>
<path id="路径_10759" data-name="路径 10759" d="M1709.543,2337.229h8.3v2.018H1711.7v3.17h5.08v2.018h-5.08v3.634h6.152v2.018h-8.3Z" transform="translate(-1688.907 -2337.229)" fill="#fff"/>
<path id="路径_10760" data-name="路径 10760" d="M1743.743,2337.3a7.374,7.374,0,0,0-1.027-.072H1737.4v12.857h2.152V2345.6h3.161a7.524,7.524,0,0,0,1.027-.072,3.774,3.774,0,0,0,3.277-4.107C1747.02,2339.292,1745.975,2337.648,1743.743,2337.3Zm1.107,4.116a1.98,1.98,0,0,1-1.41,2.08,3.179,3.179,0,0,1-.813.089h-3.071v-4.339h3.071a3.636,3.636,0,0,1,.813.08A2,2,0,0,1,1744.85,2341.417Z" transform="translate(-1706.32 -2337.229)" fill="#fff"/>
<path id="路径_10761" data-name="路径 10761" d="M1770.257,2337.229h-3.152l-4.053,12.857h2.214l.884-2.786h5.053l.893,2.786h2.214Zm-3.482,8.063,1.884-5.991,1.911,5.991Z" transform="translate(-1722.35 -2337.229)" fill="#fff"/>
<path id="路径_10762" data-name="路径 10762" d="M1795.55,2344.818l-4.375-7.589h2.509l2.955,5.125,2.947-5.125h2.509l-4.366,7.589v5.268h-2.179Z" transform="translate(-1739.927 -2337.229)" fill="#fff"/>
<path id="路径_10763" data-name="路径 10763" d="M1662.024,2339.4v-2.17h-4.875v2.17h2.694v6.482a4.249,4.249,0,0,1-.17,1.607,1.566,1.566,0,0,1-1.42.848,1.7,1.7,0,0,1-1.616-1.33l-2.125.509a3.767,3.767,0,0,0,3.821,2.84,3.539,3.539,0,0,0,3.259-1.759,4.741,4.741,0,0,0,.429-2.714V2339.4Z" transform="translate(-1654.513 -2337.229)" fill="#fff"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="62.17" height="25.5" viewBox="0 0 62.17 25.5">
<defs>
<clipPath id="clip-path">
<rect id="矩形_3369" data-name="矩形 3369" width="62.17" height="25.5" transform="translate(70.68 32.25)" fill="#fff" stroke="#707070" stroke-width="1"/>
</clipPath>
</defs>
<g id="蒙版组_255" data-name="蒙版组 255" transform="translate(-70.68 -32.25)" clip-path="url(#clip-path)">
<g id="组_1184" data-name="组 1184">
<g id="组_1182" data-name="组 1182" transform="translate(73.32 48.375)">
<path id="路径_10754" data-name="路径 10754" d="M1666.025,2380.728a5.113,5.113,0,0,0-.72-.05h-3.761v9.026h1.811v-3.027h1.95a5.264,5.264,0,0,0,.719-.05,3.023,3.023,0,0,0,0-5.9Zm.537,2.952a1.192,1.192,0,0,1-.82,1.229,1.946,1.946,0,0,1-.5.053h-1.89V2382.4h1.89a2.232,2.232,0,0,1,.5.049A1.2,1.2,0,0,1,1666.562,2383.681Z" transform="translate(-1661.543 -2380.51)" fill="#2691ff"/>
<path id="路径_10755" data-name="路径 10755" d="M1684.171,2380.678h-1.811v9.026H1688v-1.72h-3.827Z" transform="translate(-1674.554 -2380.51)" fill="#2691ff"/>
<path id="路径_10756" data-name="路径 10756" d="M1704.675,2386.266a1.842,1.842,0,1,1-3.684,0v-5.592l-1.829.015v5.613a3.672,3.672,0,0,0,7.341,0v-5.626h-1.829Z" transform="translate(-1685.055 -2380.507)" fill="#2691ff"/>
<path id="路径_10757" data-name="路径 10757" d="M1725.149,2384.165l-1.554-.434c-.671-.18-1.118-.4-1.118-.861a.721.721,0,0,1,.236-.527,1.842,1.842,0,0,1,2.909.906l.035.172,1.92-.334-.045-.186a3.43,3.43,0,0,0-3.592-2.672,3.64,3.64,0,0,0-2.63.909,2.48,2.48,0,0,0-.717,1.8,2.409,2.409,0,0,0,2.061,2.387l2.238.661c.74.224.835.56.835.827,0,.7-.812,1.065-1.613,1.065a1.939,1.939,0,0,1-2-1.476l-.039-.16-1.847.281.029.18a3.527,3.527,0,0,0,3.765,2.9c1.782,0,3.58-.891,3.58-2.882C1727.6,2384.831,1725.945,2384.381,1725.149,2384.165Z" transform="translate(-1698.222 -2380.229)" fill="#2691ff"/>
</g>
<g id="组_1183" data-name="组 1183" transform="translate(70.684 32.25)">
<path id="路径_10758" data-name="路径 10758" d="M1681.682,2337.229h8.3v2.018h-6.152v3.17h5.08v2.018h-5.08v3.634h6.152v2.018h-8.3Z" transform="translate(-1671.494 -2337.229)" fill="#43454d"/>
<path id="路径_10759" data-name="路径 10759" d="M1709.543,2337.229h8.3v2.018H1711.7v3.17h5.08v2.018h-5.08v3.634h6.152v2.018h-8.3Z" transform="translate(-1688.907 -2337.229)" fill="#43454d"/>
<path id="路径_10760" data-name="路径 10760" d="M1743.743,2337.3a7.374,7.374,0,0,0-1.027-.072H1737.4v12.857h2.152V2345.6h3.161a7.524,7.524,0,0,0,1.027-.072,3.774,3.774,0,0,0,3.277-4.107C1747.02,2339.292,1745.975,2337.648,1743.743,2337.3Zm1.107,4.116a1.98,1.98,0,0,1-1.41,2.08,3.179,3.179,0,0,1-.813.089h-3.071v-4.339h3.071a3.636,3.636,0,0,1,.813.08A2,2,0,0,1,1744.85,2341.417Z" transform="translate(-1706.32 -2337.229)" fill="#43454d"/>
<path id="路径_10761" data-name="路径 10761" d="M1770.257,2337.229h-3.152l-4.053,12.857h2.214l.884-2.786h5.053l.893,2.786h2.214Zm-3.482,8.063,1.884-5.991,1.911,5.991Z" transform="translate(-1722.35 -2337.229)" fill="#43454d"/>
<path id="路径_10762" data-name="路径 10762" d="M1795.55,2344.818l-4.375-7.589h2.509l2.955,5.125,2.947-5.125h2.509l-4.366,7.589v5.268h-2.179Z" transform="translate(-1739.927 -2337.229)" fill="#43454d"/>
<path id="路径_10763" data-name="路径 10763" d="M1662.024,2339.4v-2.17h-4.875v2.17h2.694v6.482a4.249,4.249,0,0,1-.17,1.607,1.566,1.566,0,0,1-1.42.848,1.7,1.7,0,0,1-1.616-1.33l-2.125.509a3.767,3.767,0,0,0,3.821,2.84,3.539,3.539,0,0,0,3.259-1.759,4.741,4.741,0,0,0,.429-2.714V2339.4Z" transform="translate(-1654.513 -2337.229)" fill="#43454d"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90.667" height="22" viewBox="0 0 90.667 22"><defs><clipPath id="a"><path d="M2404.472,992h-22.8l3.2-22h22.8Z" transform="translate(-2381.676 -970)" fill="#1a53ff"/></clipPath><clipPath id="b"><rect width="62.667" height="16" fill="#262626"/></clipPath></defs><g transform="translate(-30 -21)"><g transform="translate(30 21)"><g clip-path="url(#a)"><path d="M2388.177,1037.5h0l-6.5,5.5h11.4Z" transform="translate(-2381.676 -1021)" fill="#1a53ff" opacity="0.5"/><path d="M2384.881,970l-3.2,22h5.7l.8-5.5h5.7l.8-5.5h5.7l-.8,5.5-.8,5.5h5.7l3.2-22Zm15.9,8.25h-5.7l.8-5.5h5.7Z" transform="translate(-2381.677 -970)" fill="#1a53ff"/></g></g><g transform="translate(-628.729 -2051)"><g transform="translate(686.73 2076)" clip-path="url(#b)"><path d="M930.451,2092.935a2.5,2.5,0,0,0-2.543-1.935h-5.479l-.225,1.6h5.367a1.366,1.366,0,0,1,1.082.476,1.014,1.014,0,0,1-.781,1.657h-3.554a3.383,3.383,0,0,0-3.243,2.844l-.175,1.245a2.414,2.414,0,0,0,2.443,2.845h2.488a3.952,3.952,0,0,0,2.037-.588l-.082.588h1.6l.5-3.556.474-3.378.125-.889h0A2.585,2.585,0,0,0,930.451,2092.935Zm-1.915,3.4-.1.711-.15,1.067a2.329,2.329,0,0,1-2.229,1.956h-2.488a1.057,1.057,0,0,1-1.069-1.244l.175-1.245a1.482,1.482,0,0,1,1.419-1.244h3.554a2.665,2.665,0,0,0,.911-.163Z" transform="translate(-879.269 -2088.333)" fill="#262626"/><path d="M802.041,2091h-3.2a3.383,3.383,0,0,0-3.242,2.844l-.237,1.689-.225,1.6-.237,1.689a2.414,2.414,0,0,0,2.443,2.845h3.2a3.383,3.383,0,0,0,3.242-2.845l.013-.089h-1.6l-.013.089a1.482,1.482,0,0,1-1.418,1.244h-3.2a1.057,1.057,0,0,1-1.069-1.244l.237-1.689h7.285l.225-1.6.237-1.689A2.414,2.414,0,0,0,802.041,2091Zm-5.079,4.533.237-1.689a1.482,1.482,0,0,1,1.419-1.244h3.2a1.057,1.057,0,0,1,1.069,1.244l-.237,1.689Z" transform="translate(-775.657 -2088.333)" fill="#262626"/><path d="M740.041,2091h-3.2a3.383,3.383,0,0,0-3.242,2.844l-.237,1.689-.225,1.6-.237,1.689a2.415,2.415,0,0,0,2.444,2.845h3.2a3.383,3.383,0,0,0,3.242-2.845l.013-.089h-1.6l-.013.089a1.482,1.482,0,0,1-1.418,1.244h-3.2a1.057,1.057,0,0,1-1.069-1.244l.237-1.689h7.285l.225-1.6.237-1.689A2.414,2.414,0,0,0,740.041,2091Zm-5.079,4.533.237-1.689a1.482,1.482,0,0,1,1.418-1.244h3.2a1.057,1.057,0,0,1,1.069,1.244l-.237,1.689Z" transform="translate(-724.674 -2088.333)" fill="#262626"/><path d="M693.933,2076H690.38l-.25,1.778h1.777l-.849,6.044-.325,2.311a1.694,1.694,0,0,1-1.621,1.423H686.98l-.25,1.777h2.132a3.806,3.806,0,0,0,3.648-3.2l1.174-8.355h0Z" transform="translate(-686.73 -2076)" fill="#262626"/><path d="M990.5,2091l-.225,1.6-.325,2.311-.474,3.377-.075.533a1.482,1.482,0,0,1-1.418,1.244h-3.2a1.057,1.057,0,0,1-1.069-1.244l.549-3.911.325-2.311.225-1.6h-1.6l-1.1,7.822a2.414,2.414,0,0,0,2.443,2.845h3.2a3.094,3.094,0,0,0,1.284-.29l-.041.29a1.268,1.268,0,0,1-1.216,1.066H982.1l-.225,1.6h5.686a3.171,3.171,0,0,0,3.04-2.666l.4-2.845.075-.533L992.1,2091Z" transform="translate(-929.43 -2088.333)" fill="#262626"/><path d="M862.644,2091h-3.2a3.094,3.094,0,0,0-1.285.29l.041-.29h-1.6l-.4,2.844-.7,4.978-.774,5.511h1.6l.415-2.956a2.574,2.574,0,0,0,1.2.29h3.2a3.383,3.383,0,0,0,3.242-2.845l.7-4.978A2.414,2.414,0,0,0,862.644,2091Zm.145,7.822a1.482,1.482,0,0,1-1.419,1.244h-3.2a1.057,1.057,0,0,1-1.069-1.244l.7-4.978a1.482,1.482,0,0,1,1.418-1.244h3.2a1.057,1.057,0,0,1,1.069,1.244Z" transform="translate(-824.879 -2088.333)" fill="#262626"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621851766037" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2360" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><style type="text/css"></style></defs><path d="M243.2 512c0-49.664-39.936-89.6-89.6-89.6S64 462.336 64 512s39.936 89.6 89.6 89.6 89.6-39.936 89.6-89.6z m179.2 0c0 49.664 39.936 89.6 89.6 89.6s89.6-39.936 89.6-89.6-39.936-89.6-89.6-89.6-89.6 39.936-89.6 89.6z m358.4 0c0 49.664 39.936 89.6 89.6 89.6S960 561.664 960 512s-39.936-89.6-89.6-89.6c-49.152 0-89.6 39.936-89.6 89.6z" p-id="2361" fill="#2c2c2c"></path></svg>

After

Width:  |  Height:  |  Size: 744 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20.001" height="20" viewBox="0 0 20.001 20"><defs><style>.a{fill:#252626;}</style></defs><path class="a" d="M-3862-1142a3,3,0,0,1-3-3v-14a3,3,0,0,1,3-3h14a3,3,0,0,1,3,3v14a3,3,0,0,1-3,3Zm-1-17v14a1,1,0,0,0,1,1h14a1,1,0,0,0,1-1v-14a1,1,0,0,0-1-1h-14A1,1,0,0,0-3863-1159Zm11,12v-2a1,1,0,0,1,1-1,1,1,0,0,1,1,1v2a1,1,0,0,1-1,1A1,1,0,0,1-3852-1147Zm-4,0v-10a1,1,0,0,1,1-1,1,1,0,0,1,1,1v10a1,1,0,0,1-1,1A1,1,0,0,1-3856-1147Zm-4,0v-7a1,1,0,0,1,1-1,1,1,0,0,1,1,1v7a1,1,0,0,1-1,1A1,1,0,0,1-3860-1147Z" transform="translate(3865 1162)"/></svg>

After

Width:  |  Height:  |  Size: 580 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1619595883977" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3229" width="16" height="16" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M495.055 647.042a26.196 26.196 0 0 1-18.583-7.697L250.689 413.561c-10.263-10.263-10.263-26.903 0-37.166 10.263-10.263 26.903-10.263 37.166 0l207.2 207.2 207.2-207.2c10.263-10.263 26.904-10.263 37.167 0 10.262 10.263 10.262 26.903 0 37.166L513.638 639.345a26.196 26.196 0 0 1-18.583 7.697z" fill="#2c2c2c" p-id="3230"></path></svg>

After

Width:  |  Height:  |  Size: 705 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1619597015272" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5736" width="16" height="16" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M617.6 233.6c12.8-12.8 32-12.8 44.8 0 12.8 12.8 12.8 28.8 3.2 41.6l-3.2 3.2-233.6 233.6 233.6 233.6c12.8 12.8 12.8 28.8 3.2 41.6l-3.2 3.2c-12.8 12.8-28.8 12.8-41.6 3.2l-3.2-3.2-256-256c-12.8-12.8-12.8-28.8-3.2-41.6l3.2-3.2 256-256z" fill="#2c2c2c" p-id="5737"></path></svg>

After

Width:  |  Height:  |  Size: 648 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1619597331494" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1762" width="16" height="16" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M406.4 233.6c-12.8-12.8-32-12.8-44.8 0-12.8 12.8-12.8 28.8-3.2 41.6l3.2 3.2 233.6 233.6-233.6 233.6c-12.8 12.8-12.8 28.8-3.2 41.6l3.2 3.2c12.8 12.8 28.8 12.8 41.6 3.2l3.2-3.2 256-256c12.8-12.8 12.8-28.8 3.2-41.6l-3.2-3.2-256-256z" fill="#2c2c2c" p-id="1763"></path></svg>

After

Width:  |  Height:  |  Size: 646 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1619595944852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4607" width="16" height="16" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M495.055 308.698a26.196 26.196 0 0 0-18.583 7.697L250.689 542.179c-10.263 10.263-10.263 26.903 0 37.166s26.903 10.263 37.166 0l207.2-207.2 207.2 207.2c10.263 10.263 26.904 10.263 37.167 0 10.262-10.263 10.262-26.903 0-37.166L513.638 316.395a26.196 26.196 0 0 0-18.583-7.697z" fill="#2c2c2c" p-id="4608"></path></svg>

After

Width:  |  Height:  |  Size: 691 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="14" viewBox="0 0 14 14"><defs><style>.a,.b{fill:#1a53ff;}.a{stroke:#707070;}.c{clip-path:url(#a);}.d{clip-path:url(#b);}</style><clipPath id="a"><rect class="a" width="14" height="14" transform="translate(796 520)"/></clipPath><clipPath id="b"><rect class="b" width="12" height="12" transform="translate(0)"/></clipPath></defs><g class="c" transform="translate(-796 -520)"><g transform="translate(-100 289.628)"><g class="d" transform="translate(897 231.372)"><path class="b" d="M1182.9,231.267h-3.343v3.745a2.254,2.254,0,0,1,0,4.508v3.75h3.343a2.291,2.291,0,0,0,2.258-2.308V233.58a2.289,2.289,0,0,0-2.258-2.313Zm0,0" transform="translate(-1173.16 -231.269)"/><path class="b" d="M903.133,235.581a1.657,1.657,0,0,0-.531.086v-4.3h-3.343A2.291,2.291,0,0,0,897,233.68v7.381a2.291,2.291,0,0,0,2.258,2.308H902.6v-4.293a1.713,1.713,0,0,0,.531.086,1.791,1.791,0,0,0,0-3.582Zm0,0" transform="translate(-897 -231.372)"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="14" viewBox="0 0 14 14"><defs><style>.a,.b{fill:#1a53ff;}.a{stroke:#707070;}.c{clip-path:url(#a);}.d{clip-path:url(#b);}</style><clipPath id="a"><rect class="a" width="14" height="14" transform="translate(786 458)"/></clipPath><clipPath id="b"><rect class="b" width="11" height="14"/></clipPath></defs><g class="c" transform="translate(-786 -458)"><g transform="translate(155.5 328)"><g transform="translate(632 130)"><g class="d" transform="translate(0)"><path class="b" d="M636.689,140.115V141.7a.687.687,0,1,0,1.374,0v-1.584a1.4,1.4,0,0,0,.687-1.21,1.374,1.374,0,1,0-2.748,0,1.4,1.4,0,0,0,.687,1.21Zm-2.061-4.7v-2.1a2.748,2.748,0,1,1,5.5,0v2.1H641.5a1.386,1.386,0,0,1,1.374,1.4V143.1a1.386,1.386,0,0,1-1.374,1.4h-8.243a1.386,1.386,0,0,1-1.374-1.4v-6.288a1.386,1.386,0,0,1,1.374-1.4Zm2.748-3.493a1.386,1.386,0,0,0-1.374,1.4v2.1h2.748v-2.1a1.386,1.386,0,0,0-1.374-1.4Zm0,0" transform="translate(-631.882 -130.511)"/></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="14" viewBox="0 0 14 14"><defs><style>.a,.b{fill:#1a53ff;}.a{stroke:#707070;}.c{clip-path:url(#a);}.d{clip-path:url(#b);}</style><clipPath id="a"><rect class="a" width="14" height="14" transform="translate(793 387)"/></clipPath><clipPath id="b"><rect class="b" width="13" height="14" transform="translate(0 0)"/></clipPath></defs><g class="c" transform="translate(-793 -387)"><g transform="translate(216.5 256)"><g class="d" transform="translate(577 131)"><path class="b" d="M740.84,134.733A3.714,3.714,0,1,0,744.554,131a3.724,3.724,0,0,0-3.714,3.733Zm0,0" transform="translate(-738.054 -131)"/><path class="b" d="M581.643,622.52h3.714a4.631,4.631,0,0,1,3.283,1.367,4.679,4.679,0,0,1,1.36,3.3v.933H577v-.933a4.679,4.679,0,0,1,1.36-3.3,4.631,4.631,0,0,1,3.283-1.367Zm0,0" transform="translate(-577 -614.12)"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 927 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="14" viewBox="0 0 14 14"><defs><style>.a,.b{fill:#596380;}.a{stroke:#707070;}.c{clip-path:url(#a);}.d{clip-path:url(#b);}</style><clipPath id="a"><rect class="a" width="14" height="14" transform="translate(793 387)"/></clipPath><clipPath id="b"><rect class="b" width="13" height="14" transform="translate(0 0)"/></clipPath></defs><g class="c" transform="translate(-793 -387)"><g transform="translate(216.5 256)"><g class="d" transform="translate(577 131)"><path class="b" d="M740.84,134.733A3.714,3.714,0,1,0,744.554,131a3.724,3.724,0,0,0-3.714,3.733Zm0,0" transform="translate(-738.054 -131)"/><path class="b" d="M581.643,622.52h3.714a4.631,4.631,0,0,1,3.283,1.367,4.679,4.679,0,0,1,1.36,3.3v.933H577v-.933a4.679,4.679,0,0,1,1.36-3.3,4.631,4.631,0,0,1,3.283-1.367Zm0,0" transform="translate(-577 -614.12)"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 927 B

View File

@@ -0,0 +1,89 @@
<template>
<div>
<a-modal v-model:visible="vdata.visible" title="自动获取渠道用户ID" :footer="null" :width="300" @ok="handleClose">
<div style="width:100%;margin-bottom:20px;text-align:center">
<div id="qrCodeUrl" style="width: 300px" class="qrcode" />
<QrcodeVue :value="vdata.qrImgUrl" :size="250" class="qrcode" />
<hr>
<span>{{ vdata.payText }}</span>
</div>
</a-modal>
</div>
</template>
<script setup lang="ts">
import ReconnectingWebSocket from 'reconnectingwebsocket'
// import vueQr from 'vue-qr'
import QrcodeVue from 'qrcode.vue'
import { getWebSocketPrefix, $getChannelUserQrImgUrl } from '@/api/manage'
import { reactive, getCurrentInstance} from 'vue'
// 获取全局函数
const { $infoBox } = getCurrentInstance()!.appContext.config.globalProperties
const emit = defineEmits(['changeChannelUserId'])
const vdata = reactive({
visible: false,
qrImgUrl: '',
payText: '', // 二维码底部描述文字
transferOrderWebSocket: null as any, // 支付订单webSocket对象 //TODO 修改了webSocket类型
extObject: null // 扩展对象, 将原样返回。
})
// show
function showModal (appId, ifCode, extObject) {
vdata.extObject = extObject
// 关闭上一个webSocket监听
if (vdata.transferOrderWebSocket) {
// console.log( vdata.transferOrderWebSocket)
vdata.transferOrderWebSocket.close()
}
// 根据不同的支付方式,展示不同的信息
vdata.payText = ''
if (ifCode === 'wxpay') {
vdata.payText = '请使用微信客户端"扫一扫"'
} else if (ifCode === 'alipay') {
vdata.payText = '请使用支付宝客户端"扫一扫"'
}
// 当前客户端CID
const cid = appId + new Date().getTime()
// 获取二维码地址
$getChannelUserQrImgUrl(ifCode, appId, cid).then(res => {
//console.log( vdata.qrImgUrl,'11111111')
vdata.qrImgUrl = res
vdata.visible = true // 打开弹窗
// 监听响应结果
vdata.transferOrderWebSocket = new ReconnectingWebSocket(getWebSocketPrefix() + '/api/anon/ws/channelUserId/' + appId + '/' + cid)
vdata.transferOrderWebSocket!.onopen = () => {}
vdata.transferOrderWebSocket!.onmessage = (msgObject) => {
emit('changeChannelUserId', { channelUserId: msgObject.data, extObject: vdata.extObject }) // 上层赋值
handleClose()
}
})
}
function handleClose () {
if (vdata.transferOrderWebSocket) {
vdata.transferOrderWebSocket.close()
}
vdata.visible = false
}
defineExpose({showModal})
</script>
<style lang="less" scoped>
.describe {
img {
width: 30px;
height: 25px;
}
}
</style>

View File

@@ -0,0 +1,20 @@
<template>
<global-footer class="footer custom-render">
<template v-slot:links>
</template>
<template v-slot:copyright>
<a href="http://www.jeequan.com" target="_blank">@计全科技</a>
</template>
</global-footer>
</template>
<script>
import { GlobalFooter } from '@ant-design-vue/pro-layout'
export default {
name: 'ProGlobalFooter',
components: {
GlobalFooter
}
}
</script>

View File

@@ -0,0 +1,74 @@
<template>
<a-dropdown placement="bottomRight">
<span class="ant-pro-account-avatar">
<a-avatar size="small" :src="greetImg" class="antd-pro-global-header-index-avatar" />
<span>{{ currentUserName }}</span>
</span>
<template v-slot:overlay>
<a-menu class="ant-pro-drop-down menu" :selected-keys="[]">
<a-menu-item v-if="$access('ENT_C_USERINFO')" key="settings" @click="handleToSettings">
<a-icon type="setting" />
账户设置
</a-menu-item>
<a-menu-divider />
<a-menu-item key="logout" @click="handleLogout">
<a-icon type="logout" />
退出登录
</a-menu-item>
</a-menu>
</template>
</a-dropdown>
</template>
<script>
export default {
name: 'AvatarDropdown',
props: {
},
data: function () {
return {
// greetImg: '', // 头像图片地址
sex: ''
}
},
computed: {
// 返回用户名
currentUserName () {
return this.$store.state.user.userName
},
// 返回头像
greetImg () {
return this.$store.state.user.avatarImgPath
}
},
methods: {
handleToSettings () {
this.$router.push({ name: 'ENT_C_USERINFO' })
},
handleLogout: function (e) {
this.$infoBox.confirmPrimary('确认退出?', '', () => {
this.$store.dispatch('Logout').then(() => {
this.$router.push({ name: 'login' })
})
})
}
}
}
</script>
<style lang="less" scoped>
.ant-pro-drop-down {
/deep/ .action {
margin-right: 8px;
}
/deep/ .ant-dropdown-menu-item {
min-width: 160px;
}
}
</style>

View File

@@ -0,0 +1,55 @@
<!-- <template>
<div :class="wrpCls">
<avatar-dropdown :menu="showMenu" :current-user="currentUser" :class="prefixCls" />
</div>
</template>
<script >
import AvatarDropdown from './AvatarDropdown'
// import store from '@/store'
export default {
name: 'RightContent',
components: {
AvatarDropdown
},
props: {
prefixCls: {
type: String,
default: 'ant-pro-global-header-index-action'
},
isMobile: {
type: Boolean,
default: () => false
},
topMenu: {
type: Boolean,
required: true
},
theme: {
type: String,
required: true
}
},
data () {
return {
showMenu: true,
currentUser: {}
}
},
computed: {
wrpCls () {
return {
'ant-pro-global-header-index-right': true,
[`ant-pro-global-header-index-${(this.isMobile || !this.topMenu) ? 'light' : this.theme}`]: true
}
}
},
mounted () {
// console.log(store)
this.currentUser = {
name: 'dd'
}
}
}
</script> -->

View File

@@ -0,0 +1,30 @@
<template>
<div class="loading">
<div>
<a-spin size="large" />
</div>
</div>
</template>
<script>
export default {
name: 'GlobalLoad',
data () {
return {}
}
}
</script>
<style scoped>
.loading{
position: fixed;
top:0;
left:0;
z-index:100;
width: 100%;
height: 100%;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255,255,255,0.25);
}
</style>

View File

@@ -0,0 +1,80 @@
<template>
<div class="split-line">
<div v-if="isOpen" class="btns">
<div v-if="flag" @click="open">
更多筛选<i class="bi bi-chevron-down" />
</div>
<div v-else @click="close">
收起筛选<i class="bi bi-chevron-up" />
</div>
</div>
</div>
</template>
<script lang="ts" setup>
import { defineProps, ref, reactive } from 'vue'
// 定义父组件的传参和类型
const props = defineProps({
isOpen: { type: Boolean, default: false },
flag: { type: Boolean, default: true }
})
const emit = defineEmits(['open', 'close'])
const open =(e)=> emit('open')
const close =(e)=> emit('close')
</script>
<style scoped lang="less">
.split-line {
border-bottom: 1px solid #ebeff2;
position: relative;
-webkit-touch-callout: none;
user-select: none;
}
.btns {
width: 100px;
height: 34px;
cursor: pointer;
border: 1px solid #ebeff2;
border-radius: 5px;
position: absolute;
left: 50%;
margin-left: -50px;
top: 50%;
margin-top: -17px;
background-color: #fff;
font-size: 12px;
div {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
display: flex;
justify-content: center;
align-items: center;
z-index: 10;
color: #79807E;
}
}
.btns::before {
content: '';
position: absolute;
width: calc(100% + 2px);
height: 50%;
background-color: #fff;
top: -1px;
left: -1px;
z-index: 1;
}
i {
display: inline-block;
margin-left: 5px;
}
.bi-chevron-up::before, .bi-chevron-down::before{
font-size: 6px;
}
</style>

View File

@@ -0,0 +1,256 @@
<!--
封装高德地图选址组件
initMapData: { areacode:[], areacodeNames:[], address: '', lnglat: '' } //areacode 位置、 省市县名称字符串数组、 详细地址, 经纬度(中间,分割)
@author terrfly
@site https://www.jeequan.com
@date 2022/05/07 11:34
-->
<template>
<a-row>
<a-col :span="isMobile ? 24 : 12">
<a-form-item label="选址省/市/区" name="areacode">
<JeepayAreaSelect
ref="jeepayAreaSelect"
v-model:value="vdata.mapData.areacode"
@change="changeAreaCodeFunc"
:getPopupContainer="(triggerNode) => (triggerNode.parentElement)"
/>
</a-form-item>
</a-col>
<a-col :span="isMobile ? 24 : 12">
<a-form-item label="具体位置" name="address">
<a-input
id="amap-search-input"
v-model:value="vdata.mapData.address"
autoComplete="off"
/>
</a-form-item>
</a-col>
<a-col :span="isMobile ? 24 : 12">
<a-form-item label="经纬度" name="lnglat">
<a-input v-model:value="vdata.mapData.lnglat" autoComplete="off" />
</a-form-item>
</a-col>
</a-row>
<a-collapse v-model:activeKey="vdata.showKey" @change="changeMap">
<a-collapse-panel key="map" header="地图选址">
<div :id="vdata.mapDivId" :style="{width: '100%', height: isMobile?'300px':'600px'}">MAP</div>
</a-collapse-panel>
</a-collapse>
</template>
<script lang="ts" setup>
import { $getMapConfig } from '@/api/manage'
import { reactive, ref, inject } from 'vue'
import AMapLoader from '@amap/amap-jsapi-loader'
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 参数注入: 是否手机端
let isMobile : any = inject('isMobile')
const vdata: any = reactive({
showKey: 'map',
mapData: { areacode: [], areacodeNames: [], address: '', lnglat: '' }, //areacode 位置、 省市县、
mapDivId: 'mapDIV_' + new Date().getTime()
})
const jeepayAreaSelect = ref()
// 地图对象
let AMapInstantiate = null as any // 地图实例
let AMapDefine = null as any // 地图定义,初始成功返回的定义对象, 可以通过 AMapDefine.map等获取
let AMapDistrictSearch = null as any // 区域搜索插件
let AMapMarker = null as any //标记点
let AutoComplete = null as any //自动录入组件
/** 初始化 */
function init(initMapData) {
// 清空数据
vdata.mapData.areacode = initMapData.areacode || []
// vdata.mapData.areacodeNames = initMapData.areacodeNames || []
vdata.mapData.lnglat = initMapData.lnglat
vdata.mapData.address = initMapData.address
AMapInstantiate = null as any // 地图实例
AMapDefine = null as any // 地图定义,初始成功返回的定义对象, 可以通过 AMapDefine.map等获取
AMapDistrictSearch = null as any // 区域搜索插件
AMapMarker = null as any //标记点
AutoComplete = null as any //自动录入组件
// 获取地图配置参数
$getMapConfig()
.then((res) => {
// @ts-ignore window._AMapSecurityConfig
window._AMapSecurityConfig = { securityJsCode: res.apiMapWebSecret }
return AMapLoader.load({
// 申请好的Web端开发者Key首次调用 load 时必填
key: res.apiMapWebKey,
// 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
version: '2.0',
// 同步加载插件
plugins: [
'AMap.ToolBar',
'AMap.Scale',
'AMap.Marker',
'AMap.PlaceSearch',
'AMap.AutoComplete',
'AMap.Geocoder',
'AMap.DistrictSearch',
],
})
})
.then((AMap) => {
// 定义
AMapDefine = AMap
// 实例化
AMapInstantiate = new AMapDefine.Map(vdata.mapDivId, {
viewMode: '3D',
})
AMapInstantiate.addControl(new AMapDefine.ToolBar()) // 工具栏
AMapInstantiate.addControl(new AMapDefine.Scale()) // 比例尺
// geocoder 地理位置查询插件
var geocoder = new AMap.Geocoder()
AMapDistrictSearch = new AMapDefine.DistrictSearch()
// 输入提示插件
AutoComplete = new AMapDefine.AutoComplete({
input: 'amap-search-input',
citylimit: true,
})
// 搜索到内容后的回调函数
AutoComplete.on('select', function (e) {
let name = e.poi.name // 搜索到的名称
selectLocationFunc(e.poi.location.lng, e.poi.location.lat, name)
})
// 地图的选中后的回调函数
AMapInstantiate.on('click', (e) => {
// 查询省市县、 位置信息
geocoder.getAddress(
new AMapDefine.LngLat(e.lnglat.getLng(), e.lnglat.getLat()),
function (state, result) {
// 查找失败
if (state != 'complete') {
return false
}
// 限制城市搜索
AutoComplete.setCity(result.regeocode.addressComponent.citycode)
// 更改省市县 --> 组件调用change事件
jeepayAreaSelect.value.changeByAreacode(
result.regeocode.addressComponent.adcode
)
// 选中的点
selectLocationFunc(
e.lnglat.getLng(),
e.lnglat.getLat(),
result.regeocode.formattedAddress
)
}
)
})
// 存在数据
if (initMapData.lnglat) {
AMapInstantiate.setCenter(
new AMapDefine.LngLat(
initMapData.lnglat.split(',')[0],
initMapData.lnglat.split(',')[1]
)
)
selectLocationFunc(
initMapData.lnglat.split(',')[0],
initMapData.lnglat.split(',')[1],
initMapData.address
)
// 查询省市县、 位置信息 ( 限制城市搜索 )
geocoder.getAddress(new AMapDefine.LngLat(initMapData.lnglat.split(',')[0], initMapData.lnglat.split(',')[1]), function (state, result) {
// 查找失败
if (state != 'complete') {
return false
}
// 限制城市搜索
AutoComplete.setCity(result.regeocode.addressComponent.citycode)
})
}
})
}
// 选中某个点的事件: 定位到当前地点
function selectLocationFunc(lng, lat, name = null) {
if (name) {
vdata.mapData.address = name
}
if (!lng || !lat) {
return false
}
// 更改经纬度坐标
changeInputLnglat(lng, lat)
if (AMapMarker == null) {
// 创建地图标点中心点
AMapMarker = new AMapDefine.Marker({
position: new AMapDefine.LngLat(lng, lat), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
})
AMapInstantiate.add([AMapMarker])
} else {
AMapMarker.setPosition(new AMapDefine.LngLat(lng, lat))
}
}
// 选择省市县的回调函数
function changeAreaCodeFunc(areacode, val) {
// 无无变化
if (vdata.mapData.areacode && vdata.mapData.areacode[2] == val[2]) {
return
}
// 设置地图的city
AMapInstantiate.setCity(val[2])
// 限制城市搜索
AutoComplete.setCity(val[2])
//
vdata.mapData.areacode = val
vdata.mapData.areacodeNames = [
areacode[0].label,
areacode[1].label,
areacode[2].label,
]
}
// 更改输入框的 经纬度
function changeInputLnglat(lng, lat) {
vdata.mapData.lnglat = lng + ',' + lat
}
function getMapData() {
return vdata.mapData
}
// 在移动端收起展开后地图组件未能加载 所以要重新初始化
const changeMap=(key)=>{
if(isMobile && key[0] == 'map'){
init(vdata.mapData)
}
}
defineExpose({ init, getMapData })
</script>

View File

@@ -0,0 +1,35 @@
<!--
省市县三级联动选择 国标 返回省市区名称
直辖市第一级不包含比如北京 北京市 某某区
@author terrfly
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader
:field-names="{ label: 'label', value: 'label', children: 'children' }"
:value="props.value"
:options="allList"
placeholder="选择省市县"
@change="changeFunc"
/>
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeUmhs.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value){
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,78 @@
<!--
省市县三级联动选择 国标
@author terrfly
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" :getPopupContainer="(triggerNode) => (triggerNode.parentElement)" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacode.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions, value)
emit('update:value', value)
}
// 递归遍历树状结构数据
function recursionTreeData (treeData, func, pid) {
for (let i = 0; i < treeData.length; i++) {
const item = treeData[i]
if(func(item)){
return [item, pid]
}
if (item.children && item.children.length > 0) {
let res = recursionTreeData(item.children, func, item.value)
if(res){
return res
}
}
}
}
// 根据最后一位的(县级编码 搜索展开全部内容
function changeByAreacode(areacode){
if(!areacode){
return
}
let p3 : any = recursionTreeData(allList, (r => r.value == areacode), 0)
if(!p3){
return false
}
let p2: any = recursionTreeData(allList, (r => r.value == p3[1]), 0)
if(!p2){
return false
}
let p1 : any = recursionTreeData(allList, (r => r.value == p2[1]), 0)
if(!p1){
return false
}
changeFunc([p1[0].value, p2[0].value, p3[0].value], [p1[0], p2[0], p3[0]])
}
defineExpose({changeByAreacode})
</script>

View File

@@ -0,0 +1,44 @@
<!--
省市县三级联动选择 拉卡拉
@author xiaoyu
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" />
</template>
<script lang="ts" setup>
import { defineProps, onMounted, ref } from 'vue'
import { getOriginIfCode } from '../util/jeepayComponentUtil.js'
const props = defineProps({
value: { type: Array, default: null },
ifCode: { type: Array, default: null }
})
const allList = ref([])
onMounted(() => {
const ifCodeView = getOriginIfCode(props.ifCode).toLowerCase()
// 根据支付接口名称 动态引入json
import(`./areacode${ifCodeView.charAt(0).toUpperCase() + ifCodeView.slice(1)}.json`).then((module) => {
allList.value = module.default
}).catch((e) => {
console.log('省市区编码导入失败! ', e)
})
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions)
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,37 @@
<!--
省市县三级联动选择
@author terrfly
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" :getPopupContainer="triggerNode => triggerNode.parentNode" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeDg.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions)
emit('update:value', value)
}
</script>
<style>
:deep(.ant-select-selector){
position: relative;
}
</style>

View File

@@ -0,0 +1,29 @@
<!--
省市县三级联动选择 富友
@author zx
@site https://www.jeequan.com
@date 2022/03/15 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeFuiou.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value){
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,30 @@
<!--
省市县三级联动选择
@author terrfly
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" :getPopupContainer="(triggerNode) => (triggerNode.parentElement)" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeKq.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions)
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,30 @@
<!--
省市县三级联动选择 拉卡拉
@author xiaoyu
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" :getPopupContainer="(triggerNode) => (triggerNode.parentElement)" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeLkl.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions)
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,37 @@
<!--
省市县三级联动选择
@author terrfly
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" :getPopupContainer="triggerNode => triggerNode.parentNode" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeRyx.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions)
emit('update:value', value)
}
</script>
<style>
:deep(.ant-select-selector){
position: relative;
}
</style>

View File

@@ -0,0 +1,30 @@
<!--
省市县三级联动选择 收付通接口获取
@author terrfly
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择开户银行省市" @change="changeFunc" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeSft.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'changeSft'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('changeSft', selectedOptions)
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,37 @@
<!--
省市县三级联动选择
@author terrfly
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" :getPopupContainer="triggerNode => triggerNode.parentNode" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeSxf.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions)
emit('update:value', value)
}
</script>
<style>
:deep(.ant-select-selector){
position: relative;
}
</style>

View File

@@ -0,0 +1,29 @@
<!--
省市县三级联动选择 星驿付 获取支行市编码基于富友
@author yr
@site https://www.jeequan.com
@date 2022/10/20 17:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeFuiou.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value){
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,79 @@
<!--
省市县三级联动选择 国标 返回省市区编码
直辖市第一级不包含比如北京 北京市 某某区
@author terrfly
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeUmhs.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions, value)
emit('update:value', value)
}
// 递归遍历树状结构数据
function recursionTreeData (treeData, func, pid) {
for (let i = 0; i < treeData.length; i++) {
const item = treeData[i]
if(func(item)){
return [item, pid]
}
if (item.children && item.children.length > 0) {
let res = recursionTreeData(item.children, func, item.value)
if(res){
return res
}
}
}
}
// 根据最后一位的(县级编码 搜索展开全部内容
function changeByAreacode(areacode){
if(!areacode){
return
}
let p3 : any = recursionTreeData(allList, (r => r.value == areacode), 0)
if(!p3){
return false
}
let p2: any = recursionTreeData(allList, (r => r.value == p3[1]), 0)
if(!p2){
return false
}
let p1 : any = recursionTreeData(allList, (r => r.value == p2[1]), 0)
if(!p1){
return false
}
changeFunc([p1[0].value, p2[0].value, p3[0].value], [p1[0], p2[0], p3[0]])
}
defineExpose({changeByAreacode})
</script>

View File

@@ -0,0 +1,37 @@
<!--
省市县三级联动选择
@author terrfly
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" :getPopupContainer="triggerNode => triggerNode.parentNode" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeYs.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions)
emit('update:value', value)
}
</script>
<style>
:deep(.ant-select-selector){
position: relative;
}
</style>

View File

@@ -0,0 +1,30 @@
<!--
省市县三级联动选择
@author terrfly
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './areacodeYsf.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions)
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,30 @@
<!--
省市县三级联动选择 拉卡拉
@author xiaoyu
@site https://www.jeequan.com
@date 2022/01/17 19:34
-->
<template>
<a-cascader :value="props.value" :options="allList" placeholder="选择省市县" @change="changeFunc" :getPopupContainer="(triggerNode) => (triggerNode.parentElement)" />
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import allList from './bankAreacodeLkl.json'
const props = defineProps({
value: { type: Array, default: null },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value, selectedOptions){
emit('change', selectedOptions)
emit('update:value', value)
}
</script>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
[{"name":"无忧付","children":[{"entName":"项目管理","entId":"ENT_MCH_PAYMENT_TASK","menuUri":"/DfTaskPage","path":"/dfList","component_url":"@/views/paydf/task/List.vue"},{"entName":"资金账户","entId":"ENT_MCH_PAYMENT_AQF","menuUri":"/AqfListPage","path":"/aqfList","component_url":"@/views/paydf/aqf/List.vue"},{"entName":"人员管理","entId":"ENT_MCH_PAYMENT_AQF_USER_LIST","menuUri":"/AqfUserListPage","path":"/aqfUserList","component_url":"@/views/paydf/aqf/userList.vue"},{"entName":"发起结算","entId":"ENT_MCH_PAYMENT_TASK_SETTLE_LIST","menuUri":"/TaskSettleListPage","path":"/taskSettleList","component_url":"@/views/paydf/settle/List.vue"}]}]

View File

@@ -0,0 +1 @@
[{"name":"无忧付","children":[{"entName":"项目管理","entId":"ENT_MCH_PAYMENT_TASK","menuUri":"/DfTaskPage","path":"/dfList","component_url":"@/views/paydf/task/List.vue"},{"entName":"资金账户","entId":"ENT_MCH_PAYMENT_AQF","menuUri":"/AqfListPage","path":"/aqfList","component_url":"@/views/paydf/aqf/List.vue"},{"entName":"人员管理","entId":"ENT_MCH_PAYMENT_AQF_USER_LIST","menuUri":"/AqfUserListPage","path":"/aqfUserList","component_url":"@/views/paydf/aqf/userList.vue"},{"entName":"发起结算","entId":"ENT_MCH_PAYMENT_TASK_SETTLE_LIST","menuUri":"/TaskSettleListPage","path":"/taskSettleList","component_url":"@/views/paydf/settle/List.vue"},{"entName":"结算数据","entId":"ENT_MCH_AQF_SETTLEMENT_STATISTICS","menuUri":"/SettleStatisticsDataPage","path":"/settleStatisticsList","component_url":"@/views/paydf/aqf/settleStatistics.vue"}]}]

View File

@@ -0,0 +1,41 @@
<!--
银行编码code
@author terrfly
@site https://www.jeequan.com
@date 2022/03/01 14:57
-->
<template>
<a-select
show-search
:value="props.value"
placeholder="选择开户银行"
:disabled="props.readonly"
@change="changeFunc"
>
<a-select-option v-for="(item) in allList" :key="item.bankCode" :value="item.bankName">
{{ item.bankName }}
</a-select-option>
</a-select>
</template>
<script lang="ts" setup>
import { defineProps} from 'vue'
import allList from './bankcode.json'
const props = defineProps({
value: { type: Array, default: null },
readonly: { type: Boolean, default: false },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value){
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,40 @@
<!--
银行编码code
@author terrfly
@site https://www.jeequan.com
@date 2022/03/01 14:57
-->
<template>
<a-select
show-search
:value="props.value"
placeholder="选择开户银行"
:disabled="props.readonly"
@change="changeFunc"
>
<a-select-option v-for="(item) in allList" :key="item.bankType" :value="item.bankType">
{{ item.bankName }}
</a-select-option>
</a-select>
</template>
<script lang="ts" setup>
import { defineProps} from 'vue'
import allList from './bankcodeFuiou.json'
const props = defineProps({
value: { type: Array, default: null },
readonly: { type: Boolean, default: false }
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value){
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,43 @@
<!--
银行编码code
@author terrfly
@site https://www.jeequan.com
@date 2022/03/01 14:57
-->
<template>
<a-select
show-search
:value="props.value"
:key = "props.key"
placeholder="选择开户银行"
:disabled="props.readonly"
@change="changeFunc"
>
<a-select-option v-for="(item) in allList" :key="item.bankType" :value="item.bankName">
{{ item.bankName }}
</a-select-option>
</a-select>
</template>
<script lang="ts" setup>
import { defineProps} from 'vue'
import allList from './bankcodeHulu.json'
const props = defineProps({
value: { type: Array, default: null },
key: { type: Array, default: null },
readonly: { type: Boolean, default: false }
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change','changeSelect'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value,key){
emit('update:value', value)
emit('changeSelect', key)
}
</script>

View File

@@ -0,0 +1,41 @@
<!--
银行编码code
@author terrfly
@site https://www.jeequan.com
@date 2022/03/01 14:57
-->
<template>
<a-select
show-search
:value="props.value"
placeholder="选择开户银行"
:disabled="props.readonly"
@change="changeFunc"
>
<a-select-option v-for="(item) in allList" :key="item.bankCode" :value="item.bankCode">
{{ item.bankName }}
</a-select-option>
</a-select>
</template>
<script lang="ts" setup>
import { defineProps} from 'vue'
import allList from './bankCodeRuipay.json'
const props = defineProps({
value: { type: Array, default: null },
readonly: { type: Boolean, default: false },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value){
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,49 @@
<!--
银行编码code
@author terrfly
@site https://www.jeequan.com
@date 2022/03/01 14:57
-->
<template>
<a-select
show-search
:value="props.value"
placeholder="选择开户银行"
:disabled="props.readonly"
@change="changeFunc"
>
<a-select-option v-for="(item) in allList" :key="item.bank_alias" :value="item.bank_alias">
{{ item.bank_alias }}
</a-select-option>
</a-select>
</template>
<script lang="ts" setup>
import { defineProps, computed} from 'vue'
import personalList from './bankCodeSftPersonal.json'
import corporateList from './bankCodeSftCorporate.json'
const props = defineProps({
value: { type: Array, default: null },
settAccountType: { type: String, default: null },
readonly: { type: Boolean, default: false }
})
// 计算属性
let allList = computed(() => {
return props.settAccountType == 'B' ? corporateList : personalList
}) as any
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value){
const bankInfo = allList.value.find(item => item.bank_alias == value) || {} as any
emit('update:value', bankInfo.bank_alias)
emit('change', bankInfo)
}
</script>

View File

@@ -0,0 +1,46 @@
<!--
银行编码code
@author terrfly
@site https://www.jeequan.com
@date 2022/03/01 14:57
-->
<template>
<a-select
show-search
:value="props.value"
placeholder="选择开户银行"
:disabled="props.readonly"
:filterOption="filterOption"
@change="changeFunc"
>
<a-select-option v-for="(item) in allList" :key="item.bankName" :value="item.bankCode">
{{ item.bankName }}
</a-select-option>
</a-select>
</template>
<script lang="ts" setup>
import { defineProps} from 'vue'
import allList from './bankCodeTerpay.json'
const props = defineProps({
value: { type: Array, default: null },
readonly: { type: Boolean, default: false },
})
// 伪查询 将输入值和key值做对比过滤数据
function filterOption(input, option) {
return option.key.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value){
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,41 @@
<!--
银行编码code
@author terrfly
@site https://www.jeequan.com
@date 2022/03/01 14:57
-->
<template>
<a-select
show-search
:value="props.value"
placeholder="选择开户银行"
:disabled="props.readonly"
@change="changeFunc"
>
<a-select-option v-for="(item) in allList" :key="item.value" :value="item.label">
{{ item.label }}
</a-select-option>
</a-select>
</template>
<script lang="ts" setup>
import { defineProps} from 'vue'
import allList from './bankNameYs.json'
const props = defineProps({
value: { type: Array, default: null },
readonly: { type: Boolean, default: false },
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value){
emit('update:value', value)
}
</script>

View File

@@ -0,0 +1,41 @@
<!--
银行编码code
@author terrfly
@site https://www.jeequan.com
@date 2022/03/01 14:57
-->
<template>
<a-select show-search :value="props.value" :key="props.key" placeholder="选择开户银行" :disabled="props.readonly"
@change="changeFunc">
<a-select-option v-for="(item) in props.allList" :key="item.pbcBankId" :value="item.branchName">
{{ item.branchName }}
</a-select-option>
</a-select>
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
const props:any = defineProps({
value: { type: Array, default: null },
key: { type: Array, default: null },
readonly: { type: Boolean, default: false },
allList: { type: Array, default: null }
})
// emit 父组件使用: v-model="val" 进行双向绑定。
const emit = defineEmits(['update:value', 'change','changeSelect'])
// 当属性发生了变化, 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value,key) {
emit('update:value', value)
emit('changeSelect', key)
}
</script>

View File

@@ -0,0 +1,292 @@
[{
"bankCode": "319",
"bankName": "徽商银行"
}, {
"bankCode": "402",
"bankName": "农村信用合作社"
}, {
"bankCode": "325",
"bankName": "城市商业银行"
}, {
"bankCode": "401",
"bankName": "城市信用合作社"
}, {
"bankCode": "317",
"bankName": "农村合作银行"
}, {
"bankCode": "322",
"bankName": "上海农村商业银行"
}, {
"bankCode": "314",
"bankName": "农村商业银行"
}, {
"bankCode": "309",
"bankName": "兴业银行"
}, {
"bankCode": "310",
"bankName": "上海浦东发展银行"
}, {
"bankCode": "308",
"bankName": "招商银行"
}, {
"bankCode": "102",
"bankName": "中国工商银行"
}, {
"bankCode": "104",
"bankName": "中国银行"
}, {
"bankCode": "318",
"bankName": "渤海银行"
}, {
"bankCode": "313",
"bankName": "商业银行"
}, {
"bankCode": "320",
"bankName": "村镇银行"
}, {
"bankCode": "315",
"bankName": "恒丰银行"
}, {
"bankCode": "316",
"bankName": "浙商银行"
}, {
"bankCode": "302",
"bankName": "中信银行"
}, {
"bankCode": "301",
"bankName": "交通银行"
}, {
"bankCode": "304",
"bankName": "华夏银行"
}, {
"bankCode": "403",
"bankName": "中国邮政储蓄银行"
}, {
"bankCode": "103",
"bankName": "中国农业银行"
}, {
"bankCode": "502",
"bankName": "东亚银行(中国)有限公司"
}, {
"bankCode": "531",
"bankName": "花旗银行(中国)有限公司"
}, {
"bankCode": "501",
"bankName": "汇丰银行(中国)有限公司"
}, {
"bankCode": "597",
"bankName": "韩亚银行(中国)有限公司"
}, {
"bankCode": "785",
"bankName": "华商银行"
}, {
"bankCode": "303",
"bankName": "中国光大银行"
}, {
"bankCode": "307",
"bankName": "平安银行"
}, {
"bankCode": "306",
"bankName": "广东发展银行"
}, {
"bankCode": "305",
"bankName": "中国民生银行"
}, {
"bankCode": "105",
"bankName": "中国建设银行"
}, {
"bankCode": "713",
"bankName": "德国商业银行股份有限公司"
}, {
"bankCode": "732",
"bankName": "意大利联合圣保罗银行股份有限公司"
}, {
"bankCode": "741",
"bankName": "瑞士信贷银行股份有限公司"
}, {
"bankCode": "752",
"bankName": "蒙特利尔银行(中国)有限公司"
}, {
"bankCode": "761",
"bankName": "澳大利亚和新西兰银行集团有限公司"
}, {
"bankCode": "771",
"bankName": "摩根士丹利国际银行(中国)有限公司"
}, {
"bankCode": "775",
"bankName": "华美银行(中国)有限公司"
}, {
"bankCode": "776",
"bankName": "荷兰合作银行(中国)有限公司"
}, {
"bankCode": "781",
"bankName": "厦门国际银行"
}, {
"bankCode": "533",
"bankName": "摩根大通银行(中国)有限公司"
}, {
"bankCode": "503",
"bankName": "南洋商业银行(中国)有限公司"
}, {
"bankCode": "504",
"bankName": "恒生银行(中国)有限公司"
}, {
"bankCode": "506",
"bankName": "集友银行有限公司"
}, {
"bankCode": "904",
"bankName": "城市商业银行资金清算中心"
}, {
"bankCode": "641",
"bankName": "奥地利中央合作银行股份有限公司"
}, {
"bankCode": "651",
"bankName": "比利时联合银行股份有限公司"
}, {
"bankCode": "661",
"bankName": "苏格兰皇家银行(中国)有限公司"
}, {
"bankCode": "662",
"bankName": "荷兰安智银行股份有限公司"
}, {
"bankCode": "671",
"bankName": "渣打银行(中国)有限责任公司"
}, {
"bankCode": "691",
"bankName": "法国兴业银行(中国)有限公司"
}, {
"bankCode": "694",
"bankName": "东方汇理银行(中国)有限公司"
}, {
"bankCode": "532",
"bankName": "美国银行有限公司"
}, {
"bankCode": "561",
"bankName": "三菱东京日联银行(中国)有限公司"
}, {
"bankCode": "782",
"bankName": "法国巴黎银行(中国)有限公司"
}, {
"bankCode": "787",
"bankName": "华一银行"
}, {
"bankCode": "564",
"bankName": "瑞穗实业银行(中国)有限公司"
}, {
"bankCode": "565",
"bankName": "日本山口银行股份有限公司"
}, {
"bankCode": "591",
"bankName": "韩国外换银行股份有限公司"
}, {
"bankCode": "593",
"bankName": "友利银行(中国)有限公司"
}, {
"bankCode": "594",
"bankName": "韩国产业银行"
}, {
"bankCode": "595",
"bankName": "新韩银行(中国)有限公司"
}, {
"bankCode": "596",
"bankName": "韩国中小企业银行"
}, {
"bankCode": "621",
"bankName": "华侨银行(中国)有限公司"
}, {
"bankCode": "695",
"bankName": "法国外贸银行股份有限公司"
}, {
"bankCode": "712",
"bankName": "德意志银行(中国)有限公司"
}, {
"bankCode": "563",
"bankName": "三井住友银行(中国)有限公司"
}, {
"bankCode": "622",
"bankName": "大华银行(中国)有限公司"
}, {
"bankCode": "510",
"bankName": "永亨银行(中国)有限公司"
}, {
"bankCode": "716",
"bankName": "德国北德意志州银行"
}, {
"bankCode": "512",
"bankName": "永隆银行有限公司"
}, {
"bankCode": "751",
"bankName": "加拿大丰业银行有限公司"
}, {
"bankCode": "742",
"bankName": "瑞士银行有限公司"
}, {
"bankCode": "321",
"bankName": "重庆三峡银行"
}, {
"bankCode": "534",
"bankName": "美国建东银行有限公司"
}, {
"bankCode": "507",
"bankName": "创兴银行有限公司"
}, {
"bankCode": "509",
"bankName": "星展银行(中国)有限公司"
}, {
"bankCode": "631",
"bankName": "盘古银行(中国)有限公司"
}, {
"bankCode": "717",
"bankName": "中德住房储蓄银行有限责任公司"
}, {
"bankCode": "681",
"bankName": "瑞典商业银行公共有限公司"
}, {
"bankCode": "682",
"bankName": "瑞典北欧斯安银行有限公司"
}, {
"bankCode": "616",
"bankName": "菲律宾首都银行及信托有限公司"
}, {
"bankCode": "514",
"bankName": "中信嘉华银行(中国)有限公司"
}, {
"bankCode": "513",
"bankName": "大新银行(中国)有限公司"
}, {
"bankCode": "633",
"bankName": "泰华农民银行大众有限公司"
}, {
"bankCode": "731",
"bankName": "意大利罗马银行股份有限公司"
}, {
"bankCode": "511",
"bankName": "上海商业银行"
}, {
"bankCode": "673",
"bankName": "英国巴克莱银行有限公司"
}, {
"bankCode": "566",
"bankName": "日本住友信托银行股份有限公司"
}, {
"bankCode": "611",
"bankName": "马来亚银行有限公司"
}, {
"bankCode": "323",
"bankName": "众邦银行"
}, {
"bankCode": "910",
"bankName": "农信银资金清算中心"
}, {
"bankCode": "581",
"bankName": "挪威银行公共有限公司"
}, {
"bankCode": "632",
"bankName": "泰国泰京银行大众有限公司"
}, {
"bankCode": "773",
"bankName": "新联商业银行"
}, {
"bankCode": "551",
"bankName": "印度国家银行"
}]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,802 @@
[{
"bankCode": "PSBC",
"bankName": "中国邮政储蓄银行"
}, {
"bankCode": "CEB",
"bankName": "中国光大银行"
}, {
"bankCode": "ICBC",
"bankName": "中国工商银行"
}, {
"bankCode": "ABC",
"bankName": "中国农业银行"
}, {
"bankCode": "CIB",
"bankName": "兴业银行"
}, {
"bankCode": "CNCB",
"bankName": "中信银行"
}, {
"bankCode": "HXB",
"bankName": "华夏银行"
}, {
"bankCode": "BOC",
"bankName": "中国银行"
}, {
"bankCode": "CCB",
"bankName": "中国建设银行"
}, {
"bankCode": "BCM",
"bankName": "交通银行"
}, {
"bankCode": "CMBC",
"bankName": "中国民生银行"
}, {
"bankCode": "CMB",
"bankName": "招商银行"
}, {
"bankCode": "NXBANK",
"bankName": "宁夏银行"
}, {
"bankCode": "CRCB",
"bankName": "成都农村商业银行股份有限公司"
}, {
"bankCode": "HBRB",
"bankName": "湖北农信联合社"
}, {
"bankCode": "SPDB",
"bankName": "浦东发展银行"
}, {
"bankCode": "LSB",
"bankName": "临商银行"
}, {
"bankCode": "TZB",
"bankName": "台州银行"
}, {
"bankCode": "DZB",
"bankName": "德州银行"
}, {
"bankCode": "NJCB",
"bankName": "南京银行"
}, {
"bankCode": "BOS",
"bankName": "上海银行"
}, {
"bankCode": "NBCB",
"bankName": "宁波银行"
}, {
"bankCode": "GLB",
"bankName": "桂林银行"
}, {
"bankCode": "JLB",
"bankName": "吉林银行"
}, {
"bankCode": "ZYB",
"bankName": "中原银行"
}, {
"bankCode": "HFB",
"bankName": "恒丰银行"
}, {
"bankCode": "WZCB",
"bankName": "温州银行"
}, {
"bankCode": "QZB",
"bankName": "泉州银行"
}, {
"bankCode": "LJB",
"bankName": "龙江银行"
}, {
"bankCode": "LWB",
"bankName": "莱芜银行"
}, {
"bankCode": "JSB",
"bankName": "江苏银行"
}, {
"bankCode": "CZB",
"bankName": "浙商银行"
}, {
"bankCode": "CBHB",
"bankName": "渤海银行"
}, {
"bankCode": "JSHB",
"bankName": "晋商银行"
}, {
"bankCode": "QDRB",
"bankName": "青岛农信"
}, {
"bankCode": "WJRCB",
"bankName": "吴江农商行"
}, {
"bankCode": "KSRB",
"bankName": "昆山农信社"
}, {
"bankCode": "KMRB",
"bankName": "昆明农联社"
}, {
"bankCode": "HBB",
"bankName": "哈尔滨银行"
}, {
"bankCode": "WHCB",
"bankName": "威海商业银行"
}, {
"bankCode": "HZCB",
"bankName": "杭州商业银行"
}, {
"bankCode": "XIB",
"bankName": "厦门国际银行"
}, {
"bankCode": "LZCB",
"bankName": "泸州市商业银行"
}, {
"bankCode": "TLCB",
"bankName": "泰隆城市信用社"
}, {
"bankCode": "TJCB",
"bankName": "天津市商业银行"
}, {
"bankCode": "GXNGB",
"bankName": "广西北部湾银行"
}, {
"bankCode": "NMGRB",
"bankName": "内蒙古农村信用社"
}, {
"bankCode": "BJRCB",
"bankName": "北京农村商业银行"
}, {
"bankCode": "ZJMTCB",
"bankName": "浙江民泰商业银行"
}, {
"bankCode": "DRCB",
"bankName": "东莞农村商业银行"
}, {
"bankCode": "TRCB",
"bankName": "天津农村商业银行"
}, {
"bankCode": "JRCB",
"bankName": "江阴农村商业银行"
}, {
"bankCode": "CZCB",
"bankName": "浙江稠州商业银行"
}, {
"bankCode": "CQRCB",
"bankName": "重庆农村商业银行"
}, {
"bankCode": "WSHYVB",
"bankName": "尉氏合益村镇银行"
}, {
"bankCode": "CGB",
"bankName": "广发银行股份有限公司"
}, {
"bankCode": "BHB",
"bankName": "天津滨海农村商业银行"
}, {
"bankCode": "RSRB",
"bankName": "福建建瓯瑞狮村镇银行"
}, {
"bankCode": "JURB",
"bankName": "浙江嘉善联合村镇银行"
}, {
"bankCode": "GMYH",
"bankName": "南宁江南国民村镇银行"
}, {
"bankCode": "BOCFDB",
"bankName": "中银富登村镇银行"
}, {
"bankCode": "JZB",
"bankName": "锦州银行股份有限公司"
}, {
"bankCode": "QLB",
"bankName": "齐鲁银行股份有限公司"
}, {
"bankCode": "JCB",
"bankName": "晋城银行股份有限公司"
}, {
"bankCode": "JHB",
"bankName": "金华银行股份有限公司"
}, {
"bankCode": "JNB",
"bankName": "济宁银行股份有限公司"
}, {
"bankCode": "LZB",
"bankName": "柳州银行股份有限公司"
}, {
"bankCode": "ZZB",
"bankName": "郑州银行股份有限公司"
}, {
"bankCode": "SZB",
"bankName": "苏州银行股份有限公司"
}, {
"bankCode": "XMB",
"bankName": "厦门银行股份有限公司"
}, {
"bankCode": "FJNX",
"bankName": "福建省农村信用社联合社"
}, {
"bankCode": "ZJNX",
"bankName": "浙江省农村信用社联合社"
}, {
"bankCode": "HNNX",
"bankName": "河南省农村信用社联合社"
}, {
"bankCode": "JSNX",
"bankName": "江苏省农村信用社联合社"
}, {
"bankCode": "SXNX",
"bankName": "陕西省农村信用社联合社"
}, {
"bankCode": "SDNX",
"bankName": "山东省农村信用社联合社"
}, {
"bankCode": "GDNYB",
"bankName": "广东南粤银行股份有限公司"
}, {
"bankCode": "HLJNX",
"bankName": "黑龙江省农村信用社联合社"
}, {
"bankCode": "GRCB",
"bankName": "广州农村商业银行股份有限公司"
}, {
"bankCode": "JLRB",
"bankName": "吉林农信联合社"
}, {
"bankCode": "GXRB",
"bankName": "广西农村信用社联合社"
}, {
"bankCode": "GDNX",
"bankName": "广东省农村信用社联合社"
}, {
"bankCode": "JLNX",
"bankName": "吉林省农村信用社联合社"
}, {
"bankCode": "PAB",
"bankName": "平安银行"
}, {
"bankCode": "BOQHD",
"bankName": "秦皇岛银行"
}, {
"bankCode": "BOCD",
"bankName": "成都银行"
}, {
"bankCode": "BOWH",
"bankName": "乌海银行"
}, {
"bankCode": "BOLY",
"bankName": "辽阳银行"
}, {
"bankCode": "HTRBB",
"bankName": "巴彦淖尔河套农村商业银行"
}, {
"bankCode": "JHXHB",
"bankName": "天津静海新华村镇银行"
}, {
"bankCode": "BOHK",
"bankName": "汉口银行"
}, {
"bankCode": "FJHXB",
"bankName": "海峡银行"
}, {
"bankCode": "NMGB",
"bankName": "内蒙古银行"
}, {
"bankCode": "SDB",
"bankName": "深圳发展银行"
}, {
"bankCode": "BOGZ",
"bankName": "广州银行"
}, {
"bankCode": "BOHZ",
"bankName": "杭州银行"
}, {
"bankCode": "BOHB",
"bankName": "河北银行"
}, {
"bankCode": "HSBC",
"bankName": "汇丰银行"
}, {
"bankCode": "WRB",
"bankName": "友利银行有限公司"
}, {
"bankCode": "GDHXB",
"bankName": "广东华兴银行"
}, {
"bankCode": "ZJUCB",
"bankName": "诸暨联合村镇银行"
}, {
"bankCode": "SJB",
"bankName": "盛京银行"
}, {
"bankCode": "AHRXYS",
"bankName": "安徽省农村信用社联合社"
}, {
"bankCode": "EEDSB",
"bankName": "鄂尔多斯银行"
}, {
"bankCode": "HSB",
"bankName": "徽商银行"
}, {
"bankCode": "SXB",
"bankName": "三峡银行"
}, {
"bankCode": "XQGKB",
"bankName": "西青国开村镇银行"
}, {
"bankCode": "BOGY",
"bankName": "贵阳银行"
}, {
"bankCode": "BSB",
"bankName": "包商银行"
}, {
"bankCode": "LSBC",
"bankName": "莱商银行股份有限公司"
}, {
"bankCode": "QSB",
"bankName": "齐商银行"
}, {
"bankCode": "GSRB",
"bankName": "广西横县桂商村镇银行"
}, {
"bankCode": "YWURB",
"bankName": "义乌联合村镇银行"
}, {
"bankCode": "BEA",
"bankName": "东亚银行"
}, {
"bankCode": "SHRBB",
"bankName": "上海农村商业银行"
}, {
"bankCode": "SXRCB",
"bankName": "河南嵩县农村商业银行"
}, {
"bankCode": "CSCB",
"bankName": "长沙银行股份有限公司"
}, {
"bankCode": "HRXJ",
"bankName": "华融湘江银行"
}, {
"bankCode": "BOWF",
"bankName": "潍坊银行"
}, {
"bankCode": "NCSY",
"bankName": "农村商业银行"
}, {
"bankCode": "JNCB",
"bankName": "江南农村商业银行"
}, {
"bankCode": "CAB",
"bankName": "长安银行"
}, {
"bankCode": "NCXYS",
"bankName": "农村信用联社"
}, {
"bankCode": "SZNSB",
"bankName": "深圳农村商业银行"
}, {
"bankCode": "LZHB",
"bankName": "兰州银行"
}, {
"bankCode": "HRNX",
"bankName": "湖南省农村信用社联合社"
}, {
"bankCode": "HBRCB",
"bankName": "哈尔滨农村商业银行"
}, {
"bankCode": "QDYH",
"bankName": "青岛银行"
}, {
"bankCode": "TJJNCZ",
"bankName": "天津津南村镇银行"
}, {
"bankCode": "GZNX",
"bankName": "贵州省农村信用社联合社"
}, {
"bankCode": "QHCB",
"bankName": "青海银行"
}, {
"bankCode": "JXCB",
"bankName": "江西银行"
}, {
"bankCode": "AHRC",
"bankName": "安徽省农村信用社"
}, {
"bankCode": "JLFMCZ",
"bankName": "吉林丰满惠民村镇银行"
}, {
"bankCode": "TJWQCZ",
"bankName": "天津武清村镇银行"
}, {
"bankCode": "LQXYS",
"bankName": "禄劝彝族苗族自治县农村信用合作联社屏山信用社"
}, {
"bankCode": "CTHCZ",
"bankName": "柘荣刺桐红村镇银行有限公司"
}, {
"bankCode": "PNXNCHZXYS",
"bankName": "农村信用合作联社"
}, {
"bankCode": "CQRC",
"bankName": "渝农商村镇银行"
}, {
"bankCode": "CQBANK",
"bankName": "重庆银行股份有限公司"
}, {
"bankCode": "ZTCB",
"bankName": "浙江泰隆商业银行"
}, {
"bankCode": "YZB",
"bankName": "深圳福田银座村镇银行股份有限公司"
}, {
"bankCode": "creat0075",
"bankName": "富滇银行"
}, {
"bankCode": "creat0001",
"bankName": "国家开发银行"
}, {
"bankCode": "creat0002",
"bankName": "中国进出口银行"
}, {
"bankCode": "creat0003",
"bankName": "中国农业发展银行"
}, {
"bankCode": "creat0004",
"bankName": "广东发展银行"
}, {
"bankCode": "creat0005",
"bankName": "上海浦东发展银行"
}, {
"bankCode": "creat0006",
"bankName": "北京银行"
}, {
"bankCode": "creat0007",
"bankName": "天津银行"
}, {
"bankCode": "creat0008",
"bankName": "大连银行"
}, {
"bankCode": "creat0009",
"bankName": "哈尔滨银行股份有限公司"
}, {
"bankCode": "creat0010",
"bankName": "廊坊银行"
}, {
"bankCode": "creat0011",
"bankName": "张家口银行"
}, {
"bankCode": "creat0012",
"bankName": "沧州银行"
}, {
"bankCode": "creat0013",
"bankName": "承德银行"
}, {
"bankCode": "creat0014",
"bankName": "邯郸银行"
}, {
"bankCode": "creat0015",
"bankName": "唐山银行"
}, {
"bankCode": "creat0016",
"bankName": "保定银行"
}, {
"bankCode": "creat0017",
"bankName": "邢台银行"
}, {
"bankCode": "creat0018",
"bankName": "晋城银行"
}, {
"bankCode": "creat0019",
"bankName": "大同银行"
}, {
"bankCode": "creat0020",
"bankName": "晋中银行"
}, {
"bankCode": "creat0021",
"bankName": "阳泉市商业银行"
}, {
"bankCode": "creat0022",
"bankName": "长治银行"
}, {
"bankCode": "creat0023",
"bankName": "蒙商银行"
}, {
"bankCode": "creat0024",
"bankName": "朝阳银行"
}, {
"bankCode": "creat0025",
"bankName": "丹东银行"
}, {
"bankCode": "creat0026",
"bankName": "锦州银行"
}, {
"bankCode": "creat0027",
"bankName": "营口银行"
}, {
"bankCode": "creat0028",
"bankName": "阜新银行"
}, {
"bankCode": "creat0029",
"bankName": "鞍山银行"
}, {
"bankCode": "creat0030",
"bankName": "抚顺银行"
}, {
"bankCode": "creat0031",
"bankName": "本溪银行"
}, {
"bankCode": "creat0032",
"bankName": "葫芦岛银行"
}, {
"bankCode": "creat0033",
"bankName": "营口沿海银行"
}, {
"bankCode": "creat0034",
"bankName": "城市商业银行"
}, {
"bankCode": "creat0035",
"bankName": "昆仑银行"
}, {
"bankCode": "creat0036",
"bankName": "宁波通商银行"
}, {
"bankCode": "creat0037",
"bankName": "苏州银行"
}, {
"bankCode": "creat0038",
"bankName": "江苏长江商业银行"
}, {
"bankCode": "creat0039",
"bankName": "莱商银行"
}, {
"bankCode": "creat0040",
"bankName": "金华银行"
}, {
"bankCode": "creat0041",
"bankName": "台州银行股份有限公司"
}, {
"bankCode": "creat0042",
"bankName": "湖州银行"
}, {
"bankCode": "creat0043",
"bankName": "宁波东海银行"
}, {
"bankCode": "creat0044",
"bankName": "绍兴银行"
}, {
"bankCode": "creat0045",
"bankName": "嘉兴银行"
}, {
"bankCode": "creat0046",
"bankName": "东莞银行"
}, {
"bankCode": "creat0047",
"bankName": "九江银行"
}, {
"bankCode": "creat0048",
"bankName": "福建海峡银行"
}, {
"bankCode": "creat0049",
"bankName": "厦门银行"
}, {
"bankCode": "creat0050",
"bankName": "赣州银行"
}, {
"bankCode": "creat0051",
"bankName": "上饶银行"
}, {
"bankCode": "creat0052",
"bankName": "齐鲁银行"
}, {
"bankCode": "creat0053",
"bankName": "日照银行"
}, {
"bankCode": "creat0054",
"bankName": "泰安银行"
}, {
"bankCode": "creat0055",
"bankName": "东营银行"
}, {
"bankCode": "creat0056",
"bankName": "威海市商业银行"
}, {
"bankCode": "creat0057",
"bankName": "济宁银行"
}, {
"bankCode": "creat0058",
"bankName": "枣庄银行"
}, {
"bankCode": "creat0059",
"bankName": "烟台银行"
}, {
"bankCode": "creat0060",
"bankName": "郑州银行"
}, {
"bankCode": "creat0061",
"bankName": "焦作中旅银行"
}, {
"bankCode": "creat0062",
"bankName": "洛阳银行"
}, {
"bankCode": "creat0063",
"bankName": "平顶山银行"
}, {
"bankCode": "creat0064",
"bankName": "湖北银行"
}, {
"bankCode": "creat0065",
"bankName": "广东南粤银行"
}, {
"bankCode": "creat0066",
"bankName": "长沙银行"
}, {
"bankCode": "creat0067",
"bankName": "广西北部湾银行股份有限公司"
}, {
"bankCode": "creat0068",
"bankName": "海南银行"
}, {
"bankCode": "creat0069",
"bankName": "乐山市商业银行"
}, {
"bankCode": "creat0070",
"bankName": "绵阳市商业银行"
}, {
"bankCode": "creat0071",
"bankName": "重庆银行"
}, {
"bankCode": "creat0072",
"bankName": "雅安市商业银行"
}, {
"bankCode": "creat0073",
"bankName": "宜宾市商业银行"
}, {
"bankCode": "creat0074",
"bankName": "贵州银行"
}, {
"bankCode": "creat0076",
"bankName": "曲靖市商业银行"
}, {
"bankCode": "creat0077",
"bankName": "西藏银行"
}, {
"bankCode": "creat0078",
"bankName": "西安银行"
}, {
"bankCode": "creat0080",
"bankName": "甘肃银行"
}, {
"bankCode": "creat0081",
"bankName": "石嘴山银行"
}, {
"bankCode": "creat0082",
"bankName": "乌鲁木齐银行"
}, {
"bankCode": "creat0083",
"bankName": "库尔勒银行"
}, {
"bankCode": "creat0084",
"bankName": "哈密市商业银行"
}, {
"bankCode": "creat0085",
"bankName": "新疆汇和银行"
}, {
"bankCode": "creat0086",
"bankName": "成都农商银行"
}, {
"bankCode": "creat0087",
"bankName": "农村合作银行"
}, {
"bankCode": "creat0088",
"bankName": "镇银行有限责任公司"
}, {
"bankCode": "creat0089",
"bankName": "南康赣商村镇银行"
}, {
"bankCode": "creat0090",
"bankName": "湘乡市村镇银行"
}, {
"bankCode": "creat0091",
"bankName": "重庆三峡银行股份有限公司"
}, {
"bankCode": "creat0092",
"bankName": "重庆富民银行股份有限公司"
}, {
"bankCode": "creat0093",
"bankName": "农村信用社"
}, {
"bankCode": "creat0094",
"bankName": "杭州联合农村商业银行"
}, {
"bankCode": "creat0095",
"bankName": "武汉农村商业银行"
}, {
"bankCode": "creat0096",
"bankName": "宁夏黄河农村商业银行"
}, {
"bankCode": "creat0098",
"bankName": "南洋商业银行"
}, {
"bankCode": "creat0099",
"bankName": "恒生银行"
}, {
"bankCode": "creat0100",
"bankName": "集友银行"
}, {
"bankCode": "creat0101",
"bankName": "创兴银行有限公司"
}, {
"bankCode": "creat0102",
"bankName": "上海商业银行"
}, {
"bankCode": "creat0103",
"bankName": "永隆银行"
}, {
"bankCode": "creat0104",
"bankName": "新韩银行"
}, {
"bankCode": "creat0105",
"bankName": "韩国中小企业银行有限公司"
}, {
"bankCode": "creat0106",
"bankName": "韩亚银行"
}, {
"bankCode": "creat0107",
"bankName": "国民银行"
}, {
"bankCode": "creat0108",
"bankName": "马来亚银行"
}, {
"bankCode": "creat0109",
"bankName": "首都银行"
}, {
"bankCode": "creat0110",
"bankName": "华侨银行(中国)有限公司"
}, {
"bankCode": "creat0111",
"bankName": "大华银行"
}, {
"bankCode": "creat0112",
"bankName": "星展银行(中国)有限公司"
}, {
"bankCode": "creat0113",
"bankName": "泰国盘谷银行(大众有限公司)"
}, {
"bankCode": "creat0114",
"bankName": "泰华农民银行"
}, {
"bankCode": "creat0115",
"bankName": "渣打银行"
}, {
"bankCode": "creat0116",
"bankName": "德国北德意志州银行"
}, {
"bankCode": "creat0117",
"bankName": "瑞士银行"
}, {
"bankCode": "creat0118",
"bankName": "蒙特利尔银行"
}, {
"bankCode": "creat0119",
"bankName": "澳大利亚和新西兰银行集团有限公司"
}, {
"bankCode": "creat0120",
"bankName": "富邦华一银行"
}, {
"bankCode": "LCRBANK",
"bankName": "湛江廉江长江村镇银行"
}, {
"bankCode": "WSCZBK",
"bankName": "文山砚山长江村镇银行"
}, {
"bankCode": "YNHTBK",
"bankName": "云南红塔银行"
}, {
"bankCode": "SLBK",
"bankName": "遂宁银行"
}, {
"bankCode": "HSBK",
"bankName": "衡水银行"
}, {
"bankCode": "CZBK",
"bankName": "集宁包闹村镇银行"
}, {
"bankCode": "CFCZ",
"bankName": "安徽长丰科源村镇银行股份有限公司"
}]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,124 @@
[{
"bankType": "0323",
"bankName": "上海华瑞银行"
}, {
"bankType": "A000",
"bankName": "境外银行"
}, {
"bankType": "0102",
"bankName": "中国工商银行"
}, {
"bankType": "0103",
"bankName": "中国农业银行"
}, {
"bankType": "0104",
"bankName": "中国银行"
}, {
"bankType": "0105",
"bankName": "中国建设银行"
}, {
"bankType": "0301",
"bankName": "交通银行"
}, {
"bankType": "0308",
"bankName": "招商银行"
}, {
"bankType": "0309",
"bankName": "兴业银行"
}, {
"bankType": "0305",
"bankName": "中国民生银行"
}, {
"bankType": "0306",
"bankName": "广东发展银行"
}, {
"bankType": "0307",
"bankName": "平安银行股份有限公司"
}, {
"bankType": "0310",
"bankName": "上海浦东发展银行"
}, {
"bankType": "0304",
"bankName": "华夏银行"
}, {
"bankType": "0313",
"bankName": "其他城市商业银行"
}, {
"bankType": "0402",
"bankName": "其他农村信用合作社"
}, {
"bankType": "0203",
"bankName": "中国农业发展银行"
}, {
"bankType": "0314",
"bankName": "其他农村商业银行"
}, {
"bankType": "0315",
"bankName": "恒丰银行"
}, {
"bankType": "0403",
"bankName": "中国邮政储蓄银行股份有限公司"
}, {
"bankType": "0303",
"bankName": "中国光大银行"
}, {
"bankType": "0302",
"bankName": "中信银行"
}, {
"bankType": "0316",
"bankName": "浙商银行股份有限公司"
}, {
"bankType": "0318",
"bankName": "渤海银行股份有限公司"
}, {
"bankType": "0319",
"bankName": "徽商银行"
}, {
"bankType": "0671",
"bankName": "香港地区渣打银行"
}, {
"bankType": "0502",
"bankName": "东亚银行(中国)有限公司"
}, {
"bankType": "0317",
"bankName": "其他农村合作银行"
}, {
"bankType": "0322",
"bankName": "上海农村商业银行"
}, {
"bankType": "0320",
"bankName": "村镇银行"
}, {
"bankType": "0501",
"bankName": "汇丰银行"
}, {
"bankType": "0503",
"bankName": "南洋商业银行"
}, {
"bankType": "0593",
"bankName": "友利银行"
}, {
"bankType": "0595",
"bankName": "新韩银行"
}, {
"bankType": "0596",
"bankName": "企业银行"
}, {
"bankType": "0597",
"bankName": "韩亚银行"
}, {
"bankType": "0621",
"bankName": "华侨银行"
}, {
"bankType": "0622",
"bankName": "大华银行"
}, {
"bankType": "0531",
"bankName": "花旗银行"
}, {
"bankType": "0781",
"bankName": "厦门国际银行"
}, {
"bankType": "0787",
"bankName": "华一银行"
}]

View File

@@ -0,0 +1,154 @@
[
{
"bankType": "102",
"bankName": "中国工商银行"
},
{
"bankType": "103",
"bankName": "中国农业银行"
},
{
"bankType": "104",
"bankName": "中国银行"
},
{
"bankType": "105",
"bankName": "中国建设银行"
},
{
"bankType": "201",
"bankName": "国家开发银行"
},
{
"bankType": "202",
"bankName": "中国进出口银行"
},
{
"bankType": "203",
"bankName": "中国农业发展银行"
},
{
"bankType": "301",
"bankName": "交通银行"
},
{
"bankType": "302",
"bankName": "中信实业银行"
},
{
"bankType": "303",
"bankName": "中国光大银行"
},
{
"bankType": "304",
"bankName": "华夏银行"
},
{
"bankType": "305",
"bankName": "中国民生银行"
},
{
"bankType": "306",
"bankName": "广东发展银行"
},
{
"bankType": "307",
"bankName": "深圳发展银行"
},
{
"bankType": "308",
"bankName": "招商银行"
},
{
"bankType": "309",
"bankName": "兴业银行"
},
{
"bankType": "310",
"bankName": "上海浦东发展银行"
},
{
"bankType": "313",
"bankName": "城市商业银行"
},
{
"bankType": "314",
"bankName": "农村商业银行"
},
{
"bankType": "315",
"bankName": "恒丰银行"
},
{
"bankType": "316",
"bankName": "浙商银行"
},
{
"bankType": "317",
"bankName": "农村合作银行"
},
{
"bankType": "318",
"bankName": "渤海银行"
},
{
"bankType": "319",
"bankName": "徽商银行"
},
{
"bankType": "320",
"bankName": "村镇银行"
},
{
"bankType": "321",
"bankName": "重庆三峡银行"
},
{
"bankType": "322",
"bankName": "上海农村商业银行"
},
{
"bankType": "323",
"bankName": "众邦银行"
},
{
"bankType": "402",
"bankName": "农村信用合作社"
},
{
"bankType": "403",
"bankName": "中国邮政储蓄银行"
},
{
"bankType": "501",
"bankName": "汇丰银行(中国)有限公司"
},
{
"bankType": "502",
"bankName": "东亚银行(中国)有限公司"
},
{
"bankType": "503",
"bankName": "南洋商业银行(中国)有限公司"
},
{
"bankType": "504",
"bankName": "恒生银行(中国)有限公司"
},
{
"bankType": "506",
"bankName": "集友银行有限公司"
},
{
"bankType": "507",
"bankName": "创兴银行有限公司"
},
{
"bankType": "781",
"bankName": "厦门国际银行"
},
{
"bankType": "787",
"bankName": "华一银行"
}
]

View File

@@ -0,0 +1,77 @@
<template>
<a-carousel autoplay arrows :style="{ '--banner-height': height }">
<!-- 左右且切换指示器 -->
<template #prevArrow>
<div class="custom-slick-arrow" style="left: 10px; z-index: 1">
<left-circle-outlined />
</div>
</template>
<template #nextArrow>
<div class="custom-slick-arrow" style="right: 10px">
<right-circle-outlined />
</div>
</template>
<!-- 循环渲染 轮播图部分 -->
<img v-for="(v, i) in bannerList" :key="i" :src="v.imgUrl" width="100" height="100" alt=""
@click="jumpPage(v.linkUrl)">
</a-carousel>
</template>
<script lang="ts" setup>
import { defineProps } from 'vue'
import { LeftCircleOutlined, RightCircleOutlined } from '@ant-design/icons-vue'
const props: any = defineProps({
height: { type: String, default: '35vh' },
bannerList: { type: Array, default: [] } as any
})
const jumpPage = (link: String) => {
if (!link) return
const a: any = document.createElement('a')
a.href = link
a.target = '_blank'
a.click()
}
</script>
<style lang="less" scoped>
/* For demo */
.ant-carousel :deep(.slick-slide) {
text-align: center;
height: var(--banner-height);
line-height: 160px;
// background: #364d79;
overflow: hidden;
div{
height: 500px;
}
}
.ant-carousel :deep(.slick-arrow.custom-slick-arrow) {
width: 30px;
height: 30px;
font-size: 30px;
color: #111111;
// background-color: rgba(31, 45, 61, 0.11);
opacity: 0.3;
z-index: 1;
}
.ant-carousel :deep(.custom-slick-arrow:before) {
display: none;
}
.ant-carousel :deep(.custom-slick-arrow:hover) {
opacity: 0.5;
}
img {
width: 100%;
height: 100%;
object-fit: cover;
}
</style>

View File

@@ -0,0 +1,120 @@
<template>
<div>
<a-row :gutter="[24,24]" style="width:100%">
<!-- 卡片默认新增框 -->
<a-col
v-if="addAuthority"
:xxl="24/span.xxl"
:xl="24/span.xl"
:lg="24/span.lg"
:md="24/span.md"
:sm="24/span.sm"
:xs="24/span.xs"
@click="$emit('addJeepayCard')"
>
<div class="jeepay-card-add" :style="{'height': height + 'px'}">
<div class="jeepay-card-add-top">
<img src="~@/assets/svg/add-icon.svg" alt="add-icon" class="jeepay-card-add-icon">
<img src="~@/assets/svg/add-icon-hover.svg" alt="add-icon" class="jeepay-card-add-icon-hover">
</div>
<div class="jeepay-card-add-text">
新建{{ name }}
</div>
</div>
</a-col>
<!-- 数据 -->
<a-col
v-for="(item, key) in vdata.cardList"
:key="key"
:xxl="24/span.xxl"
:xl="24/span.xl"
:lg="24/span.lg"
:md="24/span.md"
:sm="24/span.sm"
:xs="24/span.xs"
>
<slot name="cardContentSlot" :record="item" />
<slot name="cardOpSlot" :record="item" />
</a-col>
</a-row>
</div>
</template>
<script setup lang="ts">
import { onMounted, reactive } from 'vue'
const props = defineProps ({
span: { type: Object, default: () => ({ xxl: 6, xl: 4, lg: 4, md: 3, sm: 2, xs: 1 }) },
height: { type: Number, default: 200 },
name: { type: String, default: '' },
addAuthority: { type: Boolean, default: false },
reqCardListFunc: { type: Function, default: () => () => ({}) }
})
const vdata = reactive({cardList: [] as any[]})
onMounted(()=>{
refCardList()
})
defineExpose({refCardList})
function refCardList () {
props.reqCardListFunc().then(resData => {
vdata.cardList = resData
})
}
</script>
<style lang="less" scoped>
.jeepay-card-add {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
border: 2px dashed rgba(0, 0, 0, 0.15);
background: rgba(0, 0, 0, 0.03);
border-radius: 6px;
box-sizing: border-box;
cursor: pointer;
}
.jeepay-card-add-top {
width: 80px;
height: 80px;
position: relative;
}
.jeepay-card-add:hover {
border-color: rgba(25,83,255,0.3);
background: rgba(25,83,255,0.06);
transition: all 0.3s ease-in-out;
}
.jeepay-card-add:hover .jeepay-card-add-icon {
opacity: 0;
transition: all 0.2s ease-in-out;
}
.jeepay-card-add:hover .jeepay-card-add-icon-hover {
opacity: 1;
transition: all 0.5s ease-in-out;
}
.jeepay-card-add:hover .jeepay-card-add-text {
color: rgba(25,83,255,1);
transition: all 0.3s ease-in-out;
}
.jeepay-card-add-icon {
position: absolute;
width: 80px;
height: 80px;
opacity: 1;
}
.jeepay-card-add-icon-hover {
position: absolute;
width: 80px;
height: 80px;
opacity: 0;
}
.jeepay-card-add-text {
padding-top: 5px;
font-size: 16px;
color: rgba(0, 0, 0, 0.35);
}
</style>

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