123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 |
- import { _decorator, Component, instantiate, Label, Node, Prefab, ScrollView, UITransform, Vec3 } from 'cc';
- import { edit_scene } from './edit_scene';
- import { scene_select_list } from './scene_select_list';
- import { attributes_data, scene_item_data } from '../../data/data';
- import { config } from '../config';
- import { scroll_scene } from './scroll_scene';
- import { tools } from '../tools';
- import { cur_edit_scene } from './cur_edit_scene';
- import { widget_item } from './widget_item';
- import { ClientEvent } from '../clientEvent';
- const { ccclass, property } = _decorator;
- @ccclass('base_view')
- export class base_view extends Component {
- @property(ScrollView) scroll_view:ScrollView = null;
- @property(Node) btn_left:Node = null;
- @property(Node) btn_right:Node = null;
- @property(Node) btn_up:Node = null;
- @property(Node) btn_down:Node = null;
- @property(Node) content:Node = null;
- @property(Node) temp_content:Node = null;
- @property(Node) btn_add_page:Node = null;
- @property(Node) btn_delete_page:Node = null;
- @property(Node) lab_cur_page:Node = null;
- @property(Prefab) widget_prefab:Prefab = null;
- private m_edit_scene:edit_scene = null;
- private m_data:scene_item_data = null;
- private m_cur_page:number = 0;
- public initView(_edit_scene:edit_scene){
- this.m_edit_scene = _edit_scene;
- this.btn_add_page.on(Node.EventType.TOUCH_END,()=>{
- this.add_page()
- })
- this.btn_delete_page.on(Node.EventType.TOUCH_END,()=>{
- this.delete_page()
- })
- let data = this.m_edit_scene.getCurSelectScene()
- if(data!=null){
- this.m_data = data;
- this.init()
- }
- this.btn_down.on(Node.EventType.TOUCH_END,()=>{
- this.next_page()
- })
- this.btn_up.on(Node.EventType.TOUCH_END,()=>{
- this.up_page()
- })
- this.btn_left.on(Node.EventType.TOUCH_END,()=>{
- this.up_page()
- })
- this.btn_right.on(Node.EventType.TOUCH_END,()=>{
- this.next_page()
- })
- this.updatePageNumber()
- ClientEvent.on(config.Event.ChangeSelectPage,this.ChangeSelectPage,this)
- }
- protected onDestroy(): void {
- ClientEvent.off(config.Event.ChangeSelectPage,this.ChangeSelectPage,this)
- }
- ChangeSelectPage(page:number){
- if(page!=this.m_cur_page){
- this.m_cur_page = page
- this.updatePageNumber()
- }
- }
- public getAtt(){
- }
- on_add_page(data:scene_item_data){
- this.m_data.page_list.push(data)
- this.addScenePage(data)
- this.updatePageNumber()
- }
- on_delete_page(){
- let view = this.getCurPageView()
- if(view!=null){
- view.removeFromParent()
- }
- this.updatePageNumber()
- this.up_page()
- }
- delete_page(){
- if(this.m_data.page_list.length<=0){
- return tools.showToast("当前无场景页删除!")
- }
- tools.show_dialog("是否确定删除当前的场景页",()=>{
- this.m_data.page_list.splice(this.m_cur_page,1)
- this.on_delete_page()
- })
-
- }
- add_page(){
- tools.add_scene_page(this.on_add_page.bind(this))
- }
- init(){
- if(this.m_data.page_list.length<=0||this.m_data.type===config.Scene_Type_List.single_screen){
- this.hideAllBtn()
- }else{
-
- }
- // console.log("this.m_data",this.m_data)
- if(this.m_data.type===config.Scene_Type_List.single_screen){
- this.btn_add_page.active = false;
- this.btn_delete_page.active = false;
- this.lab_cur_page.active = false;
- this.m_data.is_full_screen = true;
- if(this.m_data.page_list.length<=0){
- let n_s = new scene_item_data("",config.Scene_Type_List.single_screen,true)
- this.m_data.page_list.push(n_s)
- }
- this.addScenePage(this.m_data.page_list[0])
- }else{
- this.hideAllBtn()
- this.btn_add_page.active = true;
- this.btn_delete_page.active = true;
- this.lab_cur_page.active = true;
- if(this.m_data.type===config.Scene_Type_List.many_screen_switch_up_down){
- this.btn_down.active = true;
- this.btn_up.active = true;
- }else{
- this.btn_left.active = true;
- this.btn_right.active = true;
- }
- for (let index = 0; index < this.m_data.page_list.length; index++) {
- const data = this.m_data.page_list[index];
- this.addScenePage(data)
- }
- }
- }
- initWidgets(scene:scroll_scene,data:scene_item_data){
- for (let index = 0; index < data.page_widget_list.length; index++) {
- const widget_data = data.page_widget_list[index];
- let node = instantiate(this.widget_prefab)
- node.getComponent(widget_item).initWidgetByScene(widget_data,widget_data.att)
- scene.addWidget(node)
- }
- }
- up_page(){
- if(this.m_data.page_list.length<=0){
- tools.showToast("当前没有分页")
- return;
- }
- if((this.m_cur_page-1)<0){
- this.m_cur_page = this.m_data.page_list.length-1;
- }else{
- this.m_cur_page -=1;
- }
- this.updatePageNumber()
- }
- next_page(){
- if(this.m_data.page_list.length<=0){
- tools.showToast("当前没有分页")
- return;
- }
- if((this.m_cur_page+1)>=this.m_data.page_list.length){
- this.m_cur_page = 0;
- }else{
- this.m_cur_page +=1;
- }
- this.updatePageNumber()
- }
- public cur_page(){
- return this.m_cur_page
- }
- getCurPageData(){
- if(this.m_data.page_list.length<=0){
- return null;
- }
- return this.m_data.page_list[this.m_cur_page]
- }
- getCurPageView(){
- if(this.content.children.length<=0){
- return null;
- }
- return this.content.children[this.m_cur_page]
- }
-
- updatePageNumber(){
- this.lab_cur_page.getComponent(Label).string = `第${this.m_data.page_list.length>0?(this.m_cur_page+1):this.m_cur_page}页`
- this.updatePageView()
- this.m_edit_scene.cur_edit_scene_node.getComponent(cur_edit_scene).onClickScene()
- if(this.m_data.type == config.Scene_Type_List.many_screen_switch_up_down) {
- if(this.m_data.page_list.length == 0) {
- this.btn_up.active = true
- this.btn_down.active = true
- return
- }
- this.btn_up.active = true
- this.btn_down.active = true
- if(this.m_cur_page==0) {
- this.btn_up.active = false
- } else if(this.m_cur_page >= this.m_data.page_list.length - 1) {
- this.btn_down.active = false
- }
-
- } else if(this.m_data.type == config.Scene_Type_List.many_screen_switch_left_right) {
- if(this.m_data.page_list.length == 0) {
- this.btn_left.active = true
- this.btn_right.active = true
- return
- }
- this.btn_left.active = true
- this.btn_right.active = true
- if(this.m_cur_page==0) {
- this.btn_left.active = false
- } else if(this.m_cur_page >= this.m_data.page_list.length - 1) {
- this.btn_right.active = false
- }
- }
- }
- updatePageView(){
- for (let index = 0; index < this.content.children.length; index++) {
- const page_scene = this.content.children[index];
- if(this.m_cur_page===index){
- page_scene.active = true;
- }else{
- page_scene.active = false;
- }
- }
- // this.content.position = new Vec3(this.content.position.x - )
- }
- addScenePage(page_data:scene_item_data){
- let node:Node = null;
- if(page_data.is_full_screen){
- node = instantiate(this.temp_content);
- // if(page_data.page_list.length<=0){
- // let att = new attributes_data
- // page_data.page_list[0]
- // page_data.page_list[0].att.width = 1080;
- // page_data.page_list[0].att.height = 1920;
- // page_data.page_list[0].att.id = config.getNewId();
- // page_data.page_list[0].att.type = config.attributes_type.scene;
- // }
- if(page_data.att==null){
- page_data.att = new attributes_data
- page_data.att.width = 1080;
- page_data.att.height = 1920;
- page_data.att.id = config.getNewId();
- page_data.att.type = config.attributes_type.scene;
- }
- if(page_data.page_list[0]!=null){
- if(page_data.page_list[0].att===null){
- page_data.page_list[0].att = page_data.att;
- }
- // page_data.page_list[0] = page_data.att;
- }else{
- let n_scene_item = new scene_item_data(page_data.scene_diy_name,page_data.type,true);
- page_data.page_list.push(n_scene_item)
- page_data.page_list[0].att = page_data.att;
- }
- node.getComponent(scroll_scene).initFullView(page_data.att)
- node.parent = this.content;
- }else{
- node = instantiate(this.scroll_view.node);
- if(page_data.att==null){
- page_data.att = new attributes_data
- page_data.att.width = 1920;
- page_data.att.height = 1920;
- page_data.att.id = config.getNewId();
- page_data.att.type = config.attributes_type.scene;
- }
- node.getComponent(scroll_scene).initView(page_data.is_check_mask,page_data.att)
- node.parent = this.content;
- }
- node.getComponent(scroll_scene).setData(page_data)
- if(this.m_data.page_list.length>0){
- // let temp_data = this.m_data.page_list[this.m_cur_page];
- // console.log("page_data",page_data)
- this.initWidgets(node.getComponent(scroll_scene),page_data)
- }
- setTimeout(() => {
- this.m_edit_scene.cur_edit_scene_node.getComponent(cur_edit_scene).onClickScene()
- node.getComponent(scroll_scene).setCallBack(()=>{
- this.m_edit_scene.cur_edit_scene_node.getComponent(cur_edit_scene).onClickScene()
- })
- }, 0);
- }
- hideAllBtn(){
- this.btn_down.active = false;
- this.btn_up.active = false;
- this.btn_left.active = false;
- this.btn_right.active = false;
- }
- public getContenView(){
- }
- public getData():scene_item_data{
- return this.m_data;
- }
- }
|