You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
4.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view>
<view style="padding: 10rpx 15rpx;">
<u-search :placeholder="'搜索:'+teamName" v-model="keyword" :clearabled="false" :showAction="false"
@change="searchName" @tap="$u.throttle(btnAClick, 500)"></u-search>
<view style="margin-top: 20rpx;">
<u-radio-group v-model="radioName" placement="column">
<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in nameList" :key="index"
@change="radioChange" :label="item.userName" :name="item.id">
<view class="menu-item-box" style="display: flex;align-items: center;margin-bottom: 5rpx;">
<text
style="background-color: #0087fc;padding: 18rpx 13rpx;color: white;border-radius: 10rpx;margin-right: 15rpx;">
{{item.userName===undefined ? ":" : item.userName.slice(-2)}}
</text>
<view style="font-weight: 600;">{{ item.userName }}({{item.teamName}})</view>
</view>
</u-radio>
</u-radio-group>
<view v-if="nameList.length === 0" class="listName" style="display: flex;flex-direction: column;align-items: center;justify-content: c
;margin-top: 100rpx;">
<image src="../../../../../static/images/none.png" style="width: 316rpx;height: 181rpx;"></image>
<span style="color: #9f9f9f;margin-top: 30rpx;">暂无人员~</span>
</view>
</view>
</view>
<view class="bottom">
<view style="color: #0087fc;width: 400rpx;text-align: center;">
已选择:{{ radioName== ''? "":changeName()[0].userName}}
</view>
<u-button class="confirm" @click="confirm" :disabled="isdisable">
</u-button>
</view>
</view>
</template>
<script>
import {
listFiremen
} from '@/api/fireman/index.js'
export default {
onLoad(options) {
this.teamId = options.teamId
},
data() {
return {
current: 0,
keyword: '', //输入框绑定
teamId: '', //申请人的teamId
radioName: '', //选择人员双向绑定
nameList: [], //人员列表,
teamName: '', //队伍名字
isdisable: true, //是否禁用
};
},
mounted() {
this.getList(this.teamId)
},
methods: {
btnBClick() {
// 此处用法为在js中调用需要写uni.$u.throttle()
uni.$u.throttle(this.toNext, 500)
},
toNext() {
console.log('btnBClick');
},
getList(teamId) {
listFiremen({
teamId: teamId
}).then(res => {
this.nameList = res.rows;
this.teamName = this.nameList[0].teamName
console.log("中队", res.rows);
})
},
// 根据name绑定的id值显示name
changeName() {
let data = this.nameList.filter(item => item.id == this.radioName)
// console.log(data, "筛选");
return data
},
// 选中
radioChange(n) {
if (n) {
this.isdisable = false
}
},
// 搜索姓名
searchName(e) {
console.log(e);
listFiremen({
userName: e,
teamId: this.teamId
}).then(res => {
this.nameList = res.rows
})
},
// 确认按钮
confirm() {
if (this.radioName) {
// 1. 获取当前页面栈实例(此时最后一个元素为当前页)
let pages = getCurrentPages()
// 2. 上一页面实例
// 注意是length长度所以要想得到上一页面的实例需要 -2
// 若要返回上上页面的实例就 -3以此类推
let prevPage = pages[pages.length - 2]
// 3. 给上一页面实例绑定getValue()方法和参数(注意是$vm
prevPage.$vm.getChooseName(this.radioName)
// 4. 返回上一页面
uni.navigateBack({
delta: 1 // 返回的页面数
})
}
}
}
}
</script>
<style lang="scss">
page {
background-color: #fff;
box-sizing: border-box !important;
// padding: 10rpx 15rpx;
.bottom {
position: fixed;
bottom: 0;
width: 100vw;
height: 100rpx;
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(35, 35, 36, 0.05);
// border-radius: 20rpx;
border: 1px solid #EEEEEE;
display: flex;
align-items: center;
justify-content: space-between;
.confirm {
background-color: #0087fc;
color: #fff;
width: 200rpx;
border-radius: 10rpx;
// padding: 5rpx 15rpx;
}
}
}
</style>