hookehuyr

整理多余文件

Showing 194 changed files with 1225 additions and 0 deletions
# port
VITE_PORT = 8006
# 反向代理服务器地址
VITE_PROXY_TARGET = http://voice.onwall.cn
# API请求前缀
VITE_PROXY_PREFIX = /srv/
# 打包输出文件夹名称
VITE_OUTDIR = voice
# 是否开启调试
VITE_CONSOLE = 0
# appID相关
VITE_APPID=微信appID
# 资源公共路径
VITE_BASE = /
# 测试open-id
# VITE_OPENID = api-test-openid
# VITE_OPENID = o8BRf1gLDWieH3Y3JvbrI_4IjaME
VITE_OPENID = oJLZq5t9PIKLW9tm1oSUNAuPwssA
# VITE_OPENID = oJLZq5uT_6GwIh2tQWh1F9IoHZ3U
# B端账号
VITE_ID = 13761653761
# 验证码
VITE_PIN =
# 资源公共路径
VITE_BASE = /f/voice/
# 测试open-id
VITE_APP_OPENID =
# B端账号
VITE_APP_ID =
# 验证码
VITE_APP_PIN =
{
"globals": {
"EffectScope": true,
"computed": true,
"createApp": true,
"customRef": true,
"defineAsyncComponent": true,
"defineComponent": true,
"effectScope": true,
"getCurrentInstance": true,
"getCurrentScope": true,
"h": true,
"inject": true,
"isProxy": true,
"isReactive": true,
"isReadonly": true,
"isRef": true,
"markRaw": true,
"nextTick": true,
"onActivated": true,
"onBeforeMount": true,
"onBeforeUnmount": true,
"onBeforeUpdate": true,
"onDeactivated": true,
"onErrorCaptured": true,
"onMounted": true,
"onRenderTracked": true,
"onRenderTriggered": true,
"onScopeDispose": true,
"onServerPrefetch": true,
"onUnmounted": true,
"onUpdated": true,
"provide": true,
"reactive": true,
"readonly": true,
"ref": true,
"resolveComponent": true,
"shallowReactive": true,
"shallowReadonly": true,
"shallowRef": true,
"toRaw": true,
"toRef": true,
"toRefs": true,
"triggerRef": true,
"unref": true,
"useAttrs": true,
"useCssModule": true,
"useCssVars": true,
"useRoute": true,
"useRouter": true,
"useSlots": true,
"watch": true,
"watchEffect": true,
"watchPostEffect": true,
"watchSyncEffect": true
}
}
\ No newline at end of file
/*
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-05-27 08:59:09
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-07-08 18:15:20
* @FilePath: /tswj/.eslintrc.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
module.exports = {
// parser: '@typescript-eslint/parser',
parser: 'vue-eslint-parser',
parserOptions: {
parser: 'babel-eslint',
// parser: '@typescript-eslint/parser',
},
extends: [
// add more generic rule sets here, such as:
// 'eslint:recommended',
'plugin:vue/vue3-recommended',
'./.eslintrc-auto-import.json'
// 'plugin:vue/recommended' // Use this if you are using Vue.js 2.x.
],
rules: {
// override/add rules settings here, such as:
// 'vue/no-unused-vars': 'error'
"vue/max-attributes-per-line": ["error", {
"singleline": {
"max": 20
},
"multiline": {
"max": 10
}
}],
"vue/singleline-html-element-content-newline": 0, // 在单行元素的内容之前和之后需要换行符
"vue/first-attribute-linebreak": 0, // 强制第一个属性需要换行
"vue/multi-word-component-names": 0, // 要求组件名称始终为多字
"vue/html-indent": 0, // 执行一致的缩进
"vue/html-closing-bracket-newline": 0, // 在标签的右括号之前要求或禁止换行
},
overrides: [
{
files: ['*.ts'],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
extends: ['plugin:@typescript-eslint/recommended'],
},
],
}
node_modules
.DS_Store
dist
dist-ssr
*.local
.history
doc
.vscode
src/views/test/*
src/store/test.js
cypress
src/test/mocha/test.js
cypress.json
src/test
.idea
{
"esversion": 11,
"asi": true
}
\ No newline at end of file
v18.13.0
export function createProxy(prefix, target) {
const ret = {};
ret[prefix] = {
target,
changeOrigin: true,
ws: true,
// rewrite: (path) => path.replace(/^\/api/, '')
// rewrite: (path) => path.replace(new RegExp(`^${prefix}`), ''),
}
return ret
}
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}
declare module 'vue' {
export interface GlobalComponents {
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
}
}
No preview for this file type
<!DOCTYPE html>
<html lang='zh'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<title></title>
<!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.compat.css" /> -->
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDEzFrlVSgeuOQT
sglIR5RxEASnH0XKKxg/rl6U0pe6NGHwnybhdO6ZHAWRIU4OVOVDCI3OnJ2/2c2o
eCT9L+fDGJew3BAMZvKKn1A/o5xM5YYJo8IKKeJbehjXajXdRJ5WkhAKwSH+rSJE
nADUF4S5sqbXVlvttc1QUVL9GprPq5OBptDfcs6AM+dN1XOn/LgFt0KJ1C80Ah1a
TLjLLFOGEJNLtTAUpLzJb5DKLro88QgPK8ek5afOKiOMULnFk3QJCZ1W98Xd75zq
5Fz/FLCmTgkZMGe+iLr44MewmwMu1H/cHtWVkfEZiFUcRa5xc6SbvMGENfu/3/L4
rLQ7ppMRAgMBAAECggEAaNnMD+WoA35Unh28DlN8xiRXpkbmIwmE2ODpKXduOVoR
WGcjCvoG6XJhkOpisQYQQ/+5tfwBnCbKCNlCM9cjLvHaV/NXZZQv4yVwVwevjdS3
7kjeaBXasQxDUfoXirU1e0BE5cXye8L4v/8x/c4t+9YwSAiN3/99zS4W/hz/oGaE
fCkjHOHQkQKw0invQz3kf86iyanLBS/rllJAtZKmRFqZKchWR68m+sDcbAP320tb
z2yi7og8QcP+kuqQWr2QVOCfD7zz5ihLDCnzipNU/7JmHIkUXqYI8NKGLSftN0LB
NSmOinsx/oM4gu7IAMsyZjpM4UkAHieJEtAHM4RIMQKBgQD13iV4QgupvQauwnl/
Kezse8zSjZS2YSUVZRsMDqw62sVa2BE4CV9NCWO3nPp5MDSDXahjDuoS640askM5
ynWQWbDmttomlVqPbXwHUfKqTLgUIvl7byIuyoJHAIlL/7xEOeHHa5oIy49aKTnw
vrJMTrBifNsdqWp2ht64hwNL3QKBgQDM6IklIbfXDEdji7LAaCzu24uttWAwLn69
d1q5fMVWfWBl3l8O3gvbJSxXTeLHNcjsOb1iQq+3CT/eV+g+5xv17EQH+32ASq9d
VBQ0tZC09BkMcDKPulC9JoGVsgLnIbjOy7GJKOhANqYh18FW9JAYvzZFWzNpsGAR
kXZIGt/axQKBgQDotvZCSEkfxPHhUeOL0FQXVep9VFLw+SwPfx5FoFG2d0Gbha1u
m7hfg0amEWgmctERkgGCmShG9jsdjKMCvTXfhnVhOqtrH6yS2y8tAoysUmddb+kx
wvPY1AbRS5monItHDH4+sgMe1gV+ck0MKIM8pLJg1grTnXpOa8O9ZtVg5QKBgDFM
4XJlom3DLons2p0gc28ks36f3Py6sxOy28k1E+WzVLYtwoE5O3EGiJyYyK9VaXos
ijxR/yTyvMMqM16vDDMnHVcuUwvC7F5wFEx6Qs7GzCAJ/qBGG5bm5Na3datWmbhn
mdd+WCLbAy2xU3swbFsH5m7Zeo07OmH/tY2zqZhhAoGBALxxnWJ4bgtZHcHREB0A
QP6ZSLWoUk0ggoPuwSVgHImW+/C1/38KjHgv4UmhS59MpNqX3BOUgP1lTKQ4ifut
N2/tFBdZXNdsbRNYp2UTGAHzUK6sUGyvY4g6mAZJWsIsVIzuLrZdrQywlglBpM4Q
v/Q0jcIl9880opSG/+dfRbpW
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIEMTCCApmgAwIBAgIRAJqTbr7oXEP7a1vMS7zyApQwDQYJKoZIhvcNAQELBQAw
ZzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMR4wHAYDVQQLDBVodXlp
cnVpQEhZUi1NQUMubG9jYWwxJTAjBgNVBAMMHG1rY2VydCBodXlpcnVpQEhZUi1N
QUMubG9jYWwwHhcNMjMwNTE5MDcxMTE0WhcNMjUwODE5MDcxMTE0WjBVMScwJQYD
VQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxKjAoBgNVBAsMIWh1
eWlydWlASFlSLU1BQy5sb2NhbCAo6IOh5YWI55SfKTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAMTMWuVVKB645BOyCUhHlHEQBKcfRcorGD+uXpTSl7o0
YfCfJuF07pkcBZEhTg5U5UMIjc6cnb/Zzah4JP0v58MYl7DcEAxm8oqfUD+jnEzl
hgmjwgop4lt6GNdqNd1EnlaSEArBIf6tIkScANQXhLmyptdWW+21zVBRUv0ams+r
k4Gm0N9yzoAz503Vc6f8uAW3QonULzQCHVpMuMssU4YQk0u1MBSkvMlvkMouujzx
CA8rx6Tlp84qI4xQucWTdAkJnVb3xd3vnOrkXP8UsKZOCRkwZ76Iuvjgx7CbAy7U
f9we1ZWR8RmIVRxFrnFzpJu8wYQ1+7/f8vistDumkxECAwEAAaNqMGgwDgYDVR0P
AQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFJbi3Ybj
xDBPnN8B3bayujege6IKMCAGA1UdEQQZMBeCCWxvY2FsaG9zdIcEfwAAAYcEwKgC
ejANBgkqhkiG9w0BAQsFAAOCAYEAi3Scjz10WV/nJnlKHGbQxBgM4FqOQMEMqNoQ
ojdRQqY7iTfV+6265TFaZ9pY27+ZKzL8Qyb6htqNYuRKACXqEohHHJBdDlGV9Kda
hxznoP9ZBYm4NoiSiIJIQmEVy5SH/qb208gZPXb8mQT/czPPmQAE0oTWrVUDRkJl
YGJmfcdVuN8JfLqW0HxUdP89gqH8nHv72+wZpcqc9i/yVwCfjhqgbinwU/rkZRqW
7SIBVlDJs7d+4EuDMQMMe21w4b3isXr+LVtrH6I1MtQ0hTd9bQiMvl6HQ6hDK9Yd
VRz2ubj5p2/qzCchxxfMMJjAea8YNlQCL593963PKzDPcaJnw8j9RtySpeIxiPPQ
4+oRkZgO6Bd9OrxOAmoLG8+bJJbwmWC0LxH2nvYmArFgzKDu5hqwGQnLP0/7GeIk
fNqWPJ84rj0V3lfVRKYWYwXNJbFTCQ3/ewN6mTChzBWgmRFUv6LjSfzq/X2l5tX0
vLXgvm2XxAtQoVRUAYsRRRrFwguT
-----END CERTIFICATE-----
使用mkcert在本地生成2个免费的https证书(此命令会生成两个文件: localhost+2.pem, localhost+2-key.pem)
mkcert localhost 127.0.0.1 ::1
https://blog.csdn.net/themagickeyjianan/article/details/106836904
https://blog.wangjunfeng.com/post/local_https/
https://juejin.cn/post/7141308011921801223?searchId=20230817153624B0F9ACBED49D8807E243#heading-7
This diff could not be displayed because it is too large.
{
"name": "my_record",
"description": "",
"version": "1.0.0",
"scripts": {
"dev": "vite",
"start": "vite --host 0.0.0.0",
"build": "vite build",
"build-watch": "vite build --watch",
"build-ts": "vue-tsc --noEmit && vite build",
"serve": "vite preview",
"cypress:open": "cypress open"
},
"dependencies": {
"@vitejs/plugin-legacy": "^1.8.2",
"@vueuse/core": "^8.5.0",
"animate.css": "^4.1.1",
"dayjs": "^1.11.3",
"default-passive-events": "^2.0.0",
"global": "^4.4.0",
"html2canvas": "^1.4.1",
"jquery": "^3.6.0",
"js-cookie": "^3.0.1",
"lodash": "^4.17.21",
"moment": "^2.29.3",
"mui-player": "^1.6.0",
"recorder-core": "^1.3.23122400",
"typescript": "^4.7.3",
"uuid": "^8.3.2",
"vant": "^4.8.1",
"vconsole": "^3.14.6",
"vite-plugin-dynamic-import": "^0.9.6",
"vite-plugin-mp": "^1.6.1",
"vue": "^3.2.36",
"weixin-js-sdk": "^1.6.5"
},
"devDependencies": {
"@types/jquery": "^3.5.14",
"@types/lodash": "^4.14.182",
"@types/moment": "^2.13.0",
"@typescript-eslint/parser": "^5.27.1",
"@vitejs/plugin-vue": "^2.3.3",
"@vue/compiler-sfc": "^3.2.36",
"axios": "^0.27.2",
"chai": "^4.3.6",
"cypress": "^9.7.0",
"eslint-plugin-vue": "^9.0.1",
"less": "^4.1.2",
"mocha": "^10.0.0",
"pinia": "^2.0.14",
"postcss-px-to-viewport": "^1.1.1",
"qs": "^6.10.3",
"tslint": "^6.1.3",
"unplugin-auto-import": "^0.8.8",
"unplugin-vue-components": "^0.26.0",
"unplugin-vue-define-options": "^0.6.1",
"vite": "^2.9.9",
"vite-plugin-style-import": "1.4.1",
"vue-router": "^4.0.15"
}
}
module.exports = {
printWidth: 100, // 代码行的宽度,通用建议每行最大长度建议为100/120,但最好不超过这两个数。
tabWidth: 2, // 指定每次缩进的空格数。
semi: true, // 是否在代码语句结尾添加分号。
vueIndentScriptAndStyle: true,
singleQuote: true, // 是否使用单引号,JSX单独设置。
trailingComma: 'all', // 在多行以逗号分割的句法中尽可能补充尾行逗号。
bracketSpacing: true, // 是否在对象属性与大括号之间填充空格。
bracketSameLine: false, // 开始标签的右尖括号是否跟随在最后一行属性末尾。
proseWrap: 'never',
htmlWhitespaceSensitivity: 'strict',
endOfLine: 'auto', // 设置换行风格,避免不同操作系统造成的大量代码diff。
singleAttributePerLine: false // 在Html,Vue,JSX中是否强制每条属性占用一行。
};
#!/usr/bin/env sh
# -----------------------------------------------
# Filename: publish.sh
# Revision: 1.0
# Date: 2022年5月20日
# Author: Hooke
# Description: **** 根据php项目相应特征书写项目发布流程
# -----------------------------------------------
# 当发生错误时中止脚本
set -e
# 本地Git服务器目录路径
path=/Users/huyirui/program/itomix/git/isp/f
# 编译输出文件夹
output=voice
# 打包
npm run build
# 移除Git服务器目录下项目文件夹
rm -r $path"/${output:?}/images"
rm -r $path"/${output:?}/index.html"
rm -r $path"/${output:?}/static"
# 把本地编译输出文件夹添加到服务器目录
mv "${output:?}/images" $path"/${output:?}"
mv "${output:?}/index.html" $path"/${output:?}"
mv "${output:?}/static" $path"/${output:?}"
# 提交到Git服务器
cd $path"/${output:?}"
git pull
git add -A
git commit -m '前端网页更新'
git push
# 更新SSH服务器上文件
# ssh -p 22 itomix@ipadbiz.cn 'cd /opt/voice/f/voice && git pull'``
export interface commentListType {
id: string;
avatar: string;
name: string;
kg_name: string;
comment_time: string;
note: string;
c_action: string;
c_name: string;
cover: string;
prod_id: string;
perf_id: string;
book_id: string;
perf_name: string;
book_name: string;
localism_type: string;
is_new: number;
}
<!--
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-05-26 23:52:36
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2024-01-02 13:59:58
* @FilePath: /tswj/src/App.vue
* @Description:
-->
<template>
<!-- 页面缓存 -->
<router-view v-slot="{ Component, route }">
<keep-alive :include="keepPages" :max="10">
<component :is="Component" :key="route.name" />
</keep-alive>
</router-view>
</template>
<script setup>
import { mainStore, useTitle } from '@/utils/generatePackage'
import { computed, watchEffect, onMounted } from 'vue';
import { useRoute } from 'vue-router'
import { setToastDefaultOptions } from 'vant';
// 会根据配置判断是否显示调试控件
// eslint-disable-next-line no-unused-vars
import vConsole from '@/utils/vconsole'
// 初始化WX环境
import wx from 'weixin-js-sdk'
import { wxJsAPI } from '@/api/wx/config'
import { apiList } from '@/api/wx/jsApiList.js'
// 使用 include + pinia 状态管理动态缓存页面
const store = mainStore()
const keepPages = computed(() => store.getKeepPages)
// TAG: 全局设置页面标题
const $route = useRoute();
watchEffect(
() => useTitle($route.meta.title)
)
// TAG: 全局配置Toast
// setToastDefaultOptions({
// duration: 2000,
// className: 'zIndex',
// wordBreak: 'all',
// });
onMounted(async () => {
const { data } = await wxJsAPI();
data.jsApiList = apiList;
wx.config(data);
wx.ready(() => {
wx.showAllNonBaseMenuItem();
});
wx.error((err) => {
console.warn(err);
});
})
</script>
<style lang="less">
@prefix: ~'@{namespace}-x';
html,
body {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
}
body {
position: relative;
// --van-white: #fff;
// --van-blue: #1989fa;
// --van-button-primary-color: var(--van-white);
// --van-button-primary-background: var(--van-primary-color);
/* 全局修改主色调 */
// --van-blue: #F9D95C;
// background-color: #FAFAFA;
p {
margin: 0;
padding: 0;
}
}
.@{prefix} {
color: red;
}
.global-center {
position: relative;
top: 50%;
transform: translateY(-50%);
}
.zIndex {
z-index: 4500 !important;
}
.van-popup.van-toast {
z-index: 3003 !important;
background: rgba(0, 0, 0, 0.7) !important;
}
</style>
/*
* @Date: 2022-06-20 16:33:35
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-20 16:35:56
* @FilePath: /tswj/src/api/B/audit.js
* @Description: 文件描述
*/
import { fn, fetch } from '@/api/fn';
const Api = {
CHECK_PROD: '/srv/?a=check_prod',
}
/**
* @description 审核作品
* @param {*} prod_id
* @param {*} status
* @param {*} check_note
* @returns {*} data
*/
export const checkProdAPI = (params) => fn(fetch.post(Api.CHECK_PROD, params));
/*
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-06-09 02:25:31
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-17 22:32:59
* @FilePath: /tswj/src/api/B/kg.js
* @Description: 幼儿园主页接口
*/
import { fn, fetch } from '@/api/fn';
const Api = {
KG_INFO: '/srv/?a=kg_info',
MY_KG: '/srv/?a=my_kg',
}
/**
* @description 幼儿园详情
* @returns {*} data
*/
export const kgInfoAPI = (params) => fn(fetch.get(Api.KG_INFO, params));
/**
* @description 我的幼儿园详情
* @returns {*} data
*/
export const myKgAPI = (params) => fn(fetch.get(Api.MY_KG, params));
/*
* @Date: 2022-06-20 12:56:47
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-20 15:41:41
* @FilePath: /tswj/src/api/B/localism.js
* @Description: 文件描述
*/
import { fn, fetch } from '@/api/fn';
const Api = {
LOCALISM_LIST_MODI: '/srv/?a=localism_list4modi',
ADD_LOCALISM: '/srv/?a=add_localism',
MODIFY_PROD_LOCALISM: '/srv/?a=modify_prod_localism',
}
/**
* @description 幼儿园方言列表
* @returns {*} data
*/
export const localismListModiAPI = (params) => fn(fetch.get(Api.LOCALISM_LIST_MODI, params));
/**
* @description 新增方言
* @param {string} localism_name
* @returns {*} data
*/
export const addLocalismAPI = (params) => fn(fetch.post(Api.ADD_LOCALISM, params));
/**
* @description 更新作品方言
* @param {string} prod_id
* @param {string} localism_name
* @returns {*} data
*/
export const modifyProdLocalismAPI = (params) => fn(fetch.post(Api.MODIFY_PROD_LOCALISM, params));
/*
* @Date: 2022-06-17 15:03:03
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-20 09:59:50
* @FilePath: /tswj/src/api/B/login.js
* @Description: 文件描述
*/
import { fn, fetch } from '@/api/fn';
const Api = {
B_LOGIN: '/srv/?a=b_login',
B_LOGOUT: '/srv/?a=b_logout',
}
/**
* @description 登录接口
* @param {*} phone 手机号
* @param {*} pin 验证码
*/
export const bLoginAPI = (params) => fn(fetch.post(Api.B_LOGIN, params));
/**
* @description 登出接口
*/
export const bLogoutAPI = (params) => fn(fetch.post(Api.B_LOGOUT, params));
/*
* @Date: 2022-05-26 19:50:27
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-18 00:15:08
* @FilePath: /tswj/src/api/C/book.js
* @Description: 文件描述
*/
import { fn, fetch } from '@/api/fn';
const Api = {
ADD_SUBSCRIBE: '/srv/?a=add_subscribe',
BOOK_INFO: '/srv/?a=book_info',
}
/**
* @description: 订阅书籍操作
* @param {String} book_id 书籍 ID
* @returns
*/
export const addSubscribeAPI = (params) => fn(fetch.post(Api.ADD_SUBSCRIBE, params));
/**
* @description: 书籍详情
* @param {String} book_id 书籍 ID
* @param {String} localism_type 方言类型
* @param {*} limit
* @param {*} offset
* @returns
*/
export const bookInfoAPI = (params) => fn(fetch.get(Api.BOOK_INFO, params));
/*
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-06-01 16:00:48
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-07-01 16:40:05
* @FilePath: /tswj/src/api/C/donate.js
* @Description: 捐钱操作API
*/
import { fn, fetch } from '@/api/fn';
const Api = {
PREPARE_DONATE: '/srv/?a=prepare_donate',
ADD_DONATE: '/srv/?a=add_donate',
ONE_CERT: '/srv/?a=one_cert',
}
/**
* @description: 当前用户捐献所需信息
* @summary 适用于 访客进入操作,幼儿园节目操作,表演者节目操作
* @param {String} kg_id 幼儿园ID
* @param {String} perf_id 表演者ID
* @returns
*/
export const prepareDonateAPI = (params) => fn(fetch.get(Api.PREPARE_DONATE, params));
/**
* @description: 用户捐献
* @param {Number} qty 数量
* @param {String} donate_name 捐赠人名称
* @param {Number} kg_id 指定助力幼儿园id
* @param {Number} perf_id 指定助力儿童id
* @returns
*/
export const addDonateAPI = (params) => fn(fetch.post(Api.ADD_DONATE, params));
/**
* @description: 捐赠证书
* @param {String} donate_id 捐赠ID
* @returns
*/
export const oneCertAPI = (params) => fn(fetch.get(Api.ONE_CERT, params));
/*
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-05-18 21:12:23
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-09 09:21:54
* @FilePath: /tswj/src/api/C/kg.js
* @Description: 幼儿园相关接口
*/
import { fn, fetch } from '@/api/fn';
const Api = {
KG_LIST: '/srv/?a=kg_list',
KG_DONATE_LIST: '/srv/?a=donate_list',
KG_DONATE_RANK: '/srv/?a=donate_rank',
KG_BOOK_LIST: '/srv/?a=kg_book_list',
}
/**
* @description 幼儿园列表页
* @param {*} params 参数
* @returns {array} data
*/
export const kgListAPI = (params) => fn(fetch.get(Api.KG_LIST, params));
/**
* @description 幼儿园捐赠列表页
* @param {*} kg_id 幼儿园ID
* @param {*} limit 20
* @param {*} offset 0
* @returns {array} data
*/
export const kgDonateListAPI = (params) => fn(fetch.get(Api.KG_DONATE_LIST, params));
/**
* @description 幼儿园捐赠排行榜
* @param {*} kg_id 幼儿园ID
* @param {*} limit 20
* @param {*} offset 0
* @returns {array} data
*/
export const kgDonateRankAPI = (params) => fn(fetch.get(Api.KG_DONATE_RANK, params));
/**
* @description 幼儿园书籍列表
* @param {*} kg_id 幼儿园ID
* @returns {*} data
*/
export const kgBookListAPI = (params) => fn(fetch.get(Api.KG_BOOK_LIST, params));
/*
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-05-18 22:16:10
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-09-06 11:32:16
* @FilePath: /tswj/src/api/C/me.js
* @Description: 我的页面接口操作
*/
import { fn, fetch } from '@/api/fn';
const Api = {
CHANGE_PERFORMER: '/srv/?a=change_performer',
MY_INFO: '/srv/?a=my_info',
MY_PERFORMER: '/srv/?a=my_performer',
MY_LIKE: '/srv/?a=my_like',
MY_FAVOR: '/srv/?a=my_favor',
MY_COMMENT: '/srv/?a=my_comment',
MY_ATME: '/srv/?a=my_atme',
DEL_COMMENT: '/srv/?a=del_comment',
MY_SUBSCRIBE: '/srv/?a=my_subscribe',
MY_FOLLOW: '/srv/?a=my_follow',
MY_PROD: '/srv/?a=my_prod',
}
/**
* @description: 切换儿童角色
* @param {*} params
* @returns
*/
export const changePerformerAPI = (params) => fn(fetch.post(Api.CHANGE_PERFORMER, params));
/**
* @description: 获取儿童信息
* @param {object} params 参数
* @returns {*} 布尔值||查询值
*/
export const myInfoAPI = (params) => fn(fetch.get(Api.MY_INFO, params));
/**
* @description: 角色列表信息
* @param {*} params
* @returns
*/
export const myPerformerAPI = (params) => fn(fetch.get(Api.MY_PERFORMER, params));
/**
* @description: 点赞列表信息
* @param {*} params
* @returns
*/
export const myLikeAPI = (params) => fn(fetch.get(Api.MY_LIKE, params));
/**
* @description: 收藏列表信息
* @param {*} params
* @returns
*/
export const myFavorAPI = (params) => fn(fetch.get(Api.MY_FAVOR, params));
/**
* @description: 用户评论列表
* @param {string} limit
* @param {string} offset
* @returns
*/
export const myCommentAPI = (params) => fn(fetch.get(Api.MY_COMMENT, params));
/**
* @description: 删除用户评论
* @param {string} comment_id 评论ID
* @returns
*/
export const delCommentAPI = (params) => fn(fetch.post(Api.DEL_COMMENT, params));
/**
* @description: /@/我的列表
* @param {string} limit
* @param {string} offset
* @returns
*/
export const myAtmeAPI = (params) => fn(fetch.get(Api.MY_ATME, params));
/**
* @description: 我的订阅
* @returns
*/
export const mySubscribeAPI = (params) => fn(fetch.get(Api.MY_SUBSCRIBE, params));
/**
* @description: 我的关注
* @returns
*/
export const myFollowAPI = (params) => fn(fetch.get(Api.MY_FOLLOW, params));
/**
* @description: 我的作品
* @returns
*/
export const myProdAPI = (params) => fn(fetch.get(Api.MY_PROD, params));
/*
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-05-26 21:16:59
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-10 13:30:31
* @FilePath: /tswj/src/api/C/perf.js
* @Description: 用户相关API
*/
import { fn, fetch } from '@/api/fn';
const Api = {
PERF_INFO: '/srv/?a=perf_info',
ADD_FOLLOW: '/srv/?a=add_follow',
ADD_COMMENT: '/srv/?a=add_comment',
ADD_REPLY: '/srv/?a=add_reply',
MY_COMMENT_TIME: '/srv/?a=my_comment_time',
}
/**
* @description: 获取表演者信息
* @param {String} perf_id 表演者ID
* @returns
*/
export const perfInfoAPI = (params) => fn(fetch.post(Api.PERF_INFO, params));
/**
* @description: 关注用户操作
* @param {String} perf_id 表演者ID
* @returns
*/
export const addFollowAPI = (params) => fn(fetch.post(Api.ADD_FOLLOW, params));
/**
* @description: 用户新增评论操作
* @param {String} prod_id 作品ID
* @returns
*/
export const addCommentAPI = (params) => fn(fetch.post(Api.ADD_COMMENT, params));
/**
* @description: 用户新增回复操作
* @param {String} comment_id 评论ID
* @returns
*/
export const addReplyAPI = (params) => fn(fetch.post(Api.ADD_REPLY, params));
/**
* @description: 更新用户留言事件
* @summary 处理留言已读未读问题
* @param {String} optr_type 操作类型 my_comment | atme_comment
* @returns
*/
export const myCommentTimeAPI = (params) => fn(fetch.post(Api.MY_COMMENT_TIME, params));
import { fn, fetch } from '@/api/fn';
const Api = {
PROD_ACTION: '/srv/?a=prod_action',
PROD_INFO: '/srv/?a=prod_info',
}
/**
* @description: 操作作品动作
* @param {String} type 动作类型:like, favor, play
* @param {String} prod_id 作品 ID
* @returns
*/
export const prodActionAPI = (params) => fn(fetch.post(Api.PROD_ACTION, params));
/**
* @description: 查询作品详情
* @param {String} type 动作类型:like, favor, play
* @param {String} prod_id 作品 ID
* @returns
*/
export const prodInfoAPI = (params) => fn(fetch.get(Api.PROD_INFO, params));
/*
* @Date: 2022-06-17 14:54:29
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-18 22:18:46
* @FilePath: /tswj/src/api/common.js
* @Description: 通用接口
*/
import { fn, fetch, uploadFn } from '@/api/fn';
const Api = {
SMS: '/srv/?a=sms',
TOKEN: '/srv/?a=upload',
SAVE_FILE: '/srv/?a=upload&t=save_file',
}
/**
* @description: 发送验证码
* @param {*} phone 手机号码
* @returns
*/
export const smsAPI = (params) => fn(fetch.post(Api.SMS, params));
/**
* @description: 获取七牛token
* @param {*} filename 文件名
* @param {*} file 图片base64
* @returns
*/
export const qiniuTokenAPI = (params) => fn(fetch.stringifyPost(Api.TOKEN, params));
/**
* @description: 上传七牛
* @param {*}
* @returns
*/
export const qiniuUploadAPI = (url, data, config) => uploadFn(fetch.basePost(url, data, config));
/**
* @description: 保存图片
* @param {*} format
* @param {*} hash
* @param {*} height
* @param {*} width
* @param {*} filekey
* @returns
*/
export const saveFileAPI = (params) => fn(fetch.stringifyPost(Api.SAVE_FILE, params));
/*
* @Date: 2022-05-18 22:56:08
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2024-01-02 16:46:57
* @FilePath: /tswj/src/api/fn.js
* @Description: 文件描述
*/
import axios from '@/utils/axios';
// import { Toast } from 'vant';
import { showToast } from 'vant';
import qs from 'Qs'
/**
* 网络请求功能函数
* @param {*} api 请求axios接口
* @returns 请求成功后,获取数据
*/
export const fn = (api) => {
return api
.then(res => {
if (res.data.code === 1) {
return res.data || true;
} else {
// tslint:disable-next-line: no-console
console.warn(res);
if (!res.data.show) return false;
// Toast({
// icon: 'close',
// message: res.data.msg
// });
showToast(res.data.msg);
return false;
}
})
.catch(err => {
// tslint:disable-next-line: no-console
console.error(err);
return false;
})
.finally(() => { // 最终执行
})
}
/**
* 七牛返回格式
* @param {*} api
* @returns
*/
export const uploadFn = (api) => {
return api
.then(res => {
if (res.statusText === 'OK') {
return res.data || true;
} else {
// tslint:disable-next-line: no-console
console.warn(res);
if (!res.data.show) return false;
// Toast({
// icon: 'close',
// message: res.data.msg
// });
showToast(res.data.msg);
return false;
}
})
.catch(err => {
// tslint:disable-next-line: no-console
console.error(err);
return false;
})
}
/**
* 统一 GET/POST 不同传参形式
*/
export const fetch = {
get: function (api, params) {
return axios.get(api, { params })
},
post: function (api, params) {
return axios.post(api, params)
},
stringifyPost: function (api, params) {
return axios.post(api, qs.stringify(params))
},
basePost: function (url, data, config) {
return axios.post(url, data, config)
}
}
/*
* @Date: 2023-12-31 11:20:51
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2024-01-02 16:48:10
* @FilePath: /tswj/src/api/new_year_2024.js
* @Description: 文件描述
*/
import { fn, fetch } from '@/api/fn';
const Api = {
GET_AUDIO: '/srv/?a=meet_spring&t=get_audio',
SAVE_EVENT: '/srv/?a=meet_spring&t=save_event',
GET_BOOK: '/srv/?a=meet_spring&t=get_book',
ADD_DONATE: '/srv/?a=meet_spring&t=add_donate',
CERT_LIST: '/srv/?a=meet_spring&t=cert_list',
SHARE_WISH_LIST: '/srv/?a=meet_spring&t=share_wish_list',
WISH_PRIZE: '/srv/?a=meet_spring&t=win_prize',
DEAL_PRIZE: '/srv/?a=meet_spring&t=deal_prize',
PRIZE_LIST: '/srv/?a=meet_spring&t=prize_list',
}
/**
* @description: 随机获取一个音频素材
* @returns
*/
export const getAudioAPI = (params) => fn(fetch.post(Api.GET_AUDIO, params));
/**
* @description: 埋点
* @returns
*/
export const saveEventAPI = (params) => fn(fetch.post(Api.SAVE_EVENT, params));
/**
* @description: 随机获取4本书
* @returns
*/
export const getBookAPI = (params) => fn(fetch.get(Api.GET_BOOK, params));
/**
* @description: 生成捐助记录
* @returns
*/
export const addDonateAPI = (params) => fn(fetch.post(Api.ADD_DONATE, params));
/**
* @description: 证书列表
* @returns
*/
export const certListAPI = (params) => fn(fetch.get(Api.CERT_LIST, params));
/**
* @description: 分享祝福语列表
* @returns
*/
export const shareWishListAPI = (params) => fn(fetch.get(Api.SHARE_WISH_LIST, params));
/**
* @description: 抽奖
* @returns
*/
export const wishPrizeAPI = (params) => fn(fetch.post(Api.WISH_PRIZE, params));
/**
* @description: 处置奖品
* @returns
*/
export const dealPrizeAPI = (params) => fn(fetch.post(Api.DEAL_PRIZE, params));
/**
* @description: 中奖列表
* @returns
*/
export const prizeListAPI = (params) => fn(fetch.get(Api.PRIZE_LIST, params));
/*
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-06-09 13:32:44
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-14 14:47:01
* @FilePath: /tswj/src/api/wx/config.js
* @Description:
*/
import { fn, fetch } from '@/api/fn';
const Api = {
WX_JSAPI: '/srv/?a=wx_share',
}
/**
* @description 获取微信CONFIG配置文件
* @param {*} url
* @returns {*} cfg
*/
export const wxJsAPI = (params) => fn(fetch.get(Api.WX_JSAPI, params));
/*
* @Date: 2022-06-13 14:18:57
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-13 14:27:21
* @FilePath: /tswj/src/api/wx/jsApiList.js
* @Description: 文件描述
*/
export const apiList = [
"updateAppMessageShareData",
"updateTimelineShareData",
"onMenuShareTimeline",
"onMenuShareAppMessage",
"onMenuShareQQ",
"onMenuShareWeibo",
"onMenuShareQZone",
"startRecord",
"stopRecord",
"onVoiceRecordEnd",
"playVoice",
"pauseVoice",
"stopVoice",
"onVoicePlayEnd",
"uploadVoice",
"downloadVoice",
"chooseImage",
"previewImage",
"uploadImage",
"downloadImage",
"translateVoice",
"getNetworkType",
"openLocation",
"getLocation",
"hideOptionMenu",
"showOptionMenu",
"hideMenuItems",
"showMenuItems",
"hideAllNonBaseMenuItem",
"showAllNonBaseMenuItem",
"closeWindow",
"scanQRCode",
"chooseWXPay",
"openProductSpecificView",
"addCard",
"chooseCard",
"openCard"
]
/*
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-06-09 13:32:44
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-09 13:42:06
* @FilePath: /tswj/src/api/wx/config.js
* @Description:
*/
import { fn, fetch } from '@/api/fn';
const Api = {
WX_PAY: 'c/bill_paymentForBill.do',
}
/**
* @description 微信支付接口
* @param {*}
* @returns {*}
*/
export const wxPayAPI = (params) => fn(fetch.get(Api.WX_PAY, params));
.modify-top {
z-index: 36;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 10px;
background-image: url('http://gyzs.onwall.cn/top-xian%402x.png');
background-size: contain;
}
.content-bg {
/**
* background-color and background-image 共存,不能使用渐变色
* 图片铺平当时精度提高看看效果
* 直接用渐变色
* 不使用渐变色背景
*/
height: 100%;
min-height: 100vh;
// background-image: url('@images/bg-yellow-duan@2x.png');
background-image: url('http://gyzs.onwall.cn/bg-yellow-duan%402x.png');
// background-size: cover;
// background: linear-gradient(360deg, #FDD347 0%, #FFED6D 100%) ;
}
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.