This commit is contained in:
2024-11-24 15:21:01 +08:00
commit 08b8825abd
160 changed files with 34913 additions and 0 deletions

9
.editorconfig Normal file
View File

@@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

BIN
.github/images/preview.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

84
.github/workflows/check.yml vendored Normal file
View File

@@ -0,0 +1,84 @@
name: Check
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
lint:
strategy:
matrix:
node_version: [18.x, 20.x, 22.x]
os: [ubuntu-latest, windows-latest, macos-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
timeout-minutes: 10
steps:
- run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
cache: pnpm
- run: pnpm i
- run: pnpm run lint
typecheck:
strategy:
matrix:
node_version: [18.x, 20.x, 22.x]
os: [ubuntu-latest, windows-latest, macos-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
timeout-minutes: 10
steps:
- run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
cache: pnpm
- run: pnpm i
- run: pnpm run type-check
build:
strategy:
matrix:
node_version: [18.x, 20.x, 22.x]
os: [ubuntu-latest, windows-latest, macos-latest]
build_cmd: [build, 'build:mp-weixin', 'build:app']
fail-fast: false
runs-on: ${{ matrix.os }}
timeout-minutes: 10
steps:
- run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
cache: pnpm
- run: pnpm i
- run: pnpm run ${{ matrix.build_cmd }}

23
.gitignore vendored Normal file
View File

@@ -0,0 +1,23 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
.DS_Store
dist
*.local
# Editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
./src/components.d.ts
./src/auto-imports.d.ts

16
.hbuilderx/launch.json Normal file
View File

@@ -0,0 +1,16 @@
{
"version" : "1.0",
"configurations" : [
{
"playground" : "standard",
"type" : "uni-app:app-ios"
},
{
"app-plus" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}

3
.npmrc Normal file
View File

@@ -0,0 +1,3 @@
strict-peer-dependencies=false
auto-install-peers=true
shamefully-hoist=true

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
20

11
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,11 @@
{
"recommendations": [
"antfu.vite",
"antfu.iconify",
"antfu.unocss",
"vue.volar",
"dbaeumer.vscode-eslint",
"editorConfig.editorConfig",
"uni-helper.uni-helper-vscode"
]
}

16
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,16 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug h5",
"type": "chrome",
"runtimeArgs": [
"--remote-debugging-port=9222"
],
"request": "launch",
"url": "http://localhost:5173",
"webRoot": "${workspaceFolder}",
"preLaunchTask": "uni:h5"
}
]
}

56
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,56 @@
{
// Disable the default formatter, use eslint instead
"prettier.enable": false,
"editor.formatOnSave": false,
// Auto fix
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never"
},
// Silent the stylistic rules in you IDE, but still auto fix them
"eslint.rules.customizations": [
{ "rule": "style/*", "severity": "off", "fixable": true },
{ "rule": "format/*", "severity": "off", "fixable": true },
{ "rule": "*-indent", "severity": "off", "fixable": true },
{ "rule": "*-spacing", "severity": "off", "fixable": true },
{ "rule": "*-spaces", "severity": "off", "fixable": true },
{ "rule": "*-order", "severity": "off", "fixable": true },
{ "rule": "*-dangle", "severity": "off", "fixable": true },
{ "rule": "*-newline", "severity": "off", "fixable": true },
{ "rule": "*quotes", "severity": "off", "fixable": true },
{ "rule": "*semi", "severity": "off", "fixable": true }
],
// Enable eslint for all supported languages
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"vue",
"html",
"markdown",
"json",
"jsonc",
"yaml",
"toml",
"xml",
"gql",
"graphql",
"astro",
"svelte",
"css",
"less",
"scss",
"pcss",
"postcss"
],
// Enable file nesting
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.patterns": {
"vite.config.*": "pages.config.*, manifest.config.*, uno.config.*, volar.config.*, *.env, .env.*"
}
}

16
.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,16 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "uni:h5",
"type": "npm",
"script": "dev --devtools",
"isBackground": true,
"problemMatcher": "$vite",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023-PRESENT KeJun
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

31
README.md Normal file
View File

@@ -0,0 +1,31 @@
<p align="center">
<img src="https://github.com/uni-helper/vitesse-uni-app/raw/main/.github/images/preview.png" width="300"/>
</p>
<h2 align="center">
Vitesse for uni-app
</h2>
<p align="center">
<a href="https://vitesse-uni-app.netlify.app/">📱 在线预览</a>
<a href="https://vitesse-docs.netlify.app/">📖 阅读文档</a>
</p>
## 特性
- ⚡️ [Vue 3](https://github.com/vuejs/core), [Vite](https://github.com/vitejs/vite), [pnpm](https://pnpm.io/), [esbuild](https://github.com/evanw/esbuild) - 就是快!
- 🗂 [基于文件的路由](./src/pages)
- 📦 [组件自动化加载](./src/components)
- 📑 [布局系统](./src/layouts)
- 🎨 [UnoCSS](https://github.com/unocss/unocss) - 高性能且极具灵活性的即时原子化 CSS 引擎
- 😃 [各种图标集为你所用](https://github.com/antfu/unocss/tree/main/packages/preset-icons)
- 🔥 使用 [新的 `<script setup>` 语法](https://github.com/vuejs/rfcs/pull/227)
- 📥 [API 自动加载](https://github.com/antfu/unplugin-auto-import) - 直接使用 Composition API 无需引入
- 🦾 [TypeScript](https://www.typescriptlang.org/) & [ESLint](https://eslint.org/) - 保证代码质量

251
dataRender/1.json Normal file
View File

@@ -0,0 +1,251 @@
{
"code": "00",
"data": {
"als_m12_id_max_monnum": "2",
"als_m1_cell_nbank_allnum": "1",
"als_d15_cell_nbank_week_allnum": "0",
"als_d15_id_nbank_allnum": "1",
"als_m12_id_min_monnum": "0",
"als_m3_id_max_monnum": "1",
"als_m12_cell_min_inteday": "14",
"als_m6_cell_nbank_max_inteday": "46",
"als_d15_cell_nbank_selfnum": "0",
"als_d15_cell_nbank_sloan_allnum": "1",
"als_m3_id_nbank_orgnum": "2",
"als_m12_cell_nbank_ca_allnum": "2",
"als_m1_id_nbank_week_orgnum": "0",
"als_m6_id_nbank_orgnum": "2",
"als_m3_cell_min_monnum": "1",
"als_m6_id_avg_monnum": "1.00",
"als_m6_cell_nbank_orgnum": "2",
"DataStrategy": {
"strategy_version": "1.0",
"product_type": "100099",
"strategy_id": "DTA_BR0007512",
"product_name": "预置_借贷意向验证",
"scene": "lend"
},
"als_d15_id_rel_orgnum": "1",
"als_m3_cell_nbank_cf_orgnum": "1",
"als_m12_cell_nbank_sloan_orgnum": "2",
"als_fst_id_nbank_inteday": "264",
"als_m1_id_nbank_allnum": "1",
"als_m6_cell_nbank_max_monnum": "1",
"als_m12_cell_caon_allnum": "2",
"als_m1_cell_nbank_cf_allnum": "1",
"als_m6_cell_nbank_night_allnum": "1",
"als_m12_id_nbank_night_allnum": "1",
"als_m3_cell_caon_orgnum": "1",
"als_m12_id_nbank_avg_monnum": "1.20",
"als_d15_cell_nbank_orgnum": "1",
"als_m12_id_nbank_cf_allnum": "4",
"als_m3_cell_nbank_orgnum": "2",
"als_m12_id_nbank_sloan_allnum": "6",
"als_m3_cell_min_inteday": "31",
"als_m6_cell_nbank_sloan_allnum": "4",
"als_m3_id_nbank_cf_allnum": "2",
"als_m6_cell_nbank_avg_monnum": "1.00",
"als_m12_id_nbank_max_monnum": "2",
"als_m1_cell_nbank_sloan_allnum": "1",
"als_m6_cell_nbank_ca_allnum": "2",
"als_m3_id_min_inteday": "31",
"als_m3_cell_caon_allnum": "1",
"als_m6_id_nbank_cf_orgnum": "1",
"als_m1_cell_nbank_night_orgnum": "0",
"als_m1_id_nbank_cf_orgnum": "1",
"als_m3_id_nbank_cf_orgnum": "1",
"als_d15_cell_nbank_night_orgnum": "0",
"als_m6_cell_nbank_night_orgnum": "1",
"als_m12_id_nbank_night_orgnum": "1",
"als_m3_id_nbank_avg_monnum": "1.00",
"als_m3_id_min_monnum": "1",
"als_lst_cell_nbank_csinteday": "1",
"als_m12_cell_nbank_max_inteday": "128",
"als_m6_cell_max_monnum": "1",
"als_d15_cell_nbank_night_allnum": "0",
"als_m12_cell_min_monnum": "0",
"als_m3_id_nbank_max_monnum": "1",
"als_m3_cell_max_monnum": "1",
"als_m1_id_rel_orgnum": "1",
"als_m1_cell_nbank_cf_orgnum": "1",
"als_m12_id_nbank_orgnum": "2",
"als_m1_cell_nbank_night_allnum": "0",
"als_m3_cell_nbank_allnum": "3",
"als_m3_id_nbank_night_allnum": "1",
"als_d15_cell_rel_orgnum": "1",
"als_d15_cell_nbank_cf_allnum": "1",
"als_m6_cell_nbank_selfnum": "0",
"als_m6_cell_caon_orgnum": "1",
"als_m12_cell_nbank_sloan_allnum": "6",
"als_m3_id_caon_allnum": "1",
"als_m12_cell_nbank_night_orgnum": "1",
"als_m12_id_min_inteday": "14",
"als_m12_id_nbank_sloan_orgnum": "2",
"als_m6_id_nbank_ca_allnum": "2",
"als_d15_id_nbank_orgnum": "1",
"als_m6_cell_nbank_cf_orgnum": "1",
"swift_number": "3034309_20241022220649_604904CBA19",
"als_m6_cell_nbank_tot_mons": "4",
"als_m12_id_tot_mons": "5",
"als_m12_id_avg_monnum": "1.20",
"als_m3_id_nbank_sloan_orgnum": "2",
"als_m3_cell_nbank_max_inteday": "38",
"als_m1_id_nbank_orgnum": "1",
"als_m12_id_nbank_cf_orgnum": "1",
"als_m1_cell_nbank_orgnum": "1",
"als_d15_cell_nbank_allnum": "1",
"als_m6_id_max_monnum": "1",
"als_m12_id_max_inteday": "128",
"als_m3_cell_nbank_selfnum": "0",
"als_m1_cell_nbank_selfnum": "0",
"als_m12_id_nbank_ca_allnum": "2",
"als_m6_id_nbank_night_allnum": "1",
"als_m3_id_nbank_max_inteday": "38",
"als_d15_id_nbank_selfnum": "0",
"als_m6_id_nbank_avg_monnum": "1.00",
"als_m12_cell_nbank_max_monnum": "2",
"als_m6_cell_min_monnum": "0",
"als_d15_cell_rel_allnum": "1",
"als_m6_cell_nbank_cf_allnum": "2",
"als_m12_id_nbank_selfnum": "0",
"als_m6_id_nbank_sloan_orgnum": "2",
"als_m1_cell_rel_allnum": "1",
"als_m12_id_nbank_max_inteday": "128",
"als_m6_cell_max_inteday": "46",
"als_m6_id_caon_allnum": "2",
"als_m6_id_nbank_night_orgnum": "1",
"als_lst_id_nbank_consnum": "1",
"als_m3_cell_nbank_max_monnum": "1",
"als_m6_id_rel_allnum": "2",
"als_m6_id_rel_orgnum": "1",
"als_m6_id_nbank_sloan_allnum": "4",
"als_m1_cell_rel_orgnum": "1",
"als_m6_cell_tot_mons": "4",
"als_m12_cell_nbank_min_inteday": "14",
"als_m12_id_nbank_ca_orgnum": "1",
"als_m6_id_caon_orgnum": "1",
"als_m3_id_max_inteday": "38",
"als_m6_cell_min_inteday": "31",
"als_m3_cell_nbank_sloan_orgnum": "2",
"als_m12_id_caon_orgnum": "1",
"als_m1_id_nbank_night_orgnum": "0",
"als_m6_cell_nbank_week_orgnum": "2",
"als_m3_cell_rel_orgnum": "1",
"als_m6_cell_rel_orgnum": "1",
"als_m3_id_nbank_sloan_allnum": "3",
"als_m12_cell_avg_monnum": "1.20",
"flag_datastrategy": "1",
"als_d15_id_nbank_cf_allnum": "1",
"als_m3_cell_max_inteday": "38",
"als_m12_cell_nbank_cf_allnum": "4",
"flag_applyloanstr": "1",
"als_m6_id_nbank_ca_orgnum": "1",
"als_m3_id_rel_orgnum": "1",
"als_m12_id_nbank_week_orgnum": "2",
"als_m3_cell_nbank_tot_mons": "3",
"als_m6_id_nbank_min_inteday": "31",
"als_m3_id_nbank_ca_orgnum": "1",
"als_m3_id_caon_orgnum": "1",
"als_m12_cell_nbank_week_allnum": "2",
"als_m1_cell_nbank_week_allnum": "0",
"als_m12_id_nbank_week_allnum": "2",
"als_m1_id_nbank_sloan_allnum": "1",
"als_m3_cell_nbank_min_inteday": "31",
"als_m12_id_nbank_allnum": "6",
"als_m1_id_nbank_cf_allnum": "1",
"als_m3_cell_avg_monnum": "1.00",
"als_m6_id_nbank_tot_mons": "4",
"als_lst_cell_nbank_inteday": "7",
"als_m3_id_nbank_ca_allnum": "1",
"als_m6_cell_caon_allnum": "2",
"als_m6_id_max_inteday": "46",
"als_m12_cell_rel_orgnum": "1",
"als_m12_id_nbank_tot_mons": "5",
"als_m12_cell_nbank_min_monnum": "0",
"als_m6_id_tot_mons": "4",
"als_m3_cell_tot_mons": "3",
"als_m3_id_nbank_night_orgnum": "1",
"als_m12_id_nbank_min_inteday": "14",
"als_m12_id_rel_allnum": "4",
"als_m6_cell_nbank_week_allnum": "2",
"als_m3_id_rel_allnum": "2",
"als_m12_cell_nbank_selfnum": "0",
"als_m12_id_caon_allnum": "2",
"als_m3_id_nbank_min_inteday": "31",
"als_m12_cell_tot_mons": "5",
"als_m12_id_rel_orgnum": "1",
"als_m6_cell_nbank_ca_orgnum": "1",
"als_d15_id_nbank_cf_orgnum": "1",
"als_m6_id_nbank_min_monnum": "0",
"als_m6_cell_avg_monnum": "1.00",
"als_m12_cell_nbank_night_allnum": "1",
"als_d15_cell_nbank_cf_orgnum": "1",
"als_m6_id_nbank_week_allnum": "2",
"als_m3_id_nbank_tot_mons": "3",
"als_m3_cell_nbank_night_orgnum": "1",
"als_m6_cell_nbank_sloan_orgnum": "2",
"als_m3_cell_nbank_ca_allnum": "1",
"als_m1_id_nbank_selfnum": "0",
"als_m6_id_nbank_cf_allnum": "2",
"als_m1_id_nbank_sloan_orgnum": "1",
"als_m6_id_nbank_week_orgnum": "2",
"als_m1_id_rel_allnum": "1",
"als_m3_cell_nbank_min_monnum": "1",
"als_m12_cell_max_monnum": "2",
"als_m12_cell_nbank_allnum": "6",
"als_d15_id_nbank_week_orgnum": "0",
"als_m1_id_nbank_night_allnum": "0",
"als_m6_id_min_inteday": "31",
"als_m12_cell_rel_allnum": "4",
"als_m6_id_nbank_max_inteday": "46",
"als_m12_cell_caon_orgnum": "1",
"als_d15_cell_nbank_week_orgnum": "0",
"als_d15_cell_nbank_sloan_orgnum": "1",
"als_m1_cell_nbank_sloan_orgnum": "1",
"als_m3_id_nbank_selfnum": "0",
"als_m1_cell_nbank_week_orgnum": "0",
"als_d15_id_nbank_sloan_allnum": "1",
"als_m3_cell_rel_allnum": "2",
"als_d15_id_nbank_sloan_orgnum": "1",
"als_m6_id_nbank_max_monnum": "1",
"als_m6_cell_nbank_allnum": "4",
"als_m3_cell_nbank_cf_allnum": "2",
"als_m1_id_nbank_week_allnum": "0",
"als_d15_id_rel_allnum": "1",
"als_m12_cell_nbank_tot_mons": "5",
"als_m3_id_tot_mons": "3",
"als_m6_cell_rel_allnum": "2",
"als_m12_cell_nbank_week_orgnum": "2",
"als_lst_id_nbank_inteday": "7",
"als_m6_id_nbank_selfnum": "0",
"als_m6_id_min_monnum": "0",
"code": "00",
"als_m12_cell_nbank_ca_orgnum": "1",
"als_m3_id_nbank_week_orgnum": "1",
"als_d15_id_nbank_week_allnum": "0",
"als_m3_id_nbank_min_monnum": "1",
"als_m3_id_avg_monnum": "1.00",
"als_d15_id_nbank_night_orgnum": "0",
"als_m3_cell_nbank_night_allnum": "1",
"als_fst_cell_nbank_inteday": "264",
"als_m3_id_nbank_week_allnum": "1",
"als_d15_id_nbank_night_allnum": "0",
"als_m12_cell_nbank_orgnum": "2",
"als_m3_cell_nbank_ca_orgnum": "1",
"als_m3_cell_nbank_sloan_allnum": "3",
"als_m12_cell_max_inteday": "128",
"als_m6_cell_nbank_min_inteday": "31",
"als_m12_id_nbank_min_monnum": "0",
"als_lst_id_nbank_csinteday": "1",
"als_lst_cell_nbank_consnum": "1",
"als_m3_cell_nbank_week_orgnum": "1",
"als_m12_cell_nbank_avg_monnum": "1.20",
"als_m3_id_nbank_allnum": "3",
"als_m6_id_nbank_allnum": "4",
"als_m12_cell_nbank_cf_orgnum": "1",
"als_m3_cell_nbank_avg_monnum": "1.00",
"als_m6_cell_nbank_min_monnum": "0",
"als_m3_cell_nbank_week_allnum": "1"
},
"flag_applyloanstr": "1"
}

2093
dataRender/jdyx.txt Normal file

File diff suppressed because it is too large Load Diff

55
dataRender/jdyxRender.js Normal file
View File

@@ -0,0 +1,55 @@
const fs = require('node:fs')
const path = require('node:path')
// 读取文件路径
const filePath = path.join(__dirname, 'jdyx.txt')
// 输出文件路径
const outputFilePath = path.join(__dirname, 'output.json')
// 读取文件内容
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('读取文件失败:', err)
return
}
const records = []
let currentRecord = ''
let capturing = false // 是否正在捕获一条记录
// 按字符处理数据
for (let i = 0; i < data.length; i++) {
const char = data[i]
// 检查是否找到 `als`
if (!capturing && data.slice(i, i + 3) === 'als') {
capturing = true // 开始捕获
currentRecord = 'als' // 初始化记录
i += 2 // 跳过已匹配的 "als"
continue
}
// 捕获状态下,遇到空格时结束记录
if (capturing) {
if (char === ' ') {
records.push(currentRecord) // 保存当前记录
capturing = false // 停止捕获
currentRecord = '' // 重置记录
}
else {
currentRecord += char // 继续捕获字符
}
}
}
// 将结果写入到JSON文件中
fs.writeFile(outputFilePath, JSON.stringify(records, null, 2), (err) => {
if (err) {
console.error('写入文件失败:', err)
}
else {
console.log(`记录已保存到文件: ${outputFilePath}`)
}
})
})

41
dataRender/jdyxRender2.js Normal file
View File

@@ -0,0 +1,41 @@
const fs = require('node:fs')
const path = require('node:path')
// 读取文件路径
const inputFilePath = path.join(__dirname, 'output.json')
// 输出文件路径
const outputFilePath = path.join(__dirname, 'word_list.json')
// 读取JSON文件
fs.readFile(inputFilePath, 'utf8', (err, data) => {
if (err) {
console.error('读取文件失败:', err)
return
}
// 解析JSON内容
const records = JSON.parse(data)
// 用于存储所有分割后的单词
const wordSet = new Set()
// 遍历每个元素,将其按下划线分割
records.forEach((record) => {
const words = record.split('_')
words.forEach(word => wordSet.add(word)) // 去重
})
// 将Set转换为数组
const uniqueWords = Array.from(wordSet)
// 将结果写入到新的JSON文件
fs.writeFile(outputFilePath, JSON.stringify(uniqueWords, null, 2), (err) => {
if (err) {
console.error('写入文件失败:', err)
}
else {
console.log(`单词列表已保存到文件: ${outputFilePath}`)
}
})
})

822
dataRender/output.json Normal file
View File

@@ -0,0 +1,822 @@
[
"als_d7_id_pdl_allnum",
"als_d7_id_pdl_orgnum",
"als_d7_id_caon_allnum",
"als_d7_id_caon_orgnum",
"als_d7_id_rel_allnum",
"als_d7_id_rel_orgnum",
"als_d7_id_caoff_allnum",
"als_d7_id_caoff_orgnum",
"als_d7_id_cooff_allnum",
"als_d7_id_cooff_orgnum",
"als_d7_id_af_allnum",
"als_d7_id_af_orgnum",
"als_d7_id_coon_allnum",
"als_d7_id_coon_orgnum",
"als_d7_id_oth_allnum",
"als_d7_id_oth_orgnum",
"als_d7_id_bank_selfnum",
"als_d7_id_bank_allnum",
"als_d7_id_bank_tra_allnum",
"als_d7_id_bank_ret_allnum",
"als_d7_id_bank_orgnum",
"als_d7_id_bank_tra_orgnum",
"als_d7_id_bank_ret_orgnum",
"als_d7_id_bank_week_allnum",
"als_d7_id_bank_week_orgnum",
"als_d7_id_bank_night_allnum",
"als_d7_id_bank_night_orgnum",
"als_d7_id_nbank_selfnum",
"als_d7_id_nbank_allnum",
"als_d7_id_nbank_p2p_allnum",
"als_d7_id_nbank_mc_allnum",
"als_d7_id_nbank_ca_allnum",
"als_d7_id_nbank_cf_allnum",
"als_d7_id_nbank_com_allnum",
"als_d7_id_nbank_oth_allnum",
"als_d7_id_nbank_nsloan_allnum",
"als_d7_id_nbank_autofin_allnum",
"als_d7_id_nbank_sloan_allnum",
"als_d7_id_nbank_cons_allnum",
"als_d7_id_nbank_finlea_allnum",
"als_d7_id_nbank_else_allnum",
"als_d7_id_nbank_orgnum",
"als_d7_id_nbank_p2p_orgnum",
"als_d7_id_nbank_mc_orgnum",
"als_d7_id_nbank_ca_orgnum",
"als_d7_id_nbank_cf_orgnum",
"als_d7_id_nbank_com_orgnum",
"als_d7_id_nbank_oth_orgnum",
"als_d7_id_nbank_nsloan_orgnum",
"als_d7_id_nbank_autofin_orgnum",
"als_d7_id_nbank_sloan_orgnum",
"als_d7_id_nbank_cons_orgnum",
"als_d7_id_nbank_finlea_orgnum",
"als_d7_id_nbank_else_orgnum",
"als_d7_id_nbank_week_allnum",
"als_d7_id_nbank_week_orgnum",
"als_d7_id_nbank_night_allnum",
"als_d7_id_nbank_night_orgnum",
"als_d7_cell_pdl_allnum",
"als_d7_cell_pdl_orgnum",
"als_d7_cell_caon_allnum",
"als_d7_cell_caon_orgnum",
"als_d7_cell_rel_allnum",
"als_d7_cell_rel_orgnum",
"als_d7_cell_caoff_allnum",
"als_d7_cell_caoff_orgnum",
"als_d7_cell_cooff_allnum",
"als_d7_cell_cooff_orgnum",
"als_d7_cell_af_allnum",
"als_d7_cell_af_orgnum",
"als_d7_cell_coon_allnum",
"als_d7_cell_coon_orgnum",
"als_d7_cell_oth_allnum",
"als_d7_cell_oth_orgnum",
"als_d7_cell_bank_selfnum",
"als_d7_cell_bank_allnum",
"als_d7_cell_bank_tra_allnum",
"als_d7_cell_bank_ret_allnum",
"als_d7_cell_bank_orgnum",
"als_d7_cell_bank_tra_orgnum",
"als_d7_cell_bank_ret_orgnum",
"als_d7_cell_bank_week_allnum",
"als_d7_cell_bank_week_orgnum",
"als_d7_cell_bank_night_allnum",
"als_d7_cell_bank_night_orgnum",
"als_d7_cell_nbank_selfnum",
"als_d7_cell_nbank_allnum",
"als_d7_cell_nbank_p2p_allnum",
"als_d7_cell_nbank_mc_allnum",
"als_d7_cell_nbank_ca_allnum",
"als_d7_cell_nbank_cf_allnum",
"als_d7_cell_nbank_com_allnum",
"als_d7_cell_nbank_oth_allnum",
"als_d7_cell_nbank_nsloan_allnum",
"als_d7_cell_nbank_autofin_allnum",
"als_d7_cell_nbank_sloan_allnum",
"als_d7_cell_nbank_cons_allnum",
"als_d7_cell_nbank_finlea_allnum",
"als_d7_cell_nbank_else_allnum",
"als_d7_cell_nbank_orgnum",
"als_d7_cell_nbank_p2p_orgnum",
"als_d7_cell_nbank_mc_orgnum",
"als_d7_cell_nbank_ca_orgnum",
"als_d7_cell_nbank_cf_orgnum",
"als_d7_cell_nbank_com_orgnum",
"als_d7_cell_nbank_oth_orgnum",
"als_d7_cell_nbank_nsloan_orgnum",
"als_d7_cell_nbank_autofin_orgnum",
"als_d7_cell_nbank_sloan_orgnum",
"als_d7_cell_nbank_cons_orgnum",
"als_d7_cell_nbank_finlea_orgnum",
"als_d7_cell_nbank_else_orgnum",
"als_d7_cell_nbank_week_allnum",
"als_d7_cell_nbank_week_orgnum",
"als_d7_cell_nbank_night_allnum",
"als_d7_cell_nbank_night_orgnum",
"als_d15_id_pdl_allnum",
"als_d15_id_pdl_orgnum",
"als_d15_id_caon_allnum",
"als_d15_id_caon_orgnum",
"als_d15_id_rel_allnum",
"als_d15_id_rel_orgnum",
"als_d15_id_caoff_allnum",
"als_d15_id_caoff_orgnum",
"als_d15_id_cooff_allnum",
"als_d15_id_cooff_orgnum",
"als_d15_id_af_allnum",
"als_d15_id_af_orgnum",
"als_d15_id_coon_allnum",
"als_d15_id_coon_orgnum",
"als_d15_id_oth_allnum",
"als_d15_id_oth_orgnum",
"als_d15_id_bank_selfnum",
"als_d15_id_bank_allnum",
"als_d15_id_bank_tra_allnum",
"als_d15_id_bank_ret_allnum",
"als_d15_id_bank_orgnum",
"als_d15_id_bank_tra_orgnum",
"als_d15_id_bank_ret_orgnum",
"als_d15_id_bank_week_allnum",
"als_d15_id_bank_week_orgnum",
"als_d15_id_bank_night_allnum",
"als_d15_id_bank_night_orgnum",
"als_d15_id_nbank_selfnum",
"als_d15_id_nbank_allnum",
"als_d15_id_nbank_p2p_allnum",
"als_d15_id_nbank_mc_allnum",
"als_d15_id_nbank_ca_allnum",
"als_d15_id_nbank_cf_allnum",
"als_d15_id_nbank_com_allnum",
"als_d15_id_nbank_oth_allnum",
"als_d15_id_nbank_nsloan_allnum",
"als_d15_id_nbank_autofin_allnum",
"als_d15_id_nbank_sloan_allnum",
"als_d15_id_nbank_cons_allnum",
"als_d15_id_nbank_finlea_allnum",
"als_d15_id_nbank_else_allnum",
"als_d15_id_nbank_orgnum",
"als_d15_id_nbank_p2p_orgnum",
"als_d15_id_nbank_mc_orgnum",
"als_d15_id_nbank_ca_orgnum",
"als_d15_id_nbank_cf_orgnum",
"als_d15_id_nbank_com_orgnum",
"als_d15_id_nbank_oth_orgnum",
"als_d15_id_nbank_nsloan_orgnum",
"als_d15_id_nbank_autofin_orgnum",
"als_d15_id_nbank_sloan_orgnum",
"als_d15_id_nbank_cons_orgnum",
"als_d15_id_nbank_finlea_orgnum",
"als_d15_id_nbank_else_orgnum",
"als_d15_id_nbank_week_allnum",
"als_d15_id_nbank_week_orgnum",
"als_d15_id_nbank_night_allnum",
"als_d15_id_nbank_night_orgnum",
"als_d15_cell_pdl_allnum",
"als_d15_cell_pdl_orgnum",
"als_d15_cell_caon_allnum",
"als_d15_cell_caon_orgnum",
"als_d15_cell_rel_allnum",
"als_d15_cell_rel_orgnum",
"als_d15_cell_caoff_allnum",
"als_d15_cell_caoff_orgnum",
"als_d15_cell_cooff_allnum",
"als_d15_cell_cooff_orgnum",
"als_d15_cell_af_allnum",
"als_d15_cell_af_orgnum",
"als_d15_cell_coon_allnum",
"als_d15_cell_coon_orgnum",
"als_d15_cell_oth_allnum",
"als_d15_cell_oth_orgnum",
"als_d15_cell_bank_selfnum",
"als_d15_cell_bank_allnum",
"als_d15_cell_bank_tra_allnum",
"als_d15_cell_bank_ret_allnum",
"als_d15_cell_bank_orgnum",
"als_d15_cell_bank_tra_orgnum",
"als_d15_cell_bank_ret_orgnum",
"als_d15_cell_bank_week_allnum",
"als_d15_cell_bank_week_orgnum",
"als_d15_cell_bank_night_allnum",
"als_d15_cell_bank_night_orgnum",
"als_d15_cell_nbank_selfnum",
"als_d15_cell_nbank_allnum",
"als_d15_cell_nbank_p2p_allnum",
"als_d15_cell_nbank_mc_allnum",
"als_d15_cell_nbank_ca_allnum",
"als_d15_cell_nbank_cf_allnum",
"als_d15_cell_nbank_com_allnum",
"als_d15_cell_nbank_oth_allnum",
"als_d15_cell_nbank_nsloan_allnum",
"als_d15_cell_nbank_autofin_allnum",
"als_d15_cell_nbank_sloan_allnum",
"als_d15_cell_nbank_cons_allnum",
"als_d15_cell_nbank_finlea_allnum",
"als_d15_cell_nbank_else_allnum",
"als_d15_cell_nbank_orgnum",
"als_d15_cell_nbank_p2p_orgnum",
"als_d15_cell_nbank_mc_orgnum",
"als_d15_cell_nbank_ca_orgnum",
"als_d15_cell_nbank_cf_orgnum",
"als_d15_cell_nbank_com_orgnum",
"als_d15_cell_nbank_oth_orgnum",
"als_d15_cell_nbank_nsloan_orgnum",
"als_d15_cell_nbank_autofin_orgnum",
"als_d15_cell_nbank_sloan_orgnum",
"als_d15_cell_nbank_cons_orgnum",
"als_d15_cell_nbank_finlea_orgnum",
"als_d15_cell_nbank_else_orgnum",
"als_d15_cell_nbank_week_allnum",
"als_d15_cell_nbank_week_orgnum",
"als_d15_cell_nbank_night_allnum",
"als_d15_cell_nbank_night_orgnum",
"als_m1_id_pdl_allnum",
"als_m1_id_pdl_orgnum",
"als_m1_id_caon_allnum",
"als_m1_id_caon_orgnum",
"als_m1_id_rel_allnum",
"als_m1_id_rel_orgnum",
"als_m1_id_caoff_allnum",
"als_m1_id_caoff_orgnum",
"als_m1_id_cooff_allnum",
"als_m1_id_cooff_orgnum",
"als_m1_id_af_allnum",
"als_m1_id_af_orgnum",
"als_m1_id_coon_allnum",
"als_m1_id_coon_orgnum",
"als_m1_id_oth_allnum",
"als_m1_id_oth_orgnum",
"als_m1_id_bank_selfnum",
"als_m1_id_bank_allnum",
"als_m1_id_bank_tra_allnum",
"als_m1_id_bank_ret_allnum",
"als_m1_id_bank_orgnum",
"als_m1_id_bank_tra_orgnum",
"als_m1_id_bank_ret_orgnum",
"als_m1_id_bank_week_allnum",
"als_m1_id_bank_week_orgnum",
"als_m1_id_bank_night_allnum",
"als_m1_id_bank_night_orgnum",
"als_m1_id_nbank_selfnum",
"als_m1_id_nbank_allnum",
"als_m1_id_nbank_p2p_allnum",
"als_m1_id_nbank_mc_allnum",
"als_m1_id_nbank_ca_allnum",
"als_m1_id_nbank_cf_allnum",
"als_m1_id_nbank_com_allnum",
"als_m1_id_nbank_oth_allnum",
"als_m1_id_nbank_nsloan_allnum",
"als_m1_id_nbank_autofin_allnum",
"als_m1_id_nbank_sloan_allnum",
"als_m1_id_nbank_cons_allnum",
"als_m1_id_nbank_finlea_allnum",
"als_m1_id_nbank_else_allnum",
"als_m1_id_nbank_orgnum",
"als_m1_id_nbank_p2p_orgnum",
"als_m1_id_nbank_mc_orgnum",
"als_m1_id_nbank_ca_orgnum",
"als_m1_id_nbank_cf_orgnum",
"als_m1_id_nbank_com_orgnum",
"als_m1_id_nbank_oth_orgnum",
"als_m1_id_nbank_nsloan_orgnum",
"als_m1_id_nbank_autofin_orgnum",
"als_m1_id_nbank_sloan_orgnum",
"als_m1_id_nbank_cons_orgnum",
"als_m1_id_nbank_finlea_orgnum",
"als_m1_id_nbank_else_orgnum",
"als_m1_id_nbank_week_allnum",
"als_m1_id_nbank_week_orgnum",
"als_m1_id_nbank_night_allnum",
"als_m1_id_nbank_night_orgnum",
"als_m1_cell_pdl_allnum",
"als_m1_cell_pdl_orgnum",
"als_m1_cell_caon_allnum",
"als_m1_cell_caon_orgnum",
"als_m1_cell_rel_allnum",
"als_m1_cell_rel_orgnum",
"als_m1_cell_caoff_allnum",
"als_m1_cell_caoff_orgnum",
"als_m1_cell_cooff_allnum",
"als_m1_cell_cooff_orgnum",
"als_m1_cell_af_allnum",
"als_m1_cell_af_orgnum",
"als_m1_cell_coon_allnum",
"als_m1_cell_coon_orgnum",
"als_m1_cell_oth_allnum",
"als_m1_cell_oth_orgnum",
"als_m1_cell_bank_selfnum",
"als_m1_cell_bank_allnum",
"als_m1_cell_bank_tra_allnum",
"als_m1_cell_bank_ret_allnum",
"als_m1_cell_bank_orgnum",
"als_m1_cell_bank_tra_orgnum",
"als_m1_cell_bank_ret_orgnum",
"als_m1_cell_bank_week_allnum",
"als_m1_cell_bank_week_orgnum",
"als_m1_cell_bank_night_allnum",
"als_m1_cell_bank_night_orgnum",
"als_m1_cell_nbank_selfnum",
"als_m1_cell_nbank_allnum",
"als_m1_cell_nbank_p2p_allnum",
"als_m1_cell_nbank_mc_allnum",
"als_m1_cell_nbank_ca_allnum",
"als_m1_cell_nbank_cf_allnum",
"als_m1_cell_nbank_com_allnum",
"als_m1_cell_nbank_oth_allnum",
"als_m1_cell_nbank_nsloan_allnum",
"als_m1_cell_nbank_autofin_allnum",
"als_m1_cell_nbank_sloan_allnum",
"als_m1_cell_nbank_cons_allnum",
"als_m1_cell_nbank_finlea_allnum",
"als_m1_cell_nbank_else_allnum",
"als_m1_cell_nbank_orgnum",
"als_m1_cell_nbank_p2p_orgnum",
"als_m1_cell_nbank_mc_orgnum",
"als_m1_cell_nbank_ca_orgnum",
"als_m1_cell_nbank_cf_orgnum",
"als_m1_cell_nbank_com_orgnum",
"als_m1_cell_nbank_oth_orgnum",
"als_m1_cell_nbank_nsloan_orgnum",
"als_m1_cell_nbank_autofin_orgnum",
"als_m1_cell_nbank_sloan_orgnum",
"als_m1_cell_nbank_cons_orgnum",
"als_m1_cell_nbank_finlea_orgnum",
"als_m1_cell_nbank_else_orgnum",
"als_m1_cell_nbank_week_allnum",
"als_m1_cell_nbank_week_orgnum",
"als_m1_cell_nbank_night_allnum",
"als_m1_cell_nbank_night_orgnum",
"als_m3_id_max_inteday",
"als_m3_id_min_inteday",
"als_m3_id_tot_mons",
"als_m3_id_avg_monnum",
"als_m3_id_max_monnum",
"als_m3_id_min_monnum",
"als_m3_id_pdl_allnum",
"als_m3_id_pdl_orgnum",
"als_m3_id_caon_allnum",
"als_m3_id_caon_orgnum",
"als_m3_id_rel_allnum",
"als_m3_id_rel_orgnum",
"als_m3_id_caoff_allnum",
"als_m3_id_caoff_orgnum",
"als_m3_id_cooff_allnum",
"als_m3_id_cooff_orgnum",
"als_m3_id_af_allnum",
"als_m3_id_af_orgnum",
"als_m3_id_coon_allnum",
"als_m3_id_coon_orgnum",
"als_m3_id_oth_allnum",
"als_m3_id_oth_orgnum",
"als_m3_id_bank_selfnum",
"als_m3_id_bank_allnum",
"als_m3_id_bank_tra_allnum",
"als_m3_id_bank_ret_allnum",
"als_m3_id_bank_orgnum",
"als_m3_id_bank_tra_orgnum",
"als_m3_id_bank_ret_orgnum",
"als_m3_id_bank_tot_mons",
"als_m3_id_bank_avg_monnum",
"als_m3_id_bank_max_monnum",
"als_m3_id_bank_min_monnum",
"als_m3_id_bank_max_inteday",
"als_m3_id_bank_min_inteday",
"als_m3_id_bank_week_allnum",
"als_m3_id_bank_week_orgnum",
"als_m3_id_bank_night_allnum",
"als_m3_id_bank_night_orgnum",
"als_m3_id_nbank_selfnum",
"als_m3_id_nbank_allnum",
"als_m3_id_nbank_p2p_allnum",
"als_m3_id_nbank_mc_allnum",
"als_m3_id_nbank_ca_allnum",
"als_m3_id_nbank_cf_allnum",
"als_m3_id_nbank_com_allnum",
"als_m3_id_nbank_oth_allnum",
"als_m3_id_nbank_nsloan_allnum",
"als_m3_id_nbank_autofin_allnum",
"als_m3_id_nbank_sloan_allnum",
"als_m3_id_nbank_cons_allnum",
"als_m3_id_nbank_finlea_allnum",
"als_m3_id_nbank_else_allnum",
"als_m3_id_nbank_orgnum",
"als_m3_id_nbank_p2p_orgnum",
"als_m3_id_nbank_mc_orgnum",
"als_m3_id_nbank_ca_orgnum",
"als_m3_id_nbank_cf_orgnum",
"als_m3_id_nbank_com_orgnum",
"als_m3_id_nbank_oth_orgnum",
"als_m3_id_nbank_nsloan_orgnum",
"als_m3_id_nbank_autofin_orgnum",
"als_m3_id_nbank_sloan_orgnum",
"als_m3_id_nbank_cons_orgnum",
"als_m3_id_nbank_finlea_orgnum",
"als_m3_id_nbank_else_orgnum",
"als_m3_id_nbank_tot_mons",
"als_m3_id_nbank_avg_monnum",
"als_m3_id_nbank_max_monnum",
"als_m3_id_nbank_min_monnum",
"als_m3_id_nbank_max_inteday",
"als_m3_id_nbank_min_inteday",
"als_m3_id_nbank_week_allnum",
"als_m3_id_nbank_week_orgnum",
"als_m3_id_nbank_night_allnum",
"als_m3_id_nbank_night_orgnum",
"als_m3_cell_max_inteday",
"als_m3_cell_min_inteday",
"als_m3_cell_tot_mons",
"als_m3_cell_avg_monnum",
"als_m3_cell_max_monnum",
"als_m3_cell_min_monnum",
"als_m3_cell_pdl_allnum",
"als_m3_cell_pdl_orgnum",
"als_m3_cell_caon_allnum",
"als_m3_cell_caon_orgnum",
"als_m3_cell_rel_allnum",
"als_m3_cell_rel_orgnum",
"als_m3_cell_caoff_allnum",
"als_m3_cell_caoff_orgnum",
"als_m3_cell_cooff_allnum",
"als_m3_cell_cooff_orgnum",
"als_m3_cell_af_allnum",
"als_m3_cell_af_orgnum",
"als_m3_cell_coon_allnum",
"als_m3_cell_coon_orgnum",
"als_m3_cell_oth_allnum",
"als_m3_cell_oth_orgnum",
"als_m3_cell_bank_selfnum",
"als_m3_cell_bank_allnum",
"als_m3_cell_bank_tra_allnum",
"als_m3_cell_bank_ret_allnum",
"als_m3_cell_bank_orgnum",
"als_m3_cell_bank_tra_orgnum",
"als_m3_cell_bank_ret_orgnum",
"als_m3_cell_bank_tot_mons",
"als_m3_cell_bank_avg_monnum",
"als_m3_cell_bank_max_monnum",
"als_m3_cell_bank_min_monnum",
"als_m3_cell_bank_max_inteday",
"als_m3_cell_bank_min_inteday",
"als_m3_cell_bank_week_allnum",
"als_m3_cell_bank_week_orgnum",
"als_m3_cell_bank_night_allnum",
"als_m3_cell_bank_night_orgnum",
"als_m3_cell_nbank_selfnum",
"als_m3_cell_nbank_allnum",
"als_m3_cell_nbank_p2p_allnum",
"als_m3_cell_nbank_mc_allnum",
"als_m3_cell_nbank_ca_allnum",
"als_m3_cell_nbank_cf_allnum",
"als_m3_cell_nbank_com_allnum",
"als_m3_cell_nbank_oth_allnum",
"als_m3_cell_nbank_nsloan_allnum",
"als_m3_cell_nbank_autofin_allnum",
"als_m3_cell_nbank_sloan_allnum",
"als_m3_cell_nbank_cons_allnum",
"als_m3_cell_nbank_finlea_allnum",
"als_m3_cell_nbank_else_allnum",
"als_m3_cell_nbank_orgnum",
"als_m3_cell_nbank_p2p_orgnum",
"als_m3_cell_nbank_mc_orgnum",
"als_m3_cell_nbank_ca_orgnum",
"als_m3_cell_nbank_cf_orgnum",
"als_m3_cell_nbank_com_orgnum",
"als_m3_cell_nbank_oth_orgnum",
"als_m3_cell_nbank_nsloan_orgnum",
"als_m3_cell_nbank_autofin_orgnum",
"als_m3_cell_nbank_sloan_orgnum",
"als_m3_cell_nbank_cons_orgnum",
"als_m3_cell_nbank_finlea_orgnum",
"als_m3_cell_nbank_else_orgnum",
"als_m3_cell_nbank_tot_mons",
"als_m3_cell_nbank_avg_monnum",
"als_m3_cell_nbank_max_monnum",
"als_m3_cell_nbank_min_monnum",
"als_m3_cell_nbank_max_inteday",
"als_m3_cell_nbank_min_inteday",
"als_m3_cell_nbank_week_allnum",
"als_m3_cell_nbank_week_orgnum",
"als_m3_cell_nbank_night_allnum",
"als_m3_cell_nbank_night_orgnum",
"als_m6_id_max_inteday",
"als_m6_id_min_inteday",
"als_m6_id_tot_mons",
"als_m6_id_avg_monnum",
"als_m6_id_max_monnum",
"als_m6_id_min_monnum",
"als_m6_id_pdl_allnum",
"als_m6_id_pdl_orgnum",
"als_m6_id_caon_allnum",
"als_m6_id_caon_orgnum",
"als_m6_id_rel_allnum",
"als_m6_id_rel_orgnum",
"als_m6_id_caoff_allnum",
"als_m6_id_caoff_orgnum",
"als_m6_id_cooff_allnum",
"als_m6_id_cooff_orgnum",
"als_m6_id_af_allnum",
"als_m6_id_af_orgnum",
"als_m6_id_coon_allnum",
"als_m6_id_coon_orgnum",
"als_m6_id_oth_allnum",
"als_m6_id_oth_orgnum",
"als_m6_id_bank_selfnum",
"als_m6_id_bank_allnum",
"als_m6_id_bank_tra_allnum",
"als_m6_id_bank_ret_allnum",
"als_m6_id_bank_orgnum",
"als_m6_id_bank_tra_orgnum",
"als_m6_id_bank_ret_orgnum",
"als_m6_id_bank_tot_mons",
"als_m6_id_bank_avg_monnum",
"als_m6_id_bank_max_monnum",
"als_m6_id_bank_min_monnum",
"als_m6_id_bank_max_inteday",
"als_m6_id_bank_min_inteday",
"als_m6_id_bank_week_allnum",
"als_m6_id_bank_week_orgnum",
"als_m6_id_bank_night_allnum",
"als_m6_id_bank_night_orgnum",
"als_m6_id_nbank_selfnum",
"als_m6_id_nbank_allnum",
"als_m6_id_nbank_p2p_allnum",
"als_m6_id_nbank_mc_allnum",
"als_m6_id_nbank_ca_allnum",
"als_m6_id_nbank_cf_allnum",
"als_m6_id_nbank_com_allnum",
"als_m6_id_nbank_oth_allnum",
"als_m6_id_nbank_nsloan_allnum",
"als_m6_id_nbank_autofin_allnum",
"als_m6_id_nbank_sloan_allnum",
"als_m6_id_nbank_cons_allnum",
"als_m6_id_nbank_finlea_allnum",
"als_m6_id_nbank_else_allnum",
"als_m6_id_nbank_orgnum",
"als_m6_id_nbank_p2p_orgnum",
"als_m6_id_nbank_mc_orgnum",
"als_m6_id_nbank_ca_orgnum",
"als_m6_id_nbank_cf_orgnum",
"als_m6_id_nbank_com_orgnum",
"als_m6_id_nbank_oth_orgnum",
"als_m6_id_nbank_nsloan_orgnum",
"als_m6_id_nbank_autofin_orgnum",
"als_m6_id_nbank_sloan_orgnum",
"als_m6_id_nbank_cons_orgnum",
"als_m6_id_nbank_finlea_orgnum",
"als_m6_id_nbank_else_orgnum",
"als_m6_id_nbank_tot_mons",
"als_m6_id_nbank_avg_monnum",
"als_m6_id_nbank_max_monnum",
"als_m6_id_nbank_min_monnum",
"als_m6_id_nbank_max_inteday",
"als_m6_id_nbank_min_inteday",
"als_m6_id_nbank_week_allnum",
"als_m6_id_nbank_week_orgnum",
"als_m6_id_nbank_night_allnum",
"als_m6_id_nbank_night_orgnum",
"als_m6_cell_max_inteday",
"als_m6_cell_min_inteday",
"als_m6_cell_tot_mons",
"als_m6_cell_avg_monnum",
"als_m6_cell_max_monnum",
"als_m6_cell_min_monnum",
"als_m6_cell_pdl_allnum",
"als_m6_cell_pdl_orgnum",
"als_m6_cell_caon_allnum",
"als_m6_cell_caon_orgnum",
"als_m6_cell_rel_allnum",
"als_m6_cell_rel_orgnum",
"als_m6_cell_caoff_allnum",
"als_m6_cell_caoff_orgnum",
"als_m6_cell_cooff_allnum",
"als_m6_cell_cooff_orgnum",
"als_m6_cell_af_allnum",
"als_m6_cell_af_orgnum",
"als_m6_cell_coon_allnum",
"als_m6_cell_coon_orgnum",
"als_m6_cell_oth_allnum",
"als_m6_cell_oth_orgnum",
"als_m6_cell_bank_selfnum",
"als_m6_cell_bank_allnum",
"als_m6_cell_bank_tra_allnum",
"als_m6_cell_bank_ret_allnum",
"als_m6_cell_bank_orgnum",
"als_m6_cell_bank_tra_orgnum",
"als_m6_cell_bank_ret_orgnum",
"als_m6_cell_bank_tot_mons",
"als_m6_cell_bank_avg_monnum",
"als_m6_cell_bank_max_monnum",
"als_m6_cell_bank_min_monnum",
"als_m6_cell_bank_max_inteday",
"als_m6_cell_bank_min_inteday",
"als_m6_cell_bank_week_allnum",
"als_m6_cell_bank_week_orgnum",
"als_m6_cell_bank_night_allnum",
"als_m6_cell_bank_night_orgnum",
"als_m6_cell_nbank_selfnum",
"als_m6_cell_nbank_allnum",
"als_m6_cell_nbank_p2p_allnum",
"als_m6_cell_nbank_mc_allnum",
"als_m6_cell_nbank_ca_allnum",
"als_m6_cell_nbank_cf_allnum",
"als_m6_cell_nbank_com_allnum",
"als_m6_cell_nbank_oth_allnum",
"als_m6_cell_nbank_nsloan_allnum",
"als_m6_cell_nbank_autofin_allnum",
"als_m6_cell_nbank_sloan_allnum",
"als_m6_cell_nbank_cons_allnum",
"als_m6_cell_nbank_finlea_allnum",
"als_m6_cell_nbank_else_allnum",
"als_m6_cell_nbank_orgnum",
"als_m6_cell_nbank_p2p_orgnum",
"als_m6_cell_nbank_mc_orgnum",
"als_m6_cell_nbank_ca_orgnum",
"als_m6_cell_nbank_cf_orgnum",
"als_m6_cell_nbank_com_orgnum",
"als_m6_cell_nbank_oth_orgnum",
"als_m6_cell_nbank_nsloan_orgnum",
"als_m6_cell_nbank_autofin_orgnum",
"als_m6_cell_nbank_sloan_orgnum",
"als_m6_cell_nbank_cons_orgnum",
"als_m6_cell_nbank_finlea_orgnum",
"als_m6_cell_nbank_else_orgnum",
"als_m6_cell_nbank_tot_mons",
"als_m6_cell_nbank_avg_monnum",
"als_m6_cell_nbank_max_monnum",
"als_m6_cell_nbank_min_monnum",
"als_m6_cell_nbank_max_inteday",
"als_m6_cell_nbank_min_inteday",
"als_m6_cell_nbank_week_allnum",
"als_m6_cell_nbank_week_orgnum",
"als_m6_cell_nbank_night_allnum",
"als_m6_cell_nbank_night_orgnum",
"als_m12_id_max_inteday",
"als_m12_id_min_inteday",
"als_m12_id_tot_mons",
"als_m12_id_avg_monnum",
"als_m12_id_max_monnum",
"als_m12_id_min_monnum",
"als_m12_id_pdl_allnum",
"als_m12_id_pdl_orgnum",
"als_m12_id_caon_allnum",
"als_m12_id_caon_orgnum",
"als_m12_id_rel_allnum",
"als_m12_id_rel_orgnum",
"als_m12_id_caoff_allnum",
"als_m12_id_caoff_orgnum",
"als_m12_id_cooff_allnum",
"als_m12_id_cooff_orgnum",
"als_m12_id_af_allnum",
"als_m12_id_af_orgnum",
"als_m12_id_coon_allnum",
"als_m12_id_coon_orgnum",
"als_m12_id_oth_allnum",
"als_m12_id_oth_orgnum",
"als_m12_id_bank_selfnum",
"als_m12_id_bank_allnum",
"als_m12_id_bank_tra_allnum",
"als_m12_id_bank_ret_allnum",
"als_m12_id_bank_orgnum",
"als_m12_id_bank_tra_orgnum",
"als_m12_id_bank_ret_orgnum",
"als_m12_id_bank_tot_mons",
"als_m12_id_bank_avg_monnum",
"als_m12_id_bank_max_monnum",
"als_m12_id_bank_min_monnum",
"als_m12_id_bank_max_inteday",
"als_m12_id_bank_min_inteday",
"als_m12_id_bank_week_allnum",
"als_m12_id_bank_week_orgnum",
"als_m12_id_bank_night_allnum",
"als_m12_id_bank_night_orgnum",
"als_m12_id_nbank_selfnum",
"als_m12_id_nbank_allnum",
"als_m12_id_nbank_p2p_allnum",
"als_m12_id_nbank_mc_allnum",
"als_m12_id_nbank_ca_allnum",
"als_m12_id_nbank_cf_allnum",
"als_m12_id_nbank_com_allnum",
"als_m12_id_nbank_oth_allnum",
"als_m12_id_nbank_nsloan_allnum",
"als_m12_id_nbank_autofin_allnum",
"als_m12_id_nbank_sloan_allnum",
"als_m12_id_nbank_cons_allnum",
"als_m12_id_nbank_finlea_allnum",
"als_m12_id_nbank_else_allnum",
"als_m12_id_nbank_orgnum",
"als_m12_id_nbank_p2p_orgnum",
"als_m12_id_nbank_mc_orgnum",
"als_m12_id_nbank_ca_orgnum",
"als_m12_id_nbank_cf_orgnum",
"als_m12_id_nbank_com_orgnum",
"als_m12_id_nbank_oth_orgnum",
"als_m12_id_nbank_nsloan_orgnum",
"als_m12_id_nbank_autofin_orgnum",
"als_m12_id_nbank_sloan_orgnum",
"als_m12_id_nbank_cons_orgnum",
"als_m12_id_nbank_finlea_orgnum",
"als_m12_id_nbank_else_orgnum",
"als_m12_id_nbank_tot_mons",
"als_m12_id_nbank_avg_monnum",
"als_m12_id_nbank_max_monnum",
"als_m12_id_nbank_min_monnum",
"als_m12_id_nbank_max_inteday",
"als_m12_id_nbank_min_inteday",
"als_m12_id_nbank_week_allnum",
"als_m12_id_nbank_week_orgnum",
"als_m12_id_nbank_night_allnum",
"als_m12_id_nbank_night_orgnum",
"als_m12_cell_max_inteday",
"als_m12_cell_min_inteday",
"als_m12_cell_tot_mons",
"als_m12_cell_avg_monnum",
"als_m12_cell_max_monnum",
"als_m12_cell_min_monnum",
"als_m12_cell_pdl_allnum",
"als_m12_cell_pdl_orgnum",
"als_m12_cell_caon_allnum",
"als_m12_cell_caon_orgnum",
"als_m12_cell_rel_allnum",
"als_m12_cell_rel_orgnum",
"als_m12_cell_caoff_allnum",
"als_m12_cell_caoff_orgnum",
"als_m12_cell_cooff_allnum",
"als_m12_cell_cooff_orgnum",
"als_m12_cell_af_allnum",
"als_m12_cell_af_orgnum",
"als_m12_cell_coon_allnum",
"als_m12_cell_coon_orgnum",
"als_m12_cell_oth_allnum",
"als_m12_cell_oth_orgnum",
"als_m12_cell_bank_selfnum",
"als_m12_cell_bank_allnum",
"als_m12_cell_bank_tra_allnum",
"als_m12_cell_bank_ret_allnum",
"als_m12_cell_bank_orgnum",
"als_m12_cell_bank_tra_orgnum",
"als_m12_cell_bank_ret_orgnum",
"als_m12_cell_bank_tot_mons",
"als_m12_cell_bank_avg_monnum",
"als_m12_cell_bank_max_monnum",
"als_m12_cell_bank_min_monnum",
"als_m12_cell_bank_max_inteday",
"als_m12_cell_bank_min_inteday",
"als_m12_cell_bank_week_allnum",
"als_m12_cell_bank_week_orgnum",
"als_m12_cell_bank_night_allnum",
"als_m12_cell_bank_night_orgnum",
"als_m12_cell_nbank_selfnum",
"als_m12_cell_nbank_allnum",
"als_m12_cell_nbank_p2p_allnum",
"als_m12_cell_nbank_mc_allnum",
"als_m12_cell_nbank_ca_allnum",
"als_m12_cell_nbank_cf_allnum",
"als_m12_cell_nbank_com_allnum",
"als_m12_cell_nbank_oth_allnum",
"als_m12_cell_nbank_nsloan_allnum",
"als_m12_cell_nbank_autofin_allnum",
"als_m12_cell_nbank_sloan_allnum",
"als_m12_cell_nbank_cons_allnum",
"als_m12_cell_nbank_finlea_allnum",
"als_m12_cell_nbank_else_allnum",
"als_m12_cell_nbank_orgnum",
"als_m12_cell_nbank_p2p_orgnum",
"als_m12_cell_nbank_mc_orgnum",
"als_m12_cell_nbank_ca_orgnum",
"als_m12_cell_nbank_cf_orgnum",
"als_m12_cell_nbank_com_orgnum",
"als_m12_cell_nbank_oth_orgnum",
"als_m12_cell_nbank_nsloan_orgnum",
"als_m12_cell_nbank_autofin_orgnum",
"als_m12_cell_nbank_sloan_orgnum",
"als_m12_cell_nbank_cons_orgnum",
"als_m12_cell_nbank_finlea_orgnum",
"als_m12_cell_nbank_else_orgnum",
"als_m12_cell_nbank_tot_mons",
"als_m12_cell_nbank_avg_monnum",
"als_m12_cell_nbank_max_monnum",
"als_m12_cell_nbank_min_monnum",
"als_m12_cell_nbank_max_inteday",
"als_m12_cell_nbank_min_inteday",
"als_m12_cell_nbank_week_allnum",
"als_m12_cell_nbank_week_orgnum",
"als_m12_cell_nbank_night_allnum",
"als_m12_cell_nbank_night_orgnum",
"als_fst_id_bank_inteday",
"als_fst_id_nbank_inteday",
"als_fst_cell_bank_inteday",
"als_fst_cell_nbank_inteday",
"als_lst_id_bank_inteday",
"als_lst_id_bank_consnum",
"als_lst_id_bank_csinteday",
"als_lst_id_nbank_inteday",
"als_lst_id_nbank_consnum",
"als_lst_id_nbank_csinteday",
"als_lst_cell_bank_inteday",
"als_lst_cell_bank_consnum",
"als_lst_cell_bank_csinteday",
"als_lst_cell_nbank_inteday",
"als_lst_cell_nbank_consnum",
"als_lst_cell_nbank_csinteday"
]

0
dataRender/word2.js Normal file
View File

51
dataRender/word_list.js Normal file
View File

@@ -0,0 +1,51 @@
const keyword = [
'als',
'd7', // 近7日
'id', // 身份证号
'pdl', // 线上小额现金贷
'allnum', // 次数
'orgnum', // 机构数、
'week', // 周末
'night', // 夜间申请
'caon', // 线上现金分期
'rel', // 信用卡(类信用卡)
'caoff', // 线下现金分期
'cooff', // 线下消费分期
'af', // 汽车金融
'coon', // 线上消费分期
'oth', // 申请其他
'bank', // 银行机构
'selfnum', // 本银行机构
'tra', // 传统银行
'ret', // 网络银行
'nbank', // 非银行机构
'p2p', // 改制机构
'mc', // 小贷机构
'ca', // 现金类分期机构
'cf', // 消费类分期机构
'com', // 代偿类分期机构
'nsloan', // 持牌网络小贷
'autofin', // 持牌汽车金融机构
'sloan', // 持牌小贷机构
'cons', // 持牌消费金融机构
'finlea', // 持牌融资租赁机构
'else', // 其他申请
'cell', // 10 按手机号查询,
'd15', // 近 15 天申
'm1', // 近 1 个月
'm3', // 3 个月
'max', // 最大
'inteday', // 间隔天数
'min', // 最小
'tot', // 申请记录
'mons', // 月份数
'avg', // 平均
'monnum', // 最大月
'm6', // 6 个月
'm12', // 12个月
'fst', // 最早
'lst', // 最近
'consnum', // 连续申请
'csinteday', // 连续申请持续天数
]
console.log(keyword)

View File

@@ -0,0 +1,65 @@
{
"msg": "查询成功",
"code": "0000",
"orderNo": "20241028112921367340619",
"data": {
"total": 1,
"datalist": [
{
"orgName": "海南省学宇思网络科技有限公司",
"pName": "刘福思",
"stockHolderItem": {
"orgHolderType": "自然人",
"investDate": "",
"investRate": "40%",
"subscriptAmt": "40.000000",
"orgHolderName": "刘福思"
},
"relationship": [
"lp",
"sh",
"tm"
],
"fsource": "",
"basicInfo": {
"regStatus": "存续",
"regCapital": "100.0000万人民币",
"reccap": 0,
"city": "海口市",
"industry_code": "I",
"industry": "互联网和相关服务",
"type": "1",
"staffList": {
"result": [
{
"name": "刘福思",
"type": "2",
"typeJoin": [
"执行董事兼总经理"
]
}
]
},
"nic_code": "I64",
"legalPersonName": "刘福思",
"regNumber": "460108011261916",
"creditCode": "91460108MADNY3F43W",
"province": "海南省",
"regorg": "海南省市场监督管理局",
"companyOrgType": "有限责任公司(自然人投资或控股)",
"revdate": "",
"estiblishTime": "2024-06-20",
"opscope": "一般经营项目品牌管理5G通信技术服务人工智能应用软件开发互联网安全服务量子计算技术服务技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广网络技术服务专业设计服务互联网数据服务互联网销售除销售需要许可的商品食品互联网销售仅销售预包装食品软件开发动漫游戏开发计算机软硬件及辅助设备零售计算机软硬件及辅助设备批发计算器设备销售机械设备销售五金产品零售五金产品批发电子产品销售人工智能硬件销售通信设备销售光通信设备销售通信设备制造信息系统集成服务图文设计制作广告设计、代理广告发布数字内容制作服务不含出版发行数字文化创意软件开发软件销售市场营销策划企业管理咨询信息咨询服务不含许可类信息咨询服务市场调查不含涉外调查工业设计服务玩具销售化妆品零售化妆品批发摄像及视频制作服务平面设计法律咨询不含依法须律师事务所执业许可的业务旅游开发项目策划咨询体育用品及器材批发体育用品及器材零售户外用品销售体育赛事策划体育健康服务组织体育表演活动体育中介代理服务信息技术咨询服务数据处理服务数据处理和存储支持服务大数据服务云计算装备技术服务电子、机械设备维护不含特种设备智能机器人的研发经营范围中的一般经营项目依法自主开展经营活动通过国家企业信用信息公示系统海南向社会公示许可经营项目食品进出口货物进出口技术进出口在线数据处理与交易处理业务经营类电子商务互联网游戏服务第二类增值电信业务互联网信息服务许可经营项目凭许可证件经营",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "信息传输、软件和信息技术服务业-互联网和相关服务",
"candate": "",
"district": "秀英区",
"name": "海南省学宇思网络科技有限公司",
"base": "han",
"apprdate": "2024-09-14"
}
}
]
}
}

View File

@@ -0,0 +1,646 @@
{
"msg": "查询成功",
"code": "0000",
"orderNo": "20241113191941335900073",
"data": {
"total": 8,
"datalist": [
{
"executedPerson": [
{
"caseCode": "2014城中执字第00062号",
"partyCardNum": "45252819740****3016",
"pname": "李强",
"caseCreateTime": "2014-02-11",
"execCourtName": "",
"execMoney": 220605
}
],
"dishonestExecutedPerson": [
{
"businessentity": "",
"areaname": "广西",
"courtname": "柳州市城中区人民法院",
"unperformPart": "",
"type": "0",
"performedPart": "",
"iname": "李强",
"disrupttypename": "其他有履行能力而拒不履行生效法律文书确定义务",
"casecode": "2014城中执字第00062号",
"cardnum": "4525281974****3016",
"performance": "全部未履行",
"regdate": "2014-02-11",
"duty": "中国农业银行股份有限公司柳州城中支行申请执行李强220604.73元",
"gistunit": "柳州市城中区人民法院",
"publishdate": "2014-06-19",
"gistid": "2010城中民二初字第480号民事判决书"
}
],
"orgName": "广西鼎铭房地产开发有限公司",
"pName": "李强",
"stockHolderItem": {
"orgHolderType": "自然人",
"investDate": "",
"investRate": "10.0%",
"subscriptAmt": 100,
"orgHolderName": "李强"
},
"relationship": [
"sh",
"lp",
"tm"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销,未注销",
"regCapital": "1000.000000万人民币",
"reccap": 0,
"city": "",
"industry_code": "K",
"industry": "房地产业",
"type": "1",
"nic_code": "K7010",
"staffList": {
"result": [
{
"name": "李强",
"type": "2",
"typeJoin": [
"监事"
]
}
]
},
"legalPersonName": "李强",
"regNumber": "450000200012318",
"creditCode": "91450100742080353R",
"province": "广西壮族自治区",
"regorg": "南宁市市场监督管理局高新技术产业开发区分局",
"companyOrgType": "有限责任公司(自然人投资或控股)",
"revdate": "2016-03-19",
"estiblishTime": "2002-10-16",
"opscope": "房地产开发经营(取得相应资质后方可在其资质等级核定范围内从事房地产开发经营活动);建筑材料、装饰材料、农副土特产品、日用百货、五金交电、汽车零配件的购销;计算机销售及维修。",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "房地产业-房地产业-房地产开发经营-房地产开发经营",
"candate": "",
"district": "",
"name": "广西鼎铭房地产开发有限公司",
"base": "gx",
"apprdate": "2016-03-19"
},
"adminPenalty": [
{
"departmentName": "南宁市工商行政管理局高新技术产业开发区分局",
"reason": "公司成立后无正当理由超过6个月未开业的或者开业后自行停业连续6个月以上",
"punishNumber": "南工商高新处字2016500010024号",
"type": "",
"content": "",
"decisionDate": "2016-03-19",
"legalPersonName": "李强"
},
{
"departmentName": "45011101",
"reason": "南宁恒发网络科技有限公司等3177户企业未依法进行企业信息网上年报公示。经我分局执法人员在以上企业的执照注册住所检查发现上述企业已不在其注册住所经营或办公根据企业注册登记时所留电话也联系不上上述企业。",
"punishNumber": "南工商高新处字2016500010024号",
"type": "吊销执照(登记证)",
"content": "-",
"decisionDate": "2016-03-19",
"legalPersonName": "李强"
}
]
},
{
"executedPerson": [
{
"caseCode": "2010青执字第01000号",
"partyCardNum": "452528********3012",
"pname": "李健",
"caseCreateTime": "2010-09-06",
"execCourtName": "",
"execMoney": 283845
},
{
"caseCode": "2010青执字第00188号",
"partyCardNum": "45252819691****3012",
"pname": "李健",
"caseCreateTime": "2010-02-08",
"execCourtName": "",
"execMoney": 308464
}
],
"orgName": "南宁市铭鼎商贸有限公司",
"pName": "李强",
"stockHolderItem": {
"orgHolderType": "自然人",
"investDate": "",
"investRate": "20.0%",
"subscriptAmt": 20,
"orgHolderName": "李强"
},
"relationship": [
"sh"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销,未注销",
"regCapital": "100.000000万人民币",
"reccap": 0,
"city": "南宁市",
"industry_code": "F",
"industry": "零售业",
"type": "1",
"nic_code": "F5211",
"legalPersonName": "李健",
"regNumber": "4501002508737",
"creditCode": "91450107MA5KK3PU6A",
"province": "广西壮族自治区",
"regorg": "南宁市西乡塘区市场监督管理局",
"companyOrgType": "有限责任公司(自然人投资或控股)",
"revdate": "2016-05-28",
"estiblishTime": "2004-07-02",
"opscope": "窗帘布艺,家居用品,装饰材料(危险化学品除外),日用百货,服装,纺织品。",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "批发和零售业-零售业-综合零售-百货零售",
"candate": "",
"district": "",
"name": "南宁市铭鼎商贸有限公司",
"base": "gx",
"apprdate": "2016-05-28"
}
},
{
"executedPerson": [
{
"caseCode": "2014城中执字第00062号",
"partyCardNum": "45252819740****3016",
"pname": "李强",
"caseCreateTime": "2014-02-11",
"execCourtName": "",
"execMoney": 220605
}
],
"dishonestExecutedPerson": [
{
"businessentity": "",
"areaname": "广西",
"courtname": "柳州市城中区人民法院",
"unperformPart": "",
"type": "0",
"performedPart": "",
"iname": "李强",
"disrupttypename": "其他有履行能力而拒不履行生效法律文书确定义务",
"casecode": "2014城中执字第00062号",
"cardnum": "4525281974****3016",
"performance": "全部未履行",
"regdate": "2014-02-11",
"duty": "中国农业银行股份有限公司柳州城中支行申请执行李强220604.73元",
"gistunit": "柳州市城中区人民法院",
"publishdate": "2014-06-19",
"gistid": "2010城中民二初字第480号民事判决书"
}
],
"orgName": "广西鼎铭房地产置换服务有限公司南宁分公司",
"pName": "李强",
"relationship": [
"lp",
"tm",
"his_tm"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销,未注销",
"regCapital": "5.0万人民币",
"reccap": 0,
"city": "南宁市",
"industry_code": "K",
"industry": "房地产业",
"type": "1",
"nic_code": "K7030",
"staffList": {
"result": [
{
"name": "李强",
"type": "2",
"typeJoin": [
""
]
}
]
},
"legalPersonName": "李强",
"regNumber": "4501001005198",
"creditCode": "",
"province": "广西壮族自治区",
"his_staffList": {
"result": [
{
"name": "李强",
"type": "2",
"typeJoin": [
""
]
}
]
},
"regorg": "南宁市青秀区市场监督管理局",
"companyOrgType": "有限责任公司分公司(自然人投资或控股)",
"revdate": "2018-06-25",
"estiblishTime": "2002-01-28",
"opscope": "房地产信息咨询服务,房地产交易居间、代理、行纪;商品信息咨询(不含期货、金融、保险、证券等国家专项规定),商品交易居间、代理、行纪。",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "房地产业-房地产业-房地产中介服务-房地产中介服务",
"candate": "",
"district": "青秀区",
"name": "广西鼎铭房地产置换服务有限公司南宁分公司",
"base": "gx",
"apprdate": "2018-06-25"
}
},
{
"executedPerson": [
{
"caseCode": "2014城中执字第00062号",
"partyCardNum": "45252819740****3016",
"pname": "李强",
"caseCreateTime": "2014-02-11",
"execCourtName": "",
"execMoney": 220605
}
],
"dishonestExecutedPerson": [
{
"businessentity": "",
"areaname": "广西",
"courtname": "柳州市城中区人民法院",
"unperformPart": "",
"type": "0",
"performedPart": "",
"iname": "李强",
"disrupttypename": "其他有履行能力而拒不履行生效法律文书确定义务",
"casecode": "2014城中执字第00062号",
"cardnum": "4525281974****3016",
"performance": "全部未履行",
"regdate": "2014-02-11",
"duty": "中国农业银行股份有限公司柳州城中支行申请执行李强220604.73元",
"gistunit": "柳州市城中区人民法院",
"publishdate": "2014-06-19",
"gistid": "2010城中民二初字第480号民事判决书"
}
],
"orgName": "深圳市亿讯时空信息技术有限公司北京分公司",
"pName": "李强",
"relationship": [
"lp",
"tm"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销",
"regCapital": "",
"reccap": 0,
"city": "北京市",
"industry_code": "I",
"industry": "软件和信息技术服务业",
"type": "1",
"nic_code": "I659",
"staffList": {
"result": [
{
"name": "李强",
"type": "2",
"typeJoin": [
"负责人"
]
}
]
},
"legalPersonName": "李强",
"regNumber": "1101081949120",
"creditCode": "91110108MA0464P97H",
"province": "北京市",
"regorg": "北京市工商行政管理局海淀分局",
"companyOrgType": "其他有限责任公司分公司",
"revdate": "2010-11-25",
"estiblishTime": "2006-04-13",
"opscope": "计算机软件和系统集成及辅助设备;网络工程;通讯设备的技术开发、咨询;广告设计。",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "信息传输、软件和信息技术服务业-软件和信息技术服务业-其他信息技术服务业",
"candate": "",
"district": "海淀区",
"name": "深圳市亿讯时空信息技术有限公司北京分公司",
"base": "bj",
"apprdate": "2006-04-13"
},
"adminPenalty": [
{
"departmentName": "海淀分局",
"reason": "",
"punishNumber": "京工商海处字2010第D2389号",
"type": "逾期年检",
"content": "",
"decisionDate": "2010-08-23",
"legalPersonName": "李强"
}
]
},
{
"executedPerson": [
{
"caseCode": "2014城中执字第00062号",
"partyCardNum": "45252819740****3016",
"pname": "李强",
"caseCreateTime": "2014-02-11",
"execCourtName": "",
"execMoney": 220605
},
{
"caseCode": "2010青执字第00198号",
"partyCardNum": "36042819721****0037",
"pname": "秦学文",
"caseCreateTime": "2010-02-08",
"execCourtName": "",
"execMoney": 444028
}
],
"dishonestExecutedPerson": [
{
"businessentity": "",
"areaname": "广西",
"courtname": "柳州市城中区人民法院",
"unperformPart": "",
"type": "0",
"performedPart": "",
"iname": "李强",
"disrupttypename": "其他有履行能力而拒不履行生效法律文书确定义务",
"casecode": "2014城中执字第00062号",
"cardnum": "4525281974****3016",
"performance": "全部未履行",
"regdate": "2014-02-11",
"duty": "中国农业银行股份有限公司柳州城中支行申请执行李强220604.73元",
"gistunit": "柳州市城中区人民法院",
"publishdate": "2014-06-19",
"gistid": "2010城中民二初字第480号民事判决书"
}
],
"orgName": "深圳市亿讯时空信息技术有限公司",
"pName": "李强",
"stockHolderItem": {
"orgHolderType": "自然人",
"investDate": "",
"investRate": "17.0%",
"subscriptAmt": 170,
"orgHolderName": "李强"
},
"relationship": [
"sh",
"tm"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销,未注销",
"regCapital": "1000.000000万人民币",
"reccap": 0,
"city": "深圳市",
"industry_code": "M",
"industry": "科技推广和应用服务业",
"type": "1",
"nic_code": "M7590",
"staffList": {
"result": [
{
"name": "李强",
"type": "2",
"typeJoin": [
"董事,总经理"
]
}
]
},
"legalPersonName": "李铭",
"regNumber": "440301103603769",
"creditCode": "91440300786556245H",
"province": "广东省",
"regorg": "福田局",
"companyOrgType": "有限责任公司",
"revdate": "2020-04-07",
"estiblishTime": "2006-03-23",
"opscope": "一般经营项目是:计算机软件和系统集成及辅助设备、网络工程、通讯设备的技术开发、咨询、销售,国内贸易(不含专营、专控、专卖商品),从事货物、技术进出口业务(不含分销、国家专营专控商品);广告业务。,许可经营项目是:",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "科学研究和技术服务业-科技推广和应用服务业-其他科技推广服务业-其他科技推广服务业",
"candate": "2020-04-07",
"district": "福田区",
"name": "深圳市亿讯时空信息技术有限公司",
"base": "gd",
"apprdate": "2008-09-04"
}
},
{
"executedPerson": [
{
"caseCode": "2010青执字第01000号",
"partyCardNum": "452528********3012",
"pname": "李健",
"caseCreateTime": "2010-09-06",
"execCourtName": "",
"execMoney": 283845
},
{
"caseCode": "2010青执字第00188号",
"partyCardNum": "45252819691****3012",
"pname": "李健",
"caseCreateTime": "2010-02-08",
"execCourtName": "",
"execMoney": 308464
}
],
"orgName": "南宁市豆花香食品有限公司",
"pName": "李强",
"stockHolderItem": {
"orgHolderType": "自然人",
"investDate": "2003-08-06",
"investRate": "50.0%",
"subscriptAmt": 25,
"orgHolderName": "李强"
},
"relationship": [
"sh"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销,未注销",
"regCapital": "50万元人民币",
"reccap": 0,
"city": "南宁市",
"industry_code": "F",
"industry": "零售业",
"type": "1",
"nic_code": "F5227",
"legalPersonName": "李健",
"regNumber": "4501002505675",
"creditCode": "91450100MA5KJ83P3J",
"province": "广西壮族自治区",
"regorg": "南宁市行政审批局",
"companyOrgType": "有限责任公司(自然人投资或控股)",
"revdate": "2007-02-08",
"estiblishTime": "2003-08-06",
"opscope": "豆制品的生产及销售;农副土特产品,日用百货,五金交电的销售。",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "批发和零售业-零售业-食品、饮料及烟草制品专门零售-烟草制品零售",
"candate": "",
"district": "",
"name": "南宁市豆花香食品有限公司",
"base": "gx",
"apprdate": "2004-06-30"
}
},
{
"executedPerson": [
{
"caseCode": "2010青执字第01000号",
"partyCardNum": "452528********3012",
"pname": "李健",
"caseCreateTime": "2010-09-06",
"execCourtName": "",
"execMoney": 283845
},
{
"caseCode": "2010青执字第00188号",
"partyCardNum": "45252819691****3012",
"pname": "李健",
"caseCreateTime": "2010-02-08",
"execCourtName": "",
"execMoney": 308464
},
{
"caseCode": "2014城中执字第00062号",
"partyCardNum": "45252819740****3016",
"pname": "李强",
"caseCreateTime": "2014-02-11",
"execCourtName": "",
"execMoney": 220605
}
],
"dishonestExecutedPerson": [
{
"businessentity": "",
"areaname": "广西",
"courtname": "柳州市城中区人民法院",
"unperformPart": "",
"type": "0",
"performedPart": "",
"iname": "李强",
"disrupttypename": "其他有履行能力而拒不履行生效法律文书确定义务",
"casecode": "2014城中执字第00062号",
"cardnum": "4525281974****3016",
"performance": "全部未履行",
"regdate": "2014-02-11",
"duty": "中国农业银行股份有限公司柳州城中支行申请执行李强220604.73元",
"gistunit": "柳州市城中区人民法院",
"publishdate": "2014-06-19",
"gistid": "2010城中民二初字第480号民事判决书"
}
],
"orgName": "广西鼎铭房地产置换服务有限公司",
"pName": "李强",
"stockHolderItem": {
"orgHolderType": "自然人",
"investDate": "",
"investRate": "10.87%",
"subscriptAmt": 50,
"orgHolderName": "李强"
},
"relationship": [
"sh",
"tm"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销,未注销",
"regCapital": "250万元人民币",
"reccap": 200,
"city": "柳州市",
"industry_code": "I",
"industry": "软件和信息技术服务业",
"type": "1",
"nic_code": "I6513",
"staffList": {
"result": [
{
"name": "李强",
"type": "2",
"typeJoin": [
"监事"
]
}
]
},
"legalPersonName": "李健",
"regNumber": "4502002501968",
"creditCode": "91450200MA5KPNEG3T",
"province": "广西壮族自治区",
"regorg": "柳州市市场监督管理局",
"companyOrgType": "有限责任公司(自然人投资或控股)",
"revdate": "2009-01-04",
"estiblishTime": "2001-04-11",
"opscope": "连锁经营:房地产信息咨询服务,房地产交易居间、代理、行纪;商品信息咨询(不含期货、金融、保险、证券等国家专项规定),商品交易居间、代理、行纪。",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "信息传输、软件和信息技术服务业-软件和信息技术服务业-软件开发-应用软件开发",
"candate": "",
"district": "",
"name": "广西鼎铭房地产置换服务有限公司",
"base": "gx",
"apprdate": "2005-09-26"
}
},
{
"orgName": "广西鼎铭装饰工程有限公司",
"pName": "李强",
"stockHolderItem": {
"orgHolderType": "自然人",
"investDate": "",
"investRate": "5.26%",
"subscriptAmt": 30,
"orgHolderName": "李强"
},
"relationship": [
"sh"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销,未注销",
"regCapital": "300万元人民币",
"reccap": 0,
"city": "南宁市",
"industry_code": "E",
"industry": "建筑装饰、装修和其他建筑业",
"type": "1",
"nic_code": "E5011",
"legalPersonName": "李健",
"regNumber": "4500002501464",
"creditCode": "914500007479525012",
"province": "广西壮族自治区",
"regorg": "广西壮族自治区市场监督管理局",
"companyOrgType": "有限责任公司(自然人投资或控股)",
"revdate": "2007-09-14",
"estiblishTime": "2003-02-27",
"opscope": "建筑装修装饰工程专业承包(暂定)叁级;五金交电、日用百货、建筑材料、装饰材料、机电产品、汽车配件、摩托车配件的购销。",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "建筑业-建筑装饰、装修和其他建筑业-建筑装饰和装修业-公共建筑装饰和装修",
"candate": "",
"district": "",
"name": "广西鼎铭装饰工程有限公司",
"base": "gx",
"apprdate": "2005-03-10"
}
}
]
}
}

View File

@@ -0,0 +1,150 @@
{
"msg": "查询成功",
"code": "0000",
"orderNo": "20241113214538120270654",
"data": {
"total": 4,
"datalist": [
{
"orgName": "厦门市湖里区肖山泗建材店",
"pName": "李金桂",
"relationship": [
"lp"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销,未注销",
"regCapital": "",
"reccap": 0,
"city": "厦门市",
"industry_code": "F",
"industry": "批发业",
"type": "1",
"nic_code": "F516",
"legalPersonName": "李金桂",
"regNumber": "350206800393889",
"creditCode": "92350206MA3212DY6N",
"province": "福建省",
"regorg": "厦门市湖里区市场监督管理局",
"companyOrgType": "个体",
"revdate": "2024-09-06",
"estiblishTime": "2018-08-21",
"opscope": "",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "批发和零售业-批发业-矿产品、建材及化工产品批发",
"candate": "",
"district": "湖里区",
"name": "厦门市湖里区肖山泗建材店",
"base": "fj",
"apprdate": "2018-08-21"
}
},
{
"orgName": "南安市仑苍巢李水暖配件店",
"pName": "李金桂",
"relationship": [
"lp"
],
"fsource": "1",
"basicInfo": {
"regStatus": "存续(在营、开业、在册)",
"regCapital": "",
"reccap": 0,
"city": "泉州市",
"industry_code": "F",
"industry": "零售业",
"type": "1",
"nic_code": "F5281",
"legalPersonName": "李金桂",
"regNumber": "350583601550067",
"creditCode": "92350583MA34MA8K8Y",
"province": "福建省",
"regorg": "福建省南安市市场监督管理局",
"companyOrgType": "个体",
"revdate": "",
"estiblishTime": "2020-09-08",
"opscope": "",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "批发和零售业-零售业-五金、家具及室内装饰材料专门零售-五金零售",
"candate": "",
"district": "南安市",
"name": "南安市仑苍巢李水暖配件店",
"base": "fj",
"apprdate": "2021-03-22"
}
},
{
"orgName": "厦门市湖里区苑熙照建材店",
"pName": "李金桂",
"relationship": [
"lp"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销,未注销",
"regCapital": "",
"reccap": 0,
"city": "厦门市",
"industry_code": "F",
"industry": "零售业",
"type": "1",
"nic_code": "F528",
"legalPersonName": "李金桂",
"regNumber": "350206800392843",
"creditCode": "92350206MA320UEM5W",
"province": "福建省",
"regorg": "厦门市湖里区市场监督管理局",
"companyOrgType": "个体",
"revdate": "2024-09-06",
"estiblishTime": "2018-08-17",
"opscope": "",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "批发和零售业-零售业-五金、家具及室内装饰材料专门零售",
"candate": "",
"district": "湖里区",
"name": "厦门市湖里区苑熙照建材店",
"base": "fj",
"apprdate": "2018-08-17"
}
},
{
"orgName": "厦门市湖里区镜永捷亦服饰店",
"pName": "李金桂",
"relationship": [
"lp"
],
"fsource": "1",
"basicInfo": {
"regStatus": "吊销,未注销",
"regCapital": "",
"reccap": 0,
"city": "厦门市",
"industry_code": "F",
"industry": "零售业",
"type": "1",
"nic_code": "F523",
"legalPersonName": "李金桂",
"regNumber": "350206800389905",
"creditCode": "92350206MA320JJ58B",
"province": "福建省",
"regorg": "厦门市湖里区市场监督管理局",
"companyOrgType": "个体",
"revdate": "2024-09-06",
"estiblishTime": "2018-08-15",
"opscope": "",
"reccapcur": "人民币",
"regCapitalCurrency": "人民币",
"nic_name": "批发和零售业-零售业-纺织、服装及日用品专门零售",
"candate": "",
"district": "湖里区",
"name": "厦门市湖里区镜永捷亦服饰店",
"base": "fj",
"apprdate": "2018-08-15"
}
}
]
}
}

View File

@@ -0,0 +1,154 @@
{
"als_fst_cell_nbank_inteday": "290",
"als_fst_id_nbank_inteday": "138",
"als_lst_cell_nbank_consnum": "1",
"als_lst_cell_nbank_csinteday": "1",
"als_lst_cell_nbank_inteday": "33",
"als_lst_id_nbank_consnum": "1",
"als_lst_id_nbank_csinteday": "1",
"als_lst_id_nbank_inteday": "94",
"als_m12_cell_avg_monnum": "1.20",
"als_m12_cell_caon_allnum": "2",
"als_m12_cell_caon_orgnum": "1",
"als_m12_cell_max_inteday": "128",
"als_m12_cell_max_monnum": "2",
"als_m12_cell_min_inteday": "14",
"als_m12_cell_min_monnum": "0",
"als_m12_cell_nbank_allnum": "6",
"als_m12_cell_nbank_avg_monnum": "1.20",
"als_m12_cell_nbank_ca_allnum": "2",
"als_m12_cell_nbank_ca_orgnum": "1",
"als_m12_cell_nbank_cf_allnum": "4",
"als_m12_cell_nbank_cf_orgnum": "1",
"als_m12_cell_nbank_max_inteday": "128",
"als_m12_cell_nbank_max_monnum": "2",
"als_m12_cell_nbank_min_inteday": "14",
"als_m12_cell_nbank_min_monnum": "0",
"als_m12_cell_nbank_night_allnum": "1",
"als_m12_cell_nbank_night_orgnum": "1",
"als_m12_cell_nbank_orgnum": "2",
"als_m12_cell_nbank_selfnum": "0",
"als_m12_cell_nbank_sloan_allnum": "6",
"als_m12_cell_nbank_sloan_orgnum": "2",
"als_m12_cell_nbank_tot_mons": "5",
"als_m12_cell_nbank_week_allnum": "2",
"als_m12_cell_nbank_week_orgnum": "2",
"als_m12_cell_rel_allnum": "4",
"als_m12_cell_rel_orgnum": "1",
"als_m12_cell_tot_mons": "5",
"als_m12_id_avg_monnum": "1.00",
"als_m12_id_caon_allnum": "2",
"als_m12_id_caon_orgnum": "2",
"als_m12_id_max_inteday": "44",
"als_m12_id_max_monnum": "1",
"als_m12_id_min_inteday": "44",
"als_m12_id_min_monnum": "0",
"als_m12_id_nbank_allnum": "2",
"als_m12_id_nbank_avg_monnum": "1.00",
"als_m12_id_nbank_ca_allnum": "1",
"als_m12_id_nbank_ca_orgnum": "1",
"als_m12_id_nbank_max_inteday": "44",
"als_m12_id_nbank_max_monnum": "1",
"als_m12_id_nbank_min_inteday": "44",
"als_m12_id_nbank_min_monnum": "0",
"als_m12_id_nbank_night_allnum": "0",
"als_m12_id_nbank_night_orgnum": "0",
"als_m12_id_nbank_nsloan_allnum": "1",
"als_m12_id_nbank_nsloan_orgnum": "1",
"als_m12_id_nbank_orgnum": "2",
"als_m12_id_nbank_oth_allnum": "1",
"als_m12_id_nbank_oth_orgnum": "1",
"als_m12_id_nbank_selfnum": "0",
"als_m12_id_nbank_sloan_allnum": "1",
"als_m12_id_nbank_sloan_orgnum": "1",
"als_m12_id_nbank_tot_mons": "2",
"als_m12_id_nbank_week_allnum": "0",
"als_m12_id_nbank_week_orgnum": "0",
"als_m12_id_tot_mons": "2",
"als_m3_cell_avg_monnum": "1.00",
"als_m3_cell_max_inteday": "31",
"als_m3_cell_max_monnum": "1",
"als_m3_cell_min_inteday": "31",
"als_m3_cell_min_monnum": "0",
"als_m3_cell_nbank_allnum": "2",
"als_m3_cell_nbank_avg_monnum": "1.00",
"als_m3_cell_nbank_cf_allnum": "2",
"als_m3_cell_nbank_cf_orgnum": "1",
"als_m3_cell_nbank_max_inteday": "31",
"als_m3_cell_nbank_max_monnum": "1",
"als_m3_cell_nbank_min_inteday": "31",
"als_m3_cell_nbank_min_monnum": "0",
"als_m3_cell_nbank_night_allnum": "1",
"als_m3_cell_nbank_night_orgnum": "1",
"als_m3_cell_nbank_orgnum": "1",
"als_m3_cell_nbank_selfnum": "0",
"als_m3_cell_nbank_sloan_allnum": "2",
"als_m3_cell_nbank_sloan_orgnum": "1",
"als_m3_cell_nbank_tot_mons": "2",
"als_m3_cell_nbank_week_allnum": "1",
"als_m3_cell_nbank_week_orgnum": "1",
"als_m3_cell_rel_allnum": "2",
"als_m3_cell_rel_orgnum": "1",
"als_m3_cell_tot_mons": "2",
"als_m6_cell_avg_monnum": "1.00",
"als_m6_cell_caon_allnum": "2",
"als_m6_cell_caon_orgnum": "1",
"als_m6_cell_max_inteday": "46",
"als_m6_cell_max_monnum": "1",
"als_m6_cell_min_inteday": "31",
"als_m6_cell_min_monnum": "0",
"als_m6_cell_nbank_allnum": "4",
"als_m6_cell_nbank_avg_monnum": "1.00",
"als_m6_cell_nbank_ca_allnum": "2",
"als_m6_cell_nbank_ca_orgnum": "1",
"als_m6_cell_nbank_cf_allnum": "2",
"als_m6_cell_nbank_cf_orgnum": "1",
"als_m6_cell_nbank_max_inteday": "46",
"als_m6_cell_nbank_max_monnum": "1",
"als_m6_cell_nbank_min_inteday": "31",
"als_m6_cell_nbank_min_monnum": "0",
"als_m6_cell_nbank_night_allnum": "1",
"als_m6_cell_nbank_night_orgnum": "1",
"als_m6_cell_nbank_orgnum": "2",
"als_m6_cell_nbank_selfnum": "0",
"als_m6_cell_nbank_sloan_allnum": "4",
"als_m6_cell_nbank_sloan_orgnum": "2",
"als_m6_cell_nbank_tot_mons": "4",
"als_m6_cell_nbank_week_allnum": "2",
"als_m6_cell_nbank_week_orgnum": "2",
"als_m6_cell_rel_allnum": "2",
"als_m6_cell_rel_orgnum": "1",
"als_m6_cell_tot_mons": "4",
"als_m6_id_avg_monnum": "1.00",
"als_m6_id_caon_allnum": "2",
"als_m6_id_caon_orgnum": "2",
"als_m6_id_max_inteday": "44",
"als_m6_id_max_monnum": "1",
"als_m6_id_min_inteday": "44",
"als_m6_id_min_monnum": "0",
"als_m6_id_nbank_allnum": "2",
"als_m6_id_nbank_avg_monnum": "1.00",
"als_m6_id_nbank_ca_allnum": "1",
"als_m6_id_nbank_ca_orgnum": "1",
"als_m6_id_nbank_max_inteday": "44",
"als_m6_id_nbank_max_monnum": "1",
"als_m6_id_nbank_min_inteday": "44",
"als_m6_id_nbank_min_monnum": "0",
"als_m6_id_nbank_night_allnum": "0",
"als_m6_id_nbank_night_orgnum": "0",
"als_m6_id_nbank_nsloan_allnum": "1",
"als_m6_id_nbank_nsloan_orgnum": "1",
"als_m6_id_nbank_orgnum": "2",
"als_m6_id_nbank_oth_allnum": "1",
"als_m6_id_nbank_oth_orgnum": "1",
"als_m6_id_nbank_selfnum": "0",
"als_m6_id_nbank_sloan_allnum": "1",
"als_m6_id_nbank_sloan_orgnum": "1",
"als_m6_id_nbank_tot_mons": "2",
"als_m6_id_nbank_week_allnum": "0",
"als_m6_id_nbank_week_orgnum": "0",
"als_m6_id_tot_mons": "2",
"code": "00",
"flag_applyloanstr": "1",
"flag_datastrategy": "1"
}

View File

@@ -0,0 +1,133 @@
{
"code": "00",
"data": {
"tl_id_t11_nbank_org": "1",
"tl_id_m6_nbank_passnum": "2",
"tl_cell_t2_nbank_lendamt": "10",
"tl_cell_t5_nbank_org": "1",
"tl_id_t5_nbank_num": "1",
"tl_id_t0_nbank_org": "1",
"tl_cell_t9_nbank_num": "1",
"tl_id_t7_nbank_org": "1",
"tl_id_m1_nbank_passlendamt": "5",
"tl_cell_m9_nbank_passnum": "2",
"flag_datastrategy": "1",
"tl_cell_m6_nbank_passorg": "1",
"tl_cell_m1_nbank_passorg": "1",
"tl_id_m12_nbank_passorg": "1",
"tl_id_m3_nbank_passnum": "1",
"DataStrategy": {
"strategy_version": "1.0",
"product_type": "",
"strategy_id": "DTA_BR0008250",
"product_name": "预置_借贷行为验证",
"scene": "lend"
},
"tl_id_t6_nbank_lendamt": "9",
"tl_id_t6_nbank_org": "1",
"tl_cell_m12_nbank_passlendamt": "18",
"tl_cell_m3_nbank_passlendamt": "9",
"tl_cell_t7_nbank_lendamt": "9",
"tl_cell_m12_nbank_passnum": "2",
"tl_cell_t2_nbank_num": "2",
"tl_cell_t6_nbank_org": "1",
"tl_cell_t11_nbank_num": "1",
"tl_id_m3_nbank_passlendamt": "9",
"tl_cell_m6_nbank_passnum": "2",
"tl_id_t7_nbank_lendamt": "9",
"tl_cell_t11_nbank_org": "1",
"tl_id_m3_nbank_passorg": "1",
"tl_cell_t8_nbank_num": "1",
"tl_id_t6_nbank_num": "1",
"tl_cell_m12_nbank_passorg": "1",
"tl_id_t6_nbank_reamt": "3",
"tl_id_t7_nbank_reamt": "3",
"tl_id_t3_nbank_num": "2",
"tl_cell_t8_nbank_lendamt": "9",
"tl_id_t9_nbank_org": "1",
"tl_id_t1_nbank_lendamt": "14",
"tl_cell_t7_nbank_org": "1",
"tl_id_t9_nbank_reamt": "3",
"tl_id_t8_nbank_reamt": "3",
"tl_id_t1_nbank_org": "1",
"tl_cell_t3_nbank_num": "2",
"tl_id_t8_nbank_lendamt": "9",
"tl_cell_t11_nbank_lendamt": "5",
"tl_cell_m3_nbank_passorg": "1",
"tl_id_t0_nbank_num": "2",
"tl_cell_t4_nbank_org": "1",
"tl_cell_t0_nbank_num": "2",
"tl_id_t0_nbank_lendamt": "18",
"tl_cell_t1_nbank_org": "1",
"tl_id_t9_nbank_lendamt": "9",
"tl_cell_t9_nbank_lendamt": "9",
"tl_cell_t0_nbank_lendamt": "18",
"tl_id_t1_nbank_num": "2",
"tl_cell_t0_nbank_reamt": "7",
"tl_cell_t1_nbank_reamt": "7",
"tl_id_t5_nbank_lendamt": "9",
"tl_cell_m3_nbank_passnum": "1",
"tl_id_m6_nbank_passlendamt": "10",
"tl_cell_t6_nbank_lendamt": "9",
"tl_id_m1_nbank_passorg": "1",
"tl_cell_t6_nbank_num": "1",
"tl_id_t8_nbank_num": "1",
"tl_id_t4_nbank_org": "1",
"tl_cell_t1_nbank_lendamt": "14",
"tl_cell_t2_nbank_org": "1",
"tl_cell_t3_nbank_lendamt": "10",
"tl_id_t2_nbank_num": "2",
"tl_cell_t5_nbank_num": "1",
"swift_number": "3034309_20241113153507_46522614A19",
"tl_id_t5_nbank_reamt": "3",
"tl_cell_t7_nbank_reamt": "3",
"tl_cell_t9_nbank_org": "1",
"tl_cell_t9_nbank_reamt": "3",
"tl_id_t4_nbank_reamt": "3",
"tl_id_t3_nbank_reamt": "4",
"tl_cell_t8_nbank_reamt": "3",
"tl_cell_t4_nbank_reamt": "3",
"tl_id_t1_nbank_reamt": "7",
"tl_id_t2_nbank_reamt": "4",
"tl_cell_t5_nbank_reamt": "3",
"tl_cell_t3_nbank_reamt": "4",
"tl_cell_t6_nbank_reamt": "3",
"tl_cell_m9_nbank_passorg": "1",
"tl_cell_t2_nbank_reamt": "4",
"tl_cell_m9_nbank_passlendamt": "10",
"tl_id_m12_nbank_passlendamt": "18",
"tl_id_t9_nbank_num": "1",
"tl_id_m9_nbank_passorg": "1",
"tl_id_t0_nbank_reamt": "7",
"tl_id_t2_nbank_lendamt": "10",
"tl_id_t3_nbank_org": "1",
"tl_cell_t4_nbank_num": "1",
"tl_cell_t3_nbank_org": "1",
"tl_cell_m1_nbank_passnum": "1",
"code": "00",
"tl_id_t2_nbank_org": "1",
"tl_id_m12_nbank_passnum": "2",
"tl_cell_t4_nbank_lendamt": "9",
"tl_id_m9_nbank_passlendamt": "10",
"tl_cell_t0_nbank_org": "1",
"tl_id_m9_nbank_passnum": "2",
"tl_id_t3_nbank_lendamt": "10",
"tl_cell_m1_nbank_passlendamt": "5",
"tl_cell_t1_nbank_num": "2",
"tl_id_m6_nbank_passorg": "1",
"tl_id_t11_nbank_lendamt": "5",
"tl_id_t11_nbank_num": "1",
"tl_cell_t5_nbank_lendamt": "9",
"tl_id_t5_nbank_org": "1",
"tl_id_t4_nbank_lendamt": "9",
"tl_cell_t8_nbank_org": "1",
"tl_id_t7_nbank_num": "1",
"tl_cell_m6_nbank_passlendamt": "10",
"tl_id_t4_nbank_num": "1",
"tl_id_m1_nbank_passnum": "1",
"tl_id_t8_nbank_org": "1",
"tl_cell_t7_nbank_num": "1",
"flag_totalloan": "1"
},
"flag_totalloan": "1"
}

View File

@@ -0,0 +1,17 @@
{
"code": "100002",
"flag_specialList_c": "0",
"data": {
"code": "100002",
"flag_specialList_c": "0",
"swift_number": "3034309_20241113140028_45772614A19",
"flag_datastrategy": "0",
"DataStrategy": {
"strategy_version": "1.0",
"product_type": "100099",
"strategy_id": "DTA_BR0007511",
"product_name": "预置_特殊名单验证",
"scene": "lend"
}
}
}

BIN
deploy/android/qnc.keystore Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDeSb0KJhm3L1Em
GftfSFZliL2uZ8MWxJCO0MLEJBX1bs6aIsdJkhTej7FPKv5f716BcvYMiAxWmfwE
PE2ALwFjoAy+GUHLzIcJsrYQk+u62pfvwJhj0boKt71Hg7E6JQGxbfg7Rs5upqAE
LU86SdCkvcKVr/tLoqftyNwhvgOWVyiv+fbkyvysVVkQeCI6AweO7SGflDNH/BVw
DrW9F8RkxqcewH4yYojfbearunJXoPlotwbabrk4eLgcjP94Sbtqzk0bjEjJghCx
8SDAABliyunDMtEiD26HtCwGZiv81FlImUr2AE9Oes9DnXtFGcgDYCz/9mggbxuL
n1VKZQ9BAgMBAAECggEAK0qKHf1gmbwF3llGCv8AEIMqidpcdMUwcBf5LpDmk+eS
JhOq40mnddbfTc9OPinUqnpUsAkY+g7ANaT25QWCjEAB603o8gNxszJSYfUk/j2P
RJqqMxqH1ImHO/PKYswNQdxscULvdj5OQLIAUZZJo6PvTw64brkNYnJxaMLkWPVg
gNqmFMwNlpCUlYdMbARrBf+aLWuaXHcb9PmkwkAjrEVS87AErJFRmyiOX+LZcaYp
YxUCp0DVmcyWeGrm0Jj3ai1PSxC9PjthMVWL1G84BQR5pb9ITpZJHypO0lY2sOM0
5NjQo0C/iTqKjGbItbHjuHo/QZNzzVEd7gLMIqHY6QKBgQD8BxKFz+piwtA2fAGV
xEuXA2oglYTn6baLS26PsJcfcgfgre1jTbmr8AQTph3U7kqwW+Q1QF6BTiaDUqZd
y7HzC9dVLgqPbyshLWd9V+3xG+9Q+MvKjX4cWzT687bGBLixidy2svyse70BWDZx
fC/5yIbI9dNSFmMXGrxg1Ia9HQKBgQDhyqrUhrWSIKyI0b17X/Kbh3pLs6XRaLto
Q8hMZnsrlX1GH+T6kb5KaGe3txfo7UVqoYeUWhTGOnxmsNywRAyV5Ob0Ebq4a7oK
K2Dtzx+yZVrYralxqxcMU1vr322j51zBWNT1f2ig0/ae78xijvIuYG/gDokRwGsp
6k7o6z5VdQKBgQDIjfg3c9TY8p4uPVAllidw7M6vT0yMIHebMVOyFJyt8VhDeyTF
OTzfjggweqiSoW3eGcHofmi2DTKonkS1rzrUZj/dEN5mddikdjU8kZRPoiM3FEVX
0nDgr9PhP7/apDc1ULfKy3Q27eDiCQiKFoE3DFP152lakWYZJLVzeKwgIQKBgQCY
0/vTBCcL9I+zv/t38ZadzRJrAPrghfordY2yoL8H3hRADcCIFXPum0JwqD5Hy6nr
pc/GCz76eYXQYC/QIw89ugTU+NcgktIGphviewpiTpYyCUGijYJ5NkcGnWFxyl0P
BZiHXqisCyxnobn+j/C+kUnIJy6B1HL0mQK2RtwXLQKBgQDDcfTi/UusJvrrHp6O
DZlnP7lMWvOrKHUH2alDq6+YK3ieJ+e6btv3TxX2Y6CtbeKutjax3HQ/MTMwkeT8
4mItZ+oHZcnYUKjYmDDKqxyUZLqdzuylNKd57gXl/BkfZBLk+MbgH9+zAb1VsnMz
/8t+U5kmczy90XBU3OOigpWj+g==
-----END PRIVATE KEY-----

View File

@@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIDnTCCAoUCAQAwgfcxCzAJBgNVBAYTAkNOMREwDwYDVQQIDAjCusKjw4TDjzER
MA8GA1UEBwwIwrrCo8K/w5oxQTA/BgNVBAoMOMK6wqPDhMOPw4rCocORwqfDk8Ou
w4vCvMONw7jDgsOnwr/DhsK8wrzDk8OQw4/DnsK5wqvDi8K+MUEwPwYDVQQLDDjC
usKjw4TDj8OKwqHDkcKnw5PDrsOLwrzDjcO4w4LDp8K/w4bCvMK8w5PDkMOPw57C
ucKrw4vCvjEbMBkGA1UEAwwSY29tLmFsbGlub25lLmNoZWNrMR8wHQYJKoZIhvcN
AQkBFhBhZG1pbkBpaWVlaWkuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA3km9CiYZty9RJhn7X0hWZYi9rmfDFsSQjtDCxCQV9W7OmiLHSZIU3o+x
Tyr+X+9egXL2DIgMVpn8BDxNgC8BY6AMvhlBy8yHCbK2EJPrutqX78CYY9G6Cre9
R4OxOiUBsW34O0bObqagBC1POknQpL3Cla/7S6Kn7cjcIb4Dllcor/n25Mr8rFVZ
EHgiOgMHju0hn5QzR/wVcA61vRfEZManHsB+MmKI323mq7pyV6D5aLcG2m65OHi4
HIz/eEm7as5NG4xIyYIQsfEgwAAZYsrpwzLRIg9uh7QsBmYr/NRZSJlK9gBPTnrP
Q517RRnIA2As//ZoIG8bi59VSmUPQQIDAQABoGAwFQYJKoZIhvcNAQkHMQgMBjMy
MDMyMDBHBgkqhkiG9w0BCQIxOgw4wrrCo8OEw4/DisKhw5HCp8OTw67Di8K8w43D
uMOCw6fCv8OGwrzCvMOTw5DDj8OewrnCq8OLwr4wDQYJKoZIhvcNAQELBQADggEB
AI1CQFPrHE3xVWpnxynxK4DjM7eRjjCkPVUd3/IqNfiLnRNatDRzdU4K/Y5bLSVk
A4eEk479YeBw1Zyw2jlAvK0Ga0QLAE4/SWAvjCbSCqJqSe1/SR9skxaZO3DZECPG
EAgdiNsmYYlg7Oae3OT77OAFn6GkhjpRFBADO4F4Yb5yj75njNNava7gHvMn9NMx
12/IvIK1quS2V7XjcLaMIVkIfnYqGevbOnN3XGgwjGu2hCJz4Ob0iAI+kcNYdBrG
7rdwfSW7AbCSFiHmRL4n5rjJN6rs4VEHMnOPoB05E2inpIzLxZPa0wJ2k0UR5zZL
KKAkSMxpPrUvJyCnoRhX8BM=
-----END CERTIFICATE REQUEST-----

Binary file not shown.

View File

@@ -0,0 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIF8TCCBNmgAwIBAgIQLaG9i7JFETJnqW6Z8lt9hTANBgkqhkiG9w0BAQsFADB1
MUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBD
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTELMAkGA1UECwwCRzMxEzARBgNVBAoMCkFw
cGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTI0MTEyMTE4NTczMVoXDTI1MTEyMTE4
NTczMFowgcwxGjAYBgoJkiaJk/IsZAEBDApSNERWN1ZGNkg3MVYwVAYDVQQDDE1p
UGhvbmUgRGlzdHJpYnV0aW9uOiBIYWluYW4gWHVleXVzaSBOZXR3b3JrIFRlY2hu
b2xvZ3kgQ28uLCBMdGQuIChSNERWN1ZGNkg3KTETMBEGA1UECwwKUjREVjdWRjZI
NzE0MDIGA1UECgwrSGFpbmFuIFh1ZXl1c2kgTmV0d29yayBUZWNobm9sb2d5IENv
LiwgTHRkLjELMAkGA1UEBhMCQ04wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDeSb0KJhm3L1EmGftfSFZliL2uZ8MWxJCO0MLEJBX1bs6aIsdJkhTej7FP
Kv5f716BcvYMiAxWmfwEPE2ALwFjoAy+GUHLzIcJsrYQk+u62pfvwJhj0boKt71H
g7E6JQGxbfg7Rs5upqAELU86SdCkvcKVr/tLoqftyNwhvgOWVyiv+fbkyvysVVkQ
eCI6AweO7SGflDNH/BVwDrW9F8RkxqcewH4yYojfbearunJXoPlotwbabrk4eLgc
jP94Sbtqzk0bjEjJghCx8SDAABliyunDMtEiD26HtCwGZiv81FlImUr2AE9Oes9D
nXtFGcgDYCz/9mggbxuLn1VKZQ9BAgMBAAGjggIjMIICHzAMBgNVHRMBAf8EAjAA
MB8GA1UdIwQYMBaAFAn+wBWQ+a9kCpISuSYoYwyX7KeyMHAGCCsGAQUFBwEBBGQw
YjAtBggrBgEFBQcwAoYhaHR0cDovL2NlcnRzLmFwcGxlLmNvbS93d2RyZzMuZGVy
MDEGCCsGAQUFBzABhiVodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDAzLXd3ZHJn
MzAyMIIBHgYDVR0gBIIBFTCCAREwggENBgkqhkiG92NkBQEwgf8wgcMGCCsGAQUF
BwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFy
dHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3Rh
bmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBw
b2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNwYI
KwYBBQUHAgEWK2h0dHBzOi8vd3d3LmFwcGxlLmNvbS9jZXJ0aWZpY2F0ZWF1dGhv
cml0eS8wFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwMwHQYDVR0OBBYEFNfYSDEuX6Ks
6c5i2WBDAHDGC+lZMA4GA1UdDwEB/wQEAwIHgDATBgoqhkiG92NkBgEEAQH/BAIF
ADANBgkqhkiG9w0BAQsFAAOCAQEANk6dzI9SJXj35krhx6WhXcQJoE8fZ6gNq9hW
SvpLjffZyn9143zKGZ93izi10H1EwAbBHrZhiIW5Tl7PB6e7ZmUWPxuL/Syex9Js
In9DnZp5XEHtbFZVQnffQqmIh0ZwmM40wgCMaOxRqtw/Vvlovb/K0sWmDXTbN1z0
lFqALTqFbsfMDj6uE2Xl0RUn2Qc6XxqV7yh/qI9IYkMicrAmoOAhKTxX98ny7ioR
et7F0aDF+CKG4ZceQt4QeYm9EnPHYt3DWBu3wIiwJJ+YCaclPPFK3+TgB64yNT7M
0p4n7okj3vS5I7SnCy8wcYndluByp7G0pSAzLLP2eLO2I4oDyA==
-----END CERTIFICATE-----

Binary file not shown.

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDeSb0KJhm3L1Em
GftfSFZliL2uZ8MWxJCO0MLEJBX1bs6aIsdJkhTej7FPKv5f716BcvYMiAxWmfwE
PE2ALwFjoAy+GUHLzIcJsrYQk+u62pfvwJhj0boKt71Hg7E6JQGxbfg7Rs5upqAE
LU86SdCkvcKVr/tLoqftyNwhvgOWVyiv+fbkyvysVVkQeCI6AweO7SGflDNH/BVw
DrW9F8RkxqcewH4yYojfbearunJXoPlotwbabrk4eLgcjP94Sbtqzk0bjEjJghCx
8SDAABliyunDMtEiD26HtCwGZiv81FlImUr2AE9Oes9DnXtFGcgDYCz/9mggbxuL
n1VKZQ9BAgMBAAECggEAK0qKHf1gmbwF3llGCv8AEIMqidpcdMUwcBf5LpDmk+eS
JhOq40mnddbfTc9OPinUqnpUsAkY+g7ANaT25QWCjEAB603o8gNxszJSYfUk/j2P
RJqqMxqH1ImHO/PKYswNQdxscULvdj5OQLIAUZZJo6PvTw64brkNYnJxaMLkWPVg
gNqmFMwNlpCUlYdMbARrBf+aLWuaXHcb9PmkwkAjrEVS87AErJFRmyiOX+LZcaYp
YxUCp0DVmcyWeGrm0Jj3ai1PSxC9PjthMVWL1G84BQR5pb9ITpZJHypO0lY2sOM0
5NjQo0C/iTqKjGbItbHjuHo/QZNzzVEd7gLMIqHY6QKBgQD8BxKFz+piwtA2fAGV
xEuXA2oglYTn6baLS26PsJcfcgfgre1jTbmr8AQTph3U7kqwW+Q1QF6BTiaDUqZd
y7HzC9dVLgqPbyshLWd9V+3xG+9Q+MvKjX4cWzT687bGBLixidy2svyse70BWDZx
fC/5yIbI9dNSFmMXGrxg1Ia9HQKBgQDhyqrUhrWSIKyI0b17X/Kbh3pLs6XRaLto
Q8hMZnsrlX1GH+T6kb5KaGe3txfo7UVqoYeUWhTGOnxmsNywRAyV5Ob0Ebq4a7oK
K2Dtzx+yZVrYralxqxcMU1vr322j51zBWNT1f2ig0/ae78xijvIuYG/gDokRwGsp
6k7o6z5VdQKBgQDIjfg3c9TY8p4uPVAllidw7M6vT0yMIHebMVOyFJyt8VhDeyTF
OTzfjggweqiSoW3eGcHofmi2DTKonkS1rzrUZj/dEN5mddikdjU8kZRPoiM3FEVX
0nDgr9PhP7/apDc1ULfKy3Q27eDiCQiKFoE3DFP152lakWYZJLVzeKwgIQKBgQCY
0/vTBCcL9I+zv/t38ZadzRJrAPrghfordY2yoL8H3hRADcCIFXPum0JwqD5Hy6nr
pc/GCz76eYXQYC/QIw89ugTU+NcgktIGphviewpiTpYyCUGijYJ5NkcGnWFxyl0P
BZiHXqisCyxnobn+j/C+kUnIJy6B1HL0mQK2RtwXLQKBgQDDcfTi/UusJvrrHp6O
DZlnP7lMWvOrKHUH2alDq6+YK3ieJ+e6btv3TxX2Y6CtbeKutjax3HQ/MTMwkeT8
4mItZ+oHZcnYUKjYmDDKqxyUZLqdzuylNKd57gXl/BkfZBLk+MbgH9+zAb1VsnMz
/8t+U5kmczy90XBU3OOigpWj+g==
-----END PRIVATE KEY-----

View File

@@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIDnTCCAoUCAQAwgfcxCzAJBgNVBAYTAkNOMREwDwYDVQQIDAjCusKjw4TDjzER
MA8GA1UEBwwIwrrCo8K/w5oxQTA/BgNVBAoMOMK6wqPDhMOPw4rCocORwqfDk8Ou
w4vCvMONw7jDgsOnwr/DhsK8wrzDk8OQw4/DnsK5wqvDi8K+MUEwPwYDVQQLDDjC
usKjw4TDj8OKwqHDkcKnw5PDrsOLwrzDjcO4w4LDp8K/w4bCvMK8w5PDkMOPw57C
ucKrw4vCvjEbMBkGA1UEAwwSY29tLmFsbGlub25lLmNoZWNrMR8wHQYJKoZIhvcN
AQkBFhBhZG1pbkBpaWVlaWkuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA3km9CiYZty9RJhn7X0hWZYi9rmfDFsSQjtDCxCQV9W7OmiLHSZIU3o+x
Tyr+X+9egXL2DIgMVpn8BDxNgC8BY6AMvhlBy8yHCbK2EJPrutqX78CYY9G6Cre9
R4OxOiUBsW34O0bObqagBC1POknQpL3Cla/7S6Kn7cjcIb4Dllcor/n25Mr8rFVZ
EHgiOgMHju0hn5QzR/wVcA61vRfEZManHsB+MmKI323mq7pyV6D5aLcG2m65OHi4
HIz/eEm7as5NG4xIyYIQsfEgwAAZYsrpwzLRIg9uh7QsBmYr/NRZSJlK9gBPTnrP
Q517RRnIA2As//ZoIG8bi59VSmUPQQIDAQABoGAwFQYJKoZIhvcNAQkHMQgMBjMy
MDMyMDBHBgkqhkiG9w0BCQIxOgw4wrrCo8OEw4/DisKhw5HCp8OTw67Di8K8w43D
uMOCw6fCv8OGwrzCvMOTw5DDj8OewrnCq8OLwr4wDQYJKoZIhvcNAQELBQADggEB
AI1CQFPrHE3xVWpnxynxK4DjM7eRjjCkPVUd3/IqNfiLnRNatDRzdU4K/Y5bLSVk
A4eEk479YeBw1Zyw2jlAvK0Ga0QLAE4/SWAvjCbSCqJqSe1/SR9skxaZO3DZECPG
EAgdiNsmYYlg7Oae3OT77OAFn6GkhjpRFBADO4F4Yb5yj75njNNava7gHvMn9NMx
12/IvIK1quS2V7XjcLaMIVkIfnYqGevbOnN3XGgwjGu2hCJz4Ob0iAI+kcNYdBrG
7rdwfSW7AbCSFiHmRL4n5rjJN6rs4VEHMnOPoB05E2inpIzLxZPa0wJ2k0UR5zZL
KKAkSMxpPrUvJyCnoRhX8BM=
-----END CERTIFICATE REQUEST-----

View File

@@ -0,0 +1,7 @@
1. 身份检测(三要素或二要素)姓名+身份证+手机号码
2. 司法涉诉
3. 风险人员检测(异常名单)
4. 个人不良
5. 人企关联
6. 借贷意向
7. 特殊名单padding

6
doc/婚恋报告.md Normal file
View File

@@ -0,0 +1,6 @@
1. 身份检测(三要素或二要素)姓名+身份证+手机号码
2. 司法涉诉
3. 个人不良 // 西部未启用
4. 人企关联
5. 借贷意向
6. 单人婚姻状态

6
doc/家政服务.md Normal file
View File

@@ -0,0 +1,6 @@
1. 身份检测(三要素或二要素)姓名+身份证+手机号码
2. 司法涉诉
3. 特殊名单
4. 个人不良
5. 借贷意向
6. 资格证书

6
doc/租赁服务.md Normal file
View File

@@ -0,0 +1,6 @@
1. 身份检测(三要素或二要素)姓名+身份证+手机号码
2. 司法涉诉
3. 风险人员检测(异常名单)
4. 个人不良
5. 借贷意向
6. 特殊名单

View File

@@ -0,0 +1,9 @@
1. 身份检测(三要素或二要素)姓名+身份证+手机号码
2. 司法涉诉
3. 风险人员检测(异常名单)
4. 个人不良
5. 人企关联
6. 借贷意向
7. 特殊名单
8. 借贷行为
9. 婚姻信息调查

9
doc/贷前背调.md Normal file
View File

@@ -0,0 +1,9 @@
1. 身份检测(三要素或二要素)姓名+身份证+手机号码
2. 司法涉诉
3. 风险人员检测(异常名单)
4. 个人不良
5. 借贷行为
6. 借贷意向
7. 特殊名单
8. 偿贷压力
9. 婚姻状态

15
eslint.config.mjs Normal file
View File

@@ -0,0 +1,15 @@
import uni from '@uni-helper/eslint-config'
export default uni(
{
globals: {
uni: true,
wx: true, // 如果您同时使用了微信小程序的全局变量
},
unocss: true,
rules: {
'no-console': 'off', // 关闭 no-console 规则
'no-unused-vars': 'warn',
},
},
)

21
index.html Normal file
View File

@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="icon" href="static/logo.svg">
<script>
const coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)')
|| CSS.supports('top: constant(a)'))
document.write(
`<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0${
coverSupport ? ', viewport-fit=cover' : ''}" />`)
</script>
<title></title>
<!--preload-links-->
<!--app-context-->
</head>
<body>
<div id="app"><!--app-html--></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

118
manifest.config.ts Normal file
View File

@@ -0,0 +1,118 @@
import { defineManifestConfig } from '@uni-helper/vite-plugin-uni-manifest'
export default defineManifestConfig({
'name': '全能查',
'appid': '__UNI__CC3DA09',
'description': '',
'versionName': '1.0.0',
'versionCode': '101',
'transformPx': false,
/* 5+App特有相关 */
'app-plus': {
usingComponents: true,
nvueStyleCompiler: 'uni-app',
compilerVersion: 3,
background: '#000000',
compatible: {
ignoreVersion: true,
},
splashscreen: {
alwaysShowBeforeRender: true,
waiting: true,
autoclose: true,
delay: 0,
},
/* 模块配置 */
modules: {
Payment: {},
},
/* 应用发布信息 */
distribute: {
/* android打包配置 */
android: {
permissions: [
'<uses-permission android:name="android.permission.INTERNET"/>',
'<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>',
'<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>',
],
},
/* ios打包配置 */
ios: {
privacyDescription: {
NSLocalNetworkUsageDescription: '需要访问您的网络来提供更好的服务',
},
idfa: false,
},
/* SDK配置 */
sdkConfigs: {
payment: {
alipay: {
__platform__: ['ios', 'android'],
},
},
},
icons: {
android: {
hdpi: 'src/static/icons/72x72.png',
xhdpi: 'src/static/icons/96x96.png',
xxhdpi: 'src/static/icons/144x144.png',
xxxhdpi: 'src/static/icons/192x192.png',
},
ios: {
appstore: 'src/static/icons/1024x1024.png',
ipad: {
'app': 'src/static/icons/76x76.png',
'app@2x': 'src/static/icons/152x152.png',
'notification': 'src/static/icons/20x20.png',
'notification@2x': 'src/static/icons/40x40.png',
'proapp@2x': 'src/static/icons/167x167.png',
'settings': 'src/static/icons/29x29.png',
'settings@2x': 'src/static/icons/58x58.png',
'spotlight': 'src/static/icons/40x40.png',
'spotlight@2x': 'src/static/icons/80x80.png',
},
iphone: {
'app@2x': 'src/static/icons/120x120.png',
'app@3x': 'src/static/icons/180x180.png',
'notification@2x': 'src/static/icons/40x40.png',
'notification@3x': 'src/static/icons/60x60.png',
'settings@2x': 'src/static/icons/58x58.png',
'settings@3x': 'src/static/icons/87x87.png',
'spotlight@2x': 'src/static/icons/80x80.png',
'spotlight@3x': 'src/static/icons/120x120.png',
},
},
},
},
},
/* 快应用特有相关 */
'quickapp': {},
/* 小程序特有相关 */
'mp-weixin': {
appid: '',
setting: {
urlCheck: false,
},
usingComponents: true,
darkmode: false,
themeLocation: 'theme.json',
},
'mp-alipay': {
usingComponents: true,
},
'mp-baidu': {
usingComponents: true,
},
'mp-toutiao': {
usingComponents: true,
},
'h5': {
darkmode: false,
themeLocation: 'theme.json',
},
'uniStatistics': {
enable: false,
},
'vueVersion': '3',
})

103
package.json Normal file
View File

@@ -0,0 +1,103 @@
{
"name": "uni-qnc",
"version": "0.0.0",
"private": true,
"packageManager": "pnpm@9.9.0",
"license": "MIT",
"scripts": {
"dev": "uni",
"dev:app": "uni -p app",
"dev:app-plus": "uni -p app-plus",
"dev:app-android": "uni -p app-android",
"dev:app-ios": "uni -p app-ios",
"dev:custom": "uni -p",
"dev:h5": "uni",
"dev:h5:ssr": "uni --ssr",
"dev:mp-alipay": "uni -p mp-alipay",
"dev:mp-baidu": "uni -p mp-baidu",
"dev:mp-kuaishou": "uni -p mp-kuaishou",
"dev:mp-lark": "uni -p mp-lark",
"dev:mp-qq": "uni -p mp-qq",
"dev:mp-toutiao": "uni -p mp-toutiao",
"dev:mp-weixin": "uni -p mp-weixin",
"dev:quickapp-webview": "uni -p quickapp-webview",
"dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei",
"dev:quickapp-webview-union": "uni -p quickapp-webview-union",
"build": "uni build",
"build:app": "uni build -p app",
"build:app-plus": "uni build -p app-plus",
"build:app-android": "uni build -p app-android",
"build:app-ios": "uni build -p app-ios",
"build:custom": "uni build -p",
"build:h5": "uni build",
"build:h5:ssr": "uni build --ssr",
"build:mp-alipay": "uni build -p mp-alipay",
"build:mp-baidu": "uni build -p mp-baidu",
"build:mp-kuaishou": "uni build -p mp-kuaishou",
"build:mp-lark": "uni build -p mp-lark",
"build:mp-qq": "uni build -p mp-qq",
"build:mp-toutiao": "uni build -p mp-toutiao",
"build:mp-weixin": "uni build -p mp-weixin",
"build:quickapp-webview": "uni build -p quickapp-webview",
"build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",
"build:quickapp-webview-union": "uni build -p quickapp-webview-union",
"type-check": "vue-tsc --noEmit",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"postinstall": "npx simple-git-hooks"
},
"dependencies": {
"@dcloudio/uni-app": "3.0.0-4020420240722002",
"@dcloudio/uni-app-plus": "3.0.0-4020420240722002",
"@dcloudio/uni-components": "3.0.0-4020420240722002",
"@dcloudio/uni-h5": "3.0.0-4020420240722002",
"@dcloudio/uni-mp-alipay": "3.0.0-4020420240722002",
"@dcloudio/uni-mp-baidu": "3.0.0-4020420240722002",
"@dcloudio/uni-mp-jd": "3.0.0-4020420240722002",
"@dcloudio/uni-mp-kuaishou": "3.0.0-4020420240722002",
"@dcloudio/uni-mp-lark": "3.0.0-4020420240722002",
"@dcloudio/uni-mp-qq": "3.0.0-4020420240722002",
"@dcloudio/uni-mp-toutiao": "3.0.0-4020420240722002",
"@dcloudio/uni-mp-weixin": "3.0.0-4020420240722002",
"@dcloudio/uni-mp-xhs": "3.0.0-4020420240722002",
"@dcloudio/uni-quickapp-webview": "3.0.0-4020420240722002",
"@vueuse/core": "^11.1.0",
"crypto-js": "^4.2.0",
"vue": "~3.4.21",
"vue-i18n": "^9.14.1",
"wot-design-uni": "^1.3.12"
},
"devDependencies": {
"@dcloudio/types": "^3.4.12",
"@dcloudio/uni-automator": "3.0.0-4020420240722002",
"@dcloudio/uni-cli-shared": "3.0.0-4020420240722002",
"@dcloudio/uni-stacktracey": "3.0.0-4020420240722002",
"@dcloudio/uni-vue-devtools": "3.0.0-4020420240722002",
"@dcloudio/vite-plugin-uni": "3.0.0-4020420240722002",
"@iconify-json/carbon": "^1.2.3",
"@mini-types/alipay": "^3.0.14",
"@types/node": "^20.16.12",
"@uni-helper/eslint-config": "^0.1.0",
"@uni-helper/uni-env": "^0.1.4",
"@uni-helper/uni-types": "1.0.0-alpha.4",
"@uni-helper/unocss-preset-uni": "^0.2.10",
"@uni-helper/vite-plugin-uni-components": "^0.1.0",
"@uni-helper/vite-plugin-uni-layouts": "^0.1.10",
"@uni-helper/vite-plugin-uni-manifest": "^0.2.7",
"@uni-helper/vite-plugin-uni-pages": "^0.2.28",
"@uni-helper/volar-service-uni-pages": "^0.2.28",
"@unocss/eslint-config": "^0.62.4",
"@vue/runtime-core": "^3.5.12",
"@vue/tsconfig": "^0.5.1",
"eslint": "^9.12.0",
"miniprogram-api-typings": "^3.12.3",
"sass": "~1.79.0",
"sass-embedded": "~1.79.0",
"simple-git-hooks": "^2.11.1",
"typescript": "~5.5.4",
"unocss": "^0.62.4",
"unplugin-auto-import": "^0.18.3",
"vite": "^5.4.9",
"vue-tsc": "^2.1.6"
}
}

39
pages.config.ts Normal file
View File

@@ -0,0 +1,39 @@
import { defineUniPages } from '@uni-helper/vite-plugin-uni-pages'
export default defineUniPages({
pages: [],
globalStyle: {
backgroundColor: '@bgColor',
backgroundColorBottom: '@bgColorBottom',
backgroundColorTop: '@bgColorTop',
backgroundTextStyle: '@bgTxtStyle',
navigationBarBackgroundColor: '#000000',
navigationBarTextStyle: '@navTxtStyle',
navigationBarTitleText: '全能查',
navigationStyle: 'custom',
},
tabBar: {
backgroundColor: '@tabBgColor',
borderStyle: '@tabBorderStyle',
color: '@tabFontColor',
selectedColor: '@tabSelectedColor',
list: [
{
pagePath: 'pages/index',
text: '',
visible: false,
},
{
pagePath: 'pages/ai',
text: '',
visible: false,
},
{
pagePath: 'pages/me',
text: '',
visible: false,
},
],
},
})

12028
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

3
renovate.json Normal file
View File

@@ -0,0 +1,3 @@
{
"extends": ["github>uni-helper/renovate-config"]
}

4
src/App.vue Normal file
View File

@@ -0,0 +1,4 @@
<script setup>
onLaunch(() => {
})
</script>

40
src/androidPrivacy.json Normal file
View File

@@ -0,0 +1,40 @@
{
"prompt": "template",
"title": "用户协议和隐私政策",
"message": "感谢您使用全能查APP! 我们非常重视您的隐私保护和个人信息保护在您使用全能查APP前请您仔细阅读、充分理解<a href=\"/pages/userAgreement\">《用户协议》</a>和<a href=\"/pages/privacyPolicy\">《隐私政策》</a>的各项条款。如果您同意,请点击下方按钮开始接受我们的服务。",
"buttonAccept": "同意并继续",
"buttonRefuse": "退出应用",
"hrefLoader": "default",
"second": {
"title": "确认提示",
"message": "您点击同意并继续视为您已同意上诉协议的全部内容",
"buttonAccept": "同意并继续",
"buttonRefuse": "退出"
},
"styles": {
"backgroundColor": "#FFFFFF",
"borderRadius": "10px",
"title": {
"color": "#333333",
"fontSize": "18px",
"fontWeight": "bold"
},
"message": {
"color": "#666666",
"fontSize": "14px",
"lineHeight": "1.5"
},
"buttonAccept": {
"color": "#333333",
"backgroundColor": "#007AFF",
"borderRadius": "5px",
"padding": "10px 20px"
},
"buttonRefuse": {
"color": "#333333",
"backgroundColor": "#FF3B30",
"borderRadius": "5px",
"padding": "10px 20px"
}
}
}

114
src/api/apis.js Normal file
View File

@@ -0,0 +1,114 @@
// api/index.js
import request from '@/utils/request.js'
export function getUserInfo(data) {
return request({
url: '/user/detail',
method: 'GET',
data,
})
}
export function login(data) {
return request({
url: '/user/mobileCodeLogin',
method: 'POST',
data,
})
}
export function getCode(data) {
return request({
url: '/auth/sendSms',
method: 'POST',
data,
})
}
export function getProduct(en) {
return request({
url: `/product/en/${en}`,
method: 'GET',
})
}
export function queryExample(params) {
return request({
url: `/query/example`,
method: 'GET',
params,
})
}
export function queryMarriage(data) {
return request({
url: `/query/marriage`,
method: 'POST',
data,
})
}
export function queryhomeService(data) {
return request({
url: `/query/homeService`,
method: 'POST',
data,
})
}
export function queryriskAssessment(data) {
return request({
url: `/query/riskAssessment`,
method: 'POST',
data,
})
}
export function querycompanyInfo(data) {
return request({
url: `/query/companyInfo`,
method: 'POST',
data,
})
}
export function queryrentalInfo(data) {
return request({
url: `/query/rentalInfo`,
method: 'POST',
data,
})
}
export function querypreLoanBackgroundCheck(data) {
return request({
url: `/query/preLoanBackgroundCheck`,
method: 'POST',
data,
})
}
export function querybackgroundCheck(data) {
return request({
url: `/query/backgroundCheck`,
method: 'POST',
data,
})
}
export function queryResultByOrder(orderID) {
return request({
url: `/query/orderId/${orderID}`,
method: 'GET',
})
}
export function queryList(params) {
return request({
url: `/query/list`,
method: 'GET',
params,
})
}
export function queryProvisionalOrder(id) {
return request({
url: `/query/provisional_order/${id}`,
method: 'GET',
})
}
export function payment(data) {
return request({
url: `/pay/payment`,
method: 'POST',
data,
})
}

42
src/app.scss Normal file
View File

@@ -0,0 +1,42 @@
:root {
--dark-bg: #18181c;
}
html {
font-size: 4px; // * 方便unocss计算1单位 = 0.25rem = 1px
}
body {
font-size: 16px;
}
html,
body,
page,
#app {
height: 100%;
margin: 0;
padding: 0;
background: #f8f8f8
}
html.dark {
background: var(--dark-bg);
}
.card{
@apply border border-gray-200 rounded-xl bg-white p-6 shadow-md;
}
.card-p-0{
@apply border border-gray-200 rounded-xl bg-white shadow-md;
}
.title {
@apply mx-auto mt-2 w-68 border rounded-3xl bg-gradient-to-r from-blue-400 via-green-500 to-teal-500 py-2 text-center text-white font-bold;
}
.scrollbar-hidden {
scrollbar-width: none; /* Firefox */
}
.scrollbar-hidden::-webkit-scrollbar {
display: none; /* Chrome, Safari, and Edge */
}

634
src/auto-imports.d.ts vendored Normal file
View File

@@ -0,0 +1,634 @@
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import
// biome-ignore lint: disable
export {}
declare global {
const EffectScope: typeof import('vue')['EffectScope']
const aesDecrypt: typeof import('./utils/crypto.js')['aesDecrypt']
const aesEncrypt: typeof import('./utils/crypto.js')['aesEncrypt']
const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
const computed: typeof import('vue')['computed']
const computedAsync: typeof import('@vueuse/core')['computedAsync']
const computedEager: typeof import('@vueuse/core')['computedEager']
const computedInject: typeof import('@vueuse/core')['computedInject']
const computedWithControl: typeof import('@vueuse/core')['computedWithControl']
const controlledComputed: typeof import('@vueuse/core')['controlledComputed']
const controlledRef: typeof import('@vueuse/core')['controlledRef']
const createApp: typeof import('vue')['createApp']
const createEventHook: typeof import('@vueuse/core')['createEventHook']
const createGlobalState: typeof import('@vueuse/core')['createGlobalState']
const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
const createReusableTemplate: typeof import('@vueuse/core')['createReusableTemplate']
const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
const createTemplatePromise: typeof import('@vueuse/core')['createTemplatePromise']
const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn']
const customRef: typeof import('vue')['customRef']
const debouncedRef: typeof import('@vueuse/core')['debouncedRef']
const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch']
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
const defineComponent: typeof import('vue')['defineComponent']
const eagerComputed: typeof import('@vueuse/core')['eagerComputed']
const effectScope: typeof import('vue')['effectScope']
const extendRef: typeof import('@vueuse/core')['extendRef']
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
const getCurrentScope: typeof import('vue')['getCurrentScope']
const h: typeof import('vue')['h']
const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
const inject: typeof import('vue')['inject']
const injectLocal: typeof import('@vueuse/core')['injectLocal']
const isDefined: typeof import('@vueuse/core')['isDefined']
const isProxy: typeof import('vue')['isProxy']
const isReactive: typeof import('vue')['isReactive']
const isReadonly: typeof import('vue')['isReadonly']
const isRef: typeof import('vue')['isRef']
const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
const markRaw: typeof import('vue')['markRaw']
const nextTick: typeof import('vue')['nextTick']
const onActivated: typeof import('vue')['onActivated']
const onAddToFavorites: typeof import('@dcloudio/uni-app')['onAddToFavorites']
const onBackPress: typeof import('@dcloudio/uni-app')['onBackPress']
const onBeforeMount: typeof import('vue')['onBeforeMount']
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
const onClickOutside: typeof import('@vueuse/core')['onClickOutside']
const onDeactivated: typeof import('vue')['onDeactivated']
const onError: typeof import('@dcloudio/uni-app')['onError']
const onErrorCaptured: typeof import('vue')['onErrorCaptured']
const onHide: typeof import('@dcloudio/uni-app')['onHide']
const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
const onLaunch: typeof import('@dcloudio/uni-app')['onLaunch']
const onLoad: typeof import('@dcloudio/uni-app')['onLoad']
const onLongPress: typeof import('@vueuse/core')['onLongPress']
const onMounted: typeof import('vue')['onMounted']
const onNavigationBarButtonTap: typeof import('@dcloudio/uni-app')['onNavigationBarButtonTap']
const onNavigationBarSearchInputChanged: typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputChanged']
const onNavigationBarSearchInputClicked: typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputClicked']
const onNavigationBarSearchInputConfirmed: typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputConfirmed']
const onNavigationBarSearchInputFocusChanged: typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputFocusChanged']
const onPageNotFound: typeof import('@dcloudio/uni-app')['onPageNotFound']
const onPageScroll: typeof import('@dcloudio/uni-app')['onPageScroll']
const onPullDownRefresh: typeof import('@dcloudio/uni-app')['onPullDownRefresh']
const onReachBottom: typeof import('@dcloudio/uni-app')['onReachBottom']
const onReady: typeof import('@dcloudio/uni-app')['onReady']
const onRenderTracked: typeof import('vue')['onRenderTracked']
const onRenderTriggered: typeof import('vue')['onRenderTriggered']
const onResize: typeof import('@dcloudio/uni-app')['onResize']
const onScopeDispose: typeof import('vue')['onScopeDispose']
const onServerPrefetch: typeof import('vue')['onServerPrefetch']
const onShareAppMessage: typeof import('@dcloudio/uni-app')['onShareAppMessage']
const onShareTimeline: typeof import('@dcloudio/uni-app')['onShareTimeline']
const onShow: typeof import('@dcloudio/uni-app')['onShow']
const onStartTyping: typeof import('@vueuse/core')['onStartTyping']
const onTabItemTap: typeof import('@dcloudio/uni-app')['onTabItemTap']
const onThemeChange: typeof import('@dcloudio/uni-app')['onThemeChange']
const onUnhandledRejection: typeof import('@dcloudio/uni-app')['onUnhandledRejection']
const onUnload: typeof import('@dcloudio/uni-app')['onUnload']
const onUnmounted: typeof import('vue')['onUnmounted']
const onUpdated: typeof import('vue')['onUpdated']
const onWatcherCleanup: typeof import('vue')['onWatcherCleanup']
const pausableWatch: typeof import('@vueuse/core')['pausableWatch']
const provide: typeof import('vue')['provide']
const provideLocal: typeof import('@vueuse/core')['provideLocal']
const reactify: typeof import('@vueuse/core')['reactify']
const reactifyObject: typeof import('@vueuse/core')['reactifyObject']
const reactive: typeof import('vue')['reactive']
const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed']
const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit']
const reactivePick: typeof import('@vueuse/core')['reactivePick']
const readonly: typeof import('vue')['readonly']
const ref: typeof import('vue')['ref']
const refAutoReset: typeof import('@vueuse/core')['refAutoReset']
const refDebounced: typeof import('@vueuse/core')['refDebounced']
const refDefault: typeof import('@vueuse/core')['refDefault']
const refThrottled: typeof import('@vueuse/core')['refThrottled']
const refWithControl: typeof import('@vueuse/core')['refWithControl']
const request: typeof import('./utils/request.js')['default']
const resolveComponent: typeof import('vue')['resolveComponent']
const resolveRef: typeof import('@vueuse/core')['resolveRef']
const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
const shallowReactive: typeof import('vue')['shallowReactive']
const shallowReadonly: typeof import('vue')['shallowReadonly']
const shallowRef: typeof import('vue')['shallowRef']
const syncRef: typeof import('@vueuse/core')['syncRef']
const syncRefs: typeof import('@vueuse/core')['syncRefs']
const templateRef: typeof import('@vueuse/core')['templateRef']
const throttledRef: typeof import('@vueuse/core')['throttledRef']
const throttledWatch: typeof import('@vueuse/core')['throttledWatch']
const toRaw: typeof import('vue')['toRaw']
const toReactive: typeof import('@vueuse/core')['toReactive']
const toRef: typeof import('vue')['toRef']
const toRefs: typeof import('vue')['toRefs']
const toValue: typeof import('vue')['toValue']
const triggerRef: typeof import('vue')['triggerRef']
const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount']
const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount']
const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted']
const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose']
const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted']
const unref: typeof import('vue')['unref']
const unrefElement: typeof import('@vueuse/core')['unrefElement']
const until: typeof import('@vueuse/core')['until']
const useActiveElement: typeof import('@vueuse/core')['useActiveElement']
const useAnimate: typeof import('@vueuse/core')['useAnimate']
const useArrayDifference: typeof import('@vueuse/core')['useArrayDifference']
const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery']
const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast']
const useArrayIncludes: typeof import('@vueuse/core')['useArrayIncludes']
const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
const useArraySome: typeof import('@vueuse/core')['useArraySome']
const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique']
const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
const useAttrs: typeof import('vue')['useAttrs']
const useBase64: typeof import('@vueuse/core')['useBase64']
const useBattery: typeof import('@vueuse/core')['useBattery']
const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
const useCached: typeof import('@vueuse/core')['useCached']
const useClipboard: typeof import('@vueuse/core')['useClipboard']
const useClipboardItems: typeof import('@vueuse/core')['useClipboardItems']
const useCloned: typeof import('@vueuse/core')['useCloned']
const useColorMode: typeof import('@vueuse/core')['useColorMode']
const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog']
const useCount: typeof import('./composables/useCount')['useCount']
const useCounter: typeof import('@vueuse/core')['useCounter']
const useCssModule: typeof import('vue')['useCssModule']
const useCssVar: typeof import('@vueuse/core')['useCssVar']
const useCssVars: typeof import('vue')['useCssVars']
const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement']
const useCycleList: typeof import('@vueuse/core')['useCycleList']
const useDark: typeof import('@vueuse/core')['useDark']
const useDateFormat: typeof import('@vueuse/core')['useDateFormat']
const useDebounce: typeof import('@vueuse/core')['useDebounce']
const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn']
const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion']
const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation']
const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio']
const useDevicesList: typeof import('@vueuse/core')['useDevicesList']
const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia']
const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility']
const useDraggable: typeof import('@vueuse/core')['useDraggable']
const useDropZone: typeof import('@vueuse/core')['useDropZone']
const useElementBounding: typeof import('@vueuse/core')['useElementBounding']
const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint']
const useElementHover: typeof import('@vueuse/core')['useElementHover']
const useElementSize: typeof import('@vueuse/core')['useElementSize']
const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility']
const useEventBus: typeof import('@vueuse/core')['useEventBus']
const useEventListener: typeof import('@vueuse/core')['useEventListener']
const useEventSource: typeof import('@vueuse/core')['useEventSource']
const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper']
const useFavicon: typeof import('@vueuse/core')['useFavicon']
const useFetch: typeof import('@vueuse/core')['useFetch']
const useFileDialog: typeof import('@vueuse/core')['useFileDialog']
const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess']
const useFocus: typeof import('@vueuse/core')['useFocus']
const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin']
const useFps: typeof import('@vueuse/core')['useFps']
const useFullscreen: typeof import('@vueuse/core')['useFullscreen']
const useGamepad: typeof import('@vueuse/core')['useGamepad']
const useGeolocation: typeof import('@vueuse/core')['useGeolocation']
const useId: typeof import('vue')['useId']
const useIdle: typeof import('@vueuse/core')['useIdle']
const useImage: typeof import('@vueuse/core')['useImage']
const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll']
const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver']
const useInterval: typeof import('@vueuse/core')['useInterval']
const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn']
const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier']
const useLastChanged: typeof import('@vueuse/core')['useLastChanged']
const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage']
const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys']
const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory']
const useMediaControls: typeof import('@vueuse/core')['useMediaControls']
const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery']
const useMemoize: typeof import('@vueuse/core')['useMemoize']
const useMemory: typeof import('@vueuse/core')['useMemory']
const useModel: typeof import('vue')['useModel']
const useMounted: typeof import('@vueuse/core')['useMounted']
const useMouse: typeof import('@vueuse/core')['useMouse']
const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement']
const useMousePressed: typeof import('@vueuse/core')['useMousePressed']
const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver']
const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage']
const useNetwork: typeof import('@vueuse/core')['useNetwork']
const useNow: typeof import('@vueuse/core')['useNow']
const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl']
const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination']
const useOnline: typeof import('@vueuse/core')['useOnline']
const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
const useParallax: typeof import('@vueuse/core')['useParallax']
const useParentElement: typeof import('@vueuse/core')['useParentElement']
const usePerformanceObserver: typeof import('@vueuse/core')['usePerformanceObserver']
const usePermission: typeof import('@vueuse/core')['usePermission']
const usePointer: typeof import('@vueuse/core')['usePointer']
const usePointerLock: typeof import('@vueuse/core')['usePointerLock']
const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast']
const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
const usePrevious: typeof import('@vueuse/core')['usePrevious']
const useQuery: typeof import('./composables/useQuery')['useQuery']
const useRafFn: typeof import('@vueuse/core')['useRafFn']
const useRefHistory: typeof import('@vueuse/core')['useRefHistory']
const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver']
const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
const useScriptTag: typeof import('@vueuse/core')['useScriptTag']
const useScroll: typeof import('@vueuse/core')['useScroll']
const useScrollLock: typeof import('@vueuse/core')['useScrollLock']
const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage']
const useShare: typeof import('@vueuse/core')['useShare']
const useSlots: typeof import('vue')['useSlots']
const useSorted: typeof import('@vueuse/core')['useSorted']
const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition']
const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis']
const useStepper: typeof import('@vueuse/core')['useStepper']
const useStorage: typeof import('@vueuse/core')['useStorage']
const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync']
const useStyleTag: typeof import('@vueuse/core')['useStyleTag']
const useSupported: typeof import('@vueuse/core')['useSupported']
const useSwipe: typeof import('@vueuse/core')['useSwipe']
const useTemplateRef: typeof import('vue')['useTemplateRef']
const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList']
const useTextDirection: typeof import('@vueuse/core')['useTextDirection']
const useTextSelection: typeof import('@vueuse/core')['useTextSelection']
const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
const useThrottle: typeof import('@vueuse/core')['useThrottle']
const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
const useTimeout: typeof import('@vueuse/core')['useTimeout']
const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
const useTimestamp: typeof import('@vueuse/core')['useTimestamp']
const useTitle: typeof import('@vueuse/core')['useTitle']
const useToNumber: typeof import('@vueuse/core')['useToNumber']
const useToString: typeof import('@vueuse/core')['useToString']
const useToggle: typeof import('@vueuse/core')['useToggle']
const useTransition: typeof import('@vueuse/core')['useTransition']
const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams']
const useUserMedia: typeof import('@vueuse/core')['useUserMedia']
const useVModel: typeof import('@vueuse/core')['useVModel']
const useVModels: typeof import('@vueuse/core')['useVModels']
const useVibrate: typeof import('@vueuse/core')['useVibrate']
const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
const useWakeLock: typeof import('@vueuse/core')['useWakeLock']
const useWebNotification: typeof import('@vueuse/core')['useWebNotification']
const useWebSocket: typeof import('@vueuse/core')['useWebSocket']
const useWebWorker: typeof import('@vueuse/core')['useWebWorker']
const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn']
const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus']
const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll']
const useWindowSize: typeof import('@vueuse/core')['useWindowSize']
const watch: typeof import('vue')['watch']
const watchArray: typeof import('@vueuse/core')['watchArray']
const watchAtMost: typeof import('@vueuse/core')['watchAtMost']
const watchDebounced: typeof import('@vueuse/core')['watchDebounced']
const watchDeep: typeof import('@vueuse/core')['watchDeep']
const watchEffect: typeof import('vue')['watchEffect']
const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable']
const watchImmediate: typeof import('@vueuse/core')['watchImmediate']
const watchOnce: typeof import('@vueuse/core')['watchOnce']
const watchPausable: typeof import('@vueuse/core')['watchPausable']
const watchPostEffect: typeof import('vue')['watchPostEffect']
const watchSyncEffect: typeof import('vue')['watchSyncEffect']
const watchThrottled: typeof import('@vueuse/core')['watchThrottled']
const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable']
const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
const whenever: typeof import('@vueuse/core')['whenever']
}
// for type re-export
declare global {
// @ts-ignore
export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
import('vue')
}
// for vue template auto import
import { UnwrapRef } from 'vue'
declare module 'vue' {
interface GlobalComponents {}
interface ComponentCustomProperties {
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
readonly aesDecrypt: UnwrapRef<typeof import('./utils/crypto.js')['aesDecrypt']>
readonly aesEncrypt: UnwrapRef<typeof import('./utils/crypto.js')['aesEncrypt']>
readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']>
readonly computed: UnwrapRef<typeof import('vue')['computed']>
readonly computedAsync: UnwrapRef<typeof import('@vueuse/core')['computedAsync']>
readonly computedEager: UnwrapRef<typeof import('@vueuse/core')['computedEager']>
readonly computedInject: UnwrapRef<typeof import('@vueuse/core')['computedInject']>
readonly computedWithControl: UnwrapRef<typeof import('@vueuse/core')['computedWithControl']>
readonly controlledComputed: UnwrapRef<typeof import('@vueuse/core')['controlledComputed']>
readonly controlledRef: UnwrapRef<typeof import('@vueuse/core')['controlledRef']>
readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
readonly createEventHook: UnwrapRef<typeof import('@vueuse/core')['createEventHook']>
readonly createGlobalState: UnwrapRef<typeof import('@vueuse/core')['createGlobalState']>
readonly createInjectionState: UnwrapRef<typeof import('@vueuse/core')['createInjectionState']>
readonly createReactiveFn: UnwrapRef<typeof import('@vueuse/core')['createReactiveFn']>
readonly createReusableTemplate: UnwrapRef<typeof import('@vueuse/core')['createReusableTemplate']>
readonly createSharedComposable: UnwrapRef<typeof import('@vueuse/core')['createSharedComposable']>
readonly createTemplatePromise: UnwrapRef<typeof import('@vueuse/core')['createTemplatePromise']>
readonly createUnrefFn: UnwrapRef<typeof import('@vueuse/core')['createUnrefFn']>
readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
readonly debouncedRef: UnwrapRef<typeof import('@vueuse/core')['debouncedRef']>
readonly debouncedWatch: UnwrapRef<typeof import('@vueuse/core')['debouncedWatch']>
readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
readonly eagerComputed: UnwrapRef<typeof import('@vueuse/core')['eagerComputed']>
readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
readonly extendRef: UnwrapRef<typeof import('@vueuse/core')['extendRef']>
readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
readonly h: UnwrapRef<typeof import('vue')['h']>
readonly ignorableWatch: UnwrapRef<typeof import('@vueuse/core')['ignorableWatch']>
readonly inject: UnwrapRef<typeof import('vue')['inject']>
readonly injectLocal: UnwrapRef<typeof import('@vueuse/core')['injectLocal']>
readonly isDefined: UnwrapRef<typeof import('@vueuse/core')['isDefined']>
readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
readonly makeDestructurable: UnwrapRef<typeof import('@vueuse/core')['makeDestructurable']>
readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
readonly onAddToFavorites: UnwrapRef<typeof import('@dcloudio/uni-app')['onAddToFavorites']>
readonly onBackPress: UnwrapRef<typeof import('@dcloudio/uni-app')['onBackPress']>
readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
readonly onClickOutside: UnwrapRef<typeof import('@vueuse/core')['onClickOutside']>
readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
readonly onError: UnwrapRef<typeof import('@dcloudio/uni-app')['onError']>
readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
readonly onHide: UnwrapRef<typeof import('@dcloudio/uni-app')['onHide']>
readonly onKeyStroke: UnwrapRef<typeof import('@vueuse/core')['onKeyStroke']>
readonly onLaunch: UnwrapRef<typeof import('@dcloudio/uni-app')['onLaunch']>
readonly onLoad: UnwrapRef<typeof import('@dcloudio/uni-app')['onLoad']>
readonly onLongPress: UnwrapRef<typeof import('@vueuse/core')['onLongPress']>
readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
readonly onNavigationBarButtonTap: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarButtonTap']>
readonly onNavigationBarSearchInputChanged: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputChanged']>
readonly onNavigationBarSearchInputClicked: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputClicked']>
readonly onNavigationBarSearchInputConfirmed: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputConfirmed']>
readonly onNavigationBarSearchInputFocusChanged: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputFocusChanged']>
readonly onPageNotFound: UnwrapRef<typeof import('@dcloudio/uni-app')['onPageNotFound']>
readonly onPageScroll: UnwrapRef<typeof import('@dcloudio/uni-app')['onPageScroll']>
readonly onPullDownRefresh: UnwrapRef<typeof import('@dcloudio/uni-app')['onPullDownRefresh']>
readonly onReachBottom: UnwrapRef<typeof import('@dcloudio/uni-app')['onReachBottom']>
readonly onReady: UnwrapRef<typeof import('@dcloudio/uni-app')['onReady']>
readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
readonly onResize: UnwrapRef<typeof import('@dcloudio/uni-app')['onResize']>
readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
readonly onShareAppMessage: UnwrapRef<typeof import('@dcloudio/uni-app')['onShareAppMessage']>
readonly onShareTimeline: UnwrapRef<typeof import('@dcloudio/uni-app')['onShareTimeline']>
readonly onShow: UnwrapRef<typeof import('@dcloudio/uni-app')['onShow']>
readonly onStartTyping: UnwrapRef<typeof import('@vueuse/core')['onStartTyping']>
readonly onTabItemTap: UnwrapRef<typeof import('@dcloudio/uni-app')['onTabItemTap']>
readonly onThemeChange: UnwrapRef<typeof import('@dcloudio/uni-app')['onThemeChange']>
readonly onUnhandledRejection: UnwrapRef<typeof import('@dcloudio/uni-app')['onUnhandledRejection']>
readonly onUnload: UnwrapRef<typeof import('@dcloudio/uni-app')['onUnload']>
readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
readonly onWatcherCleanup: UnwrapRef<typeof import('vue')['onWatcherCleanup']>
readonly pausableWatch: UnwrapRef<typeof import('@vueuse/core')['pausableWatch']>
readonly provide: UnwrapRef<typeof import('vue')['provide']>
readonly provideLocal: UnwrapRef<typeof import('@vueuse/core')['provideLocal']>
readonly reactify: UnwrapRef<typeof import('@vueuse/core')['reactify']>
readonly reactifyObject: UnwrapRef<typeof import('@vueuse/core')['reactifyObject']>
readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
readonly reactiveComputed: UnwrapRef<typeof import('@vueuse/core')['reactiveComputed']>
readonly reactiveOmit: UnwrapRef<typeof import('@vueuse/core')['reactiveOmit']>
readonly reactivePick: UnwrapRef<typeof import('@vueuse/core')['reactivePick']>
readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
readonly ref: UnwrapRef<typeof import('vue')['ref']>
readonly refAutoReset: UnwrapRef<typeof import('@vueuse/core')['refAutoReset']>
readonly refDebounced: UnwrapRef<typeof import('@vueuse/core')['refDebounced']>
readonly refDefault: UnwrapRef<typeof import('@vueuse/core')['refDefault']>
readonly refThrottled: UnwrapRef<typeof import('@vueuse/core')['refThrottled']>
readonly refWithControl: UnwrapRef<typeof import('@vueuse/core')['refWithControl']>
readonly request: UnwrapRef<typeof import('./utils/request.js')['default']>
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
readonly syncRef: UnwrapRef<typeof import('@vueuse/core')['syncRef']>
readonly syncRefs: UnwrapRef<typeof import('@vueuse/core')['syncRefs']>
readonly templateRef: UnwrapRef<typeof import('@vueuse/core')['templateRef']>
readonly throttledRef: UnwrapRef<typeof import('@vueuse/core')['throttledRef']>
readonly throttledWatch: UnwrapRef<typeof import('@vueuse/core')['throttledWatch']>
readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
readonly toReactive: UnwrapRef<typeof import('@vueuse/core')['toReactive']>
readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
readonly toValue: UnwrapRef<typeof import('vue')['toValue']>
readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
readonly tryOnBeforeMount: UnwrapRef<typeof import('@vueuse/core')['tryOnBeforeMount']>
readonly tryOnBeforeUnmount: UnwrapRef<typeof import('@vueuse/core')['tryOnBeforeUnmount']>
readonly tryOnMounted: UnwrapRef<typeof import('@vueuse/core')['tryOnMounted']>
readonly tryOnScopeDispose: UnwrapRef<typeof import('@vueuse/core')['tryOnScopeDispose']>
readonly tryOnUnmounted: UnwrapRef<typeof import('@vueuse/core')['tryOnUnmounted']>
readonly unref: UnwrapRef<typeof import('vue')['unref']>
readonly unrefElement: UnwrapRef<typeof import('@vueuse/core')['unrefElement']>
readonly until: UnwrapRef<typeof import('@vueuse/core')['until']>
readonly useActiveElement: UnwrapRef<typeof import('@vueuse/core')['useActiveElement']>
readonly useAnimate: UnwrapRef<typeof import('@vueuse/core')['useAnimate']>
readonly useArrayDifference: UnwrapRef<typeof import('@vueuse/core')['useArrayDifference']>
readonly useArrayEvery: UnwrapRef<typeof import('@vueuse/core')['useArrayEvery']>
readonly useArrayFilter: UnwrapRef<typeof import('@vueuse/core')['useArrayFilter']>
readonly useArrayFind: UnwrapRef<typeof import('@vueuse/core')['useArrayFind']>
readonly useArrayFindIndex: UnwrapRef<typeof import('@vueuse/core')['useArrayFindIndex']>
readonly useArrayFindLast: UnwrapRef<typeof import('@vueuse/core')['useArrayFindLast']>
readonly useArrayIncludes: UnwrapRef<typeof import('@vueuse/core')['useArrayIncludes']>
readonly useArrayJoin: UnwrapRef<typeof import('@vueuse/core')['useArrayJoin']>
readonly useArrayMap: UnwrapRef<typeof import('@vueuse/core')['useArrayMap']>
readonly useArrayReduce: UnwrapRef<typeof import('@vueuse/core')['useArrayReduce']>
readonly useArraySome: UnwrapRef<typeof import('@vueuse/core')['useArraySome']>
readonly useArrayUnique: UnwrapRef<typeof import('@vueuse/core')['useArrayUnique']>
readonly useAsyncQueue: UnwrapRef<typeof import('@vueuse/core')['useAsyncQueue']>
readonly useAsyncState: UnwrapRef<typeof import('@vueuse/core')['useAsyncState']>
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
readonly useBase64: UnwrapRef<typeof import('@vueuse/core')['useBase64']>
readonly useBattery: UnwrapRef<typeof import('@vueuse/core')['useBattery']>
readonly useBluetooth: UnwrapRef<typeof import('@vueuse/core')['useBluetooth']>
readonly useBreakpoints: UnwrapRef<typeof import('@vueuse/core')['useBreakpoints']>
readonly useBroadcastChannel: UnwrapRef<typeof import('@vueuse/core')['useBroadcastChannel']>
readonly useBrowserLocation: UnwrapRef<typeof import('@vueuse/core')['useBrowserLocation']>
readonly useCached: UnwrapRef<typeof import('@vueuse/core')['useCached']>
readonly useClipboard: UnwrapRef<typeof import('@vueuse/core')['useClipboard']>
readonly useClipboardItems: UnwrapRef<typeof import('@vueuse/core')['useClipboardItems']>
readonly useCloned: UnwrapRef<typeof import('@vueuse/core')['useCloned']>
readonly useColorMode: UnwrapRef<typeof import('@vueuse/core')['useColorMode']>
readonly useConfirmDialog: UnwrapRef<typeof import('@vueuse/core')['useConfirmDialog']>
readonly useCount: UnwrapRef<typeof import('./composables/useCount')['useCount']>
readonly useCounter: UnwrapRef<typeof import('@vueuse/core')['useCounter']>
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
readonly useCssVar: UnwrapRef<typeof import('@vueuse/core')['useCssVar']>
readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
readonly useCurrentElement: UnwrapRef<typeof import('@vueuse/core')['useCurrentElement']>
readonly useCycleList: UnwrapRef<typeof import('@vueuse/core')['useCycleList']>
readonly useDark: UnwrapRef<typeof import('@vueuse/core')['useDark']>
readonly useDateFormat: UnwrapRef<typeof import('@vueuse/core')['useDateFormat']>
readonly useDebounce: UnwrapRef<typeof import('@vueuse/core')['useDebounce']>
readonly useDebounceFn: UnwrapRef<typeof import('@vueuse/core')['useDebounceFn']>
readonly useDebouncedRefHistory: UnwrapRef<typeof import('@vueuse/core')['useDebouncedRefHistory']>
readonly useDeviceMotion: UnwrapRef<typeof import('@vueuse/core')['useDeviceMotion']>
readonly useDeviceOrientation: UnwrapRef<typeof import('@vueuse/core')['useDeviceOrientation']>
readonly useDevicePixelRatio: UnwrapRef<typeof import('@vueuse/core')['useDevicePixelRatio']>
readonly useDevicesList: UnwrapRef<typeof import('@vueuse/core')['useDevicesList']>
readonly useDisplayMedia: UnwrapRef<typeof import('@vueuse/core')['useDisplayMedia']>
readonly useDocumentVisibility: UnwrapRef<typeof import('@vueuse/core')['useDocumentVisibility']>
readonly useDraggable: UnwrapRef<typeof import('@vueuse/core')['useDraggable']>
readonly useDropZone: UnwrapRef<typeof import('@vueuse/core')['useDropZone']>
readonly useElementBounding: UnwrapRef<typeof import('@vueuse/core')['useElementBounding']>
readonly useElementByPoint: UnwrapRef<typeof import('@vueuse/core')['useElementByPoint']>
readonly useElementHover: UnwrapRef<typeof import('@vueuse/core')['useElementHover']>
readonly useElementSize: UnwrapRef<typeof import('@vueuse/core')['useElementSize']>
readonly useElementVisibility: UnwrapRef<typeof import('@vueuse/core')['useElementVisibility']>
readonly useEventBus: UnwrapRef<typeof import('@vueuse/core')['useEventBus']>
readonly useEventListener: UnwrapRef<typeof import('@vueuse/core')['useEventListener']>
readonly useEventSource: UnwrapRef<typeof import('@vueuse/core')['useEventSource']>
readonly useEyeDropper: UnwrapRef<typeof import('@vueuse/core')['useEyeDropper']>
readonly useFavicon: UnwrapRef<typeof import('@vueuse/core')['useFavicon']>
readonly useFetch: UnwrapRef<typeof import('@vueuse/core')['useFetch']>
readonly useFileDialog: UnwrapRef<typeof import('@vueuse/core')['useFileDialog']>
readonly useFileSystemAccess: UnwrapRef<typeof import('@vueuse/core')['useFileSystemAccess']>
readonly useFocus: UnwrapRef<typeof import('@vueuse/core')['useFocus']>
readonly useFocusWithin: UnwrapRef<typeof import('@vueuse/core')['useFocusWithin']>
readonly useFps: UnwrapRef<typeof import('@vueuse/core')['useFps']>
readonly useFullscreen: UnwrapRef<typeof import('@vueuse/core')['useFullscreen']>
readonly useGamepad: UnwrapRef<typeof import('@vueuse/core')['useGamepad']>
readonly useGeolocation: UnwrapRef<typeof import('@vueuse/core')['useGeolocation']>
readonly useId: UnwrapRef<typeof import('vue')['useId']>
readonly useIdle: UnwrapRef<typeof import('@vueuse/core')['useIdle']>
readonly useImage: UnwrapRef<typeof import('@vueuse/core')['useImage']>
readonly useInfiniteScroll: UnwrapRef<typeof import('@vueuse/core')['useInfiniteScroll']>
readonly useIntersectionObserver: UnwrapRef<typeof import('@vueuse/core')['useIntersectionObserver']>
readonly useInterval: UnwrapRef<typeof import('@vueuse/core')['useInterval']>
readonly useIntervalFn: UnwrapRef<typeof import('@vueuse/core')['useIntervalFn']>
readonly useKeyModifier: UnwrapRef<typeof import('@vueuse/core')['useKeyModifier']>
readonly useLastChanged: UnwrapRef<typeof import('@vueuse/core')['useLastChanged']>
readonly useLocalStorage: UnwrapRef<typeof import('@vueuse/core')['useLocalStorage']>
readonly useMagicKeys: UnwrapRef<typeof import('@vueuse/core')['useMagicKeys']>
readonly useManualRefHistory: UnwrapRef<typeof import('@vueuse/core')['useManualRefHistory']>
readonly useMediaControls: UnwrapRef<typeof import('@vueuse/core')['useMediaControls']>
readonly useMediaQuery: UnwrapRef<typeof import('@vueuse/core')['useMediaQuery']>
readonly useMemoize: UnwrapRef<typeof import('@vueuse/core')['useMemoize']>
readonly useMemory: UnwrapRef<typeof import('@vueuse/core')['useMemory']>
readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
readonly useMounted: UnwrapRef<typeof import('@vueuse/core')['useMounted']>
readonly useMouse: UnwrapRef<typeof import('@vueuse/core')['useMouse']>
readonly useMouseInElement: UnwrapRef<typeof import('@vueuse/core')['useMouseInElement']>
readonly useMousePressed: UnwrapRef<typeof import('@vueuse/core')['useMousePressed']>
readonly useMutationObserver: UnwrapRef<typeof import('@vueuse/core')['useMutationObserver']>
readonly useNavigatorLanguage: UnwrapRef<typeof import('@vueuse/core')['useNavigatorLanguage']>
readonly useNetwork: UnwrapRef<typeof import('@vueuse/core')['useNetwork']>
readonly useNow: UnwrapRef<typeof import('@vueuse/core')['useNow']>
readonly useObjectUrl: UnwrapRef<typeof import('@vueuse/core')['useObjectUrl']>
readonly useOffsetPagination: UnwrapRef<typeof import('@vueuse/core')['useOffsetPagination']>
readonly useOnline: UnwrapRef<typeof import('@vueuse/core')['useOnline']>
readonly usePageLeave: UnwrapRef<typeof import('@vueuse/core')['usePageLeave']>
readonly useParallax: UnwrapRef<typeof import('@vueuse/core')['useParallax']>
readonly useParentElement: UnwrapRef<typeof import('@vueuse/core')['useParentElement']>
readonly usePerformanceObserver: UnwrapRef<typeof import('@vueuse/core')['usePerformanceObserver']>
readonly usePermission: UnwrapRef<typeof import('@vueuse/core')['usePermission']>
readonly usePointer: UnwrapRef<typeof import('@vueuse/core')['usePointer']>
readonly usePointerLock: UnwrapRef<typeof import('@vueuse/core')['usePointerLock']>
readonly usePointerSwipe: UnwrapRef<typeof import('@vueuse/core')['usePointerSwipe']>
readonly usePreferredColorScheme: UnwrapRef<typeof import('@vueuse/core')['usePreferredColorScheme']>
readonly usePreferredContrast: UnwrapRef<typeof import('@vueuse/core')['usePreferredContrast']>
readonly usePreferredDark: UnwrapRef<typeof import('@vueuse/core')['usePreferredDark']>
readonly usePreferredLanguages: UnwrapRef<typeof import('@vueuse/core')['usePreferredLanguages']>
readonly usePreferredReducedMotion: UnwrapRef<typeof import('@vueuse/core')['usePreferredReducedMotion']>
readonly usePrevious: UnwrapRef<typeof import('@vueuse/core')['usePrevious']>
readonly useQuery: UnwrapRef<typeof import('./composables/useQuery')['useQuery']>
readonly useRafFn: UnwrapRef<typeof import('@vueuse/core')['useRafFn']>
readonly useRefHistory: UnwrapRef<typeof import('@vueuse/core')['useRefHistory']>
readonly useResizeObserver: UnwrapRef<typeof import('@vueuse/core')['useResizeObserver']>
readonly useScreenOrientation: UnwrapRef<typeof import('@vueuse/core')['useScreenOrientation']>
readonly useScreenSafeArea: UnwrapRef<typeof import('@vueuse/core')['useScreenSafeArea']>
readonly useScriptTag: UnwrapRef<typeof import('@vueuse/core')['useScriptTag']>
readonly useScroll: UnwrapRef<typeof import('@vueuse/core')['useScroll']>
readonly useScrollLock: UnwrapRef<typeof import('@vueuse/core')['useScrollLock']>
readonly useSessionStorage: UnwrapRef<typeof import('@vueuse/core')['useSessionStorage']>
readonly useShare: UnwrapRef<typeof import('@vueuse/core')['useShare']>
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
readonly useSorted: UnwrapRef<typeof import('@vueuse/core')['useSorted']>
readonly useSpeechRecognition: UnwrapRef<typeof import('@vueuse/core')['useSpeechRecognition']>
readonly useSpeechSynthesis: UnwrapRef<typeof import('@vueuse/core')['useSpeechSynthesis']>
readonly useStepper: UnwrapRef<typeof import('@vueuse/core')['useStepper']>
readonly useStorage: UnwrapRef<typeof import('@vueuse/core')['useStorage']>
readonly useStorageAsync: UnwrapRef<typeof import('@vueuse/core')['useStorageAsync']>
readonly useStyleTag: UnwrapRef<typeof import('@vueuse/core')['useStyleTag']>
readonly useSupported: UnwrapRef<typeof import('@vueuse/core')['useSupported']>
readonly useSwipe: UnwrapRef<typeof import('@vueuse/core')['useSwipe']>
readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
readonly useTemplateRefsList: UnwrapRef<typeof import('@vueuse/core')['useTemplateRefsList']>
readonly useTextDirection: UnwrapRef<typeof import('@vueuse/core')['useTextDirection']>
readonly useTextSelection: UnwrapRef<typeof import('@vueuse/core')['useTextSelection']>
readonly useTextareaAutosize: UnwrapRef<typeof import('@vueuse/core')['useTextareaAutosize']>
readonly useThrottle: UnwrapRef<typeof import('@vueuse/core')['useThrottle']>
readonly useThrottleFn: UnwrapRef<typeof import('@vueuse/core')['useThrottleFn']>
readonly useThrottledRefHistory: UnwrapRef<typeof import('@vueuse/core')['useThrottledRefHistory']>
readonly useTimeAgo: UnwrapRef<typeof import('@vueuse/core')['useTimeAgo']>
readonly useTimeout: UnwrapRef<typeof import('@vueuse/core')['useTimeout']>
readonly useTimeoutFn: UnwrapRef<typeof import('@vueuse/core')['useTimeoutFn']>
readonly useTimeoutPoll: UnwrapRef<typeof import('@vueuse/core')['useTimeoutPoll']>
readonly useTimestamp: UnwrapRef<typeof import('@vueuse/core')['useTimestamp']>
readonly useTitle: UnwrapRef<typeof import('@vueuse/core')['useTitle']>
readonly useToNumber: UnwrapRef<typeof import('@vueuse/core')['useToNumber']>
readonly useToString: UnwrapRef<typeof import('@vueuse/core')['useToString']>
readonly useToggle: UnwrapRef<typeof import('@vueuse/core')['useToggle']>
readonly useTransition: UnwrapRef<typeof import('@vueuse/core')['useTransition']>
readonly useUrlSearchParams: UnwrapRef<typeof import('@vueuse/core')['useUrlSearchParams']>
readonly useUserMedia: UnwrapRef<typeof import('@vueuse/core')['useUserMedia']>
readonly useVModel: UnwrapRef<typeof import('@vueuse/core')['useVModel']>
readonly useVModels: UnwrapRef<typeof import('@vueuse/core')['useVModels']>
readonly useVibrate: UnwrapRef<typeof import('@vueuse/core')['useVibrate']>
readonly useVirtualList: UnwrapRef<typeof import('@vueuse/core')['useVirtualList']>
readonly useWakeLock: UnwrapRef<typeof import('@vueuse/core')['useWakeLock']>
readonly useWebNotification: UnwrapRef<typeof import('@vueuse/core')['useWebNotification']>
readonly useWebSocket: UnwrapRef<typeof import('@vueuse/core')['useWebSocket']>
readonly useWebWorker: UnwrapRef<typeof import('@vueuse/core')['useWebWorker']>
readonly useWebWorkerFn: UnwrapRef<typeof import('@vueuse/core')['useWebWorkerFn']>
readonly useWindowFocus: UnwrapRef<typeof import('@vueuse/core')['useWindowFocus']>
readonly useWindowScroll: UnwrapRef<typeof import('@vueuse/core')['useWindowScroll']>
readonly useWindowSize: UnwrapRef<typeof import('@vueuse/core')['useWindowSize']>
readonly watch: UnwrapRef<typeof import('vue')['watch']>
readonly watchArray: UnwrapRef<typeof import('@vueuse/core')['watchArray']>
readonly watchAtMost: UnwrapRef<typeof import('@vueuse/core')['watchAtMost']>
readonly watchDebounced: UnwrapRef<typeof import('@vueuse/core')['watchDebounced']>
readonly watchDeep: UnwrapRef<typeof import('@vueuse/core')['watchDeep']>
readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
readonly watchIgnorable: UnwrapRef<typeof import('@vueuse/core')['watchIgnorable']>
readonly watchImmediate: UnwrapRef<typeof import('@vueuse/core')['watchImmediate']>
readonly watchOnce: UnwrapRef<typeof import('@vueuse/core')['watchOnce']>
readonly watchPausable: UnwrapRef<typeof import('@vueuse/core')['watchPausable']>
readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
readonly watchThrottled: UnwrapRef<typeof import('@vueuse/core')['watchThrottled']>
readonly watchTriggerable: UnwrapRef<typeof import('@vueuse/core')['watchTriggerable']>
readonly watchWithFilter: UnwrapRef<typeof import('@vueuse/core')['watchWithFilter']>
readonly whenever: UnwrapRef<typeof import('@vueuse/core')['whenever']>
}
}

47
src/components.d.ts vendored Normal file
View File

@@ -0,0 +1,47 @@
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// Generated by vite-plugin-uni-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}
declare module 'vue' {
export interface GlobalComponents {
AppFooter: typeof import('./components/AppFooter.vue')['default']
AppLogos: typeof import('./components/AppLogos.vue')['default']
HiCounter: typeof import('./components/HiCounter.vue')['default']
InputEntry: typeof import('./components/InputEntry.vue')['default']
LButtonGroup: typeof import('./components/LButtonGroup.vue')['default']
LExpandCollapse: typeof import('./components/LExpandCollapse.vue')['default']
LTabbar: typeof import('./components/LTabbar.vue')['default']
LTable: typeof import('./components/LTable.vue')['default']
LTitle: typeof import('./components/LTitle.vue')['default']
PrivacyModel: typeof import('./components/PrivacyModel.vue')['default']
QiunDataChartsQiunDataCharts: typeof import('./components/qiun-data-charts/qiun-data-charts.vue')['default']
QiunLoadingLoading1: typeof import('./components/qiun-loading/loading1.vue')['default']
QiunLoadingLoading2: typeof import('./components/qiun-loading/loading2.vue')['default']
QiunLoadingLoading3: typeof import('./components/qiun-loading/loading3.vue')['default']
QiunLoadingLoading4: typeof import('./components/qiun-loading/loading4.vue')['default']
QiunLoadingLoading5: typeof import('./components/qiun-loading/loading5.vue')['default']
QiunLoadingQiunLoading: typeof import('./components/qiun-loading/qiun-loading.vue')['default']
}
}
Button: typeof import('wot-design-uni/components/wd-button/wd-button.vue')['default']
WdCell: typeof import('wot-design-uni/components/wd-cell/wd-cell.vue')['default']
WdCheckbox: typeof import('wot-design-uni/components/wd-checkbox/wd-checkbox.vue')['default']
WdCollapse: typeof import('wot-design-uni/components/wd-collapse/wd-collapse.vue')['default']
WdCollapseItem: typeof import('wot-design-uni/components/wd-collapse-item/wd-collapse-item.vue')['default']
WdDivider: typeof import('wot-design-uni/components/wd-divider/wd-divider.vue')['default']
WdIcon: typeof import('wot-design-uni/components/wd-icon/wd-icon.vue')['default']
WdImg: typeof import('wot-design-uni/components/wd-img/wd-img.vue')['default']
WdInput: typeof import('wot-design-uni/components/wd-input/wd-input.vue')['default']
WdLoadmore: typeof import('wot-design-uni/components/wd-loadmore/wd-loadmore.vue')['default']
WdNavbar: typeof import('wot-design-uni/components/wd-navbar/wd-navbar.vue')['default']
WdNoticeBar: typeof import('wot-design-uni/components/wd-notice-bar/wd-notice-bar.vue')['default']
WdPopup: typeof import('wot-design-uni/components/wd-popup/wd-popup.vue')['default']
WdRadio: typeof import('wot-design-uni/components/wd-radio/wd-radio.vue')['default']
WdRadioGroup: typeof import('wot-design-uni/components/wd-radio-group/wd-radio-group.vue')['default']
WdTabbar: typeof import('wot-design-uni/components/wd-tabbar/wd-tabbar.vue')['default']
WdTabbarItem: typeof import('wot-design-uni/components/wd-tabbar-item/wd-tabbar-item.vue')['default']
}
}

View File

@@ -0,0 +1,25 @@
<script lang="ts" setup>
function handleClickGithub() {
if (window?.open) {
window.open('https://github.com/uni-helper/vitesse-uni-app')
}
else {
uni.showToast({
icon: 'none',
title: '请使用浏览器打开',
})
}
}
</script>
<template>
<view text="xl gray4" m-5 flex items-center justify-center gap-3>
<navigator url="/pages/index" open-type="redirect">
<view i-carbon-campsite />
</navigator>
<view cursor-pointer @click="handleClickGithub">
<view i-carbon:logo-github />
</view>
</view>
</template>

View File

@@ -0,0 +1,27 @@
<template>
<view inline-flex cursor-default text-2xl font-300>
<view
flex
flex-col
items-center
hover-class="drop-shadow-md drop-shadow-color-green5"
>
<image inline-block h-18 w-18 src="/static/logo.svg" />
<text mt--2 text-green5>
uni-helper
</text>
</view>
<view
text="3xl gray4"
m="x-4 y-auto"
i-carbon-add transform transition-all-500 hover:rotate-135
/>
<view flex flex-col hover-class="drop-shadow-md drop-shadow-color-purple5">
<image inline-block h-18 w-18 src="/static/vite.png" />
<text mt--2 text-purple5>
Vite
</text>
</view>
</view>
</template>

View File

@@ -0,0 +1,23 @@
<script setup lang="ts">
const { count, inc, dec } = useCount()
</script>
<template>
<view inline-flex m="y-3">
<view class="btn" @click="dec()">
<text i-carbon-subtract />
</view>
<view font="mono" w="15" m-auto inline-block>
{{ count }}
</view>
<view class="btn" @click="inc()">
<text i-carbon-add />
</view>
</view>
</template>
<style>
.btn {
--at-apply: w-8 h-8 flex items-center justify-center rounded-full bg-teal-600 text-white cursor-pointer
}
</style>

View File

@@ -0,0 +1,47 @@
<script setup lang="ts">
const name = ref('')
function go() {
if (name.value) {
uni.navigateTo({
url: `/pages/hi?name=${name.value}`,
})
}
}
</script>
<template>
<view>
<view
p="x-4 y-2"
w="250px"
m="t-5 auto"
text="center"
bg="transparent"
border="~ rounded gray-200 dark:gray-700 solid"
outline="none active:none"
box-border
w-full
>
<input
v-model="name"
placeholder="What's your name?"
type="text"
autocomplete="off"
mr-0 w-full
>
</view>
<view>
<button
:disabled="!name"
m="t-3 auto"
m-auto w-120rpx rounded bg-teal-600 px-4 py-1 text-sm text-white
hover-class="bg-teal-700"
@click="go"
>
GO
</button>
</view>
</view>
</template>

View File

@@ -0,0 +1,87 @@
<script setup>
// 接收 type 和 options props 以及 v-model
const props = defineProps({
type: {
type: String,
default: 'purple-pink', // 默认颜色渐变
},
options: {
type: Array,
required: true, // 动态传入选项
},
modelValue: {
type: String,
default: '', // v-model 绑定的值
},
})
const emit = defineEmits(['update:modelValue'])
// 选中内容绑定 v-model
const selected = ref(props.modelValue)
// 监听 v-model 的变化
watch(() => props.modelValue, (newValue) => {
selected.value = newValue
})
// 根据type动态生成分割线的类名
const lineClass = computed(() => {
switch (props.type) {
case 'blue-green':
return 'bg-gradient-to-r from-blue-400 via-green-500 to-teal-500'
case 'orange-yellow':
return 'bg-gradient-to-r from-orange-400 via-yellow-500 to-yellow-600'
case 'red-purple':
return 'bg-gradient-to-r from-red-500 via-purple-500 to-purple-600'
default:
return 'bg-gradient-to-r from-purple-400 via-pink-500 to-red-500'
}
})
// 计算滑动线的位置和宽度
const slideLineStyle = computed(() => {
const index = props.options.findIndex(option => option.value === selected.value)
const buttonWidth = 100 / props.options.length
return {
width: `${buttonWidth}%`,
transform: `translateX(${index * 100}%)`,
}
})
// 选择选项函数
function selectOption(option) {
selected.value = option.value
// 触发 v-model 的更新
emit('update:modelValue', option.value)
}
</script>
<template>
<div class="relative flex">
<div
v-for="(option, index) in options"
:key="index"
class="flex-1 shrink-0 cursor-pointer py-2 text-center text-size-sm font-bold transition-transform duration-200 ease-in-out"
:class="{ 'text-gray-900': selected === option.value, 'text-gray-500': selected !== option.value }"
@click="selectOption(option)"
>
{{ option.label }}
</div>
<div
class="absolute bottom-0 h-[3px] rounded transition-all duration-300"
:style="slideLineStyle"
:class="lineClass"
/>
</div>
</template>
<style scoped>
/* 自定义样式 */
button {
outline: none;
border: none;
cursor: pointer;
}
button:focus {
outline: none;
}
</style>

View File

@@ -0,0 +1,61 @@
<script setup>
import { computed, ref, useSlots } from 'vue'
// 接收最大长度的 prop默认值 100
const props = defineProps({
maxLength: {
type: Number,
default: 100,
},
})
// 记录当前是否展开
const isExpanded = ref(false)
// 获取 slot 内容
const slots = useSlots()
// 计算截断后的内容
const truncatedContent = computed(() => {
const slotContent = getSlotContent()
return slotContent.length > props.maxLength
? `${slotContent.slice(0, props.maxLength)}...`
: slotContent
})
// 获取 slot 内容,确保返回的内容为字符串
function getSlotContent() {
const slotVNode = slots.default ? slots.default()[0] : null
return slotVNode ? slotVNode.children.toString().trim() : '' // 获取并转化为字符串
}
// 切换展开/收起状态
function toggleExpand() {
isExpanded.value = !isExpanded.value
}
</script>
<template>
<view>
<!-- 展开/收起按钮 -->
<!-- 展开/收起的内容 -->
<text v-if="isExpanded">
<slot /> <!-- 使用 slot 来展示传递的内容 -->
</text>
<text v-else>
<text>{{ truncatedContent }}</text>
</text>
<text
:title="isExpanded ? '点击收起' : '点击展开'"
class="cursor-pointer text-blue-500"
@click="toggleExpand"
>
{{ isExpanded ? '收起' : '展开' }}
</text>
</view>
</template>
<style scoped>
</style>

View File

@@ -0,0 +1,30 @@
<script setup>
const tabbar = ref('index')
const menu = reactive([{ title: '首页', icon: 'home', name: 'index' }, { title: 'AI律师', icon: 'chat', name: 'ai' }, { title: '我的', icon: 'user', name: 'me' }])
function tabChange({ value }) {
uni.switchTab({
url: `/pages/${value}`,
})
}
onShow(() => {
const currentPage = getCurrentPages()[getCurrentPages().length - 1].route
const pageName = currentPage.split('/').pop()
tabbar.value = pageName
})
onMounted(() => {
uni.hideTabBar()
})
</script>
<template>
<wd-tabbar v-model="tabbar" custom-class="qnc-tabbar" shape="round" safe-area-inset-bottom fixed @change="tabChange">
<wd-tabbar-item v-for="(item, index) in menu" :key="index" :name="item.name" :title="item.title" :icon="item.icon" />
</wd-tabbar>
</template>
<style scoped>
:deep(.qnc-tabbar) {
bottom: 16px !important;
}
</style>

98
src/components/LTable.vue Normal file
View File

@@ -0,0 +1,98 @@
<script setup>
import { computed } from 'vue'
// 接收表格数据和类型的 props
const props = defineProps({
data: {
type: Array,
required: true,
},
type: {
type: String,
default: 'purple-pink', // 默认渐变颜色
},
})
// 根据 type 设置不同的渐变颜色(偶数行)
const evenClass = computed(() => {
switch (props.type) {
case 'blue-green':
return 'bg-teal-100/40'
// return 'bg-gradient-to-r from-blue-50 via-green-50 to-teal-50'
case 'orange-yellow':
return 'bg-gradient-to-r from-orange-50 via-yellow-50 to-yellow-100'
case 'red-purple':
return 'bg-gradient-to-r from-red-50 via-purple-50 to-purple-100'
default:
return 'bg-gradient-to-r from-purple-50 via-pink-50 to-red-50'
}
})
// 动态计算表头的背景颜色和文本颜色
const headerClass = computed(() => {
switch (props.type) {
case 'blue-green':
return 'bg-teal-200'
// return 'bg-gradient-to-r from-blue-200 via-green-200 to-teal-200'
case 'orange-yellow':
return 'bg-gradient-to-r from-orange-200 via-yellow-200 to-yellow-200'
case 'red-purple':
return 'bg-gradient-to-r from-red-200 via-purple-200 to-purple-200'
default:
return 'bg-gradient-to-r from-purple-200 via-pink-200 to-red-200'
}
})
// 斑马纹样式,偶数行带颜色,奇数行没有颜色,且从第二行开始
function zebraClass(index) {
return index % 2 === 1 ? evenClass.value : ''
}
</script>
<template>
<div class="l-table overflow-x-auto">
<table class="min-w-full border-collapse table-auto text-center text-size-xs">
<thead :class="headerClass">
<tr>
<!-- 插槽渲染表头 -->
<slot name="header" />
</tr>
</thead>
<tbody>
<tr
v-for="(row, index) in data"
:key="index"
:class="zebraClass(index)"
class="border-t"
>
<!-- 插槽渲染每一列的内容 -->
<slot :row="row" />
</tr>
</tbody>
</table>
</div>
</template>
<style scoped>
/* 基础表格样式 */
th {
font-weight: bold;
padding: 12px;
text-align: left;
border: 1px solid #e5e7eb;
}
/* 表格行样式 */
td {
padding: 12px;
border: 1px solid #e5e7eb;
}
table {
width: 100%;
border-spacing: 0;
}
.l-table{
@apply rounded-xl;;
overflow: hidden;
}
</style>

58
src/components/LTitle.vue Normal file
View File

@@ -0,0 +1,58 @@
<script setup>
// 接收 props
const props = defineProps({
title: String,
type: {
type: String,
default: 'purple-pink', // 默认渐变
},
})
// 根据type返回不同的背景类名
const titleClass = computed(() => {
switch (props.type) {
case 'blue-green':
return 'bg-gradient-to-r from-blue-400 via-green-500 to-teal-500'
case 'orange-yellow':
return 'bg-gradient-to-r from-orange-400 via-yellow-500 to-yellow-600'
case 'red-purple':
return 'bg-gradient-to-r from-red-500 via-purple-500 to-purple-600'
default:
return 'bg-gradient-to-r from-purple-400 via-pink-500 to-red-500'
}
})
// 分割线颜色与背景对应
const lineClass = computed(() => {
switch (props.type) {
case 'blue-green':
return 'bg-gradient-to-r from-blue-400 via-green-500 to-teal-500'
case 'orange-yellow':
return 'bg-gradient-to-r from-orange-400 via-yellow-500 to-yellow-600'
case 'red-purple':
return 'bg-gradient-to-r from-red-500 via-purple-500 to-purple-600'
default:
return 'bg-gradient-to-r from-purple-400 via-pink-500 to-red-500'
}
})
</script>
<template>
<div class="relative">
<!-- 标题部分 -->
<div :class="titleClass" class="inline-block rounded-lg px-2 py-1 text-white font-bold shadow-md">
{{ title }}
</div>
<!-- 左上角修饰 -->
<div class="absolute left-0 top-0 h-4 w-4 transform rounded-full bg-white shadow-md -translate-x-2 -translate-y-2" />
<!-- 分割线 -->
<div class="relative mt-1.5">
<div :class="lineClass" class="h-[2px] w-full rounded" />
</div>
</div>
</template>
<style scoped>
</style>

View File

@@ -0,0 +1,144 @@
<script setup>
const showPrivacyModal = ref(true)
function openPage(url) {
uni.navigateTo({ url })
}
function acceptPrivacy() {
uni.setStorageSync('privacyAccepted', true)
showPrivacyModal.value = false
}
function refusePrivacy() {
uni.showModal({
title: '确认提示',
content: '您点击同意并继续视为您已同意上述协议的全部内容。',
confirmText: '同意并继续',
cancelText: '退出',
success: (res) => {
if (res.confirm) {
acceptPrivacy()
}
else {
uni.exitApp()
}
},
})
}
// 检查隐私协议是否已经同意
onMounted(() => {
const accepted = uni.getStorageSync('privacyAccepted')
if (accepted) {
showPrivacyModal.value = false
}
})
</script>
<template>
<view v-if="showPrivacyModal" class="privacy-modal">
<view class="modal-mask" />
<view class="modal-content">
<view class="modal-title">
用户协议和隐私政策
</view>
<view class="modal-message">
感谢您使用全能查APP! 我们非常重视您的隐私保护和个人信息保护在您使用全能查APP前请您仔细阅读充分理解
<text class="link" @click="openPage('/pages/userAgreement')">
用户协议
</text>
<text class="link" @click="openPage('/pages/privacyPolicy')">
隐私政策
</text>
的各项条款如果您同意请点击下方按钮开始接受我们的服务
</view>
<view class="modal-buttons">
<view class="button refuse" @click="refusePrivacy">
退出应用
</view>
<view class="button accept" @click="acceptPrivacy">
同意并继续
</view>
</view>
</view>
</view>
</template>
<style scoped>
.privacy-modal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
}
.modal-mask {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
}
.modal-content {
background: #fff;
padding: 20px;
border-radius: 10px;
width: 80%;
max-width: 320px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
z-index:1001;
}
.modal-title {
font-size: 18px;
font-weight: bold;
margin-bottom: 10px;
text-align: center;
}
.modal-message {
font-size: 14px;
line-height: 1.5;
color: #333;
margin-bottom: 20px;
}
.link {
color: #007aff;
text-decoration: underline;
cursor: pointer;
}
.modal-buttons {
display: flex;
justify-content: space-between;
}
.button {
flex: 1;
padding: 10px 0;
margin: 0 5px;
border: none;
border-radius: 5px;
font-size: 14px;
text-align: center;
}
.button.accept {
background: #007aff;
color: #fff;
}
.button.accept:active{
background: #016ee2;
color: #fff;
}
.button.refuse {
background: #f0f0f0;
color: #333;
}
.button.refuse:active {
background: #c6c6c6;
color: #333;
}
</style>

View File

@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,162 @@
<template>
<view class="container loading1">
<view class="shape shape1"></view>
<view class="shape shape2"></view>
<view class="shape shape3"></view>
<view class="shape shape4"></view>
</view>
</template>
<script>
export default {
name: 'loading1',
data() {
return {
};
}
}
</script>
<style scoped="true">
.container {
width: 30px;
height: 30px;
position: relative;
}
.container.loading1 {
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
.container .shape {
position: absolute;
width: 10px;
height: 10px;
border-radius: 1px;
}
.container .shape.shape1 {
left: 0;
background-color: #1890FF;
}
.container .shape.shape2 {
right: 0;
background-color: #91CB74;
}
.container .shape.shape3 {
bottom: 0;
background-color: #FAC858;
}
.container .shape.shape4 {
bottom: 0;
right: 0;
background-color: #EE6666;
}
.loading1 .shape1 {
-webkit-animation: animation1shape1 0.5s ease 0s infinite alternate;
animation: animation1shape1 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation1shape1 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(16px, 16px);
transform: translate(16px, 16px);
}
}
@keyframes animation1shape1 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(16px, 16px);
transform: translate(16px, 16px);
}
}
.loading1 .shape2 {
-webkit-animation: animation1shape2 0.5s ease 0s infinite alternate;
animation: animation1shape2 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation1shape2 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-16px, 16px);
transform: translate(-16px, 16px);
}
}
@keyframes animation1shape2 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-16px, 16px);
transform: translate(-16px, 16px);
}
}
.loading1 .shape3 {
-webkit-animation: animation1shape3 0.5s ease 0s infinite alternate;
animation: animation1shape3 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation1shape3 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(16px, -16px);
transform: translate(16px, -16px);
}
}
@keyframes animation1shape3 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(16px, -16px);
transform: translate(16px, -16px);
}
}
.loading1 .shape4 {
-webkit-animation: animation1shape4 0.5s ease 0s infinite alternate;
animation: animation1shape4 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation1shape4 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-16px, -16px);
transform: translate(-16px, -16px);
}
}
@keyframes animation1shape4 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-16px, -16px);
transform: translate(-16px, -16px);
}
}
</style>

View File

@@ -0,0 +1,170 @@
<template>
<view class="container loading2">
<view class="shape shape1"></view>
<view class="shape shape2"></view>
<view class="shape shape3"></view>
<view class="shape shape4"></view>
</view>
</template>
<script>
export default {
name: 'loading2',
data() {
return {
};
}
}
</script>
<style scoped="true">
.container {
width: 30px;
height: 30px;
position: relative;
}
.container.loading2 {
-webkit-transform: rotate(10deg);
transform: rotate(10deg);
}
.container.loading2 .shape {
border-radius: 5px;
}
.container.loading2{
-webkit-animation: rotation 1s infinite;
animation: rotation 1s infinite;
}
.container .shape {
position: absolute;
width: 10px;
height: 10px;
border-radius: 1px;
}
.container .shape.shape1 {
left: 0;
background-color: #1890FF;
}
.container .shape.shape2 {
right: 0;
background-color: #91CB74;
}
.container .shape.shape3 {
bottom: 0;
background-color: #FAC858;
}
.container .shape.shape4 {
bottom: 0;
right: 0;
background-color: #EE6666;
}
.loading2 .shape1 {
-webkit-animation: animation2shape1 0.5s ease 0s infinite alternate;
animation: animation2shape1 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation2shape1 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(20px, 20px);
transform: translate(20px, 20px);
}
}
@keyframes animation2shape1 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(20px, 20px);
transform: translate(20px, 20px);
}
}
.loading2 .shape2 {
-webkit-animation: animation2shape2 0.5s ease 0s infinite alternate;
animation: animation2shape2 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation2shape2 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-20px, 20px);
transform: translate(-20px, 20px);
}
}
@keyframes animation2shape2 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-20px, 20px);
transform: translate(-20px, 20px);
}
}
.loading2 .shape3 {
-webkit-animation: animation2shape3 0.5s ease 0s infinite alternate;
animation: animation2shape3 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation2shape3 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(20px, -20px);
transform: translate(20px, -20px);
}
}
@keyframes animation2shape3 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(20px, -20px);
transform: translate(20px, -20px);
}
}
.loading2 .shape4 {
-webkit-animation: animation2shape4 0.5s ease 0s infinite alternate;
animation: animation2shape4 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation2shape4 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-20px, -20px);
transform: translate(-20px, -20px);
}
}
@keyframes animation2shape4 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-20px, -20px);
transform: translate(-20px, -20px);
}
}
</style>

View File

@@ -0,0 +1,173 @@
<template>
<view class="container loading3">
<view class="shape shape1"></view>
<view class="shape shape2"></view>
<view class="shape shape3"></view>
<view class="shape shape4"></view>
</view>
</template>
<script>
export default {
name: 'loading3',
data() {
return {
};
}
}
</script>
<style scoped="true">
.container {
width: 30px;
height: 30px;
position: relative;
}
.container.loading3 {
-webkit-animation: rotation 1s infinite;
animation: rotation 1s infinite;
}
.container.loading3 .shape1 {
border-top-left-radius: 10px;
}
.container.loading3 .shape2 {
border-top-right-radius: 10px;
}
.container.loading3 .shape3 {
border-bottom-left-radius: 10px;
}
.container.loading3 .shape4 {
border-bottom-right-radius: 10px;
}
.container .shape {
position: absolute;
width: 10px;
height: 10px;
border-radius: 1px;
}
.container .shape.shape1 {
left: 0;
background-color: #1890FF;
}
.container .shape.shape2 {
right: 0;
background-color: #91CB74;
}
.container .shape.shape3 {
bottom: 0;
background-color: #FAC858;
}
.container .shape.shape4 {
bottom: 0;
right: 0;
background-color: #EE6666;
}
.loading3 .shape1 {
-webkit-animation: animation3shape1 0.5s ease 0s infinite alternate;
animation: animation3shape1 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation3shape1 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(5px, 5px);
transform: translate(5px, 5px);
}
}
@keyframes animation3shape1 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(5px, 5px);
transform: translate(5px, 5px);
}
}
.loading3 .shape2 {
-webkit-animation: animation3shape2 0.5s ease 0s infinite alternate;
animation: animation3shape2 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation3shape2 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-5px, 5px);
transform: translate(-5px, 5px);
}
}
@keyframes animation3shape2 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-5px, 5px);
transform: translate(-5px, 5px);
}
}
.loading3 .shape3 {
-webkit-animation: animation3shape3 0.5s ease 0s infinite alternate;
animation: animation3shape3 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation3shape3 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(5px, -5px);
transform: translate(5px, -5px);
}
}
@keyframes animation3shape3 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(5px, -5px);
transform: translate(5px, -5px);
}
}
.loading3 .shape4 {
-webkit-animation: animation3shape4 0.5s ease 0s infinite alternate;
animation: animation3shape4 0.5s ease 0s infinite alternate;
}
@-webkit-keyframes animation3shape4 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-5px, -5px);
transform: translate(-5px, -5px);
}
}
@keyframes animation3shape4 {
from {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
to {
-webkit-transform: translate(-5px, -5px);
transform: translate(-5px, -5px);
}
}
</style>

View File

@@ -0,0 +1,222 @@
<template>
<view class="container loading5">
<view class="shape shape1"></view>
<view class="shape shape2"></view>
<view class="shape shape3"></view>
<view class="shape shape4"></view>
</view>
</template>
<script>
export default {
name: 'loading5',
data() {
return {
};
}
}
</script>
<style scoped="true">
.container {
width: 30px;
height: 30px;
position: relative;
}
.container.loading5 .shape {
width: 15px;
height: 15px;
}
.container .shape {
position: absolute;
width: 10px;
height: 10px;
border-radius: 1px;
}
.container .shape.shape1 {
left: 0;
background-color: #1890FF;
}
.container .shape.shape2 {
right: 0;
background-color: #91CB74;
}
.container .shape.shape3 {
bottom: 0;
background-color: #FAC858;
}
.container .shape.shape4 {
bottom: 0;
right: 0;
background-color: #EE6666;
}
.loading5 .shape1 {
animation: animation5shape1 2s ease 0s infinite reverse;
}
@-webkit-keyframes animation5shape1 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(0, 15px);
transform: translate(0, 15px);
}
50% {
-webkit-transform: translate(15px, 15px);
transform: translate(15px, 15px);
}
75% {
-webkit-transform: translate(15px, 0);
transform: translate(15px, 0);
}
}
@keyframes animation5shape1 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(0, 15px);
transform: translate(0, 15px);
}
50% {
-webkit-transform: translate(15px, 15px);
transform: translate(15px, 15px);
}
75% {
-webkit-transform: translate(15px, 0);
transform: translate(15px, 0);
}
}
.loading5 .shape2 {
animation: animation5shape2 2s ease 0s infinite reverse;
}
@-webkit-keyframes animation5shape2 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(-15px, 0);
transform: translate(-15px, 0);
}
50% {
-webkit-transform: translate(-15px, 15px);
transform: translate(-15px, 15px);
}
75% {
-webkit-transform: translate(0, 15px);
transform: translate(0, 15px);
}
}
@keyframes animation5shape2 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(-15px, 0);
transform: translate(-15px, 0);
}
50% {
-webkit-transform: translate(-15px, 15px);
transform: translate(-15px, 15px);
}
75% {
-webkit-transform: translate(0, 15px);
transform: translate(0, 15px);
}
}
.loading5 .shape3 {
animation: animation5shape3 2s ease 0s infinite reverse;
}
@-webkit-keyframes animation5shape3 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(15px, 0);
transform: translate(15px, 0);
}
50% {
-webkit-transform: translate(15px, -15px);
transform: translate(15px, -15px);
}
75% {
-webkit-transform: translate(0, -15px);
transform: translate(0, -15px);
}
}
@keyframes animation5shape3 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(15px, 0);
transform: translate(15px, 0);
}
50% {
-webkit-transform: translate(15px, -15px);
transform: translate(15px, -15px);
}
75% {
-webkit-transform: translate(0, -15px);
transform: translate(0, -15px);
}
}
.loading5 .shape4 {
animation: animation5shape4 2s ease 0s infinite reverse;
}
@-webkit-keyframes animation5shape4 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(0, -15px);
transform: translate(0, -15px);
}
50% {
-webkit-transform: translate(-15px, -15px);
transform: translate(-15px, -15px);
}
75% {
-webkit-transform: translate(-15px, 0);
transform: translate(-15px, 0);
}
}
@keyframes animation5shape4 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(0, -15px);
transform: translate(0, -15px);
}
50% {
-webkit-transform: translate(-15px, -15px);
transform: translate(-15px, -15px);
}
75% {
-webkit-transform: translate(-15px, 0);
transform: translate(-15px, 0);
}
}
</style>

View File

@@ -0,0 +1,229 @@
<template>
<view class="container loading6">
<view class="shape shape1"></view>
<view class="shape shape2"></view>
<view class="shape shape3"></view>
<view class="shape shape4"></view>
</view>
</template>
<script>
export default {
name: 'loading6',
data() {
return {
};
}
}
</script>
<style scoped="true">
.container {
width: 30px;
height: 30px;
position: relative;
}
.container.loading6 {
-webkit-animation: rotation 1s infinite;
animation: rotation 1s infinite;
}
.container.loading6 .shape {
width: 12px;
height: 12px;
border-radius: 2px;
}
.container .shape {
position: absolute;
width: 10px;
height: 10px;
border-radius: 1px;
}
.container .shape.shape1 {
left: 0;
background-color: #1890FF;
}
.container .shape.shape2 {
right: 0;
background-color: #91CB74;
}
.container .shape.shape3 {
bottom: 0;
background-color: #FAC858;
}
.container .shape.shape4 {
bottom: 0;
right: 0;
background-color: #EE6666;
}
.loading6 .shape1 {
-webkit-animation: animation6shape1 2s linear 0s infinite normal;
animation: animation6shape1 2s linear 0s infinite normal;
}
@-webkit-keyframes animation6shape1 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(0, 18px);
transform: translate(0, 18px);
}
50% {
-webkit-transform: translate(18px, 18px);
transform: translate(18px, 18px);
}
75% {
-webkit-transform: translate(18px, 0);
transform: translate(18px, 0);
}
}
@keyframes animation6shape1 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(0, 18px);
transform: translate(0, 18px);
}
50% {
-webkit-transform: translate(18px, 18px);
transform: translate(18px, 18px);
}
75% {
-webkit-transform: translate(18px, 0);
transform: translate(18px, 0);
}
}
.loading6 .shape2 {
-webkit-animation: animation6shape2 2s linear 0s infinite normal;
animation: animation6shape2 2s linear 0s infinite normal;
}
@-webkit-keyframes animation6shape2 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(-18px, 0);
transform: translate(-18px, 0);
}
50% {
-webkit-transform: translate(-18px, 18px);
transform: translate(-18px, 18px);
}
75% {
-webkit-transform: translate(0, 18px);
transform: translate(0, 18px);
}
}
@keyframes animation6shape2 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(-18px, 0);
transform: translate(-18px, 0);
}
50% {
-webkit-transform: translate(-18px, 18px);
transform: translate(-18px, 18px);
}
75% {
-webkit-transform: translate(0, 18px);
transform: translate(0, 18px);
}
}
.loading6 .shape3 {
-webkit-animation: animation6shape3 2s linear 0s infinite normal;
animation: animation6shape3 2s linear 0s infinite normal;
}
@-webkit-keyframes animation6shape3 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(18px, 0);
transform: translate(18px, 0);
}
50% {
-webkit-transform: translate(18px, -18px);
transform: translate(18px, -18px);
}
75% {
-webkit-transform: translate(0, -18px);
transform: translate(0, -18px);
}
}
@keyframes animation6shape3 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(18px, 0);
transform: translate(18px, 0);
}
50% {
-webkit-transform: translate(18px, -18px);
transform: translate(18px, -18px);
}
75% {
-webkit-transform: translate(0, -18px);
transform: translate(0, -18px);
}
}
.loading6 .shape4 {
-webkit-animation: animation6shape4 2s linear 0s infinite normal;
animation: animation6shape4 2s linear 0s infinite normal;
}
@-webkit-keyframes animation6shape4 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(0, -18px);
transform: translate(0, -18px);
}
50% {
-webkit-transform: translate(-18px, -18px);
transform: translate(-18px, -18px);
}
75% {
-webkit-transform: translate(-18px, 0);
transform: translate(-18px, 0);
}
}
@keyframes animation6shape4 {
0% {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
25% {
-webkit-transform: translate(0, -18px);
transform: translate(0, -18px);
}
50% {
-webkit-transform: translate(-18px, -18px);
transform: translate(-18px, -18px);
}
75% {
-webkit-transform: translate(-18px, 0);
transform: translate(-18px, 0);
}
}
</style>

View File

@@ -0,0 +1,36 @@
<template>
<view>
<Loading1 v-if="loadingType==1"/>
<Loading2 v-if="loadingType==2"/>
<Loading3 v-if="loadingType==3"/>
<Loading4 v-if="loadingType==4"/>
<Loading5 v-if="loadingType==5"/>
</view>
</template>
<script>
import Loading1 from "./loading1.vue";
import Loading2 from "./loading2.vue";
import Loading3 from "./loading3.vue";
import Loading4 from "./loading4.vue";
import Loading5 from "./loading5.vue";
export default {
components:{Loading1,Loading2,Loading3,Loading4,Loading5},
name: 'qiun-loading',
props: {
loadingType: {
type: Number,
default: 2
},
},
data() {
return {
};
},
}
</script>
<style>
</style>

View File

@@ -0,0 +1,422 @@
/*
* uCharts®
* 高性能跨平台图表库支持H5、APP、小程序微信/支付宝/百度/头条/QQ/360、Vue、Taro等支持canvas的框架平台
* Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.
* Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
* 复制使用请保留本段注释,感谢支持开源!
*
* uCharts®官方网站
* https://www.uCharts.cn
*
* 开源地址:
* https://gitee.com/uCharts/uCharts
*
* uni-app插件市场地址
* http://ext.dcloud.net.cn/plugin?id=271
*
*/
// 通用配置项
// 主题颜色配置如每个图表类型需要不同主题请在对应图表类型上更改color属性
const color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];
const cfe = {
//demotype为自定义图表类型
"type": ["pie", "ring", "rose", "funnel", "line", "column", "area", "radar", "gauge","candle","demotype"],
//增加自定义图表类型如果需要categories请在这里加入您的图表类型例如最后的"demotype"
"categories": ["line", "column", "area", "radar", "gauge", "candle","demotype"],
//instance为实例变量承载属性option为eopts承载属性不要删除
"instance": {},
"option": {},
//下面是自定义format配置因除H5端外的其他端无法通过props传递函数只能通过此属性对应下标的方式来替换
"formatter":{
"tooltipDemo1":function(res){
let result = ''
for (let i in res) {
if (i == 0) {
result += res[i].axisValueLabel + '年销售额'
}
let value = '--'
if (res[i].data !== null) {
value = res[i].data
}
// #ifdef H5
result += '\n' + res[i].seriesName + '' + value + ' 万元'
// #endif
// #ifdef APP-PLUS
result += '<br/>' + res[i].marker + res[i].seriesName + '' + value + ' 万元'
// #endif
}
return result;
},
legendFormat:function(name){
return "自定义图例+"+name;
},
yAxisFormatDemo:function (value, index) {
return value + '元';
},
seriesFormatDemo:function(res){
return res.name + '年' + res.value + '元';
}
},
//这里演示了自定义您的图表类型的option可以随意命名之后在组件上 type="demotype" 后组件会调用这个花括号里的option如果组件上还存在eopts参数会将demotype与eopts中option合并后渲染图表。
"demotype":{
"color": color,
//在这里填写echarts的option即可
},
//下面是自定义配置,请添加项目所需的通用配置
"column": {
"color": color,
"title": {
"text": ''
},
"tooltip": {
"trigger": 'axis'
},
"grid": {
"top": 30,
"bottom": 50,
"right": 15,
"left": 40
},
"legend": {
"bottom": 'left',
},
"toolbox": {
"show": false,
},
"xAxis": {
"type": 'category',
"axisLabel": {
"color": '#666666'
},
"axisLine": {
"lineStyle": {
"color": '#CCCCCC'
}
},
"boundaryGap": true,
"data": []
},
"yAxis": {
"type": 'value',
"axisTick": {
"show": false,
},
"axisLabel": {
"color": '#666666'
},
"axisLine": {
"lineStyle": {
"color": '#CCCCCC'
}
},
},
"seriesTemplate": {
"name": '',
"type": 'bar',
"data": [],
"barwidth": 20,
"label": {
"show": true,
"color": "#666666",
"position": 'top',
},
},
},
"line": {
"color": color,
"title": {
"text": ''
},
"tooltip": {
"trigger": 'axis'
},
"grid": {
"top": 30,
"bottom": 50,
"right": 15,
"left": 40
},
"legend": {
"bottom": 'left',
},
"toolbox": {
"show": false,
},
"xAxis": {
"type": 'category',
"axisLabel": {
"color": '#666666'
},
"axisLine": {
"lineStyle": {
"color": '#CCCCCC'
}
},
"boundaryGap": true,
"data": []
},
"yAxis": {
"type": 'value',
"axisTick": {
"show": false,
},
"axisLabel": {
"color": '#666666'
},
"axisLine": {
"lineStyle": {
"color": '#CCCCCC'
}
},
},
"seriesTemplate": {
"name": '',
"type": 'line',
"data": [],
"barwidth": 20,
"label": {
"show": true,
"color": "#666666",
"position": 'top',
},
},
},
"area": {
"color": color,
"title": {
"text": ''
},
"tooltip": {
"trigger": 'axis'
},
"grid": {
"top": 30,
"bottom": 50,
"right": 15,
"left": 40
},
"legend": {
"bottom": 'left',
},
"toolbox": {
"show": false,
},
"xAxis": {
"type": 'category',
"axisLabel": {
"color": '#666666'
},
"axisLine": {
"lineStyle": {
"color": '#CCCCCC'
}
},
"boundaryGap": true,
"data": []
},
"yAxis": {
"type": 'value',
"axisTick": {
"show": false,
},
"axisLabel": {
"color": '#666666'
},
"axisLine": {
"lineStyle": {
"color": '#CCCCCC'
}
},
},
"seriesTemplate": {
"name": '',
"type": 'line',
"data": [],
"areaStyle": {},
"label": {
"show": true,
"color": "#666666",
"position": 'top',
},
},
},
"pie": {
"color": color,
"title": {
"text": ''
},
"tooltip": {
"trigger": 'item'
},
"grid": {
"top": 40,
"bottom": 30,
"right": 15,
"left": 15
},
"legend": {
"bottom": 'left',
},
"seriesTemplate": {
"name": '',
"type": 'pie',
"data": [],
"radius": '50%',
"label": {
"show": true,
"color": "#666666",
"position": 'top',
},
},
},
"ring": {
"color": color,
"title": {
"text": ''
},
"tooltip": {
"trigger": 'item'
},
"grid": {
"top": 40,
"bottom": 30,
"right": 15,
"left": 15
},
"legend": {
"bottom": 'left',
},
"seriesTemplate": {
"name": '',
"type": 'pie',
"data": [],
"radius": ['40%', '70%'],
"avoidLabelOverlap": false,
"label": {
"show": true,
"color": "#666666",
"position": 'top',
},
"labelLine": {
"show": true
},
},
},
"rose": {
"color": color,
"title": {
"text": ''
},
"tooltip": {
"trigger": 'item'
},
"legend": {
"top": 'bottom'
},
"seriesTemplate": {
"name": '',
"type": 'pie',
"data": [],
"radius": "55%",
"center": ['50%', '50%'],
"roseType": 'area',
},
},
"funnel": {
"color": color,
"title": {
"text": ''
},
"tooltip": {
"trigger": 'item',
"formatter": "{b} : {c}%"
},
"legend": {
"top": 'bottom'
},
"seriesTemplate": {
"name": '',
"type": 'funnel',
"left": '10%',
"top": 60,
"bottom": 60,
"width": '80%',
"min": 0,
"max": 100,
"minSize": '0%',
"maxSize": '100%',
"sort": 'descending',
"gap": 2,
"label": {
"show": true,
"position": 'inside'
},
"labelLine": {
"length": 10,
"lineStyle": {
"width": 1,
"type": 'solid'
}
},
"itemStyle": {
"bordercolor": '#fff',
"borderwidth": 1
},
"emphasis": {
"label": {
"fontSize": 20
}
},
"data": [],
},
},
"gauge": {
"color": color,
"tooltip": {
"formatter": '{a} <br/>{b} : {c}%'
},
"seriesTemplate": {
"name": '业务指标',
"type": 'gauge',
"detail": {"formatter": '{value}%'},
"data": [{"value": 50, "name": '完成率'}]
},
},
"candle": {
"xAxis": {
"data": []
},
"yAxis": {},
"color": color,
"title": {
"text": ''
},
"dataZoom": [{
"type": 'inside',
"xAxisIndex": [0, 1],
"start": 10,
"end": 100
},
{
"show": true,
"xAxisIndex": [0, 1],
"type": 'slider',
"bottom": 10,
"start": 10,
"end": 100
}
],
"seriesTemplate": {
"name": '',
"type": 'k',
"data": [],
},
}
}
export default cfe;

View File

@@ -0,0 +1,606 @@
/*
* uCharts®
* 高性能跨平台图表库支持H5、APP、小程序微信/支付宝/百度/头条/QQ/360、Vue、Taro等支持canvas的框架平台
* Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.
* Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
* 复制使用请保留本段注释,感谢支持开源!
*
* uCharts®官方网站
* https://www.uCharts.cn
*
* 开源地址:
* https://gitee.com/uCharts/uCharts
*
* uni-app插件市场地址
* http://ext.dcloud.net.cn/plugin?id=271
*
*/
// 主题颜色配置如每个图表类型需要不同主题请在对应图表类型上更改color属性
const color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];
//事件转换函数主要用作格式化x轴为时间轴根据需求自行修改
const formatDateTime = (timeStamp, returnType)=>{
var date = new Date();
date.setTime(timeStamp * 1000);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
var second = date.getSeconds();
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
if(returnType == 'full'){return y + '-' + m + '-' + d + ' '+ h +':' + minute + ':' + second;}
if(returnType == 'y-m-d'){return y + '-' + m + '-' + d;}
if(returnType == 'h:m'){return h +':' + minute;}
if(returnType == 'h:m:s'){return h +':' + minute +':' + second;}
return [y, m, d, h, minute, second];
}
const cfu = {
//demotype为自定义图表类型一般不需要自定义图表类型只需要改根节点上对应的类型即可
"type":["pie","ring","rose","word","funnel","map","arcbar","line","column","mount","bar","area","radar","gauge","candle","mix","tline","tarea","scatter","bubble","demotype"],
"range":["饼状图","圆环图","玫瑰图","词云图","漏斗图","地图","圆弧进度条","折线图","柱状图","山峰图","条状图","区域图","雷达图","仪表盘","K线图","混合图","时间轴折线","时间轴区域","散点图","气泡图","自定义类型"],
//增加自定义图表类型如果需要categories请在这里加入您的图表类型例如最后的"demotype"
//自定义类型时需要注意"tline","tarea","scatter","bubble"等时间轴矢量x轴类图表没有categories不需要加入categories
"categories":["line","column","mount","bar","area","radar","gauge","candle","mix","demotype"],
//instance为实例变量承载属性不要删除
"instance":{},
//option为opts及eopts承载属性不要删除
"option":{},
//下面是自定义format配置因除H5端外的其他端无法通过props传递函数只能通过此属性对应下标的方式来替换
"formatter":{
"yAxisDemo1":function(val, index, opts){return val+'元'},
"yAxisDemo2":function(val, index, opts){return val.toFixed(2)},
"xAxisDemo1":function(val, index, opts){return val+'年';},
"xAxisDemo2":function(val, index, opts){return formatDateTime(val,'h:m')},
"seriesDemo1":function(val, index, series, opts){return val+'元'},
"tooltipDemo1":function(item, category, index, opts){
if(index==0){
return '随便用'+item.data+'年'
}else{
return '其他我没改'+item.data+'天'
}
},
"pieDemo":function(val, index, series, opts){
if(index !== undefined){
return series[index].name+''+series[index].data+'元'
}
},
},
//这里演示了自定义您的图表类型的option可以随意命名之后在组件上 type="demotype" 后组件会调用这个花括号里的option如果组件上还存在opts参数会将demotype与opts中option合并后渲染图表。
"demotype":{
//我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置
"type": "line",
"color": color,
"padding": [15,10,0,15],
"xAxis": {
"disableGrid": true,
},
"yAxis": {
"gridType": "dash",
"dashLength": 2,
},
"legend": {
},
"extra": {
"line": {
"type": "curve",
"width": 2
},
}
},
//下面是自定义配置,请添加项目所需的通用配置
"pie":{
"type": "pie",
"color": color,
"padding": [5,5,5,5],
"extra": {
"pie": {
"activeOpacity": 0.5,
"activeRadius": 10,
"offsetAngle": 0,
"labelWidth": 15,
"border": true,
"borderWidth": 3,
"borderColor": "#FFFFFF"
},
}
},
"ring":{
"type": "ring",
"color": color,
"padding": [5,5,5,5],
"rotate": false,
"dataLabel": true,
"legend": {
"show": true,
"position": "right",
"lineHeight": 25,
},
"title": {
"name": "收益率",
"fontSize": 15,
"color": "#666666"
},
"subtitle": {
"name": "70%",
"fontSize": 25,
"color": "#7cb5ec"
},
"extra": {
"ring": {
"ringWidth":30,
"activeOpacity": 0.5,
"activeRadius": 10,
"offsetAngle": 0,
"labelWidth": 15,
"border": true,
"borderWidth": 3,
"borderColor": "#FFFFFF"
},
},
},
"rose":{
"type": "rose",
"color": color,
"padding": [5,5,5,5],
"legend": {
"show": true,
"position": "left",
"lineHeight": 25,
},
"extra": {
"rose": {
"type": "area",
"minRadius": 50,
"activeOpacity": 0.5,
"activeRadius": 10,
"offsetAngle": 0,
"labelWidth": 15,
"border": false,
"borderWidth": 2,
"borderColor": "#FFFFFF"
},
}
},
"word":{
"type": "word",
"color": color,
"extra": {
"word": {
"type": "normal",
"autoColors": false
}
}
},
"funnel":{
"type": "funnel",
"color": color,
"padding": [15,15,0,15],
"extra": {
"funnel": {
"activeOpacity": 0.3,
"activeWidth": 10,
"border": true,
"borderWidth": 2,
"borderColor": "#FFFFFF",
"fillOpacity": 1,
"labelAlign": "right"
},
}
},
"map":{
"type": "map",
"color": color,
"padding": [0,0,0,0],
"dataLabel": true,
"extra": {
"map": {
"border": true,
"borderWidth": 1,
"borderColor": "#666666",
"fillOpacity": 0.6,
"activeBorderColor": "#F04864",
"activeFillColor": "#FACC14",
"activeFillOpacity": 1
},
}
},
"arcbar":{
"type": "arcbar",
"color": color,
"title": {
"name": "百分比",
"fontSize": 25,
"color": "#00FF00"
},
"subtitle": {
"name": "默认标题",
"fontSize": 15,
"color": "#666666"
},
"extra": {
"arcbar": {
"type": "default",
"width": 12,
"backgroundColor": "#E9E9E9",
"startAngle": 0.75,
"endAngle": 0.25,
"gap": 2
}
}
},
"line":{
"type": "line",
"color": color,
"padding": [15,10,0,15],
"xAxis": {
"disableGrid": true,
},
"yAxis": {
"gridType": "dash",
"dashLength": 2,
},
"legend": {
},
"extra": {
"line": {
"type": "straight",
"width": 2,
"activeType": "hollow"
},
}
},
"tline":{
"type": "line",
"color": color,
"padding": [15,10,0,15],
"xAxis": {
"disableGrid": false,
"boundaryGap":"justify",
},
"yAxis": {
"gridType": "dash",
"dashLength": 2,
"data":[
{
"min":0,
"max":80
}
]
},
"legend": {
},
"extra": {
"line": {
"type": "curve",
"width": 2,
"activeType": "hollow"
},
}
},
"tarea":{
"type": "area",
"color": color,
"padding": [15,10,0,15],
"xAxis": {
"disableGrid": true,
"boundaryGap":"justify",
},
"yAxis": {
"gridType": "dash",
"dashLength": 2,
"data":[
{
"min":0,
"max":80
}
]
},
"legend": {
},
"extra": {
"area": {
"type": "curve",
"opacity": 0.2,
"addLine": true,
"width": 2,
"gradient": true,
"activeType": "hollow"
},
}
},
"column":{
"type": "column",
"color": color,
"padding": [15,15,0,5],
"xAxis": {
"disableGrid": true,
},
"yAxis": {
"data":[{"min":0}]
},
"legend": {
},
"extra": {
"column": {
"type": "group",
"width": 30,
"activeBgColor": "#000000",
"activeBgOpacity": 0.08
},
}
},
"mount":{
"type": "mount",
"color": color,
"padding": [15,15,0,5],
"xAxis": {
"disableGrid": true,
},
"yAxis": {
"data":[{"min":0}]
},
"legend": {
},
"extra": {
"mount": {
"type": "mount",
"widthRatio": 1.5,
},
}
},
"bar":{
"type": "bar",
"color": color,
"padding": [15,30,0,5],
"xAxis": {
"boundaryGap":"justify",
"disableGrid":false,
"min":0,
"axisLine":false
},
"yAxis": {
},
"legend": {
},
"extra": {
"bar": {
"type": "group",
"width": 30,
"meterBorde": 1,
"meterFillColor": "#FFFFFF",
"activeBgColor": "#000000",
"activeBgOpacity": 0.08
},
}
},
"area":{
"type": "area",
"color": color,
"padding": [15,15,0,15],
"xAxis": {
"disableGrid": true,
},
"yAxis": {
"gridType": "dash",
"dashLength": 2,
},
"legend": {
},
"extra": {
"area": {
"type": "straight",
"opacity": 0.2,
"addLine": true,
"width": 2,
"gradient": false,
"activeType": "hollow"
},
}
},
"radar":{
"type": "radar",
"color": color,
"padding": [5,5,5,5],
"dataLabel": false,
"legend": {
"show": true,
"position": "right",
"lineHeight": 25,
},
"extra": {
"radar": {
"gridType": "radar",
"gridColor": "#CCCCCC",
"gridCount": 3,
"opacity": 0.2,
"max": 200,
"labelShow": true
},
}
},
"gauge":{
"type": "gauge",
"color": color,
"title": {
"name": "66Km/H",
"fontSize": 25,
"color": "#2fc25b",
"offsetY": 50
},
"subtitle": {
"name": "实时速度",
"fontSize": 15,
"color": "#1890ff",
"offsetY": -50
},
"extra": {
"gauge": {
"type": "default",
"width": 30,
"labelColor": "#666666",
"startAngle": 0.75,
"endAngle": 0.25,
"startNumber": 0,
"endNumber": 100,
"labelFormat": "",
"splitLine": {
"fixRadius": 0,
"splitNumber": 10,
"width": 30,
"color": "#FFFFFF",
"childNumber": 5,
"childWidth": 12
},
"pointer": {
"width": 24,
"color": "auto"
}
}
}
},
"candle":{
"type": "candle",
"color": color,
"padding": [15,15,0,15],
"enableScroll": true,
"enableMarkLine": true,
"dataLabel": false,
"xAxis": {
"labelCount": 4,
"itemCount": 40,
"disableGrid": true,
"gridColor": "#CCCCCC",
"gridType": "solid",
"dashLength": 4,
"scrollShow": true,
"scrollAlign": "left",
"scrollColor": "#A6A6A6",
"scrollBackgroundColor": "#EFEBEF"
},
"yAxis": {
},
"legend": {
},
"extra": {
"candle": {
"color": {
"upLine": "#f04864",
"upFill": "#f04864",
"downLine": "#2fc25b",
"downFill": "#2fc25b"
},
"average": {
"show": true,
"name": ["MA5","MA10","MA30"],
"day": [5,10,20],
"color": ["#1890ff","#2fc25b","#facc14"]
}
},
"markLine": {
"type": "dash",
"dashLength": 5,
"data": [
{
"value": 2150,
"lineColor": "#f04864",
"showLabel": true
},
{
"value": 2350,
"lineColor": "#f04864",
"showLabel": true
}
]
}
}
},
"mix":{
"type": "mix",
"color": color,
"padding": [15,15,0,15],
"xAxis": {
"disableGrid": true,
},
"yAxis": {
"disabled": false,
"disableGrid": false,
"splitNumber": 5,
"gridType": "dash",
"dashLength": 4,
"gridColor": "#CCCCCC",
"padding": 10,
"showTitle": true,
"data": []
},
"legend": {
},
"extra": {
"mix": {
"column": {
"width": 20
}
},
}
},
"scatter":{
"type": "scatter",
"color":color,
"padding":[15,15,0,15],
"dataLabel":false,
"xAxis": {
"disableGrid": false,
"gridType":"dash",
"splitNumber":5,
"boundaryGap":"justify",
"min":0
},
"yAxis": {
"disableGrid": false,
"gridType":"dash",
},
"legend": {
},
"extra": {
"scatter": {
},
}
},
"bubble":{
"type": "bubble",
"color":color,
"padding":[15,15,0,15],
"xAxis": {
"disableGrid": false,
"gridType":"dash",
"splitNumber":5,
"boundaryGap":"justify",
"min":0,
"max":250
},
"yAxis": {
"disableGrid": false,
"gridType":"dash",
"data":[{
"min":0,
"max":150
}]
},
"legend": {
},
"extra": {
"bubble": {
"border":2,
"opacity": 0.5,
},
}
}
}
export default cfu;

View File

@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -0,0 +1,5 @@
# uCharts JSSDK说明
1、如不使用uCharts组件可直接引用u-charts.js打包编译后会`自动压缩`,压缩后体积约为`120kb`
2、如果120kb的体积仍需压缩请手到uCharts官网通过在线定制选择您需要的图表。
3、config-ucharts.js为uCharts组件的用户配置文件升级前请`自行备份config-ucharts.js`文件,以免被强制覆盖。
4、config-echarts.js为ECharts组件的用户配置文件升级前请`自行备份config-echarts.js`文件,以免被强制覆盖。

File diff suppressed because it is too large Load Diff

18
src/components/u-charts/u-charts.min.js vendored Normal file

File diff suppressed because one or more lines are too long

0
src/components/uCharts Normal file
View File

View File

@@ -0,0 +1,16 @@
export function useCount() {
const count = ref(Math.round(Math.random() * 20))
function inc() {
count.value += 1
}
function dec() {
count.value -= 1
}
return {
count,
inc,
dec,
}
}

View File

@@ -0,0 +1,10 @@
import type { MaybeRef } from '@vueuse/core'
export function useQuery(key?: MaybeRef<string>) {
const query = ref<AnyObject>({})
onLoad((q) => {
query.value = q || {}
})
const value = computed(() => (key ? query.value[unref(key)] : null))
return { query, value }
}

1
src/env.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
/// <reference types="vite/client" />

61
src/layouts/home.vue Normal file
View File

@@ -0,0 +1,61 @@
<script setup>
import PrivacyModal from '@/components/PrivacyModel.vue'
const tabbar = ref('index')
const menu = reactive([{ title: '首页', icon: 'home', name: 'index' }, { title: 'AI律师', icon: 'chat', name: 'ai' }, { title: '我的', icon: 'user', name: 'me' }])
function tabChange({ value }) {
uni.switchTab({
url: `/pages/${value}`,
})
}
onShow(() => {
const currentPage = getCurrentPages()[getCurrentPages().length - 1].route
const pageName = currentPage.split('/').pop()
tabbar.value = pageName
})
onMounted(() => {
uni.hideTabBar()
const currentPage = getCurrentPages()[getCurrentPages().length - 1].route
const pageName = currentPage.split('/').pop()
tabbar.value = pageName
})
function toComplaint() {
uni.navigateTo({
url: '/pages/complaint',
})
}
</script>
<script>
export default {
options: {
styleIsolation: 'shared',
},
}
</script>
<template>
<slot />
<view>
<wd-tabbar v-model="tabbar" custom-class="qnc-tabbar" shape="round" safe-area-inset-bottom fixed @change="tabChange">
<wd-tabbar-item v-for="(item, index) in menu" :key="index" :name="item.name" :title="item.title" :icon="item.icon" />
</wd-tabbar>
</view>
<view class="fixed bottom-24 right-4 z-1000 flex items-center rounded-3xl from-red-500 to-red-400 bg-gradient-to-b px-2 py-1 text-center text-white shadow-2xl">
<wd-icon name="warning" class="mr-1" size="18px" />
<view class="text-xs" @click="toComplaint">
投诉
</view>
</view>
<PrivacyModal />
</template>
<style scoped>
:deep(.qnc-tabbar) {
bottom: 16px !important;
}
</style>

31
src/layouts/login.vue Normal file
View File

@@ -0,0 +1,31 @@
<script setup>
function handleClickLeft() {
uni.reLaunch({
url: '/pages/index',
})
}
</script>
<template>
<!-- -->
<view class="h-screen bg-[#EBF1FD]">
<view class="login-layout min-h-full">
<wd-navbar
title="用户登录"
left-arrow
safe-area-inset-top
custom-style="background-color: transparent !important;"
@click-left="handleClickLeft"
/>
<slot />
</view>
</view>
</template>
<style scoped>
.login-layout{
background: url("/static/image/login_bg.png") no-repeat;
background-position: center;
background-size: cover;
}
</style>

35
src/layouts/page.vue Normal file
View File

@@ -0,0 +1,35 @@
<script setup>
import pagesJson from '@/pages.json'
const pagesConfig = pagesJson.pages
const title = ref('')
function getPageTitle() {
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1] // 当前页面
const currentRoute = currentPage.route // 当前页面路径,例如 "pages/authorization"
// 根据路径查找 pages.json 中的配置
const currentPageConfig = pagesConfig.find(page => page.path === currentRoute)
console.log('currentPageConfig', currentPageConfig)
// 返回页面标题,如果未找到,则返回默认标题
return currentPageConfig?.title || ''
}
onLoad(() => {
title.value = getPageTitle()
})
function handleClickLeft() {
uni.navigateBack()
}
</script>
<template>
<wd-navbar :title="title" left-text="返回" placeholder left-arrow safe-area-inset-top fixed @click-left="handleClickLeft" />
<view class="box-border min-h-screen">
<slot />
</view>
</template>
<style scoped>
</style>

11
src/main.ts Normal file
View File

@@ -0,0 +1,11 @@
import { createSSRApp } from 'vue'
import App from './App.vue'
import 'uno.css'
import '@/app.scss'
export function createApp() {
const app = createSSRApp(App)
return {
app,
}
}

109
src/manifest.json Normal file
View File

@@ -0,0 +1,109 @@
{
"name" : "全能查",
"appid" : "__UNI__CC3DA09",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "101",
"transformPx" : false,
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
"modules" : {
"Payment" : {}
},
"distribute" : {
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>"
]
},
"ios" : {
"privacyDescription" : {
"NSLocalNetworkUsageDescription" : "需要访问您的网络来提供更好的服务"
},
"idfa" : false,
"dSYMs" : false
},
"sdkConfigs" : {
"payment" : {
"alipay" : {
"__platform__" : [ "ios", "android" ]
}
},
"ad" : {}
},
"icons" : {
"android" : {
"hdpi" : "src/static/icons/72x72.png",
"xhdpi" : "src/static/icons/96x96.png",
"xxhdpi" : "src/static/icons/144x144.png",
"xxxhdpi" : "src/static/icons/192x192.png"
},
"ios" : {
"appstore" : "src/static/icons/1024x1024.png",
"ipad" : {
"app" : "src/static/icons/76x76.png",
"app@2x" : "src/static/icons/152x152.png",
"notification" : "src/static/icons/20x20.png",
"notification@2x" : "src/static/icons/40x40.png",
"proapp@2x" : "src/static/icons/167x167.png",
"settings" : "src/static/icons/29x29.png",
"settings@2x" : "src/static/icons/58x58.png",
"spotlight" : "src/static/icons/40x40.png",
"spotlight@2x" : "src/static/icons/80x80.png"
},
"iphone" : {
"app@2x" : "src/static/icons/120x120.png",
"app@3x" : "src/static/icons/180x180.png",
"notification@2x" : "src/static/icons/40x40.png",
"notification@3x" : "src/static/icons/60x60.png",
"settings@2x" : "src/static/icons/58x58.png",
"settings@3x" : "src/static/icons/87x87.png",
"spotlight@2x" : "src/static/icons/80x80.png",
"spotlight@3x" : "src/static/icons/120x120.png"
}
}
}
},
"background" : "#000000",
"compatible" : {
"ignoreVersion" : true
}
},
"quickapp" : {},
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true,
"darkmode" : false,
"themeLocation" : "theme.json"
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "3",
"h5" : {
"darkmode" : false,
"themeLocation" : "theme.json"
}
}

131
src/pages.json Normal file
View File

@@ -0,0 +1,131 @@
{
"pages": [
{
"path": "pages/index",
"type": "home",
"layout": "home"
},
{
"path": "pages/ai",
"type": "page",
"layout": "home"
},
{
"path": "pages/authorization",
"type": "page",
"layout": "page",
"title": "授权书"
},
{
"path": "pages/complaint",
"type": "page",
"layout": "page",
"title": "投诉服务"
},
{
"path": "pages/example copy",
"type": "page",
"layout": "page",
"title": "报告示例"
},
{
"path": "pages/example",
"type": "page",
"layout": "page",
"title": "示例报告"
},
{
"path": "pages/inquire",
"type": "page",
"layout": "page",
"title": "报告查询"
},
{
"path": "pages/login",
"type": "page",
"layout": "login",
"title": "登录"
},
{
"path": "pages/me",
"type": "page",
"layout": "home"
},
{
"path": "pages/pay",
"type": "page",
"layout": "page",
"title": "全能查收款"
},
{
"path": "pages/privacyPolicy",
"type": "page",
"layout": "page",
"title": "隐私政策"
},
{
"path": "pages/queryHistory",
"type": "page",
"layout": "page",
"title": "历史报告"
},
{
"path": "pages/result copy",
"type": "page",
"layout": "page",
"title": "报告结果"
},
{
"path": "pages/result",
"type": "page",
"layout": "page",
"title": "报告结果"
},
{
"path": "pages/service",
"type": "page",
"layout": "page",
"title": "客户服务"
},
{
"path": "pages/userAgreement",
"type": "page",
"layout": "page",
"title": "用户协议"
}
],
"globalStyle": {
"backgroundColor": "@bgColor",
"backgroundColorBottom": "@bgColorBottom",
"backgroundColorTop": "@bgColorTop",
"backgroundTextStyle": "@bgTxtStyle",
"navigationBarBackgroundColor": "#000000",
"navigationBarTextStyle": "@navTxtStyle",
"navigationBarTitleText": "全能查",
"navigationStyle": "custom"
},
"tabBar": {
"backgroundColor": "@tabBgColor",
"borderStyle": "@tabBorderStyle",
"color": "@tabFontColor",
"selectedColor": "@tabSelectedColor",
"list": [
{
"pagePath": "pages/index",
"text": "",
"visible": false
},
{
"pagePath": "pages/ai",
"text": "",
"visible": false
},
{
"pagePath": "pages/me",
"text": "",
"visible": false
}
]
},
"subPackages": []
}

72
src/pages/ai.vue Normal file
View File

@@ -0,0 +1,72 @@
<script setup>
import { onMounted, ref } from 'vue'
const userMessage = ref('')
const messages = ref([
{ sender: 'ai', text: '欢迎!请问有什么可以帮助您的吗?' },
])
function sendMessage() {
if (userMessage.value.trim() === '')
return
messages.value.push({ sender: 'user', text: userMessage.value })
// AI 统一回复(中文套话)
setTimeout(() => {
messages.value.push({
sender: 'ai',
text: '感谢您的提问!我们会尽力为您提供帮助。',
})
}, 1000)
userMessage.value = ''
}
const safeAreaTop = ref(44)
onShow(() => {
uni.getSystemInfo({
success: (res) => {
if (res.safeArea && res.safeArea.top) {
safeAreaTop.value = res.safeArea.top // 设置安全区顶部距离
}
},
})
})
</script>
<template>
<view
class="box-border min-h-screen from-blue-100 to-white bg-gradient-to-b" style="paddingTop:44px"
>
<view class="chat-page mx-4 flex flex-col rounded-xl shadow-lg">
<view class="chat-window flex-1 overflow-auto border p-4">
<view v-for="(message, index) in messages" :key="index" class="mb-2">
<view v-if="message.sender === 'ai'" class="inline-block max-w-max rounded-xl bg-white p-2 text-left text-green-600 font-medium shadow-md">
{{ message.text }}
</view>
<view v-else class="ml-auto inline-block max-w-max rounded-xl from-sky-300 via-sky-300 to-sky-300 bg-gradient-to-r p-2 text-right text-white font-medium shadow-md">
{{ message.text }}
</view>
</view>
</view>
<view class="input-area mx-2 flex items-center gap-2 p-4">
<wd-input v-model="userMessage" placeholder="请输入您的问题..." class="flex-1" size="large" />
<wd-button custom-class="shadow" type="primary" @click="sendMessage">
发送
</wd-button>
</view>
</view>
</view>
</template>
<style lang="scss" scoped>
.chat-page {
height: calc(100vh - 108px);
}
</style>
<route lang="json">
{
"layout": "home"
}
</route>

View File

@@ -0,0 +1,54 @@
<script setup>
const webviewStyles = ref({
top: `${uni.getSystemInfoSync().statusBarHeight + 44}px`, // 距离顶部的距离
height: `${uni.getSystemInfoSync().windowHeight - uni.getSystemInfoSync().statusBarHeight - 44}px`, // 高度
position: 'absolute', // 绝对定位
dock: 'bottom', // 停靠在底部
bounce: 'vertical', // 垂直方向的回弹效果
})
const id = ref(null)
function handleMessage(event) {
const data = event.detail.data[0]
if (data.loaded) {
onWebViewLoaded()
}
else if (data.action === 'agreed') {
uni.redirectTo({ url: `/pages/pay?id=${id.value}` })
}
else if (data.action === 'cancelled') {
uni.showModal({
title: '注意',
content: '是否确认取消,退出当前页面',
success(res) {
if (res.confirm) {
uni.navigateBack()
}
},
})
}
}
function onWebViewLoaded() {
}
const src = ref('https://app.quannengcha.com/authorization')
onLoad((option) => {
if (option.id) {
src.value = `${src.value}?id=${encodeURIComponent(option.id)}&token=${encodeURIComponent(uni.getStorageSync('token'))}`
id.value = option.id
}
})
</script>
<template>
<view>
<web-view :webview-styles="webviewStyles" :src="src" @message="handleMessage" />
</view>
</template>
<route lang="json">
{
"layout": "page",
"title": "授权书"
}
</route>

22
src/pages/complaint.vue Normal file
View File

@@ -0,0 +1,22 @@
<script setup>
const webviewStyles = ref({
top: `${uni.getSystemInfoSync().statusBarHeight + 44}px`, // 距离顶部的距离
height: `${uni.getSystemInfoSync().windowHeight - uni.getSystemInfoSync().statusBarHeight - 44}px`, // 高度
position: 'absolute', // 绝对定位
dock: 'bottom', // 停靠在底部
bounce: 'vertical', // 垂直方向的回弹效果
})
</script>
<template>
<view>
<web-view :webview-styles="webviewStyles" src="https://app.quannengcha.com/complaint" />
</view>
</template>
<route lang="json">
{
"layout": "page",
"title": "投诉服务"
}
</route>

204
src/pages/example copy.vue Normal file
View File

@@ -0,0 +1,204 @@
<script setup>
import CBad from '@/ui/CBad.vue'
import CBankLoanApplication from '@/ui/CBankLoanApplication.vue'
import CBankLoanBehavior from '@/ui/CBankLoanBehavior.vue'
import CLawsuit from '@/ui/CLawsuit.vue'
import CRelatedEnterprises from '@/ui/CRelatedEnterprises.vue'
import CSpecialList from '@/ui/CSpecialList.vue'
import CTabs from '@/ui/CTabs.vue'
import { queryExample } from '@/api/apis'
import CMarriage from '@/ui/CMarriage.vue'
const productMap = {
1: '背景调查',
2: '企业报告',
3: '家政服务',
4: '婚姻状态',
5: '贷前背景调查',
6: '租赁服务',
7: '个人风险评估',
}
// 根据 product_id 获取产品名称
function getProductName(productId) {
return productMap[productId] || '未知类型'
}
const productId = ref(null)
const isDone = ref(false)
const entData = ref(null)
const lawsuitData = ref(null)
const badData = ref(null)
const specialData = ref(null)
const bankLoanApplicationData = ref(null)
const marriageData = ref(null)
const bankLoanBehavior = ref(null)
const tabs = ref([
{ label: '报告概述', value: 'overview' },
])
const reportItems = ref([
])
const sortedReportItems = computed(() => {
return reportItems.value.slice().sort((a, b) => a.sort - b.sort)
})
const sortedTabs = computed(() => {
return tabs.value.slice().sort((a, b) => a.sort - b.sort)
})
onLoad((option) => {
console.log('option', option)
const { feature } = option
if (feature) {
queryExample({ feature }).then((res) => {
console.log('res', res)
if (res.code === 200) {
productId.value = res.data.product_id
res.data.query_data.forEach((item) => {
if (item.success) {
switch (item.apiID) {
case 'G09SC02':
marriageData.value = item.data
tabs.value.push({ label: '婚姻状态', value: 'marriage', sort: 1 })
reportItems.value.push({ label: '婚姻状态', value: 'marriage', sort: 1 })
break
case 'G27BJ05':
bankLoanApplicationData.value = item.data
tabs.value.push({ label: '借贷申请记录', value: 'netloan', sort: 7 })
reportItems.value.push({ label: '借贷申请记录', value: 'netloan', sort: 7 })
break
case 'G28BJ05':
bankLoanBehavior.value = item.data
tabs.value.push({ label: '借贷记录', value: 'loan', sort: 6 })
reportItems.value.push({ label: '借贷记录', value: 'loan', sort: 6 })
break
case 'G26BJ05':
specialData.value = item.data
tabs.value.push({ label: '异常名单', value: 'special', sort: 5 })
reportItems.value.push({ label: '异常名单', value: 'special', sort: 5 })
break
case 'G05HZ01':
entData.value = item.data
tabs.value.push({ label: '关联企业', value: 'ent', sort: 4 })
reportItems.value.push({ label: '关联企业', value: 'ent', sort: 4 })
break
case 'G34BJ03':
badData.value = item.data
tabs.value.push({ label: '不良风险评估', value: 'bad', sort: 3 })
reportItems.value.push({ label: '不良风险评估', value: 'bad', sort: 3 })
break
case 'G35SC01':
lawsuitData.value = item.data
tabs.value.push({ label: '涉诉案件', value: 'lawsuit', sort: 2 })
reportItems.value.push({ label: '涉诉案件', value: 'lawsuit', sort: 2 })
break
default:
console.log(`未知的apiID: ${item.apiID}`)
}
}
})
}
}).finally(() => {
isDone.value = true
})
}
})
</script>
<template>
<div class="min-h-full from-blue-100 to-white bg-gradient-to-b">
<CTabs
:tabs="sortedTabs"
type="blue-green"
/>
<template v-if="isDone">
<div class="flex flex-col gap-y-4 p-4 pt-12">
<div id="overview" class="title">
报告概述
</div>
<div class="card">
<div class="flex flex-col gap-y-2">
<div class="flex justify-between">
<span class="text-gray-700 font-bold">报告时间</span>
<span class="text-gray-600">2024年11月18日 23:11:23</span>
</div>
<div class="flex justify-between">
<span class="text-gray-700 font-bold">报告项目</span>
<span class="text-gray-600">{{ getProductName(productId) }}</span>
</div>
</div>
<div>
<LTitle class="my-4" title="报告内容" type="blue-green" />
<div class="flex flex-col gap-y-2">
<div v-for="item in sortedReportItems" :key="item.value" class="flex justify-between">
<span class="text-gray-700 font-bold">{{ item.label }}</span>
<span class="text-green-500 font-bold">已解锁</span>
</div>
</div>
</div>
</div>
<template v-if="marriageData">
<div id="marriage" class="title">
婚姻状态
</div>
<CMarriage :data="marriageData" />
</template>
<template v-if="lawsuitData">
<div id="lawsuit" class="title">
涉诉案件
</div>
<CLawsuit :data="lawsuitData" />
</template>
<template v-if="badData">
<div id="bad" class="title">
不良风险评估
</div>
<CBad :data="badData" />
</template>
<template v-if="entData">
<div id="ent" class="title">
关联企业
</div>
<CRelatedEnterprises :data="entData" />
</template>
<template v-if="specialData">
<div id="special" class="title">
异常名单
</div>
<CSpecialList :data="specialData" />
</template>
<template v-if="bankLoanBehavior">
<div id="loan" class="title">
借贷记录
</div>
<CBankLoanBehavior :data="bankLoanBehavior" />
</template>
<template v-if="bankLoanApplicationData">
<div id="netloan" class="title">
贷款申请记录
</div>
<CBankLoanApplication :data="bankLoanApplicationData" />
</template>
<view class="card">
<view>
<view class="text-blue-500 font-bold">
报告说明
</view>
<view>本报告的数据由用户本人明确授权后我们才向相关合法存有用户个人数据的机构调取本报告相关内容本平台只做大数据的获取与分析仅向用户个人展示参考</view><p> &nbsp; &nbsp; 报告有效期<strong>30</strong>过期自动删除 </p><p> &nbsp; &nbsp; 若您的数据不全面可能是数据具有延迟性或者合作信息机构未获取到您的数据若数据有错误请联系客服</p>
</view>
</view>
</div>
</template>
</div>
</template>
<style lang="scss" scoped>
</style>
<route lang="json">
{
"layout": "page",
"title": "报告示例"
}
</route>

41
src/pages/example.vue Normal file
View File

@@ -0,0 +1,41 @@
<script setup>
const webviewStyles = ref({
top: `${uni.getSystemInfoSync().statusBarHeight + 44}px`, // 距离顶部的距离
height: `${uni.getSystemInfoSync().windowHeight - uni.getSystemInfoSync().statusBarHeight - 44}px`, // 高度
position: 'absolute', // 绝对定位
dock: 'bottom', // 停靠在底部
bounce: 'vertical', // 垂直方向的回弹效果
})
const feature = ref(null)
const token = ref(null)
const webviewSrc = ref('')
onLoad((option) => {
if (option.feature) {
feature.value = option.feature
}
token.value = uni.getStorageSync('token') || ''
const baseUrl = 'https://app.quannengcha.com/example'
webviewSrc.value = `${baseUrl}?feature=${encodeURIComponent(feature.value)}&token=${encodeURIComponent(token.value)}`
})
</script>
<template>
<view>
<!-- 使用动态构造的 WebView src -->
<web-view :webview-styles="webviewStyles" :src="webviewSrc" />
</view>
</template>
<style lang="scss" scoped>
</style>
<route lang="json">
{
"layout": "page",
"title": "示例报告"
}
</route>

114
src/pages/index.vue Normal file
View File

@@ -0,0 +1,114 @@
<script setup>
function toInquire(name) {
uni.navigateTo({
url: `/pages/inquire?feature=${name}`,
})
}
const services = ref([
{ title: '个人风险', name: 'riskassessment', subtitle: '一查全知', bg: '/static/image/index_icon_2.png', bgColor: 'bg-indigo-400', position: 'left' },
{ title: '婚恋风险', name: 'marriage', subtitle: '查婚姻状态让爱无忧', bg: '/static/image/index_icon_1.png', bgColor: ' bg-pink-400 ', position: 'right' },
{ title: '家政服务', name: 'homeservice', subtitle: '用人有保障', bg: '/static/image/index_icon_3.png', bgColor: ' bg-teal-500 ', position: 'left' },
{ title: '租赁风险', name: 'rentalinfo', subtitle: '一查明了', bg: '/static/image/index_icon_4.png', bgColor: ' bg-sky-500 ', position: 'left' },
{ title: '企业报告', name: 'companyinfo', subtitle: '合作更安心', bg: '/static/image/index_icon_5.png', bgColor: ' bg-blue-400 ', position: 'right' },
{ title: '人事背调', name: 'backgroundcheck', subtitle: '选人更放心', bg: '/static/image/index_icon_6.png', bgColor: ' bg-orange-400 ', position: 'left' },
{ title: '贷前调查', name: 'preloanbackgroundcheck', subtitle: '放心借贷', bg: '/static/image/index_icon_7.png', bgColor: ' bg-red-400 ', position: 'right' },
])
const noticeText = ref([])
function toHistory() {
uni.navigateTo({
url: '/pages/queryHistory',
})
}
</script>
<template>
<view class="box-border min-h-screen from-blue-100 to-white bg-gradient-to-b">
<view class="relative h-[190px]">
<image class="h-full w-full" src="/static/image/banner2.png" />
<image
class="absolute bottom-[-70px] right-0 w-38"
src="/static/image/banner_a.png"
mode="aspectFit"
/>
</view>
<view class="relative p-4 pb-4 pt-2">
<view class="mb-1 flex items-center">
<view class="flex-shrink-0 pl-2 font-bold">
在线信息
</view>
<wd-notice-bar
:text="noticeText" direction="vertical" :delay="5" color="#4c4c4c"
background-color="#00000000"
/>
</view>
<view class="grid grid-cols-2 gap-3">
<template v-for="(service, index) in services" :key="index">
<view
class="relative flex flex-col px-4 py-2 shadow-lg" :class="[
service.position === 'left'
? 'rounded-tl-[35px] rounded-bl-[35px] rounded-tr-lg rounded-br-lg'
: 'rounded-tr-[35px] rounded-br-[35px] rounded-tl-lg rounded-bl-lg',
service.bgColor,
service.title === '婚恋风险' ? 'row-span-2' : '',
]" :style="`background: url(${service.bg}) no-repeat; background-size: cover; background-position: center;`"
@click="toInquire(service.name)"
>
<view class="min-h-18 flex flex-col items-start px-1">
<view class="mt-1 max-w-max text-left text-gray-600 font-bold">
{{ service.title }}
</view>
<view class="max-w-max text-left text-xs text-gray-600">
<rich-text :nodes="service.subtitle" />
</view>
<view class="mt-2 rounded-2xl px-2 text-xs text-white" :class="[service.bgColor]">
GO >
</view>
</view>
</view>
</template>
</view>
<view
class="mt-4 box-border h-14 w-full flex items-center rounded-xl bg-white px-4 text-gray-700 shadow-xl"
@click="toHistory"
>
<image
class="mr-4 h-10 w-10"
src="/static/image/bg_icon.png"
mode="widthFix"
/>
<view class="">
<view class="font-bold">
我的历史查询记录
</view>
<view class="text-xs">
查询记录有效期为30天
</view>
</view>
</view>
<view
class="mb-16 mt-6 h-12 w-full flex items-center justify-center rounded-3xl from-blue-500 to-sky-400 bg-gradient-to-b text-center text-lg text-white line-height-12 shadow-xl"
>
<view>全能查邀您共赢共享数据新价值</view>
</view>
</view>
</view>
</template>
<style scoped>
.clip-left {
clip-path: polygon(0 0, 0 100%, 90% 100%, 0 100%);
}
.clip-right {
clip-path: polygon(0 0, 0 0, 90% 100%, 0 0);
}
</style>
<route type="home" lang="json">
{
"layout": "home"
}
</route>

294
src/pages/inquire.vue Normal file
View File

@@ -0,0 +1,294 @@
<script setup>
import { aesEncrypt } from '@/utils/crypto'
import { getCode, getProduct, queryMarriage, querybackgroundCheck, querycompanyInfo, queryhomeService, querypreLoanBackgroundCheck, queryrentalInfo, queryriskAssessment } from '@/api/apis'
const name = ref('')
const idCard = ref('')
const phoneNumber = ref('')
const verificationCode = ref('')
const agreeToTerms = ref(false)
const isCountingDown = ref(false)
const countdown = ref(60)
const feature = ref('')
const timer = null
const featureData = ref({})
const services = reactive([
{ title: '个人风险报告', name: 'riskassessment', subtitle: '一查全知', bg: '/static/image/index_icon_2.png', bgColor: 'bg-indigo-400', api: queryriskAssessment },
{ title: '婚恋报告', name: 'marriage', subtitle: '查婚姻状态让爱无忧', bg: '/static/image/index_icon_1.png', bgColor: ' bg-pink-400 ', api: queryMarriage },
{ title: '家政服务报告', name: 'homeservice', subtitle: '用人有保障', bg: '/static/image/index_icon_3.png', bgColor: ' bg-teal-500 ', api: queryhomeService },
{ title: '租赁服务报告', name: 'rentalinfo', subtitle: '一查明了', bg: '/static/image/index_icon_4.png', bgColor: ' bg-sky-500 ', api: queryrentalInfo },
{ title: '贷前调查报告', name: 'preloanbackgroundcheck', subtitle: '放心借贷', bg: '/static/image/index_icon_7.png', bgColor: ' bg-red-400 ', api: querypreLoanBackgroundCheck },
{ title: '人事背调报告', name: 'backgroundcheck', subtitle: '选人更放心', bg: '/static/image/index_icon_6.png', bgColor: ' bg-orange-400 ', api: querybackgroundCheck },
{ title: '企业报告', name: 'companyinfo', subtitle: '合作更安心', bg: '/static/image/index_icon_5.png', bgColor: ' bg-blue-400 ', api: querycompanyInfo },
])
const service = ref({})
onLoad((options) => {
console.log('options', options)
if (options.feature) {
feature.value = options.feature
}
else {
feature.value = 'marrige'
}
getService()
getProduct(feature.value).then((res) => {
if (res.code === 200) {
featureData.value = res.data
}
})
})
const isPhoneNumberValid = computed(() => {
return /^1[3-9]\d{9}$/.test(phoneNumber.value)
})
const isIdCardValid = computed(() => /^\d{17}[\dX]$/i.test(idCard.value))
function handleSubmit() {
if (!agreeToTerms.value) {
uni.showToast({ title: '请阅读并同意用户协议和隐私政策', icon: 'none' })
return
}
if (!name.value) {
uni.showToast({ title: '请输入姓名', icon: 'none' })
return
}
if (!isPhoneNumberValid.value) {
uni.showToast({ title: '请输入有效的手机号', icon: 'none' })
return
}
if (!isIdCardValid.value) {
uni.showToast({ title: '请输入有效的身份证号码', icon: 'none' })
return
}
if (!verificationCode.value) {
uni.showToast({ title: '请输入验证码', icon: 'none' })
return
}
submit()
}
function getService() {
for (const i of services) {
if (i.name === feature.value) {
service.value = i
}
}
}
function sendVerificationCode() {
if (isCountingDown.value || !isPhoneNumberValid.value)
return
if (!isPhoneNumberValid.value) {
uni.showToast({ title: '请输入有效的手机号', icon: 'none' })
return
}
getCode({
mobile: phoneNumber.value,
actionType: 'query',
}).then((res) => {
if (res.code === 200) {
uni.showToast({ title: '获取成功', icon: 'none' })
startCountdown()
}
})
}
function startCountdown() {
isCountingDown.value = true
countdown.value = 60
timer = setInterval(() => {
if (countdown.value > 0) {
countdown.value--
}
else {
clearInterval(timer)
isCountingDown.value = false
}
}, 1000)
}
function toExample() {
uni.navigateTo({
url: `/pages/example?feature=${feature.value}`,
})
}
function submit() {
const req = {
name: name.value,
id_card: idCard.value,
mobile: phoneNumber.value,
code: verificationCode.value,
}
const data = JSON.stringify(req)
const encodeData = aesEncrypt(data, 'ff83609b2b24fc73196aac3d3dfb874f')
service.value.api({ data: encodeData }).then((res) => {
if (res.code === 200) {
uni.navigateTo({
url: `/pages/authorization?id=${res.data.id}`,
})
}
})
}
function toUserAgreement() {
uni.navigateTo({
url: '/pages/userAgreement',
})
}
function toPrivacyPolicy() {
uni.navigateTo({
url: '/pages/privacyPolicy',
})
}
onUnmounted(() => {
if (timer) {
clearInterval(timer)
}
})
</script>
<template>
<view class="inquire-bg min-h-screen rounded-lg p-6 shadow-lg">
<view class="mb-6 text-center text-blue-800 font-extrabold">
<view class="text-blue-600">
<text class="text-2xl font-bold">
{{ service.title }}
</text>
</view>
</view>
<view class="card-p-0 px-4 py-6">
<view class="mb-4 text-xl text-gray-800 font-semibold">
基本信息
</view>
<wd-input
v-model="name" label="姓名" type="text" label-width="60px" placeholder="请输入正确的姓名"
class="mb-6 border-b border-gray-200 border-b-solid"
/>
<wd-input
v-model="idCard" label="身份证号" label-width="60px" placeholder="请输入准确的身份证号码"
class="mb-6 border-b border-gray-200 border-b-solid"
/>
<wd-input
v-model="phoneNumber" label="手机号" type="tel" label-width="60px" placeholder="输入手机号"
class="mb-6 border-b border-gray-200 border-b-solid"
/>
<view class="mb-6 flex items-center">
<wd-input
v-model="verificationCode" label="验证码" type="number" label-width="60px" placeholder="输入验证码"
class="flex-1 border-b border-gray-200 border-b-solid"
/>
<view
class="ml-2 rounded-lg border-none px-2 py-2 text-sm font-bold outline-none ring-none transition duration-300"
:class="isCountingDown || !isPhoneNumberValid ? 'cursor-not-allowed bg-gray-300 text-gray-500' : 'bg-blue-500 text-white hover:bg-blue-600'"
@click="sendVerificationCode"
>
{{ isCountingDown ? `${countdown}s重新获取` : '获取验证码' }}
</view>
</view>
<view class="mb-6 flex items-center">
<wd-checkbox v-model="agreeToTerms" />
<view class="ml-1 text-xs text-gray-400">
我已阅读并同意<text class="text-blue-500 hover:underline" @click="toUserAgreement">
用户协议
</text><text class="text-blue-500 hover:underline" @click="toPrivacyPolicy">
隐私政策
</text>
</view>
</view>
<view class="flex">
<wd-button
custom-style="border-top-right-radius: 0;
border-bottom-right-radius: 0;" plain class="w-10 py-3 text-lg font-bold" @click="toExample"
>
示例报告
</wd-button>
<wd-button
custom-style="border-top-left-radius: 0;
border-bottom-left-radius: 0;" type="primary" class="flex-1 py-3 text-lg font-bold" @click="handleSubmit"
>
立即查询 {{ featureData.sell_price }}
</wd-button>
</view>
</view>
<wd-divider class="my-4" />
<view class="card">
<!-- 报告标题 -->
<view class="mb-6 text-xl text-gray-800 font-bold">
{{ featureData.product_name }}
</view>
<!-- 报告介绍 -->
<view class="mb-4 text-gray-600 leading-relaxed">
{{ featureData.description }}
</view>
<!-- 报价信息 -->
<view class="mb-6 flex items-center justify-between">
<view class="text-lg text-gray-500">
价格
</view>
<view class="text-lg text-blue-600 font-semibold">
¥{{ featureData.sell_price }}
</view>
</view>
<!-- 报告主要内容 -->
<view class="mb-4 text-lg text-gray-800 font-semibold">
报告主要内容
</view>
<view class="grid grid-cols-2 gap-4">
<view
v-for="(feature, index) in featureData.features"
:key="feature.id"
class="rounded-lg py-2 text-center text-sm text-gray-700 font-medium"
:class="[
(Math.floor(index / 2) + (index % 2)) % 2 === 0
? 'bg-gradient-to-r from-blue-200 via-blue-200 to-blue-100'
: 'bg-gradient-to-r from-sky-200 via-sky-200 to-sky-100',
]"
>
{{ feature.name }}
</view>
</view>
</view>
</view>
</template>
<style scoped>
.icon-company,
.icon-transaction,
.icon-judicial,
.icon-penalty {
font-size: 2rem;
}
.inquire-bg {
background: url("/static/image/bg_2.png") no-repeat;
position: relative;
}
.inquire-bg::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(255, 255, 255, 0.4);
/* 使用白色的半透明覆盖层0.5 可调整为其他透明度值 */
z-index: 1;
}
.inquire-bg>* {
position: relative;
z-index: 2;
/* 确保子元素在覆盖层之上 */
}
</style>
<route lang="json">
{
"layout": "page",
"title": "报告查询"
}
</route>

203
src/pages/login.vue Normal file
View File

@@ -0,0 +1,203 @@
<script setup>
import { getCode, login } from '@/api/apis'
const phoneNumber = ref('')
const verificationCode = ref('')
const password = ref('')
const isPasswordLogin = ref(false)
const isAgreed = ref(false)
const isCountingDown = ref(false)
const countdown = ref(60)
let timer = null
// 聚焦状态变量
const phoneFocused = ref(false)
const codeFocused = ref(false)
const passwordFocused = ref(false)
const isPhoneNumberValid = computed(() => {
return /^1[3-9]\d{9}$/.test(phoneNumber.value)
})
const canLogin = computed(() => {
if (!isPhoneNumberValid.value)
return false
if (isPasswordLogin.value) {
return password.value.length >= 6
}
else {
return verificationCode.value.length === 6
}
})
function sendVerificationCode() {
if (isCountingDown.value || !isPhoneNumberValid.value)
return
if (!isPhoneNumberValid.value) {
uni.showToast({ title: '请输入有效的手机号', icon: 'none' })
return
}
getCode({
mobile: phoneNumber.value,
actionType: 'login',
}).then((res) => {
if (res.code === 200) {
uni.showToast({ title: '获取成功', icon: 'none' })
startCountdown()
}
})
}
function startCountdown() {
isCountingDown.value = true
countdown.value = 60
timer = setInterval(() => {
if (countdown.value > 0) {
countdown.value--
}
else {
clearInterval(timer)
isCountingDown.value = false
}
}, 1000)
}
function handleLogin() {
if (!canLogin.value) {
uni.showToast({ title: '请完善信息', icon: 'none' })
return
}
if (!isAgreed.value) {
uni.showToast({ title: '请先同意用户协议', icon: 'none' })
return
}
login({ mobile: phoneNumber.value, code: verificationCode.value }).then((res) => {
console.log('res.data.AccessToken', res.data.accessToken)
if (res.code === 200) {
uni.setStorageSync('token', res.data.accessToken)
uni.showToast({ title: '登录成功', icon: 'none' })
uni.reLaunch({
url: '/pages/index',
})
}
else {
uni.showToast({ title: res.msg, icon: 'none' })
}
})
}
function toUserAgreement() {
uni.navigateTo({
url: '/pages/userAgreement',
})
}
function toPrivacyPolicy() {
uni.navigateTo({
url: '/pages/privacyPolicy',
})
}
onUnmounted(() => {
if (timer) {
clearInterval(timer)
}
})
</script>
<template>
<view class="login px-8">
<view class="mb-8 pt-8 text-left">
<view class="flex flex-col items-center">
<image
class="h-18 w-18 rounded-full shadow"
src="/static/image/logo.png"
mode="scaleToFill"
/>
<image
class="mt-4 h-10"
src="/static/image/logo_title.png"
mode="aspectFit"
/>
</view>
</view>
<view class="space-y-5">
<view class="input-container bg-blue-300/20" :class="[phoneFocused ? 'focused' : '']">
<input
v-model="phoneNumber" class="input-field" type="number" placeholder="请输入手机号" maxlength="11"
@focus="phoneFocused = true" @blur="phoneFocused = false"
>
</view>
<view v-if="!isPasswordLogin">
<view class="flex items-center justify-between">
<view class="input-container bg-blue-300/20" :class="[codeFocused ? 'focused' : '']">
<input
v-model="verificationCode" class="input-field" type="number" placeholder="请输入验证码" maxlength="6"
@focus="codeFocused = true" @blur="codeFocused = false"
>
</view>
<view
class="ml-2 rounded-lg px-4 py-2 text-sm font-bold transition duration-300 focus:outline-none"
:class="isCountingDown || !isPhoneNumberValid ? 'cursor-not-allowed bg-gray-300 text-gray-500' : 'bg-blue-500 text-white hover:bg-blue-600'"
@click="sendVerificationCode"
>
{{ isCountingDown ? `${countdown}s重新获取` : '获取验证码' }}
</view>
</view>
</view>
<view v-if="isPasswordLogin" class="input-container" :class="[passwordFocused ? 'focused' : '']">
<input
v-model="password" class="input-field" type="password" placeholder="请输入密码"
@focus="passwordFocused = true" @blur="passwordFocused = false"
>
</view>
<view class="flex items-start space-x-2">
<wd-checkbox v-model="isAgreed" class="mt-1" />
<text class="text-xs text-gray-400 leading-tight">
未注册手机号登录后将自动生成账号并且代表您已阅读并同意
<text class="cursor-pointer text-blue-400" @click="toUserAgreement">
用户协议
</text>
<text class="cursor-pointer text-blue-400" @click="toPrivacyPolicy">
隐私政策
</text>
</text>
</view>
</view>
<button
class="mt-20 block w-full flex-shrink-0 rounded-full bg-blue-500 py-3 text-lg text-white font-bold transition duration-300"
@click="handleLogin"
>
登录
</button>
</view>
</template>
<style scoped>
.login{
}
.input-container {
border: 2px solid rgba(125, 211, 252, 0.0);
border-radius: 1rem;
@apply transition duration-200
}
.input-container.focused {
border: 2px solid #3b82f6;
}
.input-field {
width: 100%;
padding: 1rem;
transition: border-color 0.3s ease;
outline: none;
background: transparent;
}
</style>
<route lang="json">
{
"layout": "login",
"title": "登录"
}
</route>

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