first
|
|
@ -0,0 +1,12 @@
|
||||||
|
# https://editorconfig.org
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
APP_BASE_URL=
|
||||||
|
APP_WEBSOCKET=
|
||||||
|
APP_COMPANY_ID=
|
||||||
|
APP_PLATFORM=
|
||||||
|
APP_CUSTOM_SERVER=
|
||||||
|
APP_HOME_PAGE=
|
||||||
|
APP_TRACK=youshu
|
||||||
|
APP_YOUSHU_TOKEN=bi281e87ab2424481a
|
||||||
|
APP_ID=
|
||||||
|
APP_MAP_KEY=
|
||||||
|
APP_MAP_NAME=
|
||||||
|
APP_IMAGE_CDN=
|
||||||
|
APP_DIANWU_URL=
|
||||||
|
APP_MERCHANT_URL=
|
||||||
|
APP_ADAPAY=
|
||||||
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
APP_BASE_URL=http://47.103.169.154:8080/api/h5app/wxapp
|
||||||
|
APP_WEBSOCKET=wss://http://47.103.169.154:8080/ws
|
||||||
|
APP_COMPANY_ID=1
|
||||||
|
APP_PLATFORM=standard
|
||||||
|
APP_CUSTOM_SERVER=http://47.103.169.154:8081/
|
||||||
|
APP_HOME_PAGE=/pages/index
|
||||||
|
APP_TRACK=youshu
|
||||||
|
APP_YOUSHU_TOKEN=bi281e87ab2424481a
|
||||||
|
# APP_ID=wx3e1c17c88abf3e45
|
||||||
|
APP_ID=wx55ff808ba0e28b1d
|
||||||
|
APP_MAP_KEY=1ccc1ebc947719886f0cd766d70241fe
|
||||||
|
APP_MAP_NAME=oneX新零售门店定位
|
||||||
|
APP_IMAGE_CDN=https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop
|
||||||
|
APP_IMAGE_CDN_NEW=https://espier-oss-cdn.oss-cn-shanghai.aliyuncs.com/default_project/wxAssets
|
||||||
|
APP_DIANWU_URL=
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
APP_BASE_URL=https://ecshopx1.shopex123.com/api/h5app/wxapp
|
||||||
|
APP_WEBSOCKET=wss://ecshopx1.shopex123.com/ws
|
||||||
|
APP_COMPANY_ID=1
|
||||||
|
APP_PLATFORM=standard
|
||||||
|
APP_CUSTOM_SERVER=https://ecshopx-h5.ex-sandbox.com/
|
||||||
|
APP_HOME_PAGE=/pages/index
|
||||||
|
APP_TRACK=youshu
|
||||||
|
APP_YOUSHU_TOKEN=bi281e87ab2424481a
|
||||||
|
# APP_ID=wx3e1c17c88abf3e45
|
||||||
|
APP_ID=wx55ff808ba0e28b1d
|
||||||
|
APP_MAP_KEY=1ccc1ebc947719886f0cd766d70241fe
|
||||||
|
APP_MAP_NAME=oneX新零售门店定位
|
||||||
|
APP_IMAGE_CDN=https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop
|
||||||
|
APP_DIANWU_URL=
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
APP_BASE_URL=http://47.103.169.154:8080/api/h5app/wxapp
|
||||||
|
APP_WEBSOCKET=wss://http://47.103.169.154:8080/ws
|
||||||
|
APP_COMPANY_ID=1
|
||||||
|
APP_PLATFORM=standard
|
||||||
|
APP_CUSTOM_SERVER=http://47.103.169.154:8081/
|
||||||
|
APP_HOME_PAGE=/pages/index
|
||||||
|
APP_TRACK=youshu
|
||||||
|
APP_YOUSHU_TOKEN=bi281e87ab2424481a
|
||||||
|
# APP_ID=wx3e1c17c88abf3e45
|
||||||
|
APP_ID=wx55ff808ba0e28b1d
|
||||||
|
APP_MAP_KEY=1ccc1ebc947719886f0cd766d70241fe
|
||||||
|
APP_MAP_NAME=oneX新零售门店定位
|
||||||
|
APP_IMAGE_CDN=https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop
|
||||||
|
APP_IMAGE_CDN_NEW=https://espier-oss-cdn.oss-cn-shanghai.aliyuncs.com/default_project/wxAssets
|
||||||
|
APP_DIANWU_URL=
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
APP_PUBLIC_PATH=https://d9lg74id8h8so.cloudfront.net
|
||||||
|
APP_CDN=aws
|
||||||
|
APP_CDN_PATH=ecshopx-vshop/
|
||||||
|
APP_CDN_KEY=AKIASILBYII236LRO6AB
|
||||||
|
APP_CDN_SCERET=dar3rfReYgMVWRQKAmg91y8tF/xLLPySfbZe66Qv
|
||||||
|
APP_CDN_REGION=ap-southeast-2
|
||||||
|
APP_CDN_BUCKET=unat-bucket
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
module.exports = {
|
||||||
|
extends: ["taro"],
|
||||||
|
rules: {
|
||||||
|
"no-unused-vars": ["error", { varsIgnorePattern: "Taro" }],
|
||||||
|
// "space-before-function-paren": [1, "always"],
|
||||||
|
"import/no-named-as-default": 0,
|
||||||
|
"react/react-in-jsx-scope": 0
|
||||||
|
},
|
||||||
|
parser: "babel-eslint",
|
||||||
|
globals: {
|
||||||
|
TARO_APP: false,
|
||||||
|
wx: false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
.temp/
|
||||||
|
.rn_temp/
|
||||||
|
node_modules/
|
||||||
|
.DS_Store
|
||||||
|
.idea/
|
||||||
|
.h5_dev_dist
|
||||||
|
release.*
|
||||||
|
dist_iwa.zip
|
||||||
|
sitemap.json
|
||||||
|
dist/
|
||||||
|
.app_modules.*
|
||||||
|
.husky
|
||||||
|
.history
|
||||||
|
.swc
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"trailingComma": "none",
|
||||||
|
"semi": false,
|
||||||
|
"singleQuote": true,
|
||||||
|
"jsxSingleQuote": true,
|
||||||
|
"arrowParens": "always",
|
||||||
|
"printWidth": 100,
|
||||||
|
"tabWidth": 2,
|
||||||
|
"quoteProps": "preserve",
|
||||||
|
"endOfLine": "auto"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"search.exclude": {
|
||||||
|
"package-lock.json": true,
|
||||||
|
"node_modules": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
FROM node:12.19.1-alpine3.12 AS builder
|
||||||
|
|
||||||
|
ARG CMD
|
||||||
|
ARG APP_BASE_URL
|
||||||
|
ARG APP_WEBSOCKET
|
||||||
|
ARG APP_COMPANY_ID
|
||||||
|
ARG APP_PLATFORM
|
||||||
|
ARG APP_CUSTOM_SERVER
|
||||||
|
ARG APP_HOME_PAGE
|
||||||
|
ARG APP_TRACK
|
||||||
|
ARG APP_YOUSHU_TOKEN
|
||||||
|
ARG APP_ID
|
||||||
|
ARG APP_MAP_KEY
|
||||||
|
ARG APP_MAP_NAME
|
||||||
|
ARG APP_VUE_SAAS
|
||||||
|
ARG APP_DIANWU_URL
|
||||||
|
ARG APP_MERCHANT_URL
|
||||||
|
|
||||||
|
ENV APP_BASE_URL ${APP_BASE_URL}
|
||||||
|
ENV APP_WEBSOCKET ${APP_WEBSOCKET}
|
||||||
|
ENV APP_COMPANY_ID ${APP_COMPANY_ID}
|
||||||
|
ENV APP_PLATFORM ${APP_PLATFORM}
|
||||||
|
ENV APP_CUSTOM_SERVER ${APP_CUSTOM_SERVER}
|
||||||
|
ENV APP_HOME_PAGE ${APP_HOME_PAGE}
|
||||||
|
ENV APP_TRACK ${APP_TRACK}
|
||||||
|
ENV APP_YOUSHU_TOKEN ${APP_YOUSHU_TOKEN}
|
||||||
|
ENV APP_ID ${APP_ID}
|
||||||
|
ENV APP_MAP_KEY ${APP_MAP_KEY}
|
||||||
|
ENV APP_MAP_NAME ${APP_MAP_NAME}
|
||||||
|
ENV APP_VUE_SAAS ${APP_VUE_SAAS}
|
||||||
|
ENV APP_DIANWU_URL ${APP_DIANWU_URL}
|
||||||
|
ENV APP_MERCHANT_URL ${APP_MERCHANT_URL}
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
COPY package*.json ./
|
||||||
|
COPY .env ./
|
||||||
|
RUN npm config set registry https://registry.npm.taobao.org && npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ && npm config set @shopex:registry http://registry.npm.ishopex.cn && npm ci
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
RUN ls -la
|
||||||
|
RUN ${CMD}
|
||||||
|
RUN ls -l /app/dist/h5
|
||||||
|
|
||||||
|
FROM steebchen/nginx-spa:stable
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=builder /app/dist/h5 .
|
||||||
|
EXPOSE 80
|
||||||
|
CMD ["nginx"]
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
# 说明文档
|
||||||
|
## .env文件配置信息
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"APP_BASE_URL": "接口访问地址",
|
||||||
|
"APP_WEBSOCKET": "websocket访问地址",
|
||||||
|
"APP_COMPANY_ID": "企业id",
|
||||||
|
"APP_PLATFORM": "打包平台,standard为标准版, platform为平台版",
|
||||||
|
"APP_CUSTOM_SERVER": "域名地址,H5支付回调使用",
|
||||||
|
"APP_HOME_PAGE": "首页访问路径",
|
||||||
|
"APP_MAP_KEY": "H5 腾讯地图使用key",
|
||||||
|
"APP_MAP_NAME": "H5 使用地图name"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
## npm打包指令
|
||||||
|
```bash
|
||||||
|
#小程序本地开发编译
|
||||||
|
npm run dev:weapp
|
||||||
|
|
||||||
|
#小程序生产打包
|
||||||
|
npm run build:weapp
|
||||||
|
|
||||||
|
#H5本地开发编译
|
||||||
|
npm run dev:h5
|
||||||
|
|
||||||
|
#H5生产打包
|
||||||
|
npm run build:h5
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
- 关于小程序预览,dev:weapp本地开发编译模式下因为主包过大无法上传预览,需要使用build:weapp打包后选择小程序开发工具中的详情->本地设置->上传代码时自动压缩混淆
|
||||||
|
|
||||||
|
## shell脚本指令使用
|
||||||
|
- dev.sh和run.sh脚本命令使用,conpanys.conf文件为设置env.json文件的配置信息,新增配置需同已有配置格式保持一致,打包完成后需手动更改appid
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#开发模式使用
|
||||||
|
sh dev.sh
|
||||||
|
|
||||||
|
#打包使用
|
||||||
|
sh run.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
cicd test 3
|
||||||
|
|
||||||
|
## 代码prettier
|
||||||
|
npm run prepare
|
||||||
|
npx husky add .husky/pre-commit "npx lint-staged --allow-empty"
|
||||||
|
|
||||||
|
## 如果用ASW打包上传cdn,需要增加以下配置,配置值根据实际情况调整
|
||||||
|
APP_PUBLIC_PATH=https://CDN域名
|
||||||
|
APP_CDN=aws
|
||||||
|
APP_CDN_PATH=ecshopx-vshop/
|
||||||
|
APP_CDN_KEY=
|
||||||
|
APP_CDN_SCERET=
|
||||||
|
APP_CDN_REGION=ap-southeast-2
|
||||||
|
APP_CDN_BUCKET=unat-bucket
|
||||||
|
|
||||||
|
|
||||||
|
# 如遇初始化下载时间过长或者network timeout,可更换npm镜像源
|
||||||
|
# npm更换淘宝镜像,使用此命令后,npm指令关键词改为(cnpm),例如:npm i 改为 cnpm i
|
||||||
|
# 更换命令:npm install -g cnpm --registry=https://registry.npm.taobao.org
|
||||||
|
|
||||||
|
# 先安装插件
|
||||||
|
npm install @shopex/taro-plugin-modules -S --registry=http://registry.npm.ishopex.cn
|
||||||
|
|
||||||
|
# 再安装其他依赖
|
||||||
|
npm install
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
// Learn more about babel-preset-taro here:
|
||||||
|
// https://github.com/NervJS/taro/blob/next/packages/babel-preset-taro/README.md
|
||||||
|
module.exports = {
|
||||||
|
presets: [
|
||||||
|
['taro', {
|
||||||
|
framework: 'react',
|
||||||
|
ts: true
|
||||||
|
}]
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
appid = wxf7abee400d50e0d0
|
||||||
|
base_url = http://47.103.169.154:8080/api/h5app/wxapp
|
||||||
|
websocket = wss://http://47.103.169.154:8080/ws
|
||||||
|
company_id = 1
|
||||||
|
app_name = BIRKENSTOCK
|
||||||
|
platform = platform
|
||||||
|
custom_server = http://47.103.169.154:8081/
|
||||||
|
home_page = /pages/index
|
||||||
|
map_key = 1ccc1ebc947719886f0cd766d70241fe
|
||||||
|
map_name = oneX新零售门店定位
|
||||||
|
image_cdn = https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
module.exports = {
|
||||||
|
env: {
|
||||||
|
NODE_ENV: '"development"'
|
||||||
|
},
|
||||||
|
defineConstants: {
|
||||||
|
},
|
||||||
|
weapp: {},
|
||||||
|
h5: {}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
module.exports = {
|
||||||
|
h5: {
|
||||||
|
prod: 'ecshopx.shopex123.com/index.php',
|
||||||
|
preissue: 'ecshopx.shopex123.com/index.php',
|
||||||
|
test: 'ecshopx.shopex123.com/index.php'
|
||||||
|
},
|
||||||
|
weapp: {
|
||||||
|
prod: 'ecshopx.shopex123.com/index.php',
|
||||||
|
preissue: 'ecshopx.shopex123.com/index.php',
|
||||||
|
test: 'ecshopx.shopex123.com/index.php'
|
||||||
|
},
|
||||||
|
websocket: {
|
||||||
|
development: 'wss://ecshopx.shopex123.com/ws',
|
||||||
|
production: 'wss://b-websocket.yuanyuanke.cn',
|
||||||
|
preissue: 'wss://preissue-b-websocket.yuanyuanke.cn'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,180 @@
|
||||||
|
import path from 'path'
|
||||||
|
import pkg from '../package.json'
|
||||||
|
const chalk = require("chalk")
|
||||||
|
const { getEnvs, getDefineConstants, getCacheIdentifier } = require('./utils')
|
||||||
|
|
||||||
|
require('dotenv-flow').config()
|
||||||
|
|
||||||
|
const DIST_PATH = `dist/${process.env.TARO_ENV}`
|
||||||
|
const APP_ENVS = getEnvs()
|
||||||
|
|
||||||
|
// 是否为生产模式
|
||||||
|
const IS_PROD = process.env.NODE_ENV === 'production'
|
||||||
|
const BUILD_TARGET = process.env.TARGET
|
||||||
|
const BUILD_APP_SERVER = process.env.SERVER
|
||||||
|
|
||||||
|
const CONST_ENVS = {
|
||||||
|
APP_NAME: pkg.app_name,
|
||||||
|
APP_AUTH_PAGE:
|
||||||
|
process.env.TARO_ENV == 'h5' ? '/subpage/pages/auth/login' : '/subpages/member/index',
|
||||||
|
APP_BUILD_TARGET: BUILD_TARGET,
|
||||||
|
APP_LIVE: process.env.APP_LIVE,
|
||||||
|
...APP_ENVS
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.keys(CONST_ENVS).forEach(key => {
|
||||||
|
console.log(chalk.green(`${key}=${CONST_ENVS[key]}`))
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
// 是否打包APP
|
||||||
|
const IS_APP = BUILD_TARGET === 'app'
|
||||||
|
// 是否打包成APP服务
|
||||||
|
const IS_APP_SERVER = BUILD_APP_SERVER === 'server'
|
||||||
|
|
||||||
|
const copyPatterns = [{ from: 'src/assets', to: `${DIST_PATH}/assets` }]
|
||||||
|
if (process.env.TARO_ENV == 'weapp') {
|
||||||
|
copyPatterns.push({ from: 'src/ext.json', to: `${DIST_PATH}/ext.json` })
|
||||||
|
}
|
||||||
|
if (process.env.TARO_ENV == 'h5') {
|
||||||
|
copyPatterns.push({ from: 'src/files', to: `${DIST_PATH}` })
|
||||||
|
}
|
||||||
|
if (process.env.TARO_ENV == 'alipay') {
|
||||||
|
copyPatterns.push({ from: 'mini.project.json', to: `${DIST_PATH}/mini.project.json` })
|
||||||
|
}
|
||||||
|
|
||||||
|
const config = {
|
||||||
|
projectName: pkg.name,
|
||||||
|
date: '2021-11-22',
|
||||||
|
framework: 'react',
|
||||||
|
designWidth: 750,
|
||||||
|
deviceRatio: {
|
||||||
|
'640': 2.34 / 2,
|
||||||
|
'750': 1,
|
||||||
|
'828': 1.81 / 2
|
||||||
|
},
|
||||||
|
sourceRoot: 'src',
|
||||||
|
outputRoot: DIST_PATH,
|
||||||
|
sass: {
|
||||||
|
resource: path.resolve(__dirname, '..', 'src/style/imports.scss'),
|
||||||
|
projectDirectory: path.resolve(__dirname, '..')
|
||||||
|
},
|
||||||
|
|
||||||
|
defineConstants: getDefineConstants(CONST_ENVS),
|
||||||
|
alias: {
|
||||||
|
'taro-ui$': 'taro-ui/lib/index',
|
||||||
|
'@': path.join(__dirname, '../src'),
|
||||||
|
'lodash': 'lodash-es'
|
||||||
|
},
|
||||||
|
copy: {
|
||||||
|
patterns: copyPatterns
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
// 'taro-plugin-compiler-optimization'
|
||||||
|
// '@shopex/taro-plugin-modules',
|
||||||
|
// path.join(__dirname, "../src/plugin/test.js")
|
||||||
|
// path.join(__dirname, "./modify-taro.js")
|
||||||
|
],
|
||||||
|
|
||||||
|
mini: {
|
||||||
|
// webpackChain (chain, webpack) {
|
||||||
|
// // chain.plugin('analyzer')
|
||||||
|
// // .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [])
|
||||||
|
// chain.merge({
|
||||||
|
// plugin: {
|
||||||
|
// install: {
|
||||||
|
// plugin: require('terser-webpack-plugin'),
|
||||||
|
// args: [
|
||||||
|
// {
|
||||||
|
// terserOptions: {
|
||||||
|
// compress: true, // 默认使用terser压缩
|
||||||
|
// // mangle: false,
|
||||||
|
// keep_classnames: true, // 不改变class名称
|
||||||
|
// keep_fnames: true, // 不改变函数名称
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
cache: {
|
||||||
|
enable: true,
|
||||||
|
cacheDirectory: 'node_modules/.cache',
|
||||||
|
cacheIdentifier: getCacheIdentifier(CONST_ENVS)
|
||||||
|
},
|
||||||
|
miniCssExtractPluginOption: {
|
||||||
|
ignoreOrder: true
|
||||||
|
},
|
||||||
|
optimizeMainPackage: {
|
||||||
|
enable: true
|
||||||
|
},
|
||||||
|
// 图片转换base64
|
||||||
|
imageUrlLoaderOption: {
|
||||||
|
limit: 0
|
||||||
|
},
|
||||||
|
postcss: {
|
||||||
|
autoprefixer: {
|
||||||
|
enable: true
|
||||||
|
},
|
||||||
|
pxtransform: {
|
||||||
|
enable: true,
|
||||||
|
config: {}
|
||||||
|
},
|
||||||
|
url: {
|
||||||
|
enable: true,
|
||||||
|
config: {
|
||||||
|
limit: 10240 // 设定转换尺寸上限
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cssModules: {
|
||||||
|
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
|
||||||
|
config: {
|
||||||
|
namingPattern: 'module', // 转换模式,取值为 global/module
|
||||||
|
generateScopedName: '[name]__[local]___[hash:base64:5]'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
h5: {
|
||||||
|
// publicPath: IS_PROD ? './' : '/',
|
||||||
|
// publicPath: '/',
|
||||||
|
publicPath: (IS_APP && IS_PROD && !IS_APP_SERVER) ? './' : '/',
|
||||||
|
// publicPath: process.env.APP_PUBLIC_PATH || '/',
|
||||||
|
staticDirectory: 'static',
|
||||||
|
router: {
|
||||||
|
mode: IS_APP ? "hash" : "browser"
|
||||||
|
// mode: "browser"
|
||||||
|
},
|
||||||
|
devServer: {
|
||||||
|
// https: true,
|
||||||
|
// overlay: {
|
||||||
|
// warnings: false,
|
||||||
|
// errors: false
|
||||||
|
// }
|
||||||
|
// https: {
|
||||||
|
// key: "../cert/ecshopx-server.key",
|
||||||
|
// cert: "../cert/ecshopx-server.crt",
|
||||||
|
// // passphrase: "webpack-dev-server",
|
||||||
|
// requestCert: true
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
postcss: {
|
||||||
|
autoprefixer: {
|
||||||
|
enable: true,
|
||||||
|
config: {
|
||||||
|
overrideBrowserslist: ['last 3 versions', 'Android >= 4.1', 'ios >= 8']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
esnextModules: ['taro-ui']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = function (merge) {
|
||||||
|
if (!IS_PROD) {
|
||||||
|
return merge({}, config, require('./dev'))
|
||||||
|
}
|
||||||
|
return merge({}, config, require('./prod'))
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
const ConcatSource = require("webpack-sources").ConcatSource;
|
||||||
|
|
||||||
|
export default ctx => {
|
||||||
|
ctx.modifyBuildAssets(build => {
|
||||||
|
// BA首页workaround
|
||||||
|
const taroJs = build.assets["taro.js"];
|
||||||
|
if (taroJs) {
|
||||||
|
const source = taroJs.source();
|
||||||
|
let newSource;
|
||||||
|
if (process.env.NODE_ENV === "production") {
|
||||||
|
newSource = source.replace(
|
||||||
|
/(\.eventSplitter=\/\\s\+\/;)/,
|
||||||
|
"$1_wrapNativeSuper(Array);"
|
||||||
|
);
|
||||||
|
newSource = newSource.replace(
|
||||||
|
/(throw new Error\(\"Unable to resolve global \`this\`\"\))/,
|
||||||
|
"if(global)return global;$1"
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
newSource = source.replace(
|
||||||
|
"var RefsArray",
|
||||||
|
"_wrapNativeSuper(Array);\nvar RefsArray"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
build.assets["taro.js"] = new ConcatSource(newSource);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,81 @@
|
||||||
|
/* eslint-disable import/no-commonjs */
|
||||||
|
const path = require('path')
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
env: {
|
||||||
|
NODE_ENV: '"production"'
|
||||||
|
},
|
||||||
|
h5: process.env.APP_CDN
|
||||||
|
? {
|
||||||
|
output: {
|
||||||
|
filename: 'js/[name].[hash:8].js',
|
||||||
|
chunkFilename: 'js/[name].[chunkhash:8].js'
|
||||||
|
},
|
||||||
|
miniCssExtractPluginOption: {
|
||||||
|
filename: 'css/[name].[hash:8].css',
|
||||||
|
chunkFilename: 'css/[id].[hash:8].css'
|
||||||
|
},
|
||||||
|
webpackChain(chain) {
|
||||||
|
// const pkg = require(path.resolve(__dirname, '../package.json'))
|
||||||
|
// const { publicPath, bucket: CDNBucket, path: CDNPath } = pkg.cdn
|
||||||
|
const publicPath = process.env.APP_PUBLIC_PATH
|
||||||
|
const CDNPath = process.env.APP_CDN_PATH
|
||||||
|
|
||||||
|
let plugin = {}
|
||||||
|
if (process.env.APP_CDN == 'aws') {
|
||||||
|
plugin = {
|
||||||
|
'asw-s3': {
|
||||||
|
plugin: require('webpack-s3-plugin'),
|
||||||
|
args: [
|
||||||
|
{
|
||||||
|
exclude: /.*\.html$/,
|
||||||
|
s3Options: {
|
||||||
|
accessKeyId: process.env.APP_CDN_KEY,
|
||||||
|
secretAccessKey: process.env.APP_CDN_SCERET,
|
||||||
|
region: process.env.APP_CDN_REGION,
|
||||||
|
ACL: ''
|
||||||
|
},
|
||||||
|
s3UploadOptions: {
|
||||||
|
Bucket: process.env.APP_CDN_BUCKET
|
||||||
|
},
|
||||||
|
basePath: CDNPath
|
||||||
|
// cdnizerOptions: {
|
||||||
|
// defaultCDNBase: 'http://asdf.ca'
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
chain.output
|
||||||
|
.publicPath(`${publicPath}/${CDNPath}/`)
|
||||||
|
|
||||||
|
chain.merge({
|
||||||
|
plugin
|
||||||
|
// plugin: {
|
||||||
|
// 'qn-webpack': {
|
||||||
|
// plugin: require('qn-webpack'),
|
||||||
|
// args: [{
|
||||||
|
// accessKey: process.env.CDN_ACCESS_KEY,
|
||||||
|
// secretKey: process.env.CDN_SECRET_KEY,
|
||||||
|
// bucket: CDNBucket,
|
||||||
|
// path: CDNPath,
|
||||||
|
// exclude: /(?:manifest\.json|\.map)$/
|
||||||
|
// }]
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
output: {
|
||||||
|
filename: 'js/[name].[hash:8].js',
|
||||||
|
chunkFilename: 'js/[name].[chunkhash:8].js'
|
||||||
|
},
|
||||||
|
miniCssExtractPluginOption: {
|
||||||
|
filename: 'css/[name].[hash:8].css',
|
||||||
|
chunkFilename: 'css/[id].[hash:8].css'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
const crypto = require('crypto')
|
||||||
|
const chalk = require("chalk")
|
||||||
|
const pkg = require('../package.json')
|
||||||
|
|
||||||
|
function digest (str) {
|
||||||
|
return crypto
|
||||||
|
.createHash('md5')
|
||||||
|
.update(str)
|
||||||
|
.digest('hex')
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
getEnvs () {
|
||||||
|
const envs = Object.keys(process.env).reduce((ret, key) => {
|
||||||
|
const val = process.env[key]
|
||||||
|
if (key.indexOf("APP_") >= 0) {
|
||||||
|
// console.log(chalk.green(`${key}=${val}`));
|
||||||
|
ret[key] = val
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}, {})
|
||||||
|
envs.NODE_ENV = process.env.NODE_ENV
|
||||||
|
envs.TARO_ENV = process.env.TARO_ENV
|
||||||
|
return envs
|
||||||
|
},
|
||||||
|
|
||||||
|
getDefineConstants (consts) {
|
||||||
|
consts = Object.keys(consts).reduce((val, k) => {
|
||||||
|
val[`process.env.${k}`] = `'${consts[k]}'`
|
||||||
|
return val
|
||||||
|
}, {})
|
||||||
|
return consts
|
||||||
|
},
|
||||||
|
|
||||||
|
getCacheIdentifier (consts = {}) {
|
||||||
|
const env = process.env.NODE_ENV || 'development'
|
||||||
|
const envHash = digest(JSON.stringify(consts))
|
||||||
|
|
||||||
|
return `cache-loader:${pkg.version} ${env} ${envHash}`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,132 @@
|
||||||
|
###
|
||||||
|
# @Author: Arvin
|
||||||
|
# @GitHub: https://github.com/973749104
|
||||||
|
# @Blog: https://liuhgxu.com
|
||||||
|
# @Description: 说明
|
||||||
|
# @FilePath: /unite-vshop/dev.sh
|
||||||
|
# @Date: 2020-06-10 10:15:51
|
||||||
|
# @LastEditors: PrendsMoi
|
||||||
|
# @LastEditTime: 2021-04-01 16:09:56
|
||||||
|
###
|
||||||
|
#/usr/bash
|
||||||
|
|
||||||
|
cd $(dirname "$0")
|
||||||
|
|
||||||
|
conf="companys.conf"
|
||||||
|
if [ ! -n "$1" ]
|
||||||
|
then
|
||||||
|
if [ ! -f ${conf} ]
|
||||||
|
then
|
||||||
|
echo "not find companys.conf"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
sections=`sed -n '/\[*\]/p' ${conf} |grep -v '^#'|tr -d []`
|
||||||
|
fi
|
||||||
|
|
||||||
|
COLUMNS=1
|
||||||
|
echo "选择需要发布的客户"
|
||||||
|
select var in ${sections};
|
||||||
|
do
|
||||||
|
if [ ! -n "$var" ]
|
||||||
|
then
|
||||||
|
echo "请选择正确的数字"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
appid=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^appid/{print $3}')
|
||||||
|
baseUrl=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^base_url/{print $3}')
|
||||||
|
appName=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^app_name/{print $3}')
|
||||||
|
websocket=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^websocket/{print $3}')
|
||||||
|
company_id=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^company_id/{print $3}')
|
||||||
|
platform=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^platform/{print $3}')
|
||||||
|
custom_server=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^custom_server/{print $3}')
|
||||||
|
home_page=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^home_page/{print $3}')
|
||||||
|
map_key=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^map_key/{print $3}')
|
||||||
|
map_name=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^map_name/{print $3}')
|
||||||
|
image_cdn=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^image_cdn/{print $3}')
|
||||||
|
break
|
||||||
|
done
|
||||||
|
else
|
||||||
|
appid=${1}
|
||||||
|
baseUrl=${2}
|
||||||
|
appName=${3}
|
||||||
|
websocket=${4}
|
||||||
|
company_id=${5}
|
||||||
|
platform=${6}
|
||||||
|
custom_server=${7}
|
||||||
|
home_page=${8}
|
||||||
|
map_key=${9}
|
||||||
|
map_name=${10}
|
||||||
|
image_cdn=${11}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# version=$(git describe --tags `git rev-list --tags --max-count=1`)
|
||||||
|
# desc="微商城小程序"
|
||||||
|
|
||||||
|
# 需要被替换的小程序appid,在./src/ext.json和 ./project.config.json
|
||||||
|
# oldAppid="wx912913df9fef6ddd"
|
||||||
|
# oldAppName="通用小程序"
|
||||||
|
|
||||||
|
# if grep -q ${oldAppid} ./src/ext.json
|
||||||
|
# then
|
||||||
|
# sed -i "" "s#${oldAppid}#${appid}#g" ./src/ext.json
|
||||||
|
# sed -i "" "s#${oldAppName}#${appName}#g" ./src/ext.json
|
||||||
|
# sed -i "" "s#${oldAppid}#${appid}#g" ./project.config.json
|
||||||
|
# echo "【SUCCESS】替换appid成功"
|
||||||
|
# else
|
||||||
|
# echo "【ERROR】待替换的小程序APPID ${oldAppid} 在./src/ext.json 中不存在"
|
||||||
|
# exit
|
||||||
|
# fi
|
||||||
|
|
||||||
|
echo '{
|
||||||
|
"extEnable": true,
|
||||||
|
"extAppid": "'${appid}'",
|
||||||
|
"ext": {
|
||||||
|
"company_id": "'${company_id}'",
|
||||||
|
"appid": "'${appid}'",
|
||||||
|
"wxa_name": "'${appName}'"
|
||||||
|
},
|
||||||
|
"window": {
|
||||||
|
"backgroundTextStyle": "light",
|
||||||
|
"navigationBarBackgroundColor": "#fff",
|
||||||
|
"navigationBarTitleText": "微商城",
|
||||||
|
"navigationBarTextStyle": "black"
|
||||||
|
}
|
||||||
|
}' > ./src/ext.json
|
||||||
|
|
||||||
|
echo 'APP_BASE_URL='${baseUrl}'
|
||||||
|
APP_WEBSOCKET='${websocket}'
|
||||||
|
APP_COMPANY_ID='${company_id}'
|
||||||
|
APP_PLATFORM='${platform}'
|
||||||
|
APP_CUSTOM_SERVER='${custom_server}'
|
||||||
|
APP_HOME_PAGE='${home_page}'
|
||||||
|
APP_TRACK=youshu
|
||||||
|
APP_YOUSHU_TOKEN=bi281e87ab2424481a
|
||||||
|
APP_ID='${appid}'
|
||||||
|
APP_MAP_KEY='${map_key}'
|
||||||
|
APP_MAP_NAME='${map_name}'
|
||||||
|
APP_IMAGE_CDN='${image_cdn}'
|
||||||
|
APP_DIANWU_URL='
|
||||||
|
|
||||||
|
> ./.env
|
||||||
|
|
||||||
|
|
||||||
|
echo "请选择编译方式"
|
||||||
|
|
||||||
|
buildType="WEAPP H5"
|
||||||
|
|
||||||
|
select type in $buildType
|
||||||
|
do
|
||||||
|
if [ "$type" = 'WEAPP' ];then
|
||||||
|
if [ "$(uname)" == "Darwin" ]
|
||||||
|
then
|
||||||
|
echo "npm run dev:weapp"
|
||||||
|
npm run dev:weapp
|
||||||
|
else
|
||||||
|
echo "npm run dev:weapp:windows"
|
||||||
|
npm run dev:weapp:windows
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
npm run dev:h5
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"exclude": ["node_modules", "dist"],
|
||||||
|
"compilerOptions": {
|
||||||
|
"baseUrl": ".",
|
||||||
|
"paths": {
|
||||||
|
"@/*": ["./src/*"]
|
||||||
|
},
|
||||||
|
"experimentalDecorators": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"enableAppxNg": true
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,104 @@
|
||||||
|
{
|
||||||
|
"name": "ecshopx-vshop",
|
||||||
|
"app_name": "ecshopx",
|
||||||
|
"version": "3.13.20",
|
||||||
|
"private": true,
|
||||||
|
"description": "taro app for bbc",
|
||||||
|
"scripts": {
|
||||||
|
"clean": "rm -rf node_modules/.cache",
|
||||||
|
"build:weapp": "taro build --type weapp --trace-warnings",
|
||||||
|
"build:weapp:live": "APP_LIVE=true taro build --type weapp --trace-warnings",
|
||||||
|
"build:swan": "taro build --type swan",
|
||||||
|
"build:alipay": "taro build --type alipay",
|
||||||
|
"build:tt": "taro build --type tt",
|
||||||
|
"build:h5": "taro build --type h5",
|
||||||
|
"build:rn": "taro build --type rn",
|
||||||
|
"build:app": "TARGET=app taro build --type h5",
|
||||||
|
"build:app:server": "TARGET=app SERVER=server taro build --type h5",
|
||||||
|
"dev:weapp": "npm run build:weapp -- --watch",
|
||||||
|
"dev:weapp:live": "APP_LIVE=true npm run build:weapp -- --watch",
|
||||||
|
"dev:weapp:modules": "TARO_MODULES=true npm run build:weapp -- --watch",
|
||||||
|
"dev:weapp:prd": "cross-env BUILD_ENV=prd npm run build:weapp -- --watch",
|
||||||
|
"dev:swan": "npm run build:swan -- --watch",
|
||||||
|
"dev:alipay": "npm run build:alipay -- --watch",
|
||||||
|
"dev:tt": "npm run build:tt -- --watch",
|
||||||
|
"dev:h5": "cross-env NODE_ENV=development npm run build:h5 -- --watch",
|
||||||
|
"dev:app": "TARGET=app npm run build:h5 -- --watch",
|
||||||
|
"dev:rn": "npm run build:rn -- --watch",
|
||||||
|
"release:h5": "RELEASE=h5 npm run build:h5",
|
||||||
|
"lint": "prettier-eslint 'src/**/*.{js,jsx}' --write"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "MIT",
|
||||||
|
"browsers": [
|
||||||
|
"last 3 versions",
|
||||||
|
"Android >= 4.1",
|
||||||
|
"ios >= 8"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"@reduxjs/toolkit": "^1.6.2",
|
||||||
|
"axios": "^0.19.0",
|
||||||
|
"azure-storage": "^2.10.3",
|
||||||
|
"big.js": "^6.1.1",
|
||||||
|
"cache-loader": "^4.1.0",
|
||||||
|
"classnames": "^2.2.6",
|
||||||
|
"copy-to-clipboard": "^3.0.8",
|
||||||
|
"dayjs": "^1.10.6",
|
||||||
|
"lodash": "^4.17.11",
|
||||||
|
"mini-html-parser2": "^0.3.0",
|
||||||
|
"qiniu-js": "^2.5.4",
|
||||||
|
"qrcode": "^1.5.0",
|
||||||
|
"qs": "6.6.0",
|
||||||
|
"react": "^17.0.2",
|
||||||
|
"react-dom": "^16.14.0",
|
||||||
|
"react-native": "^0.66.4",
|
||||||
|
"react-redux": "^7.2.5",
|
||||||
|
"redux-logger": "^3.0.6",
|
||||||
|
"redux-persist": "^6.0.0",
|
||||||
|
"redux-persist-weapp-storage": "^1.2.0",
|
||||||
|
"sr-sdk-wxapp": "^1.3.12",
|
||||||
|
"stylenames": "^1.1.6",
|
||||||
|
"taro-plugin-compiler-optimization": "^1.0.4",
|
||||||
|
"taro-ui": "3.0.0-alpha.3",
|
||||||
|
"thread-loader": "^4.0.2",
|
||||||
|
"use-immer": "^0.6.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/runtime": "^7.7.7",
|
||||||
|
"@tarojs/cli": "3.4.3",
|
||||||
|
"@tarojs/components": "3.4.3",
|
||||||
|
"@tarojs/mini-runner": "3.4.3",
|
||||||
|
"@tarojs/react": "3.4.3",
|
||||||
|
"@tarojs/runtime": "3.4.3",
|
||||||
|
"@tarojs/taro": "3.4.3",
|
||||||
|
"@tarojs/webpack-runner": "3.4.3",
|
||||||
|
"@types/react": "^16.8.5",
|
||||||
|
"@types/webpack-env": "^1.13.6",
|
||||||
|
"babel-eslint": "^8.2.3",
|
||||||
|
"babel-preset-env": "^1.6.1",
|
||||||
|
"babel-preset-taro": "3.4.3",
|
||||||
|
"babel-runtime": "^6.26.0",
|
||||||
|
"chalk": "^4.1.2",
|
||||||
|
"cross-env": "^5.2.0",
|
||||||
|
"dotenv-flow": "^3.1.0",
|
||||||
|
"eslint": "^4.19.1",
|
||||||
|
"eslint-config-taro": "3.4.3",
|
||||||
|
"eslint-plugin-import": "^2.12.0",
|
||||||
|
"eslint-plugin-react": "^7.8.2",
|
||||||
|
"fs-extra": "^8.0.1",
|
||||||
|
"glob": "^7.1.4",
|
||||||
|
"lint-staged": "^12.1.5",
|
||||||
|
"lodash-webpack-plugin": "^0.11.5",
|
||||||
|
"prettier": "^2.5.1",
|
||||||
|
"prettier-eslint": "^13.0.0",
|
||||||
|
"prettier-eslint-cli": "^5.0.1",
|
||||||
|
"webpack-bundle-analyzer": "^3.8.0",
|
||||||
|
"webpack-dev-server": "^2.9.7",
|
||||||
|
"webpack-s3-plugin": "^1.2.0-rc.0"
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"src/**/*.{js,jsx,scss}": [
|
||||||
|
"prettier-eslint --write"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
{
|
||||||
|
"miniprogramRoot": "dist/",
|
||||||
|
"projectname": "ecshopx-vshop",
|
||||||
|
"description": "weshop for platform",
|
||||||
|
"appid": "wx55ff808ba0e28b1d",
|
||||||
|
"setting": {
|
||||||
|
"urlCheck": false,
|
||||||
|
"es6": false,
|
||||||
|
"enhance": false,
|
||||||
|
"postcss": false,
|
||||||
|
"preloadBackgroundData": false,
|
||||||
|
"minified": false,
|
||||||
|
"newFeature": false,
|
||||||
|
"coverView": true,
|
||||||
|
"nodeModules": false,
|
||||||
|
"autoAudits": false,
|
||||||
|
"showShadowRootInWxmlPanel": true,
|
||||||
|
"scopeDataCheck": false,
|
||||||
|
"uglifyFileName": false,
|
||||||
|
"checkInvalidKey": true,
|
||||||
|
"checkSiteMap": false,
|
||||||
|
"uploadWithSourceMap": false,
|
||||||
|
"compileHotReLoad": false,
|
||||||
|
"lazyloadPlaceholderEnable": false,
|
||||||
|
"useMultiFrameRuntime": true,
|
||||||
|
"useApiHook": true,
|
||||||
|
"useApiHostProcess": true,
|
||||||
|
"babelSetting": {
|
||||||
|
"ignore": [],
|
||||||
|
"disablePlugins": [],
|
||||||
|
"outputPath": ""
|
||||||
|
},
|
||||||
|
"enableEngineNative": false,
|
||||||
|
"useIsolateContext": true,
|
||||||
|
"userConfirmedBundleSwitch": false,
|
||||||
|
"packNpmManually": false,
|
||||||
|
"packNpmRelationList": [],
|
||||||
|
"minifyWXSS": true,
|
||||||
|
"disableUseStrict": false,
|
||||||
|
"showES6CompileOption": false,
|
||||||
|
"useCompilerPlugins": false,
|
||||||
|
"minifyWXML": true,
|
||||||
|
"ignoreDevUnusedFiles": false,
|
||||||
|
"ignoreUploadUnusedFiles": false
|
||||||
|
},
|
||||||
|
"compileType": "miniprogram",
|
||||||
|
"simulatorType": "wechat",
|
||||||
|
"simulatorPluginLibVersion": {},
|
||||||
|
"condition": {
|
||||||
|
"search": {
|
||||||
|
"list": []
|
||||||
|
},
|
||||||
|
"conversation": {
|
||||||
|
"list": []
|
||||||
|
},
|
||||||
|
"plugin": {
|
||||||
|
"list": []
|
||||||
|
},
|
||||||
|
"game": {
|
||||||
|
"list": []
|
||||||
|
},
|
||||||
|
"miniprogram": {
|
||||||
|
"list": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,135 @@
|
||||||
|
#/usr/bash
|
||||||
|
|
||||||
|
cd $(dirname "$0")
|
||||||
|
|
||||||
|
conf="companys.conf"
|
||||||
|
if [ ! -n "$1" ]
|
||||||
|
then
|
||||||
|
if [ ! -f ${conf} ]
|
||||||
|
then
|
||||||
|
echo "not find companys.conf"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
sections=`sed -n '/\[*\]/p' ${conf} |grep -v '^#'|tr -d []`
|
||||||
|
fi
|
||||||
|
|
||||||
|
COLUMNS=1
|
||||||
|
echo "选择需要发布的客户"
|
||||||
|
select var in ${sections};
|
||||||
|
do
|
||||||
|
if [ ! -n "$var" ]
|
||||||
|
then
|
||||||
|
echo "请选择正确的数字"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
appid=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^appid/{print $3}')
|
||||||
|
baseUrl=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^base_url/{print $3}')
|
||||||
|
appName=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^app_name/{print $3}')
|
||||||
|
websocket=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^websocket/{print $3}')
|
||||||
|
company_id=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^company_id/{print $3}')
|
||||||
|
platform=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^platform/{print $3}')
|
||||||
|
custom_server=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^custom_server/{print $3}')
|
||||||
|
home_page=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^home_page/{print $3}')
|
||||||
|
map_key=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^map_key/{print $3}')
|
||||||
|
map_name=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^map_name/{print $3}')
|
||||||
|
image_cdn=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^image_cdn/{print $3}')
|
||||||
|
ali_isvid=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^ali_isvid/{print $3}')
|
||||||
|
dianwu_url=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^dianwu_url/{print $3}')
|
||||||
|
merchant_url=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^merchant_url/{print $3}')
|
||||||
|
adapay=$(sed -n '/\['$var'\]/,/^$/p' $conf|grep -Ev '\[|\]|^$'|awk '/^adapay/{print $3}')
|
||||||
|
break
|
||||||
|
done
|
||||||
|
else
|
||||||
|
appid=${1}
|
||||||
|
baseUrl=${2}
|
||||||
|
appName=${3}
|
||||||
|
websocket=${4}
|
||||||
|
company_id=${5}
|
||||||
|
platform=${6}
|
||||||
|
custom_server=${7}
|
||||||
|
home_page=${8}
|
||||||
|
map_key=${9}
|
||||||
|
map_name=${10}
|
||||||
|
image_cdn=${11}
|
||||||
|
ali_isvid=${12}
|
||||||
|
dianwu_url=${13}
|
||||||
|
merchant_url=${14}
|
||||||
|
adapay=${15}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# version=$(git describe --tags `git rev-list --tags --max-count=1`)
|
||||||
|
# desc="微商城小程序"
|
||||||
|
|
||||||
|
# 需要被替换的小程序appid,在./src/ext.json和 ./project.config.json
|
||||||
|
# oldAppid="wx912913df9fef6ddd"
|
||||||
|
# oldAppName="通用小程序"
|
||||||
|
|
||||||
|
# if grep -q ${oldAppid} ./src/ext.json
|
||||||
|
# then
|
||||||
|
# sed -i "" "s#${oldAppid}#${appid}#g" ./src/ext.json
|
||||||
|
# sed -i "" "s#${oldAppName}#${appName}#g" ./src/ext.json
|
||||||
|
# sed -i "" "s#${oldAppid}#${appid}#g" ./project.config.json
|
||||||
|
# echo "【SUCCESS】替换appid成功"
|
||||||
|
# else
|
||||||
|
# echo "【ERROR】待替换的小程序APPID ${oldAppid} 在./src/ext.json 中不存在"
|
||||||
|
# exit
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# PROJECT_FILE_PATH='./project.config.json'
|
||||||
|
# oldappid=$(cat ${PROJECT_FILE_PATH} | sed 's/,/\n/g' | grep "appid" | sed 's/:/\n/g' | sed '1d' | sed 's/}//g')
|
||||||
|
# sed -i "" "s#${oldappid}#\"${appid}\"#g" ${PROJECT_FILE_PATH}
|
||||||
|
|
||||||
|
echo '{
|
||||||
|
"extEnable": true,
|
||||||
|
"extAppid": "'${appid}'",
|
||||||
|
"ext": {
|
||||||
|
"company_id": "'${company_id}'",
|
||||||
|
"appid": "'${appid}'",
|
||||||
|
"wxa_name": "'${appName}'",
|
||||||
|
"ali_isvid":"'${ali_isvid}'"
|
||||||
|
},
|
||||||
|
"window": {
|
||||||
|
"backgroundTextStyle": "light",
|
||||||
|
"navigationBarBackgroundColor": "#fff",
|
||||||
|
"navigationBarTitleText": "微商城",
|
||||||
|
"navigationBarTextStyle": "black"
|
||||||
|
}
|
||||||
|
}' > ./src/ext.json
|
||||||
|
|
||||||
|
echo 'APP_BASE_URL='${baseUrl}'
|
||||||
|
APP_WEBSOCKET='${websocket}'
|
||||||
|
APP_COMPANY_ID='${company_id}'
|
||||||
|
APP_PLATFORM='${platform}'
|
||||||
|
APP_CUSTOM_SERVER='${custom_server}'
|
||||||
|
APP_HOME_PAGE='${home_page}'
|
||||||
|
APP_TRACK=youshu
|
||||||
|
APP_YOUSHU_TOKEN=bi281e87ab2424481a
|
||||||
|
APP_ID='${appid}'
|
||||||
|
APP_MAP_KEY='${map_key}'
|
||||||
|
APP_MAP_NAME='${map_name}'
|
||||||
|
APP_IMAGE_CDN='${image_cdn}'
|
||||||
|
APP_DIANWU_URL='${dianwu_url}'
|
||||||
|
APP_MERCHANT_URL='${merchant_url}'
|
||||||
|
APP_ADAPAY='${adapay}'
|
||||||
|
' > ./.env
|
||||||
|
|
||||||
|
echo "请选择编译方式"
|
||||||
|
|
||||||
|
buildType='weapp h5 alipay'
|
||||||
|
|
||||||
|
select type in $buildType
|
||||||
|
do
|
||||||
|
if [ "$type" == 'weapp' ]
|
||||||
|
then
|
||||||
|
echo "npm run build:weapp"
|
||||||
|
yarn run build:weapp
|
||||||
|
elif [ "$type" == 'alipay' ]
|
||||||
|
then
|
||||||
|
echo "npm run build:alipay"
|
||||||
|
yarn run build:h5
|
||||||
|
else
|
||||||
|
echo "npm run build:h5"
|
||||||
|
yarn run build:alipay
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function list (params) {
|
||||||
|
return req.get('/aftersales', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function info (params) {
|
||||||
|
return req.get('/aftersales/info', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function apply (params) {
|
||||||
|
return req.post('/aftersales', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function modify (params) {
|
||||||
|
return req.post('/aftersales/modify', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function sendback (params) {
|
||||||
|
return req.post('/aftersales/sendback', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function close (params) {
|
||||||
|
return req.post('/aftersales/close', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function reasonList (params = {}) {
|
||||||
|
return req.get('/aftersales/reason/list', params)
|
||||||
|
}
|
||||||
|
export function remindDetail (params = {}) {
|
||||||
|
return req.get('/aftersales/remind/detail', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {*} params
|
||||||
|
* distributor_id 下单门店
|
||||||
|
* lng 经度
|
||||||
|
* lat 纬度
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function getAfterSaleStoreList(params) {
|
||||||
|
return req.get('/distributor/aftersaleslocation', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
import Taro from '@tarojs/taro'
|
||||||
|
import req from './req'
|
||||||
|
import { getAppId } from '@/utils'
|
||||||
|
|
||||||
|
const useauth = {
|
||||||
|
auth_type: 'alipayapp',
|
||||||
|
user_type: 'alipay'
|
||||||
|
}
|
||||||
|
|
||||||
|
/**支付宝自动登录 */
|
||||||
|
export function login (params) {
|
||||||
|
return req.post('/alipay/login', {
|
||||||
|
...params,
|
||||||
|
...useauth,
|
||||||
|
appid: getAppId()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
/**支付宝手动登录(注册) */
|
||||||
|
export function newlogin (params) {
|
||||||
|
return req.post('/alipay/new_login', {
|
||||||
|
...params,
|
||||||
|
...useauth,
|
||||||
|
appid: getAppId()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function alipay_login (params) {
|
||||||
|
return req.post(`/new_login`, {
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function alipay_qrcode (params) {
|
||||||
|
return req.get(`/alipaymini/qrcode.png?${params}`)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function list (params = {}) {
|
||||||
|
return req.get('/article/management', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function authList (params = {}) {
|
||||||
|
return req.get('/article/usermanagement', params)
|
||||||
|
}
|
||||||
|
export function detailAuth (id) {
|
||||||
|
return req.get(`/article/usermanagement/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function detail (id) {
|
||||||
|
return req.get(`/article/management/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function focus (id) {
|
||||||
|
return req.get(`/article/focus/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function praise (id) {
|
||||||
|
return req.get(`/article/praise/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function praiseCheck (id) {
|
||||||
|
return req.get(`/article/praise/check/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function praiseNum (id) {
|
||||||
|
return req.get(`/article/praise/num/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function totalCollectArticle (params = {}) {
|
||||||
|
return req.get('/member/collect/article', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function collectArticle (id) {
|
||||||
|
return req.post(`/member/collect/article/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function delCollectArticle (params = {}) {
|
||||||
|
return req.delete('/member/collect/article', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function collectArticleInfo (params = {}) {
|
||||||
|
return req.get('/member/collect/article/info', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function columnList () {
|
||||||
|
return req.get('/article/category')
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {}
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
import req from './req'
|
||||||
|
import { transformPlatformUrl } from '@/utils/platform'
|
||||||
|
|
||||||
|
// 获取助力列表
|
||||||
|
export const getList = (param = {}) => req.get('/promotion/bargains', param)
|
||||||
|
|
||||||
|
// 获取助力配置
|
||||||
|
export const getDetail = (param = {}) =>
|
||||||
|
req.get(transformPlatformUrl('/alipay/pageparams/setting'), param)
|
||||||
|
|
||||||
|
// 获取助力详情
|
||||||
|
export const getUserBargain = (param = {}) => req.get('/promotion/userbargain', param)
|
||||||
|
|
||||||
|
// 发起助力
|
||||||
|
export const postUserBargain = (param = {}) => req.post('/promotion/userbargain', param)
|
||||||
|
|
||||||
|
// 支付
|
||||||
|
export const pay = (param = {}) => req.post('/order', param)
|
||||||
|
|
||||||
|
// 获取支付配置
|
||||||
|
export const getPayConfig = (param = {}) => req.get('/payment/config', param)
|
||||||
|
|
||||||
|
// 砍价
|
||||||
|
export const postDiscount = (param = {}) => req.post('/promotion/bargainlog', param)
|
||||||
|
|
||||||
|
// 小程序码
|
||||||
|
export const getCodeUrl = (param = {}) => req.get('/promotion/bargainfriendwxappcode', param)
|
||||||
|
|
||||||
|
// 获取订单列表
|
||||||
|
export const getOrderList = (param = {}) => req.get('/orders', param)
|
||||||
|
|
||||||
|
// 获取订单详情
|
||||||
|
export const getOrderDetail = (param = {}) => req.get(`/order/${param.order_id}`, param)
|
||||||
|
|
@ -0,0 +1,103 @@
|
||||||
|
import req from './req'
|
||||||
|
import { getDistributorId } from '@/utils'
|
||||||
|
|
||||||
|
export function get(params) {
|
||||||
|
return req.get('/cart/list', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function count(params) {
|
||||||
|
const { shop_type = 'distributor' } = params
|
||||||
|
return req.get('/cartcount', {
|
||||||
|
shop_type,
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function add(params) {
|
||||||
|
return req.post(`/cart`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fastBuy(params, isPointitem) {
|
||||||
|
const { item_id, num = 1, bargain_id, distributor_id } = params
|
||||||
|
const query = {
|
||||||
|
cart_type: 'fastbuy',
|
||||||
|
item_id,
|
||||||
|
num,
|
||||||
|
distributor_id,
|
||||||
|
isAccumulate: false,
|
||||||
|
shop_type: isPointitem ? 'pointsmall' : 'distributor'
|
||||||
|
}
|
||||||
|
if (bargain_id) {
|
||||||
|
query.bargain_id = bargain_id
|
||||||
|
}
|
||||||
|
return req.post('/cart', query)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function del({ cart_id }) {
|
||||||
|
return req.delete('/cartdel', { cart_id })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function select({ cart_id, is_checked }) {
|
||||||
|
return req.put('/cartupdate/checkstatus', { cart_id, is_checked })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateNum(shop_id, cart_id, num, shop_type) {
|
||||||
|
return req.put(`/cartupdate/num`, {
|
||||||
|
shop_id,
|
||||||
|
cart_id,
|
||||||
|
num,
|
||||||
|
isAccumulate: false,
|
||||||
|
shop_type
|
||||||
|
})
|
||||||
|
// return req.put('/cartupdate/num', { cart_id, num })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updatePromotion({ cart_id, activity_id }) {
|
||||||
|
return req.put('/cartupdate/promotion', { cart_id, activity_id })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkout() {
|
||||||
|
return req.get('/cart.checkout')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function total(params) {
|
||||||
|
// return req.post('/cart.total')
|
||||||
|
return req.post('/getFreightFee', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function coupons(params) {
|
||||||
|
return req.get('/user/newGetCardList', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function likeList(params) {
|
||||||
|
const distributor_id = getDistributorId()
|
||||||
|
|
||||||
|
return req.get('/promotions/recommendlike', {
|
||||||
|
distributor_id,
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function selectedPlusitem(params) {
|
||||||
|
return req.post('/cart/check/plusitem', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 消息通知
|
||||||
|
export function getCartRemind(params) {
|
||||||
|
return req.get('/cartremind/setting', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 兑换商品
|
||||||
|
export function exchangeGood(params) {
|
||||||
|
return req.post('user/exchangeCard', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取街道、社区列表
|
||||||
|
export function getSubdistrict(params) {
|
||||||
|
return req.get('/espier/subdistrict', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取自提点列表
|
||||||
|
export function getZitiList(params) {
|
||||||
|
return req.get('/distributor/pickuplocation', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function getOrderDetail (order_id) {
|
||||||
|
return req.get(`/order/${order_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getPayment (params = {}) {
|
||||||
|
// params = {
|
||||||
|
// ...params,
|
||||||
|
// open_id: 'olp694lNHedXSGa3HPrqj6nPILOU'
|
||||||
|
// }
|
||||||
|
return req.post('/payment', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getWeappUrlLink(params = {}) {
|
||||||
|
return req.post('/urllink', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getWeappUrlSchema(params = {}) {
|
||||||
|
return req.post('/urlschema', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
import req from './req'
|
||||||
|
import { transformPlatformUrl } from '@/utils/platform'
|
||||||
|
|
||||||
|
export function get (params) {
|
||||||
|
return req.get('/goods/category', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCategory (params = {}) {
|
||||||
|
return req.get('/pageparams/setting', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,139 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function getCommunityList(params) {
|
||||||
|
return req.get('/community/orders', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getActivityList(params) {
|
||||||
|
// 获取团长活动列表
|
||||||
|
return req.get('/community/chief/activity', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getMemberActivityList(params) {
|
||||||
|
// 个人中心活动列表
|
||||||
|
return req.get('/community/member/activity', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createActivityZiti(params) {
|
||||||
|
return req.post('/community/chief/ziti', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function modifyActivityZiti(id, params) {
|
||||||
|
return req.post(`/community/chief/ziti/${id}`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getActivityZiti(id) {
|
||||||
|
return req.get(`/community/chief/ziti`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getChiefItems(params) {
|
||||||
|
return req.get(`/community/chief/items`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createChiefActivity(params) {
|
||||||
|
return req.post('/community/chief/activity', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getChiefActivity(activity_id) {
|
||||||
|
return req.get(`/community/chief/activity/${activity_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function modiflyChiefActivity(activity_id, params) {
|
||||||
|
return req.post(`/community/chief/activity/${activity_id}`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function confirmDelivery(activity_id) {
|
||||||
|
// 团长确认收货
|
||||||
|
return req.post(`/community/chief/confirm_delivery/${activity_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkChief() {
|
||||||
|
// 检查用户是否是团长
|
||||||
|
return req.post('/community/checkChief')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getActiveDetail(activity_id) {
|
||||||
|
// 消费者获取活动详情
|
||||||
|
return req.get(`/community/member/activity/${activity_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// export function getChiefActiveDetail(activity_id) {
|
||||||
|
// // 团长获取活动详情
|
||||||
|
// return req.get(`/community/chief/activity/${activity_id}`)
|
||||||
|
// }
|
||||||
|
|
||||||
|
export function updateActivityStatus(activity_id, parmas) {
|
||||||
|
// 团长修改活动状态
|
||||||
|
return req.post(`/community/chief/activity_status/${activity_id}`, parmas)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function exportOrder(parmas) {
|
||||||
|
// 导出团购订单
|
||||||
|
return req.get(`/community/orders/export`, parmas)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function scanOrderCode(parmas) {
|
||||||
|
// 核销码
|
||||||
|
return req.post('/community/orders/qr_writeoff', parmas)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function activityOrderItem(activity_id) {
|
||||||
|
// 团长查看活动商品统计
|
||||||
|
return req.post(`/community/chief/activity_order_item/${activity_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function closeCode(parmas) {
|
||||||
|
// 活动核销码
|
||||||
|
return req.post(`/community/orders/batch_writeoff`, parmas)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取所有可团商品
|
||||||
|
export function getMemberItems(params) {
|
||||||
|
return req.get('/community/member/items', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 获取申请信息
|
||||||
|
export function getAppayFields(params) {
|
||||||
|
return req.get('/community/chief/apply_fields', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提交申请
|
||||||
|
export function applyChief(params) {
|
||||||
|
return req.post('/community/chief/apply', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取申请进度
|
||||||
|
export function getApplyChief(params) {
|
||||||
|
return req.get('/community/chief/apply', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取团长申请说明
|
||||||
|
export function aggrementAndExplanation(params) {
|
||||||
|
return req.get('/community/chief/aggrement_and_explanation', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 团长业绩统计
|
||||||
|
export function getChiefCashWithdraw() {
|
||||||
|
return req.get('/community/chief/cash_withdrawal/count')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 团长提现记录
|
||||||
|
export function getCashWithDraw(params) {
|
||||||
|
return req.get('/community/chief/cash_withdrawal', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取团长提现账户
|
||||||
|
export function getCashWithDrawAccount() {
|
||||||
|
return req.get('/community/chief/cash_withdrawal/account' )
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新团长提现账户
|
||||||
|
export function updateCashWithDrawAccount(params) {
|
||||||
|
return req.post('/community/chief/cash_withdrawal/account', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 团长佣金提现申请
|
||||||
|
export function chiefCashWithdraw(params) {
|
||||||
|
return req.post('/community/chief/cash_withdrawal', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
export const HTTP_STATUS = {
|
||||||
|
SUCCESS: 200,
|
||||||
|
CREATED: 201,
|
||||||
|
ACCEPTED: 202,
|
||||||
|
CLIENT_ERROR: 400,
|
||||||
|
UNAUTHORIZED: 401,
|
||||||
|
FORBIDDEN: 403,
|
||||||
|
NOT_FOUND: 404,
|
||||||
|
SERVER_ERROR: 500,
|
||||||
|
BAD_GATEWAY: 502,
|
||||||
|
SERVICE_UNAVAILABLE: 503,
|
||||||
|
GATEWAY_TIMEOUT: 504,
|
||||||
|
BUSINESS_ERROR: 422,
|
||||||
|
TOKEN_NEEDS_REFRESH: 401001,
|
||||||
|
USER_FORBIDDEN: 401002
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,129 @@
|
||||||
|
// import req from './req-dianwu'
|
||||||
|
import { API } from './req'
|
||||||
|
const req = new API({
|
||||||
|
baseURL: process.env.APP_BASE_URL.replace('/h5app/wxapp', '')
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
export function goodsItems(params) {
|
||||||
|
return req.get('/goods/items/onsale', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 商品加入收银台
|
||||||
|
export function addToCart(params) {
|
||||||
|
return req.post('/operator/cartdataadd', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 扫码加入收银台
|
||||||
|
export function scanAddToCart(params) {
|
||||||
|
return req.post('/operator/scancodeAddcart', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 收银台数据查询
|
||||||
|
export function getCartDataList(params) {
|
||||||
|
return req.get('/operator/cartdatalist', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 收银台更新
|
||||||
|
export function updateCartData(params) {
|
||||||
|
return req.post('/operator/cartdataupdate', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除收银台商品
|
||||||
|
export function deleteCartData(cart_id) {
|
||||||
|
return req.delete(`/operator/cartdatadel?cart_id=${cart_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 会员查询接口
|
||||||
|
export function getMembers(params) {
|
||||||
|
return req.get('/members', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 会员创建
|
||||||
|
export function createMember(params) {
|
||||||
|
return req.post('/member', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 收银台结算
|
||||||
|
export function checkout(params) {
|
||||||
|
return req.post('/checkout', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 订单创建
|
||||||
|
export function createOrder(params) {
|
||||||
|
return req.post('/order/create', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 支付
|
||||||
|
export function orderPayment(params) {
|
||||||
|
return req.post('/order/payment', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 支付结果查询
|
||||||
|
export function getPaymentResultByOrder(params) {
|
||||||
|
return req.get('/order/payment/query', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 订单详情
|
||||||
|
export function getTradeDetail(order_id) {
|
||||||
|
return req.get(`/order/${order_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据userid查询会员
|
||||||
|
export function getMemberByUserId(params) {
|
||||||
|
return req.get(`/member`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取优惠券
|
||||||
|
export function getUserCardList(params) {
|
||||||
|
return req.get('/getUserCardList', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 挂单
|
||||||
|
export function orderPendding(params) {
|
||||||
|
return req.post('/operator/cartdata/pending', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 取单
|
||||||
|
export function fetchPendding(params) {
|
||||||
|
return req.post('/operator/pending/fetch', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 挂单列表
|
||||||
|
export function penddingList(params) {
|
||||||
|
return req.get('/operator/pending/list', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除挂单
|
||||||
|
export function penddingDelete(params) {
|
||||||
|
return req.delete('/operator/pending/delete', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 改价
|
||||||
|
export function changePrice (params) {
|
||||||
|
return req.post('/order/markdown', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 改价确认
|
||||||
|
export function changePriceConfirm (params) {
|
||||||
|
return req.post('/order/markdown/confirm', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function is_admin(params) {
|
||||||
|
return req.get('/distributor/bind/checkout', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 订单取消
|
||||||
|
export function cancelTrade(params) {
|
||||||
|
return req.post(`/order/${params.order_id}/cancel`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 申请售后
|
||||||
|
export function salesAfterApply(params) {
|
||||||
|
return req.post('/aftersales/apply', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//开票
|
||||||
|
export function openBill(params) {
|
||||||
|
return req.post('/invoice/invoiced', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,111 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function become() {
|
||||||
|
return req.post('/promoter')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function update(params = {}) {
|
||||||
|
return req.put('/promoter', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function dashboard() {
|
||||||
|
return req.get('/promoter/index')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function info(params = {}) {
|
||||||
|
return req.get('/promoter/info', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function subordinate(params) {
|
||||||
|
return req.get('/promoter/children', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function commission(params = {}) {
|
||||||
|
return req.get('/promoter/brokerages', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function statistics() {
|
||||||
|
return req.get('/promoter/brokerage/count')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function withdrawRecord(params) {
|
||||||
|
return req.get('/promoter/cash_withdrawal', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function withdraw() {
|
||||||
|
return req.post('/promoter/cash_withdrawal')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function qrcode(params) {
|
||||||
|
return req.get('/promoter/qrcode', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function items(params) {
|
||||||
|
return req.get('/promoter/relgoods', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function release(params) {
|
||||||
|
return req.post('/promoter/relgoods', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function unreleased(params) {
|
||||||
|
return req.delete('/promoter/relgoods', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function shopAchievement(params) {
|
||||||
|
return req.get('/promoter/taskBrokerage/count', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function shopTrade(params) {
|
||||||
|
return req.get('/promoter/taskBrokerage/logs', params)
|
||||||
|
}
|
||||||
|
export function shopBanner(params) {
|
||||||
|
return req.get('/promoter/banner', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCategorylevel(params) {
|
||||||
|
return req.get('/goods/categorylevel', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 小店上架分类
|
||||||
|
export function getShopCategorylevel(params) {
|
||||||
|
return req.get('/goods/shopcategorylevel', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCustompage() {
|
||||||
|
return req.get('/promoter/custompage')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCash(params) {
|
||||||
|
return req.post('/promoter/cash_withdrawal', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取小店上架商品
|
||||||
|
export function getShopGoods(params) {
|
||||||
|
return req.get('/goods/shopitems', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询商家是否可用
|
||||||
|
export function merchantIsvaild(params) {
|
||||||
|
return req.get(`/distributor/merchant/isvaild`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取分销员认证信息
|
||||||
|
export function adapayCert(params) {
|
||||||
|
return req.get('/adapay/popularize/cert', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新建分销员认证信息
|
||||||
|
export function adapayCreateCert(params) {
|
||||||
|
return req.post('/adapay/popularize/create_cert', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改分销员认证信息
|
||||||
|
export function adapayUpdateCert(params) {
|
||||||
|
return req.post('/adapay/popularize/update_cert', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取店铺信息
|
||||||
|
export function getDistributorInfo({ distributor_id }) {
|
||||||
|
return req.get(`/distributor/getDistributorInfo?distributor_id=${distributor_id}`)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function groupList (params = {}) {
|
||||||
|
return req.get('/promotions/groups', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function groupDetail (id, params = {}) {
|
||||||
|
return req.get(`/groupOrders/${id}`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function myGroupList (params = {}) {
|
||||||
|
return req.get('/groupOrders', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,279 @@
|
||||||
|
import req from './req'
|
||||||
|
import { transformPlatformUrl } from '@/utils/platform'
|
||||||
|
|
||||||
|
// 登录
|
||||||
|
export const login = (param = {}) => req.post('/wxa/promotion/articles', param)
|
||||||
|
|
||||||
|
// 获取信息
|
||||||
|
export const info = (param = {}) => req.get('/member', param)
|
||||||
|
// export const info = (param = {}) => req.get('/userinfo', param)
|
||||||
|
|
||||||
|
// identity
|
||||||
|
export const identity = (param = {}) => req.get('/distributor', param)
|
||||||
|
|
||||||
|
// 获取模版
|
||||||
|
export const getTemplate = (param = {}) =>
|
||||||
|
req.get(transformPlatformUrl('/alipay/pageparams/setting'), param)
|
||||||
|
|
||||||
|
// promotionArticles
|
||||||
|
export const promotionArticles = (param = {}) => req.get('/promotion/articles', param)
|
||||||
|
|
||||||
|
// promotionArticlesInfo
|
||||||
|
export const promotionArticlesInfo = (param = {}) => req.get('/wxa/promotion/articles/info', param)
|
||||||
|
|
||||||
|
// showMemberCode
|
||||||
|
export const showMemberCode = (param = {}) => req.get('/barcode', param)
|
||||||
|
|
||||||
|
// 获取店铺设置
|
||||||
|
export const getCompanySetting = (param = {}) => req.get('/company/setting', param)
|
||||||
|
|
||||||
|
// 获取分类列表
|
||||||
|
export const getCategoryList = (param = {}) => req.get('/goods/category', param)
|
||||||
|
|
||||||
|
// 获取购物车数据
|
||||||
|
export const getCart = (param = {}) => req.get('/cart', param)
|
||||||
|
|
||||||
|
// 更新购物车
|
||||||
|
export const updateCart = (param = {}) => req.post('/cart', param)
|
||||||
|
|
||||||
|
// 更新商品数量
|
||||||
|
export const updateGoodNum = (param = {}) => req.put('/cartupdate/num', param)
|
||||||
|
|
||||||
|
// 更新商品选中状态
|
||||||
|
export const updateCheckGood = (param = {}) => req.put('/cartupdate/checkstatus', param)
|
||||||
|
|
||||||
|
// 删除商品
|
||||||
|
export const deleteGood = (param = {}) => req.delete('/cartdel', param)
|
||||||
|
|
||||||
|
// 会员注册设置
|
||||||
|
export const registerSetting = (param = {}) => req.get('/member/setting', param)
|
||||||
|
|
||||||
|
// 会员信息
|
||||||
|
export const memeberInfo = (param = {}) => req.get('/member', param)
|
||||||
|
|
||||||
|
// 会员注册
|
||||||
|
export const memberRegister = (param = {}) => req.post('/member', param)
|
||||||
|
|
||||||
|
// decryptPhoneNumber
|
||||||
|
export const decryptPhoneNumber = (param = {}) => req.get('/member/decryptPhoneInfo', param)
|
||||||
|
|
||||||
|
// receiveVip
|
||||||
|
export const receiveVip = (param = {}) => req.get('/promotion/getMemberCard', param)
|
||||||
|
|
||||||
|
// card列表
|
||||||
|
export const getCardList = (param = {}) => req.get('/getCardList', param)
|
||||||
|
|
||||||
|
// userCardList
|
||||||
|
export const getUserCardList = (param = {}) => req.get('/user/newGetCardList', param)
|
||||||
|
|
||||||
|
// receiveCard
|
||||||
|
export const receiveCard = (param = {}) => req.get('/user/effectiveCardlist', param)
|
||||||
|
|
||||||
|
// getCardDetail
|
||||||
|
export const getCardDetail = (param = {}) => req.get('/user/getCardDetail', param)
|
||||||
|
|
||||||
|
// useUserCard
|
||||||
|
export const useUserCard = (param = {}) => req.get('/user/usedCard', param)
|
||||||
|
|
||||||
|
// 支付设置
|
||||||
|
export const payConfig = (param = {}) => req.get('/payment/config', param)
|
||||||
|
|
||||||
|
// 门店列表
|
||||||
|
export const getStoreList = (param = {}) => req.get('/distributor/list', param)
|
||||||
|
|
||||||
|
// 店铺列表
|
||||||
|
export const getShopList = (param = {}) => req.get('/shops/wxshops', param)
|
||||||
|
|
||||||
|
// 附近店铺列表
|
||||||
|
export const getNearShop = (param = {}) => req.get('/shops/getNearestWxShops', param)
|
||||||
|
|
||||||
|
// 店铺详情
|
||||||
|
export const getShopDetail = (param = {}) => req.get('/shops/wxshops', param)
|
||||||
|
|
||||||
|
// getRechargeRules
|
||||||
|
export const getRechargeRules = (param = {}) => req.get('/weapp/deposit/rechargerules', param)
|
||||||
|
|
||||||
|
// getRechargeAgreement
|
||||||
|
export const getRechargeAgreement = (param = {}) =>
|
||||||
|
req.get('/weapp/deposit/recharge/agreement', param)
|
||||||
|
|
||||||
|
// deposit recharge
|
||||||
|
export const depositRecharge = (param = {}) => req.post('/weapp/deposit/recharge', param)
|
||||||
|
|
||||||
|
// item list
|
||||||
|
export const getItemList = (param = {}) => req.get('/goods/items', param)
|
||||||
|
|
||||||
|
// item detail
|
||||||
|
export const getItemDetail = (param = {}) => req.get('/goods/items/', param)
|
||||||
|
|
||||||
|
// reservation add
|
||||||
|
export const addReservation = (param = {}) => req.post('/reservation', param)
|
||||||
|
|
||||||
|
// reservation getDateList
|
||||||
|
export const getDateList = (param = {}) => req.get('/reservation/dateDay', param)
|
||||||
|
|
||||||
|
// reservation getTimeList
|
||||||
|
export const getTimeList = (param = {}) => req.get('/reservation/timelist', param)
|
||||||
|
|
||||||
|
// getRecordList
|
||||||
|
export const getRecordList = (param = {}) => req.get('/reservation/recordlist', param)
|
||||||
|
|
||||||
|
// getCount
|
||||||
|
export const getCount = (param = {}) => req.get('/reservation/getCount', param)
|
||||||
|
|
||||||
|
// getCanReservationRights
|
||||||
|
export const getCanReservationRights = (param = {}) => req.get('/can/reservation/rights', param)
|
||||||
|
|
||||||
|
// rights list
|
||||||
|
export const getRightsList = (param = {}) => req.get('/rights', param)
|
||||||
|
|
||||||
|
// rights detail
|
||||||
|
export const getRightsDetail = (param = {}) => req.get('/rights', param)
|
||||||
|
|
||||||
|
// rights code
|
||||||
|
export const getRightsCode = (param = {}) => req.get('/rightscode', param)
|
||||||
|
|
||||||
|
// rights logs
|
||||||
|
export const getRightsLogs = (param = {}) => req.get('/rightsLogs', param)
|
||||||
|
|
||||||
|
// tracks viewnum
|
||||||
|
export const viewNum = (param = {}) => req.post('/track/viewnum', param)
|
||||||
|
|
||||||
|
// 创建订单
|
||||||
|
export const createOrder = (param = {}) => req.post('/order', param)
|
||||||
|
|
||||||
|
// 获取订单列表
|
||||||
|
export const getOrderList = (param = {}) => req.get('/orders', param)
|
||||||
|
|
||||||
|
// 获取订单数量
|
||||||
|
export const getOrderCount = (param = {}) => req.get('/orders/count', param)
|
||||||
|
|
||||||
|
export const getOrderCounts = (param = {}) => req.get('/orderscount', param)
|
||||||
|
|
||||||
|
// 获取订单详情
|
||||||
|
export const getOrderDetail = (param = {}) => req.get(`/order/${param.orderId}`)
|
||||||
|
|
||||||
|
// 计算订单
|
||||||
|
export const getCalculateTotal = (param = {}) => req.post('/getFreightFee', param)
|
||||||
|
|
||||||
|
// 获取自提码
|
||||||
|
export const getZitiCode = (param = {}) => req.get('/ziticode', param)
|
||||||
|
|
||||||
|
// 取消订单
|
||||||
|
export const cancelOrder = (param = {}) => req.post('/order/cancel', param)
|
||||||
|
|
||||||
|
// 确认收据
|
||||||
|
export const confirmReceipt = (param = {}) => req.post('/order/confirmReceipt', param)
|
||||||
|
|
||||||
|
// 售后申请
|
||||||
|
export const applyAfterSale = (param = {}) => req.post('/aftersales', param)
|
||||||
|
|
||||||
|
// 售后信息
|
||||||
|
export const getAfterSale = (param = {}) => req.get('/aftersales/info', param)
|
||||||
|
|
||||||
|
// 售后列表
|
||||||
|
export const getAfterList = (param = {}) => req.get('/aftersales', param)
|
||||||
|
|
||||||
|
// 关闭售后
|
||||||
|
export const closeAfterSale = (param = {}) => req.post('/aftersales/close', param)
|
||||||
|
|
||||||
|
// 发送反馈
|
||||||
|
export const sendBack = (param = {}) => req.post('/aftersales/sendback', param)
|
||||||
|
|
||||||
|
// 修改售后
|
||||||
|
export const modifyAfterSale = (param = {}) => req.post('/aftersales/modify', param)
|
||||||
|
|
||||||
|
// promotion
|
||||||
|
export const promotionFormId = (param = {}) => req.post('/promotion/formid', param)
|
||||||
|
|
||||||
|
// promotion register
|
||||||
|
export const promotionRegister = (param = {}) => req.post('/promotion/register', param)
|
||||||
|
|
||||||
|
// cash list
|
||||||
|
export const getCashList = (param = {}) => req.get('/cash_withdrawals', param)
|
||||||
|
|
||||||
|
// cash Application
|
||||||
|
export const cashApplication = (param = {}) => req.get('/cash_withdrawal', param)
|
||||||
|
|
||||||
|
// cash statics
|
||||||
|
export const getCashStatics = (param = {}) => req.get('/distributor/count', param)
|
||||||
|
|
||||||
|
// cash distributorIsValid
|
||||||
|
export const getCashDistributorIsValid = (param = {}) => req.get('/distributor/is_valid', param)
|
||||||
|
|
||||||
|
// 文章
|
||||||
|
export const viewArticle = (param = {}) => req.get('/article/management', param)
|
||||||
|
|
||||||
|
// 会员等级
|
||||||
|
export const vipBuy = (param = {}) => req.post('/vipgrades/buy', param)
|
||||||
|
|
||||||
|
// 会员购列表
|
||||||
|
export const getVipList = (param = {}) => req.get('/vipgrades/newlist', param)
|
||||||
|
|
||||||
|
// userVip
|
||||||
|
export const getUserVip = (param = {}) => req.get('/vipgrades/uservip', param)
|
||||||
|
|
||||||
|
// currency default
|
||||||
|
export const currencyDefault = (param = {}) => req.get('/currencyGetDefault', param)
|
||||||
|
|
||||||
|
// beDistributor
|
||||||
|
export const beDistributor = (param = {}) => req.post('/promoter', param)
|
||||||
|
|
||||||
|
// reDistributor
|
||||||
|
export const reDistributor = (param = {}) => req.put('/promoter', param)
|
||||||
|
|
||||||
|
// promoter index
|
||||||
|
export const promoterIndex = (param = {}) => req.get('/promoter/index', param)
|
||||||
|
|
||||||
|
// promoterInfo
|
||||||
|
export const promoterInfo = (param = {}) => req.get('/promoter/info', param)
|
||||||
|
|
||||||
|
// promoter children
|
||||||
|
export const promoterChildren = (param = {}) => req.get('/promoter/children', param)
|
||||||
|
|
||||||
|
// promoter brokerages
|
||||||
|
export const promoterBrokerages = (param = {}) => req.get('/promoter/brokerages', param)
|
||||||
|
|
||||||
|
// promoter statistics
|
||||||
|
export const promoterStatistics = (param = {}) => req.get('/promoter/brokerage/count', param)
|
||||||
|
|
||||||
|
// propmoter withdrawRecord
|
||||||
|
export const promoterWithdrawRecord = (param = {}) => req.get('/promoter/cash_withdrawal', param)
|
||||||
|
|
||||||
|
// promoter withdraw
|
||||||
|
export const promoterWithdraw = (param = {}) => req.post('/promoter/cash_withdrawal', param)
|
||||||
|
|
||||||
|
// promoter qrcode
|
||||||
|
export const promoterQrcode = (param = {}) => req.get('/promoter/qrcode', param)
|
||||||
|
|
||||||
|
// 图片上传
|
||||||
|
export const uploadImage = (param = {}) => req.get('/espier/image_upload_token', param)
|
||||||
|
|
||||||
|
// 活动详情
|
||||||
|
export const activityDetail = (param = {}) =>
|
||||||
|
req.get('/promotion/community/activityitemslist', param)
|
||||||
|
|
||||||
|
// 活动商品详情
|
||||||
|
export const activityGoodDetail = (param = {}) =>
|
||||||
|
req.get('/promotion/community/activityitemsinfo', param)
|
||||||
|
|
||||||
|
// 附近活动社区
|
||||||
|
export const activityCommunity = (param = {}) => req.get('/promotion/community/nearInfo', param)
|
||||||
|
|
||||||
|
// 活动社区列表
|
||||||
|
export const activityCommunityList = (param = {}) => req.get('/promotion/community/list', param)
|
||||||
|
|
||||||
|
// 活动社区详情
|
||||||
|
export const activityCommunityDetail = (param = {}) => req.get('/promotion/community/info', param)
|
||||||
|
|
||||||
|
// updateSalesCount
|
||||||
|
export const updateSalesCount = (param = {}) =>
|
||||||
|
req.get('/promotion/community/activityitemsales', param)
|
||||||
|
|
||||||
|
// getActivitySaleHistory
|
||||||
|
export const getActivitySaleHistory = (param = {}) =>
|
||||||
|
req.get('/promotion/community/activitySaleHistory', param)
|
||||||
|
|
||||||
|
// getActivityItemSaleHistory
|
||||||
|
export const getActivityItemSaleHistory = (param = {}) =>
|
||||||
|
req.get('/promotion/community/activityItemSaleHistory', param)
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
import req from './req'
|
||||||
|
import S from '@/spx'
|
||||||
|
import { transformPlatformUrl } from '@/utils/platform'
|
||||||
|
|
||||||
|
function createHead() {
|
||||||
|
return {
|
||||||
|
header: {
|
||||||
|
'x-wxapp-session': (S && S.getAuthToken()) || '',
|
||||||
|
'salesperson-type': 'shopping_guide'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//获取首页导购模版
|
||||||
|
export function getHomeTmps(params = {}, config = createHead()) {
|
||||||
|
return req.get(transformPlatformUrl('/pageparams/setting'), params, config)
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取导购店铺列表
|
||||||
|
export function distributorlist(params = {}, config = createHead()) {
|
||||||
|
return req.get('/salesperson/distributorlist', params, config)
|
||||||
|
}
|
||||||
|
//验证导购员的店铺id是否有效
|
||||||
|
export function is_valid(params = {}, config = createHead()) {
|
||||||
|
return req.get('/salesperson/distributor/is_valid', params, config)
|
||||||
|
}
|
||||||
|
//扫条形码加入购物车
|
||||||
|
export function scancodeAddcart(params = {}, config = createHead()) {
|
||||||
|
return req.post('/salesperson/scancodeAddcart', params, config)
|
||||||
|
}
|
||||||
|
|
||||||
|
// //计算导购分享订单商品金额
|
||||||
|
// export function salesPromotion(params = {}, config = createHead()) {
|
||||||
|
// return req.post("/salesperson/salesPromotion", params, config);
|
||||||
|
// }
|
||||||
|
|
||||||
|
//导购员购物车新增
|
||||||
|
export function cartdataadd(params = {}, config = createHead()) {
|
||||||
|
return req.get('/salesperson/cartdataadd', params, config)
|
||||||
|
}
|
||||||
|
//导购员购物车更新
|
||||||
|
export function cartdataupdate(params = {}, config = createHead()) {
|
||||||
|
return req.get('/salesperson/cartdataupdate', params, config)
|
||||||
|
}
|
||||||
|
//获取导购员购物车列表
|
||||||
|
export function cartdatalist(params = {}, config = createHead()) {
|
||||||
|
return req.get('/salesperson/cartdatalist', params, config)
|
||||||
|
}
|
||||||
|
// 获取购物车数量
|
||||||
|
export function cartCount(params = {}, config = createHead()) {
|
||||||
|
return req.get('/salesperson/cartcount', params, config)
|
||||||
|
}
|
||||||
|
|
||||||
|
//导购员购物车删除
|
||||||
|
export function cartdatadel(params = {}, config = createHead()) {
|
||||||
|
return req.get('/salesperson/cartdatadel', params, config)
|
||||||
|
}
|
||||||
|
//导购购物车选中状态变更
|
||||||
|
export function checkstatus(params = {}, config = createHead()) {
|
||||||
|
return req.put('/salesperson/cartupdate/checkstatus', params, config)
|
||||||
|
}
|
||||||
|
|
||||||
|
//生成海报的二维码,增加一个参数 salesman_distributor_id:导购的店铺id
|
||||||
|
//计算导购分享订单商品金额
|
||||||
|
export function salesPromotion(params = {}, config = createHead()) {
|
||||||
|
return req.get('/salesperson/salesPromotion', params, config)
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取导购货架商品列表 wxapp/goods/salesperson/items
|
||||||
|
export function salespersonItems(params = {}, config = createHead()) {
|
||||||
|
return req.get('/goods/salesperson/items', params, config, { showLoading: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新导购敏感信息
|
||||||
|
export function updateBAInfo(params = {}, config = createHead()) {
|
||||||
|
return req.post("/salesperson/bainfo", params, config);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function getImConfigByDistributor (distributor_id) {
|
||||||
|
return req.get(`/im/meiqia/distributor/${distributor_id}`)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
import * as article from './article'
|
||||||
|
import * as aftersales from './aftersales'
|
||||||
|
import * as cart from './cart'
|
||||||
|
import * as cashier from './cashier'
|
||||||
|
import * as category from './category'
|
||||||
|
import * as distribution from './distribution'
|
||||||
|
import * as item from './item'
|
||||||
|
import * as member from './member'
|
||||||
|
import * as promotion from './promotion'
|
||||||
|
import * as region from './region'
|
||||||
|
import * as seckill from './seckill'
|
||||||
|
import * as shop from './shop'
|
||||||
|
import * as track from './track'
|
||||||
|
import * as trade from './trade'
|
||||||
|
import * as user from './user'
|
||||||
|
import * as vip from './vip'
|
||||||
|
import * as group from './group'
|
||||||
|
import * as groupBy from './groupBy'
|
||||||
|
import * as boost from './boost'
|
||||||
|
import * as wx from './wx'
|
||||||
|
import * as alipay from './alipay'
|
||||||
|
import * as wheel from './wheel'
|
||||||
|
import * as pointitem from './pointitem'
|
||||||
|
import * as liveroom from './liveroom'
|
||||||
|
import * as wgts from './wgts'
|
||||||
|
import * as merchant from './merchant'
|
||||||
|
import * as purchase from './purchase'
|
||||||
|
import * as guide from './guide'
|
||||||
|
import * as dianwu from './dianwu'
|
||||||
|
import * as community from './community'
|
||||||
|
import * as im from './im'
|
||||||
|
import * as mdugc from './mdugc'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
article,
|
||||||
|
aftersales,
|
||||||
|
cart,
|
||||||
|
cashier,
|
||||||
|
category,
|
||||||
|
item,
|
||||||
|
member,
|
||||||
|
promotion,
|
||||||
|
region,
|
||||||
|
trade,
|
||||||
|
user,
|
||||||
|
seckill,
|
||||||
|
wx,
|
||||||
|
shop,
|
||||||
|
distribution,
|
||||||
|
track,
|
||||||
|
vip,
|
||||||
|
group,
|
||||||
|
groupBy,
|
||||||
|
wheel,
|
||||||
|
boost,
|
||||||
|
pointitem,
|
||||||
|
guide,
|
||||||
|
alipay,
|
||||||
|
liveroom,
|
||||||
|
wgts,
|
||||||
|
merchant,
|
||||||
|
purchase,
|
||||||
|
dianwu,
|
||||||
|
community,
|
||||||
|
im,
|
||||||
|
mdugc
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,74 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function search (params = {}) {
|
||||||
|
// return req.get('/item.search', params)
|
||||||
|
return req.get('/goods/items', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function detail (item_id, params = {}) {
|
||||||
|
return req.get(`/goods/items/${item_id}`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function desc (item_id) {
|
||||||
|
return req.get('/item.desc', { item_id })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function rateList (item_id) {
|
||||||
|
return req.get('/item.rate.list', { item_id })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function category () {
|
||||||
|
return req.get('/category.itemCategory')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function seckillCheck ({ item_id, num = 1, seckill_id }) {
|
||||||
|
return req.get('/promotion/seckillactivity/geticket', {
|
||||||
|
item_id,
|
||||||
|
num,
|
||||||
|
seckill_id
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function seckillCancelCheck () {
|
||||||
|
return req.delete('/promotion/seckillactivity/cancelTicket')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function packageList (params = {}) {
|
||||||
|
return req.get('/promotions/package', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function packageDetail (item_id) {
|
||||||
|
return req.get(`/promotions/package/${item_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function evaluationList (params) {
|
||||||
|
return req.get('/order/rate/list', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function replyRate (params) {
|
||||||
|
return req.post('/order/replyRate', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getEvaluationDetail (rate_id, params = {}) {
|
||||||
|
return req.get(`/order/rate/detail/${rate_id}`, params)
|
||||||
|
}
|
||||||
|
export function getreplyRateList (params = {}) {
|
||||||
|
return req.get(`/order/replyRate/list`, params)
|
||||||
|
}
|
||||||
|
export function getRatePraiseStatus (params = {}) {
|
||||||
|
return req.get(`/order/ratePraise/status`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getDetailShare (params) {
|
||||||
|
return req.post('/salesperson/task/share', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取分享配置
|
||||||
|
export function getShareSetting (id) {
|
||||||
|
return req.get(`/goods/share/items/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取是否分享携带店铺id配置
|
||||||
|
export function getShareDtidSetting () {
|
||||||
|
return req.get(`/common/setting`)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function getLiveRoomList (params = {}) {
|
||||||
|
// 获取直播列表
|
||||||
|
return req.get('/promotion/live/list', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getReturnList () {
|
||||||
|
// 获取视频回放列表
|
||||||
|
return req.get('/promotion/replay/list')
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,109 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
// 首页列表
|
||||||
|
|
||||||
|
export function yuyueActivityList(data) {
|
||||||
|
return req.get("/article/usermanagement", data);
|
||||||
|
}
|
||||||
|
// 笔记
|
||||||
|
// 笔记列表
|
||||||
|
export function postlist(data) {
|
||||||
|
return req.get("/ugc/post/list", data);
|
||||||
|
}
|
||||||
|
// 发布笔记
|
||||||
|
export function create( params ) {
|
||||||
|
return req.post("/ugc/post/create",params)
|
||||||
|
}
|
||||||
|
// 笔记详情
|
||||||
|
export function postdetail(params) {
|
||||||
|
return req.get("/ugc/post/detail", params);
|
||||||
|
}
|
||||||
|
// 笔记点赞
|
||||||
|
export function postlike( params ) {
|
||||||
|
return req.post("/ugc/post/like",params)
|
||||||
|
}
|
||||||
|
// 收藏|取消收藏
|
||||||
|
export function postfavorite( params ) {
|
||||||
|
return req.post("/ugc/post/favorite",params)
|
||||||
|
}
|
||||||
|
// 删除笔记
|
||||||
|
export function postdelete( params ) {
|
||||||
|
return req.post("/ugc/post/delete",params)
|
||||||
|
}
|
||||||
|
// 分享笔记
|
||||||
|
export function postshare( params ) {
|
||||||
|
return req.post("/ugc/post/share",params)
|
||||||
|
}
|
||||||
|
// 笔记设置
|
||||||
|
export function postsetting(params) {
|
||||||
|
return req.get("/ugc/post/setting", params);
|
||||||
|
}
|
||||||
|
|
||||||
|
// tag
|
||||||
|
// 添加tag
|
||||||
|
export function tagcreate( params ) {
|
||||||
|
return req.post("/ugc/tag/create",params)
|
||||||
|
}
|
||||||
|
// tag列表
|
||||||
|
export function taglist( params ) {
|
||||||
|
return req.get("/ugc/tag/list",params)
|
||||||
|
}
|
||||||
|
// 话题
|
||||||
|
// 创建话题
|
||||||
|
export function topiccreate( params ) {
|
||||||
|
return req.post("/ugc/topic/create",params)
|
||||||
|
}
|
||||||
|
// 话题列表
|
||||||
|
export function topiclist( params ) {
|
||||||
|
return req.get("/ugc/topic/list",params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 评论
|
||||||
|
// 发表评论
|
||||||
|
export function commentcreate( params ) {
|
||||||
|
return req.post("/ugc/comment/create",params)
|
||||||
|
}
|
||||||
|
// 评论列表
|
||||||
|
export function commentlist( params ) {
|
||||||
|
return req.get("/ugc/comment/list",params)
|
||||||
|
}
|
||||||
|
// 点赞评论
|
||||||
|
export function commentlike( params ) {
|
||||||
|
return req.post("/ugc/comment/like",params)
|
||||||
|
}
|
||||||
|
// 删除评论
|
||||||
|
export function commentdelete( params ) {
|
||||||
|
return req.post("/ugc/comment/delete",params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 粉丝
|
||||||
|
// 获取粉丝列表
|
||||||
|
export function followerlist( params ) {
|
||||||
|
return req.get("/ugc/follower/list",params)
|
||||||
|
}
|
||||||
|
// 关注|取消关注
|
||||||
|
export function followercreate( params ) {
|
||||||
|
return req.post("/ugc/follower/create",params)
|
||||||
|
}
|
||||||
|
// 获取统计数量
|
||||||
|
export function followerstat( params ) {
|
||||||
|
return req.get("/ugc/follower/stat",params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 消息
|
||||||
|
// 设置为已读(按类型,从哪个类型点进去就发起请求
|
||||||
|
export function messagesetTohasRead( params ) {
|
||||||
|
return req.post("/ugc/message/setTohasRead",params)
|
||||||
|
}
|
||||||
|
// 获取消息列表
|
||||||
|
export function messagelist( params ) {
|
||||||
|
return req.get("/ugc/message/list",params)
|
||||||
|
}
|
||||||
|
// 获取消息详情
|
||||||
|
export function messagedetail( params ) {
|
||||||
|
return req.get("/ugc/message/detail",params)
|
||||||
|
}
|
||||||
|
// 消息桌面
|
||||||
|
export function messagedashboard( params ) {
|
||||||
|
return req.get("/ugc/message/dashboard",params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,385 @@
|
||||||
|
import req from './req'
|
||||||
|
import { platformTemplateName, transformPlatformUrl } from '@/utils/platform'
|
||||||
|
|
||||||
|
export function memberInfo() {
|
||||||
|
return req.get('/member')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改用户信息
|
||||||
|
export function setMemberInfo(params = {}) {
|
||||||
|
return req.put('/member', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateMemberInfo(params = {}) {
|
||||||
|
return req.put('/memberinfo', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 注销用户
|
||||||
|
export function deleteMember(params) {
|
||||||
|
return req.delete('/member', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新会员手机号
|
||||||
|
export function setMemberMobile(params = {}) {
|
||||||
|
return req.put('/member/mobile', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointDetail() {
|
||||||
|
return req.get('/member.point.detail')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function favsList(params = {}) {
|
||||||
|
return req.get('/member/collect/item', params, null, { showError: false })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addFav(item_id, params) {
|
||||||
|
return req.post(`/member/collect/item/${item_id}`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function delFav(item_ids, params = {}) {
|
||||||
|
item_ids = Array.isArray(item_ids) ? item_ids : [item_ids]
|
||||||
|
const { is_empty = false } = params
|
||||||
|
return req.delete('/member/collect/item', {
|
||||||
|
item_ids,
|
||||||
|
is_empty
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function memberAssets() {
|
||||||
|
return req.get(`/member/statistical`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function couponList(params = {}) {
|
||||||
|
return req.get('/user/newGetCardList', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getUserCardList(params = {}) {
|
||||||
|
return req.get('/user/getUserCardList', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function homeCouponList(params = {}) {
|
||||||
|
return req.get('/getCardList', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function homeCouponGet(params = {}) {
|
||||||
|
return req.get('/user/receiveCard', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCardDetail(params = {}) {
|
||||||
|
return req.get('/user/getCardDetail', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function userUsedCard(params = {}) {
|
||||||
|
return req.get('/user/usedCard', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addressList(params) {
|
||||||
|
return req.get('/member/addresslist', params)
|
||||||
|
}
|
||||||
|
export function crmAddressList(params = {}) {
|
||||||
|
//获取crm地址
|
||||||
|
return req.post('/member/crmaddresslist', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addressCreate(params = {}) {
|
||||||
|
return req.post('/member/address', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addressUpdate(data) {
|
||||||
|
return req.put(`/member/address/${data.address_id}`, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addressDelete(address_id) {
|
||||||
|
return req.delete(`/member/address/${address_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*export function areaList () {
|
||||||
|
return req.get('/member/addressarea')
|
||||||
|
}*/
|
||||||
|
|
||||||
|
export function areaList() {
|
||||||
|
return req.get('/espier/address')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addressCreateOrUpdate(data) {
|
||||||
|
const fn = data.address_id ? addressUpdate : addressCreate
|
||||||
|
return fn(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function itemHistorySave(item_id) {
|
||||||
|
return req.post('/member/browse/history/save', { item_id })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function itemHistory(params) {
|
||||||
|
return req.get('/member/browse/history/list', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getRechargeNumber() {
|
||||||
|
return req.get('/deposit/rechargerules')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 充值
|
||||||
|
export function rehcargePay(params) {
|
||||||
|
return req.post('/deposit/recharge', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function qrcodeData() {
|
||||||
|
return req.get('/promoter/qrcode')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function memberCode(params) {
|
||||||
|
return req.get('/barcode', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function promoter() {
|
||||||
|
return req.post('/promoter')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function h5_qrcodeData() {
|
||||||
|
return req.get('/brokerage/qrcode')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointList(params = {}) {
|
||||||
|
return req.get('/member/dh/point/history', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointTotal() {
|
||||||
|
return req.get('/point/member/info')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function depositList(params = {}) {
|
||||||
|
return req.get('/deposit/list', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function depositTotal() {
|
||||||
|
return req.get('/deposit/info')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function depositPay(params = {}) {
|
||||||
|
return req.post('/deposit/recharge_new', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function depositPayRule() {
|
||||||
|
return req.get('/deposit/recharge/agreement')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function formId(formid) {
|
||||||
|
return req.post('/promotion/formid', { formid })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function recommendUserInfo() {
|
||||||
|
return req.get('/promoter/info')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function recommendIndexInfo() {
|
||||||
|
return req.get('/promoter/index')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function recommendMember(params = {}) {
|
||||||
|
return req.get('/promoter/children', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function recommendOrder(params = {}) {
|
||||||
|
return req.get('/promoter/brokerages', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function depositToPoint(params = {}) {
|
||||||
|
return req.post('/deposit/to/point', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointDraw(params = {}) {
|
||||||
|
return req.get('/promotion/luckydraw', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointDrawRule() {
|
||||||
|
return req.get('/promotion/luckyrules')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointDrawSwiper() {
|
||||||
|
return req.get('/promotion/luckydraw_show')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointDrawDetail(luckydraw_id) {
|
||||||
|
return req.get(`/promotion/luckydraw/${luckydraw_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointDrawIntro(item_id) {
|
||||||
|
return req.get(`/goods/itemintro/${item_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointDrawPay(params = {}) {
|
||||||
|
return req.post('/promotion/luckydraworder', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointDrawPayList(params = {}) {
|
||||||
|
return req.get('/promotion/luckydraw/joinactivitys', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointDrawLuck(params = {}) {
|
||||||
|
return req.get('/promotion/luckydrawmember', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointOrderDetail(luckydraw_trade_id) {
|
||||||
|
return req.get(`/promotion/member/luckydraworder/${luckydraw_trade_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointOrderAddress(params = {}) {
|
||||||
|
return req.post('/promotion/member/luckyaddress', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointOrderConfirm(params = {}) {
|
||||||
|
return req.post('/promotion/member/luckyorderfinish', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointDrawLuckAll() {
|
||||||
|
return req.get(`/promotion/luckydrawmember`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointMyOrder(params = {}) {
|
||||||
|
return req.get(`/promotion/luckydrawjoinlist`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointAllOrder(luckydraw_id, params = {}) {
|
||||||
|
return req.get(`/promotion/luckydraw/alljoinlist/${luckydraw_id}`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointCompute(luckydraw_id) {
|
||||||
|
return req.get(`/promotion/luckydraw/winning/${luckydraw_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointCheckLucky(luckydraw_id) {
|
||||||
|
return req.get(`/promotion/luckydraw/checkwinning/${luckydraw_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pointComputeResult(luckydraw_id) {
|
||||||
|
return req.get(`/promotion/luckydraw/luckylogic/${luckydraw_id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function storeFav(id) {
|
||||||
|
return req.post(`/member/collect/distribution/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function storeFavDel(id) {
|
||||||
|
return req.delete('/member/collect/distribution', { distributor_id: id })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function storeFavList() {
|
||||||
|
return req.get('/member/collect/distribution')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function storeFavCount(params = {}) {
|
||||||
|
return req.get('/member/collect/distribution/num', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function storeIsFav(id) {
|
||||||
|
return req.get('/member/collect/distribution/check', { distributor_id: id })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function receiveVip() {
|
||||||
|
return req.get('/promotion/getMemberCard')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取导购信息
|
||||||
|
export function getSalesperson(params = {}) {
|
||||||
|
return req.get('/salesperson', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取导购投诉列表
|
||||||
|
export function getComplaintsList(params = {}) {
|
||||||
|
return req.get('/salesperson/complaintsList', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导购投诉
|
||||||
|
export function setComplaints(params = {}) {
|
||||||
|
return req.post('/salesperson/complaints', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取导购投诉详情
|
||||||
|
export function getComplaintsDetail(id, params = {}) {
|
||||||
|
return req.get(`/salesperson/complaintsDetail/${id}`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取导购
|
||||||
|
export function getUsersalespersonrel(params = {}) {
|
||||||
|
return req.get('/usersalespersonrel', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 绑定导购
|
||||||
|
export function setUsersalespersonrel(params = {}) {
|
||||||
|
return req.post('/usersalespersonrel', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取积分列表
|
||||||
|
export function getPointList(params = {}) {
|
||||||
|
return req.get('/member/pointLogList', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
export function getSalespersonNologin(params = {}) {
|
||||||
|
return req.get('/salesperson/nologin', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
export function getUserNewGetCardDetail(params = {}) {
|
||||||
|
return req.get('/user/newGetCardDetail', params)
|
||||||
|
}
|
||||||
|
// 经销商入驻申请
|
||||||
|
export function hfpayApplySave(params = {}) {
|
||||||
|
return req.post('/hfpay/applysave', params)
|
||||||
|
}
|
||||||
|
// 经销商入驻详情
|
||||||
|
export function hfpayUserApply(params = {}) {
|
||||||
|
return req.get('/hfpay/userapply', params)
|
||||||
|
}
|
||||||
|
// 绑定银行卡
|
||||||
|
export function hfpayBankSave(params = {}) {
|
||||||
|
return req.post('/hfpay/banksave', params)
|
||||||
|
}
|
||||||
|
// 获取绑定银行卡
|
||||||
|
export function hfpayBankInfo(params = {}) {
|
||||||
|
return req.get('/hfpay/bankinfo', params)
|
||||||
|
}
|
||||||
|
// 获取获取支付方式
|
||||||
|
export function getTradePaymentList(params = {}) {
|
||||||
|
return req.get('/trade/payment/list', params)
|
||||||
|
}
|
||||||
|
// 获取新的支付方式
|
||||||
|
export function getNewTradePaymentList(params = {}) {
|
||||||
|
return req.get('/trade/withdraw/list', params)
|
||||||
|
}
|
||||||
|
export function getIsHf(params = {}) {
|
||||||
|
return req.get('/trade/payment/hfpayversionstatus', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取是否开启获取crm地址
|
||||||
|
export function getCrmsetting() {
|
||||||
|
return req.get('/member/crmsetting')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 配置地址
|
||||||
|
export function getSettingCenter() {
|
||||||
|
return req.get(transformPlatformUrl('/alipay/pageparams/setting'), {
|
||||||
|
template_name: platformTemplateName,
|
||||||
|
version: 'v1.0.1',
|
||||||
|
page_name: 'member_center_menu_setting'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取核销码
|
||||||
|
export function getQRcode(params) {
|
||||||
|
return req.get('/user/exchangeCardInfo', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 会员等级
|
||||||
|
export function getMemberCard() {
|
||||||
|
return req.get('/membercard/grades')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 会员中心分享配置
|
||||||
|
export function getMemberShareConfig() {
|
||||||
|
return req.get('/memberCenterShare/getInfo')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function is_admin(params) {
|
||||||
|
return req.get('/distributor/bind/checkout', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
//商户类型列表
|
||||||
|
export function type_list (params) {
|
||||||
|
return req.get('/merchant/type/list', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//结算银行列表
|
||||||
|
export function bank_list (params) {
|
||||||
|
return req.get('/adapay/bank/list', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//商户登陆
|
||||||
|
export function login (params) {
|
||||||
|
return req.post('/merchant/login', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取当前进行到哪一步
|
||||||
|
export function getStep (params) {
|
||||||
|
return req.get('/merchant/settlementapply/step', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//保存信息
|
||||||
|
export function save (params) {
|
||||||
|
return req.post(`/merchant/settlementapply/${params.step}`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取基础设置
|
||||||
|
export function getSetting (params) {
|
||||||
|
return req.get(`/merchant/basesetting`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取审核结果
|
||||||
|
export function getAuditstatus (params) {
|
||||||
|
return req.get(`/merchant/settlementapply/auditstatus`, params)
|
||||||
|
}
|
||||||
|
//重新获取密码
|
||||||
|
export function getResetPsd () {
|
||||||
|
return req.post(`/merchant/password/reset`)
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取申请详情
|
||||||
|
export function detail () {
|
||||||
|
return req.get(`/merchant/settlementapply/detail`)
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取密码
|
||||||
|
export function getPassword () {
|
||||||
|
return req.get(`/merchant/password/reset`)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* @Author: your name
|
||||||
|
* @Date: 2021-02-25 14:40:11
|
||||||
|
* @LastEditTime: 2021-02-25 19:27:19
|
||||||
|
* @LastEditors: Please set LastEditors
|
||||||
|
* @Description: In User Settings Edit
|
||||||
|
* @FilePath: /ecshopx-newpc/Users/wujiabao/Desktop/work/ecshopx-vshop/src/api/pointitem.js
|
||||||
|
*/
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function search (params = {}) {
|
||||||
|
// return req.get('/item.search', params)
|
||||||
|
return req.get('/pointsmall/goods/items', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取商城配置
|
||||||
|
export function getPointitemSetting (params = {}) {
|
||||||
|
// return req.get('/item.search', params)
|
||||||
|
return req.get('/pointsmall/setting', params)
|
||||||
|
}
|
||||||
|
//获取分类
|
||||||
|
export function getPointitemCategory (params = {}) {
|
||||||
|
// return req.get('/item.search', params)
|
||||||
|
return req.get('/pointsmall/goods/category', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//商品详情
|
||||||
|
export function detail (item_id, params = {}) {
|
||||||
|
return req.get(`/pointsmall/goods/items/${item_id}`, params)
|
||||||
|
}
|
||||||
|
//猜你喜欢
|
||||||
|
export function likeList (params) {
|
||||||
|
return req.get(`/pointsmall/lovely/goods/items`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取积分规则
|
||||||
|
export function getPointSetting (params = {}) {
|
||||||
|
return req.get('/point/rule', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取会员积分信息
|
||||||
|
export function getMypoint (params = {}) {
|
||||||
|
return req.get('/point/member/info', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取会员积分记录列表
|
||||||
|
export function getMemberPointList (params = {}) {
|
||||||
|
return req.get('/point/member', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function automatic (params = {}) {
|
||||||
|
return req.get('/promotion/register', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getpluspriceList (params = {}) {
|
||||||
|
return req.get('/promotion/pluspricebuy/getItemList', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开屏广告
|
||||||
|
export function getScreenAd (params = {}) {
|
||||||
|
return req.get('/openscreenad', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//增加扫码日志
|
||||||
|
export function logQrcode (params) {
|
||||||
|
return req.post('/promoter/qrcode/log', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
// 获取进行中员工内购详情
|
||||||
|
export function purchaseInfo(params = {}) {
|
||||||
|
return req.get('/promotion/employeepurchase/getinfo', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 员工内购绑定成为家属
|
||||||
|
export function purchaseBind(params = {}) {
|
||||||
|
return req.post(`/promotion/employeepurchase/dependents`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取员工内购分享码
|
||||||
|
export function purchaseCode(params = {}) {
|
||||||
|
return req.get('/promotion/employeepurchase/sharecode', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function list () {
|
||||||
|
req.get('/region.json')
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {}
|
||||||
|
|
@ -0,0 +1,400 @@
|
||||||
|
import Taro, { getCurrentInstance } from '@tarojs/taro'
|
||||||
|
import qs from 'qs'
|
||||||
|
import S from '@/spx'
|
||||||
|
import {
|
||||||
|
isAlipay,
|
||||||
|
isWeixin,
|
||||||
|
isWeb,
|
||||||
|
isMerchantModule,
|
||||||
|
isGoodsShelves,
|
||||||
|
getExtConfigData,
|
||||||
|
VERSION_IN_PURCHASE
|
||||||
|
} from '@/utils'
|
||||||
|
import { SG_DIANWU_TOKEN } from '@/consts'
|
||||||
|
import log from '@/utils/log'
|
||||||
|
import { HTTP_STATUS } from './consts'
|
||||||
|
|
||||||
|
function addQuery(url, query) {
|
||||||
|
return url + (url.indexOf('?') >= 0 ? '&' : '?') + query
|
||||||
|
}
|
||||||
|
|
||||||
|
const request = (() => {
|
||||||
|
if (isWeb) {
|
||||||
|
// h5环境,请求失败时,需要额外处理
|
||||||
|
return async (...args) => {
|
||||||
|
let res
|
||||||
|
try {
|
||||||
|
res = await Taro.request(...args)
|
||||||
|
} catch (e) {
|
||||||
|
res = e
|
||||||
|
if (e instanceof global.Response) {
|
||||||
|
const data = await e.json()
|
||||||
|
res = {
|
||||||
|
data,
|
||||||
|
statusCode: e.status,
|
||||||
|
header: e.headers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Taro.request
|
||||||
|
})()
|
||||||
|
class RequestQueue {
|
||||||
|
constructor() {
|
||||||
|
this.requestList = []
|
||||||
|
this.isRunning = false
|
||||||
|
}
|
||||||
|
|
||||||
|
push(req) {
|
||||||
|
this.requestList.push(req)
|
||||||
|
}
|
||||||
|
|
||||||
|
destroy() {
|
||||||
|
this.isRunning = false
|
||||||
|
this.requestList = []
|
||||||
|
}
|
||||||
|
|
||||||
|
run() {
|
||||||
|
this.isRunning = true
|
||||||
|
const next = async () => {
|
||||||
|
const req = this.requestList.shift()
|
||||||
|
log.debug(`requestQueue length is ${this.requestList.length}`)
|
||||||
|
if (!req) return
|
||||||
|
|
||||||
|
await req()
|
||||||
|
if (this.requestList.length > 0 && this.isRunning) {
|
||||||
|
await next()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
next()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class API {
|
||||||
|
constructor(options = {}) {
|
||||||
|
this.setOptions(options)
|
||||||
|
this.isRefreshingToken = false
|
||||||
|
this.requestQueue = new RequestQueue()
|
||||||
|
}
|
||||||
|
|
||||||
|
setOptions(opts) {
|
||||||
|
let { baseURL = '/' } = opts
|
||||||
|
if (!/\/$/.test(baseURL)) {
|
||||||
|
baseURL = baseURL + '/'
|
||||||
|
}
|
||||||
|
this.baseURL = baseURL
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
company_id: process.env.APP_COMPANY_ID
|
||||||
|
}
|
||||||
|
if (isWeixin || isAlipay) {
|
||||||
|
const extConfig = getExtConfigData()
|
||||||
|
options.appid = extConfig.appid
|
||||||
|
if (extConfig.company_id) {
|
||||||
|
options.company_id = extConfig.company_id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.options = options
|
||||||
|
}
|
||||||
|
|
||||||
|
errorToast(data) {
|
||||||
|
let errMsg = data.message || (data.data && data.data.message) || '操作失败,请稍后重试'
|
||||||
|
|
||||||
|
if (errMsg.length > 11) {
|
||||||
|
errMsg = errMsg.substring(0, 11) + '\n' + errMsg.substring(11)
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
Taro.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: errMsg
|
||||||
|
})
|
||||||
|
}, 200)
|
||||||
|
}
|
||||||
|
|
||||||
|
getReqUrl(url) {
|
||||||
|
return /^http/.test(url) ? url : `${this.baseURL}${url.replace(/^\//, '')}`
|
||||||
|
}
|
||||||
|
|
||||||
|
handleLogout() {
|
||||||
|
this.requestQueue.destroy()
|
||||||
|
this.isRefreshingToken = false
|
||||||
|
// S.logout()
|
||||||
|
setTimeout(() => {
|
||||||
|
console.log(getCurrentInstance().router)
|
||||||
|
const { path, params } = getCurrentInstance().router
|
||||||
|
delete params.$taroTimestamp
|
||||||
|
const fullPath = Object.keys(params).length > 0 ? `${path}?${qs.stringify(params)}` : path
|
||||||
|
// let url
|
||||||
|
// if (isMerchantModule()) {
|
||||||
|
// url = '/subpages/merchant/login'
|
||||||
|
// } else if (isGoodsShelves()) {
|
||||||
|
// url = '/subpages/guide/index'
|
||||||
|
// } else if (VERSION_IN_PURCHASE){
|
||||||
|
// url = `/subpages/purchase/member`
|
||||||
|
// } else {
|
||||||
|
// url = `/subpages/member/index`
|
||||||
|
// }
|
||||||
|
// if(path != url) {
|
||||||
|
// url = url + `?redirect_url=${encodeURIComponent(fullPath)}`
|
||||||
|
// Taro.redirectTo({ url })
|
||||||
|
// }
|
||||||
|
Taro.redirectTo({ url: '/subpages/member/index' })
|
||||||
|
}, 300)
|
||||||
|
}
|
||||||
|
|
||||||
|
intereptorReq(params) {
|
||||||
|
const { url, data, header = {}, method = 'GET' } = params
|
||||||
|
const { company_id, appid } = this.options
|
||||||
|
const methodIsGet = method.toLowerCase() === 'get'
|
||||||
|
|
||||||
|
const reqUrl = this.getReqUrl(url)
|
||||||
|
let query = !data || typeof data === 'string' ? qs.parse(data) : data
|
||||||
|
if (company_id) {
|
||||||
|
query['company_id'] = company_id
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!methodIsGet) {
|
||||||
|
header['content-type'] = header['content-type'] || 'application/x-www-form-urlencoded'
|
||||||
|
}
|
||||||
|
|
||||||
|
// const token = S.getAuthToken()
|
||||||
|
const token = Taro.getStorageSync(SG_DIANWU_TOKEN)
|
||||||
|
if (token) {
|
||||||
|
header['Authorization'] = `Bearer ${token}`
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理版本区分
|
||||||
|
if (isWeb) {
|
||||||
|
if (process.env.APP_VUE_SAAS) {
|
||||||
|
header['origin'] = global.location.host
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((isWeixin || isAlipay) && appid) {
|
||||||
|
header['authorizer-appid'] = appid
|
||||||
|
}
|
||||||
|
|
||||||
|
const config = {
|
||||||
|
...params,
|
||||||
|
url: reqUrl,
|
||||||
|
data: query,
|
||||||
|
method: method.toUpperCase(),
|
||||||
|
header: header
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清理请求参数
|
||||||
|
if (methodIsGet) {
|
||||||
|
config.url = addQuery(config.url, qs.stringify(config.data))
|
||||||
|
delete config.data
|
||||||
|
} else {
|
||||||
|
config.data = qs.stringify(config.data)
|
||||||
|
}
|
||||||
|
|
||||||
|
const { showError } = query
|
||||||
|
config['showError'] = showError
|
||||||
|
|
||||||
|
return config
|
||||||
|
}
|
||||||
|
|
||||||
|
intereptorRes(res) {
|
||||||
|
const { data, statusCode, config } = res
|
||||||
|
const { showError = true } = config
|
||||||
|
if (statusCode == HTTP_STATUS.SUCCESS) {
|
||||||
|
const { status_code } = data.data
|
||||||
|
if (!status_code) {
|
||||||
|
return data.data
|
||||||
|
} else {
|
||||||
|
// status_code 不为0,表示有错误
|
||||||
|
if (showError) {
|
||||||
|
this.errorToast(data)
|
||||||
|
}
|
||||||
|
return Promise.reject(this.reqError(res))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (statusCode === HTTP_STATUS.UNAUTHORIZED) {
|
||||||
|
if ((data.data && data.data.code) === HTTP_STATUS.USER_FORBIDDEN) {
|
||||||
|
if (showError) {
|
||||||
|
this.errorToast(data)
|
||||||
|
}
|
||||||
|
return Promise.reject(this.reqError(res, '帐号已被禁用'))
|
||||||
|
}
|
||||||
|
|
||||||
|
this.handleLogout()
|
||||||
|
return Promise.reject(this.reqError(res))
|
||||||
|
}
|
||||||
|
|
||||||
|
if (statusCode === HTTP_STATUS.NOT_FOUND) {
|
||||||
|
return Promise.reject(this.reqError(res, '请求资源不存在'))
|
||||||
|
}
|
||||||
|
|
||||||
|
if (statusCode === HTTP_STATUS.BAD_GATEWAY) {
|
||||||
|
return Promise.reject(this.reqError(res, '服务端出现了问题'))
|
||||||
|
}
|
||||||
|
|
||||||
|
return Promise.reject(this.reqError(res, `API error: ${statusCode}`))
|
||||||
|
}
|
||||||
|
|
||||||
|
async refreshToken() {
|
||||||
|
this.isRefreshingToken = true
|
||||||
|
// const token = S.getAuthToken()
|
||||||
|
const token = Taro.getStorageSync(SG_DIANWU_TOKEN)
|
||||||
|
try {
|
||||||
|
await this.makeReq(
|
||||||
|
{
|
||||||
|
header: {
|
||||||
|
Authorization: `Bearer ${token}`
|
||||||
|
},
|
||||||
|
method: 'get',
|
||||||
|
url: this.getReqUrl('/token/refresh'),
|
||||||
|
noPending: true
|
||||||
|
},
|
||||||
|
(res) => {
|
||||||
|
console.log('refreshing token: ', res)
|
||||||
|
const { statusCode } = res
|
||||||
|
if (statusCode === HTTP_STATUS.UNAUTHORIZED) {
|
||||||
|
return this.handleLogout()
|
||||||
|
}
|
||||||
|
|
||||||
|
const newToken = res.header.Authorization.split(' ')[1]
|
||||||
|
S.setAuthToken(newToken)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.isRefreshingToken = false
|
||||||
|
}
|
||||||
|
|
||||||
|
request = request
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param {Object} config 请求参数
|
||||||
|
* @param {function(Object)} [intereptorRes] 处理请求回调数据的方法
|
||||||
|
* @param {function(Object)} [intereptorReq] 处理请求参数的方法
|
||||||
|
* @return {Object} 请求返回的数据
|
||||||
|
* @memberof API
|
||||||
|
*/
|
||||||
|
async makeReq(config = {}, intereptorRes, intereptorReq) {
|
||||||
|
const { showLoading } = config
|
||||||
|
const options = intereptorReq ? intereptorReq(config) : this.intereptorReq(config)
|
||||||
|
|
||||||
|
if (showLoading) {
|
||||||
|
Taro.showLoading({
|
||||||
|
mask: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
let ret
|
||||||
|
try {
|
||||||
|
const res = await this.request(options)
|
||||||
|
res.config = options
|
||||||
|
const token = Taro.getStorageSync(SG_DIANWU_TOKEN)
|
||||||
|
if (
|
||||||
|
res.statusCode === HTTP_STATUS.UNAUTHORIZED &&
|
||||||
|
(res.data.data && res.data.data.status_code) === HTTP_STATUS.TOKEN_NEEDS_REFRESH && token
|
||||||
|
// S.getAuthToken()
|
||||||
|
) {
|
||||||
|
// token失效时重造请求,并刷新token
|
||||||
|
if (!this.isRefreshingToken) {
|
||||||
|
await this.refreshToken()
|
||||||
|
}
|
||||||
|
ret = await this.pendingReq(config, intereptorRes, intereptorReq, true)
|
||||||
|
} else {
|
||||||
|
if (!this.isRefreshingToken || config.noPending) {
|
||||||
|
ret = intereptorRes ? intereptorRes(res) : this.intereptorRes(res)
|
||||||
|
} else {
|
||||||
|
// 正在刷新token,将请求放入队列
|
||||||
|
ret = await this.pendingReq(config, intereptorRes, intereptorReq)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (showLoading) {
|
||||||
|
Taro.hideLoading()
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
pendingReq(config, intereptorRes, intereptorReq, isSend) {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
const pendingReq = async () => {
|
||||||
|
// 仅加入队列一次
|
||||||
|
const reqConfig = {
|
||||||
|
...config,
|
||||||
|
noPending: true
|
||||||
|
}
|
||||||
|
const data = await this.makeReq(reqConfig, intereptorRes, intereptorReq)
|
||||||
|
resolve(data)
|
||||||
|
}
|
||||||
|
this.requestQueue.push(pendingReq)
|
||||||
|
if (isSend) this.requestQueue.run()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
get(url, data, config) {
|
||||||
|
return this.makeReq({
|
||||||
|
...config,
|
||||||
|
url,
|
||||||
|
data,
|
||||||
|
method: 'GET'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
reqError(res, msg = '') {
|
||||||
|
const errMsg = (res.data && res.data?.data?.message) || msg
|
||||||
|
const err = new Error(errMsg)
|
||||||
|
err.res = res
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
post(url, data, config) {
|
||||||
|
return this.makeReq({
|
||||||
|
...config,
|
||||||
|
url,
|
||||||
|
data,
|
||||||
|
method: 'POST'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
put(url, data, config) {
|
||||||
|
return this.makeReq({
|
||||||
|
...config,
|
||||||
|
url,
|
||||||
|
data,
|
||||||
|
method: 'PUT'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
delete(url, data, config) {
|
||||||
|
return this.makeReq({
|
||||||
|
...config,
|
||||||
|
url,
|
||||||
|
data,
|
||||||
|
method: 'DELETE'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV === 'production' && !isWeb) {
|
||||||
|
Taro.addInterceptor(Taro.interceptors.logInterceptor)
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('xxxx:', process.env.APP_BASE_URL.replace('/h5app/wxapp', ''))
|
||||||
|
export default new API({
|
||||||
|
baseURL: process.env.APP_BASE_URL.replace('/h5app/wxapp', '')
|
||||||
|
})
|
||||||
|
|
||||||
|
export { API }
|
||||||
|
|
@ -0,0 +1,413 @@
|
||||||
|
import Taro, { getCurrentInstance } from '@tarojs/taro'
|
||||||
|
import qs from 'qs'
|
||||||
|
import S from '@/spx'
|
||||||
|
import {
|
||||||
|
isAlipay,
|
||||||
|
isWeixin,
|
||||||
|
isWeb,
|
||||||
|
isMerchantModule,
|
||||||
|
isGoodsShelves,
|
||||||
|
getExtConfigData,
|
||||||
|
VERSION_IN_PURCHASE
|
||||||
|
} from '@/utils'
|
||||||
|
import log from '@/utils/log'
|
||||||
|
import { HTTP_STATUS } from './consts'
|
||||||
|
|
||||||
|
function addQuery(url, query) {
|
||||||
|
return url + (url.indexOf('?') >= 0 ? '&' : '?') + query
|
||||||
|
}
|
||||||
|
|
||||||
|
const request = (() => {
|
||||||
|
if (isWeb) {
|
||||||
|
// h5环境,请求失败时,需要额外处理
|
||||||
|
return async (...args) => {
|
||||||
|
let res
|
||||||
|
try {
|
||||||
|
res = await Taro.request(...args)
|
||||||
|
} catch (e) {
|
||||||
|
res = e
|
||||||
|
if (e instanceof global.Response) {
|
||||||
|
const data = await e.json()
|
||||||
|
res = {
|
||||||
|
data,
|
||||||
|
statusCode: e.status,
|
||||||
|
header: e.headers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 支付宝小程序,请求失败时,需要额外处理
|
||||||
|
if(isAlipay){
|
||||||
|
return async (...args) => {
|
||||||
|
let res
|
||||||
|
try {
|
||||||
|
res = await Taro.request(...args)
|
||||||
|
} catch (e) {
|
||||||
|
res = {
|
||||||
|
data: e.data,
|
||||||
|
statusCode: e.status,
|
||||||
|
header: e.headers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Taro.request
|
||||||
|
})()
|
||||||
|
class RequestQueue {
|
||||||
|
constructor() {
|
||||||
|
this.requestList = []
|
||||||
|
this.isRunning = false
|
||||||
|
}
|
||||||
|
|
||||||
|
push(req) {
|
||||||
|
this.requestList.push(req)
|
||||||
|
}
|
||||||
|
|
||||||
|
destroy() {
|
||||||
|
this.isRunning = false
|
||||||
|
this.requestList = []
|
||||||
|
}
|
||||||
|
|
||||||
|
run() {
|
||||||
|
this.isRunning = true
|
||||||
|
const next = async () => {
|
||||||
|
const req = this.requestList.shift()
|
||||||
|
log.debug(`requestQueue length is ${this.requestList.length}`)
|
||||||
|
if (!req) return
|
||||||
|
|
||||||
|
await req()
|
||||||
|
if (this.requestList.length > 0 && this.isRunning) {
|
||||||
|
await next()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
next()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class API {
|
||||||
|
constructor(options = {}) {
|
||||||
|
this.setOptions(options)
|
||||||
|
this.isRefreshingToken = false
|
||||||
|
this.requestQueue = new RequestQueue()
|
||||||
|
}
|
||||||
|
|
||||||
|
setOptions(opts) {
|
||||||
|
let { baseURL = '/' } = opts
|
||||||
|
if (!/\/$/.test(baseURL)) {
|
||||||
|
baseURL = baseURL + '/'
|
||||||
|
}
|
||||||
|
this.baseURL = baseURL
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
company_id: process.env.APP_COMPANY_ID
|
||||||
|
}
|
||||||
|
if (isWeixin) {
|
||||||
|
const extConfig = getExtConfigData()
|
||||||
|
options.appid = extConfig.appid
|
||||||
|
if (extConfig.company_id) {
|
||||||
|
options.company_id = extConfig.company_id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.options = options
|
||||||
|
}
|
||||||
|
|
||||||
|
errorToast(data) {
|
||||||
|
let errMsg = data.message || (data.data && data.data.message) || '操作失败,请稍后重试'
|
||||||
|
|
||||||
|
if (errMsg.length > 11) {
|
||||||
|
errMsg = errMsg.substring(0, 11) + '\n' + errMsg.substring(11)
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
Taro.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: errMsg
|
||||||
|
})
|
||||||
|
}, 200)
|
||||||
|
}
|
||||||
|
|
||||||
|
getReqUrl(url) {
|
||||||
|
return /^http/.test(url) ? url : `${this.baseURL}${url.replace(/^\//, '')}`
|
||||||
|
}
|
||||||
|
|
||||||
|
handleLogout() {
|
||||||
|
this.requestQueue.destroy()
|
||||||
|
this.isRefreshingToken = false
|
||||||
|
S.logout()
|
||||||
|
setTimeout(() => {
|
||||||
|
console.log(getCurrentInstance().router)
|
||||||
|
const { path, params } = getCurrentInstance().router
|
||||||
|
delete params.$taroTimestamp
|
||||||
|
const fullPath = Object.keys(params).length > 0 ? `${path}?${qs.stringify(params)}` : path
|
||||||
|
let url
|
||||||
|
if (isMerchantModule()) {
|
||||||
|
url = '/subpages/merchant/login'
|
||||||
|
} else if (isGoodsShelves()) {
|
||||||
|
url = '/subpages/guide/index'
|
||||||
|
} else if (VERSION_IN_PURCHASE){
|
||||||
|
url = `/subpages/purchase/member`
|
||||||
|
} else {
|
||||||
|
url = `/subpages/member/index`
|
||||||
|
}
|
||||||
|
if(path != url) {
|
||||||
|
url = url + `?redirect_url=${encodeURIComponent(fullPath)}`
|
||||||
|
Taro.redirectTo({ url })
|
||||||
|
}
|
||||||
|
}, 300)
|
||||||
|
}
|
||||||
|
|
||||||
|
intereptorReq(params) {
|
||||||
|
const { url, data, header = {}, method = 'GET' } = params
|
||||||
|
const { company_id, appid } = this.options
|
||||||
|
const methodIsGet = method.toLowerCase() === 'get'
|
||||||
|
|
||||||
|
const reqUrl = this.getReqUrl(url)
|
||||||
|
let query = !data || typeof data === 'string' ? qs.parse(data) : data
|
||||||
|
if (company_id) {
|
||||||
|
query['company_id'] = company_id
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!methodIsGet) {
|
||||||
|
header['content-type'] = header['content-type'] || 'application/x-www-form-urlencoded'
|
||||||
|
}
|
||||||
|
|
||||||
|
const token = S.getAuthToken()
|
||||||
|
if (token) {
|
||||||
|
header['Authorization'] = `Bearer ${token}`
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理版本区分
|
||||||
|
if (isWeb) {
|
||||||
|
if (process.env.APP_VUE_SAAS) {
|
||||||
|
header['origin'] = global.location.host
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((isWeixin || isAlipay) && appid) {
|
||||||
|
header['authorizer-appid'] = appid
|
||||||
|
}
|
||||||
|
|
||||||
|
const config = {
|
||||||
|
...params,
|
||||||
|
url: reqUrl,
|
||||||
|
data: query,
|
||||||
|
method: method.toUpperCase(),
|
||||||
|
header: header
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清理请求参数
|
||||||
|
if (methodIsGet) {
|
||||||
|
config.url = addQuery(config.url, qs.stringify(config.data))
|
||||||
|
delete config.data
|
||||||
|
} else {
|
||||||
|
config.data = qs.stringify(config.data)
|
||||||
|
}
|
||||||
|
|
||||||
|
const { showError } = query
|
||||||
|
config['showError'] = showError
|
||||||
|
|
||||||
|
return config
|
||||||
|
}
|
||||||
|
|
||||||
|
intereptorRes(res) {
|
||||||
|
const { data, statusCode, config } = res
|
||||||
|
const { showError = true } = config
|
||||||
|
if (statusCode == HTTP_STATUS.SUCCESS) {
|
||||||
|
const { status_code } = data.data
|
||||||
|
if (!status_code) {
|
||||||
|
return data.data
|
||||||
|
} else {
|
||||||
|
// status_code 不为0,表示有错误
|
||||||
|
if (showError) {
|
||||||
|
this.errorToast(data)
|
||||||
|
}
|
||||||
|
return Promise.reject(this.reqError(res))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (statusCode === HTTP_STATUS.UNAUTHORIZED) {
|
||||||
|
if ((data.data && data.data.code) === HTTP_STATUS.USER_FORBIDDEN) {
|
||||||
|
if (showError) {
|
||||||
|
this.errorToast(data)
|
||||||
|
}
|
||||||
|
return Promise.reject(this.reqError(res, '帐号已被禁用'))
|
||||||
|
}
|
||||||
|
|
||||||
|
this.handleLogout()
|
||||||
|
return Promise.reject(this.reqError(res))
|
||||||
|
}
|
||||||
|
|
||||||
|
if (statusCode === HTTP_STATUS.NOT_FOUND) {
|
||||||
|
return Promise.reject(this.reqError(res, '请求资源不存在'))
|
||||||
|
}
|
||||||
|
|
||||||
|
if (statusCode === HTTP_STATUS.BAD_GATEWAY) {
|
||||||
|
return Promise.reject(this.reqError(res, '服务端出现了问题'))
|
||||||
|
}
|
||||||
|
|
||||||
|
return Promise.reject(this.reqError(res, `API error: ${statusCode}`))
|
||||||
|
}
|
||||||
|
|
||||||
|
async refreshToken() {
|
||||||
|
this.isRefreshingToken = true
|
||||||
|
const token = S.getAuthToken()
|
||||||
|
console.log('refreshToken',66);
|
||||||
|
try {
|
||||||
|
await this.makeReq(
|
||||||
|
{
|
||||||
|
header: {
|
||||||
|
Authorization: `Bearer ${token}`
|
||||||
|
},
|
||||||
|
method: 'get',
|
||||||
|
url: this.getReqUrl('/token/refresh'),
|
||||||
|
noPending: true
|
||||||
|
},
|
||||||
|
(res) => {
|
||||||
|
console.log('refreshing token: ', res)
|
||||||
|
const { statusCode } = res
|
||||||
|
if (statusCode === HTTP_STATUS.UNAUTHORIZED) {
|
||||||
|
return this.handleLogout()
|
||||||
|
}
|
||||||
|
|
||||||
|
const newToken = res.header.Authorization.split(' ')[1]
|
||||||
|
S.setAuthToken(newToken)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.isRefreshingToken = false
|
||||||
|
}
|
||||||
|
|
||||||
|
request = request
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param {Object} config 请求参数
|
||||||
|
* @param {function(Object)} [intereptorRes] 处理请求回调数据的方法
|
||||||
|
* @param {function(Object)} [intereptorReq] 处理请求参数的方法
|
||||||
|
* @return {Object} 请求返回的数据
|
||||||
|
* @memberof API
|
||||||
|
*/
|
||||||
|
async makeReq(config = {}, intereptorRes, intereptorReq) {
|
||||||
|
const { showLoading } = config
|
||||||
|
const options = intereptorReq ? intereptorReq(config) : this.intereptorReq(config)
|
||||||
|
|
||||||
|
if (showLoading) {
|
||||||
|
Taro.showLoading({
|
||||||
|
mask: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
let ret
|
||||||
|
try {
|
||||||
|
const res = await this.request(options)
|
||||||
|
res.config = options
|
||||||
|
if (
|
||||||
|
res.statusCode === HTTP_STATUS.UNAUTHORIZED &&
|
||||||
|
(res.data.data && res.data.data.code) === HTTP_STATUS.TOKEN_NEEDS_REFRESH &&
|
||||||
|
S.getAuthToken()
|
||||||
|
) {
|
||||||
|
// token失效时重造请求,并刷新token
|
||||||
|
if (!this.isRefreshingToken) {
|
||||||
|
await this.refreshToken()
|
||||||
|
}
|
||||||
|
ret = await this.pendingReq(config, intereptorRes, intereptorReq, true)
|
||||||
|
} else {
|
||||||
|
if (!this.isRefreshingToken || config.noPending) {
|
||||||
|
ret = intereptorRes ? intereptorRes(res) : this.intereptorRes(res)
|
||||||
|
} else {
|
||||||
|
// 正在刷新token,将请求放入队列
|
||||||
|
ret = await this.pendingReq(config, intereptorRes, intereptorReq)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
// console.log(5);
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (showLoading) {
|
||||||
|
Taro.hideLoading()
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
pendingReq(config, intereptorRes, intereptorReq, isSend) {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
const pendingReq = async () => {
|
||||||
|
// 仅加入队列一次
|
||||||
|
const reqConfig = {
|
||||||
|
...config,
|
||||||
|
noPending: true
|
||||||
|
}
|
||||||
|
const data = await this.makeReq(reqConfig, intereptorRes, intereptorReq)
|
||||||
|
resolve(data)
|
||||||
|
}
|
||||||
|
this.requestQueue.push(pendingReq)
|
||||||
|
if (isSend) this.requestQueue.run()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
get(url, data, config) {
|
||||||
|
return this.makeReq({
|
||||||
|
...config,
|
||||||
|
url,
|
||||||
|
data,
|
||||||
|
method: 'GET'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
reqError(res, msg = '') {
|
||||||
|
const errMsg = (res.data && res.data?.data?.message) || msg
|
||||||
|
const err = new Error(errMsg)
|
||||||
|
err.res = res
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
post(url, data, config) {
|
||||||
|
return this.makeReq({
|
||||||
|
...config,
|
||||||
|
url,
|
||||||
|
data,
|
||||||
|
method: 'POST'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
put(url, data, config) {
|
||||||
|
return this.makeReq({
|
||||||
|
...config,
|
||||||
|
url,
|
||||||
|
data,
|
||||||
|
method: 'PUT'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
delete(url, data, config) {
|
||||||
|
return this.makeReq({
|
||||||
|
...config,
|
||||||
|
url,
|
||||||
|
data,
|
||||||
|
method: 'DELETE'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV === 'production' && !isWeb) {
|
||||||
|
Taro.addInterceptor(Taro.interceptors.logInterceptor)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default new API({
|
||||||
|
baseURL: process.env.APP_BASE_URL
|
||||||
|
})
|
||||||
|
|
||||||
|
export { API }
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function seckillList (params = {}) {
|
||||||
|
return req.get('/promotion/seckillactivity/getlist', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function seckillGoodsList (params = {}) {
|
||||||
|
return req.get('/promotion/seckillactivity/getinfo', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,107 @@
|
||||||
|
import { platformTemplateName, transformPlatformUrl } from '@/utils/platform'
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function getShop (params = {}) {
|
||||||
|
return req.get('/distributor/is_valid', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function list (params = {}) {
|
||||||
|
return req.get('/distributor/list', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getStoreStatus (params = {}) {
|
||||||
|
return req.get('/nostores/getstatus', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getNearbyShop (params) {
|
||||||
|
return req.get('/distributor/list', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 总店店铺信息及协议
|
||||||
|
export function getStoreBaseInfo (params = {}) {
|
||||||
|
return req.get('/shops/info', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 协议信息获取
|
||||||
|
export function getRuleInfo (params = {}) {
|
||||||
|
return req.get('/shops/protocol', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取总店信息
|
||||||
|
export function getDefaultShop (params = {}) {
|
||||||
|
return req.get('/distributor/default', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取总店信息
|
||||||
|
export function getHeadquarters (params = {}) {
|
||||||
|
return req.get('/distributor/self', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
export function getPageParamsConfig ({
|
||||||
|
page_name,
|
||||||
|
template_name = platformTemplateName,
|
||||||
|
version = 'v1.0.1'
|
||||||
|
}) {
|
||||||
|
return req.get('/pageparams/setting', {
|
||||||
|
page_name,
|
||||||
|
template_name,
|
||||||
|
version
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取tabbars和小程序配置
|
||||||
|
export function getAppConfig () {
|
||||||
|
return req.get('/pagestemplate/setInfo')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取首页配置
|
||||||
|
export function homeSetting () {
|
||||||
|
return req.get('common/setting', {
|
||||||
|
type: 'frontend'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function APP启动获取全局配置
|
||||||
|
*/
|
||||||
|
export function getAppBaseInfo () {
|
||||||
|
return req.get(`pagestemplate/baseinfo`, {
|
||||||
|
page_name: 'color_style',
|
||||||
|
template_name: platformTemplateName,
|
||||||
|
version: 'v1.0.1'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function 平台首页模版配置
|
||||||
|
*/
|
||||||
|
export function getShopTemplate (params) {
|
||||||
|
return req.get(`/pagestemplate/detail`, {
|
||||||
|
template_name: 'yykweishop',
|
||||||
|
weapp_pages: 'index',
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function 店铺首页模版配置
|
||||||
|
*/
|
||||||
|
export function getStoreShopTemplate (params) {
|
||||||
|
return req.get(`/pagestemplate/shopDetail`, {
|
||||||
|
template_name: 'yykweishop',
|
||||||
|
weapp_pages: 'index',
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 获取高德地图key
|
||||||
|
export function getMapKeyDetail (params) {
|
||||||
|
return req.get('/third_party/map/key', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取小程序价格配置
|
||||||
|
export function getAppGoodsPriceSetting() {
|
||||||
|
return req.get('/setting/itemPrice')
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function viewnum (param = {}) {
|
||||||
|
return req.post('/track/viewnum', {})
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,75 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function list (params) {
|
||||||
|
// return req.get('/trade.list', params)
|
||||||
|
return req.get('/orders', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function detail (tid) {
|
||||||
|
// return req.get('/trade.get', { tid })
|
||||||
|
return req.get(`/order/${tid}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function create (data) {
|
||||||
|
// return req.post('/trade.create', data)
|
||||||
|
return req.post('/order', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function confirm (tid) {
|
||||||
|
return req.post('/order/confirmReceipt', { order_id: tid })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function cancel (data) {
|
||||||
|
return req.post('/order/cancel', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCount (params = { order_type: 'normal' }) {
|
||||||
|
return req.get('/orderscount', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deliveryInfo (order_type, order_id) {
|
||||||
|
return req.get(`/trackerpull?order_type=${order_type}&order_id=${order_id}`)
|
||||||
|
}
|
||||||
|
export function deliveryInfoNew (params) {
|
||||||
|
return req.get(`/delivery/trackerpull`, params)
|
||||||
|
}
|
||||||
|
export function tradeQuery (trade_id) {
|
||||||
|
return req.get(`/tradequery`, { trade_id })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function imgUpload (params = {}) {
|
||||||
|
return req.get(`/espier/upload`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function involiceList (params = {}) {
|
||||||
|
return req.get(`/orders/invoice`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function zitiCode (params = {}) {
|
||||||
|
return req.get(`/ziticode`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createOrderRate (params = {}) {
|
||||||
|
return req.post(`/order/rate/create`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function h5create (data) {
|
||||||
|
return req.post('/order_new', data)
|
||||||
|
}
|
||||||
|
export function tradeSetting (data) {
|
||||||
|
return req.get('/trade/setting', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deliveryLists (data) {
|
||||||
|
return req.get('/delivery/lists', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发送验证码
|
||||||
|
export function sendCode (orderId) {
|
||||||
|
return req.get(`/pickupcode/${orderId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 绑定订单
|
||||||
|
export function bindOrder (data) {
|
||||||
|
return req.post(`/order/bind/${data.order_id}`, data)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
import { isWeixin, getAppId, isAlipay } from '@/utils'
|
||||||
|
import req from './req'
|
||||||
|
export function login (data) {
|
||||||
|
return req.post('/login', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 绑定导购
|
||||||
|
export function bindSaleperson (data) {
|
||||||
|
return req.post('/member/bindSalesperson', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 绑定
|
||||||
|
export function bind (data) {
|
||||||
|
return req.post('/member/bind', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function logout () {
|
||||||
|
return req.post('/user.logout')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function refreshToken () {
|
||||||
|
return req.get('/token/refresh')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function reg (params) {
|
||||||
|
return req.post('/member', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
//校验验证码
|
||||||
|
export function checkSmsCode (params) {
|
||||||
|
return req.post('/member/check_sms_code', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function regRule () {
|
||||||
|
return req.get('/member/agreement')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function regImg (params = {}) {
|
||||||
|
return req.get('/member/image/code', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function regSmsCode (params = {}) {
|
||||||
|
return req.get('/member/sms/code', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function regParam (params) {
|
||||||
|
return req.get('/member/setting', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function info () {
|
||||||
|
return { data: {} }
|
||||||
|
// return req.get('/member/setting')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function forgotPwd (params = {}) {
|
||||||
|
return req.post('/member/reset/password', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkpclogin (data) {
|
||||||
|
return req.post('/oauthlogin', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function pclogin (data) {
|
||||||
|
return req.post('/oauth/login/authorize', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function reg_pclogin (data) {
|
||||||
|
return req.post('/member/decryptPhoneOauth', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function registrationActivity (data) {
|
||||||
|
return req.get('/registrationActivity', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function registrationSubmit (data) {
|
||||||
|
return req.post('/registrationSubmit', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function registrationRecordList (data) {
|
||||||
|
return req.get('/registrationRecordList', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function registrationRecordInfo (data) {
|
||||||
|
return req.get('/registrationRecordInfo', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function scancodeAddcart (data) {
|
||||||
|
return req.post('/goods/scancodeAddcart', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function newWxaMsgTmpl (params = {}) {
|
||||||
|
if(isAlipay){
|
||||||
|
return req.get('/alitemplatemessage', params)
|
||||||
|
}
|
||||||
|
return req.get('/newtemplate', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function storeReg (data) {
|
||||||
|
return req.post('/distributor', data)
|
||||||
|
}
|
||||||
|
// 客服
|
||||||
|
export function im (id) {
|
||||||
|
return req.get(`/im/meiqia/distributor/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 客服默认配置
|
||||||
|
export function imConfig () {
|
||||||
|
return req.get(`/im/meiqia`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 客服默认配置
|
||||||
|
export function echatConfig () {
|
||||||
|
return req.get(`/im/echat`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 扫码登录
|
||||||
|
export function codeAuth (param = {}) {
|
||||||
|
return req.post('/oauthlogin', param)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确认登录
|
||||||
|
export function codeAuthConfirm (param = {}) {
|
||||||
|
return req.post('/oauth/login/authorize', param)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 订阅到货通知
|
||||||
|
export function subscribeGoods (item_id, param) {
|
||||||
|
return req.post(`/member/subscribe/item/${item_id}`, param)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检测是否订阅
|
||||||
|
export function isSubscribeGoods (item_id, param) {
|
||||||
|
return req.get(`/member/item/is_subscribe/${item_id}`, param)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检测是否可以分享
|
||||||
|
export function getIsCanShare (param = {}) {
|
||||||
|
return req.get('/goods/checkshare/items', param)
|
||||||
|
}
|
||||||
|
|
||||||
|
//ba导购端
|
||||||
|
export function getGuideInfo (params = {}) {
|
||||||
|
return req.get('/guide/info', params)
|
||||||
|
}
|
||||||
|
export function getGuideShops (params = {}) {
|
||||||
|
return req.get('/guide/shops', params)
|
||||||
|
}
|
||||||
|
//获取导购session_key -> 用户登录
|
||||||
|
export function getQwUserInfo (params = {}) {
|
||||||
|
return req.post('/workwechatlogin', params)
|
||||||
|
}
|
||||||
|
// //导购登录
|
||||||
|
// export function getGuideShops(params = {}) {
|
||||||
|
// return req.get("/workwechatlogin", params);
|
||||||
|
// }
|
||||||
|
|
||||||
|
//悦诗风呀 导购登录
|
||||||
|
// export function prelogin(data) {
|
||||||
|
// return req.post("/prelogin", data);
|
||||||
|
// }
|
||||||
|
//云店-导购登录
|
||||||
|
// export function prelogin(params = {}) {
|
||||||
|
// return req.get("/workwechatlogin", params);
|
||||||
|
// }
|
||||||
|
//更新用户详情
|
||||||
|
export function updateUserInfo (params) {
|
||||||
|
return req.put('/updateWechatUserInfo', {
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//记录导购被访问的UV
|
||||||
|
export function uniquevisito (params) {
|
||||||
|
return req.post('/member/salesperson/uniquevisito', {
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 是否需要开启初次授权填写个人信息
|
||||||
|
export function getIsMustOauth (params) {
|
||||||
|
return req.get('/espier/config/request_field_setting', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function getList(params) {
|
||||||
|
return req.get('/vipgrades/newlist', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function charge(params) {
|
||||||
|
return req.post('/vipgrades/buy', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getUserVipInfo(params) {
|
||||||
|
return req.get('/vipgrades/uservip', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 券包api */
|
||||||
|
export function getBindCardList(params) {
|
||||||
|
return req.get('/user/getBindCardList', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getShowCardPackage(params) {
|
||||||
|
return req.get('/user/showCardPackage', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getReceiveCardPackage(params) {
|
||||||
|
return req.post('/user/receiveCardPackage', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCurrentGradList() {
|
||||||
|
return req.post('/user/currentGardCardPackage')
|
||||||
|
}
|
||||||
|
|
||||||
|
// export function getMemberCard(){
|
||||||
|
// return req.get('/membercard')
|
||||||
|
// }
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
// 获取推荐商家
|
||||||
|
export function getNearbyShop (params) {
|
||||||
|
return req.get('/distributor/list', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
// 大转盘获取
|
||||||
|
export function getTurntableconfig (params) {
|
||||||
|
return req.get('/promotion/turntableconfig', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getTurntable (params = {}) {
|
||||||
|
return req.get('/promotion/turntable', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 登陆赠送抽奖次数
|
||||||
|
export function getLoginaddtimes (params = {}) {
|
||||||
|
return req.get('/promotion/loginaddtimes', params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,155 @@
|
||||||
|
import Taro from '@tarojs/taro'
|
||||||
|
import { payTypeField, getAppId } from '@/utils'
|
||||||
|
import req from './req'
|
||||||
|
|
||||||
|
export function getOpenid ({ code }) {
|
||||||
|
return req.get('/oauth/getopenid', { code })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getredirecturl ({ url }) {
|
||||||
|
return req.get('/oauth/getredirecturl', { url })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function info (data) {
|
||||||
|
return req.post('/wx.info', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function code (code) {
|
||||||
|
return req.get('/wx.code', { code })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getYoushuOpenid (params) {
|
||||||
|
const appid = getAppId()
|
||||||
|
return req.post(
|
||||||
|
'/getopenid',
|
||||||
|
{
|
||||||
|
...params,
|
||||||
|
appid
|
||||||
|
},
|
||||||
|
{ showError: false }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function userInfo () {
|
||||||
|
return req.get('/wx.user.info')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function login (params) {
|
||||||
|
const appid = getAppId()
|
||||||
|
return req.post(
|
||||||
|
'/login',
|
||||||
|
{
|
||||||
|
appid,
|
||||||
|
auth_type: 'wxapp',
|
||||||
|
...params
|
||||||
|
},
|
||||||
|
{ showError: false }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function newMarketing () {
|
||||||
|
return req.get('/promotion/getMemberCard')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function newlogin (params) {
|
||||||
|
const appid = getAppId()
|
||||||
|
return req.post(
|
||||||
|
'/new_login',
|
||||||
|
{
|
||||||
|
...params,
|
||||||
|
appid,
|
||||||
|
auth_type: 'wxapp'
|
||||||
|
},
|
||||||
|
{ showError: false }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function newloginh5 (params) {
|
||||||
|
return req.post('/new_login', {
|
||||||
|
...params,
|
||||||
|
trustlogin_tag: 'weixin',
|
||||||
|
version_tag: 'touch'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function prelogin (params) {
|
||||||
|
const appid = getAppId()
|
||||||
|
return req.post('/prelogin', {
|
||||||
|
...params,
|
||||||
|
appid,
|
||||||
|
auth_type: 'wxapp'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// export function prelogin (params) {
|
||||||
|
// const appid = getAppId()
|
||||||
|
// return req.post('/workwechatlogin', {
|
||||||
|
// ...params,
|
||||||
|
// appid,
|
||||||
|
// auth_type: 'wxapp'
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
|
||||||
|
export function decryptPhone (params) {
|
||||||
|
const appid = getAppId()
|
||||||
|
return req.get('/member/decryptPhone', {
|
||||||
|
...params,
|
||||||
|
appid
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function shareSetting (params) {
|
||||||
|
return req.get('/share/setting', {
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
export function getWhiteList () {
|
||||||
|
return req.get('/whitelist/status')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取shareid解析
|
||||||
|
export function getShareId (params) {
|
||||||
|
return req.get('/getbyshareid', {
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 任务埋点上报
|
||||||
|
export function taskReportData (params) {
|
||||||
|
return req.post('/salesperson/subtask/post', {
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 互动埋点上报
|
||||||
|
export function interactiveReportData (params) {
|
||||||
|
console.log('[触发互动埋点上报]', params)
|
||||||
|
return req.post('/salesperson/relationshipcontinuity', {
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 刷新token
|
||||||
|
export function refreshToken () {
|
||||||
|
return req.get('/token/refresh')
|
||||||
|
}
|
||||||
|
|
||||||
|
//加载更多商品
|
||||||
|
export function loadMoreGoods (params) {
|
||||||
|
return req.get(`/pagestemplate/detail`, {
|
||||||
|
...params,
|
||||||
|
...payTypeField
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getPrivacyTime (params) {
|
||||||
|
return req.get(`/shops/protocolUpdateTime`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getWxAuth (params) {
|
||||||
|
return req.get(`/trustlogin/params`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getIsNew (params) {
|
||||||
|
return req.post(`/member/is_new`, params)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,404 @@
|
||||||
|
const config = {
|
||||||
|
pages: [
|
||||||
|
'pages/index', // 首页
|
||||||
|
'pages/webview', // webview
|
||||||
|
'pages/category/index', // 分类
|
||||||
|
'pages/cart/espier-index', // 购物车页面
|
||||||
|
'pages/cart/espier-checkout', // 结算页面
|
||||||
|
'pages/cart/cashier-result', // 支付结果页面
|
||||||
|
// 'pages/cart/cashier-alipay', // 支付宝收银台(adapay)
|
||||||
|
'pages/cart/cashier-weapp', // 微信收银台(adapay)
|
||||||
|
|
||||||
|
'pages/home/landing', // 跳转等待页面
|
||||||
|
'pages/floorguide/index', // 楼层引导页面
|
||||||
|
|
||||||
|
'pages/item/list', // 商品列表页面
|
||||||
|
'pages/item/espier-detail', // 商品详情页面
|
||||||
|
|
||||||
|
'pages/article/index', // 文章页面
|
||||||
|
'pages/recommend/list', // 推荐软文列表
|
||||||
|
'pages/member/item-fav', // 收藏页面
|
||||||
|
|
||||||
|
'pages/custom/custom-page', // 自定义页面
|
||||||
|
'pages/chat/index', // 客服
|
||||||
|
// 'pages/liveroom/index' // 直播间页面
|
||||||
|
],
|
||||||
|
subPackages: [
|
||||||
|
// 内购
|
||||||
|
// {
|
||||||
|
// root: 'subpages/purchase',
|
||||||
|
// pages: [
|
||||||
|
// 'member',
|
||||||
|
// 'espier-detail',
|
||||||
|
// 'espier-checkout',
|
||||||
|
// 'index' // 家属分享
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// 导购货架 guide
|
||||||
|
// {
|
||||||
|
// root: 'subpages/guide',
|
||||||
|
// pages: [
|
||||||
|
// 'index', // 货架首页
|
||||||
|
// 'category/index', // 分类页面
|
||||||
|
// 'item/list', // 商品列表
|
||||||
|
// 'item/espier-detail', // 商品详情
|
||||||
|
// 'cart/espier-index', // 购物车
|
||||||
|
// 'cart/espier-checkout', // 下单结算
|
||||||
|
// 'coupon-home/index', // 优惠券
|
||||||
|
// 'recommend/list', // 种草
|
||||||
|
// 'recommend/detail', // 种草详情
|
||||||
|
// 'custom/custom-page' // 自定义页面
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// 门店
|
||||||
|
// {
|
||||||
|
// root: 'subpages/store',
|
||||||
|
// pages: [
|
||||||
|
// 'index', // 店铺首页
|
||||||
|
// 'brand-info', // 店铺品牌
|
||||||
|
// 'item-list', // 店铺商品列表
|
||||||
|
// 'category', // 店铺商品分类
|
||||||
|
// 'list', // 选择店铺列表
|
||||||
|
// 'ziti-list', // 自提列表
|
||||||
|
// 'ziti-picker' // 自提点选择
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// root: 'subpages/ecshopx',
|
||||||
|
// pages: [
|
||||||
|
// 'nearly-shop', // 店铺选择
|
||||||
|
// 'shop-list' // 商家列表
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
root: 'subpages/member',
|
||||||
|
pages: [
|
||||||
|
'index', // 会员中心
|
||||||
|
'point-detail', // 积分明细
|
||||||
|
'point-rule', // 积分规则
|
||||||
|
'member-level', // 会员等级
|
||||||
|
'user-info' // 个人信息
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
root: 'subpages/marketing',
|
||||||
|
pages: [
|
||||||
|
'coupon', // 优惠券
|
||||||
|
'coupon-center', // 优惠券
|
||||||
|
'coupon-record', // 优惠券使用记录
|
||||||
|
'coupon-picker', // 优惠券选择
|
||||||
|
'package-list', // 组合优惠
|
||||||
|
'certification', // 实名认证
|
||||||
|
'exchange-code', // 兑换券二维码
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// root: 'subpages/dianwu', // 店务端
|
||||||
|
// pages: [
|
||||||
|
// 'index', // webview
|
||||||
|
// 'list', // 商品搜索列表
|
||||||
|
// 'cashier', // 收银台
|
||||||
|
// 'checkout', // 结算
|
||||||
|
// 'change-price', // 结算改价
|
||||||
|
// 'collection', // 收款
|
||||||
|
// 'pending-checkout', // 取单
|
||||||
|
// 'collection-result', // 收款结果
|
||||||
|
// 'login', // 登录
|
||||||
|
// 'picker-shop', // 店铺选择
|
||||||
|
// 'trade/invoice', //开具发票
|
||||||
|
// 'trade/change-price', // 订单改价
|
||||||
|
// 'trade/cancel-trade', // 取消订单
|
||||||
|
// 'trade/sale-after', // 订单售后
|
||||||
|
// 'trade/result' // 订单操作结果
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// 积分商城
|
||||||
|
{
|
||||||
|
root: 'subpages/pointshop',
|
||||||
|
pages: [
|
||||||
|
'list', // 积分商品列表
|
||||||
|
'espier-detail', // 积分商品详情
|
||||||
|
'espier-checkout' // 积分商品下单
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// root: 'subpages/community',
|
||||||
|
// pages: [
|
||||||
|
// 'index', // 社区团购个人中心
|
||||||
|
// 'group', // 一键开团
|
||||||
|
// 'itemlist', // 商品选品
|
||||||
|
// 'picker-community', // 选择社区
|
||||||
|
// 'community-edit', // 添加社区
|
||||||
|
// 'order', // 团员订单列表页
|
||||||
|
// 'order-refund', // 订单退款页
|
||||||
|
// 'espier-checkout', //结算页
|
||||||
|
// 'wait-pay', //待支付订单
|
||||||
|
// 'group-leaderdetail', // 社区团详情页(团长)
|
||||||
|
// 'group-memberdetail', // 社区团详情页(团员)
|
||||||
|
// 'order-manage', // 团长订单列表页
|
||||||
|
// 'activity', // 我的活动
|
||||||
|
// 'trade/refund', // 团购-售后申请提交页面
|
||||||
|
// 'trade/refund-detail', // 团购-售后申请提交结果页面
|
||||||
|
// 'trade/refund-sendback', // 团购-售后填写物流公司页面
|
||||||
|
// 'trade/split-bagpack', // 团购-分单物流详情页面Ω
|
||||||
|
// 'trade/delivery-info', // 团购-整单物流详情页面
|
||||||
|
// 'trade/cancel', // 团购-取消订单页面,
|
||||||
|
// 'trade/after-sale-detail', // 团购-售后详情页面
|
||||||
|
// 'boxlist', // 箱数列表
|
||||||
|
// 'list', // 商品列表
|
||||||
|
// 'espier-detail', // 商品详情
|
||||||
|
// 'apply-chief', // 申请团长
|
||||||
|
// 'chief-licence', // 团长注册协议
|
||||||
|
// 'commission', // 团长佣金
|
||||||
|
// 'withdraw', // 团长提现
|
||||||
|
// 'withdraw-bank', // 提现银行
|
||||||
|
// 'withdraw-list' // 提现记录
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
root: 'subpages/trade',
|
||||||
|
pages: [
|
||||||
|
'after-sale',
|
||||||
|
'after-sale-detail',
|
||||||
|
'logistics-info',
|
||||||
|
'store-picker'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
root: 'subpages/mdugc',
|
||||||
|
pages: [
|
||||||
|
'index',
|
||||||
|
'list',
|
||||||
|
'note',
|
||||||
|
'note-detail',
|
||||||
|
'subject-talk',
|
||||||
|
'item-list',
|
||||||
|
'image-edit',
|
||||||
|
'my',
|
||||||
|
'follow-fans',
|
||||||
|
'info-notify'
|
||||||
|
// "pages/make_label/index",
|
||||||
|
// "pages/make_word/index",
|
||||||
|
// "pages/make_details/index2",
|
||||||
|
// "pages/make_newslist/index2",
|
||||||
|
// "pages/make_fabulous/index",
|
||||||
|
// "pages/make_comment/index",
|
||||||
|
// "pages/make_follow/index",
|
||||||
|
// "pages/make_collection/index",
|
||||||
|
// "pages/make_system/index",
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
root: 'marketing',
|
||||||
|
pages: [
|
||||||
|
// 'pages/distribution/index', // 推广管理首页
|
||||||
|
// 'pages/distribution/setting', // 推广管理会员资料
|
||||||
|
// 'pages/distribution/shop-home', // 小店首页
|
||||||
|
// 'pages/distribution/statistics', // 推广费详情页面
|
||||||
|
// 'pages/distribution/trade', // 推广订单列表
|
||||||
|
// 'pages/distribution/subordinate', // 我的会员列表
|
||||||
|
// 'pages/distribution/withdraw', // 提现页面
|
||||||
|
// 'pages/distribution/withdrawals-record', // 提现记录
|
||||||
|
// 'pages/distribution/withdrawals-acount', // 提现绑定账户
|
||||||
|
// 'pages/distribution/goods', // 推广商品列表
|
||||||
|
// 'pages/distribution/shop', // 我的小店概览页面
|
||||||
|
// 'pages/distribution/shop-setting', // 小店设置页面
|
||||||
|
// 'pages/distribution/shop-form', // 小店设置编辑页面
|
||||||
|
// 'pages/distribution/qrcode', // 小店二维码
|
||||||
|
// 'pages/distribution/shop-category', // 小店商品分类
|
||||||
|
// 'pages/distribution/good-category', // 推广商品分类页面
|
||||||
|
// 'pages/distribution/shop-goods', // 小店商品页面
|
||||||
|
// 'pages/distribution/shop-trade', // 小店订单页面
|
||||||
|
// 'pages/distribution/shop-achievement', // 小店业绩页面
|
||||||
|
|
||||||
|
'pages/distribution/point-platform',
|
||||||
|
|
||||||
|
'pages/verified-card/index', // 实名认证以及绑定银行卡页面
|
||||||
|
'pages/verified-card/verified', // 实名认证页面
|
||||||
|
'pages/verified-card/card', // 绑定银行卡页面
|
||||||
|
'pages/reservation/brand-list', // 预约列表
|
||||||
|
'pages/reservation/brand-detail', // 预约详情
|
||||||
|
'pages/reservation/brand-result', // 预约结果
|
||||||
|
'pages/reservation/reservation-list', // 预约(代码逻辑显示)
|
||||||
|
'pages/reservation/goods-reservate', // 预约报名
|
||||||
|
'pages/reservation/reservation-detail', // 预约详情
|
||||||
|
|
||||||
|
'pages/member/item-activity', // 活动列表
|
||||||
|
'pages/member/activity-detail', // 活动详情
|
||||||
|
'pages/member/user-info', // 用户注册
|
||||||
|
'pages/member/complaint', // 投诉导购
|
||||||
|
'pages/member/complaint-record', // 投诉导购记录
|
||||||
|
// 'pages/member/coupon', // 我的优惠券列表
|
||||||
|
// 'pages/member/coupon-detail', // 我的优惠券详情
|
||||||
|
'pages/member/address', // 我的地址
|
||||||
|
'pages/member/edit-address', // 编辑地址
|
||||||
|
'pages/member/crm-address-list', // 收货地址
|
||||||
|
'pages/member/setting', // 设置页面
|
||||||
|
// 'pages/member/userinfo', // 用户信息
|
||||||
|
'pages/member/item-history', // 浏览记录
|
||||||
|
'pages/member/item-guess', // 猜你喜欢页面
|
||||||
|
'pages/member/member-code', // 用户二维码
|
||||||
|
'pages/member/group-list', // 我的拼团
|
||||||
|
'pages/member/member-setting', // 会员中心设置
|
||||||
|
'pages/member/destroy-member', // 会员注销页面
|
||||||
|
|
||||||
|
'pages/wheel/index', // 大转盘
|
||||||
|
'pages/item/espier-evaluation', // 商品评论列表
|
||||||
|
'pages/item/espier-evaluation-detail', // 商品评论详情
|
||||||
|
'pages/item/rate', //订单评价
|
||||||
|
'pages/item/success', //评价结果
|
||||||
|
|
||||||
|
'pages/item/seckill-goods-list', //秒杀商品列表
|
||||||
|
'pages/item/seckill-list', //秒杀列表
|
||||||
|
'pages/item/group-detail', //限时团购详情
|
||||||
|
'pages/item/group-list', //限时团购列表
|
||||||
|
|
||||||
|
'pages/plusprice/detail-plusprice-list', //商品进入换购详情页面
|
||||||
|
'pages/plusprice/cart-plusprice-list', //购物车进入换购详情页面
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
root: 'subpage',
|
||||||
|
pages: [
|
||||||
|
'pages/recommend/detail', //软文详情页面
|
||||||
|
'pages/trade/list', //我的订单列表页面
|
||||||
|
'pages/trade/customer-pickup-list', //我的自提订单列表
|
||||||
|
'pages/trade/drug-list', //处方药订单列表
|
||||||
|
'pages/trade/detail', //订单详情页面
|
||||||
|
'pages/trade/after-sale-detail', //售后详情页面
|
||||||
|
'pages/trade/delivery-info', //整单物流详情页面
|
||||||
|
'pages/trade/split-bagpack', //分单物流详情页面Ω
|
||||||
|
'pages/trade/rate', //订单评价页面
|
||||||
|
'pages/trade/cancel', //取消订单页面
|
||||||
|
'pages/trade/after-sale', //售后订单列表
|
||||||
|
'pages/trade/refund', //售后申请提交页面
|
||||||
|
'pages/trade/refund-detail', //售后申请提交结果页面
|
||||||
|
'pages/trade/refund-sendback', //售后填写物流公司页面
|
||||||
|
'pages/trade/invoice-list', //发票管理
|
||||||
|
// 'pages/cashier/index', //收银台页面
|
||||||
|
// 'pages/cashier/cashier-result', //支付结果页面
|
||||||
|
'pages/qrcode-buy', //二维码购买页
|
||||||
|
'pages/vip/vipgrades', //会员购买页面
|
||||||
|
'pages/auth/pclogin', //pc登录页面
|
||||||
|
// 编辑分享
|
||||||
|
'pages/editShare/index'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// // 助力
|
||||||
|
// {
|
||||||
|
// root: 'boost',
|
||||||
|
// pages: [
|
||||||
|
// 'pages/home/index',
|
||||||
|
// 'pages/detail/index',
|
||||||
|
// 'pages/flop/index',
|
||||||
|
// 'pages/pay/index',
|
||||||
|
// 'pages/payDetail/index',
|
||||||
|
// 'pages/order/index'
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
|
||||||
|
// {
|
||||||
|
// root: 'others',
|
||||||
|
// pages: [
|
||||||
|
// 'pages/home/license',
|
||||||
|
// // 'pages/home/coupon-home',
|
||||||
|
// 'pages/protocol/privacy',
|
||||||
|
// // 美恰客服
|
||||||
|
// 'pages/meiqia/index',
|
||||||
|
// 'pages/echat/index',
|
||||||
|
// // 扫码授权登录
|
||||||
|
// 'pages/auth/index',
|
||||||
|
// // 储值
|
||||||
|
// 'pages/recharge/index',
|
||||||
|
// 'pages/recharge/history',
|
||||||
|
// // cart
|
||||||
|
// // 'pages/cart/coupon-picker',
|
||||||
|
// 'pages/cart/drug-info',
|
||||||
|
// // 绑定订单
|
||||||
|
// 'pages/bindOrder/index',
|
||||||
|
// // 过期优惠券
|
||||||
|
// // 'pages/nullify/coupon-nullify'
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// 商家入驻
|
||||||
|
// {
|
||||||
|
// root: 'subpages/merchant',
|
||||||
|
// pages: [
|
||||||
|
// 'login', //登陆页面
|
||||||
|
// 'apply', //申请页面
|
||||||
|
// 'selector', //选择页面
|
||||||
|
// 'audit', //审核页面
|
||||||
|
// 'agreement' //协议页面
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// 授权
|
||||||
|
{
|
||||||
|
root: 'subpages/auth',
|
||||||
|
pages: [
|
||||||
|
'reg', //注册页面
|
||||||
|
'reg-rule', //注册协议页面
|
||||||
|
'login', //登陆页
|
||||||
|
'edit-password', //修改密码页面
|
||||||
|
'bindPhone', //绑定手机页面
|
||||||
|
'auth-loading', //授权加载页
|
||||||
|
'forgotpwd', //找回密码页面
|
||||||
|
'edit-phone' //修改密码页面
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
permission: {
|
||||||
|
'scope.userLocation': {
|
||||||
|
desc: '您的位置信息将用于定位附近门店'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// usingComponents: {
|
||||||
|
// 'mp-html': './components/sp-html/mp-weixin/index'
|
||||||
|
// },
|
||||||
|
window: {
|
||||||
|
'backgroundTextStyle': 'dark',
|
||||||
|
'navigationBarBackgroundColor': '#fff',
|
||||||
|
'navigationBarTitleText': 'BIRKENSTOCK',
|
||||||
|
'navigationBarTextStyle': 'black',
|
||||||
|
'navigationStyle': 'custom',
|
||||||
|
},
|
||||||
|
plugins: {
|
||||||
|
// 'live-player-plugin': {
|
||||||
|
// 'version': '1.3.0', // 注意填写该直播组件最新版本号,微信开发者工具调试时可获取最新版本号(复制时请去掉注释)
|
||||||
|
// 'provider': 'wx2b03c6e691cd7370' // 必须填该直播组件appid,该示例值即为直播组件appid(复制时请去掉注释)
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
requiredPrivateInfos: [
|
||||||
|
"getLocation",
|
||||||
|
"chooseAddress"
|
||||||
|
],
|
||||||
|
"__usePrivacyCheck__": true
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.env.TARO_ENV == 'weapp') {
|
||||||
|
Object.assign(config, {
|
||||||
|
usingComponents: {
|
||||||
|
'mp-html': './components/sp-html/mp-weixin/index',
|
||||||
|
"sp-wx-privacy": "./components/sp-wx-privacy/index"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.env.APP_LIVE == 'true') {
|
||||||
|
Object.assign(config.plugins, {
|
||||||
|
'live-player-plugin': {
|
||||||
|
'version': '1.3.0', // 注意填写该直播组件最新版本号,微信开发者工具调试时可获取最新版本号(复制时请去掉注释)
|
||||||
|
'provider': 'wx2b03c6e691cd7370' // 必须填该直播组件appid,该示例值即为直播组件appid(复制时请去掉注释)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.env.APP_ADAPAY == 'true') {
|
||||||
|
Object.assign(config.plugins, {
|
||||||
|
'Adapay': {
|
||||||
|
'version': 'latest', // 注意填写该直播组件最新版本号,微信开发者工具调试时可获取最新版本号(复制时请去掉注释)
|
||||||
|
'provider': 'wx308088053f4ecc3a' // 必须填该直播组件appid,该示例值即为直播组件appid(复制时请去掉注释)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default config
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
import React, { Component } from 'react'
|
||||||
|
import Taro, { getCurrentInstance, getCurrentPages } from '@tarojs/taro'
|
||||||
|
import S from '@/spx'
|
||||||
|
import { Provider } from 'react-redux'
|
||||||
|
import configStore from '@/store'
|
||||||
|
import api from '@/api'
|
||||||
|
// import { Tracker } from "@/service";
|
||||||
|
// import { youshuLogin } from '@/utils/youshu'
|
||||||
|
import { fetchUserFavs } from '@/store/slices/user'
|
||||||
|
import {
|
||||||
|
DEFAULT_TABS,
|
||||||
|
DEFAULT_THEME,
|
||||||
|
SG_APP_CONFIG,
|
||||||
|
SG_MEIQIA,
|
||||||
|
SG_YIQIA,
|
||||||
|
SG_ROUTER_PARAMS,
|
||||||
|
SG_GUIDE_PARAMS,
|
||||||
|
SG_GUIDE_PARAMS_UPDATETIME
|
||||||
|
} from '@/consts'
|
||||||
|
import { checkAppVersion, isWeixin, isWeb, isNavbar, log, entryLaunch } from '@/utils'
|
||||||
|
import { requestIntercept } from '@/plugin/requestIntercept'
|
||||||
|
import dayjs from 'dayjs'
|
||||||
|
|
||||||
|
import './app.scss'
|
||||||
|
|
||||||
|
// 如果需要在 h5 环境中开启 React Devtools
|
||||||
|
// 取消以下注释:
|
||||||
|
// if (process.env.NODE_ENV !== 'production' && process.env.TARO_ENV === 'h5') {
|
||||||
|
// require('nerv-devtools')
|
||||||
|
// }
|
||||||
|
|
||||||
|
const { store } = configStore()
|
||||||
|
|
||||||
|
// 如果是app模式,注入SAPP
|
||||||
|
if (process.env.APP_BUILD_TARGET == 'app') {
|
||||||
|
import('@/plugin/app/index').then(({ SAPP }) => {
|
||||||
|
SAPP.init(Taro, store)
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
import('@/plugin/routeIntercept').then(({ intercept }) => {
|
||||||
|
intercept.init()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
requestIntercept()
|
||||||
|
|
||||||
|
class App extends Component {
|
||||||
|
// componentWillMount() {
|
||||||
|
// this.getSystemConfig()
|
||||||
|
// // if ( S.getAuthToken() ) {
|
||||||
|
// // store.dispatch(fetchUserFavs());
|
||||||
|
// // }
|
||||||
|
// }
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
onLaunch(options) {
|
||||||
|
console.log(`app onLaunch:`, options)
|
||||||
|
import('../package.json').then(res => {
|
||||||
|
console.log(`App Name: ${res.name}, version: ${res.version}`)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
async componentDidShow(options) {
|
||||||
|
if (isWeixin) {
|
||||||
|
checkAppVersion()
|
||||||
|
}
|
||||||
|
// isWeb环境下,H5启动时,路由携带参数在options
|
||||||
|
// 小程序环境,启动时,路由携带参数在options.query
|
||||||
|
entryLaunch.getRouteParams(isWeb ? { query: options } : options).then((params) => {
|
||||||
|
console.log(`app componentDidShow:`, options, params)
|
||||||
|
Taro.setStorageSync(SG_ROUTER_PARAMS, params)
|
||||||
|
|
||||||
|
// 已缓存的导购参数
|
||||||
|
const guideParams = Taro.getStorageSync(SG_GUIDE_PARAMS) || {}
|
||||||
|
const guideUpdateTime = Taro.getStorageSync(SG_GUIDE_PARAMS_UPDATETIME) || ''
|
||||||
|
const diffMilliseconds = dayjs().diff(dayjs(guideUpdateTime))
|
||||||
|
// 参数保存超过3天,清除导购参数
|
||||||
|
if (diffMilliseconds > 3 * 86400000) {
|
||||||
|
Taro.removeStorageSync(SG_GUIDE_PARAMS)
|
||||||
|
Taro.removeStorageSync(SG_GUIDE_PARAMS_UPDATETIME)
|
||||||
|
} else {
|
||||||
|
// 欢迎语携带用户编号
|
||||||
|
if (guideParams?.gu_user_id) { delete guideParams.gu_user_id }
|
||||||
|
Taro.setStorageSync(SG_GUIDE_PARAMS, {
|
||||||
|
...guideParams,
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
Taro.setStorageSync(SG_GUIDE_PARAMS_UPDATETIME, dayjs().unix())
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导购UV上报
|
||||||
|
if (S.getAuthToken()) {
|
||||||
|
entryLaunch.postGuideUV()
|
||||||
|
entryLaunch.postGuideTask()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const { show_time } = await api.promotion.getScreenAd()
|
||||||
|
let showAdv
|
||||||
|
if (show_time === 'always') {
|
||||||
|
showAdv = false
|
||||||
|
store.dispatch({
|
||||||
|
type: 'user/closeAdv', payload: showAdv
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.getSystemConfig()
|
||||||
|
}
|
||||||
|
|
||||||
|
async getSystemConfig() {
|
||||||
|
const {
|
||||||
|
echat,
|
||||||
|
meiqia,
|
||||||
|
disk_driver = 'qiniu',
|
||||||
|
whitelist_status = false,
|
||||||
|
nostores_status = false,
|
||||||
|
distributor_param_status = false,
|
||||||
|
point_rule_name = '积分'
|
||||||
|
} = await api.shop.homeSetting()
|
||||||
|
|
||||||
|
const {
|
||||||
|
tab_bar,
|
||||||
|
is_open_recommend: openRecommend,
|
||||||
|
is_open_scan_qrcode: openScanQrcode,
|
||||||
|
is_open_wechatapp_location: openLocation,
|
||||||
|
is_open_official_account: openOfficialAccount,
|
||||||
|
color_style: { primary, accent, marketing },
|
||||||
|
title // 商城应用名称
|
||||||
|
} = await api.shop.getAppBaseInfo()
|
||||||
|
|
||||||
|
const priceSetting = await api.shop.getAppGoodsPriceSetting()
|
||||||
|
|
||||||
|
Taro.setStorageSync('distributor_param_status', distributor_param_status)
|
||||||
|
|
||||||
|
try {
|
||||||
|
const tabBar = JSON.parse(tab_bar)
|
||||||
|
store.dispatch({
|
||||||
|
type: 'sys/setSysConfig',
|
||||||
|
payload: {
|
||||||
|
initState: true,
|
||||||
|
colorPrimary: primary,
|
||||||
|
colorMarketing: marketing,
|
||||||
|
colorAccent: accent,
|
||||||
|
pointName: point_rule_name,
|
||||||
|
tabbar: tabBar,
|
||||||
|
openRecommend, // 开启猜你喜欢 1开启 2关闭
|
||||||
|
openScanQrcode, // 开启扫码功能 1开启 2关闭
|
||||||
|
openLocation, // 开启小程序定位 1开启 2关闭
|
||||||
|
openOfficialAccount, // 开启关注公众号组件 1开启 2关闭
|
||||||
|
diskDriver: disk_driver,
|
||||||
|
appName: title,
|
||||||
|
echat,
|
||||||
|
meiqia,
|
||||||
|
openStore: !nostores_status, // 前端店铺展示是否关闭 true:开启 false:关闭(接口返回值为true:关闭 false:不关闭)
|
||||||
|
priceSetting
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// 兼容老的主题方式
|
||||||
|
store.dispatch({
|
||||||
|
type: 'colors/setColor',
|
||||||
|
payload: {
|
||||||
|
primary,
|
||||||
|
marketing,
|
||||||
|
accent
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidCatchError() { }
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return <Provider store={store}>{this.props.children}</Provider>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default App
|
||||||
|
|
||||||
|
|
@ -0,0 +1,336 @@
|
||||||
|
@import './style/theme.scss';
|
||||||
|
@import './style/variables.scss';
|
||||||
|
@import './style/layout.scss';
|
||||||
|
@import './style/iconfont.scss';
|
||||||
|
@import './style/iconfont/iconfont.css';
|
||||||
|
$font-size-base: $font-size;
|
||||||
|
$hd: 2 !default; // 基本单位
|
||||||
|
$color-brand: $color-brand-primary;
|
||||||
|
$color-brand-light: $color-brand-accent;
|
||||||
|
$color-brand-dark: $color-brand-accent-light;
|
||||||
|
$color-text-base: $color-primary-text;
|
||||||
|
$at-button-border-color-secondary: $color-border-gray;
|
||||||
|
|
||||||
|
@import '~taro-ui/dist/style/index.scss';
|
||||||
|
@import './style/taro-ui-mod.scss';
|
||||||
|
@import './style/sp-comps.scss';
|
||||||
|
@import './style/alipay-comps.scss';
|
||||||
|
|
||||||
|
body,
|
||||||
|
view {
|
||||||
|
font-family: $font-family;
|
||||||
|
font-size: $font-size;
|
||||||
|
&::-webkit-scrollbar {
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
color: transparent;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
page,
|
||||||
|
body {
|
||||||
|
background: $color-bg-gray;
|
||||||
|
color: $color-primary-text;
|
||||||
|
&::-webkit-scrollbar {
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
color: transparent;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
color: transparent;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
position: inherit !important;
|
||||||
|
}
|
||||||
|
.taro__modal {
|
||||||
|
transition: opacity 0s linear 0s !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#react-refresh-overlay {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lnk {
|
||||||
|
color: $color-link;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lock-screen {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: fixed;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sec {
|
||||||
|
background: #fff;
|
||||||
|
margin: 0 0 $edge-margin;
|
||||||
|
&-hd {
|
||||||
|
display: flex;
|
||||||
|
line-height: 1;
|
||||||
|
align-items: center;
|
||||||
|
padding: $edge-size;
|
||||||
|
.more {
|
||||||
|
color: $color-link;
|
||||||
|
font-size: $font-size-small;
|
||||||
|
margin-right: floor(-$edge-size / 4);
|
||||||
|
}
|
||||||
|
.at-icon {
|
||||||
|
font-size: $font-size-large;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&-title {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
&-ft {
|
||||||
|
color: $color-gray-light;
|
||||||
|
margin-right: floor(-$edge-size / 4);
|
||||||
|
.at-font {
|
||||||
|
font-size: $font-size-large;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btns {
|
||||||
|
button,
|
||||||
|
.at-button {
|
||||||
|
margin: 0 0 $edge-margin;
|
||||||
|
}
|
||||||
|
padding: $edge-margin $edge-size;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-trade-refund {
|
||||||
|
.at-tabs__page {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toolbar {
|
||||||
|
&.toolbar-inline {
|
||||||
|
.at-button,
|
||||||
|
at-button {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
background: #fff;
|
||||||
|
font-size: $font-size;
|
||||||
|
display: flex;
|
||||||
|
height: $toolbar-height;
|
||||||
|
box-shadow: $toolbar-shadow;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: $edge-margin $edge-size;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
align-items: center;
|
||||||
|
align-content: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
z-index: $z-index-toolbar;
|
||||||
|
.at-button {
|
||||||
|
font-size: $font-size;
|
||||||
|
}
|
||||||
|
&-hd {
|
||||||
|
}
|
||||||
|
&-ft {
|
||||||
|
max-width: 120px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch,
|
||||||
|
.weui-switch {
|
||||||
|
transform: scale(0.6);
|
||||||
|
transform-origin: center right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-input__bar {
|
||||||
|
.at-search-bar {
|
||||||
|
&__input {
|
||||||
|
line-height: 30px - 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.AtFlayout {
|
||||||
|
.layout {
|
||||||
|
border-radius: 15px 15px 0 0;
|
||||||
|
}
|
||||||
|
.layout-body {
|
||||||
|
background: #efefef;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 15px 15px 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// .sp-login {
|
||||||
|
// .login-btn {
|
||||||
|
// border-width: 0;
|
||||||
|
// height: auto;
|
||||||
|
// line-height: auto;
|
||||||
|
// padding: 0;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
.sp-search-bar {
|
||||||
|
}
|
||||||
|
|
||||||
|
.usericon {
|
||||||
|
border: 4px solid #fff;
|
||||||
|
width: 110px;
|
||||||
|
height: 110px;
|
||||||
|
border-radius: 50px;
|
||||||
|
margin-right: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-input {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* wgt common styles */
|
||||||
|
.wgt {
|
||||||
|
&.wgt__padded {
|
||||||
|
padding: 20px 0px;
|
||||||
|
}
|
||||||
|
.wgt-head {
|
||||||
|
padding: 0px 16px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
.wgt-hd {
|
||||||
|
display: flex;
|
||||||
|
align-items: baseline;
|
||||||
|
flex: 1;
|
||||||
|
.wgt-title {
|
||||||
|
color: #222;
|
||||||
|
font-size: 36px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-right: 16px;
|
||||||
|
max-width: 30%;
|
||||||
|
@include multi-ellipsis(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.wgt-subtitle {
|
||||||
|
color: #999;
|
||||||
|
font-size: 28px;
|
||||||
|
max-width: 55%;
|
||||||
|
@include multi-ellipsis(1);
|
||||||
|
}
|
||||||
|
.wgt-more {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 60px;
|
||||||
|
height: 24px;
|
||||||
|
border-radius: 60px;
|
||||||
|
.three-dot {
|
||||||
|
position: relative;
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
background: #333;
|
||||||
|
border-radius: 50%;
|
||||||
|
&::before,
|
||||||
|
&::after {
|
||||||
|
position: absolute;
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
background: #333;
|
||||||
|
border-radius: 50%;
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
&::before {
|
||||||
|
transform: translateX(-160%);
|
||||||
|
}
|
||||||
|
&::after {
|
||||||
|
transform: translateX(160%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// .wgt-body {
|
||||||
|
// margin-top: 24px;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* coupon styles */
|
||||||
|
.sp-shop-coupon {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
display: inline-block;
|
||||||
|
&::before {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: #fff;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: -18px;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
/* prettier-ignore */
|
||||||
|
border: 1PX solid var(--color-primary);
|
||||||
|
}
|
||||||
|
&::after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: #fff;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
right: -18px;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
/* prettier-ignore */
|
||||||
|
border: 1PX solid var(--color-primary);
|
||||||
|
}
|
||||||
|
.coupon-wrap {
|
||||||
|
/* prettier-ignore */
|
||||||
|
border: 1PX solid var(--color-primary);
|
||||||
|
border-radius: 4px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 38px;
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
.coupon-text {
|
||||||
|
color: var(--color-primary);
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.wgt-timer {
|
||||||
|
.at-countdown__time-box {
|
||||||
|
font-family: sans-serif;
|
||||||
|
background: var(--color-primary);
|
||||||
|
border-radius: 6px;
|
||||||
|
min-width: 38px;
|
||||||
|
height: 40px;
|
||||||
|
color: #fff;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 26px;
|
||||||
|
padding: 0 2px;
|
||||||
|
}
|
||||||
|
.time-fonts {
|
||||||
|
display: inline-flex;
|
||||||
|
padding-top: 6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// h5
|
||||||
|
.taro_router {
|
||||||
|
.taro_page {
|
||||||
|
background-color: transparent !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 305 B |
|
After Width: | Height: | Size: 720 B |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 950 B |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 972 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 713 B |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 783 B |
|
After Width: | Height: | Size: 982 B |
|
After Width: | Height: | Size: 709 B |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
|
@ -0,0 +1,50 @@
|
||||||
|
import React, { Component } from 'react'
|
||||||
|
import Taro, { getCurrentInstance } from '@tarojs/taro'
|
||||||
|
import { View, Image, Text, Button, Progress } from '@tarojs/components'
|
||||||
|
|
||||||
|
import './index.scss'
|
||||||
|
|
||||||
|
export default class BargainItem extends Component {
|
||||||
|
static defaultProps = {
|
||||||
|
info: {}
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor (props) {
|
||||||
|
super(props)
|
||||||
|
}
|
||||||
|
|
||||||
|
handleItem = () => {
|
||||||
|
const { info } = this.props
|
||||||
|
Taro.navigateTo({
|
||||||
|
url: `/boost/pages/detail/index?bargain_id=${info.bargain_id}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
render () {
|
||||||
|
const { info } = this.props
|
||||||
|
return (
|
||||||
|
<View className='bargainItem'>
|
||||||
|
<Image className='img' src={info.item_pics} mode='aspectFill' />
|
||||||
|
<View className='info'>
|
||||||
|
<View className='title'>{info.item_name}</View>
|
||||||
|
<View className='price'>
|
||||||
|
<Text className='text'>¥{info.mkt_price}</Text>
|
||||||
|
<Text className='text diff'>砍价立减:¥{info.diff_price}</Text>
|
||||||
|
</View>
|
||||||
|
{/* <View className='progress'>
|
||||||
|
<Progress percent={20} activeColor='#a2564c' backgroundColor='#f0eeed' strokeWidth={6} active />
|
||||||
|
<View className='interval'>
|
||||||
|
<Text className='text'>¥{ info.mkt_price }</Text>
|
||||||
|
<Text className='text'>¥{ info.price }</Text>
|
||||||
|
</View>
|
||||||
|
</View> */}
|
||||||
|
</View>
|
||||||
|
<View className='act'>
|
||||||
|
<Button size='mini' className='btn' onClick={this.handleItem.bind(this)}>
|
||||||
|
查看详情
|
||||||
|
</Button>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||