commit
9e25f8e944
|
@ -69,7 +69,10 @@
|
||||||
"schemes": "shopro"
|
"schemes": "shopro"
|
||||||
},
|
},
|
||||||
"ios": {
|
"ios": {
|
||||||
"urlschemewhitelist" : [ "baidumap", "iosamap" ],
|
"urlschemewhitelist": [
|
||||||
|
"baidumap",
|
||||||
|
"iosamap"
|
||||||
|
],
|
||||||
"dSYMs": false,
|
"dSYMs": false,
|
||||||
"privacyDescription": {
|
"privacyDescription": {
|
||||||
"NSPhotoLibraryUsageDescription": "需要同意访问您的相册选取图片才能完善该条目",
|
"NSPhotoLibraryUsageDescription": "需要同意访问您的相册选取图片才能完善该条目",
|
||||||
|
@ -80,7 +83,9 @@
|
||||||
"urltypes": "shopro",
|
"urltypes": "shopro",
|
||||||
"capabilities": {
|
"capabilities": {
|
||||||
"entitlements": {
|
"entitlements": {
|
||||||
"com.apple.developer.associated-domains" : [ "applinks:shopro.sheepjs.com" ]
|
"com.apple.developer.associated-domains": [
|
||||||
|
"applinks:shopro.sheepjs.com"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"idfa": true
|
"idfa": true
|
||||||
|
@ -99,12 +104,18 @@
|
||||||
},
|
},
|
||||||
"payment": {
|
"payment": {
|
||||||
"weixin": {
|
"weixin": {
|
||||||
"__platform__" : [ "ios", "android" ],
|
"__platform__": [
|
||||||
|
"ios",
|
||||||
|
"android"
|
||||||
|
],
|
||||||
"appid": "wxae7a0c156da9383b",
|
"appid": "wxae7a0c156da9383b",
|
||||||
"UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
|
"UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
|
||||||
},
|
},
|
||||||
"alipay": {
|
"alipay": {
|
||||||
"__platform__" : [ "ios", "android" ]
|
"__platform__": [
|
||||||
|
"ios",
|
||||||
|
"android"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"share": {
|
"share": {
|
||||||
|
@ -114,7 +125,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"orientation" : [ "portrait-primary" ],
|
"orientation": [
|
||||||
|
"portrait-primary"
|
||||||
|
],
|
||||||
"splashscreen": {
|
"splashscreen": {
|
||||||
"androidStyle": "common",
|
"androidStyle": "common",
|
||||||
"iosStyle": "common",
|
"iosStyle": "common",
|
||||||
|
@ -185,7 +198,9 @@
|
||||||
"lazyCodeLoading": "requiredComponents",
|
"lazyCodeLoading": "requiredComponents",
|
||||||
"usingComponents": {},
|
"usingComponents": {},
|
||||||
"permission": {},
|
"permission": {},
|
||||||
"requiredPrivateInfos" : [ "chooseAddress" ]
|
"requiredPrivateInfos": [
|
||||||
|
"chooseAddress"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"mp-alipay": {
|
"mp-alipay": {
|
||||||
"usingComponents": true
|
"usingComponents": true
|
||||||
|
|
|
@ -622,7 +622,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "bargainingList",
|
"path": "bargain/list",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "砍价列表"
|
"navigationBarTitleText": "砍价列表"
|
||||||
},
|
},
|
||||||
|
@ -633,7 +633,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "bargainingDetail",
|
"path": "bargain/detail",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "砍价详情"
|
"navigationBarTitleText": "砍价详情"
|
||||||
},
|
},
|
||||||
|
|
|
@ -138,28 +138,18 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
function getBargainDetails() {
|
async function getBargainDetails() {
|
||||||
sheep.$api.activity.getBargainActivityDetail({
|
let {
|
||||||
|
data,
|
||||||
|
code
|
||||||
|
} = await sheep.$api.activity.getBargainActivityDetail({
|
||||||
id: state.id
|
id: state.id
|
||||||
}).then(res => {
|
|
||||||
state.bargainInfo = res.data;
|
|
||||||
state.buyPrice = state.bargainInfo.bargainFirstPrice;
|
|
||||||
// state.pages = '/pages/activity/goods_bargain_details/index?id=' + state.id +
|
|
||||||
// '&startBargainUid=' + state.uid + '&scene=' + state.uid + '&storeBargainId=' + state
|
|
||||||
// .storeBargainId;
|
|
||||||
// uni.setNavigationBarTitle({
|
|
||||||
// title: bargainInfo.name.substring(0, 13) + '...'
|
|
||||||
// })
|
|
||||||
|
|
||||||
// 获得拼团记录
|
|
||||||
// this.gobargainUserInfo();
|
|
||||||
|
|
||||||
//#ifdef H5
|
|
||||||
// this.getImageBase64(bargainInfo.picUrl);
|
|
||||||
//#endif
|
|
||||||
}).catch(function(err) {
|
|
||||||
// 错误了可以跳转回上个页面
|
|
||||||
})
|
})
|
||||||
|
if (code == 0) {
|
||||||
|
state.bargainInfo = data;
|
||||||
|
state.buyPrice = state.bargainInfo.bargainFirstPrice;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
onLoad(function(options) {
|
onLoad(function(options) {
|
||||||
if (options.hasOwnProperty('id')) {
|
if (options.hasOwnProperty('id')) {
|
|
@ -1,4 +1,3 @@
|
||||||
<!-- 砍价列表 TODO @科举:新建一个 bargain 包,然后这个页面挪进去,改成 list.vue。写的时候,要思考怎么更好的融入到当前项目 -->
|
|
||||||
<template>
|
<template>
|
||||||
<!-- TODO @科举:参考 groupon/list.vue 和 seckill/list.vue 界面,调整下头部,就是从 5 到 11 行的 -->
|
<!-- TODO @科举:参考 groupon/list.vue 和 seckill/list.vue 界面,调整下头部,就是从 5 到 11 行的 -->
|
||||||
<s-layout navbar="inner" title='砍价列表'>
|
<s-layout navbar="inner" title='砍价列表'>
|
||||||
|
@ -14,8 +13,8 @@
|
||||||
<view class='header'>
|
<view class='header'>
|
||||||
<view class="pic">
|
<view class="pic">
|
||||||
<view class='swipers'>
|
<view class='swipers'>
|
||||||
<swiper indicator-dots="true" autoplay="true" interval="2500"
|
<swiper indicator-dots="true" autoplay="true" interval="2500" duration="500" vertical="true"
|
||||||
duration="500" vertical="true" circular="true">
|
circular="true">
|
||||||
<block v-for="(item,index) in state.bargainSuccessList" :key='index'>
|
<block v-for="(item,index) in state.bargainSuccessList" :key='index'>
|
||||||
<swiper-item>
|
<swiper-item>
|
||||||
<view class="acea-row row-middle" style='display:flex'>
|
<view class="acea-row row-middle" style='display:flex'>
|
||||||
|
@ -36,7 +35,7 @@
|
||||||
<view class='list'>
|
<view class='list'>
|
||||||
<block v-for="(item,index) in state.bargainList" :key="index">
|
<block v-for="(item,index) in state.bargainList" :key="index">
|
||||||
<view style='display:flex' class='item acea-row row-between-wrapper'
|
<view style='display:flex' class='item acea-row row-between-wrapper'
|
||||||
@tap="openSubscribe('/pages/activity/bargainingDetail?id='+ item.id)">
|
@tap="openSubscribe('/pages/activity/bargain/detail?id='+ item.id)">
|
||||||
<view class='pictrue'>
|
<view class='pictrue'>
|
||||||
<image :src='item.picUrl'></image>
|
<image :src='item.picUrl'></image>
|
||||||
</view>
|
</view>
|
||||||
|
@ -71,12 +70,19 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive } from 'vue';
|
import {
|
||||||
|
reactive
|
||||||
|
} from 'vue';
|
||||||
import sheep from '@/sheep';
|
import sheep from '@/sheep';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { onLoad, onReachBottom } from '@dcloudio/uni-app';
|
import {
|
||||||
import { fen2yuan } from '@/sheep/hooks/useGoods';
|
onLoad,
|
||||||
|
onReachBottom
|
||||||
|
} from '@dcloudio/uni-app';
|
||||||
|
import {
|
||||||
|
fen2yuan
|
||||||
|
} from '@/sheep/hooks/useGoods';
|
||||||
|
import BargainApi from '@/sheep/api/activity'
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
navH: '',
|
navH: '',
|
||||||
returnShow: true,
|
returnShow: true,
|
||||||
|
@ -101,53 +107,58 @@
|
||||||
loadTitle: '加载更多',
|
loadTitle: '加载更多',
|
||||||
});
|
});
|
||||||
|
|
||||||
function getBargainHeader() {
|
async function getBargainHeader() {
|
||||||
// TODO @科举:这个改成 BargainApi.getBargainRecordSummary,使用 await 操作;代码风格要统一
|
let {
|
||||||
sheep.$api.activity.getBargainRecordSummary().then(res => {
|
code,
|
||||||
state.bargainTotal = res.data.successUserCount;
|
data
|
||||||
state.bargainSuccessList = res.data.successList;
|
} = await BargainApi.getBargainRecordSummary()
|
||||||
}).catch(err => {
|
if (code == 0) {
|
||||||
return state.$util.Tips({
|
state.bargainTotal = data.successUserCount;
|
||||||
title: err
|
state.bargainSuccessList = data.successList;
|
||||||
|
} else {
|
||||||
|
state.$util.Tips({
|
||||||
|
title: data
|
||||||
});
|
});
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBargainList() {
|
async function getBargainList() {
|
||||||
// TODO @科举:loading 和 loadTitle 改成现在这个项目的风格,包括组件使用 uni-load-more
|
// TODO @科举:loading 和 loadTitle 改成现在这个项目的风格,包括组件使用 uni-load-more
|
||||||
if (state.loadend || state.loading) {
|
if (state.loadend || state.loading) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
state.loading = true;
|
state.loading = true;
|
||||||
state.loadTitle = '';
|
state.loadTitle = '';
|
||||||
// TODO @科举:这个改成 BargainApi.getBargainRecordSummary,使用 await 操作;代码风格要统一
|
let {
|
||||||
sheep.$api.activity.getBargainActivityPage({
|
data,
|
||||||
|
code
|
||||||
|
} = await BargainApi.getBargainActivityPage({
|
||||||
pageNo: state.page,
|
pageNo: state.page,
|
||||||
pageSize: state.limit
|
pageSize: state.limit
|
||||||
}).then(res => {
|
})
|
||||||
const list = res.data.list;
|
if (code == 0) {
|
||||||
|
const list = data.list;
|
||||||
const bargainList = _.concat(state.bargainList, list);
|
const bargainList = _.concat(state.bargainList, list);
|
||||||
const loadend = list.length < state.limit;
|
const loadend = list.length < state.limit;
|
||||||
state.loadend = loadend;
|
state.loadend = loadend;
|
||||||
state.loading = false;
|
state.loading = false;
|
||||||
state.loadTitle = loadend ? '已全部加载' : '加载更多';
|
state.loadTitle = loadend ? '已全部加载' : '加载更多';
|
||||||
// this.$set(this, 'bargainList', bargainList);
|
// this.$set(this, 'bargainList', bargainList);
|
||||||
state.bargainList = res.data.list
|
state.bargainList = data.list
|
||||||
// this.$set(this, 'page', this.page + 1);
|
// this.$set(this, 'page', this.page + 1);
|
||||||
state.page = state.page + 1;
|
state.page = state.page + 1;
|
||||||
}).catch(res => {
|
|
||||||
|
} else {
|
||||||
state.loading = false;
|
state.loading = false;
|
||||||
state.loadTitle = '加载更多';
|
state.loadTitle = '加载更多';
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function openSubscribe(e) {
|
function openSubscribe(e) {
|
||||||
|
console.log('跳转')
|
||||||
console.log(e)
|
console.log(e)
|
||||||
// TODO @科举:参考 pages/pay/result.vue 页面的 subscribeMessage 方法,写订阅逻辑。
|
// TODO @科举:参考 pages/pay/result.vue 页面的 subscribeMessage 方法,写订阅逻辑。
|
||||||
// TODO @科举:navigateTo 在项目里,应该是 sheep.$router.go,参考写下
|
sheep.$router.go(e)
|
||||||
uni.navigateTo({
|
|
||||||
url: page,
|
|
||||||
});
|
|
||||||
return;
|
return;
|
||||||
let page = e;
|
let page = e;
|
||||||
// #ifndef MP
|
// #ifndef MP
|
|
@ -22,11 +22,10 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<!-- TODO @科举:1)这里已签到的样式不太对;2)最后一天(第 7 天)的大奖样式不太对 -->
|
|
||||||
<view class="item" v-for="(item, index) in state.signConfigList" :key="index">
|
<view class="item" v-for="(item, index) in state.signConfigList" :key="index">
|
||||||
<view
|
<view
|
||||||
:class="
|
:class="
|
||||||
(index + 1 === state.signConfigList.length ? 'reward' : '') +
|
(index === state.signConfigList.length ? 'reward' : '') +
|
||||||
' ' +
|
' ' +
|
||||||
(state.signInfo.continuousDay >= item.day ? 'rewardTxt' : '')
|
(state.signInfo.continuousDay >= item.day ? 'rewardTxt' : '')
|
||||||
"
|
"
|
||||||
|
@ -66,7 +65,7 @@
|
||||||
<!-- 签到说明 TODO @科举:这里改成【已累计签到】 -->
|
<!-- 签到说明 TODO @科举:这里改成【已累计签到】 -->
|
||||||
<view class="bg-white ss-m-t-16 ss-p-t-30 ss-p-b-60 ss-p-x-40">
|
<view class="bg-white ss-m-t-16 ss-p-t-30 ss-p-b-60 ss-p-x-40">
|
||||||
<view class="activity-title ss-m-b-30">签到说明</view>
|
<view class="activity-title ss-m-b-30">签到说明</view>
|
||||||
<view class="activity-des">1、每天签到,可获得积分或经验</view>
|
<view class="activity-des">1、已累计签到{{state.signInfo.totalDay}}天</view>
|
||||||
<view class="activity-des">
|
<view class="activity-des">
|
||||||
2、据说连续签到第 {{ state.maxDay }} 天可获得超额积分,一定要坚持签到哦~~~
|
2、据说连续签到第 {{ state.maxDay }} 天可获得超额积分,一定要坚持签到哦~~~
|
||||||
</view>
|
</view>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,13 +1,104 @@
|
||||||
<!-- 页面 TODO 芋艿:检查未开发 -->
|
<!-- 页面 TODO 芋艿:检查未开发 -->
|
||||||
<template>
|
<template>
|
||||||
<s-layout title="我的团队" :class="state.scrollTop ? 'team-wrap' : ''" navbar="inner">
|
<s-layout title="我的团队" :class="state.scrollTop ? 'team-wrap' : ''" navbar="inner">
|
||||||
<view class="header-box" :style="[
|
<view class="promoter-list">
|
||||||
|
<view class='promoterHeader bg-color' style='backgroundColor:#e93323!important;height:218rpx;color:#fff'>
|
||||||
|
<view class='headerCon acea-row row-between' style='padding: 28px 29px 0 29px;'>
|
||||||
|
<view>
|
||||||
|
<view class='name' style="color:#fff">推广人数</view>
|
||||||
|
<view><text class='num'
|
||||||
|
style="color:#fff">{{(state.getSummary.firstBrokerageUserCount+ state.getSummary.secondBrokerageUserCount)|| 0 }}</text>人
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class='iconfont icon-tuandui'></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view style='padding: 0 30rpx;'>
|
||||||
|
<view class='nav acea-row row-around l1'>
|
||||||
|
<view :class="state.level == 1 ? 'item on' : 'item'" @click='setType(1)'>
|
||||||
|
一级({{state.getSummary.firstBrokerageUserCount || 0 }})</view>
|
||||||
|
<view :class="state.level == 2 ? 'item on' : 'item'" @click='setType(2)'>
|
||||||
|
二级({{state.getSummary.secondBrokerageUserCount || 0 }})
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class='search acea-row row-between-wrapper'
|
||||||
|
style="display: flex;height: 100rpx;align-items: center;">
|
||||||
|
<view class='input'>
|
||||||
|
<input placeholder='点击搜索会员名称' v-model="state.nickname" confirm-type='search' name="search"
|
||||||
|
@confirm="submitForm" />
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<image src="/static/images/search.png" mode="" style='width: 60rpx;height: 64rpx;' @click="submitForm"></image>
|
||||||
|
</view>
|
||||||
|
<view class='list'>
|
||||||
|
<view class="sortNav acea-row row-middle" style="display: flex;align-items: center;">
|
||||||
|
<view class="sortItem" @click='setSort("userCount","asc")' v-if="sort === 'userCountDESC'">
|
||||||
|
团队排序
|
||||||
|
<image src='/static/images/sort1.png'></image>
|
||||||
|
</view>
|
||||||
|
<view class="sortItem" @click='setSort("userCount", "desc")'
|
||||||
|
v-else-if="sort === 'userCountASC'">团队排序
|
||||||
|
<image src='/static/images/sort3.png'></image>
|
||||||
|
</view>
|
||||||
|
<view class="sortItem" @click='setSort("userCount","desc")' v-else>团队排序
|
||||||
|
<image src='/static/images/sort2.png'></image>
|
||||||
|
</view>
|
||||||
|
<view class="sortItem" @click='setSort("price","asc")' v-if="sort === 'priceDESC'">
|
||||||
|
金额排序
|
||||||
|
<image src='/static/images/sort1.png'></image>
|
||||||
|
</view>
|
||||||
|
<view class="sortItem" @click='setSort("price", "desc")' v-else-if="sort === 'priceASC'">
|
||||||
|
金额排序
|
||||||
|
<image src='/static/images/sort3.png'></image>
|
||||||
|
</view>
|
||||||
|
<view class="sortItem" @click='setSort("price","desc")' v-else>金额排序
|
||||||
|
<image src='/static/images/sort2.png'></image>
|
||||||
|
</view>
|
||||||
|
<view class="sortItem" @click='setSort("orderCount","asc")' v-if="sort === 'orderCountDESC'">
|
||||||
|
订单排序
|
||||||
|
<image src='/static/images/sort1.png'></image>
|
||||||
|
</view>
|
||||||
|
<view class="sortItem" @click='setSort("orderCount", "desc")'
|
||||||
|
v-else-if="sort === 'orderCountASC'">订单排序
|
||||||
|
<image src='/static/images/sort3.png'></image>
|
||||||
|
</view>
|
||||||
|
<view class="sortItem" @click='setSort("orderCount","desc")' v-else>订单排序
|
||||||
|
<image src='/static/images/sort2.png'></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<block v-for="(item,index) in state.pagination.data" :key="index">
|
||||||
|
<view class='item acea-row row-between-wrapper' style="display: flex;">
|
||||||
|
<view class="picTxt acea-row row-between-wrapper" style="display: flex;align-items: center;">
|
||||||
|
<view class='pictrue'>
|
||||||
|
<image :src='item.avatar'></image>
|
||||||
|
</view>
|
||||||
|
<view class='text'>
|
||||||
|
<view class='name line1'>{{item.nickname}}</view>
|
||||||
|
<view>加入时间: {{ sheep.$helper.timeFormat(item.brokerageTime, 'yyyy-mm-dd hh:MM:ss') }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right" style='justify-content:center;flex-direction: column;display: flex;margin-left: auto;'>
|
||||||
|
<view><text class='num font-color'>{{ item.brokerageUserCount || 0}}</text>人
|
||||||
|
</view>
|
||||||
|
<view><text class="num">{{ item.orderCount|| 0}}</text>单</view>
|
||||||
|
<view><text class="num">{{ item.brokeragePrice || 0 }}</text>元</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-if="state.pagination.data.length == 0">
|
||||||
|
<view style='text-align: center;'>暂无推广人数</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <home></home> -->
|
||||||
|
|
||||||
|
<!-- <view class="header-box" :style="[
|
||||||
{
|
{
|
||||||
marginTop: '-' + Number(statusBarHeight + 88) + 'rpx',
|
marginTop: '-' + Number(statusBarHeight + 88) + 'rpx',
|
||||||
paddingTop: Number(statusBarHeight + 108) + 'rpx',
|
paddingTop: Number(statusBarHeight + 108) + 'rpx',
|
||||||
},
|
},
|
||||||
]">
|
]">
|
||||||
<!-- 推荐人 -->
|
|
||||||
<view v-if="userInfo.parent_user" class="referrer-box ss-flex ss-col-center">
|
<view v-if="userInfo.parent_user" class="referrer-box ss-flex ss-col-center">
|
||||||
推荐人:
|
推荐人:
|
||||||
<image class="referrer-avatar ss-m-r-10" :src="sheep.$url.cdn(userInfo.parent_user.avatar)"
|
<image class="referrer-avatar ss-m-r-10" :src="sheep.$url.cdn(userInfo.parent_user.avatar)"
|
||||||
|
@ -15,7 +106,6 @@
|
||||||
</image>
|
</image>
|
||||||
{{ userInfo.parent_user.nickname }}
|
{{ userInfo.parent_user.nickname }}
|
||||||
</view>
|
</view>
|
||||||
<!-- 团队数据总览 -->
|
|
||||||
<view class="team-data-box ss-flex ss-col-center ss-row-between">
|
<view class="team-data-box ss-flex ss-col-center ss-row-between">
|
||||||
<view class="data-card">
|
<view class="data-card">
|
||||||
<view class="total-item">
|
<view class="total-item">
|
||||||
|
@ -38,16 +128,16 @@
|
||||||
<view class="data-card">
|
<view class="data-card">
|
||||||
<view class="total-item">
|
<view class="total-item">
|
||||||
<view class="item-title">团队分销商人数(人)</view>
|
<view class="item-title">团队分销商人数(人)</view>
|
||||||
<view class="total-num">{{ agentInfo.child_agent_count_all || 0 }}</view>
|
<view class="total-num">{{ agentInfo?.child_agent_count_all || 0 }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="category-item ss-flex">
|
<view class="category-item ss-flex">
|
||||||
<view class="ss-flex-1">
|
<view class="ss-flex-1">
|
||||||
<view class="item-title">一级分销商</view>
|
<view class="item-title">一级分销商</view>
|
||||||
<view class="category-num">{{ agentInfo.child_agent_count_1 || 0 }}</view>
|
<view class="category-num">{{ agentInfo?.child_agent_count_1 || 0 }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ss-flex-1">
|
<view class="ss-flex-1">
|
||||||
<view class="item-title">二级分销商</view>
|
<view class="item-title">二级分销商</view>
|
||||||
<view class="category-num">{{ agentInfo.child_agent_count_2 || 0 }}</view>
|
<view class="category-num">{{ agentInfo?.child_agent_count_2 || 0 }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -71,7 +161,7 @@
|
||||||
</uni-list>
|
</uni-list>
|
||||||
</view>
|
</view>
|
||||||
<s-empty v-if="state.pagination.total === 0" icon="/static/data-empty.png" text="暂无团队信息">
|
<s-empty v-if="state.pagination.total === 0" icon="/static/data-empty.png" text="暂无团队信息">
|
||||||
</s-empty>
|
</s-empty> -->
|
||||||
</s-layout>
|
</s-layout>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -83,13 +173,18 @@
|
||||||
} from '@dcloudio/uni-app';
|
} from '@dcloudio/uni-app';
|
||||||
import {
|
import {
|
||||||
computed,
|
computed,
|
||||||
reactive
|
reactive,
|
||||||
|
ref
|
||||||
} from 'vue';
|
} from 'vue';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import {
|
import {
|
||||||
onPageScroll
|
onPageScroll
|
||||||
} from '@dcloudio/uni-app';
|
} from '@dcloudio/uni-app';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const statusBarHeight = sheep.$platform.device.statusBarHeight * 2;
|
const statusBarHeight = sheep.$platform.device.statusBarHeight * 2;
|
||||||
const agentInfo = computed(() => sheep.$store('user').agentInfo);
|
const agentInfo = computed(() => sheep.$store('user').agentInfo);
|
||||||
const userInfo = computed(() => sheep.$store('user').userInfo);
|
const userInfo = computed(() => sheep.$store('user').userInfo);
|
||||||
|
@ -102,6 +197,7 @@
|
||||||
state.scrollTop = true;
|
state.scrollTop = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
let sort=ref();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
getSummary: {},
|
getSummary: {},
|
||||||
pagination: {
|
pagination: {
|
||||||
|
@ -111,8 +207,14 @@
|
||||||
last_page: 1,
|
last_page: 1,
|
||||||
},
|
},
|
||||||
loadStatus: '',
|
loadStatus: '',
|
||||||
|
// ↓新ui逻辑
|
||||||
|
level: 1,
|
||||||
|
nickname: ref(''),
|
||||||
|
sortKey:'',
|
||||||
|
isAsc:''
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
function filterUserNum(num) {
|
function filterUserNum(num) {
|
||||||
if (_.isNil(num)) {
|
if (_.isNil(num)) {
|
||||||
return '';
|
return '';
|
||||||
|
@ -120,6 +222,10 @@
|
||||||
return `下级团队${num}人`;
|
return `下级团队${num}人`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function submitForm() {
|
||||||
|
state.pagination.data = []
|
||||||
|
getTeamList();
|
||||||
|
}
|
||||||
async function getTeamList(page = 1, list_rows = 8) {
|
async function getTeamList(page = 1, list_rows = 8) {
|
||||||
state.loadStatus = 'loading';
|
state.loadStatus = 'loading';
|
||||||
// nickname: this.nickname,
|
// nickname: this.nickname,
|
||||||
|
@ -128,10 +234,10 @@
|
||||||
let res = await sheep.$api.commission.team({
|
let res = await sheep.$api.commission.team({
|
||||||
pageSize: list_rows,
|
pageSize: list_rows,
|
||||||
pageNo: page,
|
pageNo: page,
|
||||||
level: '1',
|
level: state.level,
|
||||||
'sortingField.order': 'desc',
|
'sortingField.order': 'desc',
|
||||||
'sortingField.field': 'userCount',
|
'sortingField.field': 'userCount',
|
||||||
nickname: ''
|
nickname: state.nickname
|
||||||
});
|
});
|
||||||
console.log(res, '分销团队列表');
|
console.log(res, '分销团队列表');
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
|
@ -148,6 +254,19 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setType(e) {
|
||||||
|
state.pagination.data = []
|
||||||
|
state.level = e + '';
|
||||||
|
getTeamList( )
|
||||||
|
}
|
||||||
|
|
||||||
|
function setSort(sortKey, isAsc) {
|
||||||
|
state.pagination.data = []
|
||||||
|
sort = sortKey + isAsc.toUpperCase();
|
||||||
|
state.isAsc=isAsc;
|
||||||
|
state.sortKey=sortKey;
|
||||||
|
getTeamList();
|
||||||
|
}
|
||||||
onLoad(async () => {
|
onLoad(async () => {
|
||||||
getTeamList();
|
getTeamList();
|
||||||
let res = await sheep.$api.commission.getSummary();
|
let res = await sheep.$api.commission.getSummary();
|
||||||
|
@ -168,6 +287,19 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.l1 {
|
||||||
|
background-color: #fff;
|
||||||
|
height: 86rpx;
|
||||||
|
line-height: 86rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #282828;
|
||||||
|
border-bottom: 1rpx solid #eee;
|
||||||
|
border-top-left-radius: 14rpx;
|
||||||
|
border-top-right-radius: 14rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
|
||||||
.header-box {
|
.header-box {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 0 20rpx 20rpx 20rpx;
|
padding: 0 20rpx 20rpx 20rpx;
|
||||||
|
@ -263,4 +395,142 @@
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.promoter-list .nav {
|
||||||
|
background-color: #fff;
|
||||||
|
height: 86rpx;
|
||||||
|
line-height: 86rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #282828;
|
||||||
|
border-bottom: 1rpx solid #eee;
|
||||||
|
border-top-left-radius: 14rpx;
|
||||||
|
border-top-right-radius: 14rpx;
|
||||||
|
margin-top: -30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .nav .item.on {
|
||||||
|
border-bottom: 5rpx solid;
|
||||||
|
// $theme-color
|
||||||
|
color: red;
|
||||||
|
// $theme-color
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .search {
|
||||||
|
width: 100%;
|
||||||
|
background-color: #fff;
|
||||||
|
height: 100rpx;
|
||||||
|
padding: 0 24rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-bottom-left-radius: 14rpx;
|
||||||
|
border-bottom-right-radius: 14rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .search .input {
|
||||||
|
width: 592rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
border-radius: 50rpx;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .search .input input {
|
||||||
|
height: 100%;
|
||||||
|
font-size: 26rpx;
|
||||||
|
width: 610rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .search .input .placeholder {
|
||||||
|
color: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .search .input .iconfont {
|
||||||
|
position: absolute;
|
||||||
|
right: 28rpx;
|
||||||
|
color: #999;
|
||||||
|
font-size: 28rpx;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .search .iconfont {
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #515151;
|
||||||
|
height: 60rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list .sortNav {
|
||||||
|
background-color: #fff;
|
||||||
|
height: 76rpx;
|
||||||
|
border-bottom: 1rpx solid #eee;
|
||||||
|
color: #333;
|
||||||
|
font-size: 28rpx;
|
||||||
|
border-top-left-radius: 14rpx;
|
||||||
|
border-top-right-radius: 14rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list .sortNav .sortItem {
|
||||||
|
text-align: center;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list .sortNav .sortItem image {
|
||||||
|
width: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
margin-left: 6rpx;
|
||||||
|
vertical-align: -3rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list .item {
|
||||||
|
background-color: #fff;
|
||||||
|
border-bottom: 1rpx solid #eee;
|
||||||
|
height: 152rpx;
|
||||||
|
padding: 0 24rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list .item .picTxt .pictrue {
|
||||||
|
width: 106rpx;
|
||||||
|
height: 106rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list .item .picTxt .pictrue image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 50%;
|
||||||
|
border: 3rpx solid #fff;
|
||||||
|
box-shadow: 0 0 10rpx #aaa;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list .item .picTxt .text {
|
||||||
|
// width: 304rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666;
|
||||||
|
margin-left: 14rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list .item .picTxt .text .name {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
margin-bottom: 13rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list .item .right {
|
||||||
|
text-align: right;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promoter-list .list .item .right .num {
|
||||||
|
margin-right: 7rpx;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
|
@ -30,7 +30,8 @@
|
||||||
import {
|
import {
|
||||||
reactive,
|
reactive,
|
||||||
onBeforeMount,
|
onBeforeMount,
|
||||||
nextTick
|
nextTick,
|
||||||
|
ref
|
||||||
} from 'vue';
|
} from 'vue';
|
||||||
import sheep from '@/sheep';
|
import sheep from '@/sheep';
|
||||||
|
|
||||||
|
@ -52,7 +53,7 @@
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
currentValue: '0',
|
currentValue: '0',
|
||||||
});
|
});
|
||||||
const typeList = [{
|
const typeList = reactive([{
|
||||||
// icon: '/static/img/shop/pay/wechat.png',
|
// icon: '/static/img/shop/pay/wechat.png',
|
||||||
title: '工商银行',
|
title: '工商银行',
|
||||||
value: '0',
|
value: '0',
|
||||||
|
@ -67,7 +68,7 @@
|
||||||
title: '农业',
|
title: '农业',
|
||||||
value: '2',
|
value: '2',
|
||||||
},
|
},
|
||||||
];
|
])
|
||||||
const getWalletAccountInfo = async () => {
|
const getWalletAccountInfo = async () => {
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
let res = await sheep.$api.user.account.info({
|
let res = await sheep.$api.user.account.info({
|
||||||
|
|
|
@ -21,29 +21,44 @@
|
||||||
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.amount" type="number"
|
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.amount" type="number"
|
||||||
placeholder="请输入提现金额" />
|
placeholder="请输入提现金额" />
|
||||||
</view>
|
</view>
|
||||||
<view class="card-title">持卡人</view>
|
<view class="card-title" v-show='txfag==1'>持卡人</view>
|
||||||
<view class="input-box ss-flex ss-col-center border-bottom">
|
<view class="input-box ss-flex ss-col-center border-bottom" v-show='txfag==1'>
|
||||||
<view class="unit"></view>
|
<view class="unit"></view>
|
||||||
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.name"
|
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.name"
|
||||||
placeholder="请输入持卡人姓名" />
|
placeholder="请输入持卡人姓名" />
|
||||||
</view>
|
</view>
|
||||||
<view class="card-title">卡号</view>
|
<view class="card-title" v-show='txfag==1'>卡号</view>
|
||||||
<view class="input-box ss-flex ss-col-center border-bottom">
|
<view class="input-box ss-flex ss-col-center border-bottom" v-show='txfag==1'>
|
||||||
<view class="unit"></view>
|
<view class="unit"></view>
|
||||||
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.accountNo"
|
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.accountNo"
|
||||||
placeholder="请输卡号" />
|
placeholder="请输卡号" />
|
||||||
</view>
|
</view>
|
||||||
<view class="bank-box ss-flex ss-col-center ss-row-between ss-m-b-30">
|
<view class="card-title">收款码</view>
|
||||||
|
<view class="input-box ss-flex ss-col-center border-bottom">
|
||||||
|
<view class="unit"></view>
|
||||||
|
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.accountQrCodeUrl"
|
||||||
|
placeholder="请输收款码地址" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="bank-box ss-flex ss-col-center ss-row-between ss-m-b-30" style='display:block'>
|
||||||
|
<view class="name">选择提现方式:</view>
|
||||||
|
<!-- <view class="bank-list ss-flex ss-col-center" style="margin-left:auto" >
|
||||||
|
<view class="empty-text">请选择提现方式</view>
|
||||||
|
<text class="cicon-forward"></text>
|
||||||
|
</view> -->
|
||||||
|
<uni-section title="单选" type="line">
|
||||||
|
<view class="uni-px-5 uni-pb-5" style='font-size:28rpx'>
|
||||||
|
<uni-data-checkbox v-model="txfag" :localdata="txList"></uni-data-checkbox>
|
||||||
|
</view>
|
||||||
|
</uni-section>
|
||||||
|
</view>
|
||||||
|
<view class="bank-box ss-flex ss-col-center ss-row-between ss-m-b-30" v-show='txfag==1'>
|
||||||
<view class="name">选择银行</view>
|
<view class="name">选择银行</view>
|
||||||
<view class="bank-list ss-flex ss-col-center" @tap="onAccountSelect(true)">
|
<view class="bank-list ss-flex ss-col-center" @tap="onAccountSelect(true)">
|
||||||
<view v-if="!state.accountInfo.type" class="empty-text">请选择提现方式</view>
|
<view v-if="!state.accountInfo.type" class="empty-text">请选择提现方式</view>
|
||||||
<view v-if="state.accountInfo.type === '0'" class="empty-text">工商银行</view>
|
<view v-if="state.accountInfo.type === '0'" class="empty-text">工商银行</view>
|
||||||
<view v-if="state.accountInfo.type === '1'" class="empty-text">建设银行</view>
|
<view v-if="state.accountInfo.type === '1'" class="empty-text">建设银行</view>
|
||||||
<view v-if="state.accountInfo.type === '2'" class="empty-text">农业银行</view>
|
<view v-if="state.accountInfo.type === '2'" class="empty-text">农业银行</view>
|
||||||
<!-- <view v-if="!state.accountInfo.type" class="empty-text">请选择提现方式</view>
|
|
||||||
<view v-if="state.accountInfo.type === 'wechat'" class="empty-text">微信零钱</view>
|
|
||||||
<view v-if="state.accountInfo.type === 'alipay'" class="empty-text">支付宝账户</view>
|
|
||||||
<view v-if="state.accountInfo.type === 'bank'" class="empty-text">银行卡转账</view> -->
|
|
||||||
<text class="cicon-forward"></text>
|
<text class="cicon-forward"></text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -51,10 +66,6 @@
|
||||||
<view class="placeholder-text" v-if="state.accountInfo.account_name">
|
<view class="placeholder-text" v-if="state.accountInfo.account_name">
|
||||||
{{ state.accountInfo.account_header }}|{{ state.accountInfo.account_name }}
|
{{ state.accountInfo.account_header }}|{{ state.accountInfo.account_name }}
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="placeholder-text" v-else>暂无提现账户</view>
|
|
||||||
<button class="add-btn ss-reset-button" @tap="onAccountEdit(true)">
|
|
||||||
{{ state.accountInfo.account_name ? '修改' : '添加' }}
|
|
||||||
</button> -->
|
|
||||||
</view>
|
</view>
|
||||||
<button class="ss-reset-button save-btn ui-BG-Main-Gradient ui-Shadow-Main" @tap="onConfirm">
|
<button class="ss-reset-button save-btn ui-BG-Main-Gradient ui-Shadow-Main" @tap="onConfirm">
|
||||||
确认提现
|
确认提现
|
||||||
|
@ -91,7 +102,7 @@
|
||||||
import {
|
import {
|
||||||
computed,
|
computed,
|
||||||
reactive,
|
reactive,
|
||||||
onBeforeMount
|
onBeforeMount,ref
|
||||||
} from 'vue';
|
} from 'vue';
|
||||||
import sheep from '@/sheep';
|
import sheep from '@/sheep';
|
||||||
import accountTypeSelect from './components/account-type-select.vue';
|
import accountTypeSelect from './components/account-type-select.vue';
|
||||||
|
@ -130,7 +141,11 @@
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
let txfag=ref(1)
|
||||||
|
const txList=[{text:'银行卡提现',value:1},{text:'微信提现',value:2},{text:'支付宝提现',value:3}]
|
||||||
|
function tixian(v){
|
||||||
|
console.log(v)
|
||||||
|
}
|
||||||
const userStore = sheep.$store('user');
|
const userStore = sheep.$store('user');
|
||||||
const userInfo = computed(() => userStore.userInfo);
|
const userInfo = computed(() => userStore.userInfo);
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
|
@ -152,6 +167,7 @@
|
||||||
methods: [],
|
methods: [],
|
||||||
},
|
},
|
||||||
rulesList: [],
|
rulesList: [],
|
||||||
|
accountQrCodeUrl:''
|
||||||
});
|
});
|
||||||
|
|
||||||
const onAccountEdit = (e) => {
|
const onAccountEdit = (e) => {
|
||||||
|
@ -167,8 +183,9 @@
|
||||||
accountNo: state.accountNo,
|
accountNo: state.accountNo,
|
||||||
name: state.name,
|
name: state.name,
|
||||||
bankName: state.accountInfo.type,
|
bankName: state.accountInfo.type,
|
||||||
type: '2',
|
type: txfag.value,
|
||||||
price: state.amount * 100
|
price: state.amount * 100,
|
||||||
|
accountQrCodeUrl:state.accountQrCodeUrl
|
||||||
};
|
};
|
||||||
console.log(payload);
|
console.log(payload);
|
||||||
// return;
|
// return;
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import request from '@/sheep/request';
|
import request from '@/sheep/request';
|
||||||
|
|
||||||
const DiyTemplateApi = {
|
const DiyTemplateApi = {
|
||||||
getUsedDiyTemplate: () => {
|
// getUsedDiyTemplate: () => {
|
||||||
return request({
|
// return request({
|
||||||
url: '/app-api/promotion/diy-template/used',
|
// url: '/app-api/promotion/diy-template/used',
|
||||||
method: 'GET',
|
// method: 'GET',
|
||||||
});
|
// });
|
||||||
},
|
// },
|
||||||
getDiyTemplate: (id) => {
|
getDiyTemplate: (id) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/app-api/promotion/diy-template/get',
|
url: '/app-api/promotion/diy-template/get',
|
||||||
|
|
|
@ -95,6 +95,7 @@ http.interceptors.request.use(
|
||||||
config.header['Accept'] = '*/*'
|
config.header['Accept'] = '*/*'
|
||||||
config.header['tenant-id'] = '1';
|
config.header['tenant-id'] = '1';
|
||||||
config.header['terminal'] = '20';
|
config.header['terminal'] = '20';
|
||||||
|
config.header['Authorization'] = 'Bearer test247';
|
||||||
}
|
}
|
||||||
return config;
|
return config;
|
||||||
},
|
},
|
||||||
|
@ -213,8 +214,8 @@ const request = (config) => {
|
||||||
}
|
}
|
||||||
// TODO 芋艿:额外拼接
|
// TODO 芋艿:额外拼接
|
||||||
if (config.url.indexOf('/app-api/') >= 0) {
|
if (config.url.indexOf('/app-api/') >= 0) {
|
||||||
// config.url = 'http://api-dashboard.yudao.iocoder.cn' + config.url; // 调用【云端】
|
config.url = 'http://api-dashboard.yudao.iocoder.cn' + config.url; // 调用【云端】
|
||||||
config.url = 'http://127.0.0.1:48080' + config.url; // 调用【本地】
|
// config.url = 'http://127.0.0.1:48080' + config.url; // 调用【本地】
|
||||||
// config.url = 'http://yunai.natapp1.cc' + config.url; // 调用【natapp】
|
// config.url = 'http://yunai.natapp1.cc' + config.url; // 调用【natapp】
|
||||||
}
|
}
|
||||||
return http.middleware(config);
|
return http.middleware(config);
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 5.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
|
@ -1,3 +1,7 @@
|
||||||
|
## 1.0.3(2022-09-16)
|
||||||
|
- 可以使用 uni-scss 控制主题色
|
||||||
|
## 1.0.2(2022-06-30)
|
||||||
|
- 优化 在 uni-forms 中的依赖注入方式
|
||||||
## 1.0.1(2022-02-07)
|
## 1.0.1(2022-02-07)
|
||||||
- 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug
|
- 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug
|
||||||
## 1.0.0(2021-11-19)
|
## 1.0.0(2021-11-19)
|
||||||
|
|
|
@ -155,17 +155,17 @@
|
||||||
value(newVal) {
|
value(newVal) {
|
||||||
this.dataList = this.getDataList(newVal)
|
this.dataList = this.getDataList(newVal)
|
||||||
// fix by mehaotian is_reset 在 uni-forms 中定义
|
// fix by mehaotian is_reset 在 uni-forms 中定义
|
||||||
if(!this.is_reset){
|
// if(!this.is_reset){
|
||||||
this.is_reset = false
|
// this.is_reset = false
|
||||||
this.formItem && this.formItem.setValue(newVal)
|
// this.formItem && this.formItem.setValue(newVal)
|
||||||
}
|
// }
|
||||||
},
|
},
|
||||||
modelValue(newVal) {
|
modelValue(newVal) {
|
||||||
this.dataList = this.getDataList(newVal);
|
this.dataList = this.getDataList(newVal);
|
||||||
if(!this.is_reset){
|
// if(!this.is_reset){
|
||||||
this.is_reset = false
|
// this.is_reset = false
|
||||||
this.formItem && this.formItem.setValue(newVal)
|
// this.formItem && this.formItem.setValue(newVal)
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -193,22 +193,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.form = this.getForm('uniForms')
|
// this.form = this.getForm('uniForms')
|
||||||
this.formItem = this.getForm('uniFormsItem')
|
// this.formItem = this.getForm('uniFormsItem')
|
||||||
// this.formItem && this.formItem.setValue(this.value)
|
// this.formItem && this.formItem.setValue(this.value)
|
||||||
|
|
||||||
if (this.formItem) {
|
// if (this.formItem) {
|
||||||
this.isTop = 6
|
// this.isTop = 6
|
||||||
if (this.formItem.name) {
|
// if (this.formItem.name) {
|
||||||
// 如果存在name添加默认值,否则formData 中不存在这个字段不校验
|
// // 如果存在name添加默认值,否则formData 中不存在这个字段不校验
|
||||||
if(!this.is_reset){
|
// if(!this.is_reset){
|
||||||
this.is_reset = false
|
// this.is_reset = false
|
||||||
this.formItem.setValue(this.dataValue)
|
// this.formItem.setValue(this.dataValue)
|
||||||
}
|
// }
|
||||||
this.rename = this.formItem.name
|
// this.rename = this.formItem.name
|
||||||
this.form.inputChildrens.push(this)
|
// this.form.inputChildrens.push(this)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (this.localdata && this.localdata.length !== 0) {
|
if (this.localdata && this.localdata.length !== 0) {
|
||||||
this.isLocal = true
|
this.isLocal = true
|
||||||
|
@ -273,7 +273,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.formItem && this.formItem.setValue(detail.value)
|
// this.formItem && this.formItem.setValue(detail.value)
|
||||||
// TODO 兼容 vue2
|
// TODO 兼容 vue2
|
||||||
this.$emit('input', detail.value);
|
this.$emit('input', detail.value);
|
||||||
// // TOTO 兼容 vue3
|
// // TOTO 兼容 vue3
|
||||||
|
@ -375,7 +375,7 @@
|
||||||
selectedArr.push(item[this.map.value])
|
selectedArr.push(item[this.map.value])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return this.dataValue && this.dataValue.length > 0 ? this.dataValue : selectedArr
|
return this.dataValue.length > 0 ? this.dataValue : selectedArr
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -384,12 +384,14 @@
|
||||||
setStyleBackgroud(item) {
|
setStyleBackgroud(item) {
|
||||||
let styles = {}
|
let styles = {}
|
||||||
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
||||||
|
if (this.selectedColor) {
|
||||||
if (this.mode !== 'list') {
|
if (this.mode !== 'list') {
|
||||||
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
||||||
}
|
}
|
||||||
if (this.mode === 'tag') {
|
if (this.mode === 'tag') {
|
||||||
styles['background-color'] = item.selected? selectedColor:'#f5f5f5'
|
styles['background-color'] = item.selected? selectedColor:'#f5f5f5'
|
||||||
}
|
}
|
||||||
|
}
|
||||||
let classles = ''
|
let classles = ''
|
||||||
for (let i in styles) {
|
for (let i in styles) {
|
||||||
classles += `${i}:${styles[i]};`
|
classles += `${i}:${styles[i]};`
|
||||||
|
@ -399,6 +401,7 @@
|
||||||
setStyleIcon(item) {
|
setStyleIcon(item) {
|
||||||
let styles = {}
|
let styles = {}
|
||||||
let classles = ''
|
let classles = ''
|
||||||
|
if (this.selectedColor) {
|
||||||
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
||||||
styles['background-color'] = item.selected?selectedColor:'#fff'
|
styles['background-color'] = item.selected?selectedColor:'#fff'
|
||||||
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
||||||
|
@ -407,7 +410,7 @@
|
||||||
styles['background-color'] = '#F2F6FC'
|
styles['background-color'] = '#F2F6FC'
|
||||||
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
||||||
}
|
}
|
||||||
|
}
|
||||||
for (let i in styles) {
|
for (let i in styles) {
|
||||||
classles += `${i}:${styles[i]};`
|
classles += `${i}:${styles[i]};`
|
||||||
}
|
}
|
||||||
|
@ -416,6 +419,7 @@
|
||||||
setStyleIconText(item) {
|
setStyleIconText(item) {
|
||||||
let styles = {}
|
let styles = {}
|
||||||
let classles = ''
|
let classles = ''
|
||||||
|
if (this.selectedColor) {
|
||||||
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
||||||
if (this.mode === 'tag') {
|
if (this.mode === 'tag') {
|
||||||
styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:'#fff'):'#666'
|
styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:'#fff'):'#666'
|
||||||
|
@ -425,7 +429,7 @@
|
||||||
if(!item.selected && item.disabled){
|
if(!item.selected && item.disabled){
|
||||||
styles.color = '#999'
|
styles.color = '#999'
|
||||||
}
|
}
|
||||||
|
}
|
||||||
for (let i in styles) {
|
for (let i in styles) {
|
||||||
classles += `${i}:${styles[i]};`
|
classles += `${i}:${styles[i]};`
|
||||||
}
|
}
|
||||||
|
@ -448,7 +452,7 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
$checked-color: #2979ff;
|
$uni-primary: #2979ff !default;
|
||||||
$border-color: #DCDFE6;
|
$border-color: #DCDFE6;
|
||||||
$disable:0.4;
|
$disable:0.4;
|
||||||
|
|
||||||
|
@ -614,8 +618,8 @@
|
||||||
// 选中
|
// 选中
|
||||||
&.is-checked {
|
&.is-checked {
|
||||||
.checkbox__inner {
|
.checkbox__inner {
|
||||||
border-color: $checked-color;
|
border-color: $uni-primary;
|
||||||
background-color: $checked-color;
|
background-color: $uni-primary;
|
||||||
|
|
||||||
.checkbox__inner-icon {
|
.checkbox__inner-icon {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
@ -623,14 +627,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.radio__inner {
|
.radio__inner {
|
||||||
border-color: $checked-color;
|
border-color: $uni-primary;
|
||||||
.radio__inner-icon {
|
.radio__inner-icon {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
background-color: $checked-color;
|
background-color: $uni-primary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.checklist-text {
|
.checklist-text {
|
||||||
color: $checked-color;
|
color: $uni-primary;
|
||||||
}
|
}
|
||||||
// 选中禁用
|
// 选中禁用
|
||||||
&.is-disable {
|
&.is-disable {
|
||||||
|
@ -683,10 +687,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&.is-checked {
|
&.is-checked {
|
||||||
border-color: $checked-color;
|
border-color: $uni-primary;
|
||||||
.checkbox__inner {
|
.checkbox__inner {
|
||||||
border-color: $checked-color;
|
border-color: $uni-primary;
|
||||||
background-color: $checked-color;
|
background-color: $uni-primary;
|
||||||
.checkbox__inner-icon {
|
.checkbox__inner-icon {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transform: rotate(45deg);
|
transform: rotate(45deg);
|
||||||
|
@ -694,16 +698,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.radio__inner {
|
.radio__inner {
|
||||||
border-color: $checked-color;
|
border-color: $uni-primary;
|
||||||
|
|
||||||
.radio__inner-icon {
|
.radio__inner-icon {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
background-color: $checked-color;
|
background-color: $uni-primary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.checklist-text {
|
.checklist-text {
|
||||||
color: $checked-color;
|
color: $uni-primary;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 选中禁用
|
// 选中禁用
|
||||||
|
@ -735,8 +739,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&.is-checked {
|
&.is-checked {
|
||||||
background-color: $checked-color;
|
background-color: $uni-primary;
|
||||||
border-color: $checked-color;
|
border-color: $uni-primary;
|
||||||
|
|
||||||
.checklist-text {
|
.checklist-text {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
@ -775,8 +779,8 @@
|
||||||
|
|
||||||
&.is-checked {
|
&.is-checked {
|
||||||
.checkbox__inner {
|
.checkbox__inner {
|
||||||
border-color: $checked-color;
|
border-color: $uni-primary;
|
||||||
background-color: $checked-color;
|
background-color: $uni-primary;
|
||||||
|
|
||||||
.checkbox__inner-icon {
|
.checkbox__inner-icon {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
@ -789,13 +793,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.checklist-text {
|
.checklist-text {
|
||||||
color: $checked-color;
|
color: $uni-primary;
|
||||||
}
|
}
|
||||||
|
|
||||||
.checklist-content {
|
.checklist-content {
|
||||||
.checkobx__list {
|
.checkobx__list {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
border-color: $checked-color;
|
border-color: $uni-primary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "uni-data-checkbox",
|
"id": "uni-data-checkbox",
|
||||||
"displayName": "uni-data-checkbox 数据选择器",
|
"displayName": "uni-data-checkbox 数据选择器",
|
||||||
"version": "1.0.1",
|
"version": "1.0.3",
|
||||||
"description": "通过数据驱动的单选框和复选框",
|
"description": "通过数据驱动的单选框和复选框",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"uni-ui",
|
"uni-ui",
|
||||||
|
@ -18,10 +18,6 @@
|
||||||
"example": "../../temps/example_temps"
|
"example": "../../temps/example_temps"
|
||||||
},
|
},
|
||||||
"dcloudext": {
|
"dcloudext": {
|
||||||
"category": [
|
|
||||||
"前端组件",
|
|
||||||
"通用组件"
|
|
||||||
],
|
|
||||||
"sale": {
|
"sale": {
|
||||||
"regular": {
|
"regular": {
|
||||||
"price": "0.00"
|
"price": "0.00"
|
||||||
|
@ -38,7 +34,8 @@
|
||||||
"data": "无",
|
"data": "无",
|
||||||
"permissions": "无"
|
"permissions": "无"
|
||||||
},
|
},
|
||||||
"npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
|
"npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
|
||||||
|
"type": "component-vue"
|
||||||
},
|
},
|
||||||
"uni_modules": {
|
"uni_modules": {
|
||||||
"dependencies": ["uni-load-more","uni-scss"],
|
"dependencies": ["uni-load-more","uni-scss"],
|
||||||
|
|
Loading…
Reference in New Issue