123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- import { defineStore } from 'pinia';
- import { DAHUALogin, DAHUALoginParams, LoginResponse,DAHUAKeepAlive,DAHUAUserInfo,DAHUAInfomation,DAHUACreateMeet,DAHUADeleteMeet,DAHUAMeetingUser } from '@/api/dahua';
- import isString from 'lodash/isString';
- import { parseStr } from '@/utils';
- import md5 from 'crypto-js/md5';
- import { DA_HUA, DA_HUA_URL_PREFIX } from '@/constants/constants';
- import hex from 'crypto-js/format-hex';
- import { ElMessage } from 'element-plus';
- export interface DaHuaStateType {
- dhuser: object
- }
- export interface DaHuaActionsType {
- DAHUALogin(): void;
- KEEPAlive(): void;
- DAHUAUserInfo(): void;
- DAHUAInfomation(): void;
- }
- export default defineStore<'daHua', DaHuaStateType, {}, DaHuaActionsType>(
- 'daHua',
- {
- state: () => ({
- dhuser:{}
- }),
- actions: {
- async DAHUALogin() {
- try {
- const { password, username } = DA_HUA;
- const firstLoginRes = await fetch(
- `${DA_HUA_URL_PREFIX}/videoService/accounts/authorize`,
- {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- 'X-Subject-Token': '',
- },
- body: JSON.stringify({
- userName: username,
- clientType: 'winpc',
- ipAddress: '', //可不传
- pid: 2548, //可不传
- }),
- },
- );
- const firstLogin = (await firstLoginRes.json()) as unknown as {
- realm?: string;
- randomKey: string;
- };
- const md1 = md5(password); //第1次加密
- const md2 = md5(username + md1); //第2次加密
- const md3 = md5(md2.toString()); //第3次加密
- const md4 = md5(username + ':' + firstLogin.realm + ':' + md3); //第4次加密
- const signature = md5(md4 + ':' + firstLogin.randomKey); //第5次加密
- const data = await DAHUALogin({
- userName: username,
- signature: signature.toString(),
- randomKey: firstLogin.randomKey,
- encryptType: 'MD5',
- clientType: 'winpc',
- pid: 2548,
- });
- const next = isString(data)
- ? parseStr<LoginResponse>(data)
- : data ?? {};
- localStorage.setItem('DAHUA_token', next.token);
- localStorage.setItem(
- 'DAHUA_userId',
- JSON.stringify(next.userId || ''),
- );
- this.KEEPAlive();
- } catch (err) {
- console.log(err);
- ElMessage.error({
- message: '大华应急指挥调度实战平台鉴权失败, 请尝试刷新页面重试',
- });
- }
- },
- async KEEPAlive(){
- const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
- // const dahuaToken = '5269850340392960_c63314d9429094389d84166a6d888338647bf98afd0c10d6f23bf696a84d439cd50d2efd7260977a26023391617a50343cf5125fc523acc8a1bb1b12191bf188';
- console.log(dahuaToken);
- const res = await DAHUAKeepAlive({
- token:dahuaToken
- });
- const that = this;
- setTimeout(function() {
- that.KEEPAlive();
- }, 20000);
- },
- async DAHUAUserInfo(){
- const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
- const res = await DAHUAUserInfo({
- token:dahuaToken
- });
- return res
- },
- async DAHUAInfomation(){
- const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
- const res = await DAHUAInfomation({
- page: 1,
- pageSize: 1000,
- condition: {},
- keyCondition: {},
- token:dahuaToken
- });
- console.log(res);
- },
- async DAHUACreateMeet(user){
- const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
- // console.log(user.userName);
- const res = await DAHUACreateMeet({
- masterName : user.userName,
- masterId : user.userCode,
- masterNumber : user.userPhone,
- region : user.paasId,
- mode : 'group',
- name : '11111',
- record : true,
- type : 'video',
- token : dahuaToken
- });
- return res
- },
- async DAHUAMeetingUser(id){
- console.log(id);
- const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
- // console.log(user.userName);
- const res = await DAHUAMeetingUser({
- token: dahuaToken,
- meetId: id
- });
- console.log(res);
- },
- async DAHUADeleteMeet(id){
- console.log(id);
- const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
- // console.log(user.userName);
- const res = await DAHUADeleteMeet({
- token: dahuaToken,
- meetId: id
- });
- console.log(res);
- },
- },
- },
- );
|