Blame view

README.md 10.5 KB
f248ca05   Zhang Zhuo   初始化版本 -张卓
1
2
3
4
5
6
  #### React 17版本以上的组件封装
  
  ##### flv播放器封装
  
  介绍:支持大屏适配宽度高度百分百,支持视频切换。
  
d47ac30f   Zhang Zhuo   更新组件区域选择 -张卓
7
  解释:只需要传入不同的videoUrl,切换做了处理直接改变videoUrl即可
f248ca05   Zhang Zhuo   初始化版本 -张卓
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  
  使用:
  
  ```react
  import {FlvCom} from "zzreact"
  export default class App extends Component {
      constructor() {
          super();
          this.state = {
              vidoeUrl: ""
          }
      }
      render() {
          let {vidoeUrl} = this.state
          return <FlvCom vidoeUrl={vidoeUrl}></FlvCom>
      }
  }
  ```
  
  ##### time时间组件封装
  
  介绍:用来大屏展示时间用
  
  解释:可以加入className来自行改变样式
  
  使用:
  
  ```react
  import {Timer} from "zzreact"
  
  export default class App extends Component {
      render() {//通过下面的className写在css中样式就会生效
          //type可以不传默认YYYY-MM-DD HH:mm:ss
          //也可以改变,规则和moment.js中format的规则一致
          return (<div>
              <Timer className="timerComCssss" type="YYYY-MM-DD HH:mm:ss"></Timer>
              <Timer className="timerComCssss"></Timer>
          </div>)
      }
  }
  ```
  
d47ac30f   Zhang Zhuo   更新组件区域选择 -张卓
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  ##### 图片请求base64地址组件
  
  介绍:用来请求加密地址用的,支持切换。
  
  解释:传入请求地址和图片的静态路径,切换做了处理直接改变imgUrl即可
  
  使用:
  
  ```react
  import {ImgCom} from "zzreact"
  //httpImg是必穿参数
  export default class App extends Component {//默认图片样式宽度100%高度自适应
      constructor(){
          super();
          this.state = {
              imgUrl:"C:/*****"
          }
      }
      render() {
          return (<ImgCom httpImg="http://***"  imgUrl={imgUrl}></ImgCom>)
      }
  }
  ```
  
  ##### 区域选择组件封装
  
  介绍:用来在视频上描绘区域
  
  解释:可以设置模式点击模式和鼠标移动模式,支持移动端手指触摸移动。支持适配百分比会获取父元素的宽高来渲染画布的大小,如果父元素没有默认宽高是100px
  
76d17fa3   Zhang Zhuo   更新bug -张卓
80
81
  ![点的顺序说明](http://182.92.117.176:8081/shixun/img/zbsx.png)
  
d47ac30f   Zhang Zhuo   更新组件区域选择 -张卓
82
83
84
85
86
87
88
89
90
91
92
93
  使用:
  
  ```react
  import {AreaSelete} from "zzreact"
  export default class App extends Component {//默认图片样式宽度100%高度自适应
      constructor(){
          super();
          this.state = {
              serviceData:[[20, 15], [20, 80], [100, 15]]
          }
      }
      change(val){//点发生改变的回调函数  只要点击点在松开就会触发不会判断只有位置移动了才触发可以自行判断
76d17fa3   Zhang Zhuo   更新bug -张卓
94
          console.log(val)  //注:当添加了disabled=”true“没有此回调函数
d47ac30f   Zhang Zhuo   更新组件区域选择 -张卓
95
      }
5290cb53   Zhang Zhuo   更新第一版本 -张卓
96
97
98
      wenziChange(val){//这个是文字发生变化的然后返回一个新的值
          console.log(val)  //注:当添加了disabled=”true“没有此回调函数
      }
d47ac30f   Zhang Zhuo   更新组件区域选择 -张卓
99
100
      render() {
          return (<div style={{width:"81.2%",height:"80%"}}>
5290cb53   Zhang Zhuo   更新第一版本 -张卓
101
                      <AreaSelete serviceData={} change={(val)=>this.change(val)} wenziChange={(val)=>this.wenziChange(val)}></AreaSelete>
d47ac30f   Zhang Zhuo   更新组件区域选择 -张卓
102
103
104
105
106
107
108
109
110
111
                  </div>)
      }
  }
  ```
  
  支持传的参数:
  
  ```react
  //如果一下参数不添加就是默认参数 
  <AreaSelete
96108619   Zhang Zhuo   更新添加文字功能 -张卓
112
113
114
115
116
117
118
119
       mode=""						 //两种模式1.默认空为鼠标移动;2.click是点击模式
       circleRadius="10"       		 //点击圆的半径
       circleBorderWidth="4"      	 //圆边框的宽度
       circleBorderColor="#28B1D9"     //圆边框的颜色
       circleInColor="#28B1D9"		 //圆区域的颜色
       circleSelectColor="#FFF"	 	 //圆选中的颜色
       lineColor="#28B1D9"			 //线的颜色
       lineWidth="2"			 		 //线的宽度
d47ac30f   Zhang Zhuo   更新组件区域选择 -张卓
120
       areaColor="rgba(40, 177, 217, 0.2)"	//选中区域的颜色支持rgba
96108619   Zhang Zhuo   更新添加文字功能 -张卓
121
       disabled="true"                //默认是false如果是true就是不可滑动
76d17fa3   Zhang Zhuo   更新bug -张卓
122
123
124
125
126
       title= ""		  //文字的内容填写就有 \n是换行 添加这个属性的时候注意要 {"sdf\ndsd"}不然没效果
       titleColor="#000"	   //文字的颜色  默认黑色
       titleFont="14px bold 黑体"  //文字的字体
       titleLineHeight=""			//文字的行高  默认和文字行字体大小一样
       position={[10,10]}      //文字的位置0是x  y是一 如果不设置:里面是判断x最大的y最小的值来进行判断
5290cb53   Zhang Zhuo   更新第一版本 -张卓
127
128
129
130
131
132
       titleBackgroundColor= ""//字的背景颜色支持rgba
       titlePadding= "10px"   //文字的padding
       titleTextAlign= "center"  //文字居中或者左对齐,只支持在disabled为false的时候
       titleWidth= 100  //字底下背景的宽度
       titleFillColor= ""//字底下背景的颜色
       inputStyle={width:"20px"}//这里是添加input的自定义样式(根据js填写就行)
76d17fa3   Zhang Zhuo   更新bug -张卓
133
  ></AreaSelete>
d47ac30f   Zhang Zhuo   更新组件区域选择 -张卓
134
135
  ```
  
e2460342   Zhang Zhuo   更改 -张卓
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
  ##### 区域多功能封装
  
  介绍:支持多边形和矩形模式
  
  解释:多边形当绘制完成时点击鼠标右键即可完成就不在绘制,可以进行随意拽动,也可以自行扩展成动态添加多个矩形或者多边形
  
  使用:
  
  ```react
  import {FunAreaSelect} from "zzreact"
  export default class App extends Component {
      change(val){//点位画好就会返回数组,如果是多边形点击右键的时候会返回数组,当数组变化的时候会返回
          //如果是矩形当拉出框的时候就会发生变化返回数组
          //mode不些默认是多边形
          console.log(val)  //注:当添加了disabled=”true“没有此回调函数
      }
5290cb53   Zhang Zhuo   更新第一版本 -张卓
152
153
154
      wenziChange(val){//文字发生变化的时候进行改变
          console.log(val)  //注:当添加了disabled=”true“没有此回调函数
      }
e2460342   Zhang Zhuo   更改 -张卓
155
156
      render() {
          return (<div style={{width:"81.2%",height:"80%"}}>
5290cb53   Zhang Zhuo   更新第一版本 -张卓
157
                      <FunAreaSelect wenziChange={(val)=>this.wenziChange(val)} mode="react" change={(val) => this.change(val)}></FunAreaSelect>
e2460342   Zhang Zhuo   更改 -张卓
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
                  </div>)
      }
  }
  ```
  
  支持传的参数:
  
  ```react
  //如果一下参数不添加就是默认参数 
  <FunAreaSelect
       mode="polygon"					//两种模式1.多边形;2.react是矩形
       circleRadius="10"       		 //点击圆的半径
       circleBorderWidth="4"      	 //圆边框的宽度
       circleBorderColor="#28B1D9"     //圆边框的颜色
       circleInColor="#28B1D9"		 //圆区域的颜色
       circleSelectColor="#FFF"	 	 //圆选中的颜色
       lineColor="#28B1D9"			 //线的颜色
       lineWidth="2"			 		 //线的宽度
       areaColor="rgba(40, 177, 217, 0.2)"	//选中区域的颜色支持rgba
       disabled="true"                //默认是false如果是true就是不可滑动
       title= ""		  //文字的内容填写就有 \n是换行 添加这个属性的时候注意要 {"sdf\ndsd"}不然没效果
       titleColor="#000"	   //文字的颜色  默认黑色
       titleFont="14px bold 黑体"  //文字的字体
       titleLineHeight=""			//文字的行高  默认和文字行字体大小一样
       position={[10,10]}      //文字的位置0是x  y是一 如果不设置:里面是判断x最大的y最小的值来进行判断
5290cb53   Zhang Zhuo   更新第一版本 -张卓
183
184
185
186
187
       titleBackgroundColor= ""//字的背景颜色支持rgba
       titlePadding= "10px"   //文字的padding
       titleTextAlign= "center"  //文字居中或者左对齐,只支持在disabled为false的时候
       titleWidth= 100  //字底下背景的宽度
       titleFillColor= ""//字底下背景的颜色
e2460342   Zhang Zhuo   更改 -张卓
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
  ></FunAreaSelect>
  ```
  
  ##### 升级版区域选择
  
  介绍:继承选区多功能的基础上进行封装,拥有按钮可以自定义样式
  
  解释:如果觉的不好用也可以自行封装,用里ref可以直接调用里面的方法
  
  (注意:如果你不自己封装就不用看这个)
  
  this.refs[这里是帮定的ref].myRef可以取出canvas中的元素可以打印出来看下
  
  this.refs[这里是帮定的ref].myRef.selectBox(x,y)这个方法是判断点击是否点击到点上
  
  this.refs[这里是帮定的ref].isNull()这个方法是判断你的画布是否为空用于你添加的时候看看是否允许你添加
  
  使用:
  
  ```react
  import {FunAreaSelectPlus} from "zzreact"
  export default class App extends Component {
42886855   Zhang Zhuo   更改保存下 -张卓
210
211
212
213
214
215
216
217
218
219
220
221
222
223
   	constructor() {
          super();
          this.state = {
              list: []//可以设置初始值 传的数据要是这个格式    
              //{id:new Date().getTime()+""+item.id,
            	//mode:"react",
            	//serviceData:item.coordinate}
          }
      }
      changeSelect(val) {//修改完的list传到父组件中
          this.setState({
              list:val
          })
      }
5290cb53   Zhang Zhuo   更新第一版本 -张卓
224
225
226
227
228
229
230
231
232
      wenziChange(val,index){//修改文字后放入里面  第一个值是修改后的值,后面的index是修改list中的索引
          var {list} = this.state
          list[index].title = val 
          this.setState({
              list:list
          },()=>{
              console.log(this.state.list)
          })
      }
42886855   Zhang Zhuo   更改保存下 -张卓
233
234
235
236
237
238
239
      delete(selectIndex){//删除的id会返回给父组件
          let {list} = this.state
          list = list.filter(item=>item.id!==selectIndex)
          this.setState({list:list})
      }
      err(falg,msg){//当画布为空的时候,绘画进行行中的时候,会返回状态和错误的消息
          console.log(falg,msg)
e2460342   Zhang Zhuo   更改 -张卓
240
241
242
      }
      render() {
          return (<div style={{width:"81.2%",height:"80%"}}>
5290cb53   Zhang Zhuo   更新第一版本 -张卓
243
244
245
                      <FunAreaSelectPlus list={list}
                          wenziChange={(val,index) => { this.wenziChange(val,index)}}
                          change={(val) => { this.changeSelect(val)}} delete={(selectIndex)=>{this.delete(selectIndex)}} err={(falg,msg)=>{this.err(falg,msg)}}></FunAreaSelectPlus>
e2460342   Zhang Zhuo   更改 -张卓
246
247
248
249
250
                  </div>)
      }
  }
  ```
  
42886855   Zhang Zhuo   更改保存下 -张卓
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
  支持传的参数:
  
  ```react
  //如果一下参数不添加就是默认参数 
  <FunAreaSelectPlus
       circleRadius="10"       		 //点击圆的半径
       circleBorderWidth="4"      	 //圆边框的宽度
       circleBorderColor="#28B1D9"     //圆边框的颜色
       circleInColor="#28B1D9"		 //圆区域的颜色
       circleSelectColor="#FFF"	 	 //圆选中的颜色
       lineColor="#28B1D9"			 //线的颜色
       lineWidth="2"			 		 //线的宽度
       areaColor="rgba(40, 177, 217, 0.2)"	//选中区域的颜色支持rgba
       disabled="true"                //默认是false如果是true就是不可滑动
       title= ""		  //文字的内容填写就有 \n是换行 添加这个属性的时候注意要 {"sdf\ndsd"}不然没效果
       titleColor="#000"	   //文字的颜色  默认黑色
       titleFont="14px bold 黑体"  //文字的字体
       titleLineHeight=""			//文字的行高  默认和文字行字体大小一样
       position={[10,10]}      //文字的位置0是x  y是一 如果不设置:里面是判断x最大的y最小的值来进行判断
5290cb53   Zhang Zhuo   更新第一版本 -张卓
270
271
272
273
274
       titleBackgroundColor= ""//字的背景颜色支持rgba
       titlePadding= "10px"   //文字的padding
       titleTextAlign= "center"  //文字居中或者左对齐,只支持在disabled为false的时候
       titleWidth= 100  //字底下背景的宽度
       titleFillColor= ""//字底下背景的颜色
42886855   Zhang Zhuo   更改保存下 -张卓
275
276
  ></FunAreaSelectPlus>
  ```