@maketribe/ms-app 3.2.52 → 3.2.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/cjs/components/business/verify-dialog/verify-panel.js +13 -18
  2. package/dist/cjs/components/business/verify-dialog/verify-panel.js.map +1 -1
  3. package/dist/cjs/core/MSAppClient.js.map +1 -1
  4. package/dist/cjs/layouts/components/header/passwordDialog.js +251 -0
  5. package/dist/cjs/layouts/components/header/passwordDialog.js.map +1 -0
  6. package/dist/cjs/layouts/components/header/tools.js +7 -157
  7. package/dist/cjs/layouts/components/header/tools.js.map +1 -1
  8. package/dist/cjs/message-impl/DialogerImpl.js +157 -0
  9. package/dist/cjs/message-impl/DialogerImpl.js.map +1 -1
  10. package/dist/cjs/page/login/index.vue2.js +11 -1
  11. package/dist/cjs/page/login/index.vue2.js.map +1 -1
  12. package/dist/esm/components/business/verify-dialog/verify-panel.js +13 -18
  13. package/dist/esm/components/business/verify-dialog/verify-panel.js.map +1 -1
  14. package/dist/esm/core/MSAppClient.js.map +1 -1
  15. package/dist/esm/layouts/components/header/passwordDialog.js +251 -0
  16. package/dist/esm/layouts/components/header/passwordDialog.js.map +1 -0
  17. package/dist/esm/layouts/components/header/tools.js +9 -159
  18. package/dist/esm/layouts/components/header/tools.js.map +1 -1
  19. package/dist/esm/message-impl/DialogerImpl.js +159 -2
  20. package/dist/esm/message-impl/DialogerImpl.js.map +1 -1
  21. package/dist/esm/page/login/index.vue2.js +11 -1
  22. package/dist/esm/page/login/index.vue2.js.map +1 -1
  23. package/dist/types/components/business/resource-manager/index.d.ts +4 -4
  24. package/dist/types/core/MSAppClient.d.ts +1 -0
  25. package/dist/types/index.d.ts +1 -1
  26. package/dist/types/layouts/components/header/passwordDialog.d.ts +9 -0
  27. package/dist/types/message-impl/DialogerImpl.d.ts +3 -0
  28. package/dist/types/modules/cms/components/part-tree/index.d.ts +1 -1
  29. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"verify-panel.js","sources":["../../../../../src/components/business/verify-dialog/verify-panel.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n unref,\r\n ref,\r\n onMounted,\r\n Ref,\r\n Fragment,\r\n} from \"vue\";\r\nimport { useHttpRequest } from \"../../../composables\";\r\nimport { verifyDialogProps, verifyDialogEmits } from \"./verify-dialog-option\";\r\nimport { WebHttpRequest } from \"@maketribe/request\";\r\nimport { Disposable, createDisposable } from \"@maketribe/utils\";\r\nimport { MSAppClient } from \"../../../core\";\r\n\r\n// 建一个私有的类吧客户端id放出来\r\n// const webHttpRequest = new (class InnerWebHttpRequest extends WebHttpRequest {\r\n// async getClientId() {\r\n// await this.loadClientIDPromise;\r\n// return this.clientID;\r\n// }\r\n// })();\r\n\r\nexport default defineComponent({\r\n name: \"VerifyPanel\",\r\n props: verifyDialogProps,\r\n emits: verifyDialogEmits,\r\n setup(props, { emit, expose }) {\r\n const wrapperEl: Ref<HTMLElement | null> = ref(null);\r\n const buttonEl: Ref<HTMLElement | null> = ref(null);\r\n const grandEl: Ref<HTMLElement | null> = ref(null);\r\n\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n const webHttpRequest = new WebHttpRequest();\r\n // 样式默认宽度是48px\r\n let slideWidth: number = 48;\r\n\r\n const isError = ref(false);\r\n\r\n const deg = ref(0);\r\n const imageUrl = ref(\"\");\r\n const loading = ref(false);\r\n const imageStyle = computed(() => {\r\n return {\r\n backgroundImage: `url(${unref(imageUrl)})`,\r\n transform: `rotate(-${unref(deg)}deg)`,\r\n };\r\n });\r\n\r\n const loadImage = async (): Promise<undefined> => {\r\n loading.value = true;\r\n\r\n try {\r\n const response = await httpRequest.get<Blob>(\r\n \"/ms/app/captcha/rotation/image\",\r\n {\r\n params: {\r\n scene: props.scene,\r\n t: Math.random(),\r\n },\r\n responseType: \"blob\",\r\n }\r\n );\r\n\r\n if (!(response.data instanceof Blob)) {\r\n return;\r\n }\r\n\r\n imageUrl.value = URL.createObjectURL(response.data);\r\n } finally {\r\n loading.value = false;\r\n }\r\n\r\n // const clientId = await webHttpRequest.getClientID();\r\n // webHttpRequest.getInterceptors\r\n // return await new Promise(reslove=>{\r\n\r\n // const img = new Image();\r\n\r\n // img.onload = ()=>{\r\n // imageUrl.value = img.src;\r\n // reslove(undefined);\r\n // loading.value = false;\r\n // }\r\n\r\n // img.src = `/api/ms/app/captcha/rotation/image?scene=${props.scene}&t=${Math.random()}&rcid=${clientId}`\r\n // })\r\n };\r\n\r\n const handleSwitchConfirm = () => {\r\n emit(\"confirm\", unref(deg));\r\n };\r\n\r\n const handleMouseDown = (mouseDownEvent: MouseEvent | TouchEvent) => {\r\n if (unref(isError)) {\r\n return;\r\n }\r\n\r\n const startX =\r\n mouseDownEvent instanceof MouseEvent\r\n ? mouseDownEvent.clientX\r\n : mouseDownEvent.touches[0].clientX;\r\n const disposable = new Disposable();\r\n const totalWidth = unref(wrapperEl)!.getBoundingClientRect().width;\r\n\r\n const handleMouseMove = (event: MouseEvent | TouchEvent) => {\r\n const moveX =\r\n event instanceof MouseEvent\r\n ? event.clientX\r\n : event.touches[0].clientX;\r\n\r\n // 限定宽度范围\r\n slideWidth = Math.min(Math.max(moveX - startX + 48, 48), totalWidth);\r\n\r\n deg.value = Math.floor(((slideWidth - 48) / (totalWidth - 48)) * 360);\r\n\r\n unref(grandEl)!.style.width = `${slideWidth}px`;\r\n unref(buttonEl)!.style.transform = `translateX(${slideWidth - 48}px)`;\r\n };\r\n\r\n const handleMouseUp = (event: MouseEvent | TouchEvent) => {\r\n if (deg.value !== 0) {\r\n handleSwitchConfirm();\r\n }\r\n\r\n disposable.dispose();\r\n };\r\n\r\n document.addEventListener(\"mousemove\", handleMouseMove);\r\n document.addEventListener(\"touchmove\", handleMouseMove);\r\n document.addEventListener(\"mouseup\", handleMouseUp);\r\n document.addEventListener(\"touchend\", handleMouseUp);\r\n document.addEventListener(\"touchcancel\", handleMouseUp);\r\n\r\n disposable.register(\r\n createDisposable(() => {\r\n document.removeEventListener(\"mousemove\", handleMouseMove);\r\n document.removeEventListener(\"touchmove\", handleMouseMove);\r\n document.removeEventListener(\"mouseup\", handleMouseUp);\r\n document.removeEventListener(\"touchend\", handleMouseUp);\r\n document.removeEventListener(\"touchcancel\", handleMouseUp);\r\n })\r\n );\r\n };\r\n\r\n const reset = () => {\r\n unref(grandEl)!.style.width = ``;\r\n unref(buttonEl)!.style.transform = ``;\r\n };\r\n\r\n expose({\r\n fail: () => {\r\n isError.value = true;\r\n\r\n setTimeout(() => {\r\n isError.value = false;\r\n\r\n reset();\r\n }, 1000);\r\n },\r\n });\r\n\r\n onMounted(async () => {\r\n await loadImage();\r\n });\r\n\r\n return () => {\r\n return (\r\n <Fragment>\r\n <div class=\"mk-verify-dialog__wrapper\" v-loading={unref(loading)}>\r\n <div\r\n class=\"mk-verify-dialog__image\"\r\n ref=\"imageEl\"\r\n style={imageStyle.value}\r\n />\r\n <div class=\"mk-verify-dialog__coordinate\" />\r\n </div>\r\n <div class={[\"mk-verify-switch\", unref(isError) ? \"is-error\" : \"\"]}>\r\n <div\r\n class=\"mk-verify-switch__wrapper\"\r\n ref={((el: HTMLDivElement) => (wrapperEl.value = el)) as any}\r\n >\r\n <div\r\n class=\"mk-verify-switch__button-grand\"\r\n ref={((el: HTMLDivElement) => (grandEl.value = el)) as any}\r\n />\r\n <div\r\n class=\"mk-verify-switch__button\"\r\n ref={((el: HTMLDivElement) => (buttonEl.value = el)) as any}\r\n onMousedown={handleMouseDown}\r\n onTouchstart={handleMouseDown}\r\n />\r\n </div>\r\n </div>\r\n </Fragment>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["defineComponent","name","props","verifyDialogProps","emits","verifyDialogEmits","setup","emit","expose","wrapperEl","ref","buttonEl","grandEl","httpRequest","MSAppClient","instance","WebHttpRequest","slideWidth","isError","deg","imageUrl","loading","imageStyle","computed","backgroundImage","unref","transform","loadImage","value","response","get","params","scene","t","Math","random","responseType","data","Blob","URL","createObjectURL","handleSwitchConfirm","handleMouseDown","mouseDownEvent","startX","MouseEvent","clientX","touches","disposable","Disposable","totalWidth","getBoundingClientRect","width","handleMouseMove","event","moveX","min","max","floor","style","handleMouseUp","dispose","document","addEventListener","register","createDisposable","removeEventListener","reset","fail","setTimeout","onMounted","_createVNode","_Fragment","_withDirectives","_resolveDirective","el"],"mappings":";;;;;;;;AAuBA,MAAeA,8CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,OAAOC;AAAAA,EACPC,MAAMJ,OAAO;AAAA,IAAEK;AAAAA,IAAMC;AAAAA,EAAO,GAAG;AAC7B,UAAMC,YAAqCC,IAAI,IAAI;AACnD,UAAMC,WAAoCD,IAAI,IAAI;AAClD,UAAME,UAAmCF,IAAI,IAAI;AAEjD,UAAMG,cAAcC,YAAYC,SAAUF;AACnB,QAAIG,eAAgB;AAE3C,QAAIC,aAAqB;AAEzB,UAAMC,UAAUR,IAAI,KAAK;AAEzB,UAAMS,MAAMT,IAAI,CAAC;AACjB,UAAMU,WAAWV,IAAI,EAAE;AACvB,UAAMW,UAAUX,IAAI,KAAK;AACzB,UAAMY,aAAaC,SAAS,MAAM;AAChC,aAAO;AAAA,QACLC,iBAAiB,OAAOC,MAAML,QAAQ,CAAC;AAAA,QACvCM,WAAW,WAAWD,MAAMN,GAAG,CAAC;AAAA;IAEpC,CAAC;AAED,UAAMQ,YAAY,YAAgC;AAChDN,cAAQO,QAAQ;AAEhB,UAAI;AACF,cAAMC,WAAW,MAAMhB,YAAYiB,IACjC,kCACA;AAAA,UACEC,QAAQ;AAAA,YACNC,OAAO9B,MAAM8B;AAAAA,YACbC,GAAGC,KAAKC,OAAO;AAAA,UAChB;AAAA,UACDC,cAAc;AAAA,QAChB,CACF;AAEA,YAAI,EAAEP,SAASQ,gBAAgBC,OAAO;AACpC;AAAA,QACF;AAEAlB,iBAASQ,QAAQW,IAAIC,gBAAgBX,SAASQ,IAAI;AAAA,MACpD,UAAU;AACRhB,gBAAQO,QAAQ;AAAA,MAClB;AAAA;AAkBF,UAAMa,sBAAsBA,MAAM;AAChClC,WAAK,WAAWkB,MAAMN,GAAG,CAAC;AAAA;AAG5B,UAAMuB,kBAAmBC,oBAA4C;AACnE,UAAIlB,MAAMP,OAAO,GAAG;AAClB;AAAA,MACF;AAEA,YAAM0B,SACJD,0BAA0BE,aACtBF,eAAeG,UACfH,eAAeI,QAAQ,CAAC,EAAED;AAChC,YAAME,aAAa,IAAIC;AACvB,YAAMC,aAAazB,MAAMhB,SAAS,EAAG0C,sBAAqB,EAAGC;AAE7D,YAAMC,kBAAmBC,WAAmC;AAC1D,cAAMC,QACJD,iBAAiBT,aACbS,MAAMR,UACNQ,MAAMP,QAAQ,CAAC,EAAED;AAGvB7B,qBAAaiB,KAAKsB,IAAItB,KAAKuB,IAAIF,QAAQX,SAAS,IAAI,EAAE,GAAGM,UAAU;AAEnE/B,YAAIS,QAAQM,KAAKwB,OAAQzC,aAAa,OAAOiC,aAAa,MAAO,GAAG;AAEpEzB,cAAMb,OAAO,EAAG+C,MAAMP,QAAQ,GAAGnC,UAAU;AAC3CQ,cAAMd,QAAQ,EAAGgD,MAAMjC,YAAY,cAAcT,aAAa,EAAE;AAAA;AAGlE,YAAM2C,gBAAiBN,WAAmC;AACxD,YAAInC,IAAIS,UAAU,GAAG;AACnBa;QACF;AAEAO,mBAAWa,QAAO;AAAA;AAGpBC,eAASC,iBAAiB,aAAaV,eAAe;AACtDS,eAASC,iBAAiB,aAAaV,eAAe;AACtDS,eAASC,iBAAiB,WAAWH,aAAa;AAClDE,eAASC,iBAAiB,YAAYH,aAAa;AACnDE,eAASC,iBAAiB,eAAeH,aAAa;AAEtDZ,iBAAWgB,SACTC,iBAAiB,MAAM;AACrBH,iBAASI,oBAAoB,aAAab,eAAe;AACzDS,iBAASI,oBAAoB,aAAab,eAAe;AACzDS,iBAASI,oBAAoB,WAAWN,aAAa;AACrDE,iBAASI,oBAAoB,YAAYN,aAAa;AACtDE,iBAASI,oBAAoB,eAAeN,aAAa;AAAA,MAC1D,CAAA,CACH;AAAA;AAGF,UAAMO,QAAQA,MAAM;AAClB1C,YAAMb,OAAO,EAAG+C,MAAMP,QAAQ;AAC9B3B,YAAMd,QAAQ,EAAGgD,MAAMjC,YAAY;AAAA;AAGrClB,WAAO;AAAA,MACL4D,MAAMA,MAAM;AACVlD,gBAAQU,QAAQ;AAEhByC,mBAAW,MAAM;AACfnD,kBAAQU,QAAQ;AAEhBuC;QACD,GAAE,GAAI;AAAA,MACT;AAAA,IACF,CAAC;AAEDG,cAAU,YAAY;AACpB,YAAM3C,UAAS;AAAA,IACjB,CAAC;AAED,WAAO,MAAM;AACX,aAAA4C,YAAAC,UAAAC,MAAAA,CAAAA,eAAAF,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,QAAA,OAAA;AAAA,QAAA,SAMejD,WAAWM;AAAAA,MAAK,GAAA,IAAA,GAAA2C,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,IAAA,CAAA,CAAA,GAAA,CAAA,CAAAG,iBAJuBjD,SAAAA,GAAAA,MAAMJ,OAAO,CAAC,KAAAkD,YAAA,OAAA;AAAA,QAAA,SAQpD,CAAC,oBAAoB9C,MAAMP,OAAO,IAAI,aAAa,EAAE;AAAA,MAAC,GAAA,CAAAqD,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,QAAA,OAGvDI,QAAwBlE,UAAUmB,QAAQ+C;AAAAA,MAAG,GAAA,CAAAJ,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,QAAA,OAI3CI,QAAwB/D,QAAQgB,QAAQ+C;AAAAA,MAAG,GAAA,IAAA,GAAAJ,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,QAAA,OAI3CI,QAAwBhE,SAASiB,QAAQ+C;AAAAA,QAAG,eACtCjC;AAAAA,QAAe,gBACdA;AAAAA,MAAe,GAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;EAO3C;AACF,CAAC;"}
1
+ {"version":3,"file":"verify-panel.js","sources":["../../../../../src/components/business/verify-dialog/verify-panel.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n unref,\r\n ref,\r\n onMounted,\r\n Ref,\r\n Fragment,\r\n} from \"vue\";\r\nimport { useHttpRequest } from \"../../../composables\";\r\nimport { verifyDialogProps, verifyDialogEmits } from \"./verify-dialog-option\";\r\nimport { WebHttpRequest } from \"@maketribe/request\";\r\nimport { Disposable, createDisposable } from \"@maketribe/utils\";\r\nimport { MSAppClient } from \"../../../core\";\r\n\r\n// 建一个私有的类吧客户端id放出来\r\n// const webHttpRequest = new (class InnerWebHttpRequest extends WebHttpRequest {\r\n// async getClientId() {\r\n// await this.loadClientIDPromise;\r\n// return this.clientID;\r\n// }\r\n// })();\r\n\r\nexport default defineComponent({\r\n name: \"VerifyPanel\",\r\n props: verifyDialogProps,\r\n emits: verifyDialogEmits,\r\n setup(props, { emit, expose }) {\r\n const wrapperEl: Ref<HTMLElement | null> = ref(null);\r\n const buttonEl: Ref<HTMLElement | null> = ref(null);\r\n const grandEl: Ref<HTMLElement | null> = ref(null);\r\n\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n const webHttpRequest = new WebHttpRequest();\r\n // 样式默认宽度是48px\r\n let slideWidth: number = 48;\r\n\r\n const isError = ref(false);\r\n\r\n const deg = ref(0);\r\n const imageUrl = ref(\"\");\r\n const loading = ref(false);\r\n const imageStyle = computed(() => {\r\n return {\r\n backgroundImage: `url(${unref(imageUrl)})`,\r\n transform: `rotate(-${unref(deg)}deg)`,\r\n };\r\n });\r\n\r\n const loadImage = async (): Promise<undefined> => {\r\n // loading.value = true;\r\n\r\n // try {\r\n // const response = await httpRequest.get<Blob>(\r\n // \"/ms/app/captcha/rotation/image\",\r\n // {\r\n // params: {\r\n // scene: props.scene,\r\n // t: Math.random(),\r\n // },\r\n // responseType: \"blob\",\r\n // }\r\n // );\r\n\r\n // if (!(response.data instanceof Blob)) {\r\n // return;\r\n // }\r\n\r\n // imageUrl.value = URL.createObjectURL(response.data);\r\n // } finally {\r\n // loading.value = false;\r\n // }\r\n\r\n const clientId = await webHttpRequest.getClientID();\r\n webHttpRequest.getInterceptors\r\n return await new Promise(reslove=>{\r\n\r\n const img = new Image();\r\n\r\n img.onload = ()=>{\r\n imageUrl.value = img.src;\r\n reslove(undefined);\r\n loading.value = false;\r\n }\r\n\r\n img.src = `api/ms/app/captcha/rotation/image?scene=${props.scene}&t=${Math.random()}&rcid=${clientId}`\r\n })\r\n };\r\n\r\n const handleSwitchConfirm = () => {\r\n emit(\"confirm\", unref(deg));\r\n };\r\n\r\n const handleMouseDown = (mouseDownEvent: MouseEvent | TouchEvent) => {\r\n if (unref(isError)) {\r\n return;\r\n }\r\n\r\n const startX =\r\n mouseDownEvent instanceof MouseEvent\r\n ? mouseDownEvent.clientX\r\n : mouseDownEvent.touches[0].clientX;\r\n const disposable = new Disposable();\r\n const totalWidth = unref(wrapperEl)!.getBoundingClientRect().width;\r\n\r\n const handleMouseMove = (event: MouseEvent | TouchEvent) => {\r\n const moveX =\r\n event instanceof MouseEvent\r\n ? event.clientX\r\n : event.touches[0].clientX;\r\n\r\n // 限定宽度范围\r\n slideWidth = Math.min(Math.max(moveX - startX + 48, 48), totalWidth);\r\n\r\n deg.value = Math.floor(((slideWidth - 48) / (totalWidth - 48)) * 360);\r\n\r\n unref(grandEl)!.style.width = `${slideWidth}px`;\r\n unref(buttonEl)!.style.transform = `translateX(${slideWidth - 48}px)`;\r\n };\r\n\r\n const handleMouseUp = (event: MouseEvent | TouchEvent) => {\r\n if (deg.value !== 0) {\r\n handleSwitchConfirm();\r\n }\r\n\r\n disposable.dispose();\r\n };\r\n\r\n document.addEventListener(\"mousemove\", handleMouseMove);\r\n document.addEventListener(\"touchmove\", handleMouseMove);\r\n document.addEventListener(\"mouseup\", handleMouseUp);\r\n document.addEventListener(\"touchend\", handleMouseUp);\r\n document.addEventListener(\"touchcancel\", handleMouseUp);\r\n\r\n disposable.register(\r\n createDisposable(() => {\r\n document.removeEventListener(\"mousemove\", handleMouseMove);\r\n document.removeEventListener(\"touchmove\", handleMouseMove);\r\n document.removeEventListener(\"mouseup\", handleMouseUp);\r\n document.removeEventListener(\"touchend\", handleMouseUp);\r\n document.removeEventListener(\"touchcancel\", handleMouseUp);\r\n })\r\n );\r\n };\r\n\r\n const reset = () => {\r\n unref(grandEl)!.style.width = ``;\r\n unref(buttonEl)!.style.transform = ``;\r\n };\r\n\r\n expose({\r\n fail: () => {\r\n isError.value = true;\r\n\r\n setTimeout(() => {\r\n isError.value = false;\r\n\r\n reset();\r\n }, 1000);\r\n },\r\n });\r\n\r\n onMounted(async () => {\r\n await loadImage();\r\n });\r\n\r\n return () => {\r\n return (\r\n <Fragment>\r\n <div class=\"mk-verify-dialog__wrapper\" v-loading={unref(loading)}>\r\n <div\r\n class=\"mk-verify-dialog__image\"\r\n ref=\"imageEl\"\r\n style={imageStyle.value}\r\n />\r\n <div class=\"mk-verify-dialog__coordinate\" />\r\n </div>\r\n <div class={[\"mk-verify-switch\", unref(isError) ? \"is-error\" : \"\"]}>\r\n <div\r\n class=\"mk-verify-switch__wrapper\"\r\n ref={((el: HTMLDivElement) => (wrapperEl.value = el)) as any}\r\n >\r\n <div\r\n class=\"mk-verify-switch__button-grand\"\r\n ref={((el: HTMLDivElement) => (grandEl.value = el)) as any}\r\n />\r\n <div\r\n class=\"mk-verify-switch__button\"\r\n ref={((el: HTMLDivElement) => (buttonEl.value = el)) as any}\r\n onMousedown={handleMouseDown}\r\n onTouchstart={handleMouseDown}\r\n />\r\n </div>\r\n </div>\r\n </Fragment>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["defineComponent","name","props","verifyDialogProps","emits","verifyDialogEmits","setup","emit","expose","wrapperEl","ref","buttonEl","grandEl","MSAppClient","instance","httpRequest","webHttpRequest","WebHttpRequest","slideWidth","isError","deg","imageUrl","loading","imageStyle","computed","backgroundImage","unref","transform","loadImage","clientId","getClientID","getInterceptors","Promise","reslove","img","Image","onload","value","src","undefined","scene","Math","random","handleSwitchConfirm","handleMouseDown","mouseDownEvent","startX","MouseEvent","clientX","touches","disposable","Disposable","totalWidth","getBoundingClientRect","width","handleMouseMove","event","moveX","min","max","floor","style","handleMouseUp","dispose","document","addEventListener","register","createDisposable","removeEventListener","reset","fail","setTimeout","onMounted","_createVNode","_Fragment","_withDirectives","_resolveDirective","el"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MSAppClient.js","sources":["../../../src/core/MSAppClient.ts"],"sourcesContent":["import {\r\n createRouter,\r\n createWebHashHistory,\r\n Router as VueRouter,\r\n} from \"vue-router\";\r\nimport {\r\n ACCESS_TOKEN_HEADER,\r\n DVQueryable,\r\n HttpRequest,\r\n R,\r\n WebHttpRequest,\r\n X_ACCESS_TOKEN_HEADER,\r\n} from \"@maketribe/request\";\r\nimport { IComponents, Components, ComponentsCombine } from \"@maketribe/dm\";\r\nimport { I18n } from \"@maketribe/locale\";\r\n\r\nimport { Event, md5 } from \"@maketribe/utils\";\r\nimport { UserSession } from \"./UserSession\";\r\nimport { authBeforeEach } from \"../router-middleware\";\r\nimport { PageManager } from \"./PageManager\";\r\nimport { InternalMkModule, MkModule } from \"./MkModule\";\r\nimport { DataModelDefines } from \"./DataModelDefines\";\r\nimport { App } from \"vue\";\r\nimport { DATA_MODEL_NAME } from \"../constants\";\r\n\r\nexport type LoginResult = {\r\n account: string;\r\n email: string;\r\n nickName: string;\r\n avatarPath: string;\r\n};\r\n\r\nexport interface MSAppClientOptions {\r\n app: App;\r\n pageManager?: PageManager;\r\n projectName: string;\r\n httpRequest?: HttpRequest;\r\n origin: string;\r\n appID: string;\r\n logo?: string;\r\n locale?: string;\r\n vueRouter?: VueRouter;\r\n dataTableComponents?: IComponents;\r\n dataTableHeaderComponents?: IComponents;\r\n dataFormComponents?: IComponents;\r\n dataFilterComponents?: IComponents;\r\n whereFilterComponents?: IComponents;\r\n}\r\n\r\nexport class MSAppClient {\r\n static instance: MSAppClient | null = null;\r\n\r\n origin: string = \"\";\r\n\r\n private _options: Required<MSAppClientOptions>;\r\n\r\n app: App;\r\n\r\n projectName: string;\r\n\r\n logo: string;\r\n\r\n appID: string;\r\n\r\n userSession: UserSession | null = null;\r\n\r\n httpRequest: HttpRequest;\r\n\r\n ready: boolean = false;\r\n\r\n initd: boolean = false;\r\n\r\n pageManager: PageManager;\r\n\r\n modules: MkModule[] = [];\r\n\r\n /**\r\n * @deprecated\r\n * @description 使用 MSAppClient.instance.userSession.userInfo\r\n */\r\n get userInfo() {\r\n return this.userSession?.userInfo ?? null;\r\n }\r\n\r\n dataTableComponents: IComponents;\r\n dataTableHeaderComponents: IComponents;\r\n dataFormComponents: IComponents;\r\n dataFilterComponents: IComponents;\r\n whereFilterComponents: IComponents;\r\n i18n: I18n;\r\n\r\n vueRouter: VueRouter;\r\n\r\n beforeInitUserSessionEvent: Event<{ userSession: UserSession }> = new Event();\r\n\r\n userSessionChangeEvent: Event<{ userSession: UserSession | null }> =\r\n new Event();\r\n\r\n constructor(options: MSAppClientOptions) {\r\n this._options = this._normalizeOptions(options);\r\n\r\n this.app = options.app;\r\n\r\n this.appID = this._options.appID;\r\n\r\n this.logo = this._options.logo;\r\n\r\n this.projectName = options.projectName;\r\n\r\n this.dataTableComponents = this._options.dataTableComponents;\r\n this.dataTableHeaderComponents = this._options.dataTableHeaderComponents;\r\n this.dataFormComponents = this._options.dataFormComponents;\r\n this.dataFilterComponents = this._options.dataFilterComponents;\r\n this.whereFilterComponents = this._options.whereFilterComponents;\r\n this.i18n = I18n.instance;\r\n this.i18n.setCurrentLanguageName(this._options.locale);\r\n\r\n this.dataTableComponents = this._options.dataTableComponents;\r\n this.dataFormComponents = this._options.dataFormComponents;\r\n this.dataFilterComponents = this._options.dataFilterComponents;\r\n this.whereFilterComponents = this._options.whereFilterComponents;\r\n\r\n this.vueRouter = this._options.vueRouter;\r\n\r\n this.pageManager = this._options.pageManager;\r\n\r\n this.httpRequest = this._options.httpRequest;\r\n\r\n HttpRequest.appID = this.appID;\r\n HttpRequest.setDefaultHttpRequest(this.httpRequest);\r\n\r\n DVQueryable.setHttpRequest(this.httpRequest);\r\n }\r\n\r\n setUserSession(userSession: UserSession | null) {\r\n if (this.userSession) {\r\n this.userSession.dispose();\r\n }\r\n\r\n this.userSession = userSession;\r\n\r\n this.userSessionChangeEvent.emit({ userSession });\r\n }\r\n\r\n private _normalizeOptions(\r\n options: MSAppClientOptions\r\n ): Required<MSAppClientOptions> {\r\n return {\r\n app: options.app,\r\n appID: options.appID,\r\n projectName: options.projectName,\r\n httpRequest: options.httpRequest ?? new WebHttpRequest(),\r\n origin: options.origin,\r\n logo: options.logo || \"\",\r\n locale: options.locale || \"zh-cn\",\r\n vueRouter:\r\n options.vueRouter ??\r\n createRouter({\r\n history: createWebHashHistory(),\r\n routes: [],\r\n }),\r\n pageManager: options.pageManager ?? new PageManager(),\r\n dataTableComponents: options.dataTableComponents ?? new Components(),\r\n dataTableHeaderComponents:\r\n options.dataTableHeaderComponents ?? new Components(),\r\n dataFormComponents: options.dataFormComponents ?? new Components(),\r\n dataFilterComponents: options.dataFilterComponents ?? new Components(),\r\n whereFilterComponents: options.whereFilterComponents ?? new Components(),\r\n };\r\n }\r\n getI18n() {\r\n return this.i18n;\r\n }\r\n\r\n getOptions() {\r\n return this._options;\r\n }\r\n\r\n async loadCurrentUserSession(options?: {\r\n accessToken: string;\r\n xAccessToken: string;\r\n }) {\r\n const userSession = (this.userSession = new UserSession({\r\n msAppClient: this,\r\n ...options,\r\n }));\r\n this.userSession = null;\r\n\r\n this.beforeInitUserSessionEvent.emit({ userSession });\r\n const userSessionInitResult = await userSession.init();\r\n\r\n if (userSessionInitResult?.data.code !== 200) {\r\n userSession.dispose();\r\n return userSessionInitResult!;\r\n }\r\n\r\n this.setUserSession(userSession);\r\n }\r\n\r\n async init() {\r\n if (this.initd) {\r\n return;\r\n }\r\n\r\n const internalModules = this.modules.map((module) => {\r\n const internalModule = new InternalMkModule(this.app);\r\n\r\n module(internalModule);\r\n\r\n return internalModule;\r\n });\r\n\r\n const dataTableComponents = [];\r\n const dataFormComponents = [];\r\n const whereFilterComponents = [];\r\n const dataFilterComponents = [];\r\n\r\n for (let internalModule of internalModules) {\r\n for (let item of internalModule.dataTableClasses) {\r\n DataModelDefines.instance.registerDataTableDefine(\r\n (item as any)[DATA_MODEL_NAME],\r\n item\r\n );\r\n }\r\n\r\n for (let item of internalModule.dataFormClasses) {\r\n DataModelDefines.instance.registerDataFormDefine(\r\n (item as any)[DATA_MODEL_NAME],\r\n item\r\n );\r\n }\r\n\r\n for (let item of internalModule.dataTreeClasses) {\r\n DataModelDefines.instance.registerDataTreeDefine(\r\n (item as any)[DATA_MODEL_NAME],\r\n item\r\n );\r\n }\r\n\r\n dataTableComponents.push(internalModule.dataTableComponents);\r\n dataFormComponents.push(internalModule.dataFormComponents);\r\n dataFilterComponents.push(internalModule.dataFilterComponents);\r\n whereFilterComponents.push(internalModule.whereFilterComponents);\r\n }\r\n\r\n this.dataTableComponents = new ComponentsCombine({\r\n componentsList: [...dataTableComponents, this.dataTableComponents],\r\n });\r\n this.dataFormComponents = new ComponentsCombine({\r\n componentsList: [...dataFormComponents, this.dataFormComponents],\r\n });\r\n this.dataFilterComponents = new ComponentsCombine({\r\n componentsList: [...dataFilterComponents, this.dataFilterComponents],\r\n });\r\n this.whereFilterComponents = new ComponentsCombine({\r\n componentsList: [...whereFilterComponents, this.whereFilterComponents],\r\n });\r\n\r\n this.vueRouter.beforeEach(async (to, from, next) => {\r\n const route = await authBeforeEach(this, to, from);\r\n\r\n if (route) {\r\n next(route);\r\n return;\r\n }\r\n\r\n next();\r\n });\r\n\r\n this.pageManager.init();\r\n this.pageManager.setMSAppCLient(this);\r\n\r\n for (let internalModule of internalModules) {\r\n for (let item of internalModule.normalPages) {\r\n this.pageManager.addNormalPage(item);\r\n }\r\n\r\n for (let item of internalModule.extendsPages) {\r\n this.pageManager.addExtendsPage(item);\r\n }\r\n }\r\n\r\n this.httpRequest.getInterceptors().response.use((config) => {\r\n if (config.data.code === 401) {\r\n this.userSession?.dispose();\r\n this.vueRouter.push({ name: \"login\" });\r\n }\r\n return config;\r\n });\r\n\r\n this.initd = true;\r\n }\r\n\r\n async login(username: string, password: string, code: string) {\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/ms/app/login\",\r\n method: \"POST\",\r\n data: {\r\n account: username,\r\n password: md5(`mkbl#${password}`),\r\n vCode: code,\r\n },\r\n });\r\n\r\n if (response.data.code === 200) {\r\n await this.loadCurrentUserSession({\r\n accessToken: response.headers[ACCESS_TOKEN_HEADER],\r\n xAccessToken: response.headers[X_ACCESS_TOKEN_HEADER],\r\n });\r\n }\r\n\r\n return response;\r\n }\r\n\r\n formatURL(url: string) {\r\n return url;\r\n }\r\n\r\n async resetPassword(username: string, code: string) {\r\n type LoginResult = {\r\n account: string;\r\n email: string;\r\n nickName: string;\r\n avatarPath: string;\r\n };\r\n\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/ms/app/reset-password\",\r\n method: \"POST\",\r\n data: { account: username, vCode: code },\r\n });\r\n\r\n return response;\r\n }\r\n\r\n async logout() {\r\n this.setUserSession(null);\r\n }\r\n async changePassword(password: string, newPassword: string, vCode: string) {\r\n type LoginResult = {\r\n account: string;\r\n email: string;\r\n nickName: string;\r\n avatarPath: string;\r\n };\r\n\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/ms/app/modify-password\",\r\n method: \"POST\",\r\n data: {\r\n password: md5(`mkbl#${password}`),\r\n newPassword: md5(`mkbl#${newPassword}`),\r\n vCode,\r\n },\r\n });\r\n\r\n return response;\r\n }\r\n\r\n addModule(module: MkModule) {\r\n this.modules.push(module);\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MSAppClient.js","sources":["../../../src/core/MSAppClient.ts"],"sourcesContent":["import {\r\n createRouter,\r\n createWebHashHistory,\r\n Router as VueRouter,\r\n} from \"vue-router\";\r\nimport {\r\n ACCESS_TOKEN_HEADER,\r\n DVQueryable,\r\n HttpRequest,\r\n R,\r\n WebHttpRequest,\r\n X_ACCESS_TOKEN_HEADER,\r\n} from \"@maketribe/request\";\r\nimport { IComponents, Components, ComponentsCombine } from \"@maketribe/dm\";\r\nimport { I18n } from \"@maketribe/locale\";\r\n\r\nimport { Event, md5 } from \"@maketribe/utils\";\r\nimport { UserSession } from \"./UserSession\";\r\nimport { authBeforeEach } from \"../router-middleware\";\r\nimport { PageManager } from \"./PageManager\";\r\nimport { InternalMkModule, MkModule } from \"./MkModule\";\r\nimport { DataModelDefines } from \"./DataModelDefines\";\r\nimport { App } from \"vue\";\r\nimport { DATA_MODEL_NAME } from \"../constants\";\r\n\r\nexport type LoginResult = {\r\n account: string;\r\n email: string;\r\n nickName: string;\r\n avatarPath: string;\r\n isMidifyPassword?:Boolean;\r\n};\r\n\r\nexport interface MSAppClientOptions {\r\n app: App;\r\n pageManager?: PageManager;\r\n projectName: string;\r\n httpRequest?: HttpRequest;\r\n origin: string;\r\n appID: string;\r\n logo?: string;\r\n locale?: string;\r\n vueRouter?: VueRouter;\r\n dataTableComponents?: IComponents;\r\n dataTableHeaderComponents?: IComponents;\r\n dataFormComponents?: IComponents;\r\n dataFilterComponents?: IComponents;\r\n whereFilterComponents?: IComponents;\r\n}\r\n\r\nexport class MSAppClient {\r\n static instance: MSAppClient | null = null;\r\n\r\n origin: string = \"\";\r\n\r\n private _options: Required<MSAppClientOptions>;\r\n\r\n app: App;\r\n\r\n projectName: string;\r\n\r\n logo: string;\r\n\r\n appID: string;\r\n\r\n userSession: UserSession | null = null;\r\n\r\n httpRequest: HttpRequest;\r\n\r\n ready: boolean = false;\r\n\r\n initd: boolean = false;\r\n\r\n pageManager: PageManager;\r\n\r\n modules: MkModule[] = [];\r\n\r\n /**\r\n * @deprecated\r\n * @description 使用 MSAppClient.instance.userSession.userInfo\r\n */\r\n get userInfo() {\r\n return this.userSession?.userInfo ?? null;\r\n }\r\n\r\n dataTableComponents: IComponents;\r\n dataTableHeaderComponents: IComponents;\r\n dataFormComponents: IComponents;\r\n dataFilterComponents: IComponents;\r\n whereFilterComponents: IComponents;\r\n i18n: I18n;\r\n\r\n vueRouter: VueRouter;\r\n\r\n beforeInitUserSessionEvent: Event<{ userSession: UserSession }> = new Event();\r\n\r\n userSessionChangeEvent: Event<{ userSession: UserSession | null }> =\r\n new Event();\r\n\r\n constructor(options: MSAppClientOptions) {\r\n this._options = this._normalizeOptions(options);\r\n\r\n this.app = options.app;\r\n\r\n this.appID = this._options.appID;\r\n\r\n this.logo = this._options.logo;\r\n\r\n this.projectName = options.projectName;\r\n\r\n this.dataTableComponents = this._options.dataTableComponents;\r\n this.dataTableHeaderComponents = this._options.dataTableHeaderComponents;\r\n this.dataFormComponents = this._options.dataFormComponents;\r\n this.dataFilterComponents = this._options.dataFilterComponents;\r\n this.whereFilterComponents = this._options.whereFilterComponents;\r\n this.i18n = I18n.instance;\r\n this.i18n.setCurrentLanguageName(this._options.locale);\r\n\r\n this.dataTableComponents = this._options.dataTableComponents;\r\n this.dataFormComponents = this._options.dataFormComponents;\r\n this.dataFilterComponents = this._options.dataFilterComponents;\r\n this.whereFilterComponents = this._options.whereFilterComponents;\r\n\r\n this.vueRouter = this._options.vueRouter;\r\n\r\n this.pageManager = this._options.pageManager;\r\n\r\n this.httpRequest = this._options.httpRequest;\r\n\r\n HttpRequest.appID = this.appID;\r\n HttpRequest.setDefaultHttpRequest(this.httpRequest);\r\n\r\n DVQueryable.setHttpRequest(this.httpRequest);\r\n }\r\n\r\n setUserSession(userSession: UserSession | null) {\r\n if (this.userSession) {\r\n this.userSession.dispose();\r\n }\r\n\r\n this.userSession = userSession;\r\n\r\n this.userSessionChangeEvent.emit({ userSession });\r\n }\r\n\r\n private _normalizeOptions(\r\n options: MSAppClientOptions\r\n ): Required<MSAppClientOptions> {\r\n return {\r\n app: options.app,\r\n appID: options.appID,\r\n projectName: options.projectName,\r\n httpRequest: options.httpRequest ?? new WebHttpRequest(),\r\n origin: options.origin,\r\n logo: options.logo || \"\",\r\n locale: options.locale || \"zh-cn\",\r\n vueRouter:\r\n options.vueRouter ??\r\n createRouter({\r\n history: createWebHashHistory(),\r\n routes: [],\r\n }),\r\n pageManager: options.pageManager ?? new PageManager(),\r\n dataTableComponents: options.dataTableComponents ?? new Components(),\r\n dataTableHeaderComponents:\r\n options.dataTableHeaderComponents ?? new Components(),\r\n dataFormComponents: options.dataFormComponents ?? new Components(),\r\n dataFilterComponents: options.dataFilterComponents ?? new Components(),\r\n whereFilterComponents: options.whereFilterComponents ?? new Components(),\r\n };\r\n }\r\n getI18n() {\r\n return this.i18n;\r\n }\r\n\r\n getOptions() {\r\n return this._options;\r\n }\r\n\r\n async loadCurrentUserSession(options?: {\r\n accessToken: string;\r\n xAccessToken: string;\r\n }) {\r\n const userSession = (this.userSession = new UserSession({\r\n msAppClient: this,\r\n ...options,\r\n }));\r\n this.userSession = null;\r\n\r\n this.beforeInitUserSessionEvent.emit({ userSession });\r\n const userSessionInitResult = await userSession.init();\r\n\r\n if (userSessionInitResult?.data.code !== 200) {\r\n userSession.dispose();\r\n return userSessionInitResult!;\r\n }\r\n\r\n this.setUserSession(userSession);\r\n }\r\n\r\n async init() {\r\n if (this.initd) {\r\n return;\r\n }\r\n\r\n const internalModules = this.modules.map((module) => {\r\n const internalModule = new InternalMkModule(this.app);\r\n\r\n module(internalModule);\r\n\r\n return internalModule;\r\n });\r\n\r\n const dataTableComponents = [];\r\n const dataFormComponents = [];\r\n const whereFilterComponents = [];\r\n const dataFilterComponents = [];\r\n\r\n for (let internalModule of internalModules) {\r\n for (let item of internalModule.dataTableClasses) {\r\n DataModelDefines.instance.registerDataTableDefine(\r\n (item as any)[DATA_MODEL_NAME],\r\n item\r\n );\r\n }\r\n\r\n for (let item of internalModule.dataFormClasses) {\r\n DataModelDefines.instance.registerDataFormDefine(\r\n (item as any)[DATA_MODEL_NAME],\r\n item\r\n );\r\n }\r\n\r\n for (let item of internalModule.dataTreeClasses) {\r\n DataModelDefines.instance.registerDataTreeDefine(\r\n (item as any)[DATA_MODEL_NAME],\r\n item\r\n );\r\n }\r\n\r\n dataTableComponents.push(internalModule.dataTableComponents);\r\n dataFormComponents.push(internalModule.dataFormComponents);\r\n dataFilterComponents.push(internalModule.dataFilterComponents);\r\n whereFilterComponents.push(internalModule.whereFilterComponents);\r\n }\r\n\r\n this.dataTableComponents = new ComponentsCombine({\r\n componentsList: [...dataTableComponents, this.dataTableComponents],\r\n });\r\n this.dataFormComponents = new ComponentsCombine({\r\n componentsList: [...dataFormComponents, this.dataFormComponents],\r\n });\r\n this.dataFilterComponents = new ComponentsCombine({\r\n componentsList: [...dataFilterComponents, this.dataFilterComponents],\r\n });\r\n this.whereFilterComponents = new ComponentsCombine({\r\n componentsList: [...whereFilterComponents, this.whereFilterComponents],\r\n });\r\n\r\n this.vueRouter.beforeEach(async (to, from, next) => {\r\n const route = await authBeforeEach(this, to, from);\r\n\r\n if (route) {\r\n next(route);\r\n return;\r\n }\r\n\r\n next();\r\n });\r\n\r\n this.pageManager.init();\r\n this.pageManager.setMSAppCLient(this);\r\n\r\n for (let internalModule of internalModules) {\r\n for (let item of internalModule.normalPages) {\r\n this.pageManager.addNormalPage(item);\r\n }\r\n\r\n for (let item of internalModule.extendsPages) {\r\n this.pageManager.addExtendsPage(item);\r\n }\r\n }\r\n\r\n this.httpRequest.getInterceptors().response.use((config) => {\r\n if (config.data.code === 401) {\r\n this.userSession?.dispose();\r\n this.vueRouter.push({ name: \"login\" });\r\n }\r\n return config;\r\n });\r\n\r\n this.initd = true;\r\n }\r\n\r\n async login(username: string, password: string, code: string) {\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/ms/app/login\",\r\n method: \"POST\",\r\n data: {\r\n account: username,\r\n password: md5(`mkbl#${password}`),\r\n vCode: code,\r\n },\r\n });\r\n\r\n if (response.data.code === 200) {\r\n await this.loadCurrentUserSession({\r\n accessToken: response.headers[ACCESS_TOKEN_HEADER],\r\n xAccessToken: response.headers[X_ACCESS_TOKEN_HEADER],\r\n });\r\n }\r\n\r\n return response;\r\n }\r\n\r\n formatURL(url: string) {\r\n return url;\r\n }\r\n\r\n async resetPassword(username: string, code: string) {\r\n type LoginResult = {\r\n account: string;\r\n email: string;\r\n nickName: string;\r\n avatarPath: string;\r\n };\r\n\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/ms/app/reset-password\",\r\n method: \"POST\",\r\n data: { account: username, vCode: code },\r\n });\r\n\r\n return response;\r\n }\r\n\r\n async logout() {\r\n this.setUserSession(null);\r\n }\r\n async changePassword(password: string, newPassword: string, vCode: string) {\r\n type LoginResult = {\r\n account: string;\r\n email: string;\r\n nickName: string;\r\n avatarPath: string;\r\n };\r\n\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/ms/app/modify-password\",\r\n method: \"POST\",\r\n data: {\r\n password: md5(`mkbl#${password}`),\r\n newPassword: md5(`mkbl#${newPassword}`),\r\n vCode,\r\n },\r\n });\r\n\r\n return response;\r\n }\r\n\r\n addModule(module: MkModule) {\r\n this.modules.push(module);\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,251 @@
1
+ import { defineComponent, ref, computed, reactive, watch, unref, createVNode, createTextVNode } from "vue";
2
+ import { ElDialog, ElForm, ElFormItem, ElInput, ElButton } from "element-plus";
3
+ import "../../../components/abstract/abstract-select/abstract-select.js";
4
+ import "../../../components/abstract/abstract-select/abstract-select-options.js";
5
+ import "../../../components/basic/svg-icon/index.js";
6
+ import "../../../components/basic/button/button-options.js";
7
+ import "../../../components/basic/config-provider/index.js";
8
+ import "../../../components/basic/data-table-select/index.js";
9
+ import "../../../components/basic/data-select/index.js";
10
+ import "../../../components/basic/pagination/index.js";
11
+ import "../../../components/basic/system-provider/index.js";
12
+ import "../../../components/basic/code-editor/index.js";
13
+ import "../../../components/basic/json-editor/index.js";
14
+ import "../../../components/basic/page-container/index.js";
15
+ import "../../../components/basic/date-picker/index.js";
16
+ import "../../../components/basic/icon-select/index.js";
17
+ import "../../../components/basic/upload-file/upload-file.js";
18
+ import "@maketribe/request";
19
+ import "@maketribe/utils";
20
+ import "../../../components/basic/upload-file/context/web-file-upload-context.js";
21
+ import "../../../components/basic/upload-file/context/web-file-upload-context-options.js";
22
+ import "../../../components/basic/upload-file/ui/upload-image/index.js";
23
+ import "../../../components/basic/upload-file/ui/upload-file/index.js";
24
+ import "../../../components/basic/upload-file/ui/upload-video/index.js";
25
+ import "../../../components/basic/upload-file/upload-file-options.js";
26
+ import "../../../components/basic/doc-editor/index.js";
27
+ import "../../../components/basic/copy-container/index.js";
28
+ import "../../../components/basic/image-cropper/index.js";
29
+ import "../../../components/basic/visual-page-editor/index.js";
30
+ import "../../../components/basic/lexical-editor/assets/iconfont.js";
31
+ import "@lexical/overflow";
32
+ import "@lexical/text";
33
+ import "@lexical/utils";
34
+ import "lexical";
35
+ import "@lexical/selection";
36
+ import "@lexical/link";
37
+ import "@lexical/rich-text";
38
+ import "../../../components/basic/lexical-editor/utils/html.js";
39
+ import { Messager } from "@maketribe/dm";
40
+ import "../../../components/basic/lexical-editor/utils/image.js";
41
+ import "@element-plus/icons-vue";
42
+ import "../../../components/basic/lexical-editor/composables/useElementBlockSelection.js";
43
+ import "@lexical/history";
44
+ /* empty css */
45
+ import "../../../components/basic/lexical-editor/nodes/ModuleDecoratorNode.js";
46
+ import "../../../components/basic/lexical-editor/nodes/ImageNode.js";
47
+ import "../../../components/basic/lexical-editor/nodes/ImageTextWarpNode.js";
48
+ import "../../../components/basic/lexical-editor/nodes/Template.js";
49
+ /* empty css */
50
+ /* empty css */
51
+ /* empty css */
52
+ import "../../../components/basic/lexical-editor/plugins/RichTextEditorPlugin.js";
53
+ import "../../../components/basic/lexical-editor/plugins/HashtagPlugin.js";
54
+ import "../../../components/basic/lexical-editor/plugins/ListPlugin.js";
55
+ import "../../../components/basic/lexical-editor/plugins/CheckListPlugin.js";
56
+ import "../../../components/basic/lexical-editor/plugins/TablePlugin.js";
57
+ /* empty css */
58
+ import "@lexical/dragon";
59
+ import "@lexical/plain-text";
60
+ import "../../../components/basic/lexical-editor/stage/DecoratedTeleports.js";
61
+ /* empty css */
62
+ import "../../../components/data-model/data-form/index.js";
63
+ import "../../../components/data-model/data-table/index.js";
64
+ import "../../../components/data-model/data-table-pagination/index.js";
65
+ import { MKOpenVerifyCode } from "../../../components/business/verify-dialog/index.js";
66
+ import "../../../components/business/resource-list/index.js";
67
+ import "../../../components/business/resource-manager/index.js";
68
+ import "../../../core/DataModelDefines.js";
69
+ import { MSAppClient } from "../../../core/MSAppClient.js";
70
+ const MKPasswordDialog = /* @__PURE__ */ defineComponent({
71
+ name: "MKPasswordDialog",
72
+ props: {
73
+ showDialog: Boolean
74
+ },
75
+ emits: ["update:showDialog"],
76
+ setup(props, {
77
+ emit
78
+ }) {
79
+ var _a;
80
+ const msAppClient = (_a = MSAppClient) == null ? void 0 : _a.instance;
81
+ const formRef = ref();
82
+ const showDialog = computed({
83
+ get: () => props.showDialog,
84
+ set: (v) => emit("update:showDialog", v)
85
+ });
86
+ const form = reactive({
87
+ password: "",
88
+ newPassword: "",
89
+ repeatPassword: ""
90
+ });
91
+ watch(showDialog, async () => {
92
+ if (unref(showDialog)) {
93
+ form.password = "";
94
+ form.newPassword = "";
95
+ form.repeatPassword = "";
96
+ }
97
+ });
98
+ const submitChangePassword = async () => {
99
+ if (!await formRef.value.validate()) {
100
+ return;
101
+ }
102
+ try {
103
+ btnLoading.value = true;
104
+ const vCode = await MKOpenVerifyCode({
105
+ sence: "ModifyPassword"
106
+ }) + "";
107
+ const result = await msAppClient.changePassword(form.password, form.newPassword, vCode);
108
+ if (result.data.code != 200) {
109
+ Messager.error({
110
+ message: result.data.msg || "修改密码失败"
111
+ });
112
+ return;
113
+ }
114
+ btnLoading.value = false;
115
+ showDialog.value = false;
116
+ Messager.success({
117
+ message: "修改密码成功"
118
+ });
119
+ msAppClient.logout();
120
+ } catch (e) {
121
+ console.error(e);
122
+ } finally {
123
+ btnLoading.value = false;
124
+ }
125
+ };
126
+ const btnLoading = ref(false);
127
+ const reg = /^([a-zA-Z]+[0-9]+[,._!@#$%^&*]+)|([a-zA-Z]+[,._!@#$%^&*]+[0-9]+)|([0-9]+[,._!@#$%^&*]+[a-zA-Z]+)|([0-9]+[a-zA-Z]+[,._!@#$%^&*]+)|([,._!@#$%^&*]+[a-zA-Z]+[0-9]+)|([,._!@#$%^&*]+[0-9]+[a-zA-Z]+)$/;
128
+ const validateCode1 = (rule, value, callback) => {
129
+ if (value == "") {
130
+ callback(new Error("请输入密码"));
131
+ }
132
+ if (value != form.newPassword) {
133
+ callback(new Error("两次输入不一致"));
134
+ }
135
+ callback();
136
+ };
137
+ const validateCode = (rule, value, callback) => {
138
+ if (value == "") {
139
+ callback(new Error("请输入密码码"));
140
+ }
141
+ if (value.length < 8) {
142
+ callback(new Error("密码码长度不能小于8位"));
143
+ }
144
+ if (value == form.password) {
145
+ callback(new Error("新密码不能与旧密码相同"));
146
+ }
147
+ if (!reg.test(value)) {
148
+ callback(new Error("密码必须包含数字,字母和特殊符号"));
149
+ } else {
150
+ callback();
151
+ }
152
+ };
153
+ return () => {
154
+ return createVNode(ElDialog, {
155
+ "model-value": showDialog.value,
156
+ "onUpdate:modelValue": (v) => {
157
+ showDialog.value = v;
158
+ },
159
+ "title": "修改密码",
160
+ "width": "30%"
161
+ }, {
162
+ default: () => [createVNode(ElForm, {
163
+ "ref": formRef,
164
+ "model": form,
165
+ "label-width": "80px"
166
+ }, {
167
+ default: () => [createVNode(ElFormItem, {
168
+ "label": "旧密码",
169
+ "required": true,
170
+ "prop": "password",
171
+ "rules": [{
172
+ required: true,
173
+ message: "请输入旧密码",
174
+ trigger: "change"
175
+ }]
176
+ }, {
177
+ default: () => [createVNode(ElInput, {
178
+ "model-value": form.password,
179
+ "placeholder": "请输入旧密码",
180
+ "onUpdate:modelValue": (v) => {
181
+ form.password = v;
182
+ },
183
+ "type": "password"
184
+ }, null)]
185
+ }), createVNode(ElFormItem, {
186
+ "label": "新密码",
187
+ "required": true,
188
+ "prop": "newPassword",
189
+ "rules": [{
190
+ required: true,
191
+ message: "请输入新密码",
192
+ trigger: "change"
193
+ }, {
194
+ validator: validateCode,
195
+ trigger: "change"
196
+ }]
197
+ }, {
198
+ default: () => [createVNode(ElInput, {
199
+ "model-value": form.newPassword,
200
+ "placeholder": "请输入新密码",
201
+ "onUpdate:modelValue": (v) => {
202
+ form.newPassword = v;
203
+ },
204
+ "type": "password"
205
+ }, null)]
206
+ }), createVNode(ElFormItem, {
207
+ "label": "重复密码",
208
+ "required": true,
209
+ "prop": "repeatPassword",
210
+ "rules": [{
211
+ required: true,
212
+ message: "请再次输入密码",
213
+ trigger: "change"
214
+ }, {
215
+ validator: validateCode1,
216
+ trigger: "change"
217
+ }]
218
+ }, {
219
+ default: () => [createVNode(ElInput, {
220
+ "model-value": form.repeatPassword,
221
+ "placeholder": "请再次输入密码",
222
+ "onUpdate:modelValue": (v) => {
223
+ form.repeatPassword = v;
224
+ },
225
+ "type": "password"
226
+ }, null)]
227
+ })]
228
+ })],
229
+ footer: () => createVNode("div", null, [createVNode(ElButton, {
230
+ "onClick": () => {
231
+ showDialog.value = false;
232
+ }
233
+ }, {
234
+ default: () => [createTextVNode("取消")]
235
+ }), createVNode(ElButton, {
236
+ "type": "primary",
237
+ "loading": btnLoading.value,
238
+ "onClick": () => {
239
+ submitChangePassword();
240
+ }
241
+ }, {
242
+ default: () => [createTextVNode("确定")]
243
+ })])
244
+ });
245
+ };
246
+ }
247
+ });
248
+ export {
249
+ MKPasswordDialog
250
+ };
251
+ //# sourceMappingURL=passwordDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passwordDialog.js","sources":["../../../../../src/layouts/components/header/passwordDialog.tsx"],"sourcesContent":["import { ElDialog, ElButton, ElForm, ElFormItem, ElInput } from \"element-plus\"\r\nimport { MKOpenVerifyCode } from \"../../../components\";\r\nimport { MSAppClient } from \"../../../core\";\r\nimport { Messager } from \"@maketribe/dm\";\r\n\r\nexport const MKPasswordDialog = defineComponent({\r\n name: \"MKPasswordDialog\",\r\n props: {\r\n showDialog: Boolean\r\n },\r\n emits: [\"update:showDialog\"],\r\n setup(props, { emit }) {\r\n const msAppClient = MSAppClient?.instance!;\r\n\r\n const formRef = ref();\r\n\r\n const showDialog = computed({\r\n get: () => props.showDialog,\r\n set: (v) => emit(\"update:showDialog\", v)\r\n });\r\n\r\n const form = reactive({\r\n password: \"\",\r\n newPassword: \"\",\r\n repeatPassword: \"\",\r\n });\r\n\r\n watch(showDialog, async () => {\r\n if (unref(showDialog)) {\r\n form.password = \"\";\r\n form.newPassword = \"\";\r\n form.repeatPassword = \"\";\r\n }\r\n })\r\n\r\n const submitChangePassword = async () => {\r\n\r\n if (!await formRef.value.validate()) {\r\n return;\r\n }\r\n\r\n try {\r\n\r\n btnLoading.value = true\r\n\r\n const vCode = (await MKOpenVerifyCode({ sence: \"ModifyPassword\" } as any)) + \"\";\r\n\r\n const result = await msAppClient.changePassword(form.password, form.newPassword, vCode);\r\n\r\n if (result.data.code != 200) {\r\n Messager.error({ message: result.data.msg || \"修改密码失败\" });\r\n return;\r\n }\r\n\r\n btnLoading.value = false\r\n showDialog.value = false\r\n Messager.success({ message: \"修改密码成功\" });\r\n msAppClient.logout()\r\n\r\n } catch (e) {\r\n console.error(e);\r\n } finally {\r\n btnLoading.value = false\r\n }\r\n }\r\n\r\n const btnLoading = ref(false)\r\n const reg = /^([a-zA-Z]+[0-9]+[,._!@#$%^&*]+)|([a-zA-Z]+[,._!@#$%^&*]+[0-9]+)|([0-9]+[,._!@#$%^&*]+[a-zA-Z]+)|([0-9]+[a-zA-Z]+[,._!@#$%^&*]+)|([,._!@#$%^&*]+[a-zA-Z]+[0-9]+)|([,._!@#$%^&*]+[0-9]+[a-zA-Z]+)$/\r\n\r\n const validateCode1 = (rule: any, value: any, callback: any) => {\r\n if (value == \"\") {\r\n callback(new Error(\"请输入密码\"));\r\n }\r\n if (value != form.newPassword) {\r\n callback(new Error(\"两次输入不一致\"));\r\n }\r\n callback()\r\n }\r\n\r\n const validateCode = (rule: any, value: any, callback: any) => {\r\n if (value == \"\") {\r\n callback(new Error(\"请输入密码码\"));\r\n }\r\n\r\n if (value.length < 8) {\r\n callback(new Error(\"密码码长度不能小于8位\"));\r\n }\r\n\r\n if (value == form.password) {\r\n callback(new Error(\"新密码不能与旧密码相同\"));\r\n }\r\n\r\n if (!reg.test(value)) {\r\n callback(new Error(\"密码必须包含数字,字母和特殊符号\"))\r\n } else {\r\n callback()\r\n }\r\n }\r\n\r\n return () => {\r\n return <ElDialog model-value={showDialog.value} onUpdate:modelValue={(v) => { showDialog.value = v }} title={'修改密码'} width={'30%'} v-slots={{\r\n footer: () => (\r\n <div>\r\n <ElButton onClick={() => { showDialog.value = false }}>取消</ElButton>\r\n <ElButton type={\"primary\"} loading={btnLoading.value} onClick={() => { submitChangePassword() }}>确定</ElButton>\r\n </div>\r\n )\r\n }}>\r\n <ElForm ref={formRef} model={form} label-width={'80px'}>\r\n <ElFormItem label={'旧密码'} required={true} prop={'password'} rules={[{ required: true, message: '请输入旧密码', trigger: 'change' }]}>\r\n <ElInput model-value={form.password} placeholder={\"请输入旧密码\"} onUpdate:modelValue={(v) => { form.password = v }} type={'password'} />\r\n </ElFormItem>\r\n <ElFormItem label={'新密码'} required={true} prop={'newPassword'} rules={[{ required: true, message: '请输入新密码', trigger: 'change' }, { validator: validateCode, trigger: 'change' }]} >\r\n <ElInput model-value={form.newPassword} placeholder={\"请输入新密码\"} onUpdate:modelValue={(v) => { form.newPassword = v }} type={'password'} />\r\n </ElFormItem>\r\n <ElFormItem label={'重复密码'} required={true} prop={'repeatPassword'} rules={[{ required: true, message: '请再次输入密码', trigger: 'change' }, { validator: validateCode1, trigger: 'change' }]} >\r\n <ElInput model-value={form.repeatPassword} placeholder={\"请再次输入密码\"} onUpdate:modelValue={(v) => { form.repeatPassword = v }} type={'password'} />\r\n </ElFormItem>\r\n </ElForm>\r\n </ElDialog>\r\n }\r\n }\r\n}\r\n)"],"names":["MKPasswordDialog","defineComponent","name","props","showDialog","Boolean","emits","setup","emit","msAppClient","MSAppClient","instance","formRef","ref","computed","get","set","v","form","reactive","password","newPassword","repeatPassword","watch","unref","submitChangePassword","value","validate","btnLoading","vCode","MKOpenVerifyCode","sence","result","changePassword","data","code","Messager","error","message","msg","success","logout","e","console","reg","validateCode1","rule","callback","Error","validateCode","length","test","_createVNode","ElDialog","default","ElForm","ElFormItem","required","trigger","ElInput","validator","footer","ElButton","onClick","_createTextVNode"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { defineComponent, computed, unref, ref, reactive, watch, createVNode, createTextVNode } from "vue";
2
- import { ElDropdown, ElImage, ElDropdownMenu, ElDropdownItem, ElDialog, ElForm, ElFormItem, ElInput, ElButton } from "element-plus";
3
- import { Messager } from "@maketribe/dm";
1
+ import { defineComponent, computed, unref, ref, createVNode, createTextVNode } from "vue";
2
+ import { ElDropdown, ElImage, ElDropdownMenu, ElDropdownItem } from "element-plus";
3
+ import "@maketribe/dm";
4
4
  import "@maketribe/utils";
5
5
  import "../../../core/DataModelDefines.js";
6
6
  import { MSAppClient } from "../../../core/MSAppClient.js";
@@ -64,9 +64,10 @@ import "../../../components/basic/lexical-editor/stage/DecoratedTeleports.js";
64
64
  import "../../../components/data-model/data-form/index.js";
65
65
  import "../../../components/data-model/data-table/index.js";
66
66
  import "../../../components/data-model/data-table-pagination/index.js";
67
- import { MKOpenVerifyCode } from "../../../components/business/verify-dialog/index.js";
67
+ import "../../../components/business/verify-dialog/verify-dialog-option.js";
68
68
  import "../../../components/business/resource-list/index.js";
69
69
  import "../../../components/business/resource-manager/index.js";
70
+ import { MKPasswordDialog } from "./passwordDialog.js";
70
71
  const MKHeaderTools = /* @__PURE__ */ defineComponent({
71
72
  name: "MKHeaderTools",
72
73
  setup(props) {
@@ -79,70 +80,6 @@ const MKHeaderTools = /* @__PURE__ */ defineComponent({
79
80
  return (_a2 = unref(userInfo)) == null ? void 0 : _a2.avatar;
80
81
  });
81
82
  const showDialog = ref(false);
82
- const form = reactive({
83
- password: "",
84
- newPassword: "",
85
- repeatPassword: ""
86
- });
87
- const formRef = ref();
88
- const btnLoading = ref(false);
89
- watch(showDialog, async () => {
90
- if (unref(showDialog)) {
91
- form.password = "";
92
- form.newPassword = "";
93
- form.repeatPassword = "";
94
- }
95
- });
96
- const reg = /^([a-zA-Z]+[0-9]+[,._!@#$%^&*]+)|([a-zA-Z]+[,._!@#$%^&*]+[0-9]+)|([0-9]+[,._!@#$%^&*]+[a-zA-Z]+)|([0-9]+[a-zA-Z]+[,._!@#$%^&*]+)|([,._!@#$%^&*]+[a-zA-Z]+[0-9]+)|([,._!@#$%^&*]+[0-9]+[a-zA-Z]+)$/;
97
- const validateCode1 = (rule, value, callback) => {
98
- if (value == "") {
99
- callback(new Error("请输入密码"));
100
- }
101
- if (value != form.newPassword) {
102
- callback(new Error("两次输入不一致"));
103
- }
104
- callback();
105
- };
106
- const validateCode = (rule, value, callback) => {
107
- if (value == "") {
108
- callback(new Error("请输入密码码"));
109
- }
110
- if (value.length < 8) {
111
- callback(new Error("密码码长度不能小于8位"));
112
- }
113
- if (value == form.password) {
114
- callback(new Error("新密码不能与旧密码相同"));
115
- }
116
- if (!reg.test(value)) {
117
- callback(new Error("密码必须包含数字,字母和特殊符号"));
118
- } else {
119
- callback();
120
- }
121
- };
122
- const submitChangePassword = async () => {
123
- if (!await formRef.value.validate()) {
124
- return;
125
- }
126
- try {
127
- btnLoading.value = true;
128
- const vCode = await MKOpenVerifyCode({
129
- sence: "ModifyPassword"
130
- }) + "";
131
- const result = await msAppClient.changePassword(form.password, form.newPassword, vCode);
132
- if (result.data.code != 200) {
133
- Messager.error({
134
- message: result.data.msg || "修改密码失败"
135
- });
136
- return;
137
- }
138
- btnLoading.value = false;
139
- msAppClient.logout();
140
- } catch (e) {
141
- console.error(e);
142
- } finally {
143
- btnLoading.value = false;
144
- }
145
- };
146
83
  return () => {
147
84
  return createVNode("div", {
148
85
  "class": "mk-header-tools"
@@ -185,97 +122,10 @@ const MKHeaderTools = /* @__PURE__ */ defineComponent({
185
122
  }, null), createTextVNode("退出登录")]
186
123
  })]
187
124
  })
188
- })]), createVNode(ElDialog, {
189
- "model-value": showDialog.value,
190
- "onUpdate:modelValue": (v) => {
191
- showDialog.value = v;
192
- },
193
- "title": "修改密码",
194
- "width": "30%"
195
- }, {
196
- default: () => [createVNode(ElForm, {
197
- "ref": formRef,
198
- "model": form,
199
- "label-width": "80px"
200
- }, {
201
- default: () => [createVNode(ElFormItem, {
202
- "label": "旧密码",
203
- "required": true,
204
- "prop": "password",
205
- "rules": [{
206
- required: true,
207
- message: "请输入旧密码",
208
- trigger: "change"
209
- }]
210
- }, {
211
- default: () => [createVNode(ElInput, {
212
- "model-value": form.password,
213
- "placeholder": "请输入旧密码",
214
- "onUpdate:modelValue": (v) => {
215
- form.password = v;
216
- },
217
- "type": "password"
218
- }, null)]
219
- }), createVNode(ElFormItem, {
220
- "label": "新密码",
221
- "required": true,
222
- "prop": "newPassword",
223
- "rules": [{
224
- required: true,
225
- message: "请输入新密码",
226
- trigger: "change"
227
- }, {
228
- validator: validateCode,
229
- trigger: "change"
230
- }]
231
- }, {
232
- default: () => [createVNode(ElInput, {
233
- "model-value": form.newPassword,
234
- "placeholder": "请输入新密码",
235
- "onUpdate:modelValue": (v) => {
236
- form.newPassword = v;
237
- },
238
- "type": "password"
239
- }, null)]
240
- }), createVNode(ElFormItem, {
241
- "label": "重复密码",
242
- "required": true,
243
- "prop": "repeatPassword",
244
- "rules": [{
245
- required: true,
246
- message: "请再次输入密码",
247
- trigger: "change"
248
- }, {
249
- validator: validateCode1,
250
- trigger: "change"
251
- }]
252
- }, {
253
- default: () => [createVNode(ElInput, {
254
- "model-value": form.repeatPassword,
255
- "placeholder": "请再次输入密码",
256
- "onUpdate:modelValue": (v) => {
257
- form.repeatPassword = v;
258
- },
259
- "type": "password"
260
- }, null)]
261
- })]
262
- })],
263
- footer: () => createVNode("div", null, [createVNode(ElButton, {
264
- "onClick": () => {
265
- showDialog.value = false;
266
- }
267
- }, {
268
- default: () => [createTextVNode("取消")]
269
- }), createVNode(ElButton, {
270
- "type": "primary",
271
- "loading": btnLoading.value,
272
- "onClick": () => {
273
- submitChangePassword();
274
- }
275
- }, {
276
- default: () => [createTextVNode("确定")]
277
- })])
278
- })]);
125
+ })]), createVNode(MKPasswordDialog, {
126
+ "showDialog": showDialog.value,
127
+ "onUpdate:showDialog": (v) => showDialog.value = v
128
+ }, null)]);
279
129
  };
280
130
  }
281
131
  });