123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- import { defineStore } from 'pinia';
- import {
- DAHUALogin,
- DAHUALoginParams,
- LoginResponse,
- DAHUAKeepAlive,
- DAHUAUserInfo,
- DAHUAInfomation,
- DAHUACreateMeet,
- DAHUADeleteMeet,
- DAHUAMeetingUser,
- DAHUADevice,
- DAHUAMeetingMember,
- MeetingResponse,
- DAHUAUserObj,
- } 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';
- import request from '@/utils/request';
- export interface DaHuaStateType {
- dhuser: object;
- timer: NodeJS.Timer | null;
- dhToken: string;
- }
- export interface DaHuaActionsType {
- DAHUALogin(): void;
- KEEPAlive(): void;
- DAHUAUserInfo(): Promise<any>;
- DAHUAInfomation(): void;
- DAHUAUserObj(id: string): Promise<any>;
- DAHUAMeetingMember(obj: any): Promise<any>;
- DAHUADeviceList(id: string): Promise<any>;
- DAHUADeleteMeet(id: string): Promise<any>;
- DAHUAMeetingUser(id: string): void;
- DAHUACreateMeet(user: any): Promise<any>;
- }
- export default defineStore<'daHua', DaHuaStateType, {}, DaHuaActionsType>(
- 'daHua',
- {
- state: () => ({
- dhuser: {},
- deviceUser: {},
- timer: null,
- dhToken: localStorage.getItem('DAHUA_token') ?? '',
- }),
- actions: {
- async DAHUALogin() {
- try {
- const { password, username } = DA_HUA;
- request('GET', {
- url: 'http://api.xt.wenhq.top:8083/mock/49/getUser?noauth=401',
- });
- 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 ?? {};
- this.dhToken = next.token ?? '';
- localStorage.setItem('DAHUA_token', next.token ?? '');
- localStorage.setItem(
- 'DAHUA_userId',
- JSON.stringify(next.userId || ''),
- );
- this.KEEPAlive();
- } catch (err) {
- ElMessage.error({
- message: '大华应急指挥调度实战平台鉴权失败, 请尝试刷新页面重试',
- });
- }
- },
- async KEEPAlive() {
- const that = this;
- this.timer = setTimeout(() => {
- DAHUAKeepAlive({
- token: that.dhToken,
- });
- }, 20000);
- },
- async DAHUAUserInfo() {
- const dahuaToken = localStorage.getItem('DAHUA_token') ?? '';
- const res = await DAHUAUserInfo({
- token: dahuaToken,
- });
- return res;
- },
- async DAHUAInfomation() {
- const res = await DAHUAInfomation({
- page: 1,
- pageSize: 1000,
- condition: {},
- keyCondition: {},
- token: this.dhToken,
- });
- return res;
- },
- async DAHUACreateMeet(user) {
- 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: this.dhToken,
- });
- return isString(res) ? parseStr<MeetingResponse>(res) : res ?? {};
- },
- async DAHUAMeetingUser(id) {
- try {
- await DAHUAMeetingUser({
- token: this.dhToken,
- meetId: id,
- });
- } catch (error) {}
- },
- async DAHUADeleteMeet(id) {
- try {
- await DAHUADeleteMeet({
- token: this.dhToken,
- meetId: id,
- });
- } catch (error) {}
- },
- //设备列表
- async DAHUADeviceList(id) {
- const res = await DAHUADevice({
- token: this.dhToken,
- nodeType: 1,
- typeCode: '01;1;ALL',
- page: 1,
- pageSize: 100,
- id: id,
- });
- return res;
- },
- async DAHUAMeetingMember(obj) {
- await DAHUAMeetingMember({
- obj: {
- id: obj.meetId,
- inviteId: obj.user.userCode,
- inviteName: obj.user.userName,
- inviteNumber: obj.user.userPhone,
- member: obj.member,
- },
- token: this.dhToken,
- });
- },
- async DAHUAUserObj(id) {
- const res = await DAHUAUserObj({
- token: this.dhToken,
- id,
- });
- // this.deviceUser = res;
- return res;
- },
- },
- },
- );
|