fix(api):update store
This commit is contained in:
parent
836806a12c
commit
cc638d92ee
|
@ -82,6 +82,7 @@
|
|||
"webpack": "^5.64.4",
|
||||
"webpack-dev-server": "^4.6.0",
|
||||
"webpack-manifest-plugin": "^4.0.2",
|
||||
"webrtc": "^1.14.1",
|
||||
"workbox-webpack-plugin": "^6.4.1"
|
||||
}
|
||||
},
|
||||
|
@ -7538,7 +7539,6 @@
|
|||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz",
|
||||
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
|
@ -8050,7 +8050,6 @@
|
|||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz",
|
||||
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"cipher-base": "^1.0.1",
|
||||
"inherits": "^2.0.1",
|
||||
|
@ -8063,7 +8062,6 @@
|
|||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz",
|
||||
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"cipher-base": "^1.0.3",
|
||||
"create-hash": "^1.1.0",
|
||||
|
@ -10861,6 +10859,21 @@
|
|||
"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": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
|
||||
|
@ -11461,6 +11474,41 @@
|
|||
"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": {
|
||||
"version": "7.2.3",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmmirror.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
|
||||
|
@ -11765,7 +11821,6 @@
|
|||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmmirror.com/hash-base/-/hash-base-3.0.4.tgz",
|
||||
"integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
|
@ -12098,6 +12153,16 @@
|
|||
"@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": {
|
||||
"version": "0.6.3",
|
||||
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
||||
|
@ -15715,6 +15780,25 @@
|
|||
"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": {
|
||||
"version": "5.0.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
|
||||
"integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
|
||||
"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": {
|
||||
"version": "4.3.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
||||
"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": {
|
||||
"version": "4.1.2",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
||||
|
@ -15933,7 +16135,6 @@
|
|||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz",
|
||||
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"hash-base": "^3.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
|
@ -15953,6 +16154,14 @@
|
|||
"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": {
|
||||
"version": "3.5.3",
|
||||
"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": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
||||
|
@ -28389,7 +28603,6 @@
|
|||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz",
|
||||
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"hash-base": "^3.0.0",
|
||||
"inherits": "^2.0.1"
|
||||
|
@ -28503,6 +28716,30 @@
|
|||
"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": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
|
||||
|
@ -29017,6 +29254,16 @@
|
|||
"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": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
|
||||
|
@ -29321,7 +29568,6 @@
|
|||
"version": "2.4.11",
|
||||
"resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz",
|
||||
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
|
@ -31080,6 +31326,15 @@
|
|||
"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": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz",
|
||||
|
@ -32451,6 +32706,37 @@
|
|||
"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": {
|
||||
"version": "0.7.4",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/win-release/-/win-release-1.1.1.tgz",
|
||||
|
@ -38595,7 +38886,6 @@
|
|||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz",
|
||||
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
|
@ -39019,7 +39309,6 @@
|
|||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz",
|
||||
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"cipher-base": "^1.0.1",
|
||||
"inherits": "^2.0.1",
|
||||
|
@ -39032,7 +39321,6 @@
|
|||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz",
|
||||
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"cipher-base": "^1.0.3",
|
||||
"create-hash": "^1.1.0",
|
||||
|
@ -41123,6 +41411,23 @@
|
|||
"resolved": "https://registry.npmmirror.com/filesize/-/filesize-8.0.7.tgz",
|
||||
"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": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
|
||||
|
@ -41545,6 +41850,40 @@
|
|||
"integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
|
||||
"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": {
|
||||
"version": "7.2.3",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmmirror.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
|
||||
|
@ -41767,7 +42114,6 @@
|
|||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmmirror.com/hash-base/-/hash-base-3.0.4.tgz",
|
||||
"integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
|
@ -42011,6 +42357,16 @@
|
|||
"@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": {
|
||||
"version": "0.6.3",
|
||||
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
||||
|
@ -44628,6 +44984,27 @@
|
|||
"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": {
|
||||
"version": "5.0.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
|
||||
"integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
|
||||
"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": {
|
||||
"version": "4.3.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
||||
"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": {
|
||||
"version": "4.1.2",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
||||
|
@ -44817,7 +45312,6 @@
|
|||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz",
|
||||
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"hash-base": "^3.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
|
@ -44834,6 +45328,14 @@
|
|||
"resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
|
||||
"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": {
|
||||
"version": "3.5.3",
|
||||
"resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz",
|
||||
|
@ -45102,6 +45604,11 @@
|
|||
"integrity": "sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg==",
|
||||
"requires": {}
|
||||
},
|
||||
"mockconsole": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/mockconsole/-/mockconsole-0.0.1.tgz",
|
||||
"integrity": "sha512-9wFq0SJFTaxxEYmfjWf4U8uYku5HKwn3OsTOct3aQFLDois6HrLse2iZAy7v5hyTNts2XH6Y1LW8iMXWxiH6Vg=="
|
||||
},
|
||||
"move-concurrently": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
||||
|
@ -54135,7 +54642,6 @@
|
|||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz",
|
||||
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"hash-base": "^3.0.0",
|
||||
"inherits": "^2.0.1"
|
||||
|
@ -54226,6 +54732,32 @@
|
|||
"integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==",
|
||||
"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": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
|
||||
|
@ -54599,6 +55131,16 @@
|
|||
"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": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
|
||||
|
@ -54853,7 +55395,6 @@
|
|||
"version": "2.4.11",
|
||||
"resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz",
|
||||
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
|
@ -56233,6 +56774,15 @@
|
|||
"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": {
|
||||
"version": "1.0.1",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "0.7.4",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/win-release/-/win-release-1.1.1.tgz",
|
||||
|
|
|
@ -77,6 +77,7 @@
|
|||
"webpack": "^5.64.4",
|
||||
"webpack-dev-server": "^4.6.0",
|
||||
"webpack-manifest-plugin": "^4.0.2",
|
||||
"webrtc": "^1.14.1",
|
||||
"workbox-webpack-plugin": "^6.4.1"
|
||||
},
|
||||
"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 SimpleForm from "./components/form/simple_form";
|
||||
import { FormInstance } from "antd/lib/form";
|
||||
import React from "react";
|
||||
import MyComponent from "./components/errorComp";
|
||||
const App = (props: Store) => {
|
||||
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 = () => {};
|
||||
const App = () => {
|
||||
return (
|
||||
<>
|
||||
<MyComponent>
|
||||
<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>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default inject("usrStore")(observer(App));
|
||||
export default App;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import { FormInstance } from "antd"
|
||||
import React from "react"
|
||||
export enum FormType {
|
||||
input = "input",
|
||||
select = "select",
|
||||
|
@ -32,6 +33,7 @@ export interface SimpleFormData {
|
|||
onFinishFailed: Function,
|
||||
formDatas: Array<FormDatas>,
|
||||
createCallback?: Function
|
||||
children?: React.ReactElement
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -28,6 +28,9 @@ const SimpleForm = (props: SimpleFormData) => {
|
|||
onFinish={onFinish}
|
||||
autoComplete="on"
|
||||
>
|
||||
{
|
||||
props.children??props.children
|
||||
}
|
||||
{props.formDatas.map((v) => {
|
||||
switch (v.type) {
|
||||
case FormType.input:
|
||||
|
@ -159,6 +162,8 @@ const SimpleForm = (props: SimpleFormData) => {
|
|||
);
|
||||
}
|
||||
})}
|
||||
|
||||
|
||||
</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 = [
|
||||
{
|
||||
type: "input",
|
||||
label: "所属档案分类",
|
||||
name: "ac_identity",
|
||||
value: "",
|
||||
},
|
||||
{
|
||||
type: "input",
|
||||
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]);
|
||||
|
||||
// 添加事件
|
||||
const addHandler = () => {
|
||||
setProjectConfig(folderConfig);
|
||||
setIsModalOpen(true);
|
||||
};
|
||||
import { Tabs, TabsProps } from "antd";
|
||||
import ArchivesCat from "./archivesCat";
|
||||
import ArchivesFolder from "./archivesFolder";
|
||||
import Archive from "./archive";
|
||||
|
||||
// 取消
|
||||
const cancelHandler = () => {
|
||||
setId(null);
|
||||
setIsModalOpen(false);
|
||||
};
|
||||
|
||||
// 文件夹点击
|
||||
const folderHandle = () => {};
|
||||
const addCatHandler = () => {
|
||||
setProjectConfig(catConfig);
|
||||
setIsModalOpen(true);
|
||||
const Archives = () => {
|
||||
const onChange = (key: string) => {
|
||||
console.log(key);
|
||||
};
|
||||
|
||||
const addArchivesHandler = () => {
|
||||
setProjectConfig(archiveConfig);
|
||||
setIsModalOpen(true);
|
||||
};
|
||||
const onFinishFailed = () => {};
|
||||
const items: TabsProps["items"] = [
|
||||
{
|
||||
key: "1",
|
||||
label: "档案类别管理",
|
||||
children: <ArchivesCat />,
|
||||
},
|
||||
{
|
||||
key: "2",
|
||||
label: "档案文件夹管理",
|
||||
children: <ArchivesFolder />,
|
||||
},
|
||||
{
|
||||
key: "3",
|
||||
label: "档案管理",
|
||||
children: <Archive />,
|
||||
},
|
||||
];
|
||||
return (
|
||||
<div className="contentBox">
|
||||
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
||||
<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>
|
||||
<>
|
||||
<Tabs defaultActiveKey="1" items={items} onChange={onChange} />
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default inject(...["archivesStore", "folderStore", "acStore"])(
|
||||
observer(Archives)
|
||||
);
|
||||
export default 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 { Button, Modal } from "antd";
|
||||
import "./right.less";
|
||||
import { webRTC } from "@/util/webRtc";
|
||||
const HomeBottom = () => {
|
||||
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||
const openDispatch = () => {
|
||||
setIsModalOpen(true);
|
||||
webRTC.init();
|
||||
};
|
||||
const handleCancle = () => {
|
||||
setIsModalOpen(false);
|
||||
};
|
||||
const handleSubmit = ()=>{
|
||||
const handleSubmit = () => {
|
||||
setIsModalOpen(false);
|
||||
}
|
||||
};
|
||||
return (
|
||||
<div className="bottom_container">
|
||||
<div className="bottom_content">
|
||||
|
@ -31,14 +33,24 @@ const HomeBottom = () => {
|
|||
<Button key="return" ghost onClick={handleCancle}>
|
||||
取消
|
||||
</Button>,
|
||||
<Button className="btn-dp" key="submit" type="primary" ghost onClick={handleSubmit}>
|
||||
<Button
|
||||
className="btn-dp"
|
||||
key="submit"
|
||||
type="primary"
|
||||
ghost
|
||||
onClick={handleSubmit}
|
||||
>
|
||||
确定
|
||||
</Button>,
|
||||
]}
|
||||
onCancel={() => {
|
||||
setIsModalOpen(false);
|
||||
}}
|
||||
></Modal>
|
||||
>
|
||||
<div>
|
||||
<video id="localVideo" width={300} height={300} src=""></video>
|
||||
</div>
|
||||
</Modal>
|
||||
</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 BTable from "@/components/b_table";
|
||||
import { useEffect, useState } from "react";
|
||||
|
@ -6,17 +6,43 @@ import { Store } from "antd/lib/form/interface";
|
|||
import SimpleForm from "@/components/form/simple_form";
|
||||
import React from "react";
|
||||
import { columns, defaultConfig } from "./material_column";
|
||||
|
||||
import { Form } from "antd";
|
||||
import dayjs from "dayjs";
|
||||
const { Option } = Select;
|
||||
const Material = (props: Store) => {
|
||||
const { materialStore } = props;
|
||||
const { materialStore, stashStore, storageStore, materialCatStore } = 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); // 仓库列表
|
||||
const [storageList, setStorageList] = useState<any>([]); // 货架列表
|
||||
const [catList, setcatList] = useState<any>([]); // 物资分类列表
|
||||
// 获取物资列表
|
||||
useEffect(() => {
|
||||
materialStore.getlist();
|
||||
setProjectConfig(defaultConfig);
|
||||
materialStore.getlist().then(() => {
|
||||
setProjectConfig(defaultConfig);
|
||||
});
|
||||
}, [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) => {
|
||||
return (
|
||||
<Space wrap>
|
||||
|
@ -45,12 +71,15 @@ const Material = (props: Store) => {
|
|||
};
|
||||
const edit = (record) => {
|
||||
setIsModalOpen(true);
|
||||
record.expiry_date = dayjs(record.expiry_date);
|
||||
setRecord(record);
|
||||
};
|
||||
const onFinish = (values: any) => {
|
||||
let data = {
|
||||
...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) {
|
||||
materialStore.add(data);
|
||||
|
@ -117,11 +146,72 @@ const Material = (props: Store) => {
|
|||
onFinish={onFinish}
|
||||
initialValues={true}
|
||||
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>
|
||||
</Space>
|
||||
</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: "过期时间",
|
||||
dataIndex: "storage_identity",
|
||||
dataIndex: "expiry_date",
|
||||
},
|
||||
{
|
||||
title: "货架名称",
|
||||
dataIndex: "expiry_date",
|
||||
dataIndex: "storage_name",
|
||||
},
|
||||
{
|
||||
title: "货架位置",
|
||||
|
@ -24,26 +24,12 @@ export const columns: ColumnsType<UserDataType> = [
|
|||
},
|
||||
{
|
||||
title: "所属仓库",
|
||||
dataIndex: "expiry_date",
|
||||
dataIndex: "stash_name",
|
||||
},
|
||||
];
|
||||
|
||||
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,
|
||||
label: "货架位置",
|
||||
|
@ -51,14 +37,7 @@ export const defaultConfig = [
|
|||
value: "",
|
||||
rules: [{ required: true, message: "请选择货架位置!" }],
|
||||
},
|
||||
{
|
||||
type: FormType.select,
|
||||
label: "物资分类",
|
||||
name: "catory_identity",
|
||||
value: 0,
|
||||
selectUrl:"suppliesCat/list",
|
||||
rules: [{ required: true, message: "请选择物资分类!" }],
|
||||
},
|
||||
|
||||
{
|
||||
type: FormType.input,
|
||||
label: "物资名称",
|
||||
|
@ -84,6 +63,6 @@ export const defaultConfig = [
|
|||
type: FormType.upload,
|
||||
label: "物资图片",
|
||||
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 = () => {
|
||||
return (
|
||||
<>
|
||||
<p>PolRegulations</p>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default PolRegulations;
|
||||
|
||||
const onChange = (key: string) => {
|
||||
console.log(key);
|
||||
};
|
||||
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;
|
||||
|
|
|
@ -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) => {
|
||||
return (
|
||||
<Space wrap>
|
||||
<Button
|
||||
type="dashed"
|
||||
size="small"
|
||||
onClick={() => {
|
||||
edit(record);
|
||||
}}
|
||||
>
|
||||
编辑
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
type="dashed"
|
||||
danger
|
||||
size="small"
|
||||
onClick={() => {
|
||||
storageStore.deleteItem(record.id);
|
||||
}}
|
||||
>
|
||||
<Button type="dashed" size="small" onClick={() => {edit(record)}}>编辑</Button>
|
||||
<Button type="dashed" danger size="small" onClick={() => {storageStore.deleteItem(record.id)}}>
|
||||
删除
|
||||
</Button>
|
||||
</Space>
|
||||
|
|
|
@ -8,12 +8,10 @@ import { Store } from "antd/lib/form/interface";
|
|||
import "./user.less";
|
||||
import SimpleForm from "@/components/form/simple_form";
|
||||
import React from "react";
|
||||
import { useNavigate } from "react-router";
|
||||
|
||||
const User = (props: Store) => {
|
||||
const { usrStore } = props;
|
||||
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||
const nav = useNavigate();
|
||||
const [projectConfig, setProjectConfig] = useState<any>([]);
|
||||
const formRef = React.useRef<FormInstance>(null);
|
||||
const [record, setRecord] = useState<any>(null);
|
||||
|
@ -164,14 +162,7 @@ const User = (props: Store) => {
|
|||
>
|
||||
添加用户
|
||||
</Button>
|
||||
<Button
|
||||
type="default"
|
||||
onClick={() => {
|
||||
nav("/tag");
|
||||
}}
|
||||
>
|
||||
标签管理
|
||||
</Button>
|
||||
|
||||
</Space>
|
||||
|
||||
<BTable store={usrStore} columns={columns} dataSource={usrStore.list} />
|
||||
|
|
|
@ -54,10 +54,12 @@ const WhseMgmt = (props: Store) => {
|
|||
</Space>
|
||||
);
|
||||
};
|
||||
// 编辑按钮
|
||||
const edit = (record) => {
|
||||
setIsModalOpen(true);
|
||||
setRecord(record);
|
||||
};
|
||||
// 表单提交
|
||||
const onFinish = (values: any) => {
|
||||
let data = {
|
||||
...values,
|
||||
|
@ -71,22 +73,18 @@ const WhseMgmt = (props: Store) => {
|
|||
}
|
||||
setIsModalOpen(false);
|
||||
};
|
||||
const addhandler = () => {
|
||||
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
|
||||
type="default"
|
||||
onClick={() => {
|
||||
setRecord(null);
|
||||
setProjectConfig(defaultConfig);
|
||||
setIsModalOpen(true);
|
||||
}}
|
||||
>
|
||||
新增仓库
|
||||
</Button>
|
||||
<Button onClick={addhandler}>新增仓库</Button>
|
||||
</Space>
|
||||
<BTable
|
||||
store={stashStore}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { makeObservable } from "mobx";
|
||||
// 用户信息
|
||||
// 档案
|
||||
import BaseStore from "./baseStore";
|
||||
import { TagDataType } from "@/model/userModel";
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { makeObservable } from "mobx";
|
||||
// 用户信息
|
||||
// 档案分类
|
||||
import BaseStore from "./baseStore";
|
||||
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 { TagDataType } from "@/model/userModel";
|
||||
|
||||
|
@ -8,12 +9,23 @@ class FolderConfig {
|
|||
static ADD: string = "archives/folder"
|
||||
static DELETE: string = "archives/folder"
|
||||
static EDIT: string = "archives/folder"
|
||||
static AList: string = "archives/list"
|
||||
}
|
||||
class FolderStore extends BaseStore<TagDataType> {
|
||||
|
||||
constructor() {
|
||||
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()
|
||||
export default folderStore;
|
||||
|
|
|
@ -11,6 +11,8 @@ import { persMgmtStore } from './persMgmt';
|
|||
import { storageStore } from './storage';
|
||||
import { materialCatStore } from './materialCat';
|
||||
import { materialStore } from './materialStore';
|
||||
import { regulationsCatStore } from './regulationsCat';
|
||||
import { regulationsStore } from './regulations';
|
||||
|
||||
const store = {
|
||||
usrStore,
|
||||
|
@ -26,6 +28,8 @@ const store = {
|
|||
storageStore,
|
||||
materialCatStore,
|
||||
materialStore,
|
||||
regulationsCatStore,
|
||||
regulationsStore
|
||||
};
|
||||
|
||||
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