fix(api):update store
This commit is contained in:
parent
836806a12c
commit
cc638d92ee
|
|
@ -82,6 +82,7 @@
|
||||||
"webpack": "^5.64.4",
|
"webpack": "^5.64.4",
|
||||||
"webpack-dev-server": "^4.6.0",
|
"webpack-dev-server": "^4.6.0",
|
||||||
"webpack-manifest-plugin": "^4.0.2",
|
"webpack-manifest-plugin": "^4.0.2",
|
||||||
|
"webrtc": "^1.14.1",
|
||||||
"workbox-webpack-plugin": "^6.4.1"
|
"workbox-webpack-plugin": "^6.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -7538,7 +7539,6 @@
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz",
|
"resolved": "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz",
|
||||||
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
|
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
|
|
@ -8050,7 +8050,6 @@
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz",
|
||||||
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
|
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cipher-base": "^1.0.1",
|
"cipher-base": "^1.0.1",
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
|
|
@ -8063,7 +8062,6 @@
|
||||||
"version": "1.1.7",
|
"version": "1.1.7",
|
||||||
"resolved": "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz",
|
"resolved": "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz",
|
||||||
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
|
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cipher-base": "^1.0.3",
|
"cipher-base": "^1.0.3",
|
||||||
"create-hash": "^1.1.0",
|
"create-hash": "^1.1.0",
|
||||||
|
|
@ -10861,6 +10859,21 @@
|
||||||
"node": ">= 0.4.0"
|
"node": ">= 0.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/filetransfer": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmmirror.com/filetransfer/-/filetransfer-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-u48DwnSlHgXQs7KRrhsCXJIVUlqoQ4PbllMWqnsl9fD+rDvbMxXiGMXyLZ1+iKRw/EMezysK0vYo4CPtU6N7qA==",
|
||||||
|
"dependencies": {
|
||||||
|
"async": "^0.9.0",
|
||||||
|
"iana-hashes": "^1.0.0",
|
||||||
|
"wildemitter": "1.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/filetransfer/node_modules/async": {
|
||||||
|
"version": "0.9.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/async/-/async-0.9.2.tgz",
|
||||||
|
"integrity": "sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw=="
|
||||||
|
},
|
||||||
"node_modules/fill-range": {
|
"node_modules/fill-range": {
|
||||||
"version": "7.1.1",
|
"version": "7.1.1",
|
||||||
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
|
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
|
||||||
|
|
@ -11461,6 +11474,41 @@
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/getscreenmedia": {
|
||||||
|
"version": "1.5.6",
|
||||||
|
"resolved": "https://registry.npmmirror.com/getscreenmedia/-/getscreenmedia-1.5.6.tgz",
|
||||||
|
"integrity": "sha512-onBzBz0lqXUr85+OlJlCxNeQfikx2/o5vJJniTSbOr273PUbKIqRu7VQXAKBYW99ZF6AmmUX/5WU2pGskhLGFQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"getusermedia": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/getscreenmedia/node_modules/getusermedia": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/getusermedia/-/getusermedia-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-G1gFU5yt2B/atoufTyur/KqWwTgLTIV04cjgIr8cVKbZZM53Cp7bit3XomsZ82KFyS011DtB06wkzl7WZ7uHkA==",
|
||||||
|
"dependencies": {
|
||||||
|
"webrtc-adapter": "^2.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/getscreenmedia/node_modules/webrtc-adapter": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtc-adapter/-/webrtc-adapter-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-i38RPNdm68QS6jQFWDuYEOLv5HvWE0Hz99eePd7Nk/c3FmhFUR6zNyfhASdPewm2u1tMfHkRTx9cAZyq3prRlA==",
|
||||||
|
"dependencies": {
|
||||||
|
"sdp": "^1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"npm": "^3.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/getusermedia": {
|
||||||
|
"version": "1.3.7",
|
||||||
|
"resolved": "https://registry.npmmirror.com/getusermedia/-/getusermedia-1.3.7.tgz",
|
||||||
|
"integrity": "sha512-LO5s4IDZTkRbyBk+o+9/WTrJP34o6diQYPhc80ceNqoiYLarSbQQIpEm5WYnPaiFXt9JVbjndwHrjgiUxji4pQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"webrtc-adapter": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/glob": {
|
"node_modules/glob": {
|
||||||
"version": "7.2.3",
|
"version": "7.2.3",
|
||||||
"resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
|
"resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
|
||||||
|
|
@ -11621,6 +11669,14 @@
|
||||||
"resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz",
|
||||||
"integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
|
"integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
|
||||||
},
|
},
|
||||||
|
"node_modules/hark": {
|
||||||
|
"version": "1.2.3",
|
||||||
|
"resolved": "https://registry.npmmirror.com/hark/-/hark-1.2.3.tgz",
|
||||||
|
"integrity": "sha512-u68vz9SCa38ESiFJSDjqK8XbXqWzyot7Cj6Y2b6jk2NJ+II3MY2dIrLMg/kjtIAun4Y1DHF/20hfx4rq1G5GMg==",
|
||||||
|
"dependencies": {
|
||||||
|
"wildemitter": "^1.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/harmony-reflect": {
|
"node_modules/harmony-reflect": {
|
||||||
"version": "1.6.2",
|
"version": "1.6.2",
|
||||||
"resolved": "https://registry.npmmirror.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
|
"resolved": "https://registry.npmmirror.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
|
||||||
|
|
@ -11765,7 +11821,6 @@
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmmirror.com/hash-base/-/hash-base-3.0.4.tgz",
|
"resolved": "https://registry.npmmirror.com/hash-base/-/hash-base-3.0.4.tgz",
|
||||||
"integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==",
|
"integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
|
|
@ -12098,6 +12153,16 @@
|
||||||
"@babel/runtime": "^7.12.0"
|
"@babel/runtime": "^7.12.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/iana-hashes": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/iana-hashes/-/iana-hashes-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-dNFf+NqkF9M1lSluGyHGZNwxdIc8tL++n12Fp3/pcW85jN0ZePP78KugTA16J/paPNlGANE6kUlw81OQs4ulLQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"create-hash": "^1.1.0",
|
||||||
|
"create-hmac": "^1.1.3",
|
||||||
|
"randombytes": "^2.0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/iconv-lite": {
|
"node_modules/iconv-lite": {
|
||||||
"version": "0.6.3",
|
"version": "0.6.3",
|
||||||
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
||||||
|
|
@ -15715,6 +15780,25 @@
|
||||||
"node": ">=8.9.0"
|
"node": ">=8.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/localmedia": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/localmedia/-/localmedia-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-eETyJREvf7P1hiT/72VH/rdtlOqHafFn/oADG6D6tmAj/nETTeY3kSEODgzPdK+VejqvauC9gP5BpSLkcKwCuQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"getscreenmedia": "^1.0.0",
|
||||||
|
"getusermedia": "^1.0.0",
|
||||||
|
"hark": "^1.0.0",
|
||||||
|
"mediastream-gain": "^1.0.0",
|
||||||
|
"mockconsole": "0.0.x",
|
||||||
|
"webrtcsupport": "^2.2.0",
|
||||||
|
"wildemitter": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/localmedia/node_modules/webrtcsupport": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtcsupport/-/webrtcsupport-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-9KvL8SxgzbMC/SUMvW+4qcvsXtAnM0iSuxjOwsCqBbA+DA5biaQq8+f4aGfb341BgoFrQX2PQNsvrL2YkuYB1w=="
|
||||||
|
},
|
||||||
"node_modules/locate-path": {
|
"node_modules/locate-path": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
|
||||||
|
|
@ -15731,12 +15815,74 @@
|
||||||
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
|
||||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||||
},
|
},
|
||||||
|
"node_modules/lodash._arrayeach": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-Mn7HidOVcl3mkQtbPsuKR0Fj0N6Q6DQB77CtYncZcJc0bx5qv2q4Gl6a0LC1AN+GSxpnBDNnK3CKEm9XNA4zqQ=="
|
||||||
|
},
|
||||||
|
"node_modules/lodash._arraymap": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-IhRssF2bzQoFQ2Q5H1O52HuJY+OtcHDZekEhaMJ6RkUF+gpLlAsizSRsKp3Ho555ANRk69DFp5b4LOlym4S0bw=="
|
||||||
|
},
|
||||||
|
"node_modules/lodash._basecallback": {
|
||||||
|
"version": "3.3.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz",
|
||||||
|
"integrity": "sha512-LQffghuO63ufDY33KKO1ezGKbcFZK3ngYV7JpxaUomoM5acf0YeXU3Pm8csVE0girVs50TXzfNibl69Co3ggJA==",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash._baseisequal": "^3.0.0",
|
||||||
|
"lodash._bindcallback": "^3.0.0",
|
||||||
|
"lodash.isarray": "^3.0.0",
|
||||||
|
"lodash.pairs": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/lodash._baseeach": {
|
||||||
|
"version": "3.0.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz",
|
||||||
|
"integrity": "sha512-IqUZ9MQo2UT1XPGuBntInqTOlc+oV+bCo0kMp+yuKGsfvRSNgUW0YjWVZUrG/gs+8z/Eyuc0jkJjOBESt9BXxg==",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash.keys": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/lodash._baseget": {
|
||||||
|
"version": "3.7.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._baseget/-/lodash._baseget-3.7.2.tgz",
|
||||||
|
"integrity": "sha512-OgVr3AufoSqlh6eHWOLdLzRdn6TU3LlEGQjtsyLr9XRtPoXUywzquM1uYE+qQAno1kB9CvpI1gsvGwiVwPinog=="
|
||||||
|
},
|
||||||
|
"node_modules/lodash._baseisequal": {
|
||||||
|
"version": "3.0.7",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz",
|
||||||
|
"integrity": "sha512-U+3GsNEZj9ebI03ncLC2pLmYVjgtYZEwdkAPO7UGgtGvAz36JVFPAQUufpSaVL93Cz5arc6JGRKZRhaOhyVJYA==",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash.isarray": "^3.0.0",
|
||||||
|
"lodash.istypedarray": "^3.0.0",
|
||||||
|
"lodash.keys": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/lodash._bindcallback": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ=="
|
||||||
|
},
|
||||||
|
"node_modules/lodash._getnative": {
|
||||||
|
"version": "3.9.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
|
||||||
|
"integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA=="
|
||||||
|
},
|
||||||
"node_modules/lodash._reinterpolate": {
|
"node_modules/lodash._reinterpolate": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
|
||||||
"integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
|
"integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"node_modules/lodash._topath": {
|
||||||
|
"version": "3.8.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._topath/-/lodash._topath-3.8.1.tgz",
|
||||||
|
"integrity": "sha512-QsF5c8A+Biv0oxuSCd05JqhXHPCjvFT0nMXVevfMgU1pp5iEHVSin2cKXi3lQe5+px285p7kAHVtOnbNE79syw==",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash.isarray": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/lodash.camelcase": {
|
"node_modules/lodash.camelcase": {
|
||||||
"version": "4.3.0",
|
"version": "4.3.0",
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
|
||||||
|
|
@ -15757,11 +15903,48 @@
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
|
||||||
"integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ=="
|
"integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/lodash.isarguments": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg=="
|
||||||
|
},
|
||||||
|
"node_modules/lodash.isarray": {
|
||||||
|
"version": "3.0.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
|
||||||
|
"integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ=="
|
||||||
|
},
|
||||||
"node_modules/lodash.isequal": {
|
"node_modules/lodash.isequal": {
|
||||||
"version": "4.5.0",
|
"version": "4.5.0",
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
||||||
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
|
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/lodash.istypedarray": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz",
|
||||||
|
"integrity": "sha512-lGWJ6N8AA3KSv+ZZxlTdn4f6A7kMfpJboeyvbFdE7IU9YAgweODqmOgdUHOA+c6lVWeVLysdaxciFXi+foVsWw=="
|
||||||
|
},
|
||||||
|
"node_modules/lodash.keys": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash._getnative": "^3.0.0",
|
||||||
|
"lodash.isarguments": "^3.0.0",
|
||||||
|
"lodash.isarray": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/lodash.map": {
|
||||||
|
"version": "3.1.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.map/-/lodash.map-3.1.4.tgz",
|
||||||
|
"integrity": "sha512-v7djb/pW+RLcvsmQlHAjZN+zyKyiXgSEdq7V3kVmoT1aCa1bBWy4RbnJRN1SAvNGvkRVfqj66V01wiq+C3b6Cg==",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash._arraymap": "^3.0.0",
|
||||||
|
"lodash._basecallback": "^3.0.0",
|
||||||
|
"lodash._baseeach": "^3.0.0",
|
||||||
|
"lodash.isarray": "^3.0.0",
|
||||||
|
"lodash.keys": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/lodash.memoize": {
|
"node_modules/lodash.memoize": {
|
||||||
"version": "4.1.2",
|
"version": "4.1.2",
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
||||||
|
|
@ -15772,6 +15955,25 @@
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
||||||
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
|
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/lodash.pairs": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-lgXvpU43ZNQrZ/pK2cR97YzKeAno3e3HhcyvLKsofljeHKrQcZhT1vW7fg4X61c92tM+mjD/DypoLZYuAKNIkQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash.keys": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/lodash.pluck": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.pluck/-/lodash.pluck-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-L0UkqH/O3Vh+3KowchOe2+YzWMGdR90CbzpzTXGMujZAVfBmjGSvaJwpflJa4C/WNhNvLrlCtMjo6/Uvhty67g==",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash._baseget": "^3.0.0",
|
||||||
|
"lodash._topath": "^3.0.0",
|
||||||
|
"lodash.isarray": "^3.0.0",
|
||||||
|
"lodash.map": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/lodash.sortby": {
|
"node_modules/lodash.sortby": {
|
||||||
"version": "4.7.0",
|
"version": "4.7.0",
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
||||||
|
|
@ -15933,7 +16135,6 @@
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
"resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz",
|
"resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz",
|
||||||
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
|
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"hash-base": "^3.0.0",
|
"hash-base": "^3.0.0",
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
|
|
@ -15953,6 +16154,14 @@
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/mediastream-gain": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/mediastream-gain/-/mediastream-gain-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-fRBqj0VYSM1w/FqybEhIxyFv0GZe3mej15psQmjaekEMaZEDMJJSk2R06vpqF2Wsn9Elzbx5MgaxORdcNCJkig==",
|
||||||
|
"dependencies": {
|
||||||
|
"webrtcsupport": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/memfs": {
|
"node_modules/memfs": {
|
||||||
"version": "3.5.3",
|
"version": "3.5.3",
|
||||||
"resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz",
|
"resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz",
|
||||||
|
|
@ -16327,6 +16536,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/mockconsole": {
|
||||||
|
"version": "0.0.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/mockconsole/-/mockconsole-0.0.1.tgz",
|
||||||
|
"integrity": "sha512-9wFq0SJFTaxxEYmfjWf4U8uYku5HKwn3OsTOct3aQFLDois6HrLse2iZAy7v5hyTNts2XH6Y1LW8iMXWxiH6Vg=="
|
||||||
|
},
|
||||||
"node_modules/move-concurrently": {
|
"node_modules/move-concurrently": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
||||||
|
|
@ -28389,7 +28603,6 @@
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz",
|
"resolved": "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz",
|
||||||
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
|
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"hash-base": "^3.0.0",
|
"hash-base": "^3.0.0",
|
||||||
"inherits": "^2.0.1"
|
"inherits": "^2.0.1"
|
||||||
|
|
@ -28503,6 +28716,30 @@
|
||||||
"node": "6.* || >= 7.*"
|
"node": "6.* || >= 7.*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/rtcpeerconnection": {
|
||||||
|
"version": "3.1.6",
|
||||||
|
"resolved": "https://registry.npmmirror.com/rtcpeerconnection/-/rtcpeerconnection-3.1.6.tgz",
|
||||||
|
"integrity": "sha512-SObgG8nFtpuOD13bzlMv7tbKlTyAozbZdtE4DXc3zazSUt9b9AWbnnR+xyQw91eQ+lWXTdyHzPD8hZZSB9Rt3Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash.foreach": "^3.0.2",
|
||||||
|
"lodash.pluck": "^3.0.2",
|
||||||
|
"sdp-jingle-json": "2.x",
|
||||||
|
"traceablepeerconnection": "^1.0.0",
|
||||||
|
"webrtc-adapter-test": "^0.2.3",
|
||||||
|
"wildemitter": "1.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/rtcpeerconnection/node_modules/lodash.foreach": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-3.0.3.tgz",
|
||||||
|
"integrity": "sha512-PA7Lp7pe2HMJBoB1vELegEIF3waUFnM0fWDKJVYolwZ4zHh6WTmnq0xmzfQksD66gx2quhDNyBdyaE2T8/DP3Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash._arrayeach": "^3.0.0",
|
||||||
|
"lodash._baseeach": "^3.0.0",
|
||||||
|
"lodash._bindcallback": "^3.0.0",
|
||||||
|
"lodash.isarray": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/run-parallel": {
|
"node_modules/run-parallel": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
|
||||||
|
|
@ -29017,6 +29254,16 @@
|
||||||
"get-ready": "~1.0.0"
|
"get-ready": "~1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/sdp": {
|
||||||
|
"version": "1.5.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/sdp/-/sdp-1.5.4.tgz",
|
||||||
|
"integrity": "sha512-9x0+fpJHW2bbqtIktmL+H9m+BswgurPVPhWrur4cCZPDWDSsdGYvRBaKhDXlnNCD1b/Xi8cOTG2u703CTQuwgg=="
|
||||||
|
},
|
||||||
|
"node_modules/sdp-jingle-json": {
|
||||||
|
"version": "2.2.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/sdp-jingle-json/-/sdp-jingle-json-2.2.1.tgz",
|
||||||
|
"integrity": "sha512-xmFFjZWsFrcX4kVWq3ZNjy7+VkH4nalB+RiNvQSQ7oDsDypI+93XcvO8FPSHgsHtUd2bTozLZgXM6KLeVtJ4Zw=="
|
||||||
|
},
|
||||||
"node_modules/select-hose": {
|
"node_modules/select-hose": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
|
||||||
|
|
@ -29321,7 +29568,6 @@
|
||||||
"version": "2.4.11",
|
"version": "2.4.11",
|
||||||
"resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz",
|
"resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz",
|
||||||
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
|
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
|
|
@ -31080,6 +31326,15 @@
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/traceablepeerconnection": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/traceablepeerconnection/-/traceablepeerconnection-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-YdBqgxPB03fwuNaEXZTOsqLxZJnA2A6D1UqA+1RVYFCc9VoD4EIprg0HiaWZpKqj3n1XuJiS+5hZBALqDjKpKw==",
|
||||||
|
"dependencies": {
|
||||||
|
"webrtc-adapter": "^1.0",
|
||||||
|
"wildemitter": "1.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/tryer": {
|
"node_modules/tryer": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz",
|
||||||
|
|
@ -32451,6 +32706,37 @@
|
||||||
"url": "https://opencollective.com/webpack"
|
"url": "https://opencollective.com/webpack"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/webrtc": {
|
||||||
|
"version": "1.14.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtc/-/webrtc-1.14.1.tgz",
|
||||||
|
"integrity": "sha512-en4xHfLMsgRY7cxju6qcHyCE56/+005HkC4V5qtpTLlUlHLxHX11pB8jnyZp6gaZ6A65sh0VnbHn1AyI052ovw==",
|
||||||
|
"dependencies": {
|
||||||
|
"filetransfer": "^2.0.0",
|
||||||
|
"localmedia": "^1.0.2",
|
||||||
|
"mockconsole": "0.0.1",
|
||||||
|
"rtcpeerconnection": "^3.0.6",
|
||||||
|
"webrtcsupport": "^1.2.4",
|
||||||
|
"wildemitter": "1.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/webrtc-adapter": {
|
||||||
|
"version": "1.2.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtc-adapter/-/webrtc-adapter-1.2.2.tgz",
|
||||||
|
"integrity": "sha512-qJKt/SbDF62+8/akW0pTry0cPO5LVai+mIb3h9ei87sCfeVVKLpkX0/HgStLUtbu5cbuMi0UYHtuUaSvw3g75g==",
|
||||||
|
"dependencies": {
|
||||||
|
"sdp": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/webrtc-adapter-test": {
|
||||||
|
"version": "0.2.10",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtc-adapter-test/-/webrtc-adapter-test-0.2.10.tgz",
|
||||||
|
"integrity": "sha512-fhFwkniodK0gDVYi/P/qMRV4PNLT+ctJo/WCKL4izK2SYkN6gj4ajy3Pi/bEgM5wRnUdN14oIlvb5BKtFtloVw=="
|
||||||
|
},
|
||||||
|
"node_modules/webrtcsupport": {
|
||||||
|
"version": "1.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtcsupport/-/webrtcsupport-1.3.2.tgz",
|
||||||
|
"integrity": "sha512-/7cKJNIFHUVuTgKRLUKNxqFzHXNI+sGUbYdJAcYWoXJyzkEy+NTmKyWPGf2qbE6hmJxfDLA5utyaBttxpT778A=="
|
||||||
|
},
|
||||||
"node_modules/websocket-driver": {
|
"node_modules/websocket-driver": {
|
||||||
"version": "0.7.4",
|
"version": "0.7.4",
|
||||||
"resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz",
|
"resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz",
|
||||||
|
|
@ -32614,6 +32900,11 @@
|
||||||
"resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz",
|
"resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz",
|
||||||
"integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng=="
|
"integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng=="
|
||||||
},
|
},
|
||||||
|
"node_modules/wildemitter": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/wildemitter/-/wildemitter-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-UMmSUoIQSir+XbBpTxOTS53uJ8s/lVhADCkEbhfRjUGFDPme/XGOb0sBWLx5sTz7Wx/2+TlAw1eK9O5lw5PiEw=="
|
||||||
|
},
|
||||||
"node_modules/win-release": {
|
"node_modules/win-release": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmmirror.com/win-release/-/win-release-1.1.1.tgz",
|
"resolved": "https://registry.npmmirror.com/win-release/-/win-release-1.1.1.tgz",
|
||||||
|
|
@ -38595,7 +38886,6 @@
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz",
|
"resolved": "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz",
|
||||||
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
|
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
|
|
@ -39019,7 +39309,6 @@
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz",
|
||||||
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
|
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"cipher-base": "^1.0.1",
|
"cipher-base": "^1.0.1",
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
|
|
@ -39032,7 +39321,6 @@
|
||||||
"version": "1.1.7",
|
"version": "1.1.7",
|
||||||
"resolved": "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz",
|
"resolved": "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz",
|
||||||
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
|
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"cipher-base": "^1.0.3",
|
"cipher-base": "^1.0.3",
|
||||||
"create-hash": "^1.1.0",
|
"create-hash": "^1.1.0",
|
||||||
|
|
@ -41123,6 +41411,23 @@
|
||||||
"resolved": "https://registry.npmmirror.com/filesize/-/filesize-8.0.7.tgz",
|
"resolved": "https://registry.npmmirror.com/filesize/-/filesize-8.0.7.tgz",
|
||||||
"integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ=="
|
"integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ=="
|
||||||
},
|
},
|
||||||
|
"filetransfer": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmmirror.com/filetransfer/-/filetransfer-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-u48DwnSlHgXQs7KRrhsCXJIVUlqoQ4PbllMWqnsl9fD+rDvbMxXiGMXyLZ1+iKRw/EMezysK0vYo4CPtU6N7qA==",
|
||||||
|
"requires": {
|
||||||
|
"async": "^0.9.0",
|
||||||
|
"iana-hashes": "^1.0.0",
|
||||||
|
"wildemitter": "1.x"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"async": {
|
||||||
|
"version": "0.9.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/async/-/async-0.9.2.tgz",
|
||||||
|
"integrity": "sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"fill-range": {
|
"fill-range": {
|
||||||
"version": "7.1.1",
|
"version": "7.1.1",
|
||||||
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
|
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
|
||||||
|
|
@ -41545,6 +41850,40 @@
|
||||||
"integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
|
"integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"getscreenmedia": {
|
||||||
|
"version": "1.5.6",
|
||||||
|
"resolved": "https://registry.npmmirror.com/getscreenmedia/-/getscreenmedia-1.5.6.tgz",
|
||||||
|
"integrity": "sha512-onBzBz0lqXUr85+OlJlCxNeQfikx2/o5vJJniTSbOr273PUbKIqRu7VQXAKBYW99ZF6AmmUX/5WU2pGskhLGFQ==",
|
||||||
|
"requires": {
|
||||||
|
"getusermedia": "^2.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"getusermedia": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/getusermedia/-/getusermedia-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-G1gFU5yt2B/atoufTyur/KqWwTgLTIV04cjgIr8cVKbZZM53Cp7bit3XomsZ82KFyS011DtB06wkzl7WZ7uHkA==",
|
||||||
|
"requires": {
|
||||||
|
"webrtc-adapter": "^2.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"webrtc-adapter": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtc-adapter/-/webrtc-adapter-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-i38RPNdm68QS6jQFWDuYEOLv5HvWE0Hz99eePd7Nk/c3FmhFUR6zNyfhASdPewm2u1tMfHkRTx9cAZyq3prRlA==",
|
||||||
|
"requires": {
|
||||||
|
"sdp": "^1.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"getusermedia": {
|
||||||
|
"version": "1.3.7",
|
||||||
|
"resolved": "https://registry.npmmirror.com/getusermedia/-/getusermedia-1.3.7.tgz",
|
||||||
|
"integrity": "sha512-LO5s4IDZTkRbyBk+o+9/WTrJP34o6diQYPhc80ceNqoiYLarSbQQIpEm5WYnPaiFXt9JVbjndwHrjgiUxji4pQ==",
|
||||||
|
"requires": {
|
||||||
|
"webrtc-adapter": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"glob": {
|
"glob": {
|
||||||
"version": "7.2.3",
|
"version": "7.2.3",
|
||||||
"resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
|
"resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
|
||||||
|
|
@ -41664,6 +42003,14 @@
|
||||||
"resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz",
|
||||||
"integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
|
"integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
|
||||||
},
|
},
|
||||||
|
"hark": {
|
||||||
|
"version": "1.2.3",
|
||||||
|
"resolved": "https://registry.npmmirror.com/hark/-/hark-1.2.3.tgz",
|
||||||
|
"integrity": "sha512-u68vz9SCa38ESiFJSDjqK8XbXqWzyot7Cj6Y2b6jk2NJ+II3MY2dIrLMg/kjtIAun4Y1DHF/20hfx4rq1G5GMg==",
|
||||||
|
"requires": {
|
||||||
|
"wildemitter": "^1.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"harmony-reflect": {
|
"harmony-reflect": {
|
||||||
"version": "1.6.2",
|
"version": "1.6.2",
|
||||||
"resolved": "https://registry.npmmirror.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
|
"resolved": "https://registry.npmmirror.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
|
||||||
|
|
@ -41767,7 +42114,6 @@
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmmirror.com/hash-base/-/hash-base-3.0.4.tgz",
|
"resolved": "https://registry.npmmirror.com/hash-base/-/hash-base-3.0.4.tgz",
|
||||||
"integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==",
|
"integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==",
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
|
|
@ -42011,6 +42357,16 @@
|
||||||
"@babel/runtime": "^7.12.0"
|
"@babel/runtime": "^7.12.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"iana-hashes": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/iana-hashes/-/iana-hashes-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-dNFf+NqkF9M1lSluGyHGZNwxdIc8tL++n12Fp3/pcW85jN0ZePP78KugTA16J/paPNlGANE6kUlw81OQs4ulLQ==",
|
||||||
|
"requires": {
|
||||||
|
"create-hash": "^1.1.0",
|
||||||
|
"create-hmac": "^1.1.3",
|
||||||
|
"randombytes": "^2.0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"iconv-lite": {
|
"iconv-lite": {
|
||||||
"version": "0.6.3",
|
"version": "0.6.3",
|
||||||
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
||||||
|
|
@ -44628,6 +44984,27 @@
|
||||||
"json5": "^2.1.2"
|
"json5": "^2.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"localmedia": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/localmedia/-/localmedia-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-eETyJREvf7P1hiT/72VH/rdtlOqHafFn/oADG6D6tmAj/nETTeY3kSEODgzPdK+VejqvauC9gP5BpSLkcKwCuQ==",
|
||||||
|
"requires": {
|
||||||
|
"getscreenmedia": "^1.0.0",
|
||||||
|
"getusermedia": "^1.0.0",
|
||||||
|
"hark": "^1.0.0",
|
||||||
|
"mediastream-gain": "^1.0.0",
|
||||||
|
"mockconsole": "0.0.x",
|
||||||
|
"webrtcsupport": "^2.2.0",
|
||||||
|
"wildemitter": "^1.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"webrtcsupport": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtcsupport/-/webrtcsupport-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-9KvL8SxgzbMC/SUMvW+4qcvsXtAnM0iSuxjOwsCqBbA+DA5biaQq8+f4aGfb341BgoFrQX2PQNsvrL2YkuYB1w=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"locate-path": {
|
"locate-path": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
|
||||||
|
|
@ -44641,12 +45018,74 @@
|
||||||
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
|
||||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||||
},
|
},
|
||||||
|
"lodash._arrayeach": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-Mn7HidOVcl3mkQtbPsuKR0Fj0N6Q6DQB77CtYncZcJc0bx5qv2q4Gl6a0LC1AN+GSxpnBDNnK3CKEm9XNA4zqQ=="
|
||||||
|
},
|
||||||
|
"lodash._arraymap": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-IhRssF2bzQoFQ2Q5H1O52HuJY+OtcHDZekEhaMJ6RkUF+gpLlAsizSRsKp3Ho555ANRk69DFp5b4LOlym4S0bw=="
|
||||||
|
},
|
||||||
|
"lodash._basecallback": {
|
||||||
|
"version": "3.3.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz",
|
||||||
|
"integrity": "sha512-LQffghuO63ufDY33KKO1ezGKbcFZK3ngYV7JpxaUomoM5acf0YeXU3Pm8csVE0girVs50TXzfNibl69Co3ggJA==",
|
||||||
|
"requires": {
|
||||||
|
"lodash._baseisequal": "^3.0.0",
|
||||||
|
"lodash._bindcallback": "^3.0.0",
|
||||||
|
"lodash.isarray": "^3.0.0",
|
||||||
|
"lodash.pairs": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lodash._baseeach": {
|
||||||
|
"version": "3.0.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz",
|
||||||
|
"integrity": "sha512-IqUZ9MQo2UT1XPGuBntInqTOlc+oV+bCo0kMp+yuKGsfvRSNgUW0YjWVZUrG/gs+8z/Eyuc0jkJjOBESt9BXxg==",
|
||||||
|
"requires": {
|
||||||
|
"lodash.keys": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lodash._baseget": {
|
||||||
|
"version": "3.7.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._baseget/-/lodash._baseget-3.7.2.tgz",
|
||||||
|
"integrity": "sha512-OgVr3AufoSqlh6eHWOLdLzRdn6TU3LlEGQjtsyLr9XRtPoXUywzquM1uYE+qQAno1kB9CvpI1gsvGwiVwPinog=="
|
||||||
|
},
|
||||||
|
"lodash._baseisequal": {
|
||||||
|
"version": "3.0.7",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz",
|
||||||
|
"integrity": "sha512-U+3GsNEZj9ebI03ncLC2pLmYVjgtYZEwdkAPO7UGgtGvAz36JVFPAQUufpSaVL93Cz5arc6JGRKZRhaOhyVJYA==",
|
||||||
|
"requires": {
|
||||||
|
"lodash.isarray": "^3.0.0",
|
||||||
|
"lodash.istypedarray": "^3.0.0",
|
||||||
|
"lodash.keys": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lodash._bindcallback": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ=="
|
||||||
|
},
|
||||||
|
"lodash._getnative": {
|
||||||
|
"version": "3.9.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
|
||||||
|
"integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA=="
|
||||||
|
},
|
||||||
"lodash._reinterpolate": {
|
"lodash._reinterpolate": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
|
||||||
"integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
|
"integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"lodash._topath": {
|
||||||
|
"version": "3.8.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash._topath/-/lodash._topath-3.8.1.tgz",
|
||||||
|
"integrity": "sha512-QsF5c8A+Biv0oxuSCd05JqhXHPCjvFT0nMXVevfMgU1pp5iEHVSin2cKXi3lQe5+px285p7kAHVtOnbNE79syw==",
|
||||||
|
"requires": {
|
||||||
|
"lodash.isarray": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lodash.camelcase": {
|
"lodash.camelcase": {
|
||||||
"version": "4.3.0",
|
"version": "4.3.0",
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
|
||||||
|
|
@ -44667,11 +45106,48 @@
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
|
||||||
"integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ=="
|
"integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ=="
|
||||||
},
|
},
|
||||||
|
"lodash.isarguments": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg=="
|
||||||
|
},
|
||||||
|
"lodash.isarray": {
|
||||||
|
"version": "3.0.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
|
||||||
|
"integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ=="
|
||||||
|
},
|
||||||
"lodash.isequal": {
|
"lodash.isequal": {
|
||||||
"version": "4.5.0",
|
"version": "4.5.0",
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
||||||
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
|
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
|
||||||
},
|
},
|
||||||
|
"lodash.istypedarray": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz",
|
||||||
|
"integrity": "sha512-lGWJ6N8AA3KSv+ZZxlTdn4f6A7kMfpJboeyvbFdE7IU9YAgweODqmOgdUHOA+c6lVWeVLysdaxciFXi+foVsWw=="
|
||||||
|
},
|
||||||
|
"lodash.keys": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==",
|
||||||
|
"requires": {
|
||||||
|
"lodash._getnative": "^3.0.0",
|
||||||
|
"lodash.isarguments": "^3.0.0",
|
||||||
|
"lodash.isarray": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lodash.map": {
|
||||||
|
"version": "3.1.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.map/-/lodash.map-3.1.4.tgz",
|
||||||
|
"integrity": "sha512-v7djb/pW+RLcvsmQlHAjZN+zyKyiXgSEdq7V3kVmoT1aCa1bBWy4RbnJRN1SAvNGvkRVfqj66V01wiq+C3b6Cg==",
|
||||||
|
"requires": {
|
||||||
|
"lodash._arraymap": "^3.0.0",
|
||||||
|
"lodash._basecallback": "^3.0.0",
|
||||||
|
"lodash._baseeach": "^3.0.0",
|
||||||
|
"lodash.isarray": "^3.0.0",
|
||||||
|
"lodash.keys": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lodash.memoize": {
|
"lodash.memoize": {
|
||||||
"version": "4.1.2",
|
"version": "4.1.2",
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
||||||
|
|
@ -44682,6 +45158,25 @@
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
||||||
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
|
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
|
||||||
},
|
},
|
||||||
|
"lodash.pairs": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-lgXvpU43ZNQrZ/pK2cR97YzKeAno3e3HhcyvLKsofljeHKrQcZhT1vW7fg4X61c92tM+mjD/DypoLZYuAKNIkQ==",
|
||||||
|
"requires": {
|
||||||
|
"lodash.keys": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lodash.pluck": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.pluck/-/lodash.pluck-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-L0UkqH/O3Vh+3KowchOe2+YzWMGdR90CbzpzTXGMujZAVfBmjGSvaJwpflJa4C/WNhNvLrlCtMjo6/Uvhty67g==",
|
||||||
|
"requires": {
|
||||||
|
"lodash._baseget": "^3.0.0",
|
||||||
|
"lodash._topath": "^3.0.0",
|
||||||
|
"lodash.isarray": "^3.0.0",
|
||||||
|
"lodash.map": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lodash.sortby": {
|
"lodash.sortby": {
|
||||||
"version": "4.7.0",
|
"version": "4.7.0",
|
||||||
"resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
"resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
||||||
|
|
@ -44817,7 +45312,6 @@
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
"resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz",
|
"resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz",
|
||||||
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
|
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"hash-base": "^3.0.0",
|
"hash-base": "^3.0.0",
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
|
|
@ -44834,6 +45328,14 @@
|
||||||
"resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
|
"resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
|
||||||
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
|
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
|
||||||
},
|
},
|
||||||
|
"mediastream-gain": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/mediastream-gain/-/mediastream-gain-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-fRBqj0VYSM1w/FqybEhIxyFv0GZe3mej15psQmjaekEMaZEDMJJSk2R06vpqF2Wsn9Elzbx5MgaxORdcNCJkig==",
|
||||||
|
"requires": {
|
||||||
|
"webrtcsupport": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"memfs": {
|
"memfs": {
|
||||||
"version": "3.5.3",
|
"version": "3.5.3",
|
||||||
"resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz",
|
"resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz",
|
||||||
|
|
@ -45102,6 +45604,11 @@
|
||||||
"integrity": "sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg==",
|
"integrity": "sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
|
"mockconsole": {
|
||||||
|
"version": "0.0.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/mockconsole/-/mockconsole-0.0.1.tgz",
|
||||||
|
"integrity": "sha512-9wFq0SJFTaxxEYmfjWf4U8uYku5HKwn3OsTOct3aQFLDois6HrLse2iZAy7v5hyTNts2XH6Y1LW8iMXWxiH6Vg=="
|
||||||
|
},
|
||||||
"move-concurrently": {
|
"move-concurrently": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
||||||
|
|
@ -54135,7 +54642,6 @@
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz",
|
"resolved": "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz",
|
||||||
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
|
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"hash-base": "^3.0.0",
|
"hash-base": "^3.0.0",
|
||||||
"inherits": "^2.0.1"
|
"inherits": "^2.0.1"
|
||||||
|
|
@ -54226,6 +54732,32 @@
|
||||||
"integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==",
|
"integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"rtcpeerconnection": {
|
||||||
|
"version": "3.1.6",
|
||||||
|
"resolved": "https://registry.npmmirror.com/rtcpeerconnection/-/rtcpeerconnection-3.1.6.tgz",
|
||||||
|
"integrity": "sha512-SObgG8nFtpuOD13bzlMv7tbKlTyAozbZdtE4DXc3zazSUt9b9AWbnnR+xyQw91eQ+lWXTdyHzPD8hZZSB9Rt3Q==",
|
||||||
|
"requires": {
|
||||||
|
"lodash.foreach": "^3.0.2",
|
||||||
|
"lodash.pluck": "^3.0.2",
|
||||||
|
"sdp-jingle-json": "2.x",
|
||||||
|
"traceablepeerconnection": "^1.0.0",
|
||||||
|
"webrtc-adapter-test": "^0.2.3",
|
||||||
|
"wildemitter": "1.x"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"lodash.foreach": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-3.0.3.tgz",
|
||||||
|
"integrity": "sha512-PA7Lp7pe2HMJBoB1vELegEIF3waUFnM0fWDKJVYolwZ4zHh6WTmnq0xmzfQksD66gx2quhDNyBdyaE2T8/DP3Q==",
|
||||||
|
"requires": {
|
||||||
|
"lodash._arrayeach": "^3.0.0",
|
||||||
|
"lodash._baseeach": "^3.0.0",
|
||||||
|
"lodash._bindcallback": "^3.0.0",
|
||||||
|
"lodash.isarray": "^3.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"run-parallel": {
|
"run-parallel": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
|
||||||
|
|
@ -54599,6 +55131,16 @@
|
||||||
"get-ready": "~1.0.0"
|
"get-ready": "~1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"sdp": {
|
||||||
|
"version": "1.5.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/sdp/-/sdp-1.5.4.tgz",
|
||||||
|
"integrity": "sha512-9x0+fpJHW2bbqtIktmL+H9m+BswgurPVPhWrur4cCZPDWDSsdGYvRBaKhDXlnNCD1b/Xi8cOTG2u703CTQuwgg=="
|
||||||
|
},
|
||||||
|
"sdp-jingle-json": {
|
||||||
|
"version": "2.2.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/sdp-jingle-json/-/sdp-jingle-json-2.2.1.tgz",
|
||||||
|
"integrity": "sha512-xmFFjZWsFrcX4kVWq3ZNjy7+VkH4nalB+RiNvQSQ7oDsDypI+93XcvO8FPSHgsHtUd2bTozLZgXM6KLeVtJ4Zw=="
|
||||||
|
},
|
||||||
"select-hose": {
|
"select-hose": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
|
||||||
|
|
@ -54853,7 +55395,6 @@
|
||||||
"version": "2.4.11",
|
"version": "2.4.11",
|
||||||
"resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz",
|
"resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz",
|
||||||
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
|
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
|
|
@ -56233,6 +56774,15 @@
|
||||||
"punycode": "^2.1.1"
|
"punycode": "^2.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"traceablepeerconnection": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/traceablepeerconnection/-/traceablepeerconnection-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-YdBqgxPB03fwuNaEXZTOsqLxZJnA2A6D1UqA+1RVYFCc9VoD4EIprg0HiaWZpKqj3n1XuJiS+5hZBALqDjKpKw==",
|
||||||
|
"requires": {
|
||||||
|
"webrtc-adapter": "^1.0",
|
||||||
|
"wildemitter": "1.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tryer": {
|
"tryer": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz",
|
||||||
|
|
@ -57268,6 +57818,37 @@
|
||||||
"resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz",
|
"resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz",
|
||||||
"integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
|
"integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
|
||||||
},
|
},
|
||||||
|
"webrtc": {
|
||||||
|
"version": "1.14.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtc/-/webrtc-1.14.1.tgz",
|
||||||
|
"integrity": "sha512-en4xHfLMsgRY7cxju6qcHyCE56/+005HkC4V5qtpTLlUlHLxHX11pB8jnyZp6gaZ6A65sh0VnbHn1AyI052ovw==",
|
||||||
|
"requires": {
|
||||||
|
"filetransfer": "^2.0.0",
|
||||||
|
"localmedia": "^1.0.2",
|
||||||
|
"mockconsole": "0.0.1",
|
||||||
|
"rtcpeerconnection": "^3.0.6",
|
||||||
|
"webrtcsupport": "^1.2.4",
|
||||||
|
"wildemitter": "1.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"webrtc-adapter": {
|
||||||
|
"version": "1.2.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtc-adapter/-/webrtc-adapter-1.2.2.tgz",
|
||||||
|
"integrity": "sha512-qJKt/SbDF62+8/akW0pTry0cPO5LVai+mIb3h9ei87sCfeVVKLpkX0/HgStLUtbu5cbuMi0UYHtuUaSvw3g75g==",
|
||||||
|
"requires": {
|
||||||
|
"sdp": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"webrtc-adapter-test": {
|
||||||
|
"version": "0.2.10",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtc-adapter-test/-/webrtc-adapter-test-0.2.10.tgz",
|
||||||
|
"integrity": "sha512-fhFwkniodK0gDVYi/P/qMRV4PNLT+ctJo/WCKL4izK2SYkN6gj4ajy3Pi/bEgM5wRnUdN14oIlvb5BKtFtloVw=="
|
||||||
|
},
|
||||||
|
"webrtcsupport": {
|
||||||
|
"version": "1.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/webrtcsupport/-/webrtcsupport-1.3.2.tgz",
|
||||||
|
"integrity": "sha512-/7cKJNIFHUVuTgKRLUKNxqFzHXNI+sGUbYdJAcYWoXJyzkEy+NTmKyWPGf2qbE6hmJxfDLA5utyaBttxpT778A=="
|
||||||
|
},
|
||||||
"websocket-driver": {
|
"websocket-driver": {
|
||||||
"version": "0.7.4",
|
"version": "0.7.4",
|
||||||
"resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz",
|
"resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz",
|
||||||
|
|
@ -57394,6 +57975,11 @@
|
||||||
"resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz",
|
"resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz",
|
||||||
"integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng=="
|
"integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng=="
|
||||||
},
|
},
|
||||||
|
"wildemitter": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/wildemitter/-/wildemitter-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-UMmSUoIQSir+XbBpTxOTS53uJ8s/lVhADCkEbhfRjUGFDPme/XGOb0sBWLx5sTz7Wx/2+TlAw1eK9O5lw5PiEw=="
|
||||||
|
},
|
||||||
"win-release": {
|
"win-release": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmmirror.com/win-release/-/win-release-1.1.1.tgz",
|
"resolved": "https://registry.npmmirror.com/win-release/-/win-release-1.1.1.tgz",
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,7 @@
|
||||||
"webpack": "^5.64.4",
|
"webpack": "^5.64.4",
|
||||||
"webpack-dev-server": "^4.6.0",
|
"webpack-dev-server": "^4.6.0",
|
||||||
"webpack-manifest-plugin": "^4.0.2",
|
"webpack-manifest-plugin": "^4.0.2",
|
||||||
|
"webrtc": "^1.14.1",
|
||||||
"workbox-webpack-plugin": "^6.4.1"
|
"workbox-webpack-plugin": "^6.4.1"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
57
src/App.tsx
57
src/App.tsx
|
|
@ -1,66 +1,13 @@
|
||||||
import { inject, observer } from "mobx-react";
|
|
||||||
import { Modal } from "antd";
|
|
||||||
import { Store } from "antd/lib/form/interface";
|
|
||||||
import { Outlet } from "react-router";
|
import { Outlet } from "react-router";
|
||||||
import SimpleForm from "./components/form/simple_form";
|
|
||||||
import { FormInstance } from "antd/lib/form";
|
|
||||||
import React from "react";
|
|
||||||
import MyComponent from "./components/errorComp";
|
import MyComponent from "./components/errorComp";
|
||||||
const App = (props: Store) => {
|
const App = () => {
|
||||||
const { usrStore } = props;
|
|
||||||
const formRef = React.useRef<FormInstance>(null);
|
|
||||||
const loginForm = [
|
|
||||||
{
|
|
||||||
type: "input",
|
|
||||||
label: "用户名",
|
|
||||||
name: "account",
|
|
||||||
value: "",
|
|
||||||
rules: [{ required: true, message: "请输入用户名!" }],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "password",
|
|
||||||
label: "密码",
|
|
||||||
name: "password",
|
|
||||||
value: "",
|
|
||||||
rules: [{ required: true, message: "请输入密码!" }],
|
|
||||||
},
|
|
||||||
];
|
|
||||||
const onFinish = (values: any) => {
|
|
||||||
usrStore.login({
|
|
||||||
userName: values.account,
|
|
||||||
passWord: values.password,
|
|
||||||
});
|
|
||||||
};
|
|
||||||
const onFinishFailed = () => {};
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<MyComponent>
|
<MyComponent>
|
||||||
<Outlet />
|
<Outlet />
|
||||||
<Modal
|
|
||||||
title="登录"
|
|
||||||
className="owner_model"
|
|
||||||
width={"50%"}
|
|
||||||
open={usrStore.isNeedLogin}
|
|
||||||
afterClose={() => {}}
|
|
||||||
onOk={() => {
|
|
||||||
formRef.current?.submit();
|
|
||||||
}}
|
|
||||||
onCancel={() => {
|
|
||||||
usrStore.closeLoginDilog();
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<SimpleForm
|
|
||||||
formRef={formRef}
|
|
||||||
formName="login_basic"
|
|
||||||
colProps={4}
|
|
||||||
formDatas={loginForm}
|
|
||||||
onFinish={onFinish}
|
|
||||||
onFinishFailed={onFinishFailed}
|
|
||||||
/>
|
|
||||||
</Modal>
|
|
||||||
</MyComponent>
|
</MyComponent>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default inject("usrStore")(observer(App));
|
export default App;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { FormInstance } from "antd"
|
import { FormInstance } from "antd"
|
||||||
|
import React from "react"
|
||||||
export enum FormType {
|
export enum FormType {
|
||||||
input = "input",
|
input = "input",
|
||||||
select = "select",
|
select = "select",
|
||||||
|
|
@ -32,6 +33,7 @@ export interface SimpleFormData {
|
||||||
onFinishFailed: Function,
|
onFinishFailed: Function,
|
||||||
formDatas: Array<FormDatas>,
|
formDatas: Array<FormDatas>,
|
||||||
createCallback?: Function
|
createCallback?: Function
|
||||||
|
children?: React.ReactElement
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,9 @@ const SimpleForm = (props: SimpleFormData) => {
|
||||||
onFinish={onFinish}
|
onFinish={onFinish}
|
||||||
autoComplete="on"
|
autoComplete="on"
|
||||||
>
|
>
|
||||||
|
{
|
||||||
|
props.children??props.children
|
||||||
|
}
|
||||||
{props.formDatas.map((v) => {
|
{props.formDatas.map((v) => {
|
||||||
switch (v.type) {
|
switch (v.type) {
|
||||||
case FormType.input:
|
case FormType.input:
|
||||||
|
|
@ -159,6 +162,8 @@ const SimpleForm = (props: SimpleFormData) => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
})}
|
})}
|
||||||
|
|
||||||
|
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,301 @@
|
||||||
|
|
||||||
|
// // 档案管理
|
||||||
|
|
||||||
|
// import { Button, Space, Modal, FormInstance, Flex } from "antd";
|
||||||
|
// import { inject, observer } from "mobx-react";
|
||||||
|
// import { useEffect, useState } from "react";
|
||||||
|
// import { Store } from "antd/lib/form/interface";
|
||||||
|
// import SimpleForm from "@/components/form/simple_form";
|
||||||
|
// import React from "react";
|
||||||
|
// import { folderConfig } from "./archives_conf";
|
||||||
|
// import { Form, Select } from "antd";
|
||||||
|
// import BTable from "@/components/b_table";
|
||||||
|
// const { Option } = Select;
|
||||||
|
// const Archive = (props: Store) => {
|
||||||
|
// const { folderStore,archivesStore } = props;
|
||||||
|
// const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
|
// const [isModalOpenArchives, setIsModalOpenArchives] =
|
||||||
|
// useState<boolean>(false);
|
||||||
|
|
||||||
|
// const [projectConfig, setProjectConfig] = useState<any>([]);
|
||||||
|
// const formRef = React.useRef<FormInstance>(null);
|
||||||
|
// const [tagId, setId] = useState<Number | null>(null);
|
||||||
|
// const [folderList, setfolderList] = useState<any>(null); // 仓库列表
|
||||||
|
// const onFinish = (values: any) => {
|
||||||
|
// let data = values;
|
||||||
|
// if (!tagId) {
|
||||||
|
// folderStore.add(data);
|
||||||
|
// } else {
|
||||||
|
// folderStore.putItem(tagId, data);
|
||||||
|
// }
|
||||||
|
// setIsModalOpen(false);
|
||||||
|
// };
|
||||||
|
// useEffect(() => {
|
||||||
|
// folderStore.getlist().then(()=>{
|
||||||
|
// setfolderList(folderStore.list);
|
||||||
|
// });
|
||||||
|
|
||||||
|
// }, [folderStore]);
|
||||||
|
|
||||||
|
// // 添加事件
|
||||||
|
// const addHandler = () => {
|
||||||
|
// setProjectConfig(folderConfig);
|
||||||
|
// setIsModalOpen(true);
|
||||||
|
// };
|
||||||
|
|
||||||
|
// // 取消
|
||||||
|
// const cancelHandler = () => {
|
||||||
|
// setId(null);
|
||||||
|
// setIsModalOpen(false);
|
||||||
|
// };
|
||||||
|
|
||||||
|
// const cancelHandlerArch = () => {
|
||||||
|
// setIsModalOpenArchives(false);
|
||||||
|
// };
|
||||||
|
|
||||||
|
// // 文件夹点击
|
||||||
|
// const folderHandle = () => {
|
||||||
|
// setIsModalOpenArchives(true);
|
||||||
|
// };
|
||||||
|
// const onFinishFailed = () => {};
|
||||||
|
// return (
|
||||||
|
// <div className="contentBox">
|
||||||
|
// <Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
||||||
|
// <Space direction="horizontal" size={"middle"}>
|
||||||
|
// <Button type="default" onClick={addHandler}>
|
||||||
|
// 添加档案
|
||||||
|
// </Button>
|
||||||
|
// </Space>
|
||||||
|
// <BTable
|
||||||
|
// store={archivesStore}
|
||||||
|
// columns={[
|
||||||
|
// ...columns,
|
||||||
|
// {
|
||||||
|
// title: "操作",
|
||||||
|
// dataIndex: "id",
|
||||||
|
// ellipsis: {
|
||||||
|
// showTitle: false,
|
||||||
|
// },
|
||||||
|
// render: (any, record) => column_widget(any, record),
|
||||||
|
// },
|
||||||
|
// ]}
|
||||||
|
// dataSource={archivesStore.list}
|
||||||
|
// />
|
||||||
|
// <Modal
|
||||||
|
// title={"档案查看"}
|
||||||
|
// width={"80%"}
|
||||||
|
// open={isModalOpenArchives}
|
||||||
|
// onOk={() => cancelHandlerArch}
|
||||||
|
// onCancel={cancelHandlerArch}
|
||||||
|
// >
|
||||||
|
// </Modal>
|
||||||
|
// <Modal
|
||||||
|
// title={!tagId ? "添加文件夹" : "编辑文件夹"}
|
||||||
|
// width={600}
|
||||||
|
// open={isModalOpen}
|
||||||
|
// afterClose={() => formRef.current?.resetFields()}
|
||||||
|
// onOk={() => formRef.current?.submit()}
|
||||||
|
// onCancel={cancelHandler}
|
||||||
|
// >
|
||||||
|
// <SimpleForm
|
||||||
|
// formRef={formRef}
|
||||||
|
// createCallback={() => {}}
|
||||||
|
// formName="card_basic"
|
||||||
|
// colProps={12}
|
||||||
|
// span={6}
|
||||||
|
// subBtnName="提交"
|
||||||
|
// formDatas={projectConfig}
|
||||||
|
// onFinish={onFinish}
|
||||||
|
// initialValues={true}
|
||||||
|
// onFinishFailed={onFinishFailed}
|
||||||
|
// >
|
||||||
|
// <Form.Item
|
||||||
|
// key="ac_identity"
|
||||||
|
// label="所属档案类别"
|
||||||
|
// name="ac_identity"
|
||||||
|
// rules={[{ required: true, message: "请选择所属档案类别!" }]}
|
||||||
|
// >
|
||||||
|
// <Select placeholder="">
|
||||||
|
// {folderList?.map((v: any) => {
|
||||||
|
// return (
|
||||||
|
// <Option key={v.identity} value={v.identity}>
|
||||||
|
// {v.category_name}
|
||||||
|
// </Option>
|
||||||
|
// );
|
||||||
|
// })}
|
||||||
|
// </Select>
|
||||||
|
// </Form.Item>
|
||||||
|
// </SimpleForm>
|
||||||
|
// </Modal>
|
||||||
|
// </Space>
|
||||||
|
// </div>
|
||||||
|
// );
|
||||||
|
// };
|
||||||
|
|
||||||
|
// export default inject(...["archivesStore", "folderStore"])(
|
||||||
|
// observer(Archive)
|
||||||
|
// );
|
||||||
|
|
||||||
|
|
||||||
|
import { Button, Space, Modal, FormInstance, Select } from "antd";
|
||||||
|
import { inject, observer } from "mobx-react";
|
||||||
|
import BTable from "@/components/b_table";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { Store } from "antd/lib/form/interface";
|
||||||
|
import SimpleForm from "@/components/form/simple_form";
|
||||||
|
import React from "react";
|
||||||
|
import { columns_ac, defaultConfig } from "./archivesCat_clumn";
|
||||||
|
import { Form } from "antd";
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
const { Option } = Select;
|
||||||
|
const Archive = (props: Store) => {
|
||||||
|
const { archivesStore, folderStore } = props;
|
||||||
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
|
const [projectConfig, setProjectConfig] = useState<any>([]);
|
||||||
|
const formRef = React.useRef<FormInstance>(null);
|
||||||
|
const [record, setRecord] = useState<any>(null);
|
||||||
|
const [stashList, setStash] = useState<any>(null); // 仓库列表
|
||||||
|
// 获取物资列表
|
||||||
|
useEffect(() => {
|
||||||
|
folderStore.getlist().then(() => {
|
||||||
|
setStash(folderStore.list)
|
||||||
|
setProjectConfig(defaultConfig);
|
||||||
|
});
|
||||||
|
}, [folderStore]);
|
||||||
|
|
||||||
|
// 获取分类
|
||||||
|
useEffect(() => {
|
||||||
|
archivesStore.getlist()
|
||||||
|
}, [archivesStore]);
|
||||||
|
|
||||||
|
const column_widget = (any, record) => {
|
||||||
|
return (
|
||||||
|
<Space wrap>
|
||||||
|
<Button
|
||||||
|
type="dashed"
|
||||||
|
size="small"
|
||||||
|
onClick={() => {
|
||||||
|
edit(record);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
编辑
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
type="dashed"
|
||||||
|
danger
|
||||||
|
size="small"
|
||||||
|
onClick={() => {
|
||||||
|
archivesStore.deleteItem(record.id);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
const edit = (record) => {
|
||||||
|
setIsModalOpen(true);
|
||||||
|
record.expiry_date = dayjs(record.expiry_date);
|
||||||
|
setRecord(record);
|
||||||
|
};
|
||||||
|
const onFinish = (values: any) => {
|
||||||
|
let data = {
|
||||||
|
...values,
|
||||||
|
file_url: values.file_url[0].name,
|
||||||
|
};
|
||||||
|
if (!record?.id) {
|
||||||
|
archivesStore.add(data);
|
||||||
|
} else {
|
||||||
|
archivesStore.putItem(record.id, data);
|
||||||
|
}
|
||||||
|
setIsModalOpen(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const onFinishFailed = () => {};
|
||||||
|
return (
|
||||||
|
<div className="contentBox">
|
||||||
|
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
||||||
|
<Space direction="horizontal" size={"middle"}>
|
||||||
|
<Button
|
||||||
|
type="default"
|
||||||
|
onClick={() => {
|
||||||
|
setRecord(null);
|
||||||
|
setProjectConfig(defaultConfig);
|
||||||
|
setIsModalOpen(true);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
添加档案
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
<BTable
|
||||||
|
store={archivesStore}
|
||||||
|
columns={[
|
||||||
|
...columns_ac,
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
dataIndex: "id",
|
||||||
|
ellipsis: {
|
||||||
|
showTitle: false,
|
||||||
|
},
|
||||||
|
render: (any, record) => column_widget(any, record),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
dataSource={archivesStore.list}
|
||||||
|
/>
|
||||||
|
<Modal
|
||||||
|
title={!record?.id ? "添加档案" : "编辑档案"}
|
||||||
|
width={1200}
|
||||||
|
open={isModalOpen}
|
||||||
|
afterClose={() => formRef.current?.resetFields()}
|
||||||
|
onOk={() => formRef.current?.submit()}
|
||||||
|
onCancel={() => {
|
||||||
|
setIsModalOpen(false);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<SimpleForm
|
||||||
|
formRef={formRef}
|
||||||
|
createCallback={() => {
|
||||||
|
if (record?.id) {
|
||||||
|
formRef.current?.setFieldsValue(record);
|
||||||
|
} else {
|
||||||
|
formRef.current?.setFieldsValue(null);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
formName="card_basic"
|
||||||
|
colProps={25}
|
||||||
|
subBtnName="提交"
|
||||||
|
formDatas={projectConfig}
|
||||||
|
onFinish={onFinish}
|
||||||
|
initialValues={true}
|
||||||
|
onFinishFailed={onFinishFailed}
|
||||||
|
>
|
||||||
|
<>
|
||||||
|
<Form.Item
|
||||||
|
key="folder_identity"
|
||||||
|
label="文件夹"
|
||||||
|
name="folder_identity"
|
||||||
|
rules={[{ required: true, message: "请选择文件夹!" }]}
|
||||||
|
>
|
||||||
|
<Select placeholder="">
|
||||||
|
{stashList?.map((v: any) => {
|
||||||
|
return (
|
||||||
|
<Option key={v.identity} value={v.identity}>
|
||||||
|
{v.folder_name}
|
||||||
|
</Option>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
</>
|
||||||
|
</SimpleForm>
|
||||||
|
</Modal>
|
||||||
|
</Space>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default inject(
|
||||||
|
"archivesStore",
|
||||||
|
"folderStore"
|
||||||
|
)(observer(Archive));
|
||||||
|
|
@ -0,0 +1,124 @@
|
||||||
|
// 类别
|
||||||
|
|
||||||
|
import { Button, Space, Modal, FormInstance } from "antd";
|
||||||
|
import { inject, observer } from "mobx-react";
|
||||||
|
import BTable from "@/components/b_table";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { Store } from "antd/lib/form/interface";
|
||||||
|
import SimpleForm from "@/components/form/simple_form";
|
||||||
|
import React from "react";
|
||||||
|
import { columns, defaultConfig } from "./archivesCat_clumn";
|
||||||
|
|
||||||
|
const ArchivesCat = (props: Store) => {
|
||||||
|
const { acStore } = props;
|
||||||
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
|
const [projectConfig, setProjectConfig] = useState<any>([]);
|
||||||
|
const formRef = React.useRef<FormInstance>(null);
|
||||||
|
const [record, setRecord] = useState<any>(null);
|
||||||
|
useEffect(() => {
|
||||||
|
acStore.getlist();
|
||||||
|
setProjectConfig(defaultConfig);
|
||||||
|
}, [acStore]);
|
||||||
|
const column_widget = (any, record) => {
|
||||||
|
return (
|
||||||
|
<Space wrap>
|
||||||
|
<Button
|
||||||
|
type="dashed"
|
||||||
|
size="small"
|
||||||
|
onClick={() => {
|
||||||
|
edit(record);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
编辑
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
type="dashed"
|
||||||
|
danger
|
||||||
|
size="small"
|
||||||
|
onClick={() => {
|
||||||
|
acStore.deleteItem(record.id);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
const edit = (record) => {
|
||||||
|
setIsModalOpen(true);
|
||||||
|
setRecord(record);
|
||||||
|
};
|
||||||
|
const onFinish = (values: any) => {
|
||||||
|
let data = {
|
||||||
|
...values,
|
||||||
|
pid: values.pid ?? 0,
|
||||||
|
};
|
||||||
|
if (!record?.id) {
|
||||||
|
acStore.add(data);
|
||||||
|
} else {
|
||||||
|
acStore.putItem(record.id, data);
|
||||||
|
}
|
||||||
|
setIsModalOpen(false);
|
||||||
|
};
|
||||||
|
const handleAdd = () => {
|
||||||
|
setRecord(null);
|
||||||
|
setProjectConfig(defaultConfig);
|
||||||
|
setIsModalOpen(true);
|
||||||
|
};
|
||||||
|
const onFinishFailed = () => {};
|
||||||
|
return (
|
||||||
|
<div className="contentBox">
|
||||||
|
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
||||||
|
<Space direction="horizontal" size={"middle"}>
|
||||||
|
<Button onClick={handleAdd}>添加档案类别</Button>
|
||||||
|
</Space>
|
||||||
|
<BTable
|
||||||
|
store={acStore}
|
||||||
|
columns={[
|
||||||
|
...columns,
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
dataIndex: "id",
|
||||||
|
ellipsis: {
|
||||||
|
showTitle: false,
|
||||||
|
},
|
||||||
|
render: (any, record) => column_widget(any, record),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
dataSource={acStore.list}
|
||||||
|
/>
|
||||||
|
<Modal
|
||||||
|
title={!record?.id ? "添加档案类别" : "编辑档案类别"}
|
||||||
|
width={1200}
|
||||||
|
open={isModalOpen}
|
||||||
|
afterClose={() => formRef.current?.resetFields()}
|
||||||
|
onOk={() => formRef.current?.submit()}
|
||||||
|
onCancel={() => {
|
||||||
|
setIsModalOpen(false);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<SimpleForm
|
||||||
|
formRef={formRef}
|
||||||
|
createCallback={() => {
|
||||||
|
if (record?.id) {
|
||||||
|
formRef.current?.setFieldsValue(record);
|
||||||
|
} else {
|
||||||
|
formRef.current?.setFieldsValue(null);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
formName="card_basic"
|
||||||
|
colProps={25}
|
||||||
|
subBtnName="提交"
|
||||||
|
formDatas={projectConfig}
|
||||||
|
onFinish={onFinish}
|
||||||
|
initialValues={true}
|
||||||
|
onFinishFailed={onFinishFailed}
|
||||||
|
/>
|
||||||
|
</Modal>
|
||||||
|
</Space>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default inject("acStore")(observer(ArchivesCat));
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
import { FormType } from "@/components/form/interface";
|
||||||
|
import { UserDataType } from "@/model/userModel";
|
||||||
|
import { ColumnsType } from "antd/lib/table";
|
||||||
|
export const columns: ColumnsType<UserDataType> = [
|
||||||
|
{
|
||||||
|
title: "分类名称",
|
||||||
|
dataIndex: "category_name",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const columns_ac: ColumnsType<UserDataType> = [
|
||||||
|
{
|
||||||
|
title: "档案名称",
|
||||||
|
dataIndex: "archives_name",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "档案描述",
|
||||||
|
dataIndex: "archives_desc",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
export const defaultConfig = [
|
||||||
|
{
|
||||||
|
type: FormType.input,
|
||||||
|
label: "档案名称",
|
||||||
|
name: "archives_name",
|
||||||
|
value: "",
|
||||||
|
rules: [{ required: true, message: "请输入分类名称!" }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: FormType.input,
|
||||||
|
label: "档案描述",
|
||||||
|
name: "archives_desc",
|
||||||
|
value: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: FormType.upload,
|
||||||
|
label: "档案文件",
|
||||||
|
name: "file_url",
|
||||||
|
value: "",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,139 @@
|
||||||
|
// 档案管理
|
||||||
|
|
||||||
|
import { Button, Space, Modal, FormInstance, Flex } from "antd";
|
||||||
|
import { inject, observer } from "mobx-react";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { Store } from "antd/lib/form/interface";
|
||||||
|
import SimpleForm from "@/components/form/simple_form";
|
||||||
|
import React from "react";
|
||||||
|
import FolderTwoTone from "@ant-design/icons/FolderOpenTwoTone";
|
||||||
|
import { folderConfig } from "./archives_conf";
|
||||||
|
import { Form, Select } from "antd";
|
||||||
|
import Preview from "./preview";
|
||||||
|
const { Option } = Select;
|
||||||
|
const ArchivesFolder = (props: Store) => {
|
||||||
|
const { folderStore, acStore } = props;
|
||||||
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
|
const [isModalOpenArchives, setIsModalOpenArchives] =
|
||||||
|
useState<boolean>(false);
|
||||||
|
|
||||||
|
const [projectConfig, setProjectConfig] = useState<any>([]);
|
||||||
|
const formRef = React.useRef<FormInstance>(null);
|
||||||
|
const [tagId, setId] = useState<Number | null>(null);
|
||||||
|
const [catList, setCatList] = useState<any>(null); // 仓库列表
|
||||||
|
const onFinish = (values: any) => {
|
||||||
|
let data = values;
|
||||||
|
if (!tagId) {
|
||||||
|
folderStore.add(data);
|
||||||
|
} else {
|
||||||
|
folderStore.putItem(tagId, data);
|
||||||
|
}
|
||||||
|
setIsModalOpen(false);
|
||||||
|
};
|
||||||
|
useEffect(() => {
|
||||||
|
folderStore.getlist();
|
||||||
|
acStore.getlist().then(() => {
|
||||||
|
setCatList(acStore.list);
|
||||||
|
});
|
||||||
|
}, [folderStore, acStore]);
|
||||||
|
|
||||||
|
// 添加事件
|
||||||
|
const addHandler = () => {
|
||||||
|
setProjectConfig(folderConfig);
|
||||||
|
setIsModalOpen(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 取消
|
||||||
|
const cancelHandler = () => {
|
||||||
|
setId(null);
|
||||||
|
setIsModalOpen(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const cancelHandlerArch = () => {
|
||||||
|
setIsModalOpenArchives(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 文件夹点击
|
||||||
|
const folderHandle = (e) => {
|
||||||
|
folderStore.getAlist(e.identity).then((res) => {
|
||||||
|
setIsModalOpenArchives(true);
|
||||||
|
})
|
||||||
|
};
|
||||||
|
const onFinishFailed = () => {};
|
||||||
|
return (
|
||||||
|
<div className="contentBox">
|
||||||
|
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
||||||
|
<Space direction="horizontal" size={"middle"}>
|
||||||
|
<Button type="default" onClick={addHandler}>
|
||||||
|
创建文件夹
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
<Flex wrap gap="25px" justify="start">
|
||||||
|
{Array.from({ length: folderStore.list?.length ?? 0 }, (_, i) => (
|
||||||
|
<div
|
||||||
|
key={i}
|
||||||
|
onClick={()=>folderHandle(folderStore.list[i])}
|
||||||
|
style={{ cursor: "pointer", width: "120px" }}
|
||||||
|
>
|
||||||
|
<FolderTwoTone rotate={-270} style={{ fontSize: "80px" }} />
|
||||||
|
<p style={{ fontSize: "14px" }}>
|
||||||
|
{folderStore.list[i].folder_name}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</Flex>
|
||||||
|
<Modal
|
||||||
|
title={"档案预览"}
|
||||||
|
width={"80%"}
|
||||||
|
open={isModalOpenArchives}
|
||||||
|
onCancel={cancelHandlerArch}
|
||||||
|
footer={null}
|
||||||
|
>
|
||||||
|
<Preview list={folderStore.alist} />
|
||||||
|
</Modal>
|
||||||
|
<Modal
|
||||||
|
title={!tagId ? "添加文件夹" : "编辑文件夹"}
|
||||||
|
width={600}
|
||||||
|
open={isModalOpen}
|
||||||
|
afterClose={() => formRef.current?.resetFields()}
|
||||||
|
onOk={() => formRef.current?.submit()}
|
||||||
|
onCancel={cancelHandler}
|
||||||
|
>
|
||||||
|
<SimpleForm
|
||||||
|
formRef={formRef}
|
||||||
|
createCallback={() => {}}
|
||||||
|
formName="card_basic"
|
||||||
|
colProps={12}
|
||||||
|
span={6}
|
||||||
|
subBtnName="提交"
|
||||||
|
formDatas={projectConfig}
|
||||||
|
onFinish={onFinish}
|
||||||
|
initialValues={true}
|
||||||
|
onFinishFailed={onFinishFailed}
|
||||||
|
>
|
||||||
|
<Form.Item
|
||||||
|
key="ac_identity"
|
||||||
|
label="所属档案类别"
|
||||||
|
name="ac_identity"
|
||||||
|
rules={[{ required: true, message: "请选择所属档案类别!" }]}
|
||||||
|
>
|
||||||
|
<Select placeholder="">
|
||||||
|
{catList?.map((v: any) => {
|
||||||
|
return (
|
||||||
|
<Option key={v.identity} value={v.identity}>
|
||||||
|
{v.category_name}
|
||||||
|
</Option>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
</SimpleForm>
|
||||||
|
</Modal>
|
||||||
|
</Space>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default inject(...["archivesStore", "folderStore", "acStore"])(
|
||||||
|
observer(ArchivesFolder)
|
||||||
|
);
|
||||||
|
|
@ -1,10 +1,4 @@
|
||||||
export const folderConfig = [
|
export const folderConfig = [
|
||||||
{
|
|
||||||
type: "input",
|
|
||||||
label: "所属档案分类",
|
|
||||||
name: "ac_identity",
|
|
||||||
value: "",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
type: "input",
|
type: "input",
|
||||||
label: "文件夹名称",
|
label: "文件夹名称",
|
||||||
|
|
|
||||||
|
|
@ -1,106 +1,37 @@
|
||||||
import { Button, Space, Modal, FormInstance, Flex } from "antd";
|
|
||||||
import { inject, observer } from "mobx-react";
|
|
||||||
import { useEffect, useState } from "react";
|
|
||||||
import { Store } from "antd/lib/form/interface";
|
|
||||||
import SimpleForm from "@/components/form/simple_form";
|
|
||||||
import React from "react";
|
|
||||||
import FolderTwoTone from "@ant-design/icons/FolderOpenTwoTone";
|
|
||||||
import { folderConfig, catConfig, archiveConfig } from "./archives_conf";
|
|
||||||
const Archives = (props: Store) => {
|
|
||||||
const { folderStore, acStore } = props;
|
|
||||||
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
|
||||||
const [projectConfig, setProjectConfig] = useState<any>([]);
|
|
||||||
const formRef = React.useRef<FormInstance>(null);
|
|
||||||
const [tagId, setId] = useState<Number | null>(null);
|
|
||||||
|
|
||||||
const onFinish = (values: any) => {
|
|
||||||
let data = values;
|
|
||||||
data.head_img = values.head_img[0].url;
|
|
||||||
if (!tagId) {
|
|
||||||
folderStore.add(data);
|
|
||||||
} else {
|
|
||||||
folderStore.putItem(tagId, data);
|
|
||||||
}
|
|
||||||
setIsModalOpen(false);
|
|
||||||
};
|
|
||||||
useEffect(() => {
|
|
||||||
folderStore.getlist();
|
|
||||||
acStore.getlist();
|
|
||||||
}, [folderStore, acStore]);
|
|
||||||
|
|
||||||
// 添加事件
|
import { Tabs, TabsProps } from "antd";
|
||||||
const addHandler = () => {
|
import ArchivesCat from "./archivesCat";
|
||||||
setProjectConfig(folderConfig);
|
import ArchivesFolder from "./archivesFolder";
|
||||||
setIsModalOpen(true);
|
import Archive from "./archive";
|
||||||
};
|
|
||||||
|
|
||||||
// 取消
|
|
||||||
const cancelHandler = () => {
|
|
||||||
setId(null);
|
|
||||||
setIsModalOpen(false);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 文件夹点击
|
const Archives = () => {
|
||||||
const folderHandle = () => {};
|
const onChange = (key: string) => {
|
||||||
const addCatHandler = () => {
|
console.log(key);
|
||||||
setProjectConfig(catConfig);
|
|
||||||
setIsModalOpen(true);
|
|
||||||
};
|
};
|
||||||
|
const items: TabsProps["items"] = [
|
||||||
const addArchivesHandler = () => {
|
{
|
||||||
setProjectConfig(archiveConfig);
|
key: "1",
|
||||||
setIsModalOpen(true);
|
label: "档案类别管理",
|
||||||
};
|
children: <ArchivesCat />,
|
||||||
const onFinishFailed = () => {};
|
},
|
||||||
|
{
|
||||||
|
key: "2",
|
||||||
|
label: "档案文件夹管理",
|
||||||
|
children: <ArchivesFolder />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "3",
|
||||||
|
label: "档案管理",
|
||||||
|
children: <Archive />,
|
||||||
|
},
|
||||||
|
];
|
||||||
return (
|
return (
|
||||||
<div className="contentBox">
|
<>
|
||||||
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
<Tabs defaultActiveKey="1" items={items} onChange={onChange} />
|
||||||
<Space direction="horizontal" size={"middle"}>
|
</>
|
||||||
<Button type="default" onClick={addHandler}>
|
|
||||||
创建文件夹
|
|
||||||
</Button>
|
|
||||||
<Button type="default" onClick={addCatHandler}>
|
|
||||||
添加档案类别
|
|
||||||
</Button>
|
|
||||||
<Button type="default" onClick={addArchivesHandler}>
|
|
||||||
上传档案
|
|
||||||
</Button>
|
|
||||||
</Space>
|
|
||||||
<Flex wrap gap="25px" justify="start">
|
|
||||||
{Array.from({ length: folderStore.list?.length ?? 0 }, (_, i) => (
|
|
||||||
<div key={i} onClick={folderHandle}>
|
|
||||||
<FolderTwoTone rotate={-270} style={{ fontSize: "120px" }} />
|
|
||||||
<p>{folderStore.list[i].folder_name}</p>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</Flex>
|
|
||||||
|
|
||||||
<Modal
|
|
||||||
title={!tagId ? "添加文件夹" : "编辑文件夹"}
|
|
||||||
width={600}
|
|
||||||
open={isModalOpen}
|
|
||||||
afterClose={() => formRef.current?.resetFields()}
|
|
||||||
onOk={() => formRef.current?.submit()}
|
|
||||||
onCancel={cancelHandler}
|
|
||||||
>
|
|
||||||
<SimpleForm
|
|
||||||
formRef={formRef}
|
|
||||||
createCallback={() => {}}
|
|
||||||
formName="card_basic"
|
|
||||||
colProps={12}
|
|
||||||
span={6}
|
|
||||||
subBtnName="提交"
|
|
||||||
formDatas={projectConfig}
|
|
||||||
onFinish={onFinish}
|
|
||||||
initialValues={true}
|
|
||||||
onFinishFailed={onFinishFailed}
|
|
||||||
/>
|
|
||||||
</Modal>
|
|
||||||
</Space>
|
|
||||||
</div>
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default inject(...["archivesStore", "folderStore", "acStore"])(
|
export default Archives;
|
||||||
observer(Archives)
|
|
||||||
);
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
.preview_container{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: start;
|
||||||
|
.preview_center{
|
||||||
|
width: 10px;
|
||||||
|
}
|
||||||
|
.preview_left{
|
||||||
|
width: 10%;
|
||||||
|
height: 100%;
|
||||||
|
.select{
|
||||||
|
background-color: red;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
>span{
|
||||||
|
display: block;
|
||||||
|
padding-left: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
height: 35px;
|
||||||
|
line-height: 35px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.preview_right{
|
||||||
|
width: 75%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
import { useState } from "react";
|
||||||
|
import "./preview.less";
|
||||||
|
const Preview = (props: any) => {
|
||||||
|
const { list } = props;
|
||||||
|
const [selectIndex, setSelectIndex] = useState<number>(0);
|
||||||
|
return (
|
||||||
|
<div className="preview_container">
|
||||||
|
<div className="preview_left">
|
||||||
|
{list.map((item: any, index: number) => (
|
||||||
|
<span
|
||||||
|
className={selectIndex === index ? "select" : ""}
|
||||||
|
onClick={() => setSelectIndex(index)}
|
||||||
|
key={item}
|
||||||
|
>
|
||||||
|
{item.archives_name}
|
||||||
|
</span>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
<div className="preview_center"></div>
|
||||||
|
<div className="preview_right">
|
||||||
|
<p>预览查看</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Preview;
|
||||||
|
|
@ -1,17 +1,19 @@
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { Button, Modal } from "antd";
|
import { Button, Modal } from "antd";
|
||||||
import "./right.less";
|
import "./right.less";
|
||||||
|
import { webRTC } from "@/util/webRtc";
|
||||||
const HomeBottom = () => {
|
const HomeBottom = () => {
|
||||||
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
const openDispatch = () => {
|
const openDispatch = () => {
|
||||||
setIsModalOpen(true);
|
setIsModalOpen(true);
|
||||||
|
webRTC.init();
|
||||||
};
|
};
|
||||||
const handleCancle = () => {
|
const handleCancle = () => {
|
||||||
setIsModalOpen(false);
|
setIsModalOpen(false);
|
||||||
};
|
};
|
||||||
const handleSubmit = ()=>{
|
const handleSubmit = () => {
|
||||||
setIsModalOpen(false);
|
setIsModalOpen(false);
|
||||||
}
|
};
|
||||||
return (
|
return (
|
||||||
<div className="bottom_container">
|
<div className="bottom_container">
|
||||||
<div className="bottom_content">
|
<div className="bottom_content">
|
||||||
|
|
@ -31,14 +33,24 @@ const HomeBottom = () => {
|
||||||
<Button key="return" ghost onClick={handleCancle}>
|
<Button key="return" ghost onClick={handleCancle}>
|
||||||
取消
|
取消
|
||||||
</Button>,
|
</Button>,
|
||||||
<Button className="btn-dp" key="submit" type="primary" ghost onClick={handleSubmit}>
|
<Button
|
||||||
|
className="btn-dp"
|
||||||
|
key="submit"
|
||||||
|
type="primary"
|
||||||
|
ghost
|
||||||
|
onClick={handleSubmit}
|
||||||
|
>
|
||||||
确定
|
确定
|
||||||
</Button>,
|
</Button>,
|
||||||
]}
|
]}
|
||||||
onCancel={() => {
|
onCancel={() => {
|
||||||
setIsModalOpen(false);
|
setIsModalOpen(false);
|
||||||
}}
|
}}
|
||||||
></Modal>
|
>
|
||||||
|
<div>
|
||||||
|
<video id="localVideo" width={300} height={300} src=""></video>
|
||||||
|
</div>
|
||||||
|
</Modal>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Button, Space, Modal, FormInstance } from "antd";
|
import { Button, Space, Modal, FormInstance, Select } from "antd";
|
||||||
import { inject, observer } from "mobx-react";
|
import { inject, observer } from "mobx-react";
|
||||||
import BTable from "@/components/b_table";
|
import BTable from "@/components/b_table";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
|
|
@ -6,17 +6,43 @@ import { Store } from "antd/lib/form/interface";
|
||||||
import SimpleForm from "@/components/form/simple_form";
|
import SimpleForm from "@/components/form/simple_form";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { columns, defaultConfig } from "./material_column";
|
import { columns, defaultConfig } from "./material_column";
|
||||||
|
import { Form } from "antd";
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
const { Option } = Select;
|
||||||
const Material = (props: Store) => {
|
const Material = (props: Store) => {
|
||||||
const { materialStore } = props;
|
const { materialStore, stashStore, storageStore, materialCatStore } = props;
|
||||||
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
const [projectConfig, setProjectConfig] = useState<any>([]);
|
const [projectConfig, setProjectConfig] = useState<any>([]);
|
||||||
const formRef = React.useRef<FormInstance>(null);
|
const formRef = React.useRef<FormInstance>(null);
|
||||||
const [record, setRecord] = useState<any>(null);
|
const [record, setRecord] = useState<any>(null);
|
||||||
|
const [stashList, setStash] = useState<any>(null); // 仓库列表
|
||||||
|
const [storageList, setStorageList] = useState<any>([]); // 货架列表
|
||||||
|
const [catList, setcatList] = useState<any>([]); // 物资分类列表
|
||||||
|
// 获取物资列表
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
materialStore.getlist();
|
materialStore.getlist().then(() => {
|
||||||
setProjectConfig(defaultConfig);
|
setProjectConfig(defaultConfig);
|
||||||
|
});
|
||||||
}, [materialStore]);
|
}, [materialStore]);
|
||||||
|
|
||||||
|
// 获取仓库列表
|
||||||
|
useEffect(() => {
|
||||||
|
stashStore.getlist().then(() => {
|
||||||
|
setStash(stashStore.list);
|
||||||
|
});
|
||||||
|
}, [stashStore]);
|
||||||
|
|
||||||
|
// 获取分类
|
||||||
|
useEffect(() => {
|
||||||
|
materialCatStore.getlist().then(() => {
|
||||||
|
setcatList(materialCatStore.list);
|
||||||
|
});
|
||||||
|
}, [materialCatStore]);
|
||||||
|
|
||||||
|
const handleChange = async (v) => {
|
||||||
|
await storageStore.getlist({ stash_identity: v });
|
||||||
|
setStorageList(storageStore.list ?? []);
|
||||||
|
};
|
||||||
const column_widget = (any, record) => {
|
const column_widget = (any, record) => {
|
||||||
return (
|
return (
|
||||||
<Space wrap>
|
<Space wrap>
|
||||||
|
|
@ -45,12 +71,15 @@ const Material = (props: Store) => {
|
||||||
};
|
};
|
||||||
const edit = (record) => {
|
const edit = (record) => {
|
||||||
setIsModalOpen(true);
|
setIsModalOpen(true);
|
||||||
|
record.expiry_date = dayjs(record.expiry_date);
|
||||||
setRecord(record);
|
setRecord(record);
|
||||||
};
|
};
|
||||||
const onFinish = (values: any) => {
|
const onFinish = (values: any) => {
|
||||||
let data = {
|
let data = {
|
||||||
...values,
|
...values,
|
||||||
pid:values.pid??0
|
pid: values.pid ?? 0,
|
||||||
|
storage_cloumn: Number(values.storage_cloumn),
|
||||||
|
supplie_piker: values.supplie_piker[0].name,
|
||||||
};
|
};
|
||||||
if (!record?.id) {
|
if (!record?.id) {
|
||||||
materialStore.add(data);
|
materialStore.add(data);
|
||||||
|
|
@ -117,11 +146,72 @@ const Material = (props: Store) => {
|
||||||
onFinish={onFinish}
|
onFinish={onFinish}
|
||||||
initialValues={true}
|
initialValues={true}
|
||||||
onFinishFailed={onFinishFailed}
|
onFinishFailed={onFinishFailed}
|
||||||
/>
|
>
|
||||||
|
<>
|
||||||
|
<Form.Item
|
||||||
|
key="stash_identity"
|
||||||
|
label="所属仓库"
|
||||||
|
name="stash_identity"
|
||||||
|
rules={[{ required: true, message: "请选择所属仓库!" }]}
|
||||||
|
>
|
||||||
|
<Select
|
||||||
|
placeholder=""
|
||||||
|
onChange={(v) => {
|
||||||
|
handleChange(v);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{stashList?.map((v: any) => {
|
||||||
|
return (
|
||||||
|
<Option key={v.identity} value={v.identity}>
|
||||||
|
{v.stash_name}
|
||||||
|
</Option>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
key="storage_identity"
|
||||||
|
label="所属货架"
|
||||||
|
name="storage_identity"
|
||||||
|
rules={[{ required: true, message: "请选择所属货架!" }]}
|
||||||
|
>
|
||||||
|
<Select placeholder="">
|
||||||
|
{storageList?.map((v: any) => {
|
||||||
|
return (
|
||||||
|
<Option key={v.identity} value={v.identity}>
|
||||||
|
{v.name}
|
||||||
|
</Option>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
key="catory_identity"
|
||||||
|
label="物资分类"
|
||||||
|
name="catory_identity"
|
||||||
|
rules={[{ required: true, message: "请选择物资分类!" }]}
|
||||||
|
>
|
||||||
|
<Select placeholder="">
|
||||||
|
{catList?.map((v: any) => {
|
||||||
|
return (
|
||||||
|
<Option key={v.identity} value={v.identity}>
|
||||||
|
{v.name}
|
||||||
|
</Option>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
</>
|
||||||
|
</SimpleForm>
|
||||||
</Modal>
|
</Modal>
|
||||||
</Space>
|
</Space>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default inject("materialStore")(observer(Material));
|
export default inject(
|
||||||
|
"materialStore",
|
||||||
|
"stashStore",
|
||||||
|
"storageStore",
|
||||||
|
"materialCatStore"
|
||||||
|
)(observer(Material));
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,11 @@ export const columns: ColumnsType<UserDataType> = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "过期时间",
|
title: "过期时间",
|
||||||
dataIndex: "storage_identity",
|
dataIndex: "expiry_date",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "货架名称",
|
title: "货架名称",
|
||||||
dataIndex: "expiry_date",
|
dataIndex: "storage_name",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "货架位置",
|
title: "货架位置",
|
||||||
|
|
@ -24,26 +24,12 @@ export const columns: ColumnsType<UserDataType> = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "所属仓库",
|
title: "所属仓库",
|
||||||
dataIndex: "expiry_date",
|
dataIndex: "stash_name",
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const defaultConfig = [
|
export const defaultConfig = [
|
||||||
{
|
|
||||||
type: FormType.select,
|
|
||||||
label: "所属仓库",
|
|
||||||
name: "stash_identity",
|
|
||||||
value: "",
|
|
||||||
selectUrl:"storage/list",
|
|
||||||
rules: [{ required: true, message: "请输入物资名称!" }],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: FormType.input,
|
|
||||||
label: "所属货架",
|
|
||||||
name: "storage_identity",
|
|
||||||
value: "",
|
|
||||||
rules: [{ required: true, message: "请选择货架!" }],
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
type: FormType.input,
|
type: FormType.input,
|
||||||
label: "货架位置",
|
label: "货架位置",
|
||||||
|
|
@ -51,14 +37,7 @@ export const defaultConfig = [
|
||||||
value: "",
|
value: "",
|
||||||
rules: [{ required: true, message: "请选择货架位置!" }],
|
rules: [{ required: true, message: "请选择货架位置!" }],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
type: FormType.select,
|
|
||||||
label: "物资分类",
|
|
||||||
name: "catory_identity",
|
|
||||||
value: 0,
|
|
||||||
selectUrl:"suppliesCat/list",
|
|
||||||
rules: [{ required: true, message: "请选择物资分类!" }],
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
type: FormType.input,
|
type: FormType.input,
|
||||||
label: "物资名称",
|
label: "物资名称",
|
||||||
|
|
@ -84,6 +63,6 @@ export const defaultConfig = [
|
||||||
type: FormType.upload,
|
type: FormType.upload,
|
||||||
label: "物资图片",
|
label: "物资图片",
|
||||||
name: "supplie_piker",
|
name: "supplie_piker",
|
||||||
value: "",
|
value: [],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
import { FormType } from "@/components/form/interface";
|
||||||
|
import { UserDataType } from "@/model/userModel";
|
||||||
|
import { ColumnsType } from "antd/lib/table";
|
||||||
|
export const columns: ColumnsType<UserDataType> = [
|
||||||
|
{
|
||||||
|
title: "分类名称",
|
||||||
|
dataIndex: "title",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const defaultConfig = [
|
||||||
|
{
|
||||||
|
type: FormType.input,
|
||||||
|
label: "分类名称",
|
||||||
|
name: "title",
|
||||||
|
value: "",
|
||||||
|
rules: [{ required: true, message: "请输入仓库名称!" }],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
@ -1,10 +1,28 @@
|
||||||
|
import { Tabs, TabsProps } from "antd";
|
||||||
|
import RegulationsCat from "./regulationsCat";
|
||||||
|
import Regulations from "./regulations";
|
||||||
|
|
||||||
const PolRegulations = () => {
|
const PolRegulations = () => {
|
||||||
return (
|
const onChange = (key: string) => {
|
||||||
<>
|
console.log(key);
|
||||||
<p>PolRegulations</p>
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
const items: TabsProps["items"] = [
|
||||||
|
{
|
||||||
|
key: "1",
|
||||||
|
label: "政治法规分类管理",
|
||||||
|
children: <RegulationsCat />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "2",
|
||||||
|
label: "政治法规管理",
|
||||||
|
children: <Regulations />,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Tabs defaultActiveKey="1" items={items} onChange={onChange} />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
export default PolRegulations;
|
export default PolRegulations;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,163 @@
|
||||||
|
import { Button, Space, Modal, FormInstance, Select } from "antd";
|
||||||
|
import { inject, observer } from "mobx-react";
|
||||||
|
import BTable from "@/components/b_table";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { Store } from "antd/lib/form/interface";
|
||||||
|
import SimpleForm from "@/components/form/simple_form";
|
||||||
|
import React from "react";
|
||||||
|
import { columns, defaultConfig } from "./regulations_column";
|
||||||
|
import { Form } from "antd";
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
const { Option } = Select;
|
||||||
|
const Regulations = (props: Store) => {
|
||||||
|
const { regulationsStore, regulationsCatStore } = props;
|
||||||
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
|
const [projectConfig, setProjectConfig] = useState<any>([]);
|
||||||
|
const formRef = React.useRef<FormInstance>(null);
|
||||||
|
const [record, setRecord] = useState<any>(null);
|
||||||
|
const [stashList, setStash] = useState<any>(null); // 仓库列表
|
||||||
|
// 获取物资列表
|
||||||
|
useEffect(() => {
|
||||||
|
regulationsStore.getlist().then(() => {
|
||||||
|
setProjectConfig(defaultConfig);
|
||||||
|
});
|
||||||
|
}, [regulationsStore]);
|
||||||
|
|
||||||
|
// 获取分类
|
||||||
|
useEffect(() => {
|
||||||
|
regulationsCatStore.getlist().then(() => {
|
||||||
|
setStash(regulationsCatStore.list);
|
||||||
|
});
|
||||||
|
}, [regulationsCatStore]);
|
||||||
|
|
||||||
|
const column_widget = (any, record) => {
|
||||||
|
return (
|
||||||
|
<Space wrap>
|
||||||
|
<Button
|
||||||
|
type="dashed"
|
||||||
|
size="small"
|
||||||
|
onClick={() => {
|
||||||
|
edit(record);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
编辑
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
type="dashed"
|
||||||
|
danger
|
||||||
|
size="small"
|
||||||
|
onClick={() => {
|
||||||
|
regulationsStore.deleteItem(record.id);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
const edit = (record) => {
|
||||||
|
setIsModalOpen(true);
|
||||||
|
record.expiry_date = dayjs(record.expiry_date);
|
||||||
|
setRecord(record);
|
||||||
|
};
|
||||||
|
const onFinish = (values: any) => {
|
||||||
|
let data = {
|
||||||
|
...values,
|
||||||
|
file_url: values.file_url[0].name,
|
||||||
|
};
|
||||||
|
if (!record?.id) {
|
||||||
|
regulationsStore.add(data);
|
||||||
|
} else {
|
||||||
|
regulationsStore.putItem(record.id, data);
|
||||||
|
}
|
||||||
|
setIsModalOpen(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const onFinishFailed = () => {};
|
||||||
|
return (
|
||||||
|
<div className="contentBox">
|
||||||
|
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
||||||
|
<Space direction="horizontal" size={"middle"}>
|
||||||
|
<Button
|
||||||
|
type="default"
|
||||||
|
onClick={() => {
|
||||||
|
setRecord(null);
|
||||||
|
setProjectConfig(defaultConfig);
|
||||||
|
setIsModalOpen(true);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
添加法规
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
<BTable
|
||||||
|
store={regulationsStore}
|
||||||
|
columns={[
|
||||||
|
...columns,
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
dataIndex: "id",
|
||||||
|
ellipsis: {
|
||||||
|
showTitle: false,
|
||||||
|
},
|
||||||
|
render: (any, record) => column_widget(any, record),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
dataSource={regulationsStore.list}
|
||||||
|
/>
|
||||||
|
<Modal
|
||||||
|
title={!record?.id ? "添加法规" : "编辑法规"}
|
||||||
|
width={1200}
|
||||||
|
open={isModalOpen}
|
||||||
|
afterClose={() => formRef.current?.resetFields()}
|
||||||
|
onOk={() => formRef.current?.submit()}
|
||||||
|
onCancel={() => {
|
||||||
|
setIsModalOpen(false);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<SimpleForm
|
||||||
|
formRef={formRef}
|
||||||
|
createCallback={() => {
|
||||||
|
if (record?.id) {
|
||||||
|
formRef.current?.setFieldsValue(record);
|
||||||
|
} else {
|
||||||
|
formRef.current?.setFieldsValue(null);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
formName="card_basic"
|
||||||
|
colProps={25}
|
||||||
|
subBtnName="提交"
|
||||||
|
formDatas={projectConfig}
|
||||||
|
onFinish={onFinish}
|
||||||
|
initialValues={true}
|
||||||
|
onFinishFailed={onFinishFailed}
|
||||||
|
>
|
||||||
|
<>
|
||||||
|
<Form.Item
|
||||||
|
key="pr_categry_identity"
|
||||||
|
label="分类"
|
||||||
|
name="pr_categry_identity"
|
||||||
|
rules={[{ required: true, message: "请选择物资分类!" }]}
|
||||||
|
>
|
||||||
|
<Select placeholder="">
|
||||||
|
{stashList?.map((v: any) => {
|
||||||
|
return (
|
||||||
|
<Option key={v.identity} value={v.identity}>
|
||||||
|
{v.title}
|
||||||
|
</Option>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
</>
|
||||||
|
</SimpleForm>
|
||||||
|
</Modal>
|
||||||
|
</Space>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default inject(
|
||||||
|
"regulationsStore",
|
||||||
|
"regulationsCatStore"
|
||||||
|
)(observer(Regulations));
|
||||||
|
|
@ -0,0 +1,127 @@
|
||||||
|
import { Button, Space, Modal, FormInstance } from "antd";
|
||||||
|
import { inject, observer } from "mobx-react";
|
||||||
|
import BTable from "@/components/b_table";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { Store } from "antd/lib/form/interface";
|
||||||
|
import SimpleForm from "@/components/form/simple_form";
|
||||||
|
import React from "react";
|
||||||
|
import { columns, defaultConfig } from "./cat_column";
|
||||||
|
|
||||||
|
const RegulationsCat = (props: Store) => {
|
||||||
|
const { regulationsCatStore } = props;
|
||||||
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
|
const [projectConfig, setProjectConfig] = useState<any>([]);
|
||||||
|
const formRef = React.useRef<FormInstance>(null);
|
||||||
|
const [record, setRecord] = useState<any>(null);
|
||||||
|
useEffect(() => {
|
||||||
|
regulationsCatStore.getlist();
|
||||||
|
setProjectConfig(defaultConfig);
|
||||||
|
}, [regulationsCatStore]);
|
||||||
|
const column_widget = (any, record) => {
|
||||||
|
return (
|
||||||
|
<Space wrap>
|
||||||
|
<Button
|
||||||
|
type="dashed"
|
||||||
|
size="small"
|
||||||
|
onClick={() => {
|
||||||
|
edit(record);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
编辑
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
type="dashed"
|
||||||
|
danger
|
||||||
|
size="small"
|
||||||
|
onClick={() => {
|
||||||
|
regulationsCatStore.deleteItem(record.id);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
const edit = (record) => {
|
||||||
|
setIsModalOpen(true);
|
||||||
|
setRecord(record);
|
||||||
|
};
|
||||||
|
const onFinish = (values: any) => {
|
||||||
|
let data = {
|
||||||
|
...values,
|
||||||
|
pid:values.pid??0
|
||||||
|
};
|
||||||
|
if (!record?.id) {
|
||||||
|
regulationsCatStore.add(data);
|
||||||
|
} else {
|
||||||
|
regulationsCatStore.putItem(record.id, data);
|
||||||
|
}
|
||||||
|
setIsModalOpen(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const onFinishFailed = () => {};
|
||||||
|
return (
|
||||||
|
<div className="contentBox">
|
||||||
|
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
||||||
|
<Space direction="horizontal" size={"middle"}>
|
||||||
|
<Button
|
||||||
|
type="default"
|
||||||
|
onClick={() => {
|
||||||
|
setRecord(null);
|
||||||
|
setProjectConfig(defaultConfig);
|
||||||
|
setIsModalOpen(true);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
添加物资分类
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
<BTable
|
||||||
|
store={regulationsCatStore}
|
||||||
|
columns={[
|
||||||
|
...columns,
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
dataIndex: "id",
|
||||||
|
ellipsis: {
|
||||||
|
showTitle: false,
|
||||||
|
},
|
||||||
|
render: (any, record) => column_widget(any, record),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
dataSource={regulationsCatStore.list}
|
||||||
|
/>
|
||||||
|
<Modal
|
||||||
|
title={!record?.id ? "添加个人属性" : "编辑个人属性"}
|
||||||
|
width={1200}
|
||||||
|
open={isModalOpen}
|
||||||
|
afterClose={() => formRef.current?.resetFields()}
|
||||||
|
onOk={() => formRef.current?.submit()}
|
||||||
|
onCancel={() => {
|
||||||
|
setIsModalOpen(false);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<SimpleForm
|
||||||
|
formRef={formRef}
|
||||||
|
createCallback={() => {
|
||||||
|
if (record?.id) {
|
||||||
|
formRef.current?.setFieldsValue(record);
|
||||||
|
} else {
|
||||||
|
formRef.current?.setFieldsValue(null);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
formName="card_basic"
|
||||||
|
colProps={25}
|
||||||
|
subBtnName="提交"
|
||||||
|
formDatas={projectConfig}
|
||||||
|
onFinish={onFinish}
|
||||||
|
initialValues={true}
|
||||||
|
onFinishFailed={onFinishFailed}
|
||||||
|
/>
|
||||||
|
</Modal>
|
||||||
|
</Space>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default inject("regulationsCatStore")(observer(RegulationsCat));
|
||||||
|
|
@ -0,0 +1,55 @@
|
||||||
|
import { FormType } from "@/components/form/interface";
|
||||||
|
import { UserDataType } from "@/model/userModel";
|
||||||
|
import { ColumnsType } from "antd/lib/table";
|
||||||
|
export const columns: ColumnsType<UserDataType> = [
|
||||||
|
{
|
||||||
|
title: "法规标题",
|
||||||
|
dataIndex: "title",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "法规副标题",
|
||||||
|
dataIndex: "sub_title",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "法规内容",
|
||||||
|
dataIndex: "content",
|
||||||
|
width: 300,
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "政策法规分类",
|
||||||
|
dataIndex: "storage_name",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const defaultConfig = [
|
||||||
|
|
||||||
|
{
|
||||||
|
type: FormType.input,
|
||||||
|
label: "法规标题",
|
||||||
|
name: "title",
|
||||||
|
value: "",
|
||||||
|
rules: [{ required: true, message: "请输入法规标题!" }],
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
type: FormType.input,
|
||||||
|
label: "法规副标题",
|
||||||
|
name: "sub_title",
|
||||||
|
value: "",
|
||||||
|
rules: [{ required: true, message: "请输入法规副标题!" }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "editor",
|
||||||
|
label: "内容",
|
||||||
|
name: "content",
|
||||||
|
value: "",
|
||||||
|
rules: [{ required: true, message: "请填写内容" }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "upload",
|
||||||
|
label: "附件图片",
|
||||||
|
name: "file_url",
|
||||||
|
value: [],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
@ -22,24 +22,8 @@ const Storage = (props: Store) => {
|
||||||
const column_widget = (any, record) => {
|
const column_widget = (any, record) => {
|
||||||
return (
|
return (
|
||||||
<Space wrap>
|
<Space wrap>
|
||||||
<Button
|
<Button type="dashed" size="small" onClick={() => {edit(record)}}>编辑</Button>
|
||||||
type="dashed"
|
<Button type="dashed" danger size="small" onClick={() => {storageStore.deleteItem(record.id)}}>
|
||||||
size="small"
|
|
||||||
onClick={() => {
|
|
||||||
edit(record);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
编辑
|
|
||||||
</Button>
|
|
||||||
|
|
||||||
<Button
|
|
||||||
type="dashed"
|
|
||||||
danger
|
|
||||||
size="small"
|
|
||||||
onClick={() => {
|
|
||||||
storageStore.deleteItem(record.id);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</Button>
|
</Button>
|
||||||
</Space>
|
</Space>
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,10 @@ import { Store } from "antd/lib/form/interface";
|
||||||
import "./user.less";
|
import "./user.less";
|
||||||
import SimpleForm from "@/components/form/simple_form";
|
import SimpleForm from "@/components/form/simple_form";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useNavigate } from "react-router";
|
|
||||||
|
|
||||||
const User = (props: Store) => {
|
const User = (props: Store) => {
|
||||||
const { usrStore } = props;
|
const { usrStore } = props;
|
||||||
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
const nav = useNavigate();
|
|
||||||
const [projectConfig, setProjectConfig] = useState<any>([]);
|
const [projectConfig, setProjectConfig] = useState<any>([]);
|
||||||
const formRef = React.useRef<FormInstance>(null);
|
const formRef = React.useRef<FormInstance>(null);
|
||||||
const [record, setRecord] = useState<any>(null);
|
const [record, setRecord] = useState<any>(null);
|
||||||
|
|
@ -164,14 +162,7 @@ const User = (props: Store) => {
|
||||||
>
|
>
|
||||||
添加用户
|
添加用户
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
|
||||||
type="default"
|
|
||||||
onClick={() => {
|
|
||||||
nav("/tag");
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
标签管理
|
|
||||||
</Button>
|
|
||||||
</Space>
|
</Space>
|
||||||
|
|
||||||
<BTable store={usrStore} columns={columns} dataSource={usrStore.list} />
|
<BTable store={usrStore} columns={columns} dataSource={usrStore.list} />
|
||||||
|
|
|
||||||
|
|
@ -54,10 +54,12 @@ const WhseMgmt = (props: Store) => {
|
||||||
</Space>
|
</Space>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
// 编辑按钮
|
||||||
const edit = (record) => {
|
const edit = (record) => {
|
||||||
setIsModalOpen(true);
|
setIsModalOpen(true);
|
||||||
setRecord(record);
|
setRecord(record);
|
||||||
};
|
};
|
||||||
|
// 表单提交
|
||||||
const onFinish = (values: any) => {
|
const onFinish = (values: any) => {
|
||||||
let data = {
|
let data = {
|
||||||
...values,
|
...values,
|
||||||
|
|
@ -71,22 +73,18 @@ const WhseMgmt = (props: Store) => {
|
||||||
}
|
}
|
||||||
setIsModalOpen(false);
|
setIsModalOpen(false);
|
||||||
};
|
};
|
||||||
|
const addhandler = () => {
|
||||||
|
setRecord(null);
|
||||||
|
setProjectConfig(defaultConfig);
|
||||||
|
setIsModalOpen(true);
|
||||||
|
};
|
||||||
|
|
||||||
const onFinishFailed = () => {};
|
const onFinishFailed = () => {};
|
||||||
return (
|
return (
|
||||||
<div className="contentBox">
|
<div className="contentBox">
|
||||||
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
||||||
<Space direction="horizontal" size={"middle"}>
|
<Space direction="horizontal" size={"middle"}>
|
||||||
<Button
|
<Button onClick={addhandler}>新增仓库</Button>
|
||||||
type="default"
|
|
||||||
onClick={() => {
|
|
||||||
setRecord(null);
|
|
||||||
setProjectConfig(defaultConfig);
|
|
||||||
setIsModalOpen(true);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
新增仓库
|
|
||||||
</Button>
|
|
||||||
</Space>
|
</Space>
|
||||||
<BTable
|
<BTable
|
||||||
store={stashStore}
|
store={stashStore}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { makeObservable } from "mobx";
|
import { makeObservable } from "mobx";
|
||||||
// 用户信息
|
// 档案
|
||||||
import BaseStore from "./baseStore";
|
import BaseStore from "./baseStore";
|
||||||
import { TagDataType } from "@/model/userModel";
|
import { TagDataType } from "@/model/userModel";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { makeObservable } from "mobx";
|
import { makeObservable } from "mobx";
|
||||||
// 用户信息
|
// 档案分类
|
||||||
import BaseStore from "./baseStore";
|
import BaseStore from "./baseStore";
|
||||||
import { TagDataType } from "@/model/userModel";
|
import { TagDataType } from "@/model/userModel";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { makeObservable } from "mobx";
|
import { action, makeObservable, observable } from "mobx";
|
||||||
// 用户信息
|
// 档案文件夹
|
||||||
|
import baseHttp from "@/service/base";
|
||||||
import BaseStore from "./baseStore";
|
import BaseStore from "./baseStore";
|
||||||
import { TagDataType } from "@/model/userModel";
|
import { TagDataType } from "@/model/userModel";
|
||||||
|
|
||||||
|
|
@ -8,12 +9,23 @@ class FolderConfig {
|
||||||
static ADD: string = "archives/folder"
|
static ADD: string = "archives/folder"
|
||||||
static DELETE: string = "archives/folder"
|
static DELETE: string = "archives/folder"
|
||||||
static EDIT: string = "archives/folder"
|
static EDIT: string = "archives/folder"
|
||||||
|
static AList: string = "archives/list"
|
||||||
}
|
}
|
||||||
class FolderStore extends BaseStore<TagDataType> {
|
class FolderStore extends BaseStore<TagDataType> {
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super(FolderConfig)
|
super(FolderConfig)
|
||||||
makeObservable(this, {})
|
makeObservable(this, {
|
||||||
|
getAlist: action,
|
||||||
|
alist: observable,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getAlist(idl?: string) {
|
||||||
|
let res = await baseHttp.get(FolderConfig.AList+"/"+idl, {});
|
||||||
|
this.alist = res.data?.record;
|
||||||
|
}
|
||||||
|
alist!: Array<any>;
|
||||||
}
|
}
|
||||||
const folderStore = new FolderStore()
|
const folderStore = new FolderStore()
|
||||||
export default folderStore;
|
export default folderStore;
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ import { persMgmtStore } from './persMgmt';
|
||||||
import { storageStore } from './storage';
|
import { storageStore } from './storage';
|
||||||
import { materialCatStore } from './materialCat';
|
import { materialCatStore } from './materialCat';
|
||||||
import { materialStore } from './materialStore';
|
import { materialStore } from './materialStore';
|
||||||
|
import { regulationsCatStore } from './regulationsCat';
|
||||||
|
import { regulationsStore } from './regulations';
|
||||||
|
|
||||||
const store = {
|
const store = {
|
||||||
usrStore,
|
usrStore,
|
||||||
|
|
@ -26,6 +28,8 @@ const store = {
|
||||||
storageStore,
|
storageStore,
|
||||||
materialCatStore,
|
materialCatStore,
|
||||||
materialStore,
|
materialStore,
|
||||||
|
regulationsCatStore,
|
||||||
|
regulationsStore
|
||||||
};
|
};
|
||||||
|
|
||||||
export default store;
|
export default store;
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
import { makeObservable } from "mobx";
|
||||||
|
// 用户信息
|
||||||
|
import BaseStore from "./baseStore";
|
||||||
|
import { TagDataType } from "@/model/userModel";
|
||||||
|
|
||||||
|
class RegulationsConfig {
|
||||||
|
static LIST: string = "regulations/list"
|
||||||
|
static ADD: string = "regulations"
|
||||||
|
static DELETE: string = "regulations"
|
||||||
|
static EDIT: string = "regulations"
|
||||||
|
}
|
||||||
|
class Regulations extends BaseStore<TagDataType> {
|
||||||
|
constructor() {
|
||||||
|
super(RegulationsConfig)
|
||||||
|
makeObservable(this, {})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export const regulationsStore = new Regulations()
|
||||||
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
import { makeObservable } from "mobx";
|
||||||
|
// 用户信息
|
||||||
|
import BaseStore from "./baseStore";
|
||||||
|
import { TagDataType } from "@/model/userModel";
|
||||||
|
|
||||||
|
class RegulationsCatConfig {
|
||||||
|
static LIST: string = "regulations/catgory/list"
|
||||||
|
static ADD: string = "regulations/catgory"
|
||||||
|
static DELETE: string = "regulations/catgory"
|
||||||
|
static EDIT: string = "regulations/catgory"
|
||||||
|
}
|
||||||
|
class RegulationsCat extends BaseStore<TagDataType> {
|
||||||
|
constructor() {
|
||||||
|
super(RegulationsCatConfig)
|
||||||
|
makeObservable(this, {})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export const regulationsCatStore = new RegulationsCat()
|
||||||
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
import { message } from 'antd/lib';
|
||||||
|
import WebRTC from 'webrtc';
|
||||||
|
|
||||||
|
class WebRtc {
|
||||||
|
private rtc: WebRTC
|
||||||
|
async init() {
|
||||||
|
this.rtc = new WebRTC({debug: true});
|
||||||
|
try {
|
||||||
|
let strem = await navigator.mediaDevices.getUserMedia({ audio: true, video: true })
|
||||||
|
var localVideo = document.getElementById('localVideo') as HTMLVideoElement;
|
||||||
|
localVideo.srcObject = strem;
|
||||||
|
console.log('localVideo', this.rtc?.addStream);
|
||||||
|
|
||||||
|
// this.rtc?.addStream(strem);
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
|
||||||
|
// message.error(`error ${JSON.stringify(message)}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
calls() {
|
||||||
|
this.rtc.createOffer()
|
||||||
|
.then((offer) => {
|
||||||
|
// ...
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log('Error creating offer: ', error);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 接听呼叫
|
||||||
|
this.rtc.createAnswer()
|
||||||
|
.then((answer) => {
|
||||||
|
// 发送answer信令等操作
|
||||||
|
// ...
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log('Error creating answer: ', error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
close() {
|
||||||
|
this.rtc.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const webRTC = new WebRtc()
|
||||||
Loading…
Reference in New Issue