no message
							parent
							
								
									b3bbb122fd
								
							
						
					
					
						commit
						0e275477ce
					
				| 
						 | 
				
			
			@ -37,6 +37,7 @@
 | 
			
		|||
            :src="img_kong"
 | 
			
		||||
          />
 | 
			
		||||
        </template>
 | 
			
		||||
        <span  v-if="item.type==0">{{item.code}}</span>
 | 
			
		||||
      </el-popover>
 | 
			
		||||
 | 
			
		||||
      <el-popover
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,282 @@
 | 
			
		|||
<template>
 | 
			
		||||
 | 
			
		||||
  <div ref="kuwei" v-resize="resizeHandler">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <div class="title" plain @click="open2">
 | 
			
		||||
      {{layoutList.data.movieName}}
 | 
			
		||||
    </div>
 | 
			
		||||
    <div v-for="(item, index)  in layoutList.data.seatList"
 | 
			
		||||
         :key="item.id"
 | 
			
		||||
         :style="{
 | 
			
		||||
          position:'absolute',
 | 
			
		||||
          background:'#e6e6e6',
 | 
			
		||||
          height:propValue.base.boxHeight  + 'px',
 | 
			
		||||
          width: propValue.base.boxWidth + 'px',
 | 
			
		||||
          left: (item.gRow) * propValue.base.boxHeightGap + 'px',
 | 
			
		||||
          top: (item.gCol) * propValue.base.boxWidithGap + 'px',
 | 
			
		||||
        }"
 | 
			
		||||
    >
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      <el-popover
 | 
			
		||||
        v-if="item.type==0"
 | 
			
		||||
        placement="top-start"
 | 
			
		||||
        trigger="hover"
 | 
			
		||||
        :content="item.id"
 | 
			
		||||
        width="160px"
 | 
			
		||||
      >
 | 
			
		||||
        <template #reference>
 | 
			
		||||
          <el-image
 | 
			
		||||
            class="seatImg0Class"
 | 
			
		||||
            :seatId="item.id"
 | 
			
		||||
            :seatIndex="index"
 | 
			
		||||
            :src="img_kong"
 | 
			
		||||
          />
 | 
			
		||||
 | 
			
		||||
        </template>
 | 
			
		||||
 | 
			
		||||
      </el-popover>
 | 
			
		||||
 | 
			
		||||
      <el-popover
 | 
			
		||||
        v-if="item.type==1"
 | 
			
		||||
        placement="top-start"
 | 
			
		||||
        :title="item.code"
 | 
			
		||||
        trigger="hover"
 | 
			
		||||
        :content="item.id"
 | 
			
		||||
        width="160px"
 | 
			
		||||
      >
 | 
			
		||||
        <template #reference>
 | 
			
		||||
          <el-image
 | 
			
		||||
            class="seatImg1Class"
 | 
			
		||||
            :seatId="item.id"
 | 
			
		||||
            :seatIndex="index"
 | 
			
		||||
            :src="img_130"
 | 
			
		||||
          />
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-popover>
 | 
			
		||||
 | 
			
		||||
      <el-popover
 | 
			
		||||
        v-if="item.type==2"
 | 
			
		||||
        placement="top-start"
 | 
			
		||||
        trigger="hover"
 | 
			
		||||
        :content="item.id"
 | 
			
		||||
        width="160px"
 | 
			
		||||
      >
 | 
			
		||||
        <template #reference>
 | 
			
		||||
          <el-image
 | 
			
		||||
            class="seatImg2Class"
 | 
			
		||||
            :seatId="item.id"
 | 
			
		||||
            :seatIndex="index"
 | 
			
		||||
            :src="img_jinyong"
 | 
			
		||||
          />
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-popover>
 | 
			
		||||
 | 
			
		||||
      <el-popover
 | 
			
		||||
        v-if="item.type==3"
 | 
			
		||||
        placement="top-start"
 | 
			
		||||
        trigger="hover"
 | 
			
		||||
        :content="item.id"
 | 
			
		||||
        width="160px"
 | 
			
		||||
      >
 | 
			
		||||
        <template #reference>
 | 
			
		||||
          <el-image
 | 
			
		||||
            class="seatImg3Class"
 | 
			
		||||
            :seatId="item.id"
 | 
			
		||||
            :seatIndex="index"
 | 
			
		||||
            :src="img_130"
 | 
			
		||||
          />
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-popover>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div v-for="(item, index)  in layoutList.data.seatList"
 | 
			
		||||
         :key="item.id"
 | 
			
		||||
         :style="{
 | 
			
		||||
          position:'absolute',
 | 
			
		||||
          background:'#e6e6e600',
 | 
			
		||||
          height:propValue.base.boxHeight  + 'px',
 | 
			
		||||
          fontSize:48+'px',
 | 
			
		||||
          color:'#ff0000',
 | 
			
		||||
          width: propValue.base.text1Width + 'px',
 | 
			
		||||
          left: (item.gRow) * propValue.base.boxHeightGap + 'px',
 | 
			
		||||
          top: (item.gCol) * propValue.base.boxWidithGap + propValue.base.text1Height+ 'px',
 | 
			
		||||
        }"
 | 
			
		||||
    >
 | 
			
		||||
      {{item.code}}
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div v-for="(item, index)  in layoutList.data.seatList"
 | 
			
		||||
         :key="item.id"
 | 
			
		||||
         :style="{
 | 
			
		||||
          position:'absolute',
 | 
			
		||||
          background:'#e6e6e600',
 | 
			
		||||
          height:propValue.base.boxHeight  + 'px',
 | 
			
		||||
          fontSize:88+'px',
 | 
			
		||||
          color:'black',
 | 
			
		||||
          width: propValue.base.text2Width + 'px',
 | 
			
		||||
          left: (item.gRow) * propValue.base.boxHeightGap + 'px',
 | 
			
		||||
          top: (item.gCol) * propValue.base.boxWidithGap + propValue.base.text2Height+ 'px',
 | 
			
		||||
        }"
 | 
			
		||||
    >
 | 
			
		||||
      {{item.jt}}
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { useData, useEventBus, useProp } from "open-data-v/base";
 | 
			
		||||
import { onMounted, reactive, ref } from "vue";
 | 
			
		||||
 | 
			
		||||
import img_130 from "@/assets/kuwei/130.png";
 | 
			
		||||
import img_jinyong from "@/assets/kuwei/132.png";
 | 
			
		||||
import img_kong from "@/assets/kuwei/131.png";
 | 
			
		||||
import type KuWeiComponent from './config'
 | 
			
		||||
import type { KuWeiType } from './type'
 | 
			
		||||
import { ElNotification } from 'element-plus'
 | 
			
		||||
const props = defineProps<{
 | 
			
		||||
  component: KuWeiComponent
 | 
			
		||||
}>()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 const getAssetsFile = (url: string) => {
 | 
			
		||||
  return new URL(`@/assets/kuwei/${url}`, import.meta.url).href
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const { propValue } = useProp<KuWeiType>(props.component)
 | 
			
		||||
var layoutList = reactive({
 | 
			
		||||
  data:{
 | 
			
		||||
    mg_top: null,
 | 
			
		||||
    mg_left: null,
 | 
			
		||||
    movieName: null,
 | 
			
		||||
    seatList: []
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
const lineHeight = ref<string>('20px')
 | 
			
		||||
const resizeHandler = (entry: ResizeObserverEntry) => {
 | 
			
		||||
  const { height } = entry.contentRect
 | 
			
		||||
  lineHeight.value = `${height}px`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const open2 = () => {
 | 
			
		||||
  console.log("123123132")
 | 
			
		||||
  ElNotification({
 | 
			
		||||
    title: 'Warning',
 | 
			
		||||
    message: 'This is a warning message',
 | 
			
		||||
    type: 'warning',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const dataHandler = (event) => {
 | 
			
		||||
  if(!event.data){
 | 
			
		||||
    event.data=event;
 | 
			
		||||
  }
 | 
			
		||||
  layoutList.data =event.data
 | 
			
		||||
  // layoutList.height =event.data.height
 | 
			
		||||
  // layoutList.mg_top =event.data.mg_top
 | 
			
		||||
  // layoutList.mg_left =event.data.mg_left
 | 
			
		||||
  // layoutList.positionDistin =event.data.positionDistin
 | 
			
		||||
  // layoutList.movieName =event.data.movieName
 | 
			
		||||
  // layoutList.seatList =event.data.seatList
 | 
			
		||||
  // console.log(layoutList.seatList.length);
 | 
			
		||||
  // layoutList.seatList=JSON.parse(JSON.stringify(event.data.seatList))
 | 
			
		||||
  //
 | 
			
		||||
  // layoutList=JSON.parse(JSON.stringify(layoutList))
 | 
			
		||||
}
 | 
			
		||||
onMounted(async () => {
 | 
			
		||||
 /* try {
 | 
			
		||||
    const queryParems = { tag: propValue.base.tag }
 | 
			
		||||
    console.log("queryParems"+ propValue.base.tag)
 | 
			
		||||
    console.log("url"+  propValue.base.url)
 | 
			
		||||
    const res = await http.get({ url: propValue.base.url, params: queryParems })
 | 
			
		||||
    console.log(res)
 | 
			
		||||
    dataHandler(res)
 | 
			
		||||
  } catch (error: any) {
 | 
			
		||||
    console.log("异常-----")
 | 
			
		||||
    console.log(error?.message)
 | 
			
		||||
  }*/
 | 
			
		||||
})
 | 
			
		||||
const dataChange = (resp: any, _?: string) => {
 | 
			
		||||
 | 
			
		||||
  if (!resp || !resp.afterData) {
 | 
			
		||||
    console.log("数据失败-----")
 | 
			
		||||
    return
 | 
			
		||||
  }
 | 
			
		||||
  if (resp.status === 'SUCCESS') {
 | 
			
		||||
    console.log(resp.afterData)
 | 
			
		||||
    dataHandler(resp.afterData)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
useData(props.component, dataChange)
 | 
			
		||||
useEventBus('globalData', dataHandler)
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="less" scoped>
 | 
			
		||||
span {
 | 
			
		||||
  pointer-events: none;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  line-height: v-bind(lineHeight);
 | 
			
		||||
}
 | 
			
		||||
.seatImg0Class {
 | 
			
		||||
  background: #A681E6;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  border-radius:3px;
 | 
			
		||||
  display:block;
 | 
			
		||||
}
 | 
			
		||||
.seatImg1Class {
 | 
			
		||||
  background: #35B45E;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  border-radius:3px;
 | 
			
		||||
}
 | 
			
		||||
.seatImg2Class {
 | 
			
		||||
  background-color:#E53240;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  border-radius:3px;
 | 
			
		||||
}
 | 
			
		||||
.seatImg3Class {
 | 
			
		||||
  background:#F29961;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  border-radius:3px;
 | 
			
		||||
}
 | 
			
		||||
.title {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 35px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  line-height: 80px;
 | 
			
		||||
  font-size: 78px;
 | 
			
		||||
  color: #A8F4FF;
 | 
			
		||||
  letter-spacing: 2px;
 | 
			
		||||
  font-style:normal;
 | 
			
		||||
  top:-180px;
 | 
			
		||||
  position:absolute;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
 | 
			
		||||
import { kuwei_item } from "./KuWeiIteam";
 | 
			
		||||
 | 
			
		||||
export interface kuwei_info {
 | 
			
		||||
  width?: number
 | 
			
		||||
  height?: number
 | 
			
		||||
  mg_top?: number
 | 
			
		||||
  mg_left?: number
 | 
			
		||||
  positionDistin?: number
 | 
			
		||||
  movieName?: string
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
import type { ComponentDataType } from 'open-data-v/base'
 | 
			
		||||
import type { CanvasStyleData } from 'open-data-v/designer'
 | 
			
		||||
 | 
			
		||||
export interface kuwei_item {
 | 
			
		||||
  id?: String
 | 
			
		||||
  gRow?: number
 | 
			
		||||
  gCol?: number
 | 
			
		||||
  type?: String
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,101 @@
 | 
			
		|||
import type { MetaContainerItem } from 'open-data-v/base'
 | 
			
		||||
import { ComponentGroup, CustomComponent, FormType } from 'open-data-v/base'
 | 
			
		||||
import { h } from 'vue'
 | 
			
		||||
 | 
			
		||||
export const componentName = 'KuWei2'
 | 
			
		||||
class SubTextComponent extends CustomComponent {
 | 
			
		||||
  constructor(id?: string, name?: string, icon?: string) {
 | 
			
		||||
    super({
 | 
			
		||||
      component: componentName,
 | 
			
		||||
      group: ComponentGroup.OTHER,
 | 
			
		||||
      name: name ? name : '库位图2',
 | 
			
		||||
      id,
 | 
			
		||||
      width: 100,
 | 
			
		||||
      height: 30,
 | 
			
		||||
      icon
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _prop: MetaContainerItem[] = [
 | 
			
		||||
    {
 | 
			
		||||
      label: '基础配置',
 | 
			
		||||
      prop: 'base',
 | 
			
		||||
      children: [
 | 
			
		||||
        {
 | 
			
		||||
          prop: 'boxWidth',
 | 
			
		||||
          label: '盒子宽度',
 | 
			
		||||
          type: FormType.NUMBER,
 | 
			
		||||
          props: {
 | 
			
		||||
            defaultValue: 20,
 | 
			
		||||
            suffix: () => h('span', {}, 'px')
 | 
			
		||||
          }
 | 
			
		||||
        },{
 | 
			
		||||
          prop: 'boxHeight',
 | 
			
		||||
          label: '盒子高度度',
 | 
			
		||||
          type: FormType.NUMBER,
 | 
			
		||||
          props: {
 | 
			
		||||
            defaultValue: 20,
 | 
			
		||||
            suffix: () => h('span', {}, 'px')
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          prop: 'boxWidithGap',
 | 
			
		||||
          label: '盒子宽间距',
 | 
			
		||||
          type: FormType.NUMBER,
 | 
			
		||||
          props: {
 | 
			
		||||
            defaultValue: 20,
 | 
			
		||||
            suffix: () => h('span', {}, 'px')
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          prop: 'boxHeightGap',
 | 
			
		||||
          label: '盒子高间距',
 | 
			
		||||
          type: FormType.NUMBER,
 | 
			
		||||
          props: {
 | 
			
		||||
            defaultValue: 20,
 | 
			
		||||
            suffix: () => h('span', {}, 'px')
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          prop: 'text1Width',
 | 
			
		||||
          label: '文本1宽度',
 | 
			
		||||
          type: FormType.NUMBER,
 | 
			
		||||
          props: {
 | 
			
		||||
            defaultValue: 20,
 | 
			
		||||
            suffix: () => h('span', {}, 'px')
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          prop: 'text1Height',
 | 
			
		||||
          label: '文本1于盒子高度间距',
 | 
			
		||||
          type: FormType.NUMBER,
 | 
			
		||||
          props: {
 | 
			
		||||
            defaultValue: 20,
 | 
			
		||||
            suffix: () => h('span', {}, 'px')
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          prop: 'text2Width',
 | 
			
		||||
          label: '文本2宽度',
 | 
			
		||||
          type: FormType.NUMBER,
 | 
			
		||||
          props: {
 | 
			
		||||
            defaultValue: 20,
 | 
			
		||||
            suffix: () => h('span', {}, 'px')
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          prop: 'text2Height',
 | 
			
		||||
          label: '文本2于盒子高度间距',
 | 
			
		||||
          type: FormType.NUMBER,
 | 
			
		||||
          props: {
 | 
			
		||||
            defaultValue: 20,
 | 
			
		||||
            suffix: () => h('span', {}, 'px')
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default SubTextComponent
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
import SubTextComponent, { componentName } from './config'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  componentName,
 | 
			
		||||
  component: () => import('./KuWei.vue'),
 | 
			
		||||
  config: SubTextComponent
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
export interface KuWeiType {
 | 
			
		||||
  base: {
 | 
			
		||||
    boxWidth: string
 | 
			
		||||
    boxHeight: string
 | 
			
		||||
    boxWidithGap: string
 | 
			
		||||
    boxHeightGap: string
 | 
			
		||||
    text1Width:string
 | 
			
		||||
    text1Height:string
 | 
			
		||||
    text2Width:string
 | 
			
		||||
    text2Height:string
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue