Compare commits
13 Commits
04fd83c21e
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ea4949e588 | ||
|
|
70c5d15d44 | ||
| e520ff11d2 | |||
| 7c70de5fe0 | |||
| 8af51c5bb6 | |||
|
|
ed9de4abbb | ||
|
|
9ea40b74e7 | ||
| aaf1fafe8e | |||
| 9c284ac715 | |||
|
|
688e7f523c | ||
|
|
6277a1c29f | ||
|
|
ad19d17644 | ||
|
|
4f9f3ae142 |
@@ -1,16 +1,20 @@
|
||||
{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
|
||||
{
|
||||
// launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
|
||||
// launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
|
||||
"version" : "0.0",
|
||||
"configurations": [{
|
||||
"app-plus" :
|
||||
"configurations" : [
|
||||
{
|
||||
"app-plus" : {
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"default" :
|
||||
{
|
||||
"default" : {
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"type" : "uniCloud"
|
||||
},
|
||||
{
|
||||
"playground" : "standard",
|
||||
"type" : "uni-app:app-android"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@ import { router } from '@/router/index.js'
|
||||
|
||||
// 基础配置
|
||||
const config = {
|
||||
apiUrl : 'https://api.douhuotest.douhuofalv.com/api/', // 测试环境
|
||||
// apiUrl : 'https://douhuo.douhuofalv.com/api/', // 正式环境
|
||||
apiUrl : 'https://douhuo.douhuofalv.com/api/',
|
||||
// apiUrl : 'https://douhuo.demos.uzchain.tech/api/', //测试环境
|
||||
timeout : 60000
|
||||
}
|
||||
|
||||
|
||||
@@ -67,6 +67,14 @@ const registeragree = (website) =>{
|
||||
})
|
||||
}
|
||||
|
||||
// 验证码登录
|
||||
const authSms = (data) =>{
|
||||
return request({
|
||||
url: "user/auth/sms",
|
||||
method: 'POST',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
export {
|
||||
Register,
|
||||
Captcha,
|
||||
@@ -74,5 +82,6 @@ export {
|
||||
Login,
|
||||
resetPassword,
|
||||
modifyPassword,
|
||||
registeragree
|
||||
registeragree,
|
||||
authSms
|
||||
}
|
||||
|
||||
@@ -208,6 +208,72 @@ const Bind = (data) => {
|
||||
})
|
||||
}
|
||||
|
||||
// 账户管理类
|
||||
const accountManagement = () => {
|
||||
return request({
|
||||
url: "account_management/index"
|
||||
})
|
||||
}
|
||||
|
||||
// 账户管理类 - 办理
|
||||
const accountFrom = (data, id) => {
|
||||
return request({
|
||||
url : "account_management/" + id + "/store",
|
||||
method : "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 账户管理类 - 订单
|
||||
const accountOrder = data => {
|
||||
return request({
|
||||
url : "account_management/order/lists",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 账户管理类 - 取消订单
|
||||
const accountCancel = id => {
|
||||
return request({
|
||||
url : "account_management/order/" + id + "/cancel",
|
||||
method : "DELETE"
|
||||
})
|
||||
}
|
||||
|
||||
// 委托管理类
|
||||
const delegation = () => {
|
||||
return request({
|
||||
url: "delegation/index"
|
||||
})
|
||||
}
|
||||
|
||||
// 委托管理类 - 办理
|
||||
const delegationFrom = (data, id) => {
|
||||
return request({
|
||||
url : "delegation/" + id + "/store",
|
||||
method : "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 委托管理类 - 订单
|
||||
const delegationOrder = data => {
|
||||
return request({
|
||||
url : "delegation/order/lists",
|
||||
method : "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 委托管理类 - 取消订单
|
||||
const delegationCancel = id => {
|
||||
return request({
|
||||
url : "delegation/order/" + id + "/cancel",
|
||||
method : "DELETE"
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export {
|
||||
home,
|
||||
articleSort,
|
||||
@@ -234,5 +300,13 @@ export {
|
||||
Schemes,
|
||||
wechatCode,
|
||||
Verify,
|
||||
Bind
|
||||
Bind,
|
||||
accountManagement,
|
||||
accountFrom,
|
||||
accountOrder,
|
||||
accountCancel,
|
||||
delegation,
|
||||
delegationFrom,
|
||||
delegationOrder,
|
||||
delegationCancel
|
||||
}
|
||||
|
||||
@@ -164,9 +164,6 @@ const payInfo = data => {
|
||||
}
|
||||
|
||||
const payWechat = data => {
|
||||
|
||||
console.log('111')
|
||||
|
||||
return request({
|
||||
url : "pay/cashier_desk/wechat",
|
||||
method : 'POST',
|
||||
|
||||
@@ -359,6 +359,37 @@ const userSubscribe = () => {
|
||||
})
|
||||
}
|
||||
|
||||
// 会员信息
|
||||
const identity = () => {
|
||||
return request({
|
||||
url: 'identity'
|
||||
})
|
||||
}
|
||||
|
||||
// 开通会员
|
||||
const vip = data => {
|
||||
return request({
|
||||
url: 'identity/open',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 团队列表
|
||||
const team = data => {
|
||||
return request({
|
||||
url: 'user/relations/wechat',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取二维码
|
||||
const userQrcode = () => {
|
||||
return request({
|
||||
url: 'user/client/qrcode'
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
userIndex,
|
||||
realName,
|
||||
@@ -404,5 +435,9 @@ export {
|
||||
cacheBankPut,
|
||||
getSignLogs,
|
||||
getFlows,
|
||||
userSubscribe
|
||||
userSubscribe,
|
||||
identity,
|
||||
vip,
|
||||
team,
|
||||
userQrcode
|
||||
}
|
||||
423
package-lock.json
generated
423
package-lock.json
generated
@@ -1,190 +1,443 @@
|
||||
{
|
||||
"name": "douhuo-h5",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"@babel/parser": {
|
||||
"version": "7.21.8",
|
||||
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.8.tgz",
|
||||
"integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA=="
|
||||
"html2canvas": "^1.4.1",
|
||||
"jweixin-module": "^1.6.0",
|
||||
"uni-read-pages": "^1.0.5",
|
||||
"uni-simple-router": "2.0.7",
|
||||
"uview-ui": "^2.0.31",
|
||||
"vconsole": "^3.15.0",
|
||||
"vue-canvas-poster": "^1.2.1",
|
||||
"vuex": "^4.1.0"
|
||||
}
|
||||
},
|
||||
"@babel/runtime": {
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.24.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz",
|
||||
"integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==",
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/runtime": {
|
||||
"version": "7.20.13",
|
||||
"resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.20.13.tgz",
|
||||
"integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"regenerator-runtime": "^0.13.11"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"@vue/compiler-sfc": {
|
||||
"version": "2.7.14",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz",
|
||||
"integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==",
|
||||
"requires": {
|
||||
"@babel/parser": "^7.18.4",
|
||||
"postcss": "^8.4.14",
|
||||
"source-map": "^0.6.1"
|
||||
"node_modules/@jridgewell/sourcemap-codec": {
|
||||
"version": "1.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
|
||||
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.25.tgz",
|
||||
"integrity": "sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.24.4",
|
||||
"@vue/shared": "3.4.25",
|
||||
"entities": "^4.5.0",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map-js": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"@vue/devtools-api": {
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.25.tgz",
|
||||
"integrity": "sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.4.25",
|
||||
"@vue/shared": "3.4.25"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.25.tgz",
|
||||
"integrity": "sha512-m7rryuqzIoQpOBZ18wKyq05IwL6qEpZxFZfRxlNYuIPDqywrXQxgUwLXIvoU72gs6cRdY6wHD0WVZIFE4OEaAQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.24.4",
|
||||
"@vue/compiler-core": "3.4.25",
|
||||
"@vue/compiler-dom": "3.4.25",
|
||||
"@vue/compiler-ssr": "3.4.25",
|
||||
"@vue/shared": "3.4.25",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.30.10",
|
||||
"postcss": "^8.4.38",
|
||||
"source-map-js": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.25.tgz",
|
||||
"integrity": "sha512-H2ohvM/Pf6LelGxDBnfbbXFPyM4NE3hrw0e/EpwuSiYu8c819wx+SVGdJ65p/sFrYDd6OnSDxN1MB2mN07hRSQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.4.25",
|
||||
"@vue/shared": "3.4.25"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/devtools-api": {
|
||||
"version": "6.4.5",
|
||||
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz",
|
||||
"integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ=="
|
||||
},
|
||||
"base64-arraybuffer": {
|
||||
"node_modules/@vue/reactivity": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.25.tgz",
|
||||
"integrity": "sha512-mKbEtKr1iTxZkAG3vm3BtKHAOhuI4zzsVcN0epDldU/THsrvfXRKzq+lZnjczZGnTdh3ojd86/WrP+u9M51pWQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/shared": "3.4.25"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.25.tgz",
|
||||
"integrity": "sha512-3qhsTqbEh8BMH3pXf009epCI5E7bKu28fJLi9O6W+ZGt/6xgSfMuGPqa5HRbUxLoehTNp5uWvzCr60KuiRIL0Q==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.4.25",
|
||||
"@vue/shared": "3.4.25"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-dom": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.25.tgz",
|
||||
"integrity": "sha512-ode0sj77kuwXwSc+2Yhk8JMHZh1sZp9F/51wdBiz3KGaWltbKtdihlJFhQG4H6AY+A06zzeMLkq6qu8uDSsaoA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/runtime-core": "3.4.25",
|
||||
"@vue/shared": "3.4.25",
|
||||
"csstype": "^3.1.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/server-renderer": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.25.tgz",
|
||||
"integrity": "sha512-8VTwq0Zcu3K4dWV0jOwIVINESE/gha3ifYCOKEhxOj6MEl5K5y8J8clQncTcDhKF+9U765nRw4UdUEXvrGhyVQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-ssr": "3.4.25",
|
||||
"@vue/shared": "3.4.25"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "3.4.25"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.25.tgz",
|
||||
"integrity": "sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/base64-arraybuffer": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
|
||||
"integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="
|
||||
"integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==",
|
||||
"engines": {
|
||||
"node": ">= 0.6.0"
|
||||
}
|
||||
},
|
||||
"copy-text-to-clipboard": {
|
||||
"node_modules/copy-text-to-clipboard": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz",
|
||||
"integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q=="
|
||||
"integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"core-js": {
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/core-js": {
|
||||
"version": "3.27.2",
|
||||
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.27.2.tgz",
|
||||
"integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w=="
|
||||
"integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==",
|
||||
"hasInstallScript": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/core-js"
|
||||
}
|
||||
},
|
||||
"css-line-break": {
|
||||
"node_modules/css-line-break": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz",
|
||||
"integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"utrie": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"csstype": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz",
|
||||
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
|
||||
"node_modules/csstype": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
||||
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
|
||||
},
|
||||
"html2canvas": {
|
||||
"node_modules/entities": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
|
||||
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=0.12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
||||
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/html2canvas": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz",
|
||||
"integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"css-line-break": "^2.1.0",
|
||||
"text-segmentation": "^1.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.0.0"
|
||||
}
|
||||
},
|
||||
"jweixin-module": {
|
||||
"node_modules/jweixin-module": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
|
||||
"integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
|
||||
},
|
||||
"mutation-observer": {
|
||||
"node_modules/magic-string": {
|
||||
"version": "0.30.10",
|
||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
|
||||
"integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||
}
|
||||
},
|
||||
"node_modules/mutation-observer": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz",
|
||||
"integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA=="
|
||||
},
|
||||
"nanoid": {
|
||||
"version": "3.3.6",
|
||||
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz",
|
||||
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.7",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
||||
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "8.4.23",
|
||||
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.23.tgz",
|
||||
"integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
|
||||
"requires": {
|
||||
"nanoid": "^3.3.6",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.0.2"
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.38",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
|
||||
"integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.7",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.8.8",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
||||
"optional": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/regenerator-runtime": {
|
||||
"version": "0.13.11",
|
||||
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
|
||||
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
|
||||
},
|
||||
"source-map": {
|
||||
"node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"source-map-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
|
||||
"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"text-segmentation": {
|
||||
"node_modules/text-segmentation": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz",
|
||||
"integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"utrie": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"uni-read-pages": {
|
||||
"node_modules/uni-read-pages": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/uni-read-pages/-/uni-read-pages-1.0.5.tgz",
|
||||
"integrity": "sha512-GkrrZ0LX0vn9R5k6RKEi0Ez3Q3e2vUpjXQ8Z6/K/d28KudI9ajqgt8WEjQFlG5EPm1K6uTArN8LlqmZTEixDUA=="
|
||||
"integrity": "sha512-GkrrZ0LX0vn9R5k6RKEi0Ez3Q3e2vUpjXQ8Z6/K/d28KudI9ajqgt8WEjQFlG5EPm1K6uTArN8LlqmZTEixDUA==",
|
||||
"hasInstallScript": true
|
||||
},
|
||||
"uni-simple-router": {
|
||||
"version": "2.0.8-beta.4",
|
||||
"resolved": "https://registry.npmjs.org/uni-simple-router/-/uni-simple-router-2.0.8-beta.4.tgz",
|
||||
"integrity": "sha512-ipTHhOaRvjV8qrt3HosX5pNMhwFYBnFOuKyV5joH0evfXubjrGI5tjdwpmwzfW5h3VBth3iAqScv+pW/QmIJXw=="
|
||||
"node_modules/uni-simple-router": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/uni-simple-router/-/uni-simple-router-2.0.7.tgz",
|
||||
"integrity": "sha512-8FKv5dw7Eoonm0gkO8udprrxzin0fNUI0+AvIphFkFRH5ZmP5ZWJ2pvnWzb2NiiqQSECTSU5VSB7HhvOSwD5eA=="
|
||||
},
|
||||
"utrie": {
|
||||
"node_modules/utrie": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz",
|
||||
"integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"base64-arraybuffer": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"uview-ui": {
|
||||
"node_modules/uview-ui": {
|
||||
"version": "2.0.31",
|
||||
"resolved": "https://registry.npmjs.org/uview-ui/-/uview-ui-2.0.31.tgz",
|
||||
"integrity": "sha512-I/0fGuvtiKHH/mBb864SGYk+SJ7WaF32tsBgYgeBOsxlUp+Th+Ac2tgz2cTvsQJl6eZYWsKZ3ixiSXCAcxZ8Sw=="
|
||||
"integrity": "sha512-I/0fGuvtiKHH/mBb864SGYk+SJ7WaF32tsBgYgeBOsxlUp+Th+Ac2tgz2cTvsQJl6eZYWsKZ3ixiSXCAcxZ8Sw==",
|
||||
"engines": {
|
||||
"HBuilderX": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"vconsole": {
|
||||
"node_modules/vconsole": {
|
||||
"version": "3.15.0",
|
||||
"resolved": "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.0.tgz",
|
||||
"integrity": "sha512-8hq7wabPcRucSWQyN7/1tthMawP9JPvM95zgtMHpPknMMMCKj+abpoK7P7oKK4B0qw58C24Mdvo9+raUdpHyVQ==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"copy-text-to-clipboard": "^3.0.1",
|
||||
"core-js": "^3.11.0",
|
||||
"mutation-observer": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"vue": {
|
||||
"version": "2.7.14",
|
||||
"resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.14.tgz",
|
||||
"integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==",
|
||||
"requires": {
|
||||
"@vue/compiler-sfc": "2.7.14",
|
||||
"csstype": "^3.1.0"
|
||||
"node_modules/vue": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.4.25.tgz",
|
||||
"integrity": "sha512-HWyDqoBHMgav/OKiYA2ZQg+kjfMgLt/T0vg4cbIF7JbXAjDexRf5JRg+PWAfrAkSmTd2I8aPSXtooBFWHB98cg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.4.25",
|
||||
"@vue/compiler-sfc": "3.4.25",
|
||||
"@vue/runtime-dom": "3.4.25",
|
||||
"@vue/server-renderer": "3.4.25",
|
||||
"@vue/shared": "3.4.25"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"vue-canvas-poster": {
|
||||
"node_modules/vue-canvas-poster": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmmirror.com/vue-canvas-poster/-/vue-canvas-poster-1.2.1.tgz",
|
||||
"integrity": "sha512-YY5ygbeQSqhiJyj6QXYgSRZ6Ywhvi1gVsfcvBIoCx4Yq9E/gAV32uOhnZz45qsklP86uGc9ypKJAXiX6Dzrdxw==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"core-js": "^2.6.5",
|
||||
"vue": "^2.6.10"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-canvas-poster/node_modules/@vue/compiler-sfc": {
|
||||
"version": "2.7.16",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
|
||||
"integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
|
||||
"dependencies": {
|
||||
"core-js": {
|
||||
"@babel/parser": "^7.23.5",
|
||||
"postcss": "^8.4.14",
|
||||
"source-map": "^0.6.1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"prettier": "^1.18.2 || ^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-canvas-poster/node_modules/core-js": {
|
||||
"version": "2.6.12",
|
||||
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
|
||||
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
|
||||
}
|
||||
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
|
||||
"deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
|
||||
"hasInstallScript": true
|
||||
},
|
||||
"node_modules/vue-canvas-poster/node_modules/vue": {
|
||||
"version": "2.7.16",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz",
|
||||
"integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
|
||||
"deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.",
|
||||
"dependencies": {
|
||||
"@vue/compiler-sfc": "2.7.16",
|
||||
"csstype": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"vuex": {
|
||||
"node_modules/vuex": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz",
|
||||
"integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"@vue/devtools-api": "^6.0.0-beta.11"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "^3.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
73
pages.json
73
pages.json
@@ -84,7 +84,15 @@
|
||||
"aliasPath": "/login/login",
|
||||
"name": "Login",
|
||||
"style": {
|
||||
"navigationBarTitleText": "抖火法律-登录",
|
||||
"navigationBarTitleText": "抖火法律-验证码登录",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}, {
|
||||
"path": "pages/login/passwordLogin",
|
||||
"aliasPath": "/login/passwordLogin",
|
||||
"name": "PasswordLogin",
|
||||
"style": {
|
||||
"navigationBarTitleText": "抖火法律-密码登录",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}, {
|
||||
@@ -657,6 +665,69 @@
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},{
|
||||
"path" : "pages/management/account",
|
||||
"aliasPath": "/management/account",
|
||||
"name" : "MagAccount",
|
||||
"style" : {
|
||||
"navigationBarTitleText" : "账户咨询办理",
|
||||
"enablePullDownRefresh" : false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/management/delegation",
|
||||
"name" : "MagDelegation",
|
||||
"aliasPath": "/management/delegation",
|
||||
"style" : {
|
||||
"navigationBarTitleText" : "委托管理办理",
|
||||
"enablePullDownRefresh" : false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/work/account",
|
||||
"name" : "AccountWork",
|
||||
"aliasPath": "/work/account",
|
||||
"style" : {
|
||||
"navigationBarTitleText" : "账户管理咨询类",
|
||||
"enablePullDownRefresh" : false,
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},{
|
||||
"path" : "pages/work/delegation",
|
||||
"name" : "DelegationWork",
|
||||
"aliasPath": "/work/delegation",
|
||||
"style" : {
|
||||
"navigationBarTitleText" : "委托管理类",
|
||||
"enablePullDownRefresh" : false,
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/user/vip",
|
||||
"aliasPath": "/vip",
|
||||
"name": "vip",
|
||||
"style" : {
|
||||
"navigationBarTitleText" : "会员中心",
|
||||
"enablePullDownRefresh" : false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/user/team",
|
||||
"aliasPath": "/team",
|
||||
"name": "Tema",
|
||||
"style" : {
|
||||
"navigationBarTitleText" : "团队",
|
||||
"enablePullDownRefresh" : false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/index/lawyers",
|
||||
"aliasPath": "/lawyers",
|
||||
"name": "Lawyers",
|
||||
"style" : {
|
||||
"navigationBarTitleText" : "金牌律师",
|
||||
"enablePullDownRefresh" : false
|
||||
}
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
|
||||
@@ -116,8 +116,7 @@
|
||||
params: {
|
||||
orderId : order_id,
|
||||
orderType : order_type,
|
||||
price : this.allPrice
|
||||
}
|
||||
},
|
||||
})
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<rich-text :nodes="content"></rich-text>
|
||||
<!-- 报名信息 -->
|
||||
<view class="footer">
|
||||
<view class="footer-btn" @click="onBuy">立即购买</view>
|
||||
<view :class="['footer-btn', count.ing <= 0 ? 'in' : '']" @click="onBuy">立即购买</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@@ -72,6 +72,13 @@
|
||||
},
|
||||
methods: {
|
||||
onBuy(){
|
||||
if(this.count.ing <= 0){
|
||||
uni.showToast({
|
||||
title: '暂无可报名学期',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
this.$Router.push({
|
||||
name : 'EmpowerBuy',
|
||||
params : { id: this.id }
|
||||
@@ -131,5 +138,6 @@
|
||||
background-color: white;
|
||||
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, .04);
|
||||
.footer-btn{ background: $mian-color; color: white; line-height: 100rpx; border-radius: 50rpx; flex: 1; text-align: center; font-weight: bold; font-size: 36rpx; }
|
||||
.footer-btn.in{ opacity: .6; }
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -7,11 +7,12 @@
|
||||
<!-- logo -->
|
||||
<view class="topCont-logo">
|
||||
<image class="topCont-logo-img" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/fbd7ddba29e4ac81467b3d218233bb02.png" mode="widthFix"></image>
|
||||
<view class="topCont-logo-go" @click="seekClick">
|
||||
<view>
|
||||
<view class="topCont-logo-btn" @click="seekClick">
|
||||
立即咨询
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- 专业优质在线法律平台 -->
|
||||
<view class="topCont-text">
|
||||
<view class="topCont-text-name">
|
||||
@@ -47,9 +48,15 @@
|
||||
</swiper>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 开通会员 -->
|
||||
<image
|
||||
style="width: 100%; vertical-align: top;"
|
||||
src="/static/vip.png"
|
||||
mode="widthFix"
|
||||
@click="$Router.push({name: 'vip'})" v-if="vip.name != ''"
|
||||
></image>
|
||||
<!-- 新增改版 - 协商调解类 -->
|
||||
<view class="module">
|
||||
<view class="module" style="display: none;">
|
||||
<view class="module-title">
|
||||
协商调解类
|
||||
</view>
|
||||
@@ -76,13 +83,53 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<!-- 账户管理咨询类 -->
|
||||
<view class="module" v-if="accountData.length > 0" style="display: none;">
|
||||
<view class="module-title">
|
||||
账户管理咨询类
|
||||
</view>
|
||||
<scroll-view class="law" scroll-x="true" show-scrollbar="false">
|
||||
<view class="law-label" v-for="(item, index) in accountData" :key="index" @click="onMagInfo('Account', item.id)">
|
||||
<image class="law-label-img" :src="item.cover" mode="widthFix"></image>
|
||||
<view class="law-label-cont">
|
||||
<view class="nowrap law-label-name">
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="law-label-price">
|
||||
¥{{item.price}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<!-- 委托管理类 -->
|
||||
<view class="module" v-if="delegation.length > 0" style="display: none;">
|
||||
<view class="module-title">
|
||||
委托管理类
|
||||
</view>
|
||||
<scroll-view class="law" scroll-x="true" show-scrollbar="false">
|
||||
<view class="law-label" v-for="(item, index) in delegation" :key="index" @click="onMagInfo('Delegation', item.id)">
|
||||
<image class="law-label-img" :src="item.cover" mode="widthFix"></image>
|
||||
<view class="law-label-cont">
|
||||
<view class="nowrap law-label-name">
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="law-label-price">
|
||||
¥{{item.price}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<!-- 新增改版 - 法律资讯类 -->
|
||||
<view class="module">
|
||||
<view class="module-title">
|
||||
法律咨询类
|
||||
企业法律顾问
|
||||
</view>
|
||||
<scroll-view class="law" scroll-x="true" show-scrollbar="false">
|
||||
<view class="law-label" @click="clickBrief">
|
||||
<!-- <view class="law-label" @click="clickBrief">
|
||||
<image class="law-label-img" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/18/f3db072ac405edf2a3dc3fd6c3aae206.png" mode="widthFix"></image>
|
||||
<view class="law-label-cont">
|
||||
<view class="law-label-name">
|
||||
@@ -95,7 +142,7 @@
|
||||
¥365.00/年
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="law-label" @click="$Router.push({name: 'StandBrief', params: {type: 2}})">
|
||||
<image class="law-label-img" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/18/d813f30a393e6d50df8cc59a36e557c8.png" mode="widthFix"></image>
|
||||
<view class="law-label-cont">
|
||||
@@ -158,7 +205,7 @@
|
||||
<!-- 新增改版 - 诉讼委托类 -->
|
||||
<view class="module">
|
||||
<view class="module-title">
|
||||
诉讼委托类
|
||||
案件诉讼委托
|
||||
</view>
|
||||
<view class="topCont-tool">
|
||||
<view class="topCont-tool-label redBlock" @click="$Router.push({name: 'EntrustBrief'})">
|
||||
@@ -187,7 +234,7 @@
|
||||
</view>
|
||||
|
||||
<!-- 新增改版 - 增收赋能类 -->
|
||||
<view class="module">
|
||||
<view class="module" style="display: none;">
|
||||
<view class="module-title">
|
||||
增收赋能类
|
||||
</view>
|
||||
@@ -233,6 +280,7 @@
|
||||
<view class="list">
|
||||
<view class="list-title">
|
||||
金牌律师
|
||||
<view class="list-title-sm" @click="$Router.push({ name: 'Lawyers' })">全部</view>
|
||||
</view>
|
||||
<view class="lawyer">
|
||||
<view class="lawyer-item" v-for="(item, index) in lawyersArr" :key="index" @click="$Router.push({name: 'lawyerDetails', params: {id: item.lawyer_id}})">
|
||||
@@ -349,7 +397,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { workIndex, home, articleSort, articleList } from '@/apis/interfaces/index'
|
||||
import { workIndex, home, articleSort, articleList, accountManagement, delegation } from '@/apis/interfaces/index'
|
||||
import { judgeReal, userIndex, authFollow } from '@/apis/interfaces/user'
|
||||
import { lists } from '@/apis/interfaces/empower.js'
|
||||
export default {
|
||||
@@ -359,6 +407,10 @@
|
||||
canBuy : '', // 是否有免费个人咨询
|
||||
officialShow : false, // 公众号
|
||||
|
||||
vip : {
|
||||
name: ""
|
||||
},
|
||||
|
||||
autoplay : true,
|
||||
interval : 3000,
|
||||
duration : 500,
|
||||
@@ -378,8 +430,13 @@
|
||||
layadState : '',
|
||||
layadImg : '',
|
||||
haveimg : '',
|
||||
|
||||
// 增收赋能列表
|
||||
empowerArr : []
|
||||
empowerArr : [],
|
||||
// 账户管理类
|
||||
accountData : [],
|
||||
// 委托管理类
|
||||
delegation : []
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
@@ -403,7 +460,13 @@
|
||||
this.articleItem();
|
||||
|
||||
// 增收赋能
|
||||
this.getEmpower()
|
||||
this.getEmpower();
|
||||
|
||||
// 账户管理类
|
||||
this.getManagement();
|
||||
|
||||
// 委托管理类
|
||||
this.getDelegation();
|
||||
|
||||
if(this.$store.getters.getToken) {
|
||||
userIndex().then(res => {
|
||||
@@ -418,6 +481,39 @@
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 获取账户管理类
|
||||
getManagement(){
|
||||
accountManagement().then(res => {
|
||||
let accountData = res
|
||||
this.accountData = accountData
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
// 获取委托管理类
|
||||
getDelegation(){
|
||||
delegation().then(res => {
|
||||
let delegationData = res
|
||||
this.delegation = delegationData
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
// 查看管理类业务
|
||||
onMagInfo(type, id){
|
||||
this.$Router.push({
|
||||
name : 'Mag' + type,
|
||||
params : { id }
|
||||
})
|
||||
},
|
||||
// 增收赋能接口
|
||||
getEmpower(){
|
||||
lists().then(res => {
|
||||
@@ -435,7 +531,6 @@
|
||||
if(res.layad.is_lay_ad) {
|
||||
this.layadImg = res.layad.lay_ad_img
|
||||
}
|
||||
|
||||
let times = Number(res.layad.times.padEnd(4, 0))
|
||||
if(this.first === 1 && res.layad.is_lay_ad) {
|
||||
this.haveimg = true
|
||||
@@ -446,6 +541,7 @@
|
||||
},times);
|
||||
|
||||
}
|
||||
this.vip = res.vip
|
||||
this.homeList = res.categories
|
||||
this.lawyersArr = res.lawyers
|
||||
this.noticesArr = res.notices
|
||||
@@ -579,8 +675,8 @@
|
||||
officialGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
@@ -717,6 +813,8 @@
|
||||
.topCont-logo {
|
||||
display: flex;
|
||||
line-height: 58rpx;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.topCont-logo-img {
|
||||
margin-right: 15rpx;
|
||||
width: 190rpx;
|
||||
@@ -725,19 +823,17 @@
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.topCont-logo-go {
|
||||
.topCont-logo-btn {
|
||||
background-color: #ffffff;
|
||||
border-radius: $radius*5;
|
||||
text-align: center;
|
||||
color: $mian-color;
|
||||
font-size: $title-size;
|
||||
line-height: 72rpx;
|
||||
line-height: 68rpx;
|
||||
font-weight: 600;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
right: $margin;
|
||||
top: $margin + 10;
|
||||
padding: 0 $padding + 10;
|
||||
padding: 0 $padding;
|
||||
&:last-child{ margin-left: 20rpx; }
|
||||
}
|
||||
}
|
||||
.topCont-text {
|
||||
@@ -884,6 +980,10 @@
|
||||
font-weight: 600;
|
||||
margin-bottom: 10rpx;
|
||||
color: $text-color;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
&-sm{ font-size: 30rpx; color: gray; font-weight: normal; }
|
||||
}
|
||||
.lawyer {
|
||||
overflow: hidden;
|
||||
|
||||
@@ -78,8 +78,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
178
pages/index/lawyers.vue
Normal file
178
pages/index/lawyers.vue
Normal file
@@ -0,0 +1,178 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<block v-if="lawyersArr.length > 0">
|
||||
<view class="lawyer">
|
||||
<view class="lawyer-item" v-for="(item, index) in lawyersArr" :key="index" @click="$Router.push({name: 'lawyerDetails', params: {id: item.lawyer_id}})">
|
||||
<view class="lawyer-item-img">
|
||||
<!-- 5:6 -->
|
||||
<image :src="item.cover" mode="aspectFill"></image>
|
||||
<view class="nowrap lawyer-item-name">
|
||||
{{item.name}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="lawyer-item-cont">
|
||||
<view class="nowrap lawyer-item-tips">
|
||||
擅长:
|
||||
<block v-for="(items, itemsIndex) in item.tags" :key="itemsIndex">
|
||||
{{items.name}},
|
||||
</block>
|
||||
</view>
|
||||
<view class="lawyer-item-price">
|
||||
<!-- <view class="lawyer-item-number">¥{{item.price}}</view> -->
|
||||
<!-- <text>{{item.years}}+人咨询</text> -->
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 分页 -->
|
||||
<u-loadmore v-if="pagesShow" :status="status" />
|
||||
</block>
|
||||
<block v-else>
|
||||
<view class="list-null">
|
||||
<u-empty
|
||||
mode="data"
|
||||
icon="http://cdn.uviewui.com/uview/empty/data.png"
|
||||
text="暂无律师数据"
|
||||
>
|
||||
</u-empty>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { lawyers } from "@/apis/interfaces/index.js"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
lawyersArr : [],
|
||||
// 分页
|
||||
page : {
|
||||
current : 1,
|
||||
has_more: false,
|
||||
},
|
||||
pagesShow : false,
|
||||
status : false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 获取列表
|
||||
getList(){
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
lawyers({
|
||||
larer : 1,
|
||||
page : this.page.current,
|
||||
}).then(res => {
|
||||
console.log(res)
|
||||
let { data, page } = res;
|
||||
let atList = page.current == 1 ? [] : this.lawyersArr
|
||||
this.lawyersArr = atList.concat(data)
|
||||
this.page = page
|
||||
this.pagesShow = false
|
||||
uni.hideLoading()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
onCallPhone(phone){
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: phone
|
||||
})
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
this.pagesShow = true;
|
||||
if(this.page.has_more){
|
||||
this.status = 'loading';
|
||||
this.page.current++
|
||||
this.getList()
|
||||
return
|
||||
}
|
||||
this.status = 'nomore';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content{
|
||||
box-sizing: border-box;
|
||||
background: white;
|
||||
padding-top: 1rpx;
|
||||
}
|
||||
// 列表
|
||||
.lawyer {
|
||||
overflow: hidden;
|
||||
margin: 20rpx 15rpx 0;
|
||||
.lawyer-item {
|
||||
background-color: #fff;
|
||||
width: calc(50% - 30rpx);
|
||||
float: left;
|
||||
margin: 0 15rpx $margin;
|
||||
border: 2rpx solid #f1f1f1;
|
||||
box-sizing: border-box;
|
||||
border-radius: $radius-m;
|
||||
overflow: hidden;
|
||||
.lawyer-item-img {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding-top: 55%;
|
||||
overflow: hidden;
|
||||
background-color: #515151;
|
||||
image {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.lawyer-item-name {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(0, 0, 0, .1);
|
||||
line-height: 54rpx;
|
||||
color: #ffffff;
|
||||
padding: 0 $padding - 10;
|
||||
box-sizing: border-box;
|
||||
font-size: $title-size-lg;
|
||||
}
|
||||
}
|
||||
.lawyer-item-cont {
|
||||
padding: $padding - 10;
|
||||
box-sizing: border-box;
|
||||
.lawyer-item-tips {
|
||||
font-size: $title-size-m;
|
||||
color: $text-color;
|
||||
}
|
||||
.lawyer-item-price {
|
||||
display: flex;
|
||||
margin-top: 10rpx;
|
||||
line-height: 44rpx;
|
||||
.lawyer-item-number {
|
||||
flex: 1;
|
||||
color: $mian-color;
|
||||
font-weight: 600;
|
||||
font-size: $title-size;
|
||||
}
|
||||
text {
|
||||
font-size: $title-size-sm;
|
||||
color: #9d9d9d;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 空页面
|
||||
.list-null{ height: 60vh; display: flex; align-items: center; justify-content: center; }
|
||||
</style>
|
||||
@@ -95,8 +95,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
用户登录
|
||||
</view>
|
||||
<view class="title-tips">
|
||||
密码登录仅适用于已注册用户
|
||||
手机验证码登录
|
||||
</view>
|
||||
</view>
|
||||
<view class="info">
|
||||
@@ -16,15 +16,23 @@
|
||||
<view class="inputs">
|
||||
<input type="number" placeholder="请输入手机号" maxlength="11" v-model="phone" />
|
||||
</view>
|
||||
<!-- 输入密码 -->
|
||||
<view class="inputs">
|
||||
<input type="text" :password="passwordState" placeholder="请输入密码" v-model="password" />
|
||||
<image class="inputs-see" @click="seeClick" :src="seeState ? '../../static/icon/see_active.png' : '../../static/icon/see.png'" mode="aspectFill"></image>
|
||||
|
||||
<view class="captcha-inputs">
|
||||
<view class="captcha-campus-inputs campus-inputs">
|
||||
<input class="campus-form-input" type="text" placeholder="请输入图文验证码" v-model="newCaptcha" />
|
||||
</view>
|
||||
<button class="btn" type="default" @click="LoginSms" :disabled="phone == '' || password == ''">立即登录</button>
|
||||
<image class="campus-form-graph" :src="captchaImg" mode="widthFix" @click="replaceClick"></image>
|
||||
</view>
|
||||
|
||||
<view class="inputs captcha-inputs">
|
||||
<input class="campus-form-input" type="number" placeholder="请输入验证码" v-model="code" maxlength="4"></input>
|
||||
<button @click="checkCaptcha" class="campus-form-code ":disabled="phone == ''" type="default" size="mini">{{getSms ? '重新发送' + smsTime + 's': '发送验证码'}}</button>
|
||||
</view>
|
||||
|
||||
<button class="btn" type="default" @click="LoginSms" :disabled="phone == '' || code == ''">立即登录</button>
|
||||
<view class="forget">
|
||||
<view class="forget-label" @click="$Router.push({name: 'Register'})">我要注册</view>
|
||||
<view class="forget-label forget-after" @click="$Router.push({name: 'Forget'})">忘记密码?</view>
|
||||
<view class="forget-label forget-after" @click="$Router.push({name: 'PasswordLogin'})">密码登录</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@@ -42,7 +50,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Login } from '@/apis/interfaces/auth'
|
||||
import { Login, Captcha, smsAuth, authSms } from '@/apis/interfaces/auth'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -51,23 +59,99 @@
|
||||
checked : false, // 勾选协议
|
||||
seeState : false, //小眼睛
|
||||
passwordState: true,
|
||||
disabled : false,
|
||||
code : '', // 短信验证码
|
||||
getSms : '',
|
||||
smsTime : 60,
|
||||
newCaptcha : '', // 填写图形码
|
||||
captcha : '', // 输入图形码
|
||||
captchaImg : '', // 图形码
|
||||
}
|
||||
},
|
||||
|
||||
// 生命周期函数--监听页面显示
|
||||
onShow() {
|
||||
// 获取图形码
|
||||
this.captchaInfo()
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 用户登录
|
||||
// 图形码
|
||||
captchaInfo() {
|
||||
Captcha().then(res=>{
|
||||
this.captchaImg = res.img
|
||||
this.captchaKey = res.key
|
||||
}).catch(err=>{
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 看不清,换一张 - 图形码数据
|
||||
replaceClick() {
|
||||
this.captchaInfo();
|
||||
|
||||
// 清除图形码数据
|
||||
this.newCaptcha = ''
|
||||
},
|
||||
|
||||
// 需校验图形验证码
|
||||
checkCaptcha() {
|
||||
if(this.phone) {
|
||||
let outTime
|
||||
smsAuth({
|
||||
mobileNo : this.phone,
|
||||
captcha : this.newCaptcha,
|
||||
captcha_key: this.captchaKey
|
||||
}).then(res => {
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: "none"
|
||||
})
|
||||
|
||||
this.getSms = true
|
||||
outTime = setInterval(() => {
|
||||
if (this.smsTime <= 1) {
|
||||
this.getSms = false
|
||||
this.smsTime = 60
|
||||
clearInterval('outTime')
|
||||
}
|
||||
this.smsTime -= 1
|
||||
}, 1000)
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
return
|
||||
}
|
||||
uni.showToast({
|
||||
title: '请输入手机号',
|
||||
icon: "none"
|
||||
})
|
||||
},
|
||||
|
||||
// 勾选协议
|
||||
radioChange() {
|
||||
this.checked = !this.checked
|
||||
},
|
||||
|
||||
// 验证码登录
|
||||
LoginSms() {
|
||||
if(this.checked) {
|
||||
Login({
|
||||
username : this.phone,
|
||||
password : this.password
|
||||
authSms({
|
||||
mobileNo : this.phone,
|
||||
parent_id : '',
|
||||
code : this.code
|
||||
}).then(res => {
|
||||
// 存储用户token
|
||||
this.$store.commit('setToken', res.token_type + ' ' + res.access_token)
|
||||
|
||||
// 回到首页
|
||||
this.$Router.replaceAll({name: 'Index'})
|
||||
// this.$Router.back()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
@@ -80,19 +164,7 @@
|
||||
icon: "none"
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
// 勾选协议
|
||||
radioChange() {
|
||||
this.checked = !this.checked
|
||||
},
|
||||
|
||||
// 查看密码
|
||||
seeClick() {
|
||||
this.seeState = !this.seeState
|
||||
this.passwordState = !this.passwordState
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -199,7 +271,7 @@
|
||||
.forget-label {
|
||||
flex: 2;
|
||||
text-align: center;
|
||||
color: #7f8391;
|
||||
color: #000000;
|
||||
}
|
||||
.forget-after {
|
||||
position: relative;
|
||||
@@ -215,4 +287,55 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.captcha-inputs {
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
margin-top: $margin + 20;
|
||||
.campus-form-graph {
|
||||
width: 220rpx;
|
||||
margin-top: 20rpx;
|
||||
border-radius: 5rpx;
|
||||
}
|
||||
.captcha-campus-inputs{
|
||||
flex: 1;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.campus-inputs {
|
||||
background-color: #f7f8fa;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
box-sizing: border-box;
|
||||
color: #868686;
|
||||
font-size: $title-size-m;
|
||||
padding: 0 $padding + 10;
|
||||
border-radius: $radius-m;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
input {
|
||||
font-weight: normal;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.campus-form-code{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 30rpx;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: transparent;
|
||||
font-size: 30rpx;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
color: #f25448;
|
||||
&::after{
|
||||
border: none;
|
||||
}
|
||||
&[disabled]{
|
||||
color: rgba($color: #f25448, $alpha: .5);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
220
pages/login/passwordLogin.vue
Normal file
220
pages/login/passwordLogin.vue
Normal file
@@ -0,0 +1,220 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<img class="loginBack" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/5682d339246af0f44b4984c849288aa5.png">
|
||||
<img class="loginBottom" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/caa46039d88517ee8ba22b6c32dd47a1.png">
|
||||
<view class="title">
|
||||
<view class="title-name">
|
||||
用户登录
|
||||
</view>
|
||||
<view class="title-tips">
|
||||
密码登录仅适用于已注册用户
|
||||
</view>
|
||||
</view>
|
||||
<view class="info">
|
||||
<view class="info-cont">
|
||||
<!-- 输入手机号相关 -->
|
||||
<view class="inputs">
|
||||
<input type="number" placeholder="请输入手机号" maxlength="11" v-model="phone" />
|
||||
</view>
|
||||
<!-- 输入密码 -->
|
||||
<view class="inputs">
|
||||
<input type="text" :password="passwordState" placeholder="请输入密码" v-model="password" />
|
||||
<image class="inputs-see" @click="seeClick" :src="seeState ? '../../static/icon/see_active.png' : '../../static/icon/see.png'" mode="aspectFill"></image>
|
||||
</view>
|
||||
<button class="btn" type="default" @click="LoginSms" :disabled="phone == '' || password == ''">立即登录</button>
|
||||
<view class="forget-label forget-after" style="width: 100%; text-align: center; padding-top: 15rpx; font-size: 28rpx; color: #7f8391;" @click="$Router.push({name: 'Forget'})">忘记密码?</view>
|
||||
<view class="forget">
|
||||
<view class="forget-label" @click="$Router.push({name: 'Register'})">我要注册</view>
|
||||
<view class="forget-label forget-after" @click="$Router.push({name: 'Login'})">验证码登录</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- 用户登录注册协议 -->
|
||||
<view class="agreement">
|
||||
<checkbox-group @change="radioChange">
|
||||
<checkbox color="#da2b56" :checked="checked" style="transform: scale(.55)" class="radioGroup" />
|
||||
</checkbox-group>
|
||||
<view class="agreement-text">
|
||||
我已阅读并同意抖火法律<view @click="$Router.push({name: 'Agreement', params: {page : 3}})">《隐私协议》</view>和<view @click="$Router.push({name: 'Agreement', params: {page : 4}})">《服务协议》</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Login } from '@/apis/interfaces/auth'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
phone : '', // 手机号码
|
||||
password: '', // 登录密码
|
||||
checked : false, // 勾选协议
|
||||
seeState : false, //小眼睛
|
||||
passwordState: true,
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 用户登录
|
||||
LoginSms() {
|
||||
if(this.checked) {
|
||||
Login({
|
||||
username : this.phone,
|
||||
password : this.password
|
||||
}).then(res => {
|
||||
// 存储用户token
|
||||
this.$store.commit('setToken', res.token_type + ' ' + res.access_token)
|
||||
|
||||
// 回到首页
|
||||
this.$Router.replaceAll({name: 'Index'})
|
||||
// this.$Router.back()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '请勾选用户隐私和服务协议',
|
||||
icon: "none"
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
// 勾选协议
|
||||
radioChange() {
|
||||
this.checked = !this.checked
|
||||
},
|
||||
|
||||
// 查看密码
|
||||
seeClick() {
|
||||
this.seeState = !this.seeState
|
||||
this.passwordState = !this.passwordState
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.loginBack {
|
||||
width: 35%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
.loginBottom {
|
||||
width: 60%;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.agreement {
|
||||
padding: $padding 0 $padding - 20 $padding - 10;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
font-size: $title-size-sm;
|
||||
width: 100%;
|
||||
line-height: 60rpx;
|
||||
color: #979797;
|
||||
.radioGroup {
|
||||
font-size: $title-size-sm;
|
||||
}
|
||||
.agreement-text {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
view {
|
||||
color: $mian-color;
|
||||
padding: 0 5rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
padding: $padding*4 $padding * 3 $padding*2;
|
||||
box-sizing: border-box;
|
||||
.title-name {
|
||||
font-size: $title-size + 10;
|
||||
margin-bottom: $margin - 10;
|
||||
}
|
||||
.title-tips {
|
||||
color: #8e8e8e;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
padding: $padding * 3 0;
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
z-index: 6;
|
||||
width: 100%;
|
||||
.info-cont {
|
||||
padding: 0 $padding * 3;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.inputs {
|
||||
background-color: #f7f8fa;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
margin-bottom: $margin + 20;
|
||||
box-sizing: border-box;
|
||||
color: #868686;
|
||||
font-size: $title-size-m;
|
||||
padding: 0 $padding + 10;
|
||||
border-radius: $radius-m;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.inputs-see {
|
||||
position: absolute;
|
||||
right: $padding;
|
||||
top: $padding;
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
}
|
||||
input {
|
||||
font-weight: normal;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.btn {
|
||||
background-image: linear-gradient(to right, #da2b56, #FBAF3B);
|
||||
color: #ffffff;
|
||||
border-radius: $radius-m;
|
||||
font-size: $title-size;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
padding: 0;
|
||||
margin: $margin * 3 0 0;
|
||||
&[disabled] {
|
||||
background-image: linear-gradient(to right, #ff8da9, #ffd0a2);
|
||||
}
|
||||
}
|
||||
.forget {
|
||||
display: flex;
|
||||
line-height: 120rpx;
|
||||
font-size: $title-size-m;
|
||||
.forget-label {
|
||||
flex: 2;
|
||||
text-align: center;
|
||||
color: #000000;
|
||||
}
|
||||
.forget-after {
|
||||
position: relative;
|
||||
&::after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
left: 0;
|
||||
bottom: calc(50% - 15rpx);
|
||||
width: 2rpx;
|
||||
height: 30rpx;
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
135
pages/management/account.vue
Normal file
135
pages/management/account.vue
Normal file
@@ -0,0 +1,135 @@
|
||||
<template>
|
||||
<view class="from-content">
|
||||
<view class="from-block" v-if="pickerArr.length > 0" >
|
||||
<view class="from-block-item">
|
||||
<label>办理业务</label>
|
||||
<picker class="from-block-val" :range="pickerArr" :value="pickerIndex" range-key="title" @change="pickerIndex = $event.detail.value">
|
||||
<view class="from-block-picker nowrap">{{pickerArr[pickerIndex].title}}
|
||||
<u-icon class="from-block-picker-icon" name="arrow-down" color="#555" size="15"></u-icon>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>业务价格</label>
|
||||
<view class="from-block-val price">¥{{pickerArr[pickerIndex].price}}</view>
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>业务描述</label>
|
||||
<view class="from-block-val">{{pickerArr[pickerIndex].subtitle}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="from-block">
|
||||
<view class="from-block-item">
|
||||
<label>客户姓名</label>
|
||||
<input class="from-block-val from-block-input" placeholder="请输入客户姓名" v-model="name" />
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>手机号码</label>
|
||||
<input class="from-block-val from-block-input" type="number" placeholder="请输入客户手机号码" maxlength="11" v-model="phone" />
|
||||
</view>
|
||||
</view>
|
||||
<button class="from-btn" @click="onSubmit">提交办理</button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { accountManagement, accountFrom } from '@/apis/interfaces/index.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
pickerArr : [],
|
||||
pickerIndex : 0,
|
||||
name : '',
|
||||
phone : ''
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
accountManagement().then(res => {
|
||||
uni.hideLoading()
|
||||
this.pickerArr = res;
|
||||
this.pickerIndex = res.findIndex(val => val.id == this.$Route.query.id)
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 提交表单
|
||||
onSubmit(){
|
||||
let { name, phone, pickerArr, pickerIndex } = this
|
||||
|
||||
console.log(pickerArr[pickerIndex])
|
||||
|
||||
if(name === ''){
|
||||
uni.showToast({
|
||||
title: '请输入客户姓名',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
if(phone === ''){
|
||||
uni.showToast({
|
||||
title: '请输入客户手机号码',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
uni.showLoading({
|
||||
title: "提交中...",
|
||||
mask : true
|
||||
})
|
||||
accountFrom({
|
||||
name : name,
|
||||
mobile : phone
|
||||
}, pickerArr[pickerIndex].id).then(res => {
|
||||
let { order_type, order_id, order_no, total } = res;
|
||||
this.$Router.replace({name: 'FeePay', params: {id: order_id, orderType: order_type, price: total, payForm: 'synthesize'}})
|
||||
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.from-content{
|
||||
min-height: 100vh;
|
||||
padding: 30rpx;
|
||||
background: #f7f8f9;
|
||||
}
|
||||
.from-block{
|
||||
background: white;
|
||||
border-radius: 20rpx;
|
||||
margin-bottom: 30rpx;
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
.from-block-item{
|
||||
min-height: 70rpx;
|
||||
display: flex;
|
||||
font-size: 32rpx;
|
||||
border-bottom: solid 1rpx #f3f3f3;
|
||||
padding: 15rpx 0;
|
||||
|
||||
}
|
||||
.from-block-item:last-child{ border: none; }
|
||||
label{ width: 200rpx; line-height: 70rpx; }
|
||||
.from-block-val{ width: calc(100% - 200rpx); text-align: right; line-height: 70rpx;}
|
||||
.from-block-val.price{ color: #446EFE; font-weight: bold; }
|
||||
.from-block-input{ height: 70rpx; font-size: 32rpx; }
|
||||
.from-block-picker{ padding-right: 50rpx; position: relative; }
|
||||
.from-block-picker-icon{ position: absolute; right: 0; top: 50%; margin-top: -15rpx; }
|
||||
.from-btn{ width: 100%; background-color: #446EFE; color: white; line-height: 95rpx; height: 95rpx; border-radius: 45rpx; font-size: 32rpx; font-weight: bold;
|
||||
&::after{ display: none; }
|
||||
}
|
||||
</style>
|
||||
139
pages/management/delegation.vue
Normal file
139
pages/management/delegation.vue
Normal file
@@ -0,0 +1,139 @@
|
||||
<template>
|
||||
<view class="from-content">
|
||||
<view class="from-block" v-if="pickerArr.length > 0" >
|
||||
<view class="from-block-item">
|
||||
<label>办理业务</label>
|
||||
<picker class="from-block-val" :range="pickerArr" :value="pickerIndex" range-key="title" @change="pickerIndex = $event.detail.value">
|
||||
<view class="from-block-picker nowrap">{{pickerArr[pickerIndex].title}}
|
||||
<u-icon class="from-block-picker-icon" name="arrow-down" color="#555" size="15"></u-icon>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>业务价格</label>
|
||||
<view class="from-block-val price">¥{{pickerArr[pickerIndex].price}}</view>
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>业务描述</label>
|
||||
<view class="from-block-val">{{pickerArr[pickerIndex].subtitle}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="from-block">
|
||||
<view class="from-block-item">
|
||||
<label>客户姓名</label>
|
||||
<input class="from-block-val from-block-input" placeholder="请输入客户姓名" v-model="name" />
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>手机号码</label>
|
||||
<input class="from-block-val from-block-input" type="number" placeholder="请输入客户手机号码" maxlength="11" v-model="phone" />
|
||||
</view>
|
||||
</view>
|
||||
<button class="from-btn" @click="onSubmit">提交办理</button>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import { delegation, delegationFrom } from '@/apis/interfaces/index.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
pickerArr : [],
|
||||
pickerIndex : 0,
|
||||
name : '',
|
||||
phone : ''
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
delegation().then(res => {
|
||||
uni.hideLoading()
|
||||
this.pickerArr = res;
|
||||
this.pickerIndex = res.findIndex(val => val.id == this.$Route.query.id)
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 提交表单
|
||||
onSubmit(){
|
||||
let { name, phone, pickerArr, pickerIndex } = this
|
||||
if(name === ''){
|
||||
uni.showToast({
|
||||
title: '请输入客户姓名',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
if(phone === ''){
|
||||
uni.showToast({
|
||||
title: '请输入客户手机号码',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
uni.showLoading({
|
||||
title: "提交中...",
|
||||
mask : true
|
||||
})
|
||||
delegationFrom({
|
||||
name : name,
|
||||
mobile : phone
|
||||
}, pickerArr[pickerIndex].id).then(res => {
|
||||
let { order_type, order_id, order_no } = res;
|
||||
this.$Router.replace({
|
||||
name : 'Pay',
|
||||
params : {
|
||||
paytype : 'synthesize',
|
||||
orderId : order_id,
|
||||
orderType : order_type.replace(/\\/g, '-')
|
||||
},
|
||||
})
|
||||
}).catch(err => {
|
||||
|
||||
console.log(err)
|
||||
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.from-content{
|
||||
min-height: 100vh;
|
||||
padding: 30rpx;
|
||||
background: #f7f8f9;
|
||||
}
|
||||
.from-block{
|
||||
background: white;
|
||||
border-radius: 20rpx;
|
||||
margin-bottom: 30rpx;
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
.from-block-item{
|
||||
min-height: 70rpx;
|
||||
display: flex;
|
||||
font-size: 32rpx;
|
||||
border-bottom: solid 1rpx #f3f3f3;
|
||||
padding: 15rpx 0;
|
||||
|
||||
}
|
||||
.from-block-item:last-child{ border: none; }
|
||||
label{ width: 200rpx; line-height: 70rpx; }
|
||||
.from-block-val{ width: calc(100% - 200rpx); text-align: right; line-height: 70rpx;}
|
||||
.from-block-val.price{ color: #446EFE; font-weight: bold; }
|
||||
.from-block-input{ height: 70rpx; font-size: 32rpx; }
|
||||
.from-block-picker{ padding-right: 50rpx; position: relative; }
|
||||
.from-block-picker-icon{ position: absolute; right: 0; top: 50%; margin-top: -15rpx; }
|
||||
.from-btn{ width: 100%; background-color: #446EFE; color: white; line-height: 95rpx; height: 95rpx; border-radius: 45rpx; font-size: 32rpx; font-weight: bold;
|
||||
&::after{ display: none; }
|
||||
}
|
||||
</style>
|
||||
@@ -18,14 +18,14 @@
|
||||
<image class="paymentList-img" :src="Payment == 'wechat' ? '/static/imgs/payCheck_active.png' : '/static/imgs/payCheck.png'" mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="paymentList-label" @click="payType('umsMp')">
|
||||
<!-- <view class="paymentList-label" @click="payType('umsMp')">
|
||||
<view class="paymentList-left">
|
||||
<image class="paymentList-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/2a4ea8f9f714e39088648383d5c52f32.png" mode="widthFix"></image>微信(银联商务)
|
||||
</view>
|
||||
<view class="paymentList-right">
|
||||
<image class="paymentList-img" :src="Payment == 'umsMp' ? '/static/imgs/payCheck_active.png' : '/static/imgs/payCheck.png'" mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="paymentList-label" @click="payType('umsAli')">
|
||||
<view class="paymentList-left">
|
||||
<image class="paymentList-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/4aaf302e9d8a90c21c39b3d2f39cebc2.png" mode="widthFix"></image>支付宝(银联商务)
|
||||
@@ -96,7 +96,7 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tradeId : '20230712115651357160000028',
|
||||
tradeId : '',
|
||||
token : this.$store.getters.getToken,
|
||||
orderNo : '',
|
||||
orderId : '',
|
||||
@@ -218,7 +218,8 @@
|
||||
// 获取微信授权信息-获取oppid
|
||||
authFollow({
|
||||
url: 'https://web.douhuofalv.com/webWechat/index'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webWechat/index'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webWechat/index',
|
||||
// url: 'http://web.douhuo.demos.uzchain.tech/webWechat/index' 最新
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -78,8 +78,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode',
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode',
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -46,7 +46,12 @@
|
||||
YGFA
|
||||
</view>
|
||||
</view>
|
||||
<view class="labelPlan-list">
|
||||
<view class="labelPlan-list" v-if="item.type == 'one'">
|
||||
<text class="labelPlan-item labelPlan-content">
|
||||
{{item.content}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="labelPlan-list" v-else>
|
||||
<view class="labelPlan-item" v-for="(paramsItem, paramsIndex) in item.params" :key="paramsIndex">
|
||||
<view class="labelPlan-item-name">{{paramsItem.title}}</view>
|
||||
<view class="nowrap labelPlan-item-text">
|
||||
@@ -61,9 +66,9 @@
|
||||
<view class="labelNotice-name">
|
||||
须知:
|
||||
</view>
|
||||
<view class="labelNotice-text">
|
||||
<text class="labelNotice-text">
|
||||
{{item.business_type.notic}}
|
||||
</view>
|
||||
</text>
|
||||
</view>
|
||||
<view class="labelNotice-btn" @click="noticeTap(index)">
|
||||
<image class="labelNotice-img" :class="{active : item.noticeShow}" src="@/static/imgs/openArrow_grey.png" mode="widthFix"></image>{{item.noticeShow ? '收起' : '展开'}}
|
||||
@@ -333,6 +338,9 @@
|
||||
margin-left: 20rpx;
|
||||
font-size: $title-size-sm - 2;
|
||||
}
|
||||
&.labelPlan-content {
|
||||
line-height: 52rpx;
|
||||
}
|
||||
}
|
||||
.labelNotice {
|
||||
font-size: $title-size-m;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<image class="create-type-icon" :src="item.cover" mode="aspectFill"></image>
|
||||
<view class="create-type-text">
|
||||
<view class="title nowrap">{{item.title || '-'}}</view>
|
||||
<view class="submit nowrap">免费咨询一次</view>
|
||||
<!-- <view class="submit nowrap">免费咨询一次</view> -->
|
||||
</view>
|
||||
<image class="create-type-check" :src="item.self_type + item.synthesis_id == businessName ? '/static/icon/Check_active.png' : '/static/icon/Check.png'" mode="aspectFill"></image>
|
||||
</view>
|
||||
@@ -36,17 +36,20 @@
|
||||
},
|
||||
created() {
|
||||
// 业务类型列表
|
||||
workIndex().then(res => {
|
||||
this.businessArr = res
|
||||
this.businessType= res[0].self_type
|
||||
this.businessName= res[0].self_type + res[0].business_id
|
||||
this.businessId = res[0].business_id
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
// workIndex().then(res => {
|
||||
|
||||
// console.log(res)
|
||||
|
||||
// this.businessArr = res
|
||||
// this.businessType= res[0].self_type
|
||||
// this.businessName= res[0].self_type + res[0].business_id
|
||||
// this.businessId = res[0].business_id
|
||||
// }).catch(err => {
|
||||
// uni.showToast({
|
||||
// title: err.message,
|
||||
// icon : 'none'
|
||||
// })
|
||||
// })
|
||||
|
||||
// 综法类型列表
|
||||
synthList().then(res => {
|
||||
@@ -68,20 +71,28 @@
|
||||
|
||||
// 创建业务单
|
||||
onNext(){
|
||||
console.log(this.businessType)
|
||||
// 信用卡/贷款
|
||||
if(this.businessType == 'business') {
|
||||
let busines = this.businessArr.find(val => val.business_id === this.businessId)
|
||||
// if(this.businessType == 'business') {
|
||||
// let busines = this.businessArr.find(val => val.business_id === this.businessId)
|
||||
|
||||
this.$Router.replace({
|
||||
name : 'sheetBasic',
|
||||
params : {
|
||||
businessTitle : busines.title,
|
||||
businessId : busines.business_id,
|
||||
}
|
||||
// this.$Router.replace({
|
||||
// name : 'sheetBasic',
|
||||
// params : {
|
||||
// businessTitle : busines.title,
|
||||
// businessId : busines.business_id,
|
||||
// }
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
|
||||
if(this.businessType != 'synthesis'){
|
||||
uni.showToast({
|
||||
title: '请选择咨询类型',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 综法
|
||||
let synthesis = this.synthesisArr.find(val => val.synthesis_id === this.businessId)
|
||||
if(synthesis.can.buy) {
|
||||
@@ -162,7 +173,7 @@
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
position: absolute;
|
||||
top: 44rpx;
|
||||
top: 60rpx;
|
||||
right: 30rpx;
|
||||
}
|
||||
&.active{
|
||||
|
||||
@@ -94,8 +94,8 @@
|
||||
realName({
|
||||
front_card: this.frontCard.path,
|
||||
back_card : this.backCard.path,
|
||||
// redirect_url: "https://web.douhuofalv.com/sheet/authSuccess",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/sheet/authSuccess"
|
||||
redirect_url: "https://web.douhuofalv.com/sheet/authSuccess",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/sheet/authSuccess"
|
||||
}).then(res => {
|
||||
this.realData = res.certification
|
||||
this.authShortUrl = res.sign.authShortUrl
|
||||
|
||||
@@ -372,11 +372,11 @@
|
||||
<view class="btn-lable-go active" v-else-if="item.status.value == 7">
|
||||
{{item.status.text}}
|
||||
</view>
|
||||
<block v-else-if="item.status.value == 9">
|
||||
<!-- <block v-else-if="item.status.value == 9">
|
||||
<view class="btn-lable-go" v-if="item.can.confirm" @click="$Router.push({name: 'OrderModify', params: {id: item.business_order_id}})">
|
||||
去确认
|
||||
</view>
|
||||
</block>
|
||||
</block> -->
|
||||
<!-- <view class="btn-lable-go" v-else-if="item.status.value == 8" @click="$Router.push({name: 'sheetHandle'})">
|
||||
{{item.status.text}}
|
||||
</view> -->
|
||||
@@ -558,8 +558,8 @@
|
||||
// 去签约
|
||||
contractClick(id) {
|
||||
contractGo(id, {
|
||||
// redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
app_scheme : ''
|
||||
}).then(res => {
|
||||
// let faceUrl = encodeURIComponent(res.sign_url)
|
||||
|
||||
@@ -81,8 +81,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode',
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode',
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<!-- douhuotest dev=0是线上 dev=1是线下 -->
|
||||
<wx-open-launch-weapp
|
||||
username="gh_918c81628d6f"
|
||||
:path="'pages/pay/pay?type=h5&dev=1&trade_id=' + tradeId + '&token=' + token"
|
||||
:path="'pages/pay/pay?type=h5&dev=0&trade_id=' + tradeId + '&token=' + token"
|
||||
>
|
||||
<script type="text/wxtag-template">
|
||||
<style>
|
||||
@@ -289,8 +289,9 @@
|
||||
|
||||
// 获取微信授权信息-获取oppid
|
||||
authFollow({
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
// url: 'https://web.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
// url: 'http://web.douhuo.demos.uzchain.tech/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price 最新
|
||||
url: 'https://web.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -436,8 +436,8 @@
|
||||
// 去签约
|
||||
contractClick() {
|
||||
contractGo(this.$Route.query.id, {
|
||||
// redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
app_scheme : ''
|
||||
}).then(res => {
|
||||
// let faceUrl = encodeURIComponent(res.sign_url)
|
||||
|
||||
@@ -231,8 +231,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -240,8 +240,8 @@
|
||||
esignUrl({
|
||||
order_id : id,
|
||||
order_type: type,
|
||||
// redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
channel : 'h5',
|
||||
app_scheme : ''
|
||||
}).then(res => {
|
||||
|
||||
@@ -210,8 +210,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -219,8 +219,8 @@
|
||||
esignUrl({
|
||||
order_id : id,
|
||||
order_type: type,
|
||||
// redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
channel : 'h5',
|
||||
app_scheme : ''
|
||||
}).then(res => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view id="poster" class="poster">
|
||||
<view id="poster" :class="['poster', {'vip_bg': seekData.is_vip}]">
|
||||
<view class="top">
|
||||
<view class="top-cont">
|
||||
<image class="top-cont-img" src="https://cdn.douhuofalv.com/images/2023/04/24/a45643fc33ca42b7a430aee573a93da4.png" mode="widthFix"></image>
|
||||
@@ -13,6 +13,9 @@
|
||||
<view class="confirm-white">
|
||||
<view class="confirm-top">订单号 {{seekData.order_no}}</view>
|
||||
<view class="confirm-list">
|
||||
<view class="confirm-item" style="color: #CD7F32; font-weight: bold;" v-if="seekData.is_vip">
|
||||
<view class="confirm-item-label">VIP订单</view>
|
||||
</view>
|
||||
<view class="confirm-item" v-for="(item, index) in seekData.params">
|
||||
<view class="confirm-item-label">{{item.title}}</view>
|
||||
<view class="confirm-item-text" v-if="item.key == 'address'">{{item.value_text.province_name}}{{item.value_text.city}}</view>
|
||||
@@ -115,10 +118,16 @@
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
position: fixed;
|
||||
&.vip_bg{
|
||||
background: linear-gradient(to bottom,#bf9960, #f9cd9e);
|
||||
}
|
||||
}
|
||||
|
||||
.poster {
|
||||
background-image: linear-gradient(to bottom,#041f79, #111e4b);
|
||||
&.vip_bg{
|
||||
background: linear-gradient(to bottom,#582700, #f9cd9e);
|
||||
}
|
||||
}
|
||||
|
||||
.top {
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
const jweixin = require('jweixin-module');
|
||||
import { Apply, Wechat, authFollow } from '@/apis/interfaces/index'
|
||||
import { ums, umsState } from '@/apis/interfaces/pay'
|
||||
import { servicePay, serviceUms, serviceDg, expandPay, expandUms, expandDg, entrustPay, entrustUms, entrustDg, synDiffPay, synDiffUms, synDiffDg } from '@/apis/interfaces/pay'
|
||||
import { servicePay, serviceUms, serviceDg, expandPay, expandUms, expandDg, entrustPay, entrustUms, entrustDg, synDiffPay, synDiffUms, synDiffDg, payWechat, payUms, payDg } from '@/apis/interfaces/pay'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -174,6 +174,8 @@
|
||||
apiUrl = expandDg
|
||||
} else if (this.payForm == 'entrust') {
|
||||
apiUrl = entrustDg
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
apiUrl = payDg
|
||||
}
|
||||
NewUrl = apiUrl
|
||||
}
|
||||
@@ -213,6 +215,8 @@
|
||||
apiUrl = serviceUms
|
||||
} else if (this.payForm == 'expand') {
|
||||
apiUrl = expandUms
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
apiUrl = payUms
|
||||
} else {
|
||||
apiUrl = entrustUms
|
||||
}
|
||||
@@ -265,6 +269,8 @@
|
||||
apiUrl = servicePay
|
||||
} else if (this.payForm == 'expand') {
|
||||
apiUrl = expandPay
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
apiUrl = payWechat
|
||||
} else {
|
||||
apiUrl = entrustPay
|
||||
}
|
||||
@@ -307,6 +313,9 @@
|
||||
} else if (this.payForm == 'expand') {
|
||||
// 跳到拓展单
|
||||
this.$Router.replace({name: 'ExpandOrder'})
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
// 个人中心
|
||||
this.$Router.replace({name: 'User'})
|
||||
} else {
|
||||
// 跳到委托单
|
||||
this.$Router.replace({name: 'EntrustOrder'})
|
||||
@@ -329,6 +338,11 @@
|
||||
setTimeout(()=>{
|
||||
this.$Router.replace({name: 'ExpandOrder'})
|
||||
},1000)
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
// 个人中心
|
||||
setTimeout(()=>{
|
||||
this.$Router.replace({name: 'User'})
|
||||
},1000)
|
||||
} else {
|
||||
// 跳到委托单
|
||||
setTimeout(()=>{
|
||||
@@ -349,8 +363,9 @@
|
||||
|
||||
// 获取微信授权信息-获取oppid
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webWechat/index?id=' + this.orderId + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
url: 'https://web.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webWechat/index?id=' + this.orderId + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
// url: 'http://web.douhuo.demos.uzchain.tech/webWechat/index?id=' + this.orderId + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price 最新
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
@@ -370,6 +385,9 @@
|
||||
} else if (this.payForm == 'expand') {
|
||||
// 跳到拓展单
|
||||
this.$Router.replace({name: 'ExpandOrder'})
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
// 个人中心
|
||||
this.$Router.replace({name: 'User'})
|
||||
} else {
|
||||
// 跳到委托单
|
||||
this.$Router.replace({name: 'EntrustOrder'})
|
||||
|
||||
@@ -219,6 +219,15 @@
|
||||
title: '提交成功',
|
||||
icon: "none"
|
||||
})
|
||||
|
||||
// 若价格大于0,要去支付
|
||||
let number = Number(res.price)
|
||||
if(number > 0) {
|
||||
this.$Router.replace({name: 'Pay', params: {orderId: res.order_id, orderType: res.order_type}})
|
||||
return
|
||||
}
|
||||
|
||||
// 否则直接跳转详情
|
||||
setTimeout(()=>{
|
||||
this.$Router.replace({name: 'FeeConfirm', params: {synthesisId: res.synthesis_order_id}})
|
||||
},3000)
|
||||
|
||||
@@ -243,8 +243,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -44,7 +44,11 @@
|
||||
{{item.created_at}}
|
||||
</view>
|
||||
<view class="listItem-labor-btn">
|
||||
<view @click="$Router.push({name: 'FeeConfirm', params: {synthesisId: item.synthesis_order_id}})" class="listItem-labor-go yellow">
|
||||
<view @click="$Router.push({name: 'Pay', params: {orderId: item.order_id, orderType: item.order_type}})" class="listItem-labor-go yellow" v-if="item.can.pay">
|
||||
去支付
|
||||
</view>
|
||||
|
||||
<view @click="$Router.push({name: 'FeeConfirm', params: {synthesisId: item.synthesis_order_id}})" class="listItem-labor-go yellow" v-if="item.can.look">
|
||||
查看详情
|
||||
</view>
|
||||
</view>
|
||||
@@ -78,9 +82,9 @@
|
||||
|
||||
methods: {
|
||||
// 咨询单-列表
|
||||
// status : this.yearStatus,
|
||||
yearServe(page){
|
||||
seekOrder({
|
||||
status : this.yearStatus,
|
||||
page : page || 1
|
||||
}).then(res => {
|
||||
let esArr = res.data
|
||||
|
||||
@@ -268,8 +268,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -218,8 +218,8 @@
|
||||
esignUrl({
|
||||
order_id : id,
|
||||
order_type: type,
|
||||
// redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
channel : 'h5',
|
||||
app_scheme : ''
|
||||
}).then(res => {
|
||||
|
||||
@@ -14,9 +14,10 @@
|
||||
{{userData.nickname}} <image v-if="userData.certification" class="userTop-icon" src="@/static/imgs/user_attestation.png"></image>
|
||||
</view>
|
||||
<view class="userTop-identity-tips">
|
||||
普通用户 <image class="userTop-arrow" src="@/static/imgs/use_arrow.png"></image>
|
||||
{{userData.identity.name}}<image class="userTop-arrow" src="@/static/imgs/use_arrow.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="user-vip" @click="$Router.push({name: 'vip'})">{{!userData.identity.can_open_vip && !userData.identity.can_renew_vip ? '会员权益': ''}}{{userData.identity.can_open_vip ? '开通会员': ''}}{{userData.identity.can_renew_vip ? '开通会员': ''}}</view>
|
||||
</view>
|
||||
<view class="userTop-height" v-else @click="$Router.push({name: 'Login'})">
|
||||
<view class="userTop-head">
|
||||
@@ -30,7 +31,7 @@
|
||||
</view>
|
||||
<!-- 临时 style="display: none;" -->
|
||||
<view class="userTop-see" v-if="userLogin">
|
||||
<view class="userTop-label" @click="$Router.push({name: 'sheetIndex'})">
|
||||
<!-- <view class="userTop-label" @click="$Router.push({name: 'sheetIndex'})">
|
||||
<view class="userSee-name">
|
||||
协商调解类
|
||||
</view>
|
||||
@@ -46,6 +47,31 @@
|
||||
</view>
|
||||
</block>
|
||||
<img class="userSee-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/2823f7c9ed144df424ca8ee6c47b0ff6.png">
|
||||
</view> -->
|
||||
|
||||
<view class="userTop-label" @click="$Router.push({name: 'AccountWork'})" style="display: none;">
|
||||
<view class="userSee-name">
|
||||
账户管理资讯类
|
||||
</view>
|
||||
<view class="userSee-number">
|
||||
<!-- {{ userData.business_orders_count.all ? userData.business_orders_count.all : '0'}}<text>单</text> -->
|
||||
</view>
|
||||
<view class="userSee-tips">
|
||||
客户账户管理资讯类订单
|
||||
</view>
|
||||
<img class="userSee-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/2823f7c9ed144df424ca8ee6c47b0ff6.png">
|
||||
</view>
|
||||
<view class="userTop-label" @click="$Router.push({name: 'DelegationWork'})" style="display: none;">
|
||||
<view class="userSee-name">
|
||||
委托管理类
|
||||
</view>
|
||||
<view class="userSee-number">
|
||||
<!-- {{ userData.business_orders_count.all ? userData.business_orders_count.all : '0'}}<text>单</text> -->
|
||||
</view>
|
||||
<view class="userSee-tips">
|
||||
客户委托管理类订单
|
||||
</view>
|
||||
<img class="userSee-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/2823f7c9ed144df424ca8ee6c47b0ff6.png">
|
||||
</view>
|
||||
|
||||
<view class="userTop-label" @click="$Router.push({name: 'synthesisOrder', params: {type: 'legal'}})">
|
||||
@@ -56,7 +82,8 @@
|
||||
{{synthesisAll.legal_consulting ? synthesisAll.legal_consulting : '0'}}<text>单</text>
|
||||
</view>
|
||||
<view class="userSee-tips">
|
||||
个人、企业法律
|
||||
<!-- 个人、 -->
|
||||
企业法律
|
||||
</view>
|
||||
<img class="userSee-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/84e573c04d3dcb7fa1cccefbde9bf851.png">
|
||||
</view>
|
||||
@@ -72,7 +99,7 @@
|
||||
</view>
|
||||
<img class="userSee-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/19/08e5c39f136d84e9754d4ac4d16af181.png">
|
||||
</view>
|
||||
<view class="userTop-label" @click="$Router.push({name: 'EmpowerOrder'})">
|
||||
<view class="userTop-label" @click="$Router.push({name: 'EmpowerOrder'})" style="display: none;">
|
||||
<view class="userSee-name">
|
||||
增收赋能类
|
||||
</view>
|
||||
@@ -88,7 +115,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<!-- 临时 style="display: none;" -->
|
||||
<view class="board" v-if="userLogin">
|
||||
<view class="board" v-if="userLogin" style="display: none;">
|
||||
<view class="board-title">
|
||||
数据看板
|
||||
</view>
|
||||
@@ -110,6 +137,18 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="block-flex" v-if="userData.salesman" @click="onCallPhone(userData.salesman.username)">
|
||||
<view class="block-flex-title">业务联系人</view>
|
||||
<view>{{userData.salesman.nickname || '-'}}</view>
|
||||
</view>
|
||||
<view class="block-flex" @click="$Router.push({name: 'Tema'})" v-if="userData.identity.id > 1">
|
||||
<view class="block-flex-title">我的推荐</view>
|
||||
<u-icon name="arrow-right"></u-icon>
|
||||
</view>
|
||||
<view class="block-flex" @click="qrcodeShow = true">
|
||||
<view class="block-flex-title">我的邀请码</view>
|
||||
<u-icon name="arrow-right"></u-icon>
|
||||
</view>
|
||||
<view class="tool">
|
||||
<view class="tool-title">
|
||||
其他工具
|
||||
@@ -169,22 +208,43 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 邀请码 -->
|
||||
<u-popup mode="center" closeable :show="qrcodeShow" @close="qrcodeShow = false">
|
||||
<view class="qrcode">
|
||||
<image class="qrcode-bg" src="/static/qrcode_bg.png" mode="widthFix"></image>
|
||||
<view class="qrcode-content">
|
||||
<image class="qrcode-src" :src="qrcode.qrcode" mode="aspectFit"></image>
|
||||
<view class="qrcode-footer">
|
||||
<view class="qrcode-code">{{qrcode.invite}}</view>
|
||||
<view class="qrcode-text">邀请码</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { articleList } from '@/apis/interfaces/index'
|
||||
import { userIndex } from '@/apis/interfaces/user'
|
||||
import { userIndex, userQrcode } from '@/apis/interfaces/user'
|
||||
import { synthesisCount } from '@/apis/interfaces/synthesis'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
userLogin : false, //登录状态
|
||||
userData : {}, //用户数据
|
||||
userData : {
|
||||
identity: {
|
||||
can_open_vip : false,
|
||||
can_renew_vip : false
|
||||
}
|
||||
}, //用户数据
|
||||
synthesisAll : '', // 综法数量
|
||||
listArr : [], // 文章列表
|
||||
page : {}, // 分页信息
|
||||
lodingStats : false, // 加载状态
|
||||
qrcodeShow : false, // 弹出层
|
||||
qrcode : ''
|
||||
};
|
||||
},
|
||||
|
||||
@@ -205,8 +265,9 @@
|
||||
methods:{
|
||||
// 用户信息
|
||||
userInfo() {
|
||||
userIndex().then(res => {
|
||||
this.userData = res
|
||||
Promise.all([userIndex(), userQrcode()]).then(res => {
|
||||
this.userData = res[0]
|
||||
this.qrcode = res[1]
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
@@ -215,12 +276,17 @@
|
||||
})
|
||||
},
|
||||
|
||||
// 拨打电话
|
||||
onCallPhone(e){
|
||||
wx.makePhoneCall({
|
||||
phoneNumber: e,
|
||||
fail: () => {}
|
||||
})
|
||||
},
|
||||
|
||||
// 综法订单数据数量
|
||||
synthesisInfo() {
|
||||
synthesisCount({channel: 'self'}).then(res => {
|
||||
|
||||
console.log(res)
|
||||
|
||||
this.synthesisAll = res
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
@@ -256,6 +322,30 @@
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
.qrcode{
|
||||
width: 600rpx;
|
||||
position: relative;
|
||||
.qrcode-bg{ width: 100%; vertical-align: top; }
|
||||
.qrcode-content{
|
||||
position: absolute;
|
||||
top: 290rpx;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
.qrcode-src{ width: 220rpx; height: 220rpx; background: #333; }
|
||||
.qrcode-footer{ width: 100%; padding-top: 30rpx; text-align: center; }
|
||||
.qrcode-code{ font-weight: bold; font-size: 34rpx; }
|
||||
.qrcode-text{ font-size: 28rpx; color: gray; line-height: 30rpx; }
|
||||
}
|
||||
}
|
||||
|
||||
.block-flex{
|
||||
display: flex; color: gray; font-size: 32rpx; align-items: center; justify-content: space-between; padding: 20rpx 30rpx; line-height: 60rpx;
|
||||
&-title{ color: #333; }
|
||||
}
|
||||
|
||||
.userTop {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
@@ -275,6 +365,9 @@
|
||||
box-sizing: border-box;
|
||||
.userTop-height {
|
||||
height: 110rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
.userTop-head {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
@@ -291,7 +384,7 @@
|
||||
}
|
||||
}
|
||||
.userTop-text {
|
||||
width: calc(100% - 150rpx);
|
||||
width: calc(100% - 310rpx);
|
||||
float: left;
|
||||
margin-left: 30rpx;
|
||||
padding-top: $padding - 20;
|
||||
@@ -329,6 +422,17 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.user-vip{
|
||||
background: $mian-color;
|
||||
color: white;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
width: 170rpx;
|
||||
font-size: 28rpx;
|
||||
line-height: 70rpx;
|
||||
border-radius: 35rpx;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.userTop-see {
|
||||
margin: 0 -10rpx;
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="setupItem">
|
||||
<view class="label" @click="$Router.push({name: 'Referee'})">
|
||||
<!-- <view class="label" @click="$Router.push({name: 'Referee'})">
|
||||
<view class="label-name">
|
||||
<image class="label-name-img" src="/static/imgs/zK_04.png" mode="aspectFill"></image>
|
||||
<view class="label-name-text">我的伙伴</view>
|
||||
@@ -58,7 +58,7 @@
|
||||
<view class="label-name-number" v-if="childrenCount">{{childrenCount}}</view>
|
||||
<image class="label-name-arrow" src="/static/imgs/zK_arrow.png" mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="label" @click="$Router.push({name: 'SignLog'})">
|
||||
<view class="label-name">
|
||||
<image class="label-name-img" src="/static/imgs/zK_08.png" mode="aspectFill"></image>
|
||||
@@ -68,7 +68,7 @@
|
||||
<image class="label-name-arrow" src="/static/imgs/zK_arrow.png" mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="label" @click="$Router.push({name: 'Parent'})">
|
||||
<!-- <view class="label" @click="$Router.push({name: 'Parent'})">
|
||||
<view class="label-name">
|
||||
<image class="label-name-img" src="/static/imgs/zK_05.png" mode="aspectFill"></image>
|
||||
<view class="label-name-text">业务联系人</view>
|
||||
@@ -76,7 +76,7 @@
|
||||
<view class="label-tips">
|
||||
<image class="label-name-arrow" src="/static/imgs/zK_arrow.png" mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="label" @click="delSubscribe" v-if="hasSubscribe">
|
||||
<view class="label-name">
|
||||
<image class="label-name-img" src="/static/imgs/zK_07.png" mode="aspectFill"></image>
|
||||
@@ -273,8 +273,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
215
pages/user/team.vue
Normal file
215
pages/user/team.vue
Normal file
@@ -0,0 +1,215 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<block v-if="users.length > 0">
|
||||
<view class="team-item" v-for="(item, index) in users" :key="index" @click="onCallPhone(item.real_username)">
|
||||
<u-avatar :src="item.avatar" size="48"></u-avatar>
|
||||
<view class="team-content">
|
||||
<view class="nowrap name">{{item.nickname}}</view>
|
||||
<view class="nowrap identitys">
|
||||
<text class="identity certification-y" v-if="item.certification"><image src="@/static/icon/user_nav_03.png"></image>已实名</text>
|
||||
<text class="identity identity-2" v-if="item.identity.order == 2">实习顾问</text>
|
||||
<text class="identity identity-1" v-if="item.identity.order == 1">普通用户</text>
|
||||
<text class="identity identity-3" v-if="item.identity.order == 3">顾问</text>
|
||||
</view>
|
||||
<view class="nowrap submit">联系电话:{{item.username}}</view>
|
||||
<view class="nowrap submit">注册时间:{{item.created_at}}</view>
|
||||
</view>
|
||||
<view class="mobile">
|
||||
<uni-icons class="mobile-icon" type="phone-filled" size="18" color="white"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 分页 -->
|
||||
<u-loadmore v-if="pagesShow" :status="status" />
|
||||
</block>
|
||||
<block v-else>
|
||||
<view class="list-null">
|
||||
<u-empty
|
||||
mode="data"
|
||||
icon="http://cdn.uviewui.com/uview/empty/data.png"
|
||||
text="暂无客户数据"
|
||||
>
|
||||
</u-empty>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { team } from '@/apis/interfaces/user.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabs : [],
|
||||
tabVal : 0,
|
||||
users : [],
|
||||
count : {
|
||||
all: 0
|
||||
},
|
||||
// 分页
|
||||
page : {
|
||||
current : 1,
|
||||
has_more: false,
|
||||
},
|
||||
pagesShow : false,
|
||||
status : false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 获取列表
|
||||
getList(){
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
team({
|
||||
larer : 1,
|
||||
page : this.page.current,
|
||||
}).then(res => {
|
||||
console.log(res)
|
||||
let { lists, count } = res;
|
||||
let atList = lists.page.current == 1 ? [] : this.lists
|
||||
this.count = count
|
||||
this.users = atList.concat(lists.data)
|
||||
this.page = lists.page
|
||||
this.pagesShow = false
|
||||
uni.hideLoading()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
onCallPhone(phone){
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: phone
|
||||
})
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
this.pagesShow = true;
|
||||
if(this.page.has_more){
|
||||
this.status = 'loading';
|
||||
this.page.current++
|
||||
this.getList()
|
||||
return
|
||||
}
|
||||
this.status = 'nomore';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content{
|
||||
box-sizing: border-box;
|
||||
background: white;
|
||||
padding-top: 30rpx;
|
||||
}
|
||||
// 统计数据
|
||||
.total{
|
||||
margin: 30rpx 30rpx 0;
|
||||
background: linear-gradient(to top left, #446EFE, #0f36bb);
|
||||
box-shadow: 10rpx 0 15rpx 15rpx rgba(0, 0, 0, .03);
|
||||
border-radius: 20rpx;
|
||||
padding: 50rpx;
|
||||
color: white;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.total-title{
|
||||
font-size: 28rpx;
|
||||
opacity: .8;
|
||||
padding-top: 10rpx;
|
||||
}
|
||||
.total-number{
|
||||
text-align: right;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
// 团队列表
|
||||
.team-item{
|
||||
background: white;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 30rpx;
|
||||
border-radius: 20rpx;
|
||||
margin: 0 30rpx 30rpx 30rpx;
|
||||
box-shadow: 10rpx 0 15rpx 15rpx rgba(0, 0, 0, .03);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
&::after{
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
border-radius: 15rpx;
|
||||
background: linear-gradient(to top left, #446EFE, #0f36bb);
|
||||
position: absolute;
|
||||
left: -15rpx;
|
||||
top: 30rpx;
|
||||
content: " ";
|
||||
}
|
||||
.team-content{
|
||||
width: calc( 100% - 48px - 100rpx );
|
||||
padding-left: 30rpx;
|
||||
box-sizing: border-box;
|
||||
.name{
|
||||
font-weight: bold;
|
||||
font-size: 34rpx;
|
||||
}
|
||||
.submit{
|
||||
line-height: 40rpx;
|
||||
font-size: 26rpx;
|
||||
color: gray;
|
||||
}
|
||||
.identitys{
|
||||
margin-bottom: 10rpx;
|
||||
.identity{
|
||||
font-size: 24rpx;
|
||||
border-radius: 15rpx;
|
||||
line-height: 30rpx;
|
||||
padding: 0 10rpx;
|
||||
color: white;
|
||||
margin-right: 20rpx;
|
||||
&.identity-2{
|
||||
background: #443DE2;
|
||||
}
|
||||
&.identity-1{
|
||||
background: #e1e1e1;
|
||||
}
|
||||
&.identity-3{
|
||||
background: #FEAD45;
|
||||
}
|
||||
&.certification-y{
|
||||
background: #FFF7EC;
|
||||
border-color: #FEAD45;
|
||||
color: #FEAD45;
|
||||
image{
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
vertical-align: middle;
|
||||
margin-bottom: 5rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.mobile{
|
||||
width: 100rpx;
|
||||
border-radius: 35rpx;
|
||||
margin-top: 9px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
color: white;
|
||||
background: #446EFE;
|
||||
text-align: center;
|
||||
.mobile-icon{
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 空页面
|
||||
.list-null{ height: 60vh; display: flex; align-items: center; justify-content: center; }
|
||||
</style>
|
||||
129
pages/user/vip.vue
Normal file
129
pages/user/vip.vue
Normal file
@@ -0,0 +1,129 @@
|
||||
<template>
|
||||
<view>
|
||||
<view v-if="identity != null" :style="(identity.open || identity.renew) ? 'padding-bottom:230rpx': 'padding-bottom:110rpx'">
|
||||
<image class="vip-cover" :src="identity.cover" mode="widthFix"></image>
|
||||
<view class="vip-footer">
|
||||
<view class="vip-text">
|
||||
<text class="vip-text-item">{{identity.identity_name}}</text>
|
||||
<text class="vip-text-item">到期时间: {{identity.end_at || '长期'}}</text>
|
||||
</view>
|
||||
<button class="vip-btn" v-if="identity.open || identity.renew" @click="vipShow = true">{{identity.open ? '开通': ''}}{{identity.renew ? '续费': ''}} (¥{{identity.price}}/{{identity.years}}年)</button>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 弹出层 -->
|
||||
<u-popup :show="vipShow" mode="center" :round="10" closeable @close="vipShow = false">
|
||||
<view class="vip-tips" v-if="identity != null">
|
||||
<view class="vip-tips-title">开通会员</view>
|
||||
<view class="vip-tips-price"><text class="vip-tips-price-sm">¥</text>{{identity.price}}</view>
|
||||
<view class="vip-tips-text">年限{{identity.years}}年</view>
|
||||
<input class="vip-tips-input" placeholder="请输入真实姓名" v-model="nickname" />
|
||||
<button class="vip-tips-btn" @click="onOpen">去支付</button>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { identity, vip } from '@/apis/interfaces/user'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
vipShow : false,
|
||||
identity: null,
|
||||
nickname: ""
|
||||
};
|
||||
},
|
||||
onShow(){
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
identity().then(res => {
|
||||
this.identity = res;
|
||||
uni.hideLoading()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
onOpen(){
|
||||
if(this.nickname == ''){
|
||||
uni.showToast({
|
||||
title: '请输入真实姓名',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
uni.showLoading({
|
||||
title: "获取支付...",
|
||||
mask : true
|
||||
})
|
||||
vip({ real_name: this.nickname }).then(res => {
|
||||
uni.hideLoading()
|
||||
let { order_type, order_id } = res
|
||||
this.$Router.push({
|
||||
name: "Pay",
|
||||
params: {
|
||||
orderId : order_id,
|
||||
orderType : order_type
|
||||
}
|
||||
})
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.vip-cover{ width: 100%; vertical-align: top; }
|
||||
.vip-footer{
|
||||
padding: 30rpx;
|
||||
background: #d2382c;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
.vip-text{
|
||||
color: #fff5e9;
|
||||
font-size: 30rpx;
|
||||
text-align: center;
|
||||
line-height: 50rpx;
|
||||
.vip-text-item{ padding: 0 15rpx; }
|
||||
}
|
||||
.vip-btn{
|
||||
margin-top: 30rpx;
|
||||
background: linear-gradient(to right, #fffefc, #fff0d9);
|
||||
color: #d2382c;
|
||||
font-weight: bold;
|
||||
font-size: 34rpx;
|
||||
border-radius: 45rpx;
|
||||
line-height: 90rpx;
|
||||
&::after{ display: none; }
|
||||
}
|
||||
}
|
||||
// 开通会员弹出层
|
||||
.vip-tips{
|
||||
width: 75vw;
|
||||
padding: 50rpx;
|
||||
box-sizing: border-box;
|
||||
.vip-tips-title{ text-align: center; font-weight: bold; font-size: 36rpx; padding-bottom: 30rpx; }
|
||||
.vip-tips-price{
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 50rpx;
|
||||
color: #d2382c;
|
||||
&-sm{ font-size: 80%; }
|
||||
}
|
||||
.vip-tips-text{ font-size: 30rpx; color: gray; padding-bottom: 50rpx; text-align: center; }
|
||||
.vip-tips-input{ background: #f7f8f9; border-radius: 45rpx; height: 90rpx; margin-bottom: 30rpx; padding: 0 30rpx; text-align: center; font-size: 32rpx; }
|
||||
.vip-tips-btn{ background: #d2382c; color: white; line-height: 90rpx; border-radius: 45rpx; font-weight: bold; font-size: 34rpx; }
|
||||
}
|
||||
</style>
|
||||
319
pages/work/account.vue
Normal file
319
pages/work/account.vue
Normal file
@@ -0,0 +1,319 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- tabs -->
|
||||
<u-sticky bgColor="#FFF" zIndex="9" >
|
||||
<u-tabs
|
||||
:current="tabsCurrent"
|
||||
:list="tabs"
|
||||
keyName="value"
|
||||
lineColor="#446EFE"
|
||||
:scrollable="tabs.length > 5"
|
||||
:activeStyle="{
|
||||
color: '#111',
|
||||
fontWeight: 'bold',
|
||||
fontSize: '32rpx'
|
||||
}"
|
||||
:inactiveStyle="{
|
||||
color: '#606266',
|
||||
fontSize: '30rpx'
|
||||
}"
|
||||
@click="onTabs"
|
||||
></u-tabs>
|
||||
</u-sticky>
|
||||
<!-- 订单列表 -->
|
||||
<view class="orders" v-if="orders.length > 0">
|
||||
<view class="orders-item" v-for="(item, index) in orders" :key="index">
|
||||
<view class="orders-flex">
|
||||
<view class="no nowrap" @click="copyNo(item.order_no)">
|
||||
{{item.order_no}}
|
||||
</view>
|
||||
<view class="state">{{item.status.text}}</view>
|
||||
</view>
|
||||
<view class="orders-content">
|
||||
<view class="orders-content-item">
|
||||
<label>业务名称</label>
|
||||
<view class="nowrap">{{item.item.title}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>客户姓名</label>
|
||||
<view class="nowrap">{{item.name}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>手机号码</label>
|
||||
<view class="nowrap">{{item.mobile}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>创建时间</label>
|
||||
<view class="nowrap">{{item.created_at}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item" v-if="item.paid_at != ''">
|
||||
<label>支付时间</label>
|
||||
<view class="nowrap">{{item.paid_at}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="orders-flex">
|
||||
<view class="price">¥{{item.item.price}}</view>
|
||||
<view class="btns">
|
||||
<view class="btns-item border" v-if="item.can.cancel" @click="onCancel(item)">取消订单</view>
|
||||
<view class="btns-item" v-if="item.can.pay" @click="onPay(item)">立即支付</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 分页 -->
|
||||
<u-loadmore v-if="pagesShow" :status="status" />
|
||||
</view>
|
||||
<!-- 订单是空的 -->
|
||||
<view class="order-null" v-else>
|
||||
<u-empty
|
||||
mode="order"
|
||||
icon="http://cdn.uviewui.com/uview/empty/order.png"
|
||||
text="暂无相关订单"
|
||||
>
|
||||
</u-empty>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import { accountOrder, accountCancel } from '@/apis/interfaces/index.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabs : [{ id: '', value: '全部' }],
|
||||
tabsCurrent : 0,
|
||||
tabsId : '',
|
||||
orders : [],
|
||||
pagesShow : false,
|
||||
page : {
|
||||
current : 1,
|
||||
has_more: false,
|
||||
},
|
||||
status : ''
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.getOrder()
|
||||
},
|
||||
methods: {
|
||||
// 筛选分类
|
||||
onTabs(e){
|
||||
let { id, index } = e;
|
||||
this.tabsCurrent = index
|
||||
this.tabsId = id
|
||||
this.page = { current: 1, has_more: false }
|
||||
this.getOrder()
|
||||
},
|
||||
// 获取订单列表
|
||||
getOrder(){
|
||||
let { tabsId, tabs, orders, page } = this
|
||||
accountOrder({
|
||||
manager: 1,
|
||||
status : tabsId,
|
||||
page : page.current
|
||||
}).then(res => {
|
||||
let { status, lists } = res;
|
||||
this.tabs = [{ id: '', value: '全部' }].concat(status)
|
||||
this.orders = lists.page.current == 1 ? lists.data : this.orders.concat(lists.data)
|
||||
this.page = lists.page
|
||||
this.pagesShow = false
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
// 取消订单
|
||||
onCancel(e){
|
||||
let { order_id } = e;
|
||||
uni.showModal({
|
||||
title : "提示",
|
||||
content : "确认取消当前订单嘛?",
|
||||
cancelText : "取消",
|
||||
confirmColor: "#446EFE",
|
||||
success : modalRes => {
|
||||
if(modalRes.confirm){
|
||||
uni.showLoading({
|
||||
title: "加载中...",
|
||||
mask : true
|
||||
})
|
||||
accountCancel(order_id).then(res => {
|
||||
uni.showToast({
|
||||
title: '订单已取消',
|
||||
icon : 'none'
|
||||
})
|
||||
this.page = { current: 1, has_more: false }
|
||||
this.getOrder()
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 复制订单号码
|
||||
copyNo(no){
|
||||
uni.setClipboardData({
|
||||
data : no,
|
||||
success : res => {
|
||||
uni.showToast({
|
||||
title: '订单号已复制',
|
||||
icon : 'none'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 去支付
|
||||
onPay(obj){
|
||||
let { order_id, order_type, paid_at } = obj
|
||||
if(paid_at == ''){
|
||||
this.$Router.replace({name: 'FeePay', params: {id: order_id, orderType: order_type, price: obj.item.price, payForm: 'synthesize'}})
|
||||
}
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
this.pagesShow = true;
|
||||
if(this.page.has_more){
|
||||
this.status = 'loading';
|
||||
this.page.current++
|
||||
this.getOrder()
|
||||
return
|
||||
}
|
||||
this.status = 'nomore';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.content{ background: #f7f8f9; min-height: calc(100vh - 44px); }
|
||||
// 订单列表
|
||||
.orders{
|
||||
padding: 30rpx 0 10rpx;
|
||||
.orders-item{
|
||||
margin: 0 30rpx 20rpx;
|
||||
background-color: white;
|
||||
border-radius: $radius;
|
||||
}
|
||||
.orders-content{
|
||||
padding: 20rpx 30rpx;
|
||||
.orders-content-item{
|
||||
line-height: 70rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 30rpx;
|
||||
color: #111111;
|
||||
label{
|
||||
color: #999999;
|
||||
}
|
||||
.orders-content-btn{
|
||||
color: #446EFE;
|
||||
}
|
||||
.orders-content-bottom{
|
||||
padding-right: 40rpx;
|
||||
position: relative;
|
||||
.orders-content-icon{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-content-type{
|
||||
text{
|
||||
margin-right: 30rpx;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
&::after{
|
||||
position: absolute;
|
||||
content: "/";
|
||||
width: 30rpx;
|
||||
text-align: center;
|
||||
font-size: 30rpx;
|
||||
top: 0;
|
||||
right: -30rpx;
|
||||
}
|
||||
&:last-child{
|
||||
margin-right: 0;
|
||||
&::after{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-content-block{
|
||||
background: rgba(68, 110, 254, .03);
|
||||
padding: 20rpx;
|
||||
font-size: 28rpx;
|
||||
border-radius: 10rpx;
|
||||
margin: 10rpx 0;
|
||||
.item-flex{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-flex{
|
||||
border-bottom: solid 1rpx #F6F6F6;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20rpx 30rpx;
|
||||
&:last-child{
|
||||
border-top: solid 1rpx #F6F6F6;
|
||||
border-bottom: none;
|
||||
}
|
||||
.no{
|
||||
font-size: 30rpx;
|
||||
color: #111;
|
||||
line-height: 60rpx;
|
||||
width: calc(100% - 150rpx);
|
||||
}
|
||||
.state{
|
||||
color: #446EFE;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
line-height: 60rpx;
|
||||
width: 150rpx;
|
||||
text-align: right;
|
||||
}
|
||||
.price{
|
||||
font-weight: bold;
|
||||
color: #446EFE;
|
||||
}
|
||||
.btns{
|
||||
width: 400rpx;
|
||||
text-align: right;
|
||||
.btns-item{
|
||||
display: inline-block;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
background: #446EFE;
|
||||
color: white;
|
||||
border-radius: 35rpx;
|
||||
padding: 0 30rpx;
|
||||
font-size: 30rpx;
|
||||
&.border{
|
||||
border: solid 1rpx #446EFE;
|
||||
color: #446EFE;
|
||||
background: white;
|
||||
height: 68rpx;
|
||||
line-height: 68rpx;
|
||||
&::after{ display: none;}
|
||||
}
|
||||
&:last-child{ margin-left: 30rpx; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 订单为空
|
||||
.order-null{
|
||||
height: 80vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
313
pages/work/delegation.vue
Normal file
313
pages/work/delegation.vue
Normal file
@@ -0,0 +1,313 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- tabs -->
|
||||
<u-sticky bgColor="#FFF" zIndex="9" >
|
||||
<u-tabs
|
||||
:current="tabsCurrent"
|
||||
:list="tabs"
|
||||
keyName="value"
|
||||
lineColor="#446EFE"
|
||||
:scrollable="tabs.length > 5"
|
||||
:activeStyle="{
|
||||
color: '#111',
|
||||
fontWeight: 'bold',
|
||||
fontSize: '32rpx'
|
||||
}"
|
||||
:inactiveStyle="{
|
||||
color: '#606266',
|
||||
fontSize: '30rpx'
|
||||
}"
|
||||
@click="onTabs"
|
||||
></u-tabs>
|
||||
</u-sticky>
|
||||
<!-- 订单列表 -->
|
||||
<view class="orders" v-if="orders.length > 0">
|
||||
<view class="orders-item" v-for="(item, index) in orders" :key="index">
|
||||
<view class="orders-flex">
|
||||
<view class="no nowrap" @click="copyNo(item.order_no)">
|
||||
{{item.order_no}}
|
||||
</view>
|
||||
<view class="state">{{item.status.text}}</view>
|
||||
</view>
|
||||
<view class="orders-content">
|
||||
<view class="orders-content-item">
|
||||
<label>业务名称</label>
|
||||
<view class="nowrap">{{item.item.title}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>客户姓名</label>
|
||||
<view class="nowrap">{{item.name}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>手机号码</label>
|
||||
<view class="nowrap">{{item.mobile}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>创建时间</label>
|
||||
<view class="nowrap">{{item.created_at}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item" v-if="item.paid_at != ''">
|
||||
<label>支付时间</label>
|
||||
<view class="nowrap">{{item.paid_at}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="orders-flex">
|
||||
<view class="price">¥{{item.item.price}}</view>
|
||||
<view class="btns">
|
||||
<view class="btns-item border" v-if="item.can.cancel" @click="onCancel(item)">取消订单</view>
|
||||
<view class="btns-item" v-if="item.can.pay" @click="onPay(item)">立即支付</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 分页 -->
|
||||
<u-loadmore v-if="pagesShow" :status="status" />
|
||||
</view>
|
||||
<!-- 订单是空的 -->
|
||||
<view class="order-null" v-else>
|
||||
<u-empty
|
||||
mode="order"
|
||||
icon="http://cdn.uviewui.com/uview/empty/order.png"
|
||||
text="暂无相关订单"
|
||||
>
|
||||
</u-empty>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import { delegationOrder, delegationCancel } from '@/apis/interfaces/index.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabs : [{ id: '', value: '全部' }],
|
||||
tabsCurrent : 0,
|
||||
tabsId : '',
|
||||
orders : [],
|
||||
pagesShow : false,
|
||||
page : {
|
||||
current : 1,
|
||||
has_more: false,
|
||||
},
|
||||
status : ''
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.getOrder()
|
||||
},
|
||||
methods: {
|
||||
// 筛选分类
|
||||
onTabs(e){
|
||||
let { id, index } = e;
|
||||
this.tabsCurrent = index
|
||||
this.tabsId = id
|
||||
this.page = { current: 1, has_more: false }
|
||||
this.getOrder()
|
||||
},
|
||||
// 获取订单列表
|
||||
getOrder(){
|
||||
let { tabsId, tabs, orders, page } = this
|
||||
delegationOrder({
|
||||
manager: 1,
|
||||
status : tabsId,
|
||||
page : page.current
|
||||
}).then(res => {
|
||||
let { status, lists } = res;
|
||||
this.tabs = [{ id: '', value: '全部' }].concat(status)
|
||||
this.orders = lists.page.current == 1 ? lists.data : this.orders.concat(lists.data)
|
||||
this.page = lists.page
|
||||
this.pagesShow = false
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
// 取消订单
|
||||
onCancel(e){
|
||||
let { order_id } = e;
|
||||
uni.showModal({
|
||||
title : "提示",
|
||||
content : "确认取消当前订单嘛?",
|
||||
cancelText : "取消",
|
||||
confirmColor: "#446EFE",
|
||||
success : modalRes => {
|
||||
if(modalRes.confirm){
|
||||
uni.showLoading({
|
||||
title: "加载中...",
|
||||
mask : true
|
||||
})
|
||||
delegationCancel(order_id).then(res => {
|
||||
uni.showToast({
|
||||
title: '订单已取消',
|
||||
icon : 'none'
|
||||
})
|
||||
this.page = { current: 1, has_more: false }
|
||||
this.getOrder()
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 复制订单号码
|
||||
copyNo(no){
|
||||
uni.setClipboardData({
|
||||
data : no,
|
||||
success : res => {
|
||||
uni.showToast({
|
||||
title: '订单号已复制',
|
||||
icon : 'none'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 去支付
|
||||
onPay(obj){
|
||||
let { order_id, order_type, paid_at } = obj
|
||||
if(paid_at == ''){
|
||||
this.$Router.replace({name: 'FeePay', params: {id: order_id, orderType: order_type, price: obj.item.price, payForm: 'synthesize'}})
|
||||
}
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
this.pagesShow = true;
|
||||
if(this.page.has_more){
|
||||
this.status = 'loading';
|
||||
this.page.current++
|
||||
this.getOrder()
|
||||
return
|
||||
}
|
||||
this.status = 'nomore';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.content{ background: #f7f8f9; min-height: calc(100vh - 44px); }
|
||||
|
||||
// 订单列表
|
||||
.orders{
|
||||
padding: 30rpx 0 10rpx;
|
||||
.orders-item{
|
||||
margin: 0 30rpx 20rpx;
|
||||
background-color: white;
|
||||
border-radius: $radius;
|
||||
}
|
||||
.orders-content{
|
||||
padding: 20rpx 30rpx;
|
||||
.orders-content-item{
|
||||
line-height: 70rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 30rpx;
|
||||
color: #111111;
|
||||
label{
|
||||
color: #999999;
|
||||
}
|
||||
.orders-content-btn{
|
||||
color: #446EFE;
|
||||
}
|
||||
&.orders-content-bottom{
|
||||
padding-right: 40rpx;
|
||||
position: relative;
|
||||
.orders-content-icon{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-content-type{
|
||||
text{
|
||||
margin-right: 30rpx;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
&::after{
|
||||
position: absolute;
|
||||
content: "/";
|
||||
width: 30rpx;
|
||||
text-align: center;
|
||||
font-size: 30rpx;
|
||||
top: 0;
|
||||
right: -30rpx;
|
||||
}
|
||||
&:last-child{
|
||||
margin-right: 0;
|
||||
&::after{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-content-block{
|
||||
background: rgba(68, 110, 254, .03);
|
||||
padding: 20rpx;
|
||||
font-size: 28rpx;
|
||||
border-radius: 10rpx;
|
||||
margin: 10rpx 0;
|
||||
.item-flex{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-flex{
|
||||
border-bottom: solid 1rpx #F6F6F6;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20rpx $padding;
|
||||
&:last-child{
|
||||
border-top: solid 1rpx #F6F6F6;
|
||||
border-bottom: none;
|
||||
}
|
||||
.no{
|
||||
font-size: 30rpx;
|
||||
color: #111;
|
||||
line-height: 60rpx;
|
||||
width: calc(100% - 150rpx);
|
||||
}
|
||||
.state{
|
||||
color: #446EFE;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
line-height: 60rpx;
|
||||
width: 150rpx;
|
||||
text-align: right;
|
||||
}
|
||||
.price{
|
||||
font-weight: bold;
|
||||
color: #446EFE;
|
||||
}
|
||||
.btns{
|
||||
width: 400rpx;
|
||||
text-align: right;
|
||||
.btns-item{
|
||||
display: inline-block;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
background: #446EFE;
|
||||
color: white;
|
||||
border-radius: 35rpx;
|
||||
padding: 0 30rpx;
|
||||
font-size: 30rpx;
|
||||
&.border{ border: solid 1rpx #446EFE; color: #446EFE; background: white; height: 68rpx; &::after{ display: none; } }
|
||||
&:last-child{ margin-left: 30rpx; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 订单为空
|
||||
.order-null{
|
||||
height: 80vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
@@ -32,8 +32,8 @@ router.beforeEach((to, from, next) => {
|
||||
// 检查用户是否授权了微信
|
||||
if(to.name != 'webWechatIndex' && openId === ''){
|
||||
authFollow({
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webWechat/index'
|
||||
// url: 'https://web.douhuofalv.com/webWechat/index'
|
||||
// url: 'https://web.douhuo.demos.uzchain.tech/webWechat/index',
|
||||
url: 'https://web.douhuofalv.com/webWechat/index'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
BIN
static/.DS_Store
vendored
BIN
static/.DS_Store
vendored
Binary file not shown.
BIN
static/icon/user_nav_03.png
Normal file
BIN
static/icon/user_nav_03.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.1 KiB |
BIN
static/qrcode_bg.png
Normal file
BIN
static/qrcode_bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 103 KiB |
BIN
static/vip.png
Normal file
BIN
static/vip.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
119
yarn.lock
119
yarn.lock
@@ -2,67 +2,69 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@babel/parser@^7.18.4":
|
||||
version "7.21.4"
|
||||
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17"
|
||||
integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==
|
||||
"@babel/parser@^7.23.5":
|
||||
version "7.24.4"
|
||||
resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz"
|
||||
integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==
|
||||
|
||||
"@babel/runtime@^7.17.2":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd"
|
||||
integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==
|
||||
version "7.20.13"
|
||||
resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.20.13.tgz"
|
||||
integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.11"
|
||||
|
||||
"@vue/compiler-sfc@2.7.14":
|
||||
version "2.7.14"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz#3446fd2fbb670d709277fc3ffa88efc5e10284fd"
|
||||
integrity sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==
|
||||
"@vue/compiler-sfc@2.7.16":
|
||||
version "2.7.16"
|
||||
resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz"
|
||||
integrity sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.18.4"
|
||||
"@babel/parser" "^7.23.5"
|
||||
postcss "^8.4.14"
|
||||
source-map "^0.6.1"
|
||||
optionalDependencies:
|
||||
prettier "^1.18.2 || ^2.0.0"
|
||||
|
||||
"@vue/devtools-api@^6.0.0-beta.11":
|
||||
version "6.4.5"
|
||||
resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.4.5.tgz#d54e844c1adbb1e677c81c665ecef1a2b4bb8380"
|
||||
resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz"
|
||||
integrity sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==
|
||||
|
||||
base64-arraybuffer@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc"
|
||||
resolved "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz"
|
||||
integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==
|
||||
|
||||
copy-text-to-clipboard@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz#8cbf8f90e0a47f12e4a24743736265d157bce69c"
|
||||
resolved "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz"
|
||||
integrity sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==
|
||||
|
||||
core-js@^2.6.5:
|
||||
version "2.6.12"
|
||||
resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
|
||||
resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz"
|
||||
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
|
||||
|
||||
core-js@^3.11.0:
|
||||
version "3.27.1"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.27.1.tgz#23cc909b315a6bb4e418bf40a52758af2103ba46"
|
||||
integrity sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==
|
||||
version "3.27.2"
|
||||
resolved "https://registry.npmmirror.com/core-js/-/core-js-3.27.2.tgz"
|
||||
integrity sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==
|
||||
|
||||
css-line-break@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz#bfef660dfa6f5397ea54116bb3cb4873edbc4fa0"
|
||||
resolved "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz"
|
||||
integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==
|
||||
dependencies:
|
||||
utrie "^1.0.2"
|
||||
|
||||
csstype@^3.1.0:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
|
||||
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
|
||||
version "3.1.3"
|
||||
resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
|
||||
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
|
||||
|
||||
html2canvas@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz#7cef1888311b5011d507794a066041b14669a543"
|
||||
resolved "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz"
|
||||
integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==
|
||||
dependencies:
|
||||
css-line-break "^2.1.0"
|
||||
@@ -70,80 +72,85 @@ html2canvas@^1.4.1:
|
||||
|
||||
jweixin-module@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/jweixin-module/-/jweixin-module-1.6.0.tgz#4a7ea614083e3c9c3f49e2fdc2bb882cfa58dfcd"
|
||||
resolved "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz"
|
||||
integrity sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w==
|
||||
|
||||
mutation-observer@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/mutation-observer/-/mutation-observer-1.0.3.tgz#42e9222b101bca82e5ba9d5a7acf4a14c0f263d0"
|
||||
resolved "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz"
|
||||
integrity sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==
|
||||
|
||||
nanoid@^3.3.6:
|
||||
version "3.3.6"
|
||||
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
|
||||
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
|
||||
nanoid@^3.3.7:
|
||||
version "3.3.7"
|
||||
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz"
|
||||
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
||||
|
||||
picocolors@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
|
||||
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
||||
|
||||
postcss@^8.4.14:
|
||||
version "8.4.23"
|
||||
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab"
|
||||
integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==
|
||||
version "8.4.38"
|
||||
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz"
|
||||
integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
|
||||
dependencies:
|
||||
nanoid "^3.3.6"
|
||||
nanoid "^3.3.7"
|
||||
picocolors "^1.0.0"
|
||||
source-map-js "^1.0.2"
|
||||
source-map-js "^1.2.0"
|
||||
|
||||
"prettier@^1.18.2 || ^2.0.0":
|
||||
version "2.8.8"
|
||||
resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz"
|
||||
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
|
||||
|
||||
regenerator-runtime@^0.13.11:
|
||||
version "0.13.11"
|
||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
|
||||
resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
|
||||
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
|
||||
|
||||
source-map-js@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
||||
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
||||
source-map-js@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz"
|
||||
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
|
||||
|
||||
source-map@^0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
text-segmentation@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943"
|
||||
resolved "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz"
|
||||
integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==
|
||||
dependencies:
|
||||
utrie "^1.0.2"
|
||||
|
||||
uni-read-pages@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/uni-read-pages/-/uni-read-pages-1.0.5.tgz#452c8dcaa8977bbaef600909be926c8d9704387c"
|
||||
resolved "https://registry.npmjs.org/uni-read-pages/-/uni-read-pages-1.0.5.tgz"
|
||||
integrity sha512-GkrrZ0LX0vn9R5k6RKEi0Ez3Q3e2vUpjXQ8Z6/K/d28KudI9ajqgt8WEjQFlG5EPm1K6uTArN8LlqmZTEixDUA==
|
||||
|
||||
uni-simple-router@2.0.7:
|
||||
version "2.0.7"
|
||||
resolved "https://registry.yarnpkg.com/uni-simple-router/-/uni-simple-router-2.0.7.tgz#04e0b5be6cd733a1ecb9d35a3dbe82f27f48204e"
|
||||
resolved "https://registry.npmjs.org/uni-simple-router/-/uni-simple-router-2.0.7.tgz"
|
||||
integrity sha512-8FKv5dw7Eoonm0gkO8udprrxzin0fNUI0+AvIphFkFRH5ZmP5ZWJ2pvnWzb2NiiqQSECTSU5VSB7HhvOSwD5eA==
|
||||
|
||||
utrie@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz#d42fe44de9bc0119c25de7f564a6ed1b2c87a645"
|
||||
resolved "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz"
|
||||
integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==
|
||||
dependencies:
|
||||
base64-arraybuffer "^1.0.2"
|
||||
|
||||
uview-ui@^2.0.31:
|
||||
version "2.0.35"
|
||||
resolved "https://registry.yarnpkg.com/uview-ui/-/uview-ui-2.0.35.tgz#b0e7916382e533402cfb2e86c10f2cacca22a9b4"
|
||||
integrity sha512-OfMttN3XkHvQosXfd8bjz8ASTvypPoGzBWmQZBJ871bYMCA7t2bDFPlzjbxUj/5ykAjKnZ8zMUapSwSisVt99g==
|
||||
version "2.0.31"
|
||||
resolved "https://registry.npmjs.org/uview-ui/-/uview-ui-2.0.31.tgz"
|
||||
integrity sha512-I/0fGuvtiKHH/mBb864SGYk+SJ7WaF32tsBgYgeBOsxlUp+Th+Ac2tgz2cTvsQJl6eZYWsKZ3ixiSXCAcxZ8Sw==
|
||||
|
||||
vconsole@^3.15.0:
|
||||
version "3.15.0"
|
||||
resolved "https://registry.yarnpkg.com/vconsole/-/vconsole-3.15.0.tgz#2383482b0a4106204090046ec128071284e04a90"
|
||||
resolved "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.0.tgz"
|
||||
integrity sha512-8hq7wabPcRucSWQyN7/1tthMawP9JPvM95zgtMHpPknMMMCKj+abpoK7P7oKK4B0qw58C24Mdvo9+raUdpHyVQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.17.2"
|
||||
@@ -153,23 +160,23 @@ vconsole@^3.15.0:
|
||||
|
||||
vue-canvas-poster@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.npmmirror.com/vue-canvas-poster/-/vue-canvas-poster-1.2.1.tgz#1a0cb97d7daa76442f724a685ce5578a97a6b557"
|
||||
resolved "https://registry.npmmirror.com/vue-canvas-poster/-/vue-canvas-poster-1.2.1.tgz"
|
||||
integrity sha512-YY5ygbeQSqhiJyj6QXYgSRZ6Ywhvi1gVsfcvBIoCx4Yq9E/gAV32uOhnZz45qsklP86uGc9ypKJAXiX6Dzrdxw==
|
||||
dependencies:
|
||||
core-js "^2.6.5"
|
||||
vue "^2.6.10"
|
||||
|
||||
vue@^2.6.10:
|
||||
version "2.7.14"
|
||||
resolved "https://registry.npmmirror.com/vue/-/vue-2.7.14.tgz#3743dcd248fd3a34d421ae456b864a0246bafb17"
|
||||
integrity sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==
|
||||
version "2.7.16"
|
||||
resolved "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz"
|
||||
integrity sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==
|
||||
dependencies:
|
||||
"@vue/compiler-sfc" "2.7.14"
|
||||
"@vue/compiler-sfc" "2.7.16"
|
||||
csstype "^3.1.0"
|
||||
|
||||
vuex@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/vuex/-/vuex-4.1.0.tgz#aa1b3ea5c7385812b074c86faeeec2217872e36c"
|
||||
resolved "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz"
|
||||
integrity sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==
|
||||
dependencies:
|
||||
"@vue/devtools-api" "^6.0.0-beta.11"
|
||||
|
||||
Reference in New Issue
Block a user