## 相机组件使用说明

```
该组件仅用于拍照后返回图片，与业务不关联，目前最多一次可以拍10张图片
```

### 因为相机组件需要全屏展示，所以加载该组件需要在当前页面隐藏顶部导航栏，底部的TabBar
```
uni.hideTabBar()
```
### 然后加上自定义导航栏，通过切换状态takeStatus来显示和隐藏
```
<u-navbar v-if="!takeStatus" :is-back="false" :title-size="26" title-color="#000" title="我的"></u-navbar>
```

## API
### Props
| 属性名					| 类型			| 默认值	| 可选值								| 说明																	|
| :-:						| :-:			| :-:		| :-:									| :-:																	|
| upload	| Boolean	| true		| 		true/false			| 是否默认上传 true：会自动上传好图片并返回绝对路径 false: 只返回临时路径，需要在父组件做上传动作	|
| num	| Number	| 10		| 		1-10			| 拍照数量，只能传1-10的正整数	|
| currentItem	| Object	| -			| -						| 对应的规范数据，用于获取示意图和水印，以及保存图片所需的ID **格式见下文**	|

### currentItem 格式 

```json 
{
	_id: '', // 保存图片时需要
	system_id: '', // 获取水印列表需要
	images: [ // 拍照示意图
		'https://qn-static.banshouhui.com/live_mark.png',
		'https://qn-static.banshouhui.com/live_mark.png',
		'https://qn-static.banshouhui.com/live_mark.png'
	],
	main_point: [] // 拍照要求
	... // 列表其他字段也可传进来，可能会用到
}
```

### Events

|事件称名		|说明							|	返回值	|					
|:-:			|:-:							|	:-:	|
|@close	| 关闭相机或完成拍照的时候触发 		| 已拍照完成的图片数组 **格式见下文** |

```json 
{
	[
		{
			id: '',
			key: 'https: //identity/cert/20210507wefew.png', // 七牛绝对路径地址
			progress: 100, // 图片上传进度
			src: 'wxfile://tmp_2324.png' // 微信临时文件地址
		}
	]
}
```

## 组件用法

### 基础用法
```html
<u-navbar v-if="!takeStatus" :is-back="false" :title-size="26" title-color="#000" title="我的"></u-navbar>
<view @click="take">打开相机</view>
<take-photo v-if="takeStatus" :currentItem="testData" @close="closeTake"></take-photo>
```

```javascript
import takePhoto from '@/components/take/index.vue'
import baseFile from '@/components/upload/index' // upload为false时需加上 
export default {
	components: {
		'take-photo': takePhoto
	},
	mixins: [baseFile], // upload为false时需加上 
	data() {
		return {
			takeStatus: false,
			testData: {}
		}
	},
	methods:{
		// 打开相机
		take() {
			uni.hideTabBar() // 打开时隐藏TabBar
			this.takeStatus = true
		},
		// 拍照完成或关闭相机
		closeTake(images) {
			this.takeStatus = false
			
			// upload为false时处理
			const files = images.map(v => v.path)
			const value = await this.saveToTask(files)
			console.log("value", value)
		}
	}
}

```