123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- import { connect } from 'herculex';
- import { getFloorList } from '../utils';
- Component(connect({
- mapStateToProps: {
- passport: state => state.$global.passport
- }
- })({
- props: {
- componentData: {}
- },
- data: {
- activatedRoomStep: 1,
- activatedTreeIndex: 0,
- focus: false,
- roomSteps: [{
- active: true,
- content: ''
- }, {
- active: false,
- content: ''
- }],
- trees: [],
- currentTree: []
- },
- didMount() {
- // 获取当前页面的参数信息
- const query = getCurrentPages().pop().options || {};
- this.init(query);
- },
- methods: {
- async init(query) {
- const params = {
- sceneCode: query.sceneCode,
- communityCode: query.communityCode,
- communityName: query.communityName
- };
- const data = await getFloorList(params);
- const roomSteps = [{
- active: true,
- content: ''
- }, {
- active: false,
- content: ''
- }];
- data[0].type = 'check';
- roomSteps[0].content = data[0].name;
- this.setData({
- trees: data,
- currentTree: data,
- roomSteps
- });
- },
- onRoomSelectorStepClick(step, index) {
- const {
- trees,
- activatedRoomStep,
- roomSteps
- } = this.data;
- if (index >= activatedRoomStep - 1) return;
- const currentTree = index > 0 ? trees[index - 1].children : trees;
- const defaultRoom = {
- active: false,
- content: ''
- };
- const _roomSteps = roomSteps.map((item, i) => {
- if (i > index) item = defaultRoom;
- return item;
- });
- _roomSteps[index] = step;
- const _currentTree = currentTree.map(item => {
- item.type = step.content && item.name === step.content ? 'check' : 'none';
- return item;
- });
- this.setData({
- activatedRoomStep: index + 1,
- currentTree: _currentTree,
- roomSteps: _roomSteps
- });
- },
- onTreeClick(tree) {
- const defaultRoom = {
- active: false,
- content: ''
- };
- let {
- currentTree,
- activatedRoomStep,
- // eslint-disable-next-line prefer-const
- roomSteps
- } = this.data;
- roomSteps[activatedRoomStep - 1].content = tree.name;
- if (tree.children) {
- roomSteps[activatedRoomStep] = defaultRoom;
- activatedRoomStep += 1;
- currentTree = tree.children;
- }
- const typeTree = currentTree.map(item => {
- const _ = roomSteps[activatedRoomStep - 1].content;
- item.type = _ && item.name === _ ? 'check' : 'none';
- return item;
- });
- this.setData({
- currentTree: [...typeTree],
- activatedRoomStep,
- roomSteps
- });
- if (!tree.children) {
- let roomInfo = '';
- roomSteps.forEach(item => {
- roomInfo += item.content;
- });
- const newPassport = { ...this.data.passport,
- buildingName: roomSteps[0].content,
- unitName: roomSteps[1].content,
- houseName: roomSteps[2].content,
- roomInfo
- };
- this.commit('$global:updateState', {
- passport: newPassport
- });
- my.navigateBack();
- }
- }
- }
- }));
|