CRM微信小程序
This commit is contained in:
parent
8b678de6b5
commit
37a9b927dd
@ -1,4 +1,4 @@
|
||||
export const VUE_APP_API_URL = 'http://localhost:48081/admin-api'
|
||||
export const VUE_APP_API_URL = 'http://192.168.0.179:48080/admin-api'
|
||||
//export const VUE_APP_API_URL = 'https://apicrm.yixiang.co/admin-api'
|
||||
export const VUE_APP_RESOURCES_URL = 'https://h5.yixiang.co/static'
|
||||
export const VUE_APP_UPLOAD_URL = VUE_APP_API_URL + '/infra/file/upload'
|
||||
@ -18,25 +18,25 @@ const orderListStatus = {}
|
||||
// -1:已退款
|
||||
|
||||
export const orderStatus = {
|
||||
0: '未支付',
|
||||
1: '待发货',
|
||||
2: '待收货',
|
||||
3: '待评价',
|
||||
4: '已完成',
|
||||
5: '退款中',
|
||||
6: '已退款',
|
||||
7: '退款',
|
||||
0: '未支付',
|
||||
1: '待发货',
|
||||
2: '待收货',
|
||||
3: '待评价',
|
||||
4: '已完成',
|
||||
5: '退款中',
|
||||
6: '已退款',
|
||||
7: '退款',
|
||||
}
|
||||
|
||||
export const orderReStatus = {
|
||||
0: '等待买家付款',
|
||||
// 1: '等待卖家发货',
|
||||
1: '卖家已发货',
|
||||
2: '等待买家待评价',
|
||||
3: '订单已完成',
|
||||
4: '订单退款中',
|
||||
5: '订单已退款',
|
||||
6: '退款已完成',
|
||||
0: '等待买家付款',
|
||||
// 1: '等待卖家发货',
|
||||
1: '卖家已发货',
|
||||
2: '等待买家待评价',
|
||||
3: '订单已完成',
|
||||
4: '订单退款中',
|
||||
5: '订单已退款',
|
||||
6: '退款已完成',
|
||||
}
|
||||
|
||||
// export const orderReStatus = {
|
||||
@ -48,4 +48,4 @@ export const orderReStatus = {
|
||||
// 5: '订单退款中',
|
||||
// 6: '订单已退款',
|
||||
// 7: '退款已完成',
|
||||
// }
|
||||
// }
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name" : "yshop-miniapp",
|
||||
"appid" : "__UNI__ADC0FB0",
|
||||
"name" : "中鼐智能CRM",
|
||||
"appid" : "__UNI__D50CF97",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.0",
|
||||
"versionCode" : 1,
|
||||
@ -401,7 +401,7 @@
|
||||
"quickapp" : {},
|
||||
/* 小程序特有相关 */
|
||||
"mp-weixin" : {
|
||||
"appid" : "wx604d2ea4702620d2",
|
||||
"appid" : "wx91fcb30adb2df321",
|
||||
"setting" : {
|
||||
"urlCheck" : false
|
||||
},
|
||||
|
591
package-lock.json
generated
591
package-lock.json
generated
@ -1,8 +1,587 @@
|
||||
{
|
||||
"name": "yshop-miniapp",
|
||||
"version": "1.2.0",
|
||||
"lockfileVersion": 1,
|
||||
"name": "yshop-crm-miniapp",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "yshop-crm-miniapp",
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@vant/area-data": "^1.5.0",
|
||||
"add": "^2.0.6",
|
||||
"flyio": "^0.6.14",
|
||||
"jweixin-module": "^1.6.0",
|
||||
"pinia": "^2.1.6",
|
||||
"vant": "^4.6.2",
|
||||
"weixin-js-sdk": "^1.6.3",
|
||||
"yarn": "^1.22.19"
|
||||
}
|
||||
},
|
||||
"node_modules/@vant/area-data": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vant/area-data/-/area-data-1.5.0.tgz",
|
||||
"integrity": "sha512-SWmDhYmWiOgtAgtJqcW7N4XyGgrg/7l6t1+XSgt8BkPp2oOKO1ZUn8+46brLpT/gzRe/v8BtyTLmdBwMamrmQw=="
|
||||
},
|
||||
"node_modules/@vant/popperjs": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
|
||||
"integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
|
||||
},
|
||||
"node_modules/@vant/use": {
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.5.2.tgz",
|
||||
"integrity": "sha512-CBK61iT568dCHUwFFsErGbW6/5tmrPnZJKGtcSy7Tjcrmws8Ku+YZo7IUFD9Xkj9MfSJ4pfhQ7pU2KouP5Cojg==",
|
||||
"peerDependencies": {
|
||||
"vue": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/devtools-api": {
|
||||
"version": "6.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
|
||||
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz",
|
||||
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
|
||||
},
|
||||
"node_modules/add": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmmirror.com/add/-/add-2.0.6.tgz",
|
||||
"integrity": "sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q=="
|
||||
},
|
||||
"node_modules/ajv": {
|
||||
"version": "6.12.6",
|
||||
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
|
||||
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
||||
"dependencies": {
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/epoberezkin"
|
||||
}
|
||||
},
|
||||
"node_modules/asn1": {
|
||||
"version": "0.2.6",
|
||||
"resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz",
|
||||
"integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
|
||||
"dependencies": {
|
||||
"safer-buffer": "~2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
|
||||
"engines": {
|
||||
"node": ">=0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"node_modules/aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/aws4": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz",
|
||||
"integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
|
||||
},
|
||||
"node_modules/bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
"integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
|
||||
"dependencies": {
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"node_modules/caseless": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz",
|
||||
"integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
|
||||
},
|
||||
"node_modules/combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"dependencies": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
|
||||
},
|
||||
"node_modules/dashdash": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz",
|
||||
"integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
|
||||
"dependencies": {
|
||||
"assert-plus": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
"integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
|
||||
"dependencies": {
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
|
||||
},
|
||||
"node_modules/extsprintf": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
"integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
|
||||
"engines": [
|
||||
"node >=0.6.0"
|
||||
]
|
||||
},
|
||||
"node_modules/fast-deep-equal": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
|
||||
},
|
||||
"node_modules/fast-json-stable-stringify": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
||||
},
|
||||
"node_modules/flyio": {
|
||||
"version": "0.6.14",
|
||||
"resolved": "https://registry.npmmirror.com/flyio/-/flyio-0.6.14.tgz",
|
||||
"integrity": "sha512-RE2OXE1ZZmcXOKb0jCtGyquHDxpAqHg17CZ8lmQKRfl3x1kP+NBpaQDx4WgN7DNpLJjFnspTzTEQpwRGg6/xaA==",
|
||||
"dependencies": {
|
||||
"request": "^2.85.0"
|
||||
}
|
||||
},
|
||||
"node_modules/forever-agent": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz",
|
||||
"integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"dependencies": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.12"
|
||||
}
|
||||
},
|
||||
"node_modules/getpass": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz",
|
||||
"integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
|
||||
"dependencies": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/har-schema": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/har-validator": {
|
||||
"version": "5.1.5",
|
||||
"resolved": "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz",
|
||||
"integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
|
||||
"deprecated": "this library is no longer supported",
|
||||
"dependencies": {
|
||||
"ajv": "^6.12.3",
|
||||
"har-schema": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
|
||||
"dependencies": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"jsprim": "^1.2.2",
|
||||
"sshpk": "^1.7.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.8",
|
||||
"npm": ">=1.3.7"
|
||||
}
|
||||
},
|
||||
"node_modules/is-typedarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
||||
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
|
||||
},
|
||||
"node_modules/isstream": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz",
|
||||
"integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
|
||||
},
|
||||
"node_modules/jsbn": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz",
|
||||
"integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
|
||||
},
|
||||
"node_modules/json-schema": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz",
|
||||
"integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
|
||||
},
|
||||
"node_modules/json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
|
||||
},
|
||||
"node_modules/json-stringify-safe": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
|
||||
},
|
||||
"node_modules/jsprim": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz",
|
||||
"integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
|
||||
"dependencies": {
|
||||
"assert-plus": "1.0.0",
|
||||
"extsprintf": "1.3.0",
|
||||
"json-schema": "0.4.0",
|
||||
"verror": "1.10.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/jweixin-module": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmmirror.com/jweixin-module/-/jweixin-module-1.6.0.tgz",
|
||||
"integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
|
||||
},
|
||||
"node_modules/mime-db": {
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-types": {
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"dependencies": {
|
||||
"mime-db": "1.52.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/oauth-sign": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
|
||||
},
|
||||
"node_modules/pinia": {
|
||||
"version": "2.1.6",
|
||||
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.6.tgz",
|
||||
"integrity": "sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==",
|
||||
"dependencies": {
|
||||
"@vue/devtools-api": "^6.5.0",
|
||||
"vue-demi": ">=0.14.5"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/posva"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.4.0",
|
||||
"typescript": ">=4.4.4",
|
||||
"vue": "^2.6.14 || ^3.3.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
},
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/psl": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz",
|
||||
"integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
|
||||
},
|
||||
"node_modules/punycode": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz",
|
||||
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.5.3",
|
||||
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz",
|
||||
"integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/request": {
|
||||
"version": "2.88.2",
|
||||
"resolved": "https://registry.npmmirror.com/request/-/request-2.88.2.tgz",
|
||||
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
|
||||
"deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
|
||||
"dependencies": {
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.8.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.6",
|
||||
"extend": "~3.0.2",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.2",
|
||||
"har-validator": "~5.1.3",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.19",
|
||||
"oauth-sign": "~0.9.0",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.2",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"tough-cookie": "~2.5.0",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.3.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/safe-buffer": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"node_modules/sshpk": {
|
||||
"version": "1.17.0",
|
||||
"resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz",
|
||||
"integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
|
||||
"dependencies": {
|
||||
"asn1": "~0.2.3",
|
||||
"assert-plus": "^1.0.0",
|
||||
"bcrypt-pbkdf": "^1.0.0",
|
||||
"dashdash": "^1.12.0",
|
||||
"ecc-jsbn": "~0.1.1",
|
||||
"getpass": "^0.1.1",
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.0.2",
|
||||
"tweetnacl": "~0.14.0"
|
||||
},
|
||||
"bin": {
|
||||
"sshpk-conv": "bin/sshpk-conv",
|
||||
"sshpk-sign": "bin/sshpk-sign",
|
||||
"sshpk-verify": "bin/sshpk-verify"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tough-cookie": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
||||
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
|
||||
"dependencies": {
|
||||
"psl": "^1.1.28",
|
||||
"punycode": "^2.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
|
||||
"dependencies": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||
"integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
|
||||
},
|
||||
"node_modules/uri-js": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
|
||||
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
|
||||
"dependencies": {
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
||||
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
|
||||
"bin": {
|
||||
"uuid": "bin/uuid"
|
||||
}
|
||||
},
|
||||
"node_modules/vant": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmmirror.com/vant/-/vant-4.6.2.tgz",
|
||||
"integrity": "sha512-6EHCCAGM5a9VVzpBg/wZNPDFmJ8T1a4k29DPNcEMW3X670awW3rnD7+/x3dw+bE17JhhSg49V/+fQwBP2iQkAg==",
|
||||
"dependencies": {
|
||||
"@vant/popperjs": "^1.3.0",
|
||||
"@vant/use": "^1.5.1",
|
||||
"@vue/shared": "^3.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/verror": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz",
|
||||
"integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
|
||||
"engines": [
|
||||
"node >=0.6.0"
|
||||
],
|
||||
"dependencies": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"core-util-is": "1.0.2",
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/verror/node_modules/extsprintf": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.4.1.tgz",
|
||||
"integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==",
|
||||
"engines": [
|
||||
"node >=0.6.0"
|
||||
]
|
||||
},
|
||||
"node_modules/vue-demi": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz",
|
||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.1",
|
||||
"vue": "^3.0.0-0 || ^2.6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/weixin-js-sdk": {
|
||||
"version": "1.6.3",
|
||||
"resolved": "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.3.tgz",
|
||||
"integrity": "sha512-5jYNtVcxWmgHNqCLSPoX6vXab9G4RPDZx0klX8IsVwGjDTwx/UDmgfF7fkRMGguRpuFv0O7tk1jb+Oay2QiV1w=="
|
||||
},
|
||||
"node_modules/yarn": {
|
||||
"version": "1.22.19",
|
||||
"resolved": "https://registry.npmmirror.com/yarn/-/yarn-1.22.19.tgz",
|
||||
"integrity": "sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ==",
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"yarn": "bin/yarn.js",
|
||||
"yarnpkg": "bin/yarn.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@vant/area-data": {
|
||||
"version": "1.5.0",
|
||||
@ -17,7 +596,8 @@
|
||||
"@vant/use": {
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.5.2.tgz",
|
||||
"integrity": "sha512-CBK61iT568dCHUwFFsErGbW6/5tmrPnZJKGtcSy7Tjcrmws8Ku+YZo7IUFD9Xkj9MfSJ4pfhQ7pU2KouP5Cojg=="
|
||||
"integrity": "sha512-CBK61iT568dCHUwFFsErGbW6/5tmrPnZJKGtcSy7Tjcrmws8Ku+YZo7IUFD9Xkj9MfSJ4pfhQ7pU2KouP5Cojg==",
|
||||
"requires": {}
|
||||
},
|
||||
"@vue/devtools-api": {
|
||||
"version": "6.5.0",
|
||||
@ -407,7 +987,8 @@
|
||||
"vue-demi": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz",
|
||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA=="
|
||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
|
||||
"requires": {}
|
||||
},
|
||||
"weixin-js-sdk": {
|
||||
"version": "1.6.3",
|
||||
|
545
pages.json
545
pages.json
@ -1,59 +1,53 @@
|
||||
{
|
||||
"pages": [
|
||||
{
|
||||
"path": "pages/index/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path" : "pages/customer/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "客户",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/mine/mine",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "我的",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/msg/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "消息",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
],
|
||||
"pages": [{
|
||||
"path": "pages/index/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/customer/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/mine/mine",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/msg/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "消息",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
],
|
||||
"subPackages": [{
|
||||
"root": "pages/components",
|
||||
"pages": [ {
|
||||
"pages": [{
|
||||
"path": "pages/business/businessDetails",
|
||||
"style": {
|
||||
"navigationBarTitleText": "商机详情",
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/business/selectProduct",
|
||||
"style": {
|
||||
"navigationBarTitleText": "选择商品",
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
|
||||
},
|
||||
},
|
||||
{
|
||||
"path": "pages/business/selectProduct",
|
||||
"style": {
|
||||
"navigationBarTitleText": "选择商品",
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/business/followUp",
|
||||
"style": {
|
||||
@ -76,8 +70,8 @@
|
||||
"navigationBarBackgroundColor": "#ffffff",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
},
|
||||
{
|
||||
},
|
||||
{
|
||||
"path": "pages/login/login",
|
||||
"style": {
|
||||
"navigationBarTitleText": "登录",
|
||||
@ -99,15 +93,15 @@
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/customer/repeat",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户查重",
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
"path": "pages/customer/repeat",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户查重",
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/customer/detail",
|
||||
"style": {
|
||||
@ -132,8 +126,8 @@
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
},
|
||||
{
|
||||
},
|
||||
{
|
||||
"path": "pages/clues/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "线索",
|
||||
@ -147,231 +141,210 @@
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
},{
|
||||
"path": "pages/clues/add",
|
||||
"style": {
|
||||
"navigationBarTitleText": "添加线索",
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
}
|
||||
,{
|
||||
"path" : "pages/clues/cluesDetails",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "线索详情",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/clues/detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "线索详情",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/clues/open",
|
||||
"style": {
|
||||
"navigationBarTitleText": "线索池",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/contract/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "合同",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
}, {
|
||||
"path": "pages/contract/add",
|
||||
"style": {
|
||||
"navigationBarTitleText": "添加合同",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
}
|
||||
,{
|
||||
"path" : "pages/receivables/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "回款",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/receivables/add",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "回款添加",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/invoice/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "发票",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/invoice/add",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "申请发票",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/customer/open",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "公海客户",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/contacts/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "联系人",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/contacts/detail",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "联系人详情",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/contacts/addPerson",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "添加联系人",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/product/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "商品",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/mine/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "设置",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/mine/list",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "通知",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/mine/news",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "通知详情",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/mine/edit",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "修改个人信息",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/mine/pass",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "修改密码",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/msg/wait",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "待办事项",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path" : "pages/msg/exam",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "审批管理",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/clues/add",
|
||||
"style": {
|
||||
"navigationBarTitleText": "添加线索",
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"path": "pages/clues/cluesDetails",
|
||||
"style": {
|
||||
"navigationBarTitleText": "线索详情",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/clues/detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "线索详情",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/clues/open",
|
||||
"style": {
|
||||
"navigationBarTitleText": "线索池",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/contract/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "合同",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
}, {
|
||||
"path": "pages/contract/add",
|
||||
"style": {
|
||||
"navigationBarTitleText": "添加合同",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
}, {
|
||||
"path": "pages/receivables/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "回款",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/receivables/add",
|
||||
"style": {
|
||||
"navigationBarTitleText": "回款添加",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/invoice/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "发票",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/invoice/add",
|
||||
"style": {
|
||||
"navigationBarTitleText": "申请发票",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/customer/open",
|
||||
"style": {
|
||||
"navigationBarTitleText": "公海客户",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/contacts/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "联系人",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/contacts/detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "联系人详情",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/contacts/addPerson",
|
||||
"style": {
|
||||
"navigationBarTitleText": "添加联系人",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/product/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "商品",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "设置",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/list",
|
||||
"style": {
|
||||
"navigationBarTitleText": "通知",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/news",
|
||||
"style": {
|
||||
"navigationBarTitleText": "通知详情",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/edit",
|
||||
"style": {
|
||||
"navigationBarTitleText": "修改个人信息",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/pass",
|
||||
"style": {
|
||||
"navigationBarTitleText": "修改密码",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/msg/wait",
|
||||
"style": {
|
||||
"navigationBarTitleText": "待办事项",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/msg/exam",
|
||||
"style": {
|
||||
"navigationBarTitleText": "审批管理",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
]
|
||||
}],
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": " ",
|
||||
"navigationBarBackgroundColor": "#F8F8F8",
|
||||
"backgroundColor": "#F8F8F8",
|
||||
"navigationStyle": "custom"
|
||||
},
|
||||
"tabBar": {
|
||||
"color": "#919293",
|
||||
"selectedColor": "#09b4f1",
|
||||
"backgroundColor": "#fff",
|
||||
"borderStyle": "black",
|
||||
"list": [{
|
||||
"pagePath": "pages/index/index",
|
||||
"text": "首页",
|
||||
"iconPath": "static/images/tabBar/index.png",
|
||||
"selectedIconPath": "static/images/tabBar/index_selected.png"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/customer/index",
|
||||
"text": "客户",
|
||||
"iconPath": "static/images/tabBar/customer.png",
|
||||
"selectedIconPath": "static/images/tabBar/customer-selected.png"
|
||||
}, {
|
||||
"pagePath": "pages/msg/index",
|
||||
"text": "消息",
|
||||
"iconPath": "static/images/tabBar/msg.png",
|
||||
"selectedIconPath": "static/images/tabBar/msg-select.png"
|
||||
}, {
|
||||
"pagePath": "pages/mine/mine",
|
||||
"text": "我的",
|
||||
"iconPath": "static/images/tabBar/mine.png",
|
||||
"selectedIconPath": "static/images/tabBar/mine_selected.png"
|
||||
}
|
||||
]
|
||||
},
|
||||
"uniIdRouter": {}
|
||||
}
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": " ",
|
||||
"navigationBarBackgroundColor": "#F8F8F8",
|
||||
"backgroundColor": "#F8F8F8",
|
||||
"navigationStyle": "custom"
|
||||
},
|
||||
"tabBar": {
|
||||
"color": "#919293",
|
||||
"selectedColor": "#09b4f1",
|
||||
"backgroundColor": "#fff",
|
||||
"borderStyle": "black",
|
||||
"list": [{
|
||||
"pagePath": "pages/index/index",
|
||||
"text": "首页",
|
||||
"iconPath": "static/images/tabBar/index.png",
|
||||
"selectedIconPath": "static/images/tabBar/index_selected.png"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/customer/index",
|
||||
"text": "客户",
|
||||
"iconPath": "static/images/tabBar/customer.png",
|
||||
"selectedIconPath": "static/images/tabBar/customer-selected.png"
|
||||
}, {
|
||||
"pagePath": "pages/msg/index",
|
||||
"text": "消息",
|
||||
"iconPath": "static/images/tabBar/msg.png",
|
||||
"selectedIconPath": "static/images/tabBar/msg-select.png"
|
||||
}, {
|
||||
"pagePath": "pages/mine/mine",
|
||||
"text": "我的",
|
||||
"iconPath": "static/images/tabBar/mine.png",
|
||||
"selectedIconPath": "static/images/tabBar/mine_selected.png"
|
||||
}
|
||||
]
|
||||
},
|
||||
"uniIdRouter": {}
|
||||
}
|
@ -1,222 +1,229 @@
|
||||
<template>
|
||||
<layout>
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<uv-navbar
|
||||
:fixed="false"
|
||||
:title="title"
|
||||
left-arrow
|
||||
@leftClick="$onClickLeft"
|
||||
/>
|
||||
<!-- #endif -->
|
||||
<view class="wrap">
|
||||
<view class="top"></view>
|
||||
<view class="content">
|
||||
<view class="title">意象CRM</view>
|
||||
<view class="font-size-base text-center text-color-assist mt-1 mb-5 ">实现线索到回款全流程管理</view>
|
||||
|
||||
<view class="text-color-assist mb-2">账户</view>
|
||||
<uv-input placeholder="请输入账户" prefixIcon="account" border="bottom" v-model="username"></uv-input>
|
||||
<view class="text-color-assist mt-5 mb-2">密码</view>
|
||||
<uv-input placeholder="请输入密码" type="password" prefixIcon="lock" border="bottom" v-model="password"></uv-input>
|
||||
|
||||
<button @tap="submit" style="" type="primary" class="login">立即登录</button>
|
||||
|
||||
</view>
|
||||
<!-- <view class="buttom">
|
||||
<view class="hint">
|
||||
<radio value="isChecked" @tap.stop="onChange" />
|
||||
我已经阅读并遵守
|
||||
<text class="link" @tap="serv(29,'用户协议')">《用户协议》</text>与
|
||||
<text class="link" @tap="serv(30,'隐私政策')">《隐私政策》</text>
|
||||
</view>
|
||||
</view> -->
|
||||
<uv-toast ref="uToast"></uv-toast>
|
||||
</view>
|
||||
</layout>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
ref,
|
||||
computed
|
||||
} from 'vue'
|
||||
import { onLoad,onShow} from '@dcloudio/uni-app'
|
||||
import { useMainStore } from '@/store/store'
|
||||
import {
|
||||
userLogin
|
||||
} from '@/api/auth'
|
||||
import * as util from '@/utils/util'
|
||||
import { mobile as testMobible } from '@/uni_modules/uv-ui-tools/libs/function/test'
|
||||
import cookie from '@/utils/cookie'
|
||||
import router from '@/utils/router'
|
||||
const main = useMainStore()
|
||||
const title = ref('登录')
|
||||
const username = ref('admin')
|
||||
const password = ref('admin123')
|
||||
const isChecked = ref(false)
|
||||
const openid = ref(main.openid)
|
||||
const uToast = ref()
|
||||
|
||||
|
||||
|
||||
|
||||
onShow(() => {
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
if(!openid.value){
|
||||
//wechatMiniLogin();
|
||||
}
|
||||
|
||||
// #endif
|
||||
})
|
||||
|
||||
|
||||
|
||||
const check = () => {
|
||||
if(!isChecked.value){
|
||||
uToast.value.show({
|
||||
message: '请勾选下面协议',
|
||||
type: 'error'
|
||||
});
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 提交
|
||||
const submit = () => {
|
||||
if (username.value == '') {
|
||||
uToast.value.show({
|
||||
message: '请填写账户',
|
||||
type: 'error'
|
||||
});
|
||||
return
|
||||
}
|
||||
|
||||
if (password.value == '') {
|
||||
uToast.value.show({
|
||||
message: '请填写密码',
|
||||
type: 'error'
|
||||
});
|
||||
return
|
||||
}
|
||||
|
||||
login()
|
||||
|
||||
}
|
||||
|
||||
// 登录
|
||||
const login = async () => {
|
||||
let data = await userLogin({
|
||||
username: username.value,
|
||||
password: password.value,
|
||||
socialType: 34
|
||||
})
|
||||
if (data) {
|
||||
// uni.setStorage({
|
||||
// key: 'userinfo',
|
||||
// data: data.userInfo
|
||||
// });
|
||||
uni.setStorage({
|
||||
key: 'accessToken',
|
||||
data: data.accessToken
|
||||
});
|
||||
// main.SET_MEMBER(data.userInfo);
|
||||
main.SET_TOKEN(data.accessToken);
|
||||
uToast.value.show({
|
||||
message: '登录成功',
|
||||
type: 'success'
|
||||
});
|
||||
|
||||
setTimeout(function() {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}, 2000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const onChange = () => {
|
||||
isChecked.value = !isChecked.value
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.wrap {
|
||||
background-color: #ffffff;
|
||||
font-size: 28rpx;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
padding-bottom: 100rpx;
|
||||
.content {
|
||||
width: 600rpx;
|
||||
margin: 0 auto;
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-size: 50rpx;
|
||||
font-weight: 500;
|
||||
padding-top: 100rpx;
|
||||
color: #09b4f1;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.login {
|
||||
background-color: #09b4f1;
|
||||
color: #ffffff;
|
||||
border-radius: 50rem !important;
|
||||
font-size: 26rpx;
|
||||
padding: 8rpx 0;
|
||||
margin-top: 40rpx;
|
||||
&::after {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
.alternative {
|
||||
color: $uv-tips-color;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
}
|
||||
.buttom {
|
||||
bottom: 0;
|
||||
.loginType {
|
||||
padding: 30rpx 80rpx;
|
||||
//justify-content:space-between;
|
||||
|
||||
.login-btn {
|
||||
background-color: #1aad19!important;
|
||||
width: 100%;
|
||||
font-size: 26rpx;
|
||||
border-radius: 50rem !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 8rpx 0;
|
||||
text-align: center;
|
||||
image {
|
||||
width: 36rpx;
|
||||
height: 30rpx;
|
||||
margin-right: 10rpx;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.hint {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 20rpx 40rpx;
|
||||
font-size: 20rpx;
|
||||
color: $uv-tips-color;
|
||||
|
||||
.link {
|
||||
color: $uv-warning;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<layout>
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<uv-navbar :fixed="false" :title="title" left-arrow @leftClick="$onClickLeft" />
|
||||
<!-- #endif -->
|
||||
<view class="wrap">
|
||||
<view class="top"></view>
|
||||
<view class="content">
|
||||
<view class="title">意象CRM</view>
|
||||
<view class="font-size-base text-center text-color-assist mt-1 mb-5 ">实现线索到回款全流程管理</view>
|
||||
|
||||
<view class="text-color-assist mb-2">账户</view>
|
||||
<uv-input placeholder="请输入账户" prefixIcon="account" border="bottom" v-model="username"></uv-input>
|
||||
<view class="text-color-assist mt-5 mb-2">密码</view>
|
||||
<uv-input placeholder="请输入密码" type="password" prefixIcon="lock" border="bottom" v-model="password"></uv-input>
|
||||
|
||||
<button @tap="submit" style="" type="primary" class="login">立即登录</button>
|
||||
|
||||
</view>
|
||||
<!-- <view class="buttom">
|
||||
<view class="hint">
|
||||
<radio value="isChecked" @tap.stop="onChange" />
|
||||
我已经阅读并遵守
|
||||
<text class="link" @tap="serv(29,'用户协议')">《用户协议》</text>与
|
||||
<text class="link" @tap="serv(30,'隐私政策')">《隐私政策》</text>
|
||||
</view>
|
||||
</view> -->
|
||||
<uv-toast ref="uToast"></uv-toast>
|
||||
</view>
|
||||
</layout>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
ref,
|
||||
computed
|
||||
} from 'vue'
|
||||
import {
|
||||
onLoad,
|
||||
onShow
|
||||
} from '@dcloudio/uni-app'
|
||||
import {
|
||||
useMainStore
|
||||
} from '@/store/store'
|
||||
import {
|
||||
userLogin
|
||||
} from '@/api/auth'
|
||||
import * as util from '@/utils/util'
|
||||
import {
|
||||
mobile as testMobible
|
||||
} from '@/uni_modules/uv-ui-tools/libs/function/test'
|
||||
import cookie from '@/utils/cookie'
|
||||
import router from '@/utils/router'
|
||||
const main = useMainStore()
|
||||
const title = ref('登录')
|
||||
const username = ref('admin')
|
||||
const password = ref('admin123')
|
||||
const isChecked = ref(false)
|
||||
const openid = ref(main.openid)
|
||||
const uToast = ref()
|
||||
|
||||
|
||||
|
||||
|
||||
onShow(() => {
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
if (!openid.value) {
|
||||
//wechatMiniLogin();
|
||||
}
|
||||
|
||||
// #endif
|
||||
})
|
||||
|
||||
|
||||
|
||||
const check = () => {
|
||||
if (!isChecked.value) {
|
||||
uToast.value.show({
|
||||
message: '请勾选下面协议',
|
||||
type: 'error'
|
||||
});
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 提交
|
||||
const submit = () => {
|
||||
if (username.value == '') {
|
||||
uToast.value.show({
|
||||
message: '请填写账户',
|
||||
type: 'error'
|
||||
});
|
||||
return
|
||||
}
|
||||
|
||||
if (password.value == '') {
|
||||
uToast.value.show({
|
||||
message: '请填写密码',
|
||||
type: 'error'
|
||||
});
|
||||
return
|
||||
}
|
||||
|
||||
login()
|
||||
|
||||
}
|
||||
|
||||
// 登录
|
||||
const login = async () => {
|
||||
let data = await userLogin({
|
||||
username: username.value,
|
||||
password: password.value,
|
||||
socialType: 34
|
||||
})
|
||||
if (data) {
|
||||
// uni.setStorage({
|
||||
// key: 'userinfo',
|
||||
// data: data.userInfo
|
||||
// });
|
||||
uni.setStorage({
|
||||
key: 'accessToken',
|
||||
data: data.accessToken
|
||||
});
|
||||
// main.SET_MEMBER(data.userInfo);
|
||||
main.SET_TOKEN(data.accessToken);
|
||||
uToast.value.show({
|
||||
message: '登录成功',
|
||||
type: 'success'
|
||||
});
|
||||
|
||||
setTimeout(function() {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}, 2000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const onChange = () => {
|
||||
isChecked.value = !isChecked.value
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.wrap {
|
||||
background-color: #ffffff;
|
||||
font-size: 28rpx;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
padding-bottom: 100rpx;
|
||||
|
||||
.content {
|
||||
width: 600rpx;
|
||||
margin: 0 auto;
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-size: 50rpx;
|
||||
font-weight: 500;
|
||||
padding-top: 100rpx;
|
||||
color: #09b4f1;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.login {
|
||||
background-color: #09b4f1;
|
||||
color: #ffffff;
|
||||
border-radius: 50rem !important;
|
||||
font-size: 26rpx;
|
||||
padding: 8rpx 0;
|
||||
margin-top: 40rpx;
|
||||
|
||||
&::after {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.alternative {
|
||||
color: $uv-tips-color;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.buttom {
|
||||
bottom: 0;
|
||||
|
||||
.loginType {
|
||||
padding: 30rpx 80rpx;
|
||||
//justify-content:space-between;
|
||||
|
||||
.login-btn {
|
||||
background-color: #1aad19 !important;
|
||||
width: 100%;
|
||||
font-size: 26rpx;
|
||||
border-radius: 50rem !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 8rpx 0;
|
||||
text-align: center;
|
||||
|
||||
image {
|
||||
width: 36rpx;
|
||||
height: 30rpx;
|
||||
margin-right: 10rpx;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.hint {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 20rpx 40rpx;
|
||||
font-size: 20rpx;
|
||||
color: $uv-tips-color;
|
||||
|
||||
.link {
|
||||
color: $uv-warning;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,17 +1,16 @@
|
||||
<template>
|
||||
<uv-navbar leftIcon="" :safeAreaInsetTop="true" :fixed="false" bgColor="#09b4f1">
|
||||
<template v-slot:center>
|
||||
<view class="slot-wrap">
|
||||
<uv-search placeholder="请输入搜索客户名称" v-model="keyword" bgColor="#ffffff" :showAction="false"
|
||||
:customStyle="customStyle" @focus="onSearch"></uv-search>
|
||||
</view>
|
||||
</template>
|
||||
</uv-navbar>
|
||||
<template>
|
||||
<uv-navbar leftIcon="" :safeAreaInsetTop="true" :fixed="false" bgColor="#09b4f1">
|
||||
<template v-slot:center>
|
||||
<view class="slot-wrap">
|
||||
<uv-search placeholder="请输入搜索客户名称" v-model="keyword" bgColor="#ffffff" :showAction="false"
|
||||
:customStyle="customStyle" @focus="onSearch"></uv-search>
|
||||
</view>
|
||||
</template>
|
||||
</uv-navbar>
|
||||
|
||||
<view class="container">
|
||||
|
||||
<view class="top" style="background-color: #09b4f1;">
|
||||
<view class="statusBar" :is-back="false" style="height: 30rpx;" ></view>
|
||||
<view class="statusBar" :is-back="false" style="height: 30rpx;"></view>
|
||||
</view>
|
||||
<!-- 待办 -->
|
||||
<view class="notice">
|
||||
@ -27,449 +26,469 @@
|
||||
<view class="title flex">
|
||||
<text>常用功能</text>
|
||||
</view>
|
||||
<uv-grid :col="4" :border="false" @click="onGrid" >
|
||||
<uv-grid-item v-for="(item, index) in toolIcons2" :key="index" :customStyle="customStyle2" @click="item.name == '客户' ? gopage2(item.url) : gopage(item.url)">
|
||||
<uv-icon :name="item.icon" :size="30" ></uv-icon>
|
||||
<uv-grid :col="4" :border="false" @click="onGrid">
|
||||
<uv-grid-item v-for="(item, index) in toolIcons2" :key="index" :customStyle="customStyle2"
|
||||
@click="item.name == '客户' ? gopage2(item.url) : gopage(item.url)">
|
||||
<uv-icon :name="item.icon" :size="30"></uv-icon>
|
||||
<text class="p-1 font-size-sm">{{ item.name }}</text>
|
||||
</uv-grid-item>
|
||||
</uv-grid>
|
||||
</view>
|
||||
|
||||
<view class="region mt-3" style="margin-top: 20rpx;">
|
||||
<view class="title flex">
|
||||
<text>数据简报</text>
|
||||
</view>
|
||||
<uv-grid :col="3" :border="false" @click="onGrid" >
|
||||
<uv-grid-item v-for="(item, index) in toolIcons3" :key="index" :customStyle="customStyle2">
|
||||
<text class="p-1 font-size-sm">{{ item.name }}</text>
|
||||
<text class="p-1 font-size-sm">{{ item.count }}</text>
|
||||
</uv-grid-item>
|
||||
</uv-grid>
|
||||
</view>
|
||||
<view class="region mt-3" style="margin-top: 20rpx;">
|
||||
<view class="title flex">
|
||||
<text>业绩目标</text>
|
||||
<view class="flex align-center">
|
||||
<uv-switch v-model="isContract" size="18" inactiveColor="#5ac725" @change="changeChart"></uv-switch>
|
||||
<view class="ml-1">
|
||||
<uv-text size="14" text="合同" color="#3c9cff" v-if="isContract"></uv-text>
|
||||
<uv-text size="14" text="回款" type="success" v-else></uv-text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<uv-row>
|
||||
<uv-col span="8">
|
||||
<qiun-data-charts
|
||||
type="gauge"
|
||||
:opts="opts"
|
||||
:chartData="chartData"
|
||||
/>
|
||||
</uv-col>
|
||||
<uv-col span="4">
|
||||
<view class="mb-4">
|
||||
<view class="text-color-assist font-size-medium mb-2">目标金额</view>
|
||||
<view>¥{{isContract ? chartCountData.contractMoney : chartCountData.receivablesMoney}}</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="text-color-assist font-size-medium mb-2">完成金额</view>
|
||||
<view>¥{{isContract ? chartCountData.contractSuccessMoney : chartCountData.receivablesSuccessMoney}}</view>
|
||||
</view>
|
||||
</uv-col>
|
||||
</uv-row>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<view class="region mt-3" style="margin-top: 20rpx;">
|
||||
<view class="title flex">
|
||||
<text>数据简报</text>
|
||||
</view>
|
||||
<uv-grid :col="3" :border="false" @click="onGrid">
|
||||
<uv-grid-item v-for="(item, index) in toolIcons3" :key="index" :customStyle="customStyle2">
|
||||
<text class="p-1 font-size-sm">{{ item.name }}</text>
|
||||
<text class="p-1 font-size-sm">{{ item.count }}</text>
|
||||
</uv-grid-item>
|
||||
</uv-grid>
|
||||
</view>
|
||||
<view class="region mt-3" style="margin-top: 20rpx;">
|
||||
<view class="title flex">
|
||||
<text>业绩目标</text>
|
||||
<view class="flex align-center">
|
||||
<uv-switch v-model="isContract" size="18" inactiveColor="#5ac725" @change="changeChart"></uv-switch>
|
||||
<view class="ml-1">
|
||||
<uv-text size="14" text="合同" color="#3c9cff" v-if="isContract"></uv-text>
|
||||
<uv-text size="14" text="回款" type="success" v-else></uv-text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<uv-row>
|
||||
<uv-col span="8">
|
||||
<qiun-data-charts type="gauge" :opts="opts" :chartData="chartData" />
|
||||
</uv-col>
|
||||
<uv-col span="4">
|
||||
<view class="mb-4">
|
||||
<view class="text-color-assist font-size-medium mb-2">目标金额</view>
|
||||
<view>¥{{isContract ? chartCountData.contractMoney : chartCountData.receivablesMoney}}</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="text-color-assist font-size-medium mb-2">完成金额</view>
|
||||
<view>¥{{isContract ? chartCountData.contractSuccessMoney : chartCountData.receivablesSuccessMoney}}</view>
|
||||
</view>
|
||||
</uv-col>
|
||||
</uv-row>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {ref,computed} from 'vue'
|
||||
import { onLoad,onShow} from '@dcloudio/uni-app'
|
||||
import { useMainStore } from '@/store/store'
|
||||
import { storeToRefs } from 'pinia'
|
||||
import {
|
||||
indexCount,
|
||||
indexChartCount
|
||||
} from '@/api/index'
|
||||
const main = useMainStore()
|
||||
const statusBarHeight = ref(0)
|
||||
const rightSafeArea = ref(0)
|
||||
statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight
|
||||
|
||||
const windowInfo = uni.getWindowInfo()
|
||||
const { left } = uni.getMenuButtonBoundingClientRect()
|
||||
rightSafeArea.value = windowInfo.windowWidth - left + 'px'
|
||||
const customStyle = computed(() =>{
|
||||
return {
|
||||
//width:'100%'
|
||||
// paddingLeft:'20rpx',
|
||||
paddingRight: rightSafeArea.value
|
||||
}
|
||||
})
|
||||
const customStyle2 = computed(() =>{
|
||||
return {
|
||||
paddingBottom:'40rpx',
|
||||
// paddingRight:'180rpx'
|
||||
}
|
||||
})
|
||||
const toolIcons = ref([
|
||||
{
|
||||
name: '公海客户',
|
||||
icon: '/static/images/index002.png',
|
||||
url: '/pages/components/pages/customer/open',
|
||||
},
|
||||
{
|
||||
name: '线索',
|
||||
icon: '/static/images/index003.png',
|
||||
url: '/pages/components/pages/clues/index',
|
||||
},
|
||||
{
|
||||
name: '跟进记录',
|
||||
icon: '/static/images/index004.png',
|
||||
url: '/pages/components/pages/record/index',
|
||||
},
|
||||
{
|
||||
name: '合同',
|
||||
icon: '/static/images/index006.png',
|
||||
url: '/pages/components/pages/contract/index',
|
||||
}
|
||||
])
|
||||
|
||||
const toolIcons2 = ref([
|
||||
{
|
||||
name: '客户',
|
||||
icon: '/static/images/1.png',
|
||||
url: '/pages/customer/index',
|
||||
},
|
||||
{
|
||||
name: '商机',
|
||||
icon: '/static/images/2.png',
|
||||
url: '/pages/components/pages/business/index',
|
||||
},
|
||||
{
|
||||
name: '线索池',
|
||||
icon: '/static/images/3.png',
|
||||
url: '/pages/components/pages/clues/open',
|
||||
},
|
||||
{
|
||||
name: '联系人',
|
||||
icon: '/static/images/4.png',
|
||||
url: '/pages/components/pages/contacts/index',
|
||||
},
|
||||
{
|
||||
name: '回款',
|
||||
icon: '/static/images/5.png',
|
||||
url: '/pages/components/pages/receivables/index',
|
||||
},
|
||||
{
|
||||
name: '查重',
|
||||
icon: '/static/images/6.png',
|
||||
url: '/pages/components/pages/customer/repeat',
|
||||
},
|
||||
{
|
||||
name: '发票',
|
||||
icon: '/static/images/7.png',
|
||||
url: '/pages/components/pages/invoice/index',
|
||||
},
|
||||
{
|
||||
name: '产品',
|
||||
icon: '/static/images/8.png',
|
||||
url: '/pages/components/pages/product/index',
|
||||
},
|
||||
])
|
||||
|
||||
const countData = ref({})
|
||||
|
||||
const toolIcons3 = ref([
|
||||
{
|
||||
name: '新增商机',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '新增线索',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '新增客户',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '新增跟进',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '新增合同',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '合同金额',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '回款金额',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '新增联系人',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '客户成交量',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '客户未成交量',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '商机成交量',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '商机未成交量',
|
||||
count: 0,
|
||||
}
|
||||
])
|
||||
|
||||
|
||||
const chartData = ref(
|
||||
{
|
||||
categories: [{"value":0.2,"color":"#1890ff"},{"value":0.8,"color":"#2fc25b"},{"value":1,"color":"#f04864"}],
|
||||
series: [
|
||||
{
|
||||
name: "完成率",
|
||||
data: 0.2
|
||||
}
|
||||
]
|
||||
}
|
||||
)
|
||||
|
||||
const opts = ref(
|
||||
{
|
||||
color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
|
||||
padding: undefined,
|
||||
title: {
|
||||
name: "完成率",
|
||||
fontSize: 25,
|
||||
color: "#2fc25b",
|
||||
offsetY: 0
|
||||
},
|
||||
subtitle: {
|
||||
name: "200%",
|
||||
fontSize: 15,
|
||||
color: "#1890ff",
|
||||
offsetY: 0
|
||||
},
|
||||
extra: {
|
||||
gauge: {
|
||||
type: "progress",
|
||||
width: 15,
|
||||
labelColor: "#666666",
|
||||
startAngle: 0.75,
|
||||
endAngle: 0.25,
|
||||
startNumber: 0,
|
||||
endNumber: 100,
|
||||
labelFormat: "",
|
||||
splitLine: {
|
||||
fixRadius: -10,
|
||||
splitNumber: 10,
|
||||
width: 15,
|
||||
color: "#FFFFFF",
|
||||
childNumber: 5,
|
||||
childWidth: 12
|
||||
},
|
||||
pointer: {
|
||||
width: 24,
|
||||
color: "auto"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
const isContract = ref(true)
|
||||
const chartCountData = ref({})
|
||||
|
||||
onShow(()=>{
|
||||
getData()
|
||||
getChart()
|
||||
})
|
||||
|
||||
const getChart = async() => {
|
||||
let data = await indexChartCount({type:2,year:2024,month:0})
|
||||
chartCountData.value = data
|
||||
let resData = data.contractPer
|
||||
chartData.value.series[0].data = resData > 100 ? 1 : resData/100
|
||||
opts.value.subtitle.name = resData+"%"
|
||||
}
|
||||
|
||||
const changeChart = () => {
|
||||
let resData = isContract.value ? chartCountData.value.contractPer : chartCountData.value.receivablesPer
|
||||
chartData.value.series[0].data = resData > 100 ? 1 : resData/100
|
||||
opts.value.subtitle.name = resData+"%"
|
||||
}
|
||||
|
||||
const getData = async() => {
|
||||
let data = await indexCount()
|
||||
let brieCount= data.brieCountVO
|
||||
toolIcons3.value[0].count = brieCount.count01
|
||||
toolIcons3.value[1].count = brieCount.count02
|
||||
toolIcons3.value[2].count = brieCount.count03
|
||||
toolIcons3.value[3].count = brieCount.count04
|
||||
toolIcons3.value[4].count = brieCount.count05
|
||||
toolIcons3.value[5].count = brieCount.count06
|
||||
toolIcons3.value[6].count = brieCount.count07
|
||||
toolIcons3.value[7].count = brieCount.count08
|
||||
toolIcons3.value[8].count = brieCount.count09
|
||||
toolIcons3.value[9].count = brieCount.count10
|
||||
toolIcons3.value[10].count = brieCount.count11
|
||||
toolIcons3.value[11].count = brieCount.count12
|
||||
main.SET_INDEX_COUNT(data)
|
||||
let count = brieCount.count13+data.contractCheckCount + data.invoiceCheckCount + data.receivablesCheckCount + data.followBusinessCount + data.followCluesCount + data.followCustomerCount
|
||||
//let str = count > 0 ? count + '' : ''
|
||||
if(count > 0){
|
||||
uni.setTabBarBadge({
|
||||
index: 2,
|
||||
text: count + ''
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
const onSearch = () => {
|
||||
gopage2('/pages/customer/index')
|
||||
}
|
||||
|
||||
const gopage = (url) => {
|
||||
uni.navigateTo({
|
||||
url
|
||||
})
|
||||
}
|
||||
|
||||
const gopage2 = (url) =>{
|
||||
uni.switchTab({
|
||||
url
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
ref,
|
||||
computed
|
||||
} from 'vue'
|
||||
import {
|
||||
onLoad,
|
||||
onShow
|
||||
} from '@dcloudio/uni-app'
|
||||
import {
|
||||
useMainStore
|
||||
} from '@/store/store'
|
||||
import {
|
||||
storeToRefs
|
||||
} from 'pinia'
|
||||
import {
|
||||
indexCount,
|
||||
indexChartCount
|
||||
} from '@/api/index'
|
||||
const main = useMainStore()
|
||||
const statusBarHeight = ref(0)
|
||||
const rightSafeArea = ref(0)
|
||||
statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight
|
||||
|
||||
const windowInfo = uni.getWindowInfo()
|
||||
const {
|
||||
left
|
||||
} = uni.getMenuButtonBoundingClientRect()
|
||||
rightSafeArea.value = windowInfo.windowWidth - left + 'px'
|
||||
const customStyle = computed(() => {
|
||||
return {
|
||||
//width:'100%'
|
||||
// paddingLeft:'20rpx',
|
||||
paddingRight: rightSafeArea.value
|
||||
}
|
||||
})
|
||||
const customStyle2 = computed(() => {
|
||||
return {
|
||||
paddingBottom: '40rpx',
|
||||
// paddingRight:'180rpx'
|
||||
}
|
||||
})
|
||||
const toolIcons = ref([{
|
||||
name: '公海客户',
|
||||
icon: '/static/images/index002.png',
|
||||
url: '/pages/components/pages/customer/open',
|
||||
},
|
||||
{
|
||||
name: '线索',
|
||||
icon: '/static/images/index003.png',
|
||||
url: '/pages/components/pages/clues/index',
|
||||
},
|
||||
{
|
||||
name: '跟进记录',
|
||||
icon: '/static/images/index004.png',
|
||||
url: '/pages/components/pages/record/index',
|
||||
},
|
||||
{
|
||||
name: '合同',
|
||||
icon: '/static/images/index006.png',
|
||||
url: '/pages/components/pages/contract/index',
|
||||
}
|
||||
])
|
||||
|
||||
const toolIcons2 = ref([{
|
||||
name: '客户',
|
||||
icon: '/static/images/1.png',
|
||||
url: '/pages/customer/index',
|
||||
},
|
||||
{
|
||||
name: '商机',
|
||||
icon: '/static/images/2.png',
|
||||
url: '/pages/components/pages/business/index',
|
||||
},
|
||||
{
|
||||
name: '线索池',
|
||||
icon: '/static/images/3.png',
|
||||
url: '/pages/components/pages/clues/open',
|
||||
},
|
||||
{
|
||||
name: '联系人',
|
||||
icon: '/static/images/4.png',
|
||||
url: '/pages/components/pages/contacts/index',
|
||||
},
|
||||
{
|
||||
name: '回款',
|
||||
icon: '/static/images/5.png',
|
||||
url: '/pages/components/pages/receivables/index',
|
||||
},
|
||||
{
|
||||
name: '查重',
|
||||
icon: '/static/images/6.png',
|
||||
url: '/pages/components/pages/customer/repeat',
|
||||
},
|
||||
{
|
||||
name: '发票',
|
||||
icon: '/static/images/7.png',
|
||||
url: '/pages/components/pages/invoice/index',
|
||||
},
|
||||
{
|
||||
name: '产品',
|
||||
icon: '/static/images/8.png',
|
||||
url: '/pages/components/pages/product/index',
|
||||
},
|
||||
])
|
||||
|
||||
const countData = ref({})
|
||||
|
||||
const toolIcons3 = ref([{
|
||||
name: '新增商机',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '新增线索',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '新增客户',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '新增跟进',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '新增合同',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '合同金额',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '回款金额',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '新增联系人',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '客户成交量',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '客户未成交量',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '商机成交量',
|
||||
count: 0,
|
||||
},
|
||||
{
|
||||
name: '商机未成交量',
|
||||
count: 0,
|
||||
}
|
||||
])
|
||||
|
||||
|
||||
const chartData = ref({
|
||||
categories: [{
|
||||
"value": 0.2,
|
||||
"color": "#1890ff"
|
||||
}, {
|
||||
"value": 0.8,
|
||||
"color": "#2fc25b"
|
||||
}, {
|
||||
"value": 1,
|
||||
"color": "#f04864"
|
||||
}],
|
||||
series: [{
|
||||
name: "完成率",
|
||||
data: 0.2
|
||||
}]
|
||||
})
|
||||
|
||||
const opts = ref({
|
||||
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4", "#ea7ccc"],
|
||||
padding: undefined,
|
||||
title: {
|
||||
name: "完成率",
|
||||
fontSize: 25,
|
||||
color: "#2fc25b",
|
||||
offsetY: 0
|
||||
},
|
||||
subtitle: {
|
||||
name: "200%",
|
||||
fontSize: 15,
|
||||
color: "#1890ff",
|
||||
offsetY: 0
|
||||
},
|
||||
extra: {
|
||||
gauge: {
|
||||
type: "progress",
|
||||
width: 15,
|
||||
labelColor: "#666666",
|
||||
startAngle: 0.75,
|
||||
endAngle: 0.25,
|
||||
startNumber: 0,
|
||||
endNumber: 100,
|
||||
labelFormat: "",
|
||||
splitLine: {
|
||||
fixRadius: -10,
|
||||
splitNumber: 10,
|
||||
width: 15,
|
||||
color: "#FFFFFF",
|
||||
childNumber: 5,
|
||||
childWidth: 12
|
||||
},
|
||||
pointer: {
|
||||
width: 24,
|
||||
color: "auto"
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
const isContract = ref(true)
|
||||
const chartCountData = ref({})
|
||||
|
||||
onShow(() => {
|
||||
getData()
|
||||
getChart()
|
||||
})
|
||||
|
||||
const getChart = async () => {
|
||||
let data = await indexChartCount({
|
||||
type: 2,
|
||||
year: 2024,
|
||||
month: 0
|
||||
})
|
||||
chartCountData.value = data
|
||||
let resData = data.contractPer
|
||||
chartData.value.series[0].data = resData > 100 ? 1 : resData / 100
|
||||
opts.value.subtitle.name = resData + "%"
|
||||
}
|
||||
|
||||
const changeChart = () => {
|
||||
let resData = isContract.value ? chartCountData.value.contractPer : chartCountData.value.receivablesPer
|
||||
chartData.value.series[0].data = resData > 100 ? 1 : resData / 100
|
||||
opts.value.subtitle.name = resData + "%"
|
||||
}
|
||||
|
||||
const getData = async () => {
|
||||
let data = await indexCount()
|
||||
let brieCount = data.brieCountVO
|
||||
toolIcons3.value[0].count = brieCount.count01
|
||||
toolIcons3.value[1].count = brieCount.count02
|
||||
toolIcons3.value[2].count = brieCount.count03
|
||||
toolIcons3.value[3].count = brieCount.count04
|
||||
toolIcons3.value[4].count = brieCount.count05
|
||||
toolIcons3.value[5].count = brieCount.count06
|
||||
toolIcons3.value[6].count = brieCount.count07
|
||||
toolIcons3.value[7].count = brieCount.count08
|
||||
toolIcons3.value[8].count = brieCount.count09
|
||||
toolIcons3.value[9].count = brieCount.count10
|
||||
toolIcons3.value[10].count = brieCount.count11
|
||||
toolIcons3.value[11].count = brieCount.count12
|
||||
main.SET_INDEX_COUNT(data)
|
||||
let count = brieCount.count13 + data.contractCheckCount + data.invoiceCheckCount + data.receivablesCheckCount +
|
||||
data.followBusinessCount + data.followCluesCount + data.followCustomerCount
|
||||
//let str = count > 0 ? count + '' : ''
|
||||
if (count > 0) {
|
||||
uni.setTabBarBadge({
|
||||
index: 2,
|
||||
text: count + ''
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
const onSearch = () => {
|
||||
gopage2('/pages/customer/index')
|
||||
}
|
||||
|
||||
const gopage = (url) => {
|
||||
uni.navigateTo({
|
||||
url
|
||||
})
|
||||
}
|
||||
|
||||
const gopage2 = (url) => {
|
||||
uni.switchTab({
|
||||
url
|
||||
})
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.container {
|
||||
background-color: #F7F7F7 !important;
|
||||
padding-bottom: 50px;
|
||||
min-height: 100vh;
|
||||
}
|
||||
.container {
|
||||
background-color: #F7F7F7 !important;
|
||||
padding-bottom: 50px;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.top {
|
||||
height: 110rpx;
|
||||
/* #ifdef H5 */
|
||||
height: 360rpx;
|
||||
/* #endif */
|
||||
color: #fff;
|
||||
}
|
||||
.top {
|
||||
height: 110rpx;
|
||||
/* #ifdef H5 */
|
||||
height: 360rpx;
|
||||
/* #endif */
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.notice {
|
||||
margin: -56px 8px 10px 8px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
padding: 15px 0px;
|
||||
.title {
|
||||
padding: 20rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: 500;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.region {
|
||||
background-color: #fff;
|
||||
border-radius: 12px;
|
||||
margin: 0 10px;
|
||||
padding: 8px 5px;
|
||||
.title {
|
||||
padding: 28rpx 20rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: 500;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.plus {
|
||||
background-color: #FFF0ED;
|
||||
border-radius: 10rpx;
|
||||
padding: 15rpx;
|
||||
}
|
||||
.nape {
|
||||
width: 48%;
|
||||
border-radius: 8px;
|
||||
background-color: #FBFBFB;
|
||||
padding: 30rpx 20rpx 30rpx 35rpx;
|
||||
margin-bottom: 15rpx;
|
||||
&:nth-child(2n+1){
|
||||
margin-right: 4%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.item-padding {
|
||||
padding: 45rpx 0;
|
||||
}
|
||||
.gray {
|
||||
color: #BFBFBF;
|
||||
}
|
||||
.slot-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 30rpx;
|
||||
flex:1
|
||||
}
|
||||
.statusBar {
|
||||
position: relative;
|
||||
}
|
||||
.arrow-icon {
|
||||
position: absolute;
|
||||
bottom: 16px;
|
||||
left: 10px;
|
||||
}
|
||||
.notice {
|
||||
margin: -50px 8px 10px 8px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
padding: 15px 0px;
|
||||
|
||||
.charts-box{
|
||||
.charts {
|
||||
width: 100%;
|
||||
height:300px;
|
||||
}
|
||||
.introduce {
|
||||
justify-content: space-between;
|
||||
padding: 45rpx 12px;
|
||||
.text {
|
||||
.title {
|
||||
padding: 20rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: 500;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.screen {
|
||||
}
|
||||
|
||||
.region {
|
||||
background-color: #fff;
|
||||
border-radius: 12px;
|
||||
margin: 0 10px;
|
||||
padding: 8px 5px;
|
||||
|
||||
.title {
|
||||
padding: 28rpx 20rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: 500;
|
||||
background-color: #fff;
|
||||
padding: 10rpx 32rpx;
|
||||
border-radius: 60rpx;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.plus {
|
||||
background-color: #FFF0ED;
|
||||
border-radius: 10rpx;
|
||||
padding: 15rpx;
|
||||
}
|
||||
|
||||
.nape {
|
||||
width: 48%;
|
||||
border-radius: 8px;
|
||||
background-color: #FBFBFB;
|
||||
padding: 30rpx 20rpx 30rpx 35rpx;
|
||||
margin-bottom: 15rpx;
|
||||
|
||||
&:nth-child(2n+1) {
|
||||
margin-right: 4%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.target {
|
||||
margin-top: -60rpx;
|
||||
justify-content: space-around;
|
||||
.text {
|
||||
background-color: #D7D7D7;
|
||||
font-size: 25rpx;
|
||||
padding: 10rpx 20rpx;
|
||||
border-radius: 20rpx;
|
||||
|
||||
.item-padding {
|
||||
padding: 45rpx 0;
|
||||
}
|
||||
|
||||
.gray {
|
||||
color: #BFBFBF;
|
||||
}
|
||||
|
||||
.slot-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 30rpx;
|
||||
flex: 1
|
||||
}
|
||||
|
||||
.statusBar {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.arrow-icon {
|
||||
position: absolute;
|
||||
bottom: 16px;
|
||||
left: 10px;
|
||||
}
|
||||
|
||||
.charts-box {
|
||||
.charts {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.introduce {
|
||||
justify-content: space-between;
|
||||
padding: 45rpx 12px;
|
||||
|
||||
.text {
|
||||
font-size: 30rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.screen {
|
||||
font-size: 30rpx;
|
||||
font-weight: 500;
|
||||
background-color: #fff;
|
||||
padding: 10rpx 32rpx;
|
||||
border-radius: 60rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.target {
|
||||
margin-top: -60rpx;
|
||||
justify-content: space-around;
|
||||
|
||||
.text {
|
||||
background-color: #D7D7D7;
|
||||
font-size: 25rpx;
|
||||
padding: 10rpx 20rpx;
|
||||
border-radius: 20rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
</style>
|
Loading…
Reference in New Issue
Block a user