diff --git a/app/Models/File.php b/app/Models/File.php index 39134b5b4..024fb893a 100644 --- a/app/Models/File.php +++ b/app/Models/File.php @@ -266,19 +266,7 @@ class File extends AbstractModel ]; } // - if ($userid === null) { - $userid = [$this->userid]; - $builder = WebSocket::select(['userid']); - if ($action == 'content') { - $builder->wherePath("/single/file/{$this->id}"); - } elseif ($this->pid > 0) { - $builder->wherePath("/manage/file/{$this->pid}"); - } else { - $builder->wherePath("/manage/file"); - } - $userid = array_merge($userid, $builder->pluck('userid')->toArray()); - $userid = array_values(array_filter(array_unique($userid))); - } + $userid = $this->pushUserid($action, $userid); if (empty($userid)) { return; } @@ -301,6 +289,47 @@ class File extends AbstractModel Task::deliver($task); } + /** + * 获取推送会员 + * @param $action + * @param $userid + * @return array|int[]|mixed|null[] + */ + public function pushUserid($action, $userid = null) { + $wherePath = "/manage/file"; + if ($userid === null) { + $array = [$this->userid]; + if ($action == 'add' && $this->pid == 0) { + return $array; + } + if ($action == 'content') { + $wherePath = "/single/file/{$this->id}"; + } elseif ($this->pid > 0) { + $wherePath = "/manage/file/{$this->pid}"; + } else { + $tmpArray = FileUser::whereFileId($this->id)->pluck('userid')->toArray(); + if (empty($tmpArray)) { + return $array; + } + if (!in_array(0, $tmpArray)) { + return $tmpArray; + } + } + $tmpArray = WebSocket::wherePath($wherePath)->pluck('userid')->toArray(); + if (empty($tmpArray)) { + return $array; + } + $array = array_values(array_filter(array_unique(array_merge($array, $tmpArray)))); + } else { + $array = is_array($userid) ? $userid : [$userid]; + if (in_array(0, $array)) { + return WebSocket::wherePath($wherePath)->pluck('userid')->toArray(); + } + } + return $array; + } + + /** * 处理返回图片地址 * @param array $item diff --git a/electron/drawio.js b/electron/drawio.js index a91a87566..cf609c043 100644 --- a/electron/drawio.js +++ b/electron/drawio.js @@ -1,4 +1,4 @@ -window.utilsStorage={getStorageString(key,def=''){let value=this.storage(key);return typeof value==="string"||typeof value==="number"?value:def},storage(key,value){if(!key){return}let keyName='__state__';if(key.substring(0,5)==='cache'){keyName='__state:'+key+'__'}if(typeof value==='undefined'){return this.loadFromlLocal(key,'',keyName)}else{this.savaToLocal(key,value,keyName)}},savaToLocal(key,value,keyName){try{if(typeof keyName==='undefined')keyName='__seller__';let seller=window.localStorage[keyName];if(!seller){seller={}}else{seller=JSON.parse(seller)}seller[key]=value;window.localStorage[keyName]=JSON.stringify(seller)}catch(e){}},loadFromlLocal(key,def,keyName){try{if(typeof keyName==='undefined')keyName='__seller__';let seller=window.localStorage[keyName];if(!seller){return def}seller=JSON.parse(seller);if(!seller||typeof seller[key]==='undefined'){return def}return seller[key]}catch(e){return def}},} +window.utilsStorage={getStorageString(key,def=''){let value=this.operationStorage(key);return typeof value==="string"||typeof value==="number"?value:def},operationStorage(key,value){if(!key){return}let keyName='__state__';if(key.substring(0,5)==='cache'){keyName='__state:'+key+'__'}if(typeof value==='undefined'){return this.loadFromlLocal(key,'',keyName)}else{this.savaToLocal(key,value,keyName)}},savaToLocal(key,value,keyName){try{if(typeof keyName==='undefined')keyName='__seller__';let seller=window.localStorage[keyName];if(!seller){seller={}}else{seller=JSON.parse(seller)}seller[key]=value;window.localStorage[keyName]=JSON.stringify(seller)}catch(e){}},loadFromlLocal(key,def,keyName){try{if(typeof keyName==='undefined')keyName='__seller__';let seller=window.localStorage[keyName];if(!seller){return def}seller=JSON.parse(seller);if(!seller||typeof seller[key]==='undefined'){return def}return seller[key]}catch(e){return def}},} window.cacheServerUrl = window.utilsStorage.getStorageString("cacheServerUrl") if (window.cacheServerUrl) { diff --git a/resources/assets/js/components/ImgUpload.vue b/resources/assets/js/components/ImgUpload.vue index 568500895..fa4a92dd1 100755 --- a/resources/assets/js/components/ImgUpload.vue +++ b/resources/assets/js/components/ImgUpload.vue @@ -168,7 +168,7 @@ uploadHeaders() { return { - fd: $A.getStorageString("userWsFd"), + fd: $A.getSessionStorageString("userWsFd"), token: this.userToken, } }, diff --git a/resources/assets/js/components/MDEditor/index.vue b/resources/assets/js/components/MDEditor/index.vue index f18f2200b..105781229 100755 --- a/resources/assets/js/components/MDEditor/index.vue +++ b/resources/assets/js/components/MDEditor/index.vue @@ -173,7 +173,7 @@ headers() { return { - fd: $A.getStorageString("userWsFd"), + fd: $A.getSessionStorageString("userWsFd"), token: this.userToken, } }, diff --git a/resources/assets/js/components/TEditor.vue b/resources/assets/js/components/TEditor.vue index e3b57e7d8..12ba97e56 100755 --- a/resources/assets/js/components/TEditor.vue +++ b/resources/assets/js/components/TEditor.vue @@ -170,7 +170,7 @@ headers() { return { - fd: $A.getStorageString("userWsFd"), + fd: $A.getSessionStorageString("userWsFd"), token: this.userToken, } }, diff --git a/resources/assets/js/functions/common.js b/resources/assets/js/functions/common.js index 8e00cfc2f..a2d0bf556 100755 --- a/resources/assets/js/functions/common.js +++ b/resources/assets/js/functions/common.js @@ -1043,45 +1043,45 @@ /** * ============================================================================= - * ******************************** storage ******************************** + * ***************************** localStorage ****************************** * ============================================================================= */ $.extend({ setStorage(key, value) { - return this.storage(key, value); + return this.operationStorage(key, value); }, getStorage(key, def = null) { - let value = this.storage(key); + let value = this.operationStorage(key); return value || def; }, getStorageString(key, def = '') { - let value = this.storage(key); + let value = this.operationStorage(key); return typeof value === "string" || typeof value === "number" ? value : def; }, getStorageInt(key, def = 0) { - let value = this.storage(key); + let value = this.operationStorage(key); return typeof value === "number" ? value : def; }, getStorageBoolean(key, def = false) { - let value = this.storage(key); + let value = this.operationStorage(key); return typeof value === "boolean" ? value : def; }, getStorageArray(key, def = []) { - let value = this.storage(key); + let value = this.operationStorage(key); return this.isArray(value) ? value : def; }, getStorageJson(key, def = {}) { - let value = this.storage(key); + let value = this.operationStorage(key); return this.isJson(value) ? value : def; }, - storage(key, value) { + operationStorage(key, value) { if (!key) { return; } @@ -1129,6 +1129,79 @@ }, }); + /** + * ============================================================================= + * ***************************** sessionStorage **************************** + * ============================================================================= + */ + $.extend({ + setSessionStorage(key, value) { + return this.operationSessionStorage(key, value); + }, + + getSessionStorage(key, def = null) { + let value = this.operationSessionStorage(key); + return value || def; + }, + + getSessionStorageString(key, def = '') { + let value = this.operationSessionStorage(key); + return typeof value === "string" || typeof value === "number" ? value : def; + }, + + getSessionStorageInt(key, def = 0) { + let value = this.operationSessionStorage(key); + return typeof value === "number" ? value : def; + }, + + operationSessionStorage(key, value) { + if (!key) { + return; + } + let keyName = '__state__'; + if (key.substring(0, 5) === 'cache') { + keyName = '__state:' + key + '__'; + } + if (typeof value === 'undefined') { + return this.loadFromlSession(key, '', keyName); + } else { + this.savaToSession(key, value, keyName); + } + }, + + savaToSession(key, value, keyName) { + try { + if (typeof keyName === 'undefined') keyName = '__seller__'; + let seller = window.sessionStorage[keyName]; + if (!seller) { + seller = {}; + } else { + seller = JSON.parse(seller); + } + seller[key] = value; + window.sessionStorage[keyName] = JSON.stringify(seller); + } catch (e) { + } + }, + + loadFromlSession(key, def, keyName) { + try { + if (typeof keyName === 'undefined') keyName = '__seller__'; + let seller = window.sessionStorage[keyName]; + if (!seller) { + return def; + } + seller = JSON.parse(seller); + if (!seller || typeof seller[key] === 'undefined') { + return def; + } + return seller[key]; + } catch (e) { + return def; + } + }, + }); + /** * ============================================================================= * ********************************* ihttp ********************************* diff --git a/resources/assets/js/functions/web.js b/resources/assets/js/functions/web.js index 1f6f466ed..d66c0b19d 100755 --- a/resources/assets/js/functions/web.js +++ b/resources/assets/js/functions/web.js @@ -396,7 +396,8 @@ * @returns {*} */ getFileName(file) { - let {name, ext} = file; + let name = file.name || ''; + let ext = file.ext || ''; if (ext != '') { name += "." + ext; } diff --git a/resources/assets/js/pages/manage/components/DialogUpload.vue b/resources/assets/js/pages/manage/components/DialogUpload.vue index 84e8e5cf8..68535e28e 100644 --- a/resources/assets/js/pages/manage/components/DialogUpload.vue +++ b/resources/assets/js/pages/manage/components/DialogUpload.vue @@ -67,7 +67,7 @@ export default { headers() { return { - fd: $A.getStorageString("userWsFd"), + fd: $A.getSessionStorageString("userWsFd"), token: this.userToken, } }, diff --git a/resources/assets/js/pages/manage/file.vue b/resources/assets/js/pages/manage/file.vue index f45a1f779..84de02b48 100644 --- a/resources/assets/js/pages/manage/file.vue +++ b/resources/assets/js/pages/manage/file.vue @@ -528,7 +528,7 @@ export default { headers() { return { - fd: $A.getStorageString("userWsFd"), + fd: $A.getSessionStorageString("userWsFd"), token: this.userToken, } }, diff --git a/resources/assets/js/pages/single/file.vue b/resources/assets/js/pages/single/file.vue index e2b6a2028..31e0803a3 100644 --- a/resources/assets/js/pages/single/file.vue +++ b/resources/assets/js/pages/single/file.vue @@ -2,7 +2,7 @@
-