Commit 71400fd7 authored by 王伟's avatar 王伟

yimu 初始化提交

parent 59c5ed5f
{
"presets": [
"@vue/app"
]
}
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
module.exports = {
root: true,
'extends': [
'plugin:vue/essential',
'@vue/standard'
],
rules: {
// allow async-await
'generator-star-spacing': 'off',
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'vue/no-parsing-error': [2, {
'x-invalid-end-tag': false
}],
'no-undef': 'off',
'camelcase': 'off'
},
parserOptions: {
parser: 'babel-eslint'
}
}
.DS_Store
node_modules
/dist
/mallAdmin
package-lock.json
/tests/e2e/videos/
/tests/e2e/screenshots/
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*
build/env.js
module.exports = {
plugins: {
autoprefixer: {}
}
}
language: node_js
node_js: stable
script: npm run lint
notifications:
email: false
MIT License
Copyright (c) 2017 iView
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
"pluginsFile": "tests/e2e/plugins/index.js"
}
# 需要bash
# 需要配置ssh authorized_keys
# ssh-copy-id -i path_to_your_id_file.pub root@47.99.159.203
# test with 'ssh root@47.99.159.203'
# 如果依然需要密码 请google解决
tar -czf mallAdmin.tar mallAdmin
#rm -rf glassMall
scp mallAdmin.tar root@172.22.20.64:/usr/share/nginx/html/mallAdmin.tar
rm -rf mallAdmin.tar
ssh root@172.22.20.64 'cd /usr/share/nginx/html/ && rm -rf mallAdmin && tar -xzf mallAdmin.tar && rm -rf mallAdmin.tar && nginx -s reload'
echo 'done. 👉 http://172.22.20.64:12023'
# 清理分支
# git remote prune origin
# 需要bash
# 需要配置ssh authorized_keys
# ssh-copy-id -i path_to_your_id_file.pub root@47.99.159.203
# test with 'ssh root@47.99.159.203'
# 如果依然需要密码 请google解决
tar -czf mallAdmin.tar mallAdmin
#rm -rf glassMall
scp mallAdmin.tar root@146.56.197.85:/usr/share/nginx/html/mallAdmin.tar
rm -rf mallAdmin.tar
ssh root@146.56.197.85 'cd /usr/share/nginx/html/ && rm -rf mallAdmin && tar -xzf mallAdmin.tar && rm -rf mallAdmin.tar && nginx -s reload'
echo 'done. 👉 http://146.56.197.85:12023'
# 清理分支
# git remote prune origin
{
"name": "ip-manage-front",
"version": "1.0.0",
"author": "zhuangc@disanbo.com",
"private": false,
"scripts": {
"dev": "vue-cli-service serve --open",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"deploy:test": "vue-cli-service build --modern --mode production && bash ./deploy2TestServer.sh",
"deploy:dev": "vue-cli-service build --modern --mode production && bash ./deploy2DevServer.sh",
"test:unit": "vue-cli-service test:unit",
"test:e2e": "vue-cli-service test:e2e"
},
"dependencies": {
"@carpenter/vue-tencent-captcha": "^0.0.5",
"ali-oss": "^6.4.0",
"axios": "^0.18.0",
"clipboard": "^2.0.0",
"codemirror": "^5.38.0",
"countup": "^1.8.2",
"cropperjs": "^1.2.2",
"dayjs": "^1.7.7",
"echarts": "^4.0.4",
"element-ui": "^2.15.1",
"html2canvas": "^1.0.0-alpha.12",
"iview": "^3.4.2",
"iview-area": "^1.5.17",
"js-cookie": "^2.2.0",
"qrcode": "^1.3.3",
"qrcodejs2": "^0.0.2",
"simplemde": "^1.11.2",
"sortablejs": "^1.7.0",
"tree-table-vue": "^1.1.0",
"v-org-tree": "^1.0.6",
"vue": "^2.5.10",
"vue-aplayer": "^1.6.1",
"vue-baidu-map": "^0.21.22",
"vue-clipboard2": "^0.3.0",
"vue-i18n": "^7.8.0",
"vue-quill-editor": "^3.0.6",
"vue-router": "^3.0.1",
"vue-video-player": "^5.0.2",
"vuedraggable": "^2.16.0",
"vuex": "^3.0.1",
"wangeditor": "^3.1.1",
"xlsx": "^0.13.3"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.0.1",
"@vue/cli-plugin-eslint": "^3.0.1",
"@vue/cli-plugin-unit-mocha": "^3.0.1",
"@vue/cli-service": "^3.0.1",
"@vue/eslint-config-standard": "^3.0.0-beta.10",
"@vue/test-utils": "^1.0.0-beta.10",
"chai": "^4.1.2",
"eslint-plugin-cypress": "^2.0.1",
"less": "^2.7.3",
"less-loader": "^4.0.5",
"lint-staged": "^6.0.0",
"mockjs": "^1.0.1-beta3",
"vue-template-compiler": "^2.5.13"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
],
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.js": [
"vue-cli-service lint",
"git add"
],
"*.vue": [
"vue-cli-service lint",
"git add"
]
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<!-- <link rel="icon" href="<%= BASE_URL %>favicon.ico"> -->
<title></title>
</head>
<body>
<noscript>
<strong>We're sorry but gbt-manage doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
<template>
<div id="app">
<router-view v-if="isRouterAlive"/>
</div>
</template>
<script>
export default {
name: 'App',
provide () {
return {
reload: this.reload
}
},
data () {
return {
isRouterAlive: true
}
},
methods: {
reload () {
this.isRouterAlive = false
this.$nextTick(function () {
this.isRouterAlive = true
})
}
},
mounted () {
this.$Notice.config({ top: 130 })
}
}
</script>
<style lang="less">
.size{
width: 100%;
height: 100%;
}
html,body{
.size;
overflow: hidden;
margin: 0;
padding: 0;
}
#app {
.size;
}
</style>
// 管理员模块
// 登录
export const login = {
url: '/homePage/login',
method: 'POST',
dealReqData: ({ account, password, rand, ticket, userIp }) => {
return { account, password, rand, ticket, userIp }
}
}
// 重置密码
export const resetPwd = {
url: '/homePage/resetPwd',
method: 'PUT',
dealReqData: ({ phone, token, newPwd, newPwd2 }) => {
return { phone, token, newPwd, newPwd2 }
}
}
// 退出
export const logout = {
url: '/homePage/logout',
method: 'POST'
}
// 修改密码
// export const updateAdminPwd = {
// url: '/admin/common/updatePwd',
// method: 'POST',
// dealReqData: ({ pwd, newPwd, newPwd2 }) => {
// return { pwd, newPwd, newPwd2 }
// }
// }
// 获取管理员权限
export const getAdminPermission = {
url: '/homePage/getAdminAuthMenu',
method: 'GET'
}
// 资金模块
export const getAssetsList = {
url: '/assets/user/page',
method: 'GET',
dealReqData: ({ pageNum, pageSize, userKey, coin, type }) => {
return { pageNum, pageSize, userKey, coin, type }
}
}
export const getAssetsWithdrawList = {
url: '/assets/withdrawList',
method: 'GET',
dealReqData: ({ pageNum, pageSize, userKey, startTime, endTime }) => {
return { pageNum, pageSize, userKey, startTime, endTime }
}
}
export const getAssetsRecordList = {
url: '/assets/flow/page',
method: 'GET',
dealReqData: ({ pageNum, pageSize, userKey, type, startTime, endTime }) => {
return { pageNum, pageSize, userKey, type, startTime, endTime }
}
}
// 获取发票列表
export const getInvoiceList = {
url: '/assets/invoice/page',
method: 'GET',
dealReqData: ({ timeHead, timeTail, keyword, pageNum, pageSize, status }) => {
return { timeHead, timeTail, keyword, pageNum, pageSize, status }
}
}
// 开发票
export const applyInvoice = {
url: '/assets/invoice/apply',
method: 'POST',
dealReqData: ({ invoiceId }) => {
return { invoiceId }
}
}
// 获取分润明细
export const getProfitRecordList = {
url: '/assets/profitRecord/page',
method: 'GET',
dealReqData: ({ pageNum, pageSize, oid, searchKey, type, buyType, startTime, endTime }) => {
return { pageNum, pageSize, oid, searchKey, type, buyType, startTime, endTime }
}
}
// 品牌商模块
// 获取品牌商列表
export const getBrandList = {
url: '/brand/manger/page',
method: 'GET',
dealReqData: ({ pageNum, pageSize, userKey, addTimeHead, addTimeTail }) => {
return { pageNum, pageSize, userKey, addTimeHead, addTimeTail }
}
}
// 获取所有品牌商
export const getAllBrand = {
url: '/brand/common/list',
method: 'GET'
}
// 新增品牌商
export const addBrand = {
url: '/brand/manger/add',
method: 'POST',
dealReqData: ({ account, brandName, license, licenseNo, brandPrefix, linkMan, linkPhone }) => {
return { account, brandName, license, licenseNo, brandPrefix, linkMan, linkPhone }
}
}
// 修改品牌商信息
export const updateBrand = {
url: '/brand/manger/update',
method: 'PUT',
dealReqData: ({ adminId, account, brandName, license, licenseNo, linkMan, linkPhone }) => {
return { adminId, account, brandName, license, licenseNo, linkMan, linkPhone }
}
}
// 删除品牌商
export const deleteBrand = {
url: '/brand/manger/delete',
method: 'DELETE',
dealReqData: ({ brandId }) => {
return { brandId }
}
}
// 重置密码
export const resetBrandPwd = {
url: '/brand/manger/resetPwd',
method: 'POST',
dealReqData: ({ brandId }) => {
return { brandId }
}
}
export const customerList = {
url: '/customerService/list',
type: 'contact',
method: 'GET',
dealReqData: ({ userId, keyWord }) => {
return { userId, keyWord }
}
}
// 查询数字资产列表
export const digitAssetsList = {
url: '/payMode/digitAssetsList',
method: 'GET'
}
// 查询支付方式
export const queryPayMode = {
url: '/payMode/queryPayMode',
method: 'GET'
}
// 新增收付款方式
export const digitAdd = {
url: '/payMode/add',
method: 'POST',
dealReqData: (pDTOs) => {
return pDTOs
}
}
// 商户流水 资产类型
export const assetsType = {
url: '/merchantAssetsFlow/assetsType',
method: 'GET'
}
// 分页查询-商户流水
export const merchantAssetsFlowList = {
url: '/merchantAssetsFlow/page',
method: 'GET'
}
// 用户流水 资产类型
export const userType = {
url: '/userAssetRecord/assetsType',
method: 'GET'
}
// 分页查询-用户流水
export const userAssetRecordList = {
url: '/userAssetRecord/page',
method: 'GET'
}
// 商户资产类型
export const merchantAssetsType = {
url: '/merchantAssets/assetsType',
method: 'GET'
}
// 商户资产列表
export const merchantAssetsPage = {
url: '/merchantAssets/page',
method: 'GET'
}
// 用户资产类型
export const userAssetsType = {
url: '/userAsset/assetsType',
method: 'GET'
}
// 用户资产列表
export const userAssetsPage = {
url: '/userAsset/page',
method: 'GET'
}
// 充值用户资产
export const rechargeUser = {
url: '/userAsset/recharge',
method: 'POST'
}
// 扣除积分
export const deductionUser = {
url: '/userAsset/deduction',
method: 'POST'
}
// 平台基础积分详情
// 平台流水 资产类型
export const platType = {
url: '/platformAssetsFlow/assetsType',
method: 'GET'
}
// 分页查询-平台流水
export const platAssetRecordList = {
url: '/platformAssetsFlow/page',
method: 'GET'
}
// 商户积分详情
export const merchantIntegralDetail = {
url: '/integralManage/merchantIntegralDetail',
method: 'GET'
}
// 平台基础积分详情
export const platformBaseIntegralDetail = {
url: '/integralManage/platformBaseIntegralDetail',
method: 'GET'
}
// 分页查询 系统积分列表
export const getIntegralManageList = {
url: '/integralManage/page',
method: 'GET'
}
// 设置积分兑换比例
export const setIntegralRatio = {
url: '/integralManage/setRatio',
method: 'PUT'
}
// 设置平台积分价格
export const setPlatformIntegralPrice = {
url: '/integralManage/setPlatFormIntegralPrice',
method: 'POST'
}
// 平台积分转账单个
export const transSinglePlatform = {
url: '/integralManage/platFormTransSingle',
method: 'POST',
dealReqData: ({ amount, phone, type }) => {
return { amount, phone, type }
}
}
// 发行商户积分
export const issueMerchantIntegral = {
url: '/integralManage/issueMerchantIntegral',
method: 'POST',
dealReqData: (dto) => {
return dto
}
}
// 商户积分转账-单个
export const merchantTransSingle = {
url: '/integralManage/merchantTransSingle',
method: 'POST',
dealReqData: (dto) => {
return dto
}
}
// 商户平台积分转账-单个
export const merchantBaseTransSingle = {
url: 'integralManage/merchantBaseTransSingle',
method: 'POST',
dealReqData: (dto) => {
return dto
}
}
// 积分启用禁用
export const integralManageDisable = {
url: '/integralManage/disable',
method: 'PUT'
}
// 积分审核
export const integralManageCheck = {
url: '/integralManage/check',
method: 'PUT'
}
// 增发积分
export const addPlatFormIntegral = {
url: '/integralManage/addPlatFormIntegral',
method: 'POST'
}
// 回收积分
export const recoverPlatFormIntegral = {
url: '/integralManage/recoverPlatFormIntegral',
method: 'POST'
}
// 下载批量转账模板
export const downloadexcel = {
url: '/integralManage/downloadexcel',
method: 'GET'
}
// 商户批量转账
export const merchantTransBatch = {
url: '/integralManage/merchantTransBatch',
method: 'GET',
dealReqData: ({ path }) => {
return { path }
}
}
// 商户_平台批量转账
export const merchantBaseTransBatch = {
url: '/integralManage/merchantBaseTransBatch',
method: 'GET',
dealReqData: ({ path }) => {
return { path }
}
}
// 平台批量转账
export const integralPlatformTransBatch = {
url: '/integralManage/platFormTransBatch',
method: 'POST',
dealReqData: ({ path, type }) => {
return { path, type }
}
}
// 商品管理模块
// // 商品相关
// 查询商品类目
export const categoryList = {
url: '/category/categoryPermission/list',
method: 'GET'
}
// 删除商品类目
export const categoryDelete = {
url: '/category/categoryPermission/delete',
method: 'DELETE',
dealUrl: (url, categoryId) => {
return `${url}/${categoryId}`
}
}
// 新增商品类目
export const categorySave = {
url: '/category/categoryPermission/save',
method: 'POST',
dealReqData: (addCate) => {
return addCate
}
}
// 修改商品类目
export const categoryUpdate = {
url: '/category/categoryPermission/update',
method: 'PUT',
dealReqData: (eidtCate) => {
return eidtCate
}
}
// 获取快递模板列表
export const templateList = {
url: '/template/templatePermission/list',
method: 'GET'
}
// 获取外部未绑定token
export const unbindToken = {
url: '/goods/unbindToken',
method: 'GET'
}
// 获取商品Token前缀
export const getMerchantPrefix = {
url: '/goods/merchantPrefix',
method: 'GET'
}
// 新增商品
export const addGood = {
url: '/goods/releaseGoods/add',
method: 'POST',
// dealReqData: ({ auctionDTO, categoryId, description, detail, imgList, name, note, pointsExchangeDTO, preSaleDTO, prop, returnReason, returnType, skuList, templateId, thumb, type, video, videoPoster }) => {
// return { auctionDTO, categoryId, description, detail, imgList, name, note, pointsExchangeDTO, preSaleDTO, prop, returnReason, returnType, skuList, templateId, thumb, type, video, videoPoster }
// }
dealReqData: (form) => {
return form
}
}
// 获取商品列表
export const getGoodList = {
url: '/goodsList/page',
method: 'GET',
dealReqData: ({ goodsId, goodsName, goodsType, status, addTimeHead, addTimeTail, pageNum, pageSize }) => {
return { goodsId, goodsName, goodsType, status, addTimeHead, addTimeTail, pageNum, pageSize }
}
}
// 上下架商品系列
export const onOffSeries = {
url: '/goodsList/onOff',
method: 'PUT',
dealReqData: ({ goodsId, type }) => {
return { goodsId, type }
}
}
// 删除商品
export const deleteGood = {
url: '/goodsList/deleteBatch',
method: 'DELETE'
}
// 获取商品详情
export const getGoodDetail = {
url: '/goodsList/detail',
method: 'GET',
dealReqData: ({ goodsId }) => {
return { goodsId }
}
}
// 查询是否已建模板或店铺
export const templateorshopquery = {
url: '/goods/releaseGoods/templateorshopquery',
method: 'GET'
}
// 打包商品-根据商品编号或名称获取商品信息
export const spugetbyvague = {
url: '/goods/releaseGoods/spugetbyvague',
method: 'GET',
dealUrl: (url, goodsInfo) => {
return `${url}?goodsInfo=${goodsInfo}`
}
}
// 打包商品-根据商品编号获取商品规格
export const skugetbygoodsId = {
url: '/goods/releaseGoods/skugetbygoodsId',
method: 'GET',
dealUrl: (url, goodsId) => {
return `${url}?goodsId=${goodsId}`
}
}
// 编辑商品
export const updateGood = {
url: '/goods/goodsList/edit',
method: 'PUT',
dealReqData: (form) => {
return form
}
}
// 重新发布商品
export const republishGood = {
url: '/goods/goodsList/republish',
method: 'PUT',
dealReqData: (form) => {
return form
}
}
// 商品审核
export const checkGood = {
url: '/goods/goodsList/check',
method: 'PUT',
dealReqData: ({ checkFailReason, goodsId, status }) => {
return { checkFailReason, goodsId, status }
}
}
// 商品批量审核
export const checkAllGood = {
url: '/goods/goodsList/checkBatch',
method: 'PUT',
dealReqData: (form) => {
return form
}
}
// 取消审核
export const cancelCheckGood = {
url: '/goodsList/cancelCheck',
method: 'PUT',
dealUrl: (url, goodsId) => {
return `${url}/${goodsId}`
}
}
// 添加积分商品
export const addIntegralGood = {
url: '/integralExchange/releaseIntegral/add',
method: 'POST',
dealReqData: (form) => {
return form
}
}
// 积分商品列表
export const getIntegralList = {
url: '/integralExchange/integralList/page',
method: 'GET',
dealReqData: ({ goodsId, goodsName, addTimeHead, addTimeTail, pageNum, pageSize }) => {
return { goodsId, goodsName, addTimeHead, addTimeTail, pageNum, pageSize }
}
}
// 删除积分商品
export const delIntegralGood = {
url: '/integralExchange/integralList/deleteBatch',
method: 'DELETE'
}
// 修改积分值
export const updateIntegralValue = {
url: '/integralExchange/integralList/repairIntegral',
method: 'PUT',
dealReqData: ({ goodsId, integral }) => {
return { goodsId, integral }
}
}
// 修改库存
export const undateIntegralStock = {
url: '/integralExchange/integralList/repairStock',
method: 'PUT',
dealReqData: ({ goodsId, stock }) => {
return { goodsId, stock }
}
}
// 上下架积分商品
export const undateIntegralStatus = {
url: '/integralExchange/integralList/onOff',
method: 'PUT',
dealReqData: ({ goodsId, type }) => {
return { goodsId, type }
}
}
// 分页查询-商品评论
export const getGoodsCommentList = {
url: '/goodsComment/page',
method: 'GET',
dealReqData: ({ evaluateType, goodsId, goodsName, replyStatus, pageNum, pageSize }) => {
return { evaluateType, goodsId, goodsName, replyStatus, pageNum, pageSize }
}
}
// 商品评价详情
export const commentDetail = {
url: '/goodsComment/commentDetail',
method: 'GET',
dealReqData: ({ commentId }) => {
return { commentId }
}
}
// 商品追评详情
export const appendCommentDetail = {
url: '/goodsComment/appendCommentDetail',
method: 'GET',
dealReqData: ({ commentId }) => {
return { commentId }
}
}
// 商品回复
export const reply = {
url: '/goodsComment/reply',
method: 'PUT',
dealReqData: ({ commentId, replyContent }) => {
return { commentId, replyContent }
}
}
// 商品追评
export const appendReply = {
url: '/goodsComment/appendReply',
method: 'PUT',
dealReqData: ({ commentId, replyContent }) => {
return { commentId, replyContent }
}
}
// 删除商品回复
export const deleteReply = {
url: '/goodsComment/delete',
method: 'DELETE',
dealUrl: (url, commentId) => {
return `${url}/${commentId}`
}
}
// 删除商品追评
export const appendDelete = {
url: '/goodsComment/appendDelete',
method: 'DELETE',
dealUrl: (url, commentId) => {
return `${url}/${commentId}`
}
}
// 外部商品通证--列表
export const externalTokenList = {
url: '/externalToken/list',
method: 'GET'
}
// 外部商品通证--交易记录
export const externalTokenTradeList = {
url: '/externalTokenTrade/list',
method: 'GET'
}
// 外部商品通证--地址--二维码
export const externalTokenRead = {
url: '/externalToken/read',
method: 'GET'
}
// 商品配置--商户详情
export const goodsConfigureMerchantDetail = {
url: '/goodsConfigure/merchantDetail',
method: 'GET'
}
// 商品配置--商户
export const goodsConfigureMerchantConfigure = {
url: '/goodsConfigure/merchantConfigure',
method: 'PUT',
dealUrl: (url, { delayDelivery }) => {
return `${url}?delayDelivery=${delayDelivery}`
}
}
// 商品配置--平台详情
export const goodsConfigurePlatDetail = {
url: '/goodsConfigure/platDetail',
method: 'GET'
}
// 商品配置--平台
export const goodsConfigurePlatConfigure = {
url: '/goodsConfigure/platConfigure',
method: 'PUT',
dealUrl: (url, { delayDelivery }) => {
return `${url}?delayDelivery=${delayDelivery}`
}
}
// 商户发布商品是否允许延后提货
export const merchantDelayDelivery = {
url: '/goods/releaseGoods/merchantDelayDelivery',
method: 'GET'
}
// 查询外部nft
export const externnftlist = {
url: '/goods/releaseGoods/externnftlist',
method: 'GET'
}
export const getHomeData = {
url: '/homePage/platformStatistics',
method: 'GET'
}
export const merchantStatistics = {
url: '/homePage/merchantStatistics',
method: 'GET'
}
export const getMerchantInfo = {
url: '/homePage/getMerchantInfo',
method: 'GET'
}
export const repairHeadImg = {
url: '/homePage/repairHeadImg',
method: 'PUT',
dealUrl: (url, headImg) => {
return `${url}?headImg=${headImg}`
}
}
export const queryIdCard = {
url: '/homePage/queryIdCard',
method: 'GET'
}
export const getBankList = {
url: '/home/common/getBankList',
method: 'GET'
}
export const getAssetsInfo = {
url: '/home/common/getAssetsInfo',
method: 'GET',
dealReqData: ({ type }) => {
return { type }
}
}
export const adminBindCard = {
url: '/home/common/bindCard',
method: 'POST',
dealReqData: ({ realName, idNo, phone, bank, bankCode, openBranch, cardNo, type, companyName, uniqeCode }) => {
return { realName, idNo, phone, bank, bankCode, openBranch, cardNo, type, companyName, uniqeCode }
}
}
export const adminBindVerifyCode = {
url: '/home/common/verifyCode',
method: 'POST',
dealReqData: ({ realName, idNo, phone, bankCode, openBranch, cardNo, authAmt, orderNo, type, companyName, uniqeCode }) => {
return { realName, idNo, phone, bankCode, openBranch, cardNo, authAmt, orderNo, type, companyName, uniqeCode }
}
}
export const adminWithdraw = {
url: '/home/common/withdraw',
method: 'POST',
dealReqData: ({ type, amt }) => {
return { type, amt }
}
}
export const adminUnbindCard = {
url: '/home/common/unbindCard',
method: 'DELETE',
dealReqData: ({ type }) => {
return { type }
}
}
export const getTop5GoodList = {
url: '/home/goodsSalesList',
method: 'GET'
}
export const getAllGoodListByBrand = {
url: '/home/common/goodsListByBrand',
method: 'GET',
dealReqData: ({ brandId }) => {
return { brandId }
}
}
// 销量趋势
export const getSaledTend = {
url: '/home/common/salesTrend',
method: 'GET',
dealReqData: ({ brandId, goodsNo }) => {
return { brandId, goodsNo }
}
}
// 销量统计
export const getSalesStatistics = {
url: '/home/common/salesStatistics',
method: 'GET',
dealReqData: ({ brandId, type, startTime, endTime }) => {
return { brandId, type, startTime, endTime }
}
}
// 区域总销量统计
export const getAreaStatistics = {
url: '/home/common/areaStatistics',
method: 'GET',
dealReqData: ({ brandId, goodsNo, province, city }) => {
return { brandId, goodsNo, province, city }
}
}
export * from './admin'
export * from './user'
export * from './marketing'
export * from './assets'
export * from './brand'
export * from './promotion'
export * from './good'
export * from './system'
export * from './order'
export * from './home'
export * from './store'
export * from './upload'
export * from './shop'
export * from './news'
export * from './logistics'
export * from './customer'
export * from './finance'
export * from './jurisdiction'
// 权限中心-账号管理-分页查询
export const accountManage = {
url: '/accountManage/page',
method: 'GET',
dealReqData: ({ accounts, uid, pageNum, pageSize }) => {
return { account: accounts, uid, pageNum, pageSize }
}
}
// 角色列表
export const accountRoleList = {
url: '/accountManage/roleList',
method: 'GET'
}
// 添加账户
export const addAccountManage = {
url: '/accountManage/add',
method: 'POST'
}
// 修改角色
export const repairRoleAccount = {
url: '/accountManage/repairRole',
method: 'PUT'
}
// 重置密码
export const resetPwdAccount = {
url: '/accountManage/resetPwd',
method: 'PUT'
}
// 删除账户
export const deleteAccountManage = {
url: '/accountManage/delete',
method: 'GET',
dealUrl: (url, uid) => {
return `${url}/${uid}`
}
}
// 禁用账户
export const disableAccountManage = {
url: '/accountManage/disable',
method: 'GET',
dealUrl: (url, uid) => {
return `${url}/${uid}`
}
}
// 启用账户
export const ableAccountManage = {
url: '/accountManage/able',
method: 'GET',
dealUrl: (url, uid) => {
return `${url}/${uid}`
}
}
// 角色分页查询
export const roleManageList = {
url: '/roleManage/page',
method: 'GET'
}
// 全部权限
export const totalAuthRole = {
url: '/roleManage/totalAuth',
method: 'GET'
}
// 删除角色
export const deleteRoleManage = {
url: '/roleManage/delete',
method: 'GET',
dealUrl: (url, roleId) => {
return `${url}/${roleId}`
}
}
// 添加角色
export const addRoleManage = {
url: '/roleManage/add',
method: 'POST',
dealReqData: ({ authJson, remarks, roleName, type }) => {
return { authJson: JSON.stringify(authJson.map((item) => {
return item.menuIndex
})),
remarks,
roleName,
type }
}
}
// 编辑角色
export const editRoleManage = {
url: '/roleManage/edit',
method: 'PUT',
dealReqData: ({ authJson, remarks, roleId }) => {
return { authJson: JSON.stringify(authJson.map((item) => {
return item.menuIndex
})),
remarks,
roleId }
}
}
// 禁用角色
export const disableRoleManage = {
url: '/roleManage/disable',
method: 'GET',
dealUrl: (url, roleId) => {
return `${url}/${roleId}`
}
}
// 启用角色
export const ableRoleManage = {
url: '/roleManage/able',
method: 'GET',
dealUrl: (url, roleId) => {
return `${url}/${roleId}`
}
}
// 角色详情
export const detailRoleManage = {
url: '/roleManage/detail',
method: 'GET'
}
export const getAuthCatalogue = {
url: '/functionManage/authCatalogue',
method: 'GET'
}
// 物流中心模块
// 获取地址列表
export const getAddressList = {
url: '/address/addressPermission/list',
method: 'GET'
}
// 新增地址
export const addAddress = {
url: '/address/addressPermission/save',
method: 'POST',
dealReqData: (form) => {
return form
}
}
// 删除地址
export const deleteAddress = {
url: '/address/addressPermission/delete',
method: 'DELETE',
dealUrl: (url, addressId) => {
return `${url}/${addressId}`
}
}
// 获取公司
export const getCompanyList = {
url: '/company/companyPermission/list',
method: 'GET'
}
// 新增物流公司
export const addCompany = {
url: '/company/companyPermission/save',
method: 'POST',
dealReqData: (form) => {
return form
}
}
// 获取物流公司简称
export const getCompanyName = {
url: '/express/list',
method: 'GET'
}
// 删除地址
export const deleteCompany = {
url: '/company/companyPermission/delete',
method: 'DELETE',
dealUrl: (url, companyId) => {
return `${url}/${companyId}`
}
}
// 地理行政地区-列表查询
export const getDictCnProvinceList = {
url: '/dict-cn-province/templatePermission/list',
method: 'GET'
}
// 新增模板
export const addTemplate = {
url: '/template/templatePermission/save',
method: 'POST',
dealReqData: (form) => {
return form
}
}
// 运费模板列表
export const getTemplateList = {
url: '/template/templatePermission/list',
method: 'GET'
}
// 运费模板删除
export const deleteTemplate = {
url: '/template/templatePermission/delete',
method: 'DELETE',
dealUrl: (url, templateId) => {
return `${url}/${templateId}`
}
}
// 运费模板编辑
export const updateTemplate = {
url: '/template/templatePermission/update',
method: 'PUT',
dealReqData: (form) => {
return form
}
}
// 运费模板详情
export const detailTemplate = {
url: '/template/templatePermission',
method: 'GET',
dealUrl: (url, templateId) => {
return `${url}/${templateId}`
}
}
// 包裹列表
export const getParcelList = {
url: '/parcelCenter/parcelCenterPermission/list',
method: 'GET',
dealReqData: ({ pageNum, pageSize, packageNum, orderDeliveryId, uid, deliveryState }) => {
return { pageNum, pageSize, packageNum, orderDeliveryId, uid, deliveryState }
}
}
// 包裹详情
export const parcelDetail = {
url: '/parcelCenter/parcelCenterPermission',
method: 'GET',
dealUrl: (url, expressNo) => {
return `${url}/${expressNo}`
}
}
// 营销模块 运营中心
// 获取Banner列表
export const getBannerList = {
url: '/banner/bannerPermission/list',
method: 'GET'
// dealReqData: ({ pageNum, pageSize }) => {
// return { pageNum, pageSize }
// }
}
// 添加Banner
export const addBanner = {
url: '/banner/bannerPermission/save',
method: 'POST',
dealReqData: ({ bannerName, bannerImage, bannerType, url, number, displayOrder }) => {
return { bannerName, bannerImage, bannerType, url, number, displayOrder }
}
}
// 编辑banner
export const updateBanner = {
url: '/banner/bannerPermission/update',
method: 'PUT'
// dealReqData: ({ id, goodsNo, sort, bannerUrl }) => {
// goodsNo = goodsNo.trim()
// return { id, goodsNo, sort, bannerUrl }
// }
}
// banner详情
export const bannerDetail = {
url: `/banner/bannerPermission`,
method: 'GET',
dealUrl: (url, operationBannerId) => {
return `${url}/${operationBannerId}`
}
}
// 显示或隐藏Banner
export const hideOrShowBanner = {
url: '/banner/bannerPermission/banner/hideOrShow',
method: 'PUT',
dealReqData: ({ id }) => {
return { id }
}
}
// 删除Banner
export const deleteBanner = {
url: '/banner/bannerPermission/delete',
method: 'DELETE',
dealUrl: (url, operationBannerId) => {
return `${url}/${operationBannerId}`
}
}
// 获取推荐商品列表
export const getRecommendList = {
url: '/banner/bannerPermission/recommend/page',
method: 'GET',
dealReqData: ({ pageNum, pageSize }) => {
return { pageNum, pageSize }
}
}
// 添加推荐商品
export const addRecommend = {
url: '/banner/bannerPermission/recommend/add',
method: 'POST',
dealReqData: ({ goodsNo, sort }) => {
goodsNo = goodsNo.trim()
return { goodsNo, sort }
}
}
// 编辑推荐商品
export const updateRecommend = {
url: '/banner/bannerPermission/recommend/update',
method: 'PUT',
dealReqData: ({ id, goodsNo, sort }) => {
goodsNo = goodsNo.trim()
return { id, goodsNo, sort }
}
}
// 删除推荐商品
export const deleteRecommend = {
url: '/banner/bannerPermission/recommend/delete',
method: 'DELETE',
dealReqData: ({ id }) => {
return { id }
}
}
// 楼层列表查询
export const getFloorList = {
url: '/floor/floorPermission/list',
method: 'GET'
}
// 楼层商品列表查询
export const getFloorGoodsList = {
url: '/floor-goods/floorGoodsPermission/list',
method: 'GET',
dealReqData: ({ operationFloorId }) => {
return { operationFloorId }
}
}
// 楼层商品新增
export const addFloorGoods = {
url: '/floor-goods/floorGoodsPermission/save',
method: 'POST'
}
// 楼层商品删除
export const delFloorGoods = {
url: '/floor-goods/floorGoodsPermission/delete',
method: 'DELETE',
dealUrl: (url, { operationFloorId, goodsId }) => {
return `${url}/${operationFloorId}/${goodsId}`
}
}
// 功能区列表查询
export const getRibbonList = {
url: '/function/functionPermission/list',
method: 'GET'
}
// 功能区新增
export const addRibbon = {
url: '/function/functionPermission/save',
method: 'POST'
}
// 功能区编辑
export const updateRibbon = {
url: '/function/functionPermission/update',
method: 'PUT'
}
// 功能区详情
export const ribbonDetail = {
url: '/function/functionPermission',
method: 'GET',
dealUrl: (url, operationFunctionId) => {
return `${url}/${operationFunctionId}`
}
}
// 功能区列表删除
export const deleteRibbon = {
url: '/function/functionPermission/delete',
method: 'DELETE',
dealUrl: (url, operationFunctionId) => {
return `${url}/${operationFunctionId}`
}
}
// 关键字列表
export const getKeywordList = {
url: '/keyword/keywordPermission/list',
method: 'GET'
}
// 关键字新增
export const addKeyword = {
url: '/keyword/keywordPermission/save',
method: 'POST'
}
// 关键字删除
export const deleteKeyword = {
url: '/keyword/keywordPermission/delete',
method: 'DELETE',
dealUrl: (url, operationKeywordId) => {
return `${url}/${operationKeywordId}`
}
}
// 优惠券列表查询
export const couponList = {
url: '/coupon/couponPermission/list',
method: 'GET',
dealReqData: ({ pageNum, pageSize, couponId, name, status }) => {
return { pageNum, pageSize, couponId, name, status }
}
}
// 添加优惠券
export const addcoupon = {
url: '/coupon/couponPermission/save',
method: 'POST',
dealReqData: (couponSaveDTO) => {
return couponSaveDTO
}
}
// 修改优惠券
export const updateCoupon = {
url: '/coupon/couponPermission/update',
method: 'PUT',
dealReqData: (couponSaveDTO) => {
return couponSaveDTO
}
}
// 优惠券详情
export const couponDetail = {
url: `/coupon/couponPermission`,
method: 'GET'
}
// 删除优惠券
export const deleteCoupon = {
url: `/coupon/couponPermission/delete`,
method: 'DELETE',
dealUrl: (url, couponId) => {
return `${url}/${couponId}`
}
}
// 批量删除优惠券
export const batchDelete = {
url: `/coupon/couponPermission/batchDelete`,
method: 'DELETE',
// dealReqData: (couponIdList) => {
// return { couponIdList }
// }
dealUrl: (url, couponIdList) => {
return `${url}?couponIdList=${couponIdList}`
}
}
// 根据商品编号或id查询商品信息
export const queryByNameOrId = {
url: `/goods/goodsList/queryByNameOrId`,
method: 'GET',
dealReqData: (goods) => {
return goods
}
}
// 积分返现-列表查询
export const recurrencePermissionList = {
url: '/memberIntegralRecurrence/recurrencePermission/list',
method: 'GET'
}
// 运营中心-积分返现-编辑
export const updateCouponUpdate = {
url: '/memberIntegralRecurrence/recurrencePermission/update',
method: 'PUT',
dealReqData: (paramList) => {
return paramList
}
}
// 积分返现--分页查询
export const integralReturnPage = {
url: '/integralReturnMerchant/page',
method: 'GET'
}
// 积分返现--新增
export const addIntegralReturn = {
url: '/integralReturnMerchant/add',
method: 'POST',
dealReqData: ({ name, num, returnCondition, conditionVal, effectiveStartTime, effectiveEndTime, remarks, goodsRange, categoryList, goodsList }) => {
return { name, num, returnCondition, conditionVal, effectiveStartTime, effectiveEndTime, remarks, goodsRange, categoryList, goodsList }
}
}
// 积分返现--编辑
export const editIntegralReturn = {
url: '/integralReturnMerchant/edit',
method: 'PUT'
}
// 积分返现--详情
export const detailIntegralReturn = {
url: '/integralReturnMerchant/detail',
method: 'GET',
dealUrl: (url, returnId) => {
return `${url}?returnId=${returnId}`
}
}
// 积分返现--删除
export const deleteIntegralReturn = {
url: '/integralReturnMerchant/delete',
method: 'DELETE',
dealUrl: (url, returnId) => {
return `${url}/${returnId}`
}
}
// 积分返现--下架
export const offShelfIntegralReturn = {
url: '/integralReturnMerchant/offShelf',
method: 'PUT',
dealUrl: (url, returnId) => {
return `${url}?returnId=${returnId}`
}
}
// 积分返现--批量删除
export const deleteBatchIntegralReturn = {
url: '/integralReturnMerchant/deleteBatch',
method: 'DELETE'
}
// 根据商品编号或名称查询商品信息
export const integralReturnQueryByNameOrId = {
url: '/integralReturnMerchant/queryByNameOrId',
method: 'GET'
}
// 推广佣金
export const popularizeCommissionList = {
url: '/popularizeCommission/list',
method: 'GET'
}
// 保存推广佣金
export const popularizeCommissionSave = {
url: '/popularizeCommission/save',
method: 'POST'
}
// 消息模块
// 获取公告列表
export const getNoticeList = {
url: '/notice/noticePermission/list',
method: 'GET',
dealReqData: ({ content, pageNum, pageSize }) => {
return { content, pageNum, pageSize }
}
}
// 新增公告
export const addNotice = {
url: '/notice/noticeCreatePermission/save',
method: 'POST',
dealReqData: ({ content, title, startTime, endTime }) => {
return { content, title, startTime, endTime }
}
}
// 更新公告
export const updateNotice = {
url: '/notice/noticePermission/update',
method: 'PUT',
dealReqData: (form) => {
return form
}
}
// 公告详情
export const detailNotice = {
url: '/notice/noticePermission',
method: 'GET',
dealUrl: (url, noticeId) => {
return `${url}/${noticeId}`
}
}
// 删除公告
export const deleteNotice = {
url: '/notice/noticePermission/delete',
method: 'DELETE',
dealUrl: (url, noticeId) => {
return `${url}/${noticeId}`
}
}
// 短信模板列表查询
export const getSmsTemplateList = {
url: '/smsTemplate/page',
method: 'GET',
dealReqData: ({ pageNum, pageSize, templateCode, templateName }) => {
return { pageNum, pageSize, templateCode, templateName }
}
}
// 新增模板
export const smsTemplateAdd = {
url: '/smsTemplate/add',
method: 'POST'
}
export const deleteSmsTemplate = {
url: '/smsTemplate/delete',
method: 'DELETE'
}
export const updateSmsTemplate = {
url: '/smsTemplate/modify',
method: 'POST'
}
// 获取sms列表
export const getSmsList = {
url: '/smsList/page',
method: 'GET'
}
// 发送sms消息
export const sendSmsNow = {
url: '/smsList/sendNow',
method: 'POST'
}
// 重新发送sms
export const reSendSms = {
url: '/smsList/reSend',
method: 'GET'
}
// 删除sms
export const deleteSms = {
url: '/smsList/delete',
method: 'DELETE'
}
// 订单模块
// 订单列表
// 查询订单列表
export const getOrderList = {
url: '/order/orderPermission/list',
method: 'GET',
dealReqData: ({ pageNum, pageSize, oid, uid, orderState }) => {
return { pageNum, pageSize, oid, uid, orderState }
}
}
// 修改商品价格
export const consultDiscount = {
url: '/order/orderPermission/consultDiscount',
method: 'PUT',
dealUrl: (url, { consultDiscountAmount, consultDiscountType, oid, updateTime }) => {
return `${url}?consultDiscountAmount=${consultDiscountAmount}&consultDiscountType=${consultDiscountType}&oid=${oid}&updateTime=${updateTime}`
}
}
// 订单详情
export const getOrderDetail = {
url: '/order/orderPermission',
method: 'GET',
dealUrl: (url, oid) => {
return `${url}/${oid}`
}
}
// 查询退款订单列表
export const getRefundOrderList = {
url: '/order/refundOrder/page',
method: 'GET',
dealReqData: ({ pageNum, pageSize, timeHead, timeTail, oid, uid, orderState }) => {
return { pageNum, pageSize, timeHead, timeTail, oid, uid, orderState }
}
}
// 商品订单退款处理
export const orderRefund = {
url: '/order/orderPermission/refund/examine',
method: 'PUT',
dealUrl: (url, { oid, isApproved, remark, updateTime }) => {
return `${url}?oid=${oid}&isApproved=${Boolean(isApproved)}&remark=${remark}&updateTime=${updateTime}`
}
}
// 查询提货记录
export const getPickUpList = {
url: '/delivery/deliveryPermission/list',
method: 'GET',
dealReqData: ({ pageNum, pageSize, orderDeliveryId, gid, uid, deliveryState }) => {
return { pageNum, pageSize, orderDeliveryId, gid, uid, deliveryState }
}
}
// 提货订单退货审核
export const deliveryCheck = {
url: '/delivery/deliveryPermission/examine',
method: 'PUT',
dealUrl: (url, { orderDeliveryId, isApproved, remark, updateTime, addressId }) => {
return `${url}?orderDeliveryId=${orderDeliveryId}&isApproved=${Boolean(isApproved)}&remark=${remark}&updateTime=${updateTime}&addressId=${addressId}`
}
}
// 提货订单退货审核
export const deliveryCheckToBeSigned = {
url: '/delivery/deliveryPermission/returnReceiptExamine',
method: 'PUT',
dealUrl: (url, { orderDeliveryId, isApproved, remark, updateTime }) => {
return `${url}?orderDeliveryId=${orderDeliveryId}&isApproved=${Boolean(isApproved)}&remark=${remark}&updateTime=${updateTime}`
}
}
// 发货
export const pickUpGood = {
url: '/delivery/deliveryPermission/send',
method: 'PUT',
dealUrl: (url, { expressType, expressNo, orderDeliveryId, updateTime }) => {
return `${url}?expressType=${expressType}&expressNo=${expressNo}&orderDeliveryId=${orderDeliveryId}&updateTime=${updateTime}`
}
}
// 提货订单详情
export const deliveryDetail = {
url: '/delivery/deliveryPermission',
method: 'GET',
dealUrl: (url, orderDeliveryId) => {
return `${url}/${orderDeliveryId}`
}
}
// 查询物流
export const queryExpress = {
url: '/order/drawGoods/logistics',
method: 'GET',
dealReqData: ({ expressNo }) => {
return { expressNo }
}
}
// 订单设置
export const orderConfig = {
url: '/config/configPermission/list',
method: 'GET'
}
// 编辑订单设置
export const editOrderConfig = {
url: '/config/configPermission/update',
method: 'PUT',
dealReqData: (form) => {
return form
}
}
// 订单投诉列表
export const getComplaintList = {
url: '/complaint/complaintPermission/list',
method: 'GET',
dealReqData: ({ pageNum, pageSize, complaintId, complaintStatus, uid }) => {
return { pageNum, pageSize, complaintId, complaintStatus, uid }
}
}
// 处理订单投诉
export const checkComplaint = {
url: '/complaint/complaintPermission/update',
method: 'PUT',
dealReqData: (form) => {
return form
}
}
export const complaintDetail = {
url: '/complaint/complaintPermission',
method: 'GET',
dealUrl: (url, complaintId) => {
return `${url}/${complaintId}`
}
}
// 促销模块
// 获取促销列表
export const getPromotionList = {
url: '/promotion/promotionPermission/list',
method: 'GET',
dealReqData: ({ pageNum, pageSize, name, promotionId, status }) => {
return { pageNum, pageSize, name, promotionId, status }
}
}
// 添加促销规则
export const addPromotion = {
url: '/promotion/promotionPermission/save',
method: 'POST',
dealReqData: (form) => {
return form
}
}
// 修改促销
export const updatePromotion = {
url: '/promotion/promotionPermission/update',
method: 'PUT',
dealReqData: (form) => {
return form
}
}
// 获取促销详情
export const getPromotionDetail = {
url: '/promotion/promotionPermission',
method: 'GET',
dealReqData: ({ promotionId }) => {
return { promotionId }
}
}
// 删除促销活动
export const deletePromotion = {
url: '/promotion/promotionPermission/delete',
method: 'DELETE',
dealUrl: (url, promotionId) => {
return `${url}/${promotionId}`
}
}
// // 暂停或开放促销活动
// export const stopOrOpenPromotion = {
// url: '/promotion/promotion/stopOrOpen',
// method: 'PUT',
// dealReqData: ({ promotionId }) => {
// return { promotionId }
// }
// }
// // 获取优惠券列表
// export const getCouponList = {
// url: '/promotion/coupon/page',
// method: 'GET',
// dealReqData: ({ pageNum, pageSize, startTimeHead, startTimeTail, endTimeHead, endTimeTail, keyword, status, type }) => {
// return { pageNum, pageSize, startTimeHead, startTimeTail, endTimeHead, endTimeTail, keyword, status, type }
// }
// }
// // 添加或修改优惠券
// export const addOrUpdateCoupon = {
// url: '/promotion/coupon/addOrUpdate',
// method: 'POST',
// dealReqData: ({ couponId, couponName, goodsNo, couponType, startTime, endTime, fullMoney, reduceMoney, straightDownMoney }) => {
// return { couponId, couponName, goodsNo, couponType, startTime, endTime, fullMoney, reduceMoney, straightDownMoney }
// }
// }
// // 删除优惠券
// export const deleteCoupon = {
// url: '/promotion/coupon/delete',
// method: 'DELETE',
// dealReqData: ({ couponId }) => {
// return { couponId }
// }
// }
// // 暂停或开放优惠券
// export const stopOrOpenCoupon = {
// url: '/promotion/coupon/stopOrOpen',
// method: 'PUT',
// dealReqData: ({ couponId }) => {
// return { couponId }
// }
// }
// 发送验证码
export const sendVerification = {
url: '/sms/sendVerifyCode',
method: 'GET',
dealReqData: ({ phone, type }) => {
return { phone, type }
}
}
// 注册账号
export const registeredNumber = {
url: '/merchantApply/register',
method: 'POST',
dealReqData: ({ phone, code }) => {
return { phone, code }
}
}
// 查询进度(手机号)
export const searchShop = {
url: '/merchantApply/applyProgressQuery',
method: 'GET',
dealReqData: ({ phone, code }) => {
return { phone, code }
}
}
// 完善商户信息
export const improveInfo = {
url: '/merchantApply/improveInfo',
method: 'PUT',
dealReqData: (merchantDTO) => {
return merchantDTO
}
}
// 查询进度 接口参数已变
export const applyStatusByToken = {
url: '/merchantApply/getApplyProgressByPhoneAndToken',
method: 'GET',
dealReqData: ({ phone, token }) => {
return { phone, token }
}
}
export const registerPay = {
url: '/merchantApply/registerPay',
method: 'PUT',
dealUrl: (url, phone) => {
return `${url}?phone=${phone}`
}
}
export const pwdset = {
url: '/merchantApply/pwdset',
method: 'PUT',
dealReqData: ({ phone, token, pwd, pwd2 }) => {
return { phone, token, pwd, pwd2 }
}
}
// 修改密码验证码
export const sendAuthSms = {
url: '/sms/sendVerifyCode',
method: 'GET',
dealReqData: ({ phone, type }) => {
return { phone, type }
}
}
// 修改密码验证身份
export const authentication = {
url: '/homePage/authentication',
method: 'GET',
dealReqData: ({ phone, code }) => {
return { phone, code }
}
}
// 修改密码
export const repairPwd = {
url: '/personalInfo/repairPwd',
method: 'PUT',
dealReqData: ({ phone, code, newPwd, newPwd2, pwd, token, type }) => {
return { phone, code, newPwd, newPwd2, pwd, token, type }
}
}
export const getIsInitPwd = {
url: '/personalInfo/isInitPwd',
method: 'GET'
}
// 获取门店列表
// export const getStoreList = {
// url: '/brand/storeList/passExamineShop',
// method: 'GET',
// dealReqData: ({ pageNum, pageSize }) => {
// return { pageNum, pageSize }
// }
// }
// 获取未审核门店列表
export const getUnreviewStoreList = {
url: '/brand/storeExam/waitExamineShop',
method: 'GET',
dealReqData: ({ pageNum, pageSize }) => {
return { pageNum, pageSize }
}
}
// 获取门店详情
export const getStoreDetail = {
url: '/brand/common/detailShop',
method: 'GET',
dealReqData: ({ shopNo }) => {
return { shopNo }
}
}
// 审核通过
export const storeReviewAccept = {
url: '/brand/storeExam/passExamine',
method: 'GET',
dealReqData: ({ applyId }) => {
return { applyId }
}
}
// 审核未通过
export const storeReviewRefuse = {
url: '/brand/storeExam/refuseExamine',
method: 'GET',
dealReqData: ({ applyId }) => {
return { applyId }
}
}
// 获取店铺列表
export const getStoreList = {
url: '/shop/shopPermission/list',
method: 'GET'
}
// 新增店铺
export const addShopPermission = {
url: '/shop/shopPermission/save',
method: 'POST',
dealReqData: ({ contact, contactPhone, introduction, shopAddress, shopImage, shopName }) => {
return { contact, contactPhone, introduction, shopAddress, shopImage, shopName }
}
}
// 店铺详情
export const shopPermissionDetail = {
url: '/shop/shopPermission',
method: 'GET',
dealUrl: (url, shopId) => {
return `${url}/${shopId}`
}
}
// 编辑店铺
export const editShopPermission = {
url: '/shop/shopPermission/update',
method: 'PUT',
dealReqData: (form) => {
return form
}
}
// 店铺导航查询
export const getNavigationList = {
url: '/navigation/navigationPermission/list',
method: 'GET'
}
// 新增店铺导航
export const saveNavigation = {
url: '/navigation/navigationPermission/save',
method: 'POST',
dealReqData: (form) => {
return form
}
}
// 获取详情
export const navigationDetail = {
url: '/navigation/navigationPermission',
method: 'GET',
dealUrl: (url, navigationId) => {
return `${url}/${navigationId}`
}
}
// 删除店铺导航
export const deleteNavigation = {
url: '/navigation/navigationPermission/delete',
method: 'DELETE',
dealUrl: (url, navigationId) => {
return `${url}/${navigationId}`
}
}
// 编辑店铺导航
export const editNavigation = {
url: '/navigation/navigationPermission/update',
method: 'PUT',
dealReqData: (form) => {
return form
}
}
// 系统管理模块
// // 获取版本信息
// export const getVersionConfig = {
// url: '/system/base/getVersionConfig',
// method: 'GET'
// }
// // 更新版本信息
// export const updateVersionConfig = {
// url: '/system/base/updateVersionConfig',
// method: 'PUT',
// dealReqData: ({
// iosVersionName,
// iosForceVersion,
// iosAddress,
// iosContent,
// anVersionName,
// anVersionCode,
// anForceVersion,
// anAddress,
// anContent }) => {
// return {
// iosVersionName,
// iosForceVersion,
// iosAddress,
// iosContent,
// anVersionName,
// anVersionCode,
// anForceVersion,
// anAddress,
// anContent
// }
// }
// }
// 全局配置列表查询
export const getSysConfigList = {
url: '/sys-config/list',
method: 'GET',
deleteData: ({ keyword, pageNum, pageSize }) => {
return { keyword, pageNum, pageSize }
}
}
// 全局配置新增
export const addSysConfig = {
url: '/sys-config/save',
method: 'POST',
deleteData: (form) => {
return form
}
}
// 全局配置编辑
export const editSysConfig = {
url: '/sys-config/update',
method: 'PUT',
deleteData: (form) => {
return form
}
}
// 全局配置状态启用停用
export const updateSysConfigStatus = {
url: '/sys-config/validState/update',
method: 'PUT',
dealUrl: (url, { configId, updateTime, validState }) => {
return `${url}/${configId}?updateTime=${updateTime}&validState=${validState}`
}
}
// 全局配置详情
export const detailSysConfig = {
url: '/sys-config',
method: 'PUT',
dealUrl: (url, configId) => {
return `${url}/${configId}`
}
}
// 全局配置删除
export const deleteSysConfig = {
url: '/sys-config/delete',
method: 'DELETE',
dealUrl: (url, configId) => {
return `${url}/${configId}`
}
}
// 常见问题列表查询
export const getSysQuestionList = {
url: '/sys-question/list',
method: 'GET',
deleteData: ({ keyword, pageNum, pageSize, navigationId }) => {
return { keyword, pageNum, pageSize, navigationId }
}
}
// 导航列表查询
export const getSysNavigationList = {
url: '/sys-navigation/list',
method: 'GET'
}
// 常见问题详情
export const detailSysQuestion = {
url: '/sys-question',
method: 'GET',
dealUrl: (url, questionId) => {
return `${url}/${questionId}`
}
}
// 新增常见问题
export const addSysQuestion = {
url: '/sys-question/save',
method: 'POST',
deleteData: ({ answer, displayOrder, navigationId, question }) => {
return { answer, displayOrder, navigationId, question }
}
}
// 更新常见问题
export const updateSysQuestion = {
url: '/sys-question/update',
method: 'PUT',
deleteData: (form) => {
return form
}
}
// 删除常见问题
export const deleteSysQuestion = {
url: '/sys-question/delete',
method: 'DELETE',
dealUrl: (url, questionId) => {
return `${url}/${questionId}`
}
}
// 新增导航
export const addNavigation = {
url: '/sys-navigation/save',
method: 'POST',
deleteData: (form) => {
return form
}
}
// 敏感词列表查询
export const getSysSensitiveList = {
url: '/sys-sensitive-words/list',
method: 'GET',
deleteData: ({ pageNum, pageSize, sensitiveWords }) => {
return { pageNum, pageSize, sensitiveWords }
}
}
// 新增敏感词
export const addSysSensitiveWord = {
url: '/sys-sensitive-words/save',
method: 'POST',
deleteData: (form) => {
return form
}
}
// 删除敏感词
export const deleteSysSensitiveWord = {
url: '/sys-sensitive-words/delete',
method: 'DELETE',
dealUrl: (url, sensitiveWordsId) => {
return `${url}/${sensitiveWordsId}`
}
}
// 测试敏感词
export const testSysSensitiveWord = {
url: '/sys-sensitive-words/test',
method: 'GET',
deleteData: ({ text }) => {
return { text }
}
}
// 区块链管理-新增
export const chainManagementSave = {
url: '/blockChainManagement/save',
method: 'POST',
deleteData: ({ blockChainName, ip, port, title, startHeight, remark }) => {
return { blockChainName, ip, port, title, startHeight, remark }
}
}
// 区块链管理-编辑
export const chainManagementUpdate = {
url: '/blockChainManagement/update',
method: 'PUT',
deleteData: ({ blockChainId, ip, port, title, startHeight, remark, updateTime }) => {
return { blockChainId, ip, port, title, startHeight, remark, updateTime }
}
}
// 区块链管理-列表查询
export const chainManagementList = {
url: '/blockChainManagement/list',
method: 'GET'
}
// 区块链管理-启用停用
export const chainManagementValid = {
url: '/blockChainManagement/validState/update',
method: 'PUT',
dealUrl: (url, { blockChainId, updateTime, validState }) => {
return `${url}/${blockChainId}?updateTime=${updateTime}&validState=${validState}`
}
}
// 区块链管理--删除
export const chainManagementDelete = {
url: '/blockChainManagement/delete',
method: 'DELETE',
dealUrl: (url, blockChainId) => {
return `${url}/${blockChainId}`
}
}
// 管理通证-列表查询
export const blockChainPassList = {
url: '/blockChainPass/list',
method: 'GET'
}
// 管理通证-新增
export const blockChainPassSave = {
url: '/blockChainPass/save',
method: 'POST',
deleteData: ({ blockChainId, passIdentification, name, remark }) => {
return { blockChainId, passIdentification, name, remark }
}
}
// 管理通证-编辑
export const blockChainPassUpdate = {
url: '/blockChainPass/update',
method: 'PUT',
deleteData: ({ passId, name, remark, updateTime }) => {
return { passId, name, remark, updateTime }
}
}
// 区块链管理-启用停用
export const blockChainPassValid = {
url: '/blockChainPass/validState/update',
method: 'PUT',
dealUrl: (url, { passId, updateTime, validState }) => {
console.log('111', passId)
return `${url}/${passId}?updateTime=${updateTime}&validState=${validState}`
}
}
// 区块链管理--删除
export const blockChainPassDelete = {
url: '/blockChainPass/delete',
method: 'DELETE',
dealUrl: (url, passId) => {
return `${url}/${passId}`
}
}
import config from '@/config'
const baseUrl = process.env.NODE_ENV === 'development' ? config.baseUrl.dev.mall : config.baseUrl.pro.mall
export const uploadImgUrl = `${baseUrl}/upload/common/img`
export const uploadVideoUrl = `${baseUrl}/upload/common/video`
export const uploadApkUrl = `${baseUrl}/upload/common/apk`
export const uploadNftUrl = `${baseUrl}/upload/common/nft`
// 用户模块
// 获取用户列表
export const getUserList = {
url: '/user/userList/page',
method: 'GET',
dealReqData: ({ uid, account, pageNum, pageSize }) => {
return { uid, account, pageNum, pageSize }
}
}
// 清除用户认证信息
export const clearUserAuthInfo = {
url: '/account/manger/clearAuthInfo',
method: 'DELETE',
dealReqData: ({ uid }) => {
return { uid }
}
}
// 更新用户邀请码
export const updateUserInviteCode = {
url: '/account/manger/updateInvitePeople',
method: 'PUT',
dealReqData: ({ uid, inviteUid }) => {
return { uid, inviteUid }
}
}
// 更新用户状态
export const updateUserStatus = {
url: '/user/userList/lock',
method: 'PUT',
dealReqData: ({ uid, lock }) => {
return { uid, lock }
}
}
// 商户列表查询
export const getMerchantList = {
url: '/userCenterMerchant/merchantList/page',
method: 'GET',
dealReqData: ({ merchantId, account, linkMan, pageNum, pageSize }) => {
return { merchantId, account, linkMan, pageNum, pageSize }
}
}
// 查询商户IDCard
export const searchMerchangIdCard = {
url: '/userCenterMerchant/merchantCheck/getIdCard',
method: 'GET',
dealReqData: ({ registerPhone }) => {
return { registerPhone }
}
}
// 更新用户状态
export const updateMerchantStatus = {
url: '/userCenterMerchant/merchantList/lock',
method: 'PUT',
dealReqData: ({ merchantId, lock }) => {
return { merchantId, lock }
}
}
// 查询商户审核列表
export const getMerchantCheckList = {
url: '/userCenterMerchant/merchantCheck/page',
method: 'GET',
dealReqData: ({ merchantId, account, linkMan, pageNum, pageSize }) => {
return { merchantId, account, linkMan, pageNum, pageSize }
}
}
// 商户审核结果
export const checkMerchant = {
url: '/userCenterMerchant/merchantCheck/check',
method: 'PUT',
dealReqData: ({ merchantId, check, reason }) => {
return { merchantId, check, reason }
}
}
// 重置商户登录密码
export const resetMerchantPwd = {
url: '/userCenterMerchant/merchantList/resetLoginPwd',
method: 'PUT',
dealUrl: (url, account) => {
return `${url}/${account}`
}
}
// 获取商户设置列表
export const getMerchantConfigList = {
url: '/userCenterMerchant/merchantSettings/list',
method: 'GET'
}
// 编辑商户设置某些值
export const editMerchantConfig = {
url: '/userCenterMerchant/merchantSettings/edit',
method: 'POST',
dealReqData: (form) => {
return form
}
}
// 获取用户设置列表
export const getMemberList = {
url: '/member/memberSettings/list',
method: 'GET'
}
// 编辑用户某些值
export const editMemberConfig = {
url: '/member/memberSettings/edit',
method: 'POST',
dealReqData: (form) => {
return form
}
}
import router from '@/router'
import { Notice } from 'iview'
import { clearAdminInfo as clearInfo } from '@/libs/util'
const SUCCESS_CODE = '00000'
const TOKEN_NULL_CODE = 'A0101'
const TOKEN_ERR_CODE = 'A0102'
const NO_AUTH_CODE = 'A0401'
const TOKEN_INVALID_CODE = 'A0302'
function apiVerify ({ res, success, error, alertServerErrMsg, clearAdminInfo, url }) {
if (!alertServerErrMsg) {
alertServerErrMsg = msg => {
Notice.error({
title: msg || '服务端请求异常'
})
}
}
if (!clearAdminInfo) {
clearAdminInfo = clearInfo
}
let data = res.data || {}
if (res.data.code === SUCCESS_CODE) {
success && success(data)
} else if (data.code == TOKEN_NULL_CODE || data.code == TOKEN_ERR_CODE) {
clearAdminInfo && clearAdminInfo()
error && error(data.msg)
if (router.currentRoute.name != 'login') {
router.push({ name: 'login' }).catch(err => {})
alertServerErrMsg('密码格式错误,请重新登录')
}
} else if (data.code == NO_AUTH_CODE) {
router.push({ name: 'error_401' }).catch(err => {})
} else if (data.code == TOKEN_INVALID_CODE) {
clearAdminInfo && clearAdminInfo()
error && error(data.msg)
if (router.currentRoute.name != 'login') {
router.push({ name: 'login' }).catch(err => {})
alertServerErrMsg('登录已失效,请重新登录')
}
} else {
if (error) {
error(data)
} else {
alertServerErrMsg(data.msg)
}
}
return null
}
export {
SUCCESS_CODE,
TOKEN_NULL_CODE,
TOKEN_ERR_CODE,
apiVerify
}
// import { axios, baseUrl } from '@/libs/api.request'
// import { getRequestData } from '@/libs/util'
let axios
let baseUrl
let getRequestData = () => {}
export const getTableData = () => {
return axios.request({
url: 'get_table_data',
method: 'get'
})
}
// 管理员
// -修改密码
export const updatePassword = ({ oldPwd, newPwd1, newPwd2 }) => {
const data = getRequestData()
data.body = { oldPwd, newPwd1, newPwd2 }
return axios.request({
url: 'admin/updatePassword',
data,
method: 'post'
})
}
// -获取管理员操作记录
export const getAdminLogList = ({ currentPage, pageSize, userKey, type, detail, timeStart, timeEnd }) => {
const data = getRequestData()
data.body = { currentPage, pageSize, userKey, type, detail, timeStart, timeEnd }
return axios.request({
url: 'admin/listAdminLog',
data,
method: 'post'
})
}
// -修改日志的备注
export const updateLogComm = ({ logId, comm }) => {
const data = getRequestData()
data.body = { logId, comm }
return axios.request({
url: 'admin/updateLogComm',
data,
method: 'post'
})
}
// -获取管理员集合
export const getAdminList = ({ currentPage, pageSize }) => {
const data = getRequestData()
data.body = { currentPage, pageSize }
return axios.request({
url: 'admin/listAdmin',
data,
method: 'post'
})
}
// -删除管理员
export const delAdmin = (adminId) => {
const data = getRequestData()
data.body = { adminId }
return axios.request({
url: 'admin/delAdmin',
data,
method: 'post'
})
}
// -添加管理员
export const createAdmin = (phone) => {
const data = getRequestData()
data.body = { phone }
return axios.request({
url: 'admin/createAdmin',
data,
method: 'post'
})
}
// 首页
// -获取首页统计数据
export const getIndexCountInfo = () => {
const data = getRequestData()
return axios.request({
url: 'index/getIndexCountInfo',
data,
method: 'post'
})
}
// 用户管理
// -用户列表
export const getAccountList = ({ pageSize, currentPage, userKey, status, timeStart, timeEnd }) => {
const data = getRequestData()
data.body = { pageSize, currentPage, userKey, status, timeStart, timeEnd }
return axios.request({
url: 'user/listAccount',
data,
method: 'post'
})
}
// -获取用户详细信息
export const getAccountDetail = (uid) => {
const data = getRequestData()
data.body = { uid }
return axios.request({
url: 'user/getAccountDetail',
data,
method: 'post'
})
}
// -修改用户身份
export const updateAccountRole = ({ outId, roleId, authorityName }) => {
const data = getRequestData()
data.body = { outId, roleId, authorityName }
return axios.request({
url: 'user/updateUserRole',
data,
method: 'post'
})
}
// -修改用户状态
export const updateAccountStatus = ({ uid, status }) => {
const data = getRequestData()
data.body = { uid, status }
return axios.request({
url: 'user/updateUserStatus',
data,
method: 'post'
})
}
// -修改用户手机号
export const updateAccountPhone = ({ uid, newPhone }) => {
const data = getRequestData()
data.body = { uid, newPhone }
return axios.request({
url: 'user/updateUserPhone',
data,
method: 'post'
})
}
// -清除实名信息
export const removeAuthInfo = (uid) => {
const data = getRequestData()
data.body = { uid }
return axios.request({
url: 'user/removeAuthInfo',
data,
method: 'post'
})
}
// -通过uid获取用户姓名和手机号
export const getUserInfoByOutId = (outId) => {
const data = getRequestData()
data.body = { outId }
return axios.request({
url: 'user/getUserInfoByOutId',
data,
method: 'post'
})
}
// -获取角色名称集合
export const getRoleList = () => {
const data = getRequestData()
return axios.request({
url: 'user/listUserRole',
data,
method: 'post'
})
}
// -通过手机号获取uid和姓名
export const getUserInfoByPhone = (phone) => {
const data = getRequestData()
data.body = { phone }
return axios.request({
url: 'user/getUserInfoByPhone',
data,
method: 'post'
})
}
// -获取用户身份的用户列表
export const getRoleAccountList = ({ pageSize, currentPage, userKey, timeStart, timeEnd }) => {
const data = getRequestData()
data.body = { pageSize, currentPage, userKey, timeStart, timeEnd }
return axios.request({
url: 'user/listRoleAccount',
data,
method: 'post'
})
}
// -删除用户身份
export const deleteAccountRole = (uid) => {
const data = getRequestData()
data.body = { uid }
return axios.request({
url: 'user/deleteUserRole',
data,
method: 'post'
})
}
// -获取商户申请列表
export const getBusinessCheckList = ({ searchKey, currentPage, pageSize }) => {
const data = getRequestData()
data.body = { searchKey, currentPage, pageSize }
return axios.request({
url: 'user/listBusiness',
data,
method: 'post'
})
}
// 上传
// -上传广告图片
export const uploadBannerImg = baseUrl + 'upload/uploadBannerImg'
// -上传文章图片
export const uploadInfoImg = baseUrl + 'upload/uploadInformationImg'
// -上传咨询图片
export const uploadInfoVideo = baseUrl + 'upload/uploadInformationVideo'
export const uploadImg = baseUrl + 'upload/uploadImg'
import HttpRequest from '@/libs/axios'
import config from '@/config'
import { getToken, getUid } from '@/libs/util'
import store from '@/store'
import router from '@/router'
const baseUrl = process.env.NODE_ENV === 'development' ? config.baseUrl.dev : config.baseUrl.pro
// const axios = new HttpRequest(baseUrl)
let axiosMap = {}
for (let key in baseUrl) {
axiosMap[key] = new HttpRequest(baseUrl[key])
}
class IFetch {
constructor (apiConfig, verify, alertServerErrMsg, clearAdminInfo) {
if (!apiConfig) {
throw new Error('apiConfig is required, please refer to the api_config_demo.js file')
}
if (!verify) {
throw new Error('verify is required, please refer to the verify_demo.js file')
}
if (!alertServerErrMsg) {
console.info('better alert better experience~')
alertServerErrMsg = window.alert
}
this.apiConfig = apiConfig
this.verify = verify
this.alertServerErrMsg = alertServerErrMsg
if (clearAdminInfo) {
this.clearAdminInfo = clearAdminInfo
}
return this.doFetch.bind(this)
}
checkStatus (response) {
if (response.status >= 200 && response.status < 300) {
return response
} else if (response.status === 401 && window.location.pathname !== '/') {
let error = new Error('clearAdminInfo')
throw error
} else {
let error = new Error(response.statusText)
error.response = response
throw error
}
}
doFetch (config = {}) {
if (config.apiName && this.apiConfig[config.apiName]) {
config = { ...this.apiConfig[config.apiName], ...config }
}
const {
type = 'mall',
success,
error,
failed,
complete,
method = 'POST',
notNeedVerify,
dealReqData,
dealUrl
} = config
let { url, postdata = {} } = config
if (dealReqData) {
postdata = dealReqData(postdata)
}
if (dealUrl) {
url = dealUrl(url, postdata)
}
let headers = {
'Content-Type': 'application/json',
adminId: store.state.admin.uid,
token: store.state.admin.token
}
let requestConfig = {
method,
headers,
url
}
if (['POST', 'PUT', 'DELETE'].indexOf(method.toUpperCase()) >= 0) {
requestConfig.data = postdata
} else {
requestConfig.params = postdata
}
// let r = axios.request(requestConfig).then(this.checkStatus)
let r = axiosMap[type].request(requestConfig).then(this.checkStatus)
.then(res => {
complete && complete()
if (notNeedVerify) {
success && success(res.data)
return null
} else {
let alertServerErrMsg = this.alertServerErrMsg
let clearAdminInfo = this.clearAdminInfo
return this.verify({ res, success, error, alertServerErrMsg, clearAdminInfo, url })
}
})
.catch(e => {
complete && complete()
if (failed) {
failed(e)
} else {
if (e.message === 'clearAdminInfo') {
if (router.currentRoute.name !== 'login') {
router.push({ name: 'login' })
}
// this.clearAdminInfo()
} else {
// this.alertServerErrMsg(e.message)
this.alertServerErrMsg('系统异常,请您稍后重试~')
}
}
})
return r
}
}
export default IFetch
import axios from '@/libs/api.request'
export const getRouterReq = (access) => {
return axios.request({
url: 'get_router',
params: {
access
},
method: 'get'
})
}
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1541579316141'); /* IE9*/
src: url('iconfont.eot?t=1541579316141#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAiEAAsAAAAADmgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY8eUnXY21hcAAAAYAAAACjAAACLi+YJuBnbHlmAAACJAAABAgAAAcg4dRWHmhlYWQAAAYsAAAAMQAAADYTL8piaGhlYQAABmAAAAAgAAAAJAfdA4xobXR4AAAGgAAAABQAAAAsLAD//2xvY2EAAAaUAAAAGAAAABgImgpGbWF4cAAABqwAAAAfAAAAIAEcAG5uYW1lAAAGzAAAAUUAAAJtPlT+fXBvc3QAAAgUAAAAbgAAAI54roygeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BkYWCcwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGByeMTx/ytzwv4EhhrmBoRkozAiSAwDuUwzMeJzlkUEKwkAMRd/YabXFhQvxFF6qPYPrUujGY7jyIr1JoZNjtMnEhag3MOEN5MMk8D9QAoVyVSKEJwGrh6oh6wVN1iM3nc+cVImJVKdOehlklElmWdYVstp+ql8VdIv15a1NLW0zFXsO7Kjz3erH/3+rY37vr6kxnx1LKNWOJZlaxxJNnWOpSu+ot8jgqMvI6KjfyOSo88jsaAbI4tBsig89rQB4nLVUTWwbRRSeNzO767i2g7N/FP9s7MRrE5ON4/V6rSZyU0PiINSSNImES4IUoapWz6hEiqiMBDQqEojkAkiFStyKRC+9VSoFCeUEyqESVUAqEkcu3OAQb3hrJxAXwSGI3X0/szPz5vvm2x0i7O/vf8IJe5VkSJnUyUtklRBQJE1VIjRtUafkmk6pSu2ipleh4+xikkKxSksWTUeo8m8NoagpYtoslTmxrLl37z64e33esuJjU8P5Wd262LxoPVnPZ06Pxfe+C0YjkhSJygPhQCA8ABPOykwuN7NyuRvgUnAgLEnhATkaCQQiUe/7XKUyV6nQz+t2o7l66+rs7NVbq82GXTdrdjxjRGU5amTids2bUDMFtzCsqsMYMqr3IDY6OT05GjsI8Exv/6CSkOWEQigh+y3clxY5QVTcEZFIGtHLxDUJs6WsHR1y9SFKdr1HggCp3V1ICYL36OOpVmvKN9bC1u6R3vZ0qwWtVovgJfqOfUvfIYxIWL+fyETHNVJqSkIT1JTjW8ZWh3yDJDz0ctvsyt51etvrg9/QHhqGlzMM+vbmizPnDWPLMNbW19e7tffvsBzL99aWEfBRY46t+tbe3PypXv/IMDYN43WsQBe9HL2NC33RuxABrPsG+xH3o4bVRE2KgCRqulbWNf8W/UYVHM129aKra24VshZkq+CWD/Oy6Xt8cGYEthgHVlVliCfynAlqjo6oysTKlYUAD4docMI5/1ZioN+GwZNBcTwWUmTdBUqhTwX29QebXzF4An4JJMzwfMl+WQ01+IlQZVR4yhie53ycA16pOI/ODiYNGK4MChdCgXNnX5gIJXPCSYnf2OF850aQ+zJIyOs+u8+mMO8jQdwtg1TIWVRjKAnFcslMi8KfGUPoSUCergUyUk77dMyS69Ms6tijKZKYwUGKbpfdzu+iYeZYAHMFiOVi+MD7h9mb99qC0L7X8c+XatMfTj97KZ5IxJt/pd43tYYQKEjAnXMOB6kQEBrwg+LPjindAPOHNdC3q3ait0I3/ZIunZEARLNYNEUA6czSP3N/7j9wz6ZESdX0VNl1zGNS/szbQaQSIGk4DtVPcZf8AgXpf9A2OyTit5s2syZmand46bhEe2WtodLHkvaoqtTXuXN2/c42WADP9HGfbUcUW7JgqHss4xHtlMys679FqUomdP9VJBQBdnlPABBubpuNwqnmQj6/0HwNQzKxDUJFgKiXurBG6dqFjmeBzsvtRPJgGIZThYa5fdOvsReOticPh6JHHXxsv7ItJpOniYPYsmZ/x0QD/o5P105DeQwF6MH33ogoLi+KQp7zpY3HQV5bFMURzheXeds7gpP+jKNXljjHuYvXHke7cdCxLLZf6YX7B63UcCV4nGNgZGBgAOKAN2ZR8fw2Xxm4WRhA4AbHYRMY/f///1oWBuYGIJeDgQkkCgAvWgs2AAAAeJxjYGRgYG7438AQw8Lw/z8DAwsDA1AEBXADAHXiBHJ4nGNhYGBgYfj/nwVM48cATwECKwAAAAAAjAC6AOgBFAGAAf4CbgLqAzgDkHicY2BkYGDgZkhiYGcAASYg5gJCBob/YD4DABOmAYsAeJxlj01OwzAQhV/6B6QSqqhgh+QFYgEo/RGrblhUavdddN+mTpsqiSPHrdQDcB6OwAk4AtyAO/BIJ5s2lsffvHljTwDc4Acejt8t95E9XDI7cg0XuBeuU38QbpBfhJto41W4Rf1N2MczpsJtdGF5g9e4YvaEd2EPHXwI13CNT+E69S/hBvlbuIk7/Aq30PHqwj7mXle4jUcv9sdWL5xeqeVBxaHJIpM5v4KZXu+Sha3S6pxrW8QmU4OgX0lTnWlb3VPs10PnIhVZk6oJqzpJjMqt2erQBRvn8lGvF4kehCblWGP+tsYCjnEFhSUOjDFCGGSIyujoO1Vm9K+xQ8Jee1Y9zed0WxTU/3OFAQL0z1xTurLSeTpPgT1fG1J1dCtuy56UNJFezUkSskJe1rZUQuoBNmVXjhF6XNGJPyhnSP8ACVpuyAAAAHicbYhdDoIwEAb3a6k/YIIX8VArWewmdJFWJOnpJTG+OQ+TzJCjLy39p4ODR4OAA4444YwWHS7U3IVzn6Voldtb8ksHnvohrlqjjmw1rmzXsvdT7fEbblnCmOfNfJIYStJJfGIL27yb6AOCGR89AAA=') format('woff'),
url('iconfont.ttf?t=1541579316141') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('iconfont.svg?t=1541579316141#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
font-family:"iconfont" !important;
font-size:16px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-bear:before { content: "\e600"; }
.icon-resize-vertical:before { content: "\e7c3"; }
.icon-chuizhifanzhuan:before { content: "\e661"; }
.icon-shuipingfanzhuan:before { content: "\e662"; }
.icon-qq:before { content: "\e609"; }
.icon-frown:before { content: "\e77e"; }
.icon-meh:before { content: "\e780"; }
.icon-smile:before { content: "\e783"; }
.icon-man:before { content: "\e7e2"; }
.icon-woman:before { content: "\e7e5"; }
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="bear" unicode="&#58880;" d="M1024 683.008q0-70.656-46.08-121.856 46.08-89.088 46.08-193.536 0-96.256-39.936-181.248t-109.568-147.968-162.816-99.328-199.68-36.352-199.68 36.352-162.304 99.328-109.568 147.968-40.448 181.248q0 104.448 46.08 193.536-46.08 51.2-46.08 121.856 0 37.888 13.824 71.168t37.376 58.368 55.808 39.424 68.096 14.336q43.008 0 78.848-18.432t59.392-50.176q46.08 17.408 96.256 26.624t102.4 9.216 102.4-9.216 96.256-26.624q24.576 31.744 59.904 50.176t78.336 18.432q36.864 0 68.608-14.336t55.296-39.424 37.376-58.368 13.824-71.168zM205.824 268.288q10.24 0 18.944 10.24t15.36 28.672 10.24 42.496 3.584 51.712-3.584 51.712-10.24 41.984-15.36 28.16-18.944 10.24q-9.216 0-17.92-10.24t-15.36-28.16-10.752-41.984-4.096-51.712 4.096-51.712 10.752-42.496 15.36-28.672 17.92-10.24zM512-31.744000000000028q53.248 0 99.84 13.312t81.408 35.84 54.784 52.736 19.968 65.024q0 33.792-19.968 64t-54.784 52.736-81.408 35.84-99.84 13.312-99.84-13.312-81.408-35.84-54.784-52.736-19.968-64q0-34.816 19.968-65.024t54.784-52.736 81.408-35.84 99.84-13.312zM818.176 268.288q10.24 0 18.944 10.24t15.36 28.672 10.24 42.496 3.584 51.712-3.584 51.712-10.24 41.984-15.36 28.16-18.944 10.24q-9.216 0-17.92-10.24t-15.36-28.16-10.752-41.984-4.096-51.712 4.096-51.712 10.752-42.496 15.36-28.672 17.92-10.24zM512 235.51999999999998q39.936 0 68.096-9.728t28.16-24.064-28.16-24.064-68.096-9.728-68.096 9.728-28.16 24.064 28.16 24.064 68.096 9.728z" horiz-adv-x="1024" />
<glyph glyph-name="resize-vertical" unicode="&#59331;" d="M512 896C229.248 896 0 666.752 0 384s229.248-512 512-512 512 229.248 512 512S794.752 896 512 896zM576 192l64 0-128-128-128 128 64 0L448 576l-64 0 128 128 128-128-64 0L576 192z" horiz-adv-x="1024" />
<glyph glyph-name="chuizhifanzhuan" unicode="&#58977;" d="M286.01856 645.08416l472.4224 0 0-146.2784-472.4224 0 0 146.2784ZM87.19872 420.37248l885.80096 0 0-70.87104-885.80096 0 0 70.87104ZM773.55008 268.05248l0-31.0016L270.6688 237.05088l0 31.0016L773.55008 268.05248zM773.55008 121.4208l0-31.0016L270.6688 90.4192l0 31.0016L773.55008 121.4208zM742.54848 240.75776l31.0016 0 0-123.04896-31.0016 0L742.54848 240.75776zM270.70464 240.57856l31.0016 0 0-123.04896-31.0016 0L270.70464 240.57856z" horiz-adv-x="1024" />
<glyph glyph-name="shuipingfanzhuan" unicode="&#58978;" d="M252.76928 596.096l146.2784 0 0-472.42752-146.2784 0 0 472.42752ZM477.48096 810.65472l70.87104 0 0-885.80608-70.87104 0 0 885.80608ZM629.80096 611.2l31.0016 0 0-502.88128-31.0016 0L629.80096 611.2zM776.42752 611.2l31.0016 0 0-502.88128-31.0016 0L776.42752 611.2zM657.09056 580.1984l0 31.0016 123.04896 0 0-31.0016L657.09056 580.1984zM657.27488 108.35456l0 31.0016 123.04896 0 0-31.0016L657.27488 108.35456z" horiz-adv-x="1024" />
<glyph glyph-name="qq" unicode="&#58889;" d="M147.372058 491.394284c-5.28997-13.909921 2.431986-22.698872 0-75.732573-0.682996-14.25092-62.165649-78.762555-86.569511-145.791177-24.192863-66.517625-27.519845-135.978232 9.811944-163.285078 37.419789-27.305846 72.191593 90.879487 76.757567 73.685584 1.961989-7.509958 4.436975-15.317914 7.423958-23.338868a331.945126 331.945126 0 0 1 61.140655-101.162429c5.929967-6.783962-36.009797-19.199892-61.140655-61.99365-25.173858-42.751759 7.209959-120.49032 132.223254-120.49032 161.27909 0 197.288886 56.70368 200.574868 56.447681 12.031932-0.895995 12.841928 0 25.599855 0 15.572912 0 9.129948-1.279993 23.593867 0 7.807956 0.682996 86.186514-67.839617 194.686901-56.447681 184.873956 19.45589 156.586116 81.40754 142.079198 120.48932-15.103915 40.83277-68.692612 59.946662-66.303626 62.549647 44.28775 48.938724 51.285711 79.018554 66.346626 123.9463 6.143965 18.473896 49.066723-101.674426 82.089537-73.685584 13.781922 11.690934 41.301767 60.24566 13.781922 163.285078-27.519845 102.996419-80.767544 126.505286-79.615551 145.791177 2.389987 40.191773 1.023994 68.436614-1.023994 75.732573-9.812945 35.4128-30.378829 27.604844-30.378829 35.4128C858.450044 730.752933 705.10691 896 515.966978 896s-342.398067-165.289067-342.398068-369.192916c0-16.169909-14.378919-4.223976-26.154852-35.4128z" horiz-adv-x="1024" />
<glyph glyph-name="frown" unicode="&#59262;" d="M336 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM688 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM512 832C264.6 832 64 631.4 64 384s200.6-448 448-448 448 200.6 448 448S759.4 832 512 832z m263-711c-34.2-34.2-74-61-118.3-79.8C611 21.8 562.3 12 512 12c-50.3 0-99 9.8-144.8 29.2-44.3 18.7-84.1 45.6-118.3 79.8-34.2 34.2-61 74-79.8 118.3C149.8 285 140 333.7 140 384s9.8 99 29.2 144.8c18.7 44.3 45.6 84.1 79.8 118.3 34.2 34.2 74 61 118.3 79.8C413 746.2 461.7 756 512 756c50.3 0 99-9.8 144.8-29.2 44.3-18.7 84.1-45.6 118.3-79.8 34.2-34.2 61-74 79.8-118.3C874.2 483 884 434.3 884 384s-9.8-99-29.2-144.8c-18.7-44.3-45.6-84.1-79.8-118.2zM512 363c-85.5 0-155.6-67.3-160-151.6-0.2-4.6 3.4-8.4 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 259.9 461.5 299 512 299s92.1-39.1 95.8-88.6c0.3-4.2 3.9-7.4 8.1-7.4H664c4.6 0 8.2 3.8 8 8.4-4.4 84.3-74.5 151.6-160 151.6z" horiz-adv-x="1024" />
<glyph glyph-name="meh" unicode="&#59264;" d="M336 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM688 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM512 832C264.6 832 64 631.4 64 384s200.6-448 448-448 448 200.6 448 448S759.4 832 512 832z m263-711c-34.2-34.2-74-61-118.3-79.8C611 21.8 562.3 12 512 12c-50.3 0-99 9.8-144.8 29.2-44.3 18.7-84.1 45.6-118.3 79.8-34.2 34.2-61 74-79.8 118.3C149.8 285 140 333.7 140 384s9.8 99 29.2 144.8c18.7 44.3 45.6 84.1 79.8 118.3 34.2 34.2 74 61 118.3 79.8C413 746.2 461.7 756 512 756c50.3 0 99-9.8 144.8-29.2 44.3-18.7 84.1-45.6 118.3-79.8 34.2-34.2 61-74 79.8-118.3C874.2 483 884 434.3 884 384s-9.8-99-29.2-144.8c-18.7-44.3-45.6-84.1-79.8-118.2zM664 331H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8z" horiz-adv-x="1024" />
<glyph glyph-name="smile" unicode="&#59267;" d="M336 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM688 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM512 832C264.6 832 64 631.4 64 384s200.6-448 448-448 448 200.6 448 448S759.4 832 512 832z m263-711c-34.2-34.2-74-61-118.3-79.8C611 21.8 562.3 12 512 12c-50.3 0-99 9.8-144.8 29.2-44.3 18.7-84.1 45.6-118.3 79.8-34.2 34.2-61 74-79.8 118.3C149.8 285 140 333.7 140 384s9.8 99 29.2 144.8c18.7 44.3 45.6 84.1 79.8 118.3 34.2 34.2 74 61 118.3 79.8C413 746.2 461.7 756 512 756c50.3 0 99-9.8 144.8-29.2 44.3-18.7 84.1-45.6 118.3-79.8 34.2-34.2 61-74 79.8-118.3C874.2 483 884 434.3 884 384s-9.8-99-29.2-144.8c-18.7-44.3-45.6-84.1-79.8-118.2zM664 363h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 306.1 562.5 267 512 267s-92.1 39.1-95.8 88.6c-0.3 4.2-3.9 7.4-8.1 7.4H360c-4.6 0-8.2-3.8-8-8.4 4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6c0.2 4.6-3.4 8.4-8 8.4z" horiz-adv-x="1024" />
<glyph glyph-name="man" unicode="&#59362;" d="M874 776H622c-3.3 0-6-2.7-6-6v-56c0-3.3 2.7-6 6-6h160.4L583.1 508.7c-50 38.5-111 59.3-175.1 59.3-76.9 0-149.3-30-203.6-84.4S120 356.9 120 280s30-149.3 84.4-203.6C258.7 22 331.1-8 408-8s149.3 30 203.6 84.4C666 130.7 696 203.1 696 280c0 64.1-20.8 124.9-59.2 174.9L836 654.1V494c0-3.3 2.7-6 6-6h56c3.3 0 6 2.7 6 6V746c0 16.5-13.5 30-30 30zM408 68c-116.9 0-212 95.1-212 212s95.1 212 212 212 212-95.1 212-212-95.1-212-212-212z" horiz-adv-x="1024" />
<glyph glyph-name="woman" unicode="&#59365;" d="M909.7 739.4l-42.2 42.2c-3.1 3.1-8.2 3.1-11.3 0L764 689.4l-84.2 84.2c-3.1 3.1-8.2 3.1-11.3 0l-42.1-42.1c-3.1-3.1-3.1-8.1 0-11.3l84.2-84.2-135.5-135.3c-50 38.5-111 59.3-175.1 59.3-76.9 0-149.3-30-203.6-84.4S112 348.9 112 272s30-149.3 84.4-203.6C250.7 14 323.1-16 400-16s149.3 30 203.6 84.4C658 122.7 688 195.1 688 272c0 64.2-20.9 125.1-59.3 175.1l135.4 135.4 84.2-84.2c3.1-3.1 8.2-3.1 11.3 0l42.1 42.1c3.1 3.1 3.1 8.1 0 11.3l-84.2 84.2 92.2 92.2c3.1 3.1 3.1 8.2 0 11.3zM400 60c-116.9 0-212 95.1-212 212s95.1 212 212 212 212-95.1 212-212-95.1-212-212-212z" horiz-adv-x="1024" />
</font>
</defs></svg>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template>
<div ref="dom" class="charts chart-bar"></div>
</template>
<script>
import echarts from 'echarts'
import tdTheme from './theme.json'
import { on, off } from '@/libs/tools'
echarts.registerTheme('tdTheme', tdTheme)
export default {
name: 'ChartBar',
props: {
value: Object,
text: String,
subtext: String
},
data () {
return {
dom: null
}
},
methods: {
resize () {
this.dom.resize()
},
getSeries () {
let series = []
let i = 0
for (let data of this.value.seriesData) {
let name = ''
if (this.value.legend) {
name = this.value.legend[i++]
}
series.push({
name: name,
type: 'bar',
data: data
})
}
return series
},
initBar () {
// let legend = this.value.legend
// let xAxisData = this.value.xAxisData
// let series = this.getSeries()
let { xAxisData, seriesData } = this.value
let option = {
title: {
text: this.text,
subtext: this.subtext,
x: 'left'
},
tooltip: {
trigger: 'axis',
backgroundColor: '#47B7FF'
// axisPointer: {
// type: 'cross'
// }
},
grid: {
bottom: 30
// top: '15%',
// left: '1.2%',
// right: '3%',
// bottom: '12%',
// containLabel: true
},
// legend: {
// x: 'right',
// top: 'top',
// data: legend
// },
xAxis: {
type: 'category',
data: xAxisData,
splitLine: { show: false }
},
yAxis: {
type: 'value',
show: true
},
series: [
{
name: '销量',
type: 'bar',
barWidth: 12,
// label: {
// show: true, // 开启显示
// position: 'top' // 在上方显示
// // textStyle: { // 数值样式
// // color: '#333',
// // fontSize: 18
// // }
// },
data: seriesData
}
]
}
this.dom = echarts.init(this.$refs.dom, 'tdTheme')
this.dom.setOption(option)
}
},
mounted () {
this.$nextTick(() => {
this.initBar()
on(window, 'resize', this.resize)
})
},
beforeDestroy () {
off(window, 'resize', this.resize)
},
watch: {
value () {
this.$nextTick(() => {
if (this.value) {
this.initBar()
}
})
}
}
}
</script>
import ChartPie from './pie.vue'
import ChartBar from './bar.vue'
import ChartLine from './line.vue'
export { ChartPie, ChartBar, ChartLine }
<template>
<div ref="dom"></div>
</template>
<script>
import echarts from 'echarts'
import { on, off } from '@/libs/tools'
export default {
name: 'ChartLine',
props: {
value: Object,
text: String,
subtext: String
},
data () {
return {
dom: null
}
},
methods: {
resize () {
this.dom.resize()
},
initLine () {
let { xAxisData, totalNum, totalSales } = this.value
let option = {
title: {
text: this.text,
subtext: this.subtext,
x: 'left'
},
tooltip: {
trigger: 'axis',
backgroundColor: '#47B7FF'
// axisPointer: {
// type: 'cross',
// label: {
// backgroundColor: '#47B7FF'
// }
// }
},
grid: {
// top: '15%',
// left: '1.2%',
// right: '3%',
// bottom: '12%',
// containLabel: true
bottom: 30
},
xAxis: [
{
type: 'category',
boundaryGap: true,
data: xAxisData,
splitLine: { show: false }
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name: '销售额',
type: 'line',
lineStyle: {
color: '#47B7FF'
},
itemStyle: {
color: '#85CFFF'
},
// stack: '总量',
// areaStyle: {
// normal: {
// lineStyle: {
// color: '#47B7FF'
// }
// }
// },
data: totalSales
// data:[1,1,11,1,1,1,1,11,1]
},
{
name: '总数',
type: 'line',
lineStyle: {
color: '#85CFFF'
},
itemStyle: {
color: '#85CFFF'
},
data: totalNum
// data:[1,1,11,1,1,1,1,11,1]
}
]
// dataZoom: [
// {
// type: 'slider',
// xAxisIndex: 0,
// filterMode: 'empty'
// },
// {
// type: 'inside',
// xAxisIndex: 0,
// filterMode: 'empty'
// }
// ]
}
this.dom = echarts.init(this.$refs.dom, 'tdTheme')
this.dom.setOption(option)
}
},
mounted () {
this.$nextTick(() => {
this.initLine()
on(window, 'resize', this.resize)
})
},
beforeDestroy () {
off(window, 'resize', this.resize)
},
watch: {
value () {
this.$nextTick(() => {
if (this.value) {
this.initLine()
}
})
}
}
}
</script>
<template>
<div ref="dom" class="charts chart-pie"></div>
</template>
<script>
import echarts from 'echarts'
import tdTheme from './theme.json'
import { on, off } from '@/libs/tools'
echarts.registerTheme('tdTheme', tdTheme)
export default {
name: 'ChartPie',
props: {
value: Array,
text: String,
subtext: String
},
data () {
return {
dom: null
}
},
methods: {
resize () {
this.dom.resize()
},
initPie () {
let legend = this.value.map(_ => _.name)
let option = {
title: {
text: this.text,
subtext: this.subtext,
x: 'left'
},
tooltip: {
trigger: 'item',
formatter: '{b} : {c} ({d}%)'
},
legend: {
orient: 'vertical',
x: 'right',
y: 'center',
data: legend
},
series: [
{
type: 'pie',
radius: '60%',
label: {
formatter: '{b}: {c}'
},
center: ['40%', '55%'],
data: this.value,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
}
this.dom = echarts.init(this.$refs.dom, 'tdTheme')
this.dom.setOption(option)
}
},
mounted () {
this.$nextTick(() => {
this.initPie()
on(window, 'resize', this.resize)
})
},
beforeDestroy () {
off(window, 'resize', this.resize)
},
watch: {
value () {
this.$nextTick(() => {
if (this.value) {
this.initPie()
}
})
}
}
}
</script>
This diff is collapsed.
<template>
<component :is="iconType" :type="iconName" :color="iconColor" :size="iconSize"/>
</template>
<script>
import Icons from '_c/icons'
export default {
name: 'CommonIcon',
components: { Icons },
props: {
type: {
type: String,
required: true
},
color: String,
size: Number
},
computed: {
iconType () {
return this.type.indexOf('_') === 0 ? 'Icons' : 'Icon'
},
iconName () {
return this.iconType === 'Icons' ? this.getCustomIconName(this.type) : this.type
},
iconSize () {
return this.size || (this.iconType === 'Icons' ? 12 : undefined)
},
iconColor () {
return this.color || ''
}
},
methods: {
getCustomIconName (iconName) {
return iconName.slice(1)
}
}
}
</script>
<style>
</style>
import CommonIcon from './common-icon.vue'
export default CommonIcon
.no-select{
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
export const showTitle = (item, vm) => {
return vm.$config.useI18n ? vm.$t(item.name) : ((item.meta && item.meta.title) || item.name)
}
<template>
<div class="count-to-wrapper">
<slot name="left"/>
<p class="content-outer"><span :class="['count-to-count-text', countClass]" :id="counterId">{{ init }}</span><i :class="['count-to-unit-text', unitClass]">{{ unitText }}</i></p>
<slot name="right"/>
</div>
</template>
<script>
import CountUp from 'countup'
import './index.less'
export default {
name: 'CountTo',
props: {
init: {
type: Number,
default: 0
},
/**
* @description 起始值,即动画开始前显示的数值
*/
startVal: {
type: Number,
default: 0
},
/**
* @description 结束值,即动画结束后显示的数值
*/
end: {
type: Number,
required: true
},
/**
* @description 保留几位小数
*/
decimals: {
type: Number,
default: 0
},
/**
* @description 分隔整数和小数的符号,默认是小数点
*/
decimal: {
type: String,
default: '.'
},
/**
* @description 动画持续的时间,单位是秒
*/
duration: {
type: Number,
default: 2
},
/**
* @description 动画延迟开始的时间,单位是秒
*/
delay: {
type: Number,
default: 0
},
/**
* @description 是否禁用easing动画效果
*/
uneasing: {
type: Boolean,
default: false
},
/**
* @description 是否使用分组,分组后每三位会用一个符号分隔
*/
usegroup: {
type: Boolean,
default: false
},
/**
* @description 用于分组(usegroup)的符号
*/
separator: {
type: String,
default: ','
},
/**
* @description 是否简化显示,设为true后会使用unit单位来做相关省略
*/
simplify: {
type: Boolean,
default: false
},
/**
* @description 自定义单位,如[3, 'K+'], [6, 'M+']即大于3位数小于6位数的用k+来做省略
* 1000即显示为1K+
*/
unit: {
type: Array,
default () {
return [[3, 'K+'], [6, 'M+'], [9, 'B+']]
}
},
countClass: {
type: String,
default: ''
},
unitClass: {
type: String,
default: ''
}
},
data () {
return {
counter: null,
unitText: ''
}
},
computed: {
counterId () {
return `count_to_${this._uid}`
}
},
methods: {
getHandleVal (val, len) {
return {
endVal: parseInt(val / Math.pow(10, this.unit[len - 1][0])),
unitText: this.unit[len - 1][1]
}
},
transformValue (val) {
let len = this.unit.length
let res = {
endVal: 0,
unitText: ''
}
if (val < Math.pow(10, this.unit[0][0])) res.endVal = val
else {
for (let i = 1; i < len; i++) {
if (val >= Math.pow(10, this.unit[i - 1][0]) && val < Math.pow(10, this.unit[i][0])) res = this.getHandleVal(val, i)
}
}
if (val > Math.pow(10, this.unit[len - 1][0])) res = this.getHandleVal(val, len)
return res
},
getValue (val) {
let res = 0
if (this.simplify) {
let { endVal, unitText } = this.transformValue(val)
this.unitText = unitText
res = endVal
} else {
res = val
}
return res
}
},
mounted () {
this.$nextTick(() => {
let endVal = this.getValue(this.end)
this.counter = new CountUp(this.counterId, this.startVal, endVal, this.decimals, this.duration, {
useEasing: !this.uneasing,
useGrouping: this.useGroup,
separator: this.separator,
decimal: this.decimal
})
setTimeout(() => {
if (!this.counter.error) this.counter.start()
}, this.delay)
})
},
watch: {
end (newVal) {
let endVal = this.getValue(newVal)
this.counter.update(endVal)
}
}
}
</script>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment