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

2 months ago
<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>