师傅通过分享链接邀请其他师傅加入团队,登录带参数问题修复

This commit is contained in:
donqi 2022-06-28 17:12:15 +08:00
parent 7cc29e8168
commit 524690b2b4
5 changed files with 212 additions and 159 deletions

View File

@ -23,7 +23,7 @@ export default {
if (args.data instanceof Object) {
args.data.deptId = globalData.deptId;
args.data.from = globalData.from;
if (!args.data.workerId) {
if (!args.data.workerId && userInfo && userInfo.workerId) {
args.data.workerId = userInfo.workerId;
}
}

View File

@ -7,9 +7,8 @@
{{content}}
</view>
<view class="cu-bar bg-white">
<view class="action margin-0 flex-sub text-black" @tap="hideModal" @click="cancelCallback">{{cancelMsg}}</view>
<view class="action margin-0 flex-sub text-main-color solid-left" @tap="hideModal"
@click="confirmCallback">{{confirmMsg}}</view>
<view class="action margin-0 flex-sub text-black" @tap="hideModal">{{cancelMsg}}</view>
<view class="action margin-0 flex-sub text-main-color solid-left" @click="confirmCallback">{{confirmMsg}}</view>
</view>
</view>
</view>
@ -19,6 +18,7 @@
<script>
export default {
name: 'confirm-modal',
emits: ["confirm", 'cancel'],
props: {
content: {
type: String,
@ -31,10 +31,6 @@
confirmMsg: {
type: String,
default: '确定'
},
cancelCallback: {
type: Boolean,
default: false
}
},
data() {
@ -47,13 +43,12 @@
this.isShow = true
},
hideModal(e) {
this.isShow = false
this.$emit('cancel');
this.isShow = false;
},
confirmCallback(e) {
uni.$emit(this.$globalFun.CONFIRM);
},
cancelCallback(e) {
uni.$emit(this.$globalFun.CANCEL);
this.$emit('confirm');
this.hideModal();
}
}
}

View File

@ -8,20 +8,23 @@
<text class="cuIcon-close text-red"></text>
</view>
</view>
<view class="padding-xl text-left">
<view class="margin-top-sm">
<view class="padding-xl text-left bg-white">
<!-- <view class="margin-top-sm">
<text>团队成员师傅ID</text>
<input class="radius-input margin-top-sm" type="text" v-model="workerId"></input>
</view>
<view class="margin-top-sm">
</view> -->
<!-- <view>
<text>成员师傅备注</text>
<input class="radius-input margin-top-sm" type="text" v-model="workerName"></input>
</view> -->
<view>
是否确认加入{{inviteMasterObj.name}}的团队
</view>
</view>
<view class="cu-bar bg-white solid-top">
<view class="action margin-0 flex-sub text-black" @tap="hideModal">取消</view>
<view class="action margin-0 flex-sub text-main-color solid-left" @tap="hideModal"
@click="confirm">邀请</view>
@click="confirm">确定</view>
</view>
</view>
</view>
@ -31,11 +34,17 @@
export default {
name: 'invite-master',
emits: ['confirm'],
props: {
inviteMasterObj: {
type: Object,
default: {}
}
},
data() {
return {
isShow: false,
workerId: '',
workerName: ''
workerId: null,
// workerName: ''
}
},
methods: {
@ -47,14 +56,14 @@
this.resetData();
},
resetData() {
this.workerId = '',
this.workerName = ''
this.workerId = null
// this.workerName = ''
},
confirm() {
this.$emit('confirm', {
leaderId: this.$request.getCurUserInfo().workerId,
workerId: this.workerId,
workerName: this.workerName
leaderId: this.inviteMasterObj.workerId,
workerId: this.$request.getCurUserInfo().workerId,
// workerName: this.workerName
});
}
}

View File

@ -6,106 +6,150 @@
<block slot="content">我的团队</block>
</cu-custom>
<!-- 团队成员 -->
<view>
<view class="bg-white padding bottom-border" v-for="(member, index) in members">
<view class="flex justify-between">
<view class="flex justify-start align-center" style="width: 40%;">
<view class="cu-avatar round"
:style="'background-image:url(' + member.workerLogoUrl + ');min-width: 64rpx'"></view>
<view class="text-lg margin-left-sm">{{member.name}}</view>
</view>
<view class="flex justify-end align-center">
<view v-if="Boolean(member.showEditInput)" :key="member.workerId"
class="flex justify-end align-center margin-lr-sm">
<input class="radius-input" type="text" v-model="member.workerName" placeholder="姓名备注"></input>
<view class="text-lg margin-left-sm">
<text class="cuIcon-roundcheckfill text-main-color" :data-index="index"
@click="editWorkerName"></text>
<text class="cuIcon-roundclosefill margin-left-xs" :data-index="index"
@click="hideEditInput"></text>
</view>
</view>
<view v-else class="flex justify-end margin-lr-sm" :key="member.workerId">
<text>{{member.workerName}}</text>
<text class="text-lg" :data-index="index" @click="showEditInput"><text
class="cuIcon-edit margin-left-xs"></text></text>
</view>
<view class="text-xxl text-main-color" :data-phone="member.phone" @click="makePhoneCall">
<view class="cuIcon-phone"></view>
</view>
</view>
</view>
</view>
</view>
<load-status-bar class="margin-bottom-with-bar" ref="loadStatusBar" @loadMore="loadTeamPage"></load-status-bar>
<!-- 底部操作栏 -->
<view class="cu-bar bg-white tabbar border shop fixed-bottom-bar">
<view class="left-grid text-center" data-modal="takeRateSet" @click="showModalByRef('setTakeRateModal')">
<view>设置扣点</view>
<view v-if="curUserInfo.leaderTeamRate">(扣点<text class="text-red">{{Number(curUserInfo.leaderTeamRate)*100}}%</text>)</view>
</view>
<view class="bg-main-color submit" @click="showModalByRef('inviteMasterModal')">邀请团队</view>
</view>
<set-take-rate ref="setTakeRateModal" :leaderTeamRate="Number(curUserInfo.leaderTeamRate)*100" :leaderTeamMoney="curUserInfo.leaderTeamMoney" @confirm="applySetTakeRate"></set-take-rate>
<invite-master ref="inviteMasterModal" @confirm="inviteMaster"></invite-master>
<view>
<view class="bg-white padding bottom-border" v-for="(member, index) in members">
<view class="flex justify-between">
<view class="flex justify-start align-center" style="width: 40%;">
<view class="cu-avatar round"
:style="'background-image:url(' + member.workerLogoUrl + ');min-width: 64rpx'"></view>
<view class="text-lg margin-left-sm">{{member.name}}</view>
</view>
<view class="flex justify-end align-center">
<view v-if="Boolean(member.showEditInput)" :key="member.workerId"
class="flex justify-end align-center margin-lr-sm">
<input class="radius-input" type="text" v-model="member.workerName"
placeholder="姓名备注"></input>
<view class="text-lg margin-left-sm">
<text class="cuIcon-roundcheckfill text-main-color" :data-index="index"
@click="editWorkerName"></text>
<text class="cuIcon-roundclosefill margin-left-xs" :data-index="index"
@click="hideEditInput"></text>
</view>
</view>
<view v-else class="flex justify-end margin-lr-sm" :key="member.workerId">
<text>{{member.workerName ? member.workerName : ''}}</text>
<text class="text-lg" :data-index="index" @click="showEditInput"><text
class="cuIcon-edit margin-left-xs"></text></text>
</view>
<view class="text-xxl text-main-color" :data-phone="member.phone" @click="makePhoneCall">
<view class="cuIcon-phone"></view>
</view>
</view>
</view>
</view>
</view>
<load-status-bar class="margin-bottom-with-bar" ref="loadStatusBar" @loadMore="loadTeamPage"></load-status-bar>
<!-- 底部操作栏 -->
<view class="cu-bar bg-white tabbar border shop fixed-bottom-bar">
<view class="left-grid text-center" data-modal="takeRateSet" @click="showModalByRef('setTakeRateModal')">
<view>设置扣点</view>
<view v-if="curUserInfo.leaderTeamRate">(扣点<text
class="text-red">{{Number(curUserInfo.leaderTeamRate)*100}}%</text>)</view>
</view>
<!-- <view class="bg-main-color submit" @click="showModalByRef('inviteMasterModal')">邀请团队</view> -->
<view class="bg-main-color submit">
<button class="cu-btn bg-main-color" open-type="share" style="width: 100%; height: 100%;">
<text class="cuIcon-share"></text>
<text>邀请师傅</text>
</button>
</view>
</view>
<set-take-rate ref="setTakeRateModal" :leaderTeamRate="Number(curUserInfo.leaderTeamRate)*100"
:leaderTeamMoney="curUserInfo.leaderTeamMoney" @confirm="applySetTakeRate"></set-take-rate>
<invite-master ref="inviteMasterModal" :inviteMasterObj="inviteMasterObj" @confirm="inviteMaster"></invite-master>
<confirm-modal ref="confirmModal" :content="'当前无法加入师傅团队,请先登录并完成师傅入驻申请。'" @confirm="goToIndex"></confirm-modal>
</view>
</template>
<script>
import setTakeRate from '@/pages/area-proxy/modal/set-take-rate.vue';
import inviteMaster from '@/pages/area-proxy/modal/invite-master.vue';
import loadStatusBar from '@/components/custom-bar/load-status-bar.vue';
export default {
components: {
inviteMaster,
setTakeRate,
loadStatusBar
<script>
import setTakeRate from '@/pages/area-proxy/modal/set-take-rate.vue';
import inviteMaster from '@/pages/area-proxy/modal/invite-master.vue';
import loadStatusBar from '@/components/custom-bar/load-status-bar.vue';
export default {
components: {
inviteMaster,
setTakeRate,
loadStatusBar
},
data() {
return {
members: [],
pageNum: 0,
pageSize: 0,
curUserInfo: null
members: [],
pageNum: 0,
pageSize: 0,
curUserInfo: {},
inviteMasterObj: {}
}
},
onLoad() {
this.loadData();
onLoad(options) {
if (options && options.inviteMasterObj) {
//
this.beInvited2Team(JSON.parse(decodeURIComponent(options.inviteMasterObj)));
} else {
this.loadData();
}
},
methods: {
onShareAppMessage() {
return {
title: '邀请你成为我的团队成员',
path: '/pages/area-proxy/my-team?inviteMasterObj=' + encodeURIComponent(JSON.stringify(this.curUserInfo)),
// imageUrl: 'https://ossweb-img.qq.com/images/lol/web201310/skin/big5000.jpg'
}
},
methods: {
async beInvited2Team(inviteMasterObj) {
this.inviteMasterObj = inviteMasterObj;
let curUserInfo = await this.login();
if (curUserInfo == null || curUserInfo.status !== 0) {
//
this.showModalByRef('confirmModal');
} else {
this.showModalByRef('inviteMasterModal');
}
},
async login() {
// userInfo
await this.$request.storageExistUser();
// userInfo
return this.$request.getCurUserInfo();
},
goToIndex() {
uni.reLaunch({
url: '/pages/index/index'
})
},
async loadData() {
// this.myTeamInfo = await this.$api.data('myTeamInfo');
// this.members = this.myTeamInfo.members;
this.pageSize = this.$globalData.initPageSize;
this.curUserInfo = this.$request.getCurUserInfo();
// this.members = this.myTeamInfo.members;
this.pageSize = this.$globalData.initPageSize;
this.curUserInfo = this.$request.getCurUserInfo();
this.loadTeamPage();
},
async reloadData() {
this.pageNum = 0;
this.members = [];
this.loadData();
},
async loadTeamPage(params = {}) {
params.pageNum = this.pageNum;
params.pageSize = this.pageSize;
this.$refs.loadStatusBar.showLoading();
try {
let res = await this.$request.getTeamPage(params);
let rowsLength = res.rows.length;
if (rowsLength > 0) {
this.members = this.members.concat(res.rows);
this.pageNum++;
if (rowsLength === this.pageSize) {
this.$refs.loadStatusBar.showLoadMore();
}
}
this.$refs.loadStatusBar.showLoadOver();
} catch (e) {
console.error(e)
this.$refs.loadStatusBar.showLoadErr();
}
},
async reloadData() {
this.pageNum = 0;
this.members = [];
this.loadData();
},
async loadTeamPage(params = {}) {
params.pageNum = this.pageNum;
params.pageSize = this.pageSize;
this.$refs.loadStatusBar.showLoading();
try {
let res = await this.$request.getTeamPage(params);
let rowsLength = res.rows.length;
if (rowsLength > 0) {
this.members = this.members.concat(res.rows);
this.pageNum++;
if (rowsLength === this.pageSize) {
this.$refs.loadStatusBar.showLoadMore();
}
}
this.$refs.loadStatusBar.showLoadOver();
} catch (e) {
console.error(e)
this.$refs.loadStatusBar.showLoadErr();
}
},
showEditInput(e) {
let curIndex = e.currentTarget.dataset.index;
@ -119,20 +163,20 @@
showEditInput: false
}))
},
async editWorkerName(e) {
let curIndex = e.currentTarget.dataset.index;
let memberInfo = this.members[curIndex];
let res = await this.$request.updateWorkerTeam({
workerTeamId: memberInfo.workerTeamId,
workerName: memberInfo.workerName
});
if (res.code === 0) {
uni.showToast({
title: '修改成功',
icon: 'success',
mask: true
});
this.hideEditInput(e);
async editWorkerName(e) {
let curIndex = e.currentTarget.dataset.index;
let memberInfo = this.members[curIndex];
let res = await this.$request.updateWorkerTeam({
workerTeamId: memberInfo.workerTeamId,
workerName: memberInfo.workerName
});
if (res.code === 0) {
uni.showToast({
title: '修改成功',
icon: 'success',
mask: true
});
this.hideEditInput(e);
}
},
makePhoneCall(e) {
@ -140,31 +184,31 @@
uni.makePhoneCall({
phoneNumber: phoneNum
})
},
showModalByRef(refName) {
this.$refs[refName].showModal();
},
async applySetTakeRate(params) {
let res = await this.$request.updateWorker(params);
if (res.code === 0) {
uni.showToast({
title: '保存成功',
icon: 'success',
mask: true
});
this.reloadData();
}
},
async inviteMaster(params) {
let res = await this.$request.addTeam(params);
if (res.code === 0) {
uni.showToast({
title: '邀请成功',
icon: 'success',
mask: true
})
this.reloadData();
}
},
showModalByRef(refName) {
this.$refs[refName].showModal();
},
async applySetTakeRate(params) {
let res = await this.$request.updateWorker(params);
if (res.code === 0) {
uni.showToast({
title: '保存成功',
icon: 'success',
mask: true
});
this.reloadData();
}
},
async inviteMaster(params) {
let res = await this.$request.addTeam(params);
if (res.code === 0) {
uni.showToast({
title: '邀请成功',
icon: 'success',
mask: true
})
this.reloadData();
}
}
},
}
@ -173,9 +217,9 @@
<style scoped>
.left-grid {
width: 50%;
}
.bottom-border {
border-bottom: 1rpx solid rgba(0, 0, 0, 0.1);
}
.bottom-border {
border-bottom: 1rpx solid rgba(0, 0, 0, 0.1);
}
</style>

View File

@ -209,7 +209,7 @@
this.curUserInfo = curUserInfo;
//
this.isShowSteer = this.curUserInfo.type != null && this.curUserInfo.type != undefined ? false : true;
this.isShowSteer = this.curUserInfo.type == null || this.curUserInfo.status !== 0 ? true : false;
this.myInfo = await this.$api.data('myInfo');
// this.isShowSteer = !this.myInfo.entryType;
@ -226,9 +226,14 @@
}
this.servModules = newServModules;
},
async chooseEntryType(typeCode) {
async chooseEntryType(typeCode) {
let status = 1;
if (typeCode === 1) {
status = 0;
}
await this.$request.updateWorker({
type: typeCode
type: typeCode,
status: status
});
if (typeCode === 1) {
this.$emit('changeCurPageCode', 'supplyChainPage');