hz-zhhq-app/pages/access-card/access-area.vue

313 lines
7.7 KiB
Vue
Raw Normal View History

2025-01-22 10:53:47 +08:00
<template>
<view class="hzIndex">
<hzHeader title="区域选择"></hzHeader>
<view class="hzContent" style="padding-top: 200upx;">
<view class="saveBtn" @click="saveArea">保存</view>
<view class="main">
<view class="tab-boxs">
<view class="tab-item" v-for="(item, index) in buildList" :key="index" :class="currentTabIndex == index ? 'active' : ''" @click="currentTabIndex = index">
<view class="activeLine" v-if="currentTabIndex == index"></view>
<view>{{item.ACCESSNAME}}</view>
</view>
</view>
<!-- 未审批列表 -->
<view class="list-box">
<view v-for="(item, index) in buildList" :key="index" v-show="currentTabIndex == index">
<uni-table ref="table" :border="false" type="selection" emptyText="暂无更多数据" @selection-change="selectionChange">
<uni-tr>
<uni-th width="150" align="left">区域</uni-th>
</uni-tr>
<uni-tr v-for="(items, indexs) in item.areaList" :key="indexs">
<uni-td align="left">{{ items.ACCESSNAME}}</uni-td>
</uni-tr>
</uni-table>
</view>
<!-- <view class="detail" v-for="(item, index) in list" :key="index">
<view class="detail_msg">
<view class="info-item" @click="detail(item)">
<text>办卡类型</text>
<text class="infoSpan">{{item.ACCESSNAME}}</text>
</view>
</view>
</view> -->
</view>
</view>
</view>
</view>
</template>
<script>
import uniCalendar from '@/components/uni-calendar/uni-calendar.vue';
import { getAccessControlList } from '@/common/api.js';
import { callbackRequest, alertTip, getStorage,formatDate } from '@/common/util.js';
import loadMore from '@/components/loadMore.vue';
import datetimePicker from '@/components/dateTime.vue';
import contentNone from '@/components/contentNone.vue';
import UniPopup from "@/components/uni-popup/uni-popup.vue"
import xflSelect from '../../components/xfl-select/xfl-select1.vue'
export default {
data() {
return {
formatDate: formatDate,
userId: getStorage('userInfo').userId,
currentTabIndex:0,
list: [],
buildList: [
{id:'1',ACCESSNAME:'科技楼',areaList:[{ACCESSNAME:'科技楼测试区域1'},{ACCESSNAME:'科技楼测试区域2'},{ACCESSNAME:'科技楼测试区域3'}]},
{id:'1',ACCESSNAME:'调度楼',areaList:[{ACCESSNAME:'调度楼测试区域1'},{ACCESSNAME:'调度楼测试区域2'},{ACCESSNAME:'调度楼测试区域3'}]},
{id:'1',ACCESSNAME:'后勤楼',areaList:[{ACCESSNAME:'后勤楼测试区域1'},{ACCESSNAME:'后勤楼测试区域2'},{ACCESSNAME:'后勤楼测试区域3'}]},
],
examineBatch:'',
chosenType:'',
chosenAreaList:[]
};
},
components: {
loadMore,
contentNone,
UniPopup,
xflSelect
},
watch: {
currentTabIndex: function(newVal, oldVal) {
this.currentTabIndex = newVal;
// if (this.currentTabIndex==0) {
// }else if (this.currentTabIndex==1) {
// }
// this.getExaminePage();
}
},
onLoad(options) {
this.selectedIndexs = []
this.chosenType = options.chosenType || 0;
this.currentTabIndex = options.currentTabIndex || 0;
this.examineBatch = options.examineBatch || "1";
},
onShow() {
this.getAccessControlList();
},
methods: {
getAccessControlList() {
var data = {};
data = {
userId: this.userId,
// examineBatch:this.examineBatch,
// examineState:'0',
// type:"1"
// orgId:getStorage('userInfo').department_id
};
console.log(data)
let params = {
method:getAccessControlList,
data: data
};
callbackRequest(params).then(res => {
if (res.data.returnCode == 1) {
let result = res.data.returnData||[];
this.buildList = result
console.log(result)
// this.list = result;
} else {
alertTip(res.data.returnMsg);
}
});
},
getUserPermissions(code) {
let that = this;
// if (!that.userId) {
// return;
// }
let userId= getStorage('userInfo').userId;
callbackRequestNoLoading({ method: getUserPermission3, data: { userId: userId,parentCode:code } }).then(res => {
if (res.data.returnCode == 1) {
that.permissions = res.data.returnData;
} else {
console.log('获取权限失败');
}
});
},
selectionChange(e) {
// console.log(this.currentTabIndex)
// console.log(e.detail.index)
let arrList = []
let arrIdsList = []
let selectedIndexs = [] // 选择的下标数组
selectedIndexs = e.detail.index
// 将数组中的值作为table表格数组的下标来获取对应的当前行数据
selectedIndexs.map(i => {
arrList.push(this.buildList[this.currentTabIndex].areaList[i].ACCESSNAME)
arrIdsList.push(this.buildList[this.currentTabIndex].areaList[i].ACCESSID)
})
// console.log(arrList)
// console.log(arrIdsList)
let obj = {
addressId:this.buildList[this.currentTabIndex].ACCESSID,
address:this.buildList[this.currentTabIndex].ACCESSNAME,
area:arrList.join(','),
areaIds:arrIdsList.join(','),
}
// console.log(obj)
this.chosenAreaList[this.currentTabIndex] = obj
},
saveArea() {
let arr = []
this.chosenAreaList.forEach(item=>{
if(item.area!=''){
arr.push(item)
}
})
console.log(arr)
let pages = getCurrentPages(); //获取所有页面栈实例列表
let nowPage = pages[pages.length - 1]; //当前页页面实例
let prevPage = pages[pages.length - 2]; //上一页页面实例
if(this.chosenType==1){
prevPage.$vm.areaData0 = arr;
}
if(this.chosenType==2){
prevPage.$vm.areaData1 = arr;
}
uni.navigateBack({ // 返回上一页面
delta: 1 // 返回的页面数
});
},
},
onReachBottom() {
// if(this.currentTabIndex==0){
// }else{
// }
}
};
</script>
<style lang="scss">
@import '@/static/css/common.scss';
page {
// background: #f8f8f8;
}
.saveBtn{
width: 110upx;
height: 70upx;
font-size: 30upx;
line-height: 70upx;
text-align: center;
color: #fff;
background: linear-gradient( 90deg, #50CBA1 0%, #06AEA6 100%), #C1EFEA;
border-radius: 12px;
position: absolute;
top: 200upx;right: 40upx;
}
.main {
position: absolute;
top: 280upx;
width: 100%;
z-index: 10;
.tab-boxs {
width: 25%;
// min-height: 80vh;
position: absolute;
top: 0;
left: 0;
padding-top: 50upx;
.tab-item {
height: 100upx;
width: 100%;
font-size: 30upx;
margin: 40upx 0;
display: flex;
font-size: 30upx;
justify-content: center;
align-items: center;
}
.active {
background-color: #DFE7F5;
color: #333;
border-top-right-radius: 100upx;
border-bottom-right-radius: 100upx;
font-weight: bold;
}
.activeLine{
background: linear-gradient( 90deg, #50CBA1 0%, #06AEA6 100%), #5685F2;
border-radius: 20upx;
margin-right: 10upx;
// float: left;
width: 10upx;
height: 30upx;
}
}
.list-box {
width: 70%;
min-height: 80vh;;
margin-top: 20upx;
background: #fff;
border-radius: 20upx;
position: absolute;
padding: 20upx;
padding-top: 40upx;
top: 0;
right: 20upx;
.detail{
// height: 400upx;
}
}
}
#addbtn {
height: 120upx;
background-color: #ffffff;
padding: 30upx;
border-radius: 30upx;
color: #333333;
border-bottom: 0.033333rem solid #eee;
align-items: center;
position: relative;
margin-top: 20upx;
}
.addbtn view text:nth-child(1) {
font-size: 32upx;
margin-left: 220upx;
color: #00c277;
}
.addbtn view text:nth-child(2) {
font-size: 32upx;
margin-left: 180upx;
color: #00c277;
}
.tips {
font-size: 22upx;
// margin-left: 80upx;
margin-top: 20upx;
}
uni-radio .uni-radio-input {
-webkit-appearance: none;
appearance: none;
margin-right: 5px;
outline: 0;
border: 1px solid #d1d1d1;
background-color: #fff;
border-radius: 50%;
width: 18px!important;
height: 18px!important;
position: relative;
}
</style>