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

313 lines
7.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>