From 2ec98c0b90ac3d558b7476b45345a5e76f18ea3c Mon Sep 17 00:00:00 2001
From: Hx <2294602187@qq.com>
Date: Thu, 27 Mar 2025 10:14:38 +0800
Subject: [PATCH] init
---
.env.development | 5 +
.env.production | 6 +
.eslintignore | 3 +
.eslintrc.cjs | 146 ++++++++++++
.gitignore | 28 +++
.husky/pre-commit | 4 +
.prettierignore | 8 +
.prettierrc.cjs | 36 +++
README.md | 30 +++
auto/addPage.ts | 85 +++++++
auto/preinstall.js | 4 +
index.html | 23 ++
package.json | 100 ++++++++
src/App.vue | 29 +++
src/api/common.ts | 98 ++++++++
src/components/ex-list/ex-list.vue | 147 ++++++++++++
src/components/ex-tags/ex-tags.vue | 61 +++++
src/config/index.ts | 13 ++
src/hooks/paginationLoader.ts | 128 +++++++++++
src/hooks/useListLoadClass.ts | 125 ++++++++++
src/hooks/usePagingLoad.ts | 127 +++++++++++
src/main.ts | 16 ++
src/manifest.json | 131 +++++++++++
src/pages.json | 111 +++++++++
src/pages/electionList/index.vue | 218 ++++++++++++++++++
src/pages/electionResults/index.vue | 7 +
src/pages/index/guide.vue | 112 +++++++++
src/pages/index/links.vue | 9 +
src/pages/mine/index.vue | 314 ++++++++++++++++++++++++++
src/pages/myElection/index.vue | 7 +
src/pages/votingElection/index.vue | 338 ++++++++++++++++++++++++++++
src/permission.ts | 51 +++++
src/share.vue | 257 +++++++++++++++++++++
src/static/bg1.png | Bin 0 -> 96336 bytes
src/static/card.png | Bin 0 -> 208824 bytes
src/static/invite.jpg | Bin 0 -> 53714 bytes
src/static/logo-bg.png | Bin 0 -> 913979 bytes
src/static/logo-tran.png | Bin 0 -> 53904 bytes
src/static/logo.png | Bin 0 -> 112107 bytes
src/static/password.png | Bin 0 -> 521 bytes
src/static/redpacket.png | Bin 0 -> 4833 bytes
src/static/tabbar/grxx-select.png | Bin 0 -> 288 bytes
src/static/tabbar/grxx.png | Bin 0 -> 285 bytes
src/static/tabbar/tpxj-select.png | Bin 0 -> 303 bytes
src/static/tabbar/tpxj.png | Bin 0 -> 296 bytes
src/static/tabbar/wdxj-select.png | Bin 0 -> 294 bytes
src/static/tabbar/wdxj.png | Bin 0 -> 291 bytes
src/static/tabbar/xjjg-select.png | Bin 0 -> 365 bytes
src/static/tabbar/xjjg.png | Bin 0 -> 358 bytes
src/static/tabbar/xjlb-select.png | Bin 0 -> 312 bytes
src/static/tabbar/xjlb.png | Bin 0 -> 296 bytes
src/static/user.png | Bin 0 -> 541 bytes
src/store/index.ts | 10 +
src/store/user.ts | 92 ++++++++
src/types/auto-imports.d.ts | 180 +++++++++++++++
src/types/env.d.ts | 13 ++
src/types/global.d.ts | 29 +++
src/uni.scss | 119 ++++++++++
src/utils/common.ts | 45 ++++
src/utils/http.ts | 69 ++++++
src/utils/rules.ts | 6 +
tsconfig.json | 29 +++
vite.config.ts | 45 ++++
63 files changed, 3414 insertions(+)
create mode 100644 .env.development
create mode 100644 .env.production
create mode 100644 .eslintignore
create mode 100644 .eslintrc.cjs
create mode 100644 .gitignore
create mode 100644 .husky/pre-commit
create mode 100644 .prettierignore
create mode 100644 .prettierrc.cjs
create mode 100644 README.md
create mode 100644 auto/addPage.ts
create mode 100644 auto/preinstall.js
create mode 100644 index.html
create mode 100644 package.json
create mode 100644 src/App.vue
create mode 100644 src/api/common.ts
create mode 100644 src/components/ex-list/ex-list.vue
create mode 100644 src/components/ex-tags/ex-tags.vue
create mode 100644 src/config/index.ts
create mode 100644 src/hooks/paginationLoader.ts
create mode 100644 src/hooks/useListLoadClass.ts
create mode 100644 src/hooks/usePagingLoad.ts
create mode 100644 src/main.ts
create mode 100644 src/manifest.json
create mode 100644 src/pages.json
create mode 100644 src/pages/electionList/index.vue
create mode 100644 src/pages/electionResults/index.vue
create mode 100644 src/pages/index/guide.vue
create mode 100644 src/pages/index/links.vue
create mode 100644 src/pages/mine/index.vue
create mode 100644 src/pages/myElection/index.vue
create mode 100644 src/pages/votingElection/index.vue
create mode 100644 src/permission.ts
create mode 100644 src/share.vue
create mode 100644 src/static/bg1.png
create mode 100644 src/static/card.png
create mode 100644 src/static/invite.jpg
create mode 100644 src/static/logo-bg.png
create mode 100644 src/static/logo-tran.png
create mode 100644 src/static/logo.png
create mode 100644 src/static/password.png
create mode 100644 src/static/redpacket.png
create mode 100644 src/static/tabbar/grxx-select.png
create mode 100644 src/static/tabbar/grxx.png
create mode 100644 src/static/tabbar/tpxj-select.png
create mode 100644 src/static/tabbar/tpxj.png
create mode 100644 src/static/tabbar/wdxj-select.png
create mode 100644 src/static/tabbar/wdxj.png
create mode 100644 src/static/tabbar/xjjg-select.png
create mode 100644 src/static/tabbar/xjjg.png
create mode 100644 src/static/tabbar/xjlb-select.png
create mode 100644 src/static/tabbar/xjlb.png
create mode 100644 src/static/user.png
create mode 100644 src/store/index.ts
create mode 100644 src/store/user.ts
create mode 100644 src/types/auto-imports.d.ts
create mode 100644 src/types/env.d.ts
create mode 100644 src/types/global.d.ts
create mode 100644 src/uni.scss
create mode 100644 src/utils/common.ts
create mode 100644 src/utils/http.ts
create mode 100644 src/utils/rules.ts
create mode 100644 tsconfig.json
create mode 100644 vite.config.ts
diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..46ac588
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,5 @@
+ENV='development'
+# base api
+VITE_APP_BASE_URL = 'http://pos-api.lingji.vip'
+VITE_APP_BASE_PRE = '/shenname'
+VITE_APP_BASE_NAME = 'POS'
diff --git a/.env.production b/.env.production
new file mode 100644
index 0000000..6ca60a8
--- /dev/null
+++ b/.env.production
@@ -0,0 +1,6 @@
+ENV='production'
+# base api
+VITE_APP_BASE_URL = 'http://pos-api.lingji.vip'
+VITE_APP_BASE_PRE = 'http://pos-api.lingji.vip'
+VITE_APP_BASE_NAME = 'POS'
+
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..0ea3957
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,3 @@
+dist
+node_modules
+uni_modules
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 0000000..f44624e
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1,146 @@
+// @see https://eslint.bootcss.com/docs/rules/
+
+module.exports = {
+ env: {
+ browser: true,
+ es2021: true,
+ node: true
+ },
+ globals: {
+ NodeJS: 'readonly'
+ },
+ /* 指定如何解析语法 */
+ parser: 'vue-eslint-parser',
+ /** 优先级低于 parse 的语法解析配置 */
+ parserOptions: {
+ ecmaVersion: 'latest',
+ sourceType: 'module',
+ parser: '@typescript-eslint/parser',
+ jsxPragma: 'React',
+ ecmaFeatures: {
+ jsx: true
+ }
+ },
+ /* 继承已有的规则 */
+ extends: ['eslint:recommended', 'plugin:vue/vue3-essential', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'],
+ plugins: ['vue', '@typescript-eslint'],
+ overrides: [
+ {
+ files: ['*.ts', '*.tsx', '*.vue'],
+ rules: {
+ 'no-undef': 0
+ }
+ }
+ ],
+ /*
+ * 'off' 或 0 ==> 关闭规则
+ * 'warn' 或 1 ==> 打开的规则作为警告(不影响代码执行)
+ * 'error' 或 2 ==> 规则作为一个错误(代码不能执行,界面报错)
+ */
+ rules: {
+ // typeScript (https://typescript-eslint.io/rules)
+ '@typescript-eslint/no-unused-vars': [2, { argsIgnorePattern: '^_' }], // 禁止定义未使用的变量
+ '@typescript-eslint/prefer-ts-expect-error': 2, // 禁止使用 @ts-ignore
+ '@typescript-eslint/no-explicit-any': 0, // 禁止使用 any 类型
+ '@typescript-eslint/no-non-null-assertion': 0,
+ '@typescript-eslint/no-namespace': 0, // 禁止使用自定义 TypeScript 模块和命名空间。
+ '@typescript-eslint/semi': 0,
+ 'no-prototype-builtins': 0, // 可以使用obj.hasOwnProperty()
+ '@typescript-eslint/no-var-requires': 0, // 不允许在import 中使用require
+ '@typescript-eslint/no-empty-function': 2, // 关闭空方法检查
+ // eslint-plugin-vue (https://eslint.vuejs.org/rules/)
+ 'vue/multi-word-component-names': 0, // 要求组件名称始终为 “-” 链接的单词
+ 'vue/script-setup-uses-vars': 2, // 防止
+
+
+
+ ${title}
+
+
+`;
+ createStream.write(template);
+ createStream.end();
+ console.log('\x1B[34m', `pages ${name} created successfully.`);
+ }
+ console.log('\x1B[32m%s\x1B[39m', '\n All files are created successfully.\n');
+}
+
+addPages(newPages);
\ No newline at end of file
diff --git a/auto/preinstall.js b/auto/preinstall.js
new file mode 100644
index 0000000..01f63a5
--- /dev/null
+++ b/auto/preinstall.js
@@ -0,0 +1,4 @@
+if (!/pnpm/.test(process.env.npm_execpath || '')) {
+ console.warn(`\u001b[33mThis repository must using pnpm as the package manager ` + ` for scripts to work properly.\u001b[39m\n`)
+ process.exit(1)
+}
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..b05e747
--- /dev/null
+++ b/index.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..350e978
--- /dev/null
+++ b/package.json
@@ -0,0 +1,100 @@
+{
+ "name": "uni-preset-vue",
+ "version": "0.0.0",
+ "scripts": {
+ "dev:app": "uni -p app",
+ "dev:app-android": "uni -p app-android",
+ "dev:app-ios": "uni -p app-ios",
+ "dev:custom": "uni -p",
+ "dev:h5": "uni",
+ "dev:h5:prop": "uni --mode=production",
+ "dev:h5:ssr": "uni --ssr",
+ "dev:mp-alipay": "uni -p mp-alipay",
+ "dev:mp-baidu": "uni -p mp-baidu",
+ "dev:mp-jd": "uni -p mp-jd",
+ "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:app": "uni build -p app",
+ "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-jd": "uni build -p mp-jd",
+ "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",
+ "add": "node ./auto/addPage.ts",
+ "preinstall": "node ./auto/preinstall.js",
+ "lint": "eslint --ext .ts,.js,.vue ./src",
+ "fix": "eslint --fix --ext .ts,.js,.vue ./src",
+ "prepare": "husky install",
+ "rm": "rm -rf node_modules package-lock.json pnpm-lock.yaml && pnpm install"
+ },
+ "dependencies": {
+ "@dcloudio/uni-app": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-app-plus": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-components": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-h5": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-mp-alipay": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-mp-baidu": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-mp-jd": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-mp-kuaishou": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-mp-lark": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-mp-qq": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-mp-toutiao": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-mp-weixin": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-mp-xhs": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-quickapp-webview": "3.0.0-alpha-3081220230802001",
+ "@qiun/ucharts": "2.5.0-20230101",
+ "animate.css": "^4.1.1",
+ "echarts": "^5.5.0",
+ "pinia": "2.0.36",
+ "sass": "^1.63.2",
+ "uview-plus": "^3.4.9",
+ "vue": "^3.2.45",
+ "vue-i18n": "^9.1.9"
+ },
+ "devDependencies": {
+ "@babel/eslint-parser": "^7.22.9",
+ "@dcloudio/types": "^3.3.2",
+ "@dcloudio/uni-automator": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-cli-shared": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/uni-stacktracey": "3.0.0-alpha-3081220230802001",
+ "@dcloudio/vite-plugin-uni": "3.0.0-alpha-3081220230802001",
+ "@typescript-eslint/eslint-plugin": "^6.2.1",
+ "@typescript-eslint/parser": "^6.2.1",
+ "@vue/tsconfig": "^0.1.3",
+ "@vueuse/core": "^10.3.0",
+ "eslint": "^8.46.0",
+ "eslint-config-prettier": "^8.9.0",
+ "eslint-plugin-import": "^2.28.0",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-prettier": "^5.0.0",
+ "eslint-plugin-vue": "^9.16.1",
+ "feng-uniapp-exploit": "^1.0.2",
+ "husky": "^8.0.0",
+ "pinia-plugin-unistorage": "^0.0.17",
+ "prettier": "^3.0.0",
+ "sass-loader": "^10.4.1",
+ "typescript": "^4.9.4",
+ "unplugin-auto-import": "^0.16.6",
+ "unplugin-vue-components": "^0.25.1",
+ "vite": "4.0.3",
+ "vue-tsc": "^1.0.24"
+ }
+}
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 0000000..b95142e
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
diff --git a/src/api/common.ts b/src/api/common.ts
new file mode 100644
index 0000000..793bc64
--- /dev/null
+++ b/src/api/common.ts
@@ -0,0 +1,98 @@
+import { request } from '@/utils/http'
+
+export interface sendCodeType {
+ phone: number | string
+}
+
+export function sendCode(data: sendCodeType) {
+ return request.http({
+ url: '/api/t.sms/sendCode',
+ data
+ })
+}
+
+// 上传图片
+export function uploadFile(file: any) {
+ let url = ''
+ // #ifdef APP-PLUS
+ url = import.meta.env.VITE_APP_BASE_URL
+ // #endif
+ // #ifdef H5
+ url = import.meta.env.VITE_APP_BASE_PRE
+ // #endif
+ return new Promise((resolve, reject) => {
+ uni.uploadFile({
+ url: `${url}/api/resources/upload`,
+ filePath: file,
+ name: 'file',
+ success: (res) => {
+ resolve(JSON.parse(res.data))
+ },
+ fail: (res) => {
+ reject(res)
+ }
+ })
+ })
+}
+
+// 根据 KEY 获取对应数据
+export function getKeyData(key: string) {
+ return request.http({
+ url: '/api/t.systemData/getCategoryByKey',
+ data: { key: key }
+ })
+}
+
+// 根据 KEY 获取对应系统设置
+export function getKeySetting(key: string) {
+ return request.http({
+ url: '/api/t.systemData/getSettingByKey',
+ data: { key: key }
+ })
+}
+
+// 获取无限极分类数据
+export function getCategoryData() {
+ return request.http({
+ url: '/api/t.systemData/categoryTree'
+ })
+}
+
+// 意见反馈
+export interface feedbackType {
+ type: useType
+ category_id: number
+ content: string
+ image?: string
+ contact_information: string
+}
+
+export function feedback(data: feedbackType) {
+ return request.http({
+ url: '/api/t.feedback/add',
+ data
+ })
+}
+
+// 购买支付接口
+export function pay(data: { policy_id: number; uid: number; pay_amount: number; version: string }) {
+ return request.http({
+ url: '/api/t.notify/buyAgentPolicyNotify',
+ data
+ })
+}
+
+// 直采列表
+export function voucherQuery() {
+ return request.http({
+ url: '/api/d.pickGiftBag/query'
+ })
+}
+
+// 直采支付
+export function voucherPay(data: { id: number }) {
+ return request.http({
+ url: '/api/d.pickGiftBag/buy',
+ data
+ })
+}
diff --git a/src/components/ex-list/ex-list.vue b/src/components/ex-list/ex-list.vue
new file mode 100644
index 0000000..8d86195
--- /dev/null
+++ b/src/components/ex-list/ex-list.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ex-tags/ex-tags.vue b/src/components/ex-tags/ex-tags.vue
new file mode 100644
index 0000000..119e414
--- /dev/null
+++ b/src/components/ex-tags/ex-tags.vue
@@ -0,0 +1,61 @@
+
+
+
+ {{ label }}
+
+
+
+
+
+
+
+
+
diff --git a/src/config/index.ts b/src/config/index.ts
new file mode 100644
index 0000000..31f99ca
--- /dev/null
+++ b/src/config/index.ts
@@ -0,0 +1,13 @@
+export const Prefix = 'POS_'
+
+export const getPrefixName = (name: string) => {
+ return Prefix + name
+}
+
+export function getAuthorization() {
+ return uni.getStorageSync(getPrefixName('user'))
+}
+
+export function removeAuthorization() {
+ return uni.removeStorageSync(getPrefixName('user'))
+}
diff --git a/src/hooks/paginationLoader.ts b/src/hooks/paginationLoader.ts
new file mode 100644
index 0000000..bc29f5e
--- /dev/null
+++ b/src/hooks/paginationLoader.ts
@@ -0,0 +1,128 @@
+/*
+ * @description: 分页请求
+ * @fileName: useListLoadClass.ts
+ * @author: lxx
+ * @date: 2023-07-08 08:55:52
+ * @version: V1.0.0
+ */
+import { ref } from 'vue'
+
+class PaginationLoader {
+ // 分页数据
+ private data = ref([])
+
+ // 分页基础参数
+ private requestParams = {
+ page: 1,
+ limit: 10
+ }
+
+ // 是否正在加载
+ private isLoading = ref(false)
+
+ // 是否还有更多数据
+ private hasMore = ref(true)
+
+ // 请求函数(由外部传入)
+ private fetchFn: (formData: Object, onSuccess: Function) => Function
+
+ constructor(fetchFn: (formData: Object, onSuccess: Function) => Function) {
+ this.fetchFn = fetchFn
+ }
+
+ // 获取当前数据
+ get dataList() {
+ return this.data.value
+ }
+
+ // 获取是否正在加载
+ get loading() {
+ return this.isLoading.value
+ }
+
+ // 获取是否还有更多数据
+ get more() {
+ return this.hasMore.value
+ }
+
+ // 加载下一页数据
+ async loadNextPage() {
+ // if (this.isLoading.value || !this.hasMore.value) return
+
+ // uni.showLoading({ title: '加载中...' })
+
+ // this.isLoading.value = true
+
+ // try {
+ // const result = await this.fetchFn(this.currentPage.value, this.pageSize)
+
+ // if (result.length > 0) {
+ // this.data.value = [...this.data.value, ...result]
+ // this.currentPage.value += 1
+ // } else {
+ // this.hasMore.value = false // 没有更多数据
+ // }
+ // } catch (error) {
+ // console.error('加载数据失败:', error)
+ // } finally {
+ // this.isLoading.value = false
+ // }
+ uni.showLoading({ title: '数据加载中' })
+ this.isLoading.value = false
+ const params = { ...this.requestParams } as { [n: string]: string | number | boolean }
+
+ setTimeout(() => {
+ this.fetchFn(params, ({ data }: { data: { data: any; total: number } }) => {
+ this.isLoading.value = true
+ this.requestParams.page = params.page as number
+ this.requestParams.limit = params.limit as number
+ this.data.value = [...this.data.value, ...data.data]
+ uni.hideLoading()
+ })
+ }, 100)
+ }
+
+ // 重置分页状态
+ reset() {
+ this.data.value = []
+ this.requestParams.page = 1
+ this.hasMore.value = true
+ this.isLoading.value = false
+ }
+}
+
+// export default PaginationLoader
+
+const fetchData = async (formData: any, onSuccess: Function) => {
+ const submitData = { ...formData }
+ point_order_list(submitData).then((res) => {
+ const { data } = res as { data: { data: any; total: number } }
+ onSuccess({ data })
+ })
+ // // 模拟接口请求
+ // return new Promise<{ id: number; name: string }[]>((resolve) => {
+ // setTimeout(() => {
+ // const data = Array.from({ length: pageSize }, (_, index) => ({
+ // id: (page - 1) * pageSize + index,
+ // name: `Item ${(page - 1) * pageSize + index}`
+ // }))
+ // resolve(data)
+ // }, 1000)
+ // })
+}
+
+// 创建分页加载实例
+const paginationLoader = new PaginationLoader(fetchData)
+
+// 加载下一页数据
+paginationLoader.loadNextPage(formDate.value)
+
+// 初始化加载第一页数据
+paginationLoader.loadNextPage()
+
+return {
+ dataList: paginationLoader.dataList,
+ loading: paginationLoader.loading,
+ more: paginationLoader.more,
+ loadNextPage
+}
diff --git a/src/hooks/useListLoadClass.ts b/src/hooks/useListLoadClass.ts
new file mode 100644
index 0000000..8027773
--- /dev/null
+++ b/src/hooks/useListLoadClass.ts
@@ -0,0 +1,125 @@
+/*
+ * @description: 分页请求
+ * @fileName: useListLoadClass.ts
+ * @author: lxx
+ * @date: 2023-07-08 08:55:52
+ * @version: V1.0.0
+ */
+import { ref, computed } from 'vue'
+import { onReachBottom } from '@dcloudio/uni-app'
+
+class LoadDataClass {
+ // 请求参数
+ static queryParams = {
+ page: 1,
+ limit: 10
+ }
+ // 列表数据
+ list = ref([])
+ total = ref(0)
+ // 前置处理方法
+ afterLoadData: Function | undefined
+ // 请求方法
+ Query: Function
+ // 加载状态参数
+ isLoading = ref(false)
+ // 无更多数据了
+ isNoData = computed(() => {
+ if (LoadDataClass.queryParams.page * LoadDataClass.queryParams.limit >= this.total.value) {
+ return true
+ } else {
+ return false
+ }
+ })
+ // 显示暂无数据
+ isEmpty = computed(() => {
+ if (this.total.value === 0) {
+ return true
+ } else {
+ return false
+ }
+ })
+
+ constructor(apiFunctions: Function, afterLoadData?: Function, options?: any) {
+ this.Query = apiFunctions
+ this.afterLoadData = afterLoadData
+ // 存在额外参数拼接
+ if (options) {
+ LoadDataClass.queryParams = { ...LoadDataClass.queryParams, ...options }
+ }
+ // 加载数据
+ this.LoadData()
+ }
+ // 加载数据
+ LoadData = async () => {
+ uni.showLoading({
+ title: '加载中...'
+ })
+ this.isLoading.value = true
+ const res = await this.Query(LoadDataClass.queryParams)
+ this.afterLoadData && this.afterLoadData(res)
+ this.total.value = res.data.total
+ this.list.value = this.list.value.concat(res.data.data)
+
+ uni.hideLoading()
+ uni.stopPullDownRefresh()
+ this.isLoading.value = false
+ }
+ // 加载更多
+ LoadMore = () => {
+ if (this.isNoData.value || this.isLoading.value) return // 无数据或者加载中不进行加载
+ LoadDataClass.queryParams.page += 1
+ this.LoadData()
+ }
+ // 重置参数
+ queryParamsReset = () => {
+ LoadDataClass.queryParams = {
+ page: 1,
+ limit: 10
+ }
+ }
+
+ /**
+ * 刷新
+ * @param isClear: 是否清空数据
+ */
+ ReLoad = (isClear: boolean = true) => {
+ this.isLoading.value = false
+ this.list.value = []
+ if (isClear) {
+ this.queryParamsReset()
+ } else {
+ LoadDataClass.queryParams.page = 1
+ }
+
+ this.LoadData()
+ }
+}
+/**
+ * 分页加载数据方法
+ * @param api: ListAPI 方法
+ * @param afterLoadData: res数据前置处理方法
+ * @returns
+ */
+interface LoadDataInt {
+ api: Function
+ afterLoadData?: Function
+ options?: any
+}
+
+export function LoadData({ api, afterLoadData, options }: LoadDataInt) {
+ const data = new LoadDataClass(api, afterLoadData, options)
+
+ // 下拉加载
+ onReachBottom(() => {
+ console.log('onReachBottom')
+ data.LoadMore()
+ })
+ return {
+ list: data.list,
+ isLoading: data.isLoading,
+ isNoData: data.isNoData,
+ isEmpty: data.isEmpty,
+ ReLoad: data.ReLoad
+ }
+}
diff --git a/src/hooks/usePagingLoad.ts b/src/hooks/usePagingLoad.ts
new file mode 100644
index 0000000..d66380f
--- /dev/null
+++ b/src/hooks/usePagingLoad.ts
@@ -0,0 +1,127 @@
+import { ref, reactive, computed } from 'vue'
+import { onReachBottom } from '@dcloudio/uni-app'
+/*
+ * @description: 分页请求
+ * @fileName: useListLoadClass.ts
+ * @author: lxx
+ * @date: 2023-07-08 08:55:52
+ * @version: V1.0.0
+ * loading状态
+ * @param {*} Query 请求函数
+ * @param {*} LoadData 加载数据方法
+ * @param {*} ReLoad (isClear?: boolean) 刷新列表数据 isClear 传入true时将请求参数(queryParams)还原初始化状态
+ */
+
+export function usePagingLoad(Query: any) {
+ // 下拉加载
+ onReachBottom(() => {
+ console.log('onReachBottom')
+ loadMore()
+ })
+
+ const isLoading = ref(false)
+ let queryParams = reactive({} as any)
+
+ queryParams = {
+ page: 1,
+ limit: 10
+ }
+
+ const total = ref(0)
+
+ const list = ref([])
+ // 无更多数据了
+ const isNoData = computed(() => {
+ if (queryParams.page * queryParams.limit >= total.value) {
+ return true
+ } else {
+ return false
+ }
+ })
+ // 显示暂无数据
+ const isEmpty = computed(() => {
+ if (total.value === 0) {
+ return true
+ } else {
+ return false
+ }
+ })
+
+ interface optionInt {
+ key: string
+ val: any
+ }
+
+ const LoadData = async (afterLoadData?: any, option?: optionInt[]) => {
+ const obj: any = {}
+ console.log('option', option)
+ if (option && option?.length > 0) {
+ option?.map((item) => {
+ obj[item?.key] = item.val
+ })
+ }
+ // , ...rest: any[]
+ // if (rest.length > 0) {
+ // rest.map((item) => {
+ // obj[item?.key] = item?.val;
+ // });
+ // }
+ queryParams = reactive({ ...queryParams, ...obj })
+
+ uni.showLoading({
+ title: '加载中...'
+ })
+ isLoading.value = true
+ const res = await Query(queryParams)
+ total.value = res?.data?.total
+
+ // 数据加载完成后 设置 after 钩子
+ afterLoadData && afterLoadData(res.data)
+ console.log('res.data', res.data)
+
+ list.value = list.value.concat(res?.data?.data)
+ uni.hideLoading()
+ uni.stopPullDownRefresh()
+ isLoading.value = false
+ }
+
+ // const afterLoadData = (data: any) => {
+ // console.log(data);
+ // };
+
+ const ReLoad = (option?: optionInt[], isClear?: boolean) => {
+ isLoading.value = false
+ list.value = []
+ if (isClear) {
+ queryParams = reactive({
+ page: 1,
+ limit: 10
+ })
+ } else {
+ queryParams.page = 1
+ }
+ const obj: any = {}
+ if (option && option?.length > 0) {
+ option?.map((item) => {
+ obj[item?.key] = item.val
+ })
+ }
+ queryParams = reactive({ ...queryParams, ...obj })
+ LoadData()
+ }
+
+ const loadMore = () => {
+ if (isNoData.value || isLoading.value) return // 无数据或者加载中不进行加载
+ queryParams.page += 1
+ LoadData()
+ }
+
+ return {
+ list,
+ LoadData,
+ ReLoad,
+ isNoData,
+ isEmpty,
+ isLoading
+ }
+}
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 0000000..8d202a8
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,16 @@
+import { createSSRApp } from 'vue'
+import App from './App.vue'
+
+import uviewPlus from 'uview-plus'
+import fengUniappExploit from 'feng-uniapp-exploit'
+
+import store from './store'
+
+export function createApp() {
+ const app = createSSRApp(App)
+ app.use(uviewPlus)
+ app.use(fengUniappExploit)
+ app.use(store)
+
+ return { app }
+}
diff --git a/src/manifest.json b/src/manifest.json
new file mode 100644
index 0000000..80d5370
--- /dev/null
+++ b/src/manifest.json
@@ -0,0 +1,131 @@
+{
+ "name" : "新未来",
+ "appid" : "__UNI__1AE1F37",
+ "description" : "v3+ts+uniapp模版",
+ "versionName" : "1.0.68",
+ "versionCode" : 168,
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ "compatible" : {
+ "ignoreVersion" : true
+ },
+ /* 模块配置 */
+ "modules" : {
+ "Barcode" : {},
+ "Camera" : {},
+ "VideoPlayer" : {},
+ "Share" : {},
+ "Geolocation" : {},
+ "Maps" : {}
+ },
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ "minSdkVersion" : 21
+ },
+ /* ios打包配置 */
+ "ios" : {
+ "dSYMs" : false
+ },
+ /* SDK配置 */
+ "sdkConfigs" : {
+ "ad" : {},
+ "share" : {
+ "weixin" : {
+ "appid" : "wxd448c878a54da98d",
+ "UniversalLinks" : ""
+ }
+ },
+ "geolocation" : {
+ "amap" : {
+ "name" : "amap_18648278829CcsBXVUm1",
+ "__platform__" : [ "ios", "android" ],
+ "appkey_ios" : "435934cdfcc901e4872a70391d92cccd",
+ "appkey_android" : "435934cdfcc901e4872a70391d92cccd"
+ }
+ },
+ "maps" : {
+ "amap" : {
+ "name" : "amap_18648278829CcsBXVUm1",
+ "appkey_ios" : "435934cdfcc901e4872a70391d92cccd",
+ "appkey_android" : "435934cdfcc901e4872a70391d92cccd"
+ }
+ }
+ },
+ "icons" : {
+ "android" : {
+ "hdpi" : "src/static/logo.png",
+ "xhdpi" : "src/static/logo.png",
+ "xxhdpi" : "src/static/logo.png",
+ "xxxhdpi" : "src/static/logo.png"
+ }
+ },
+ "splashscreen" : {
+ "iosStyle" : "common",
+ "androidStyle" : "default",
+ "android" : {
+ "hdpi" : "C:/Users/Lenovo/Desktop/480x762.9/res/drawable-xhdpi/480x762.9.png",
+ "xhdpi" : "C:/Users/Lenovo/Desktop/720x1242.9/res/drawable-xhdpi/720x1242.9.png",
+ "xxhdpi" : "C:/Users/Lenovo/Desktop/1080x1882.9/res/drawable-xhdpi/1080x1882.9.png"
+ },
+ "ios" : {
+ "storyboard" : "C:/Users/Lenovo/Desktop/CustomStoryboard.zip"
+ }
+ }
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "",
+ "setting" : {
+ "urlCheck" : false,
+ "es6" : true,
+ "postcss" : false,
+ "minified" : true
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3"
+}
diff --git a/src/pages.json b/src/pages.json
new file mode 100644
index 0000000..c982b41
--- /dev/null
+++ b/src/pages.json
@@ -0,0 +1,111 @@
+{
+ "easycom": {
+ "autoscan": true,
+ "custom": {
+ "^ex-(.*)": "feng-uniapp-exploit/components/ex-$1/ex-$1.vue",
+ "^u-(.*)": "uview-plus/components/u-$1/u-$1.vue"
+ }
+ },
+ "pages": [
+ {
+ "path": "pages/votingElection/index",
+ "style": {
+ "navigationBarTitleText": "投票选举",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/electionList/index",
+ "style": {
+ "navigationBarTitleText": "选举列表",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/electionResults/index",
+ "style": {
+ "navigationBarTitleText": "选举结果",
+ "navigationBarTextStyle": "white",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/myElection/index",
+ "style": {
+ "navigationBarTitleText": "我的选举",
+ "navigationBarTextStyle": "white",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "name": "links",
+ "path": "pages/index/links",
+ "style": {
+ "navigationBarTitleText": "外部链接",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "name": "guide",
+ "path": "pages/index/guide",
+ "style": {
+ "navigationBarTitleText": "用户指南",
+ "enablePullDownRefresh": false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "name": "user",
+ "path": "pages/mine/index",
+ "style": {
+ "navigationBarTitleText": "个人信息",
+ "enablePullDownRefresh": false,
+ "navigationStyle": "custom"
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "uni-app",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "tabBar": {
+ "color": "#9CA3AF",
+ "selectedColor": "#2563EB",
+ "borderStyle": "white",
+ "backgroundColor": "#F9FAFB",
+ "list": [
+ {
+ "pagePath": "pages/votingElection/index",
+ "iconPath": "static/tabbar/tpxj.png",
+ "selectedIconPath": "static/tabbar/tpxj-select.png",
+ "text": "投票选举"
+ },
+ {
+ "pagePath": "pages/electionList/index",
+ "iconPath": "static/tabbar/xjlb.png",
+ "selectedIconPath": "static/tabbar/xjlb-select.png",
+ "text": "选举列表"
+ },
+ {
+ "pagePath": "pages/electionResults/index",
+ "iconPath": "static/tabbar/xjjg.png",
+ "selectedIconPath": "static/tabbar/xjjg-select.png",
+ "text": "选举结果"
+ },
+ {
+ "pagePath": "pages/myElection/index",
+ "iconPath": "static/tabbar/wdxj.png",
+ "selectedIconPath": "static/tabbar/wdxj-select.png",
+ "text": "我的选举"
+ },
+ {
+ "pagePath": "pages/mine/index",
+ "iconPath": "static/tabbar/grxx.png",
+ "selectedIconPath": "static/tabbar/grxx-select.png",
+ "text": "个人信息"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/pages/electionList/index.vue b/src/pages/electionList/index.vue
new file mode 100644
index 0000000..197b0e5
--- /dev/null
+++ b/src/pages/electionList/index.vue
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+
+
+
+
+ {{ '2024年度学生会主席选举' }}
+ 进行中
+
+
+
+ {{ '投票时间:2024-03-01 至 2024-03-07' }}
+
+
+
+
+
+
+
+
+
+
+ 陈佳怡
+
+ 未当选
+
+ 得票数:286
+
+
+
+
+ 60%
+
+
+
+
+
+
+ 陈佳怡
+ 当选
+
+
+ 得票数:286
+
+
+
+
+ 60%
+
+
+ 查看投票详情
+
+
+
+
+
+
+
+
diff --git a/src/pages/electionResults/index.vue b/src/pages/electionResults/index.vue
new file mode 100644
index 0000000..243ce38
--- /dev/null
+++ b/src/pages/electionResults/index.vue
@@ -0,0 +1,7 @@
+
+ 选举结果
+
+
+
+
+
diff --git a/src/pages/index/guide.vue b/src/pages/index/guide.vue
new file mode 100644
index 0000000..3a4351a
--- /dev/null
+++ b/src/pages/index/guide.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ 联系客服
+
+
+
+
+
+
+
+ {{ cv.title }}
+
+
+
+
+
+
+
+
+
+
+ {{ phone }}
+
+
+
+
+
+
+
diff --git a/src/pages/index/links.vue b/src/pages/index/links.vue
new file mode 100644
index 0000000..cb3c718
--- /dev/null
+++ b/src/pages/index/links.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/src/pages/mine/index.vue b/src/pages/mine/index.vue
new file mode 100644
index 0000000..628e05c
--- /dev/null
+++ b/src/pages/mine/index.vue
@@ -0,0 +1,314 @@
+
+
+
+
+
+
+ 我的省钱报告
+
+
+ 累计节省手续费
+
+
+
+ 预计最高还能省
+
+
+
+
+ 累计综合收款费率
+ {{ data.cumulative }}%
+
+
+
+
+
+ 我的订单
+
+ 查看全部
+
+
+
+
+
+
+
+
+ 待付款
+
+
+
+
+
+ 待发货
+
+
+
+
+
+ 待收货
+
+
+
+
+
+ 已完成
+
+
+
+
+
+
+ 其它
+
+
+
+
+
+
+
+ {{ v.label }}
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/myElection/index.vue b/src/pages/myElection/index.vue
new file mode 100644
index 0000000..9fa6173
--- /dev/null
+++ b/src/pages/myElection/index.vue
@@ -0,0 +1,7 @@
+
+ 我的选举
+
+
+
+
+
diff --git a/src/pages/votingElection/index.vue b/src/pages/votingElection/index.vue
new file mode 100644
index 0000000..085d275
--- /dev/null
+++ b/src/pages/votingElection/index.vue
@@ -0,0 +1,338 @@
+
+
+
+
+
+
+
+
+ 2024年度董事会成员选举
+ 投票开始时间:2024年3月15日 18:00
+ 投票截止时间:2024年3月15日 18:00
+
+
+
+
+
+
+
+ {{ row.name }}
+
+
+ {{ row.class }}
+
+
+
+
+
+ {{ item.butname }}
+
+
+
+
+
+
+
+ 全部同意
+ 提交投票
+
+
+
+
+
diff --git a/src/permission.ts b/src/permission.ts
new file mode 100644
index 0000000..ec90164
--- /dev/null
+++ b/src/permission.ts
@@ -0,0 +1,51 @@
+// import { getAuthorization } from '@/config'
+
+// 白名单
+// const whiteList = ['/agentpages/index/index', '/agentpages/mine/index']
+
+export default async function () {
+ const list = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab']
+
+ // 用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器
+ list.forEach((item) => {
+ uni.addInterceptor(item, {
+ invoke(e) {
+ console.log('e', e)
+
+ // 获取要跳转的页面路径(url去掉"?"和"?"后的参数)
+ // const url = e.url.split('?')[0]
+ // const type = url.split('/')[1] || ''
+
+ // let data
+ // if (getAuthorization()) {
+ // data = JSON.parse(getAuthorization())
+ // } else {
+ // data = { userInfo: { is_real: 0 } }
+ // }
+
+ // // 判断当前窗口是白名单,如果是则不重定向路由
+ // if (type === 'agentpages' && !whiteList.includes(url) && !data.userInfo.is_real) {
+ // uni.showModal({
+ // title: '提示',
+ // content: '请先实名认证',
+ // showCancel: true,
+ // success({ confirm }) {
+ // if (confirm) {
+ // uni.navigateTo({
+ // url: '/pages/mine/authentication'
+ // })
+ // }
+ // }
+ // })
+ // return false
+ // }
+
+ return e
+ },
+ fail(err) {
+ // 失败回调拦截
+ console.log(err)
+ }
+ })
+ })
+}
diff --git a/src/share.vue b/src/share.vue
new file mode 100644
index 0000000..49c7feb
--- /dev/null
+++ b/src/share.vue
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存图片
+
+
+
+
+
+ 确定要保存图片吗?
+
+
+
+
+
diff --git a/src/static/bg1.png b/src/static/bg1.png
new file mode 100644
index 0000000000000000000000000000000000000000..b208f6d9de6f66dbb0eb2b0c195f3ba3b4274cf6
GIT binary patch
literal 96336
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