This commit is contained in:
龚皓 2024-12-05 16:16:19 +08:00
parent 3e4e455dbe
commit 5c571280e3
1 changed files with 10 additions and 123 deletions

133
README.md
View File

@ -45,6 +45,7 @@ npm run build
> - qs:静态资源请求
> - vue:框架
> - vue-router:路由
> -
@ -384,72 +385,23 @@ await apiInstance.updateCamera(token, cameraId, cameraJson);
> 表单数据显示摄像idnamemode对应的规则显示对应的id,name,mode,schedule
>
> 其中摄像mode有ON和OFF两种状态规则中mode有On,OFF和schedule三中状态规则模式只有在schedule状态才会显示schedule中内容type
>
> schedule中type又分为每日daily和每周weekly两周状态其中dayily直接设置当日时间范围time_slotsweekly可选择周几week_day和对应当天的当日时间范围time_slots
>
> time_slots为两个数字对应当天开始时间和结束时间计算交互方式为选择时间点
>
> 几点几分然后计算这个时间总计有多少分钟例如1点10分对应数字为70
- 结果返回信息修改(用户提示信息)
```
public async updateRule(token: string | null = null, rules: RuleData[]): Promise<any[]> {
const results: any[] = [];
for (const rule of rules) {
const url = `${this.superRule}/${rule.id}`;
try {
const res = await this.axios.patch(url, rule, this._authHeader(token));
if (res.data.err.ec === 0) {
results.push({
success: true,
ruleId: rule.id,
data: res.data.ret,
});
} else {
results.push({
success: false,
ruleId: rule.id,
error: res.data.err.dm,
});
}
} catch (error: any) {
results.push({
success: false,
ruleId: rule.id,
error: error.message || '未知错误',
});
}
}
return results;
}
```
- 时间段设置
- 时间段规则设置
> 添加时间段schedule的设置组件显示开始时间点和结束时间数据格式化方式为将代表累计分钟的数字转换为时间点每60分钟为1小时数字范围在0到1440实例[56,65]代表0:56到1:05组件显示将数字组转换为时间段请求时将组件时间段显示为数字组。
>
> 时间段结束时间点不能大于开始时间点,多时间段添加不能有重合部分。
>
> 设置规则只有在rule.mode为schedule时才可设置时间段携带参数日期类型和多个时间段数字组合在未保存切换rule。mode模式时间段不会因为隐藏组件而清空数值始终显示开始设定好的默认值当提交时处于时间段模式至少得设置一个时间段数组否则无法保存若处在schedule情况下保存携带参数请求若rule.mode处于on或者off,代表没有时间段设置那么schedule下的所有参数及时原来有值也需要伴随请求清空默认值
> 设置规则只有在rule.mode为schedule时才可设置时间段携带参数日期类型和多个时间段数字组合在未保存切换rule。mode模式时间段不会因为隐藏组件而清空数值始终显示开始设定好的默认值当提交时处于时间段模式至少得设置一个时间段数组否则无法保存若处在schedule情况下保存携带参数请求若rule.mode处于on或者off,代表没有时间段设置那么schedule下的所有参数及时原来有值也需要伴随请求清空默认值,具体如下:
> 重新修改这段CameraRule.vue代码 1.在rule.mode为schedule模式添加时间段time_slots的组件添加时间段类型输入框值默认为daily不可修改 2.开始时间和结束时间的组件,时间通过分钟数转换为格式化的时间(小时:分钟有删除按钮可删除临时的时间段设置使用数字范围0-1440单个时间点代表0点到设置的时间点累计的分钟数字 3.时间段的校验,结束时间不能小于开始时间,多时间段之间不能有重叠。 4.如果 rule.mode 为 schedule则必须包含至少一个时间段如果 rule.mode 是 on 或 off清空所有时间段和时间段类型
> 1.在rule.mode为schedule模式添加时间段time_slots的组件添加时间段类型输入框值默认为daily不可修改
>
> 2.开始时间和结束时间的组件,时间通过分钟数转换为格式化的时间(小时:分钟有删除按钮可删除临时的时间段设置使用数字范围0-1440单个时间点代表0点到设置的时间点累计的分钟数字
>
> 3.时间段的校验,结束时间不能小于开始时间,多时间段之间不能有重叠。
>
> 4.如果 rule.mode 为 schedule则必须包含至少一个时间段如果 rule.mode 是 on 或 off清空所有时间段和时间段类型
@ -512,71 +464,6 @@ public async updateRule(token: string | null = null, rules: RuleData[]): Promise
```
模拟静态数据实例,
"camera": {
"id": 1,
"name": "421枪机",
"mode": "on",
"status": "online",
"rules": [
{
"id": 1,
"camera": 1,
"name": "入侵test2",
"mode": "schedule",
"algo": "intrude",
"schedule": {
"type": "daily",
"time_slots": [
[
118,
898
],
[
0,
60
]
]
},
},
{
"id": 3,
"camera": 1,
"name": "人员逗留",
"mode": "schedule",
"algo": "personnel_staying",
"schedule": {
"type": "daily",
"time_slots": [
[
180,
420
]
]
},
}
],
"snapshot": "http://192.168.28.33:8000/media/cameras/1/snapshot.jpg",
}
读取显示rules中多条数据每条rule中rule.mode对应el-radio三种状态在rule.model为schedule时
```
## 日志
### 2024.11.21