@maketribe/ms-app 3.0.42 → 3.0.43
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.
- package/dist/cjs/core/MSAppClient.d.ts +1 -0
- package/dist/cjs/core/MSAppClient.js +14 -0
- package/dist/cjs/core/MSAppClient.js.map +1 -1
- package/dist/cjs/layouts/components/header/tools.js +152 -2
- package/dist/cjs/layouts/components/header/tools.js.map +1 -1
- package/dist/esm/core/MSAppClient.d.ts +1 -0
- package/dist/esm/core/MSAppClient.js +14 -0
- package/dist/esm/core/MSAppClient.js.map +1 -1
- package/dist/esm/layouts/components/header/tools.js +154 -4
- package/dist/esm/layouts/components/header/tools.js.map +1 -1
- package/package.json +1 -1
|
@@ -79,4 +79,5 @@ export declare class MSAppClient {
|
|
|
79
79
|
avatarPath: string;
|
|
80
80
|
}>, any>>;
|
|
81
81
|
logout(): Promise<import("@maketribe/request").ResponseConfig<any, any>>;
|
|
82
|
+
changePassword(password: string, newPassword: string): Promise<import("@maketribe/request").ResponseConfig<any, any>>;
|
|
82
83
|
}
|
|
@@ -155,6 +155,20 @@ class MSAppClient {
|
|
|
155
155
|
this.setUserSession(null);
|
|
156
156
|
return this.httpRequest.get("/api/ms-login/logout");
|
|
157
157
|
}
|
|
158
|
+
async changePassword(password, newPassword) {
|
|
159
|
+
console.log(454);
|
|
160
|
+
const response = await this.httpRequest.request({
|
|
161
|
+
url: "/api/dv/ms-member/modify/password",
|
|
162
|
+
method: "POST",
|
|
163
|
+
data: { password: utils.md5(`mkbl#${password}`), newPassword: utils.md5(`mkbl#${newPassword}`) }
|
|
164
|
+
});
|
|
165
|
+
if (response.data.code == 200) {
|
|
166
|
+
this.userSession?.dispose();
|
|
167
|
+
this.setUserSession(null);
|
|
168
|
+
return this.httpRequest.get("/api/ms-login/logout");
|
|
169
|
+
}
|
|
170
|
+
return response;
|
|
171
|
+
}
|
|
158
172
|
}
|
|
159
173
|
|
|
160
174
|
exports.MSAppClient = MSAppClient;
|
|
@@ -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 DataViewRequest,\r\n DVQueryable,\r\n HttpRequest,\r\n R,\r\n WebHttpRequest,\r\n} from \"@maketribe/request\";\r\nimport { IComponents, DataModel, Components } 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 { ACCESS_TOKEN_HEADER, X_ACCESS_TOKEN_HEADER } 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 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 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 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 /**\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 i18n: I18n;\r\n\r\n dataTableComponents: IComponents;\r\n dataFormComponents: IComponents;\r\n dataFilterComponents: IComponents;\r\n whereFilterComponents: IComponents;\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.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.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 HttpRequest.appID = this.appID;\r\n\r\n this.httpRequest = this._options.httpRequest;\r\n\r\n DataModel.setHttpRequest(this.httpRequest);\r\n DVQueryable.setDefaultDataViewRequest(\r\n new DataViewRequest({ httpRequest: this.httpRequest })\r\n );\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 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 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 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 this.httpRequest.getInterceptors().response.use((config) => {\r\n if (config.data.code === 401) {\r\n this.vueRouter.push({ name: \"login\" });\r\n // if (this.userSession) {\r\n // this.userSession.lock();\r\n // } else {\r\n // this.vueRouter.push({ name: \"login\" });\r\n // }\r\n }\r\n return config;\r\n });\r\n\r\n this.initd = true;\r\n }\r\n\r\n async login(account: string, password: string, code: string) {\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/api/ms-login/login\",\r\n method: \"POST\",\r\n data: { account, password: md5(`mkbl#${password}`), vCode: code },\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 modifyPassword(account: 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: \"/api/ms-login/modify-password\",\r\n method: \"POST\",\r\n data: { account, vCode: code },\r\n });\r\n\r\n return response;\r\n }\r\n\r\n async logout() {\r\n this.userSession?.dispose();\r\n this.setUserSession(null);\r\n\r\n return this.httpRequest.get(\"/api/ms-login/logout\");\r\n }\r\n}\r\n"],"names":["Event","I18n","HttpRequest","DataModel","DVQueryable","DataViewRequest","WebHttpRequest","createRouter","createWebHashHistory","PageManager","Components","UserSession","authBeforeEach","md5","ACCESS_TOKEN_HEADER","X_ACCESS_TOKEN_HEADER"],"mappings":";;;;;;;;;;;;AA2CO,MAAM,WAAY,CAAA;AAAA,EACvB,OAAO,QAA+B,GAAA,IAAA,CAAA;AAAA,EAEtC,MAAiB,GAAA,EAAA,CAAA;AAAA,EAET,QAAA,CAAA;AAAA,EAER,WAAA,CAAA;AAAA,EAEA,IAAA,CAAA;AAAA,EAEA,KAAA,CAAA;AAAA,EAEA,WAAkC,GAAA,IAAA,CAAA;AAAA,EAElC,WAAA,CAAA;AAAA,EAEA,KAAiB,GAAA,KAAA,CAAA;AAAA,EAEjB,KAAiB,GAAA,KAAA,CAAA;AAAA,EAEjB,WAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,QAAW,GAAA;AACb,IAAO,OAAA,IAAA,CAAK,aAAa,QAAY,IAAA,IAAA,CAAA;AAAA,GACvC;AAAA,EAEA,IAAA,CAAA;AAAA,EAEA,mBAAA,CAAA;AAAA,EACA,kBAAA,CAAA;AAAA,EACA,oBAAA,CAAA;AAAA,EACA,qBAAA,CAAA;AAAA,EAEA,SAAA,CAAA;AAAA,EAEA,0BAAA,GAAkE,IAAIA,WAAM,EAAA,CAAA;AAAA,EAE5E,sBAAA,GACE,IAAIA,WAAM,EAAA,CAAA;AAAA,EAEZ,YAAY,OAA6B,EAAA;AACvC,IAAK,IAAA,CAAA,QAAA,GAAW,IAAK,CAAA,iBAAA,CAAkB,OAAO,CAAA,CAAA;AAE9C,IAAK,IAAA,CAAA,KAAA,GAAQ,KAAK,QAAS,CAAA,KAAA,CAAA;AAE3B,IAAK,IAAA,CAAA,IAAA,GAAO,KAAK,QAAS,CAAA,IAAA,CAAA;AAE1B,IAAA,IAAA,CAAK,cAAc,OAAQ,CAAA,WAAA,CAAA;AAE3B,IAAA,IAAA,CAAK,OAAOC,WAAK,CAAA,QAAA,CAAA;AACjB,IAAA,IAAA,CAAK,IAAK,CAAA,sBAAA,CAAuB,IAAK,CAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AAErD,IAAK,IAAA,CAAA,mBAAA,GAAsB,KAAK,QAAS,CAAA,mBAAA,CAAA;AACzC,IAAK,IAAA,CAAA,kBAAA,GAAqB,KAAK,QAAS,CAAA,kBAAA,CAAA;AACxC,IAAK,IAAA,CAAA,oBAAA,GAAuB,KAAK,QAAS,CAAA,oBAAA,CAAA;AAC1C,IAAK,IAAA,CAAA,qBAAA,GAAwB,KAAK,QAAS,CAAA,qBAAA,CAAA;AAE3C,IAAK,IAAA,CAAA,SAAA,GAAY,KAAK,QAAS,CAAA,SAAA,CAAA;AAE/B,IAAK,IAAA,CAAA,WAAA,GAAc,KAAK,QAAS,CAAA,WAAA,CAAA;AAEjC,IAAAC,mBAAA,CAAY,QAAQ,IAAK,CAAA,KAAA,CAAA;AAEzB,IAAK,IAAA,CAAA,WAAA,GAAc,KAAK,QAAS,CAAA,WAAA,CAAA;AAEjC,IAAUC,YAAA,CAAA,cAAA,CAAe,KAAK,WAAW,CAAA,CAAA;AACzC,IAAYC,mBAAA,CAAA,yBAAA;AAAA,MACV,IAAIC,uBAAgB,CAAA,EAAE,WAAa,EAAA,IAAA,CAAK,aAAa,CAAA;AAAA,KACvD,CAAA;AAAA,GACF;AAAA,EAEA,eAAe,WAAiC,EAAA;AAC9C,IAAA,IAAI,KAAK,WAAa,EAAA;AACpB,MAAA,IAAA,CAAK,YAAY,OAAQ,EAAA,CAAA;AAAA,KAC3B;AAEA,IAAA,IAAA,CAAK,WAAc,GAAA,WAAA,CAAA;AAEnB,IAAA,IAAA,CAAK,sBAAuB,CAAA,IAAA,CAAK,EAAE,WAAA,EAAa,CAAA,CAAA;AAAA,GAClD;AAAA,EAEQ,kBACN,OAC8B,EAAA;AAC9B,IAAO,OAAA;AAAA,MACL,OAAO,OAAQ,CAAA,KAAA;AAAA,MACf,aAAa,OAAQ,CAAA,WAAA;AAAA,MACrB,WAAa,EAAA,OAAA,CAAQ,WAAe,IAAA,IAAIC,sBAAe,EAAA;AAAA,MACvD,QAAQ,OAAQ,CAAA,MAAA;AAAA,MAChB,IAAA,EAAM,QAAQ,IAAQ,IAAA,EAAA;AAAA,MACtB,MAAA,EAAQ,QAAQ,MAAU,IAAA,OAAA;AAAA,MAC1B,SAAA,EACE,OAAQ,CAAA,SAAA,IACRC,sBAAa,CAAA;AAAA,QACX,SAASC,8BAAqB,EAAA;AAAA,QAC9B,QAAQ,EAAC;AAAA,OACV,CAAA;AAAA,MACH,WAAa,EAAA,OAAA,CAAQ,WAAe,IAAA,IAAIC,uBAAY,EAAA;AAAA,MACpD,mBAAqB,EAAA,OAAA,CAAQ,mBAAuB,IAAA,IAAIC,aAAW,EAAA;AAAA,MACnE,kBAAoB,EAAA,OAAA,CAAQ,kBAAsB,IAAA,IAAIA,aAAW,EAAA;AAAA,MACjE,oBAAsB,EAAA,OAAA,CAAQ,oBAAwB,IAAA,IAAIA,aAAW,EAAA;AAAA,MACrE,qBAAuB,EAAA,OAAA,CAAQ,qBAAyB,IAAA,IAAIA,aAAW,EAAA;AAAA,KACzE,CAAA;AAAA,GACF;AAAA,EACA,OAAU,GAAA;AACR,IAAA,OAAO,IAAK,CAAA,IAAA,CAAA;AAAA,GACd;AAAA,EAEA,UAAa,GAAA;AACX,IAAA,OAAO,IAAK,CAAA,QAAA,CAAA;AAAA,GACd;AAAA,EAEA,MAAM,uBAAuB,OAG1B,EAAA;AACD,IAAA,MAAM,WAAe,GAAA,IAAA,CAAK,WAAc,GAAA,IAAIC,uBAAY,CAAA;AAAA,MACtD,WAAa,EAAA,IAAA;AAAA,MACb,GAAG,OAAA;AAAA,KACJ,CAAA,CAAA;AACD,IAAA,IAAA,CAAK,WAAc,GAAA,IAAA,CAAA;AAEnB,IAAA,IAAA,CAAK,0BAA2B,CAAA,IAAA,CAAK,EAAE,WAAA,EAAa,CAAA,CAAA;AACpD,IAAM,MAAA,qBAAA,GAAwB,MAAM,WAAA,CAAY,IAAK,EAAA,CAAA;AAErD,IAAI,IAAA,qBAAA,EAAuB,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5C,MAAA,WAAA,CAAY,OAAQ,EAAA,CAAA;AACpB,MAAO,OAAA,qBAAA,CAAA;AAAA,KACT;AAEA,IAAA,IAAA,CAAK,eAAe,WAAW,CAAA,CAAA;AAAA,GACjC;AAAA,EAEA,MAAM,IAAO,GAAA;AACX,IAAA,IAAI,KAAK,KAAO,EAAA;AACd,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,IAAA,CAAK,SAAU,CAAA,UAAA,CAAW,OAAO,EAAA,EAAI,MAAM,IAAS,KAAA;AAClD,MAAA,MAAM,KAAQ,GAAA,MAAMC,mBAAe,CAAA,IAAA,EAAM,EAAQ,CAAA,CAAA;AAEjD,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AACV,QAAA,OAAA;AAAA,OACF;AAEA,MAAK,IAAA,EAAA,CAAA;AAAA,KACN,CAAA,CAAA;AAED,IAAA,IAAA,CAAK,YAAY,IAAK,EAAA,CAAA;AACtB,IAAK,IAAA,CAAA,WAAA,CAAY,eAAe,IAAI,CAAA,CAAA;AAEpC,IAAA,IAAA,CAAK,YAAY,eAAgB,EAAA,CAAE,QAAS,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AAC1D,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5B,QAAA,IAAA,CAAK,SAAU,CAAA,IAAA,CAAK,EAAE,IAAA,EAAM,SAAS,CAAA,CAAA;AAAA,OAMvC;AACA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAA,CAAA;AAAA,GACf;AAAA,EAEA,MAAM,KAAA,CAAM,OAAiB,EAAA,QAAA,EAAkB,IAAc,EAAA;AAC3D,IAAA,MAAM,QAAW,GAAA,MAAM,IAAK,CAAA,WAAA,CAAY,OAAwB,CAAA;AAAA,MAC9D,GAAK,EAAA,qBAAA;AAAA,MACL,MAAQ,EAAA,MAAA;AAAA,MACR,IAAA,EAAM,EAAE,OAAA,EAAS,QAAU,EAAAC,SAAA,CAAI,QAAQ,QAAQ,CAAA,CAAE,CAAG,EAAA,KAAA,EAAO,IAAK,EAAA;AAAA,KACjE,CAAA,CAAA;AAED,IAAI,IAAA,QAAA,CAAS,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC9B,MAAA,MAAM,KAAK,sBAAuB,CAAA;AAAA,QAChC,WAAA,EAAa,QAAS,CAAA,OAAA,CAAQC,yBAAmB,CAAA;AAAA,QACjD,YAAA,EAAc,QAAS,CAAA,OAAA,CAAQC,2BAAqB,CAAA;AAAA,OACrD,CAAA,CAAA;AAAA,KACH;AAEA,IAAO,OAAA,QAAA,CAAA;AAAA,GACT;AAAA,EAEA,UAAU,GAAa,EAAA;AACrB,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AAAA,EAEA,MAAM,cAAe,CAAA,OAAA,EAAiB,IAAc,EAAA;AAQlD,IAAA,MAAM,QAAW,GAAA,MAAM,IAAK,CAAA,WAAA,CAAY,OAAwB,CAAA;AAAA,MAC9D,GAAK,EAAA,+BAAA;AAAA,MACL,MAAQ,EAAA,MAAA;AAAA,MACR,IAAM,EAAA,EAAE,OAAS,EAAA,KAAA,EAAO,IAAK,EAAA;AAAA,KAC9B,CAAA,CAAA;AAED,IAAO,OAAA,QAAA,CAAA;AAAA,GACT;AAAA,EAEA,MAAM,MAAS,GAAA;AACb,IAAA,IAAA,CAAK,aAAa,OAAQ,EAAA,CAAA;AAC1B,IAAA,IAAA,CAAK,eAAe,IAAI,CAAA,CAAA;AAExB,IAAO,OAAA,IAAA,CAAK,WAAY,CAAA,GAAA,CAAI,sBAAsB,CAAA,CAAA;AAAA,GACpD;AACF;;;;"}
|
|
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 DataViewRequest,\r\n DVQueryable,\r\n HttpRequest,\r\n R,\r\n WebHttpRequest,\r\n} from \"@maketribe/request\";\r\nimport { IComponents, DataModel, Components, Messager } 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 { ACCESS_TOKEN_HEADER, X_ACCESS_TOKEN_HEADER } 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 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 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 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 /**\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 i18n: I18n;\r\n\r\n dataTableComponents: IComponents;\r\n dataFormComponents: IComponents;\r\n dataFilterComponents: IComponents;\r\n whereFilterComponents: IComponents;\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.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.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 HttpRequest.appID = this.appID;\r\n\r\n this.httpRequest = this._options.httpRequest;\r\n\r\n DataModel.setHttpRequest(this.httpRequest);\r\n DVQueryable.setDefaultDataViewRequest(\r\n new DataViewRequest({ httpRequest: this.httpRequest })\r\n );\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 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 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 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 this.httpRequest.getInterceptors().response.use((config) => {\r\n if (config.data.code === 401) {\r\n this.vueRouter.push({ name: \"login\" });\r\n // if (this.userSession) {\r\n // this.userSession.lock();\r\n // } else {\r\n // this.vueRouter.push({ name: \"login\" });\r\n // }\r\n }\r\n return config;\r\n });\r\n\r\n this.initd = true;\r\n }\r\n\r\n async login(account: string, password: string, code: string) {\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/api/ms-login/login\",\r\n method: \"POST\",\r\n data: { account, password: md5(`mkbl#${password}`), vCode: code },\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 modifyPassword(account: 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: \"/api/ms-login/modify-password\",\r\n method: \"POST\",\r\n data: { account, vCode: code },\r\n });\r\n\r\n return response;\r\n }\r\n\r\n async logout() {\r\n this.userSession?.dispose();\r\n this.setUserSession(null);\r\n\r\n return this.httpRequest.get(\"/api/ms-login/logout\");\r\n }\r\n async changePassword(password: string, newPassword: string) {\r\n console.log(454);\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: \"/api/dv/ms-member/modify/password\",\r\n method: \"POST\",\r\n data: { password: md5(`mkbl#${password}`), newPassword: md5(`mkbl#${newPassword}`) },\r\n });\r\n if (response.data.code == 200) {\r\n this.userSession?.dispose();\r\n this.setUserSession(null);\r\n\r\n return this.httpRequest.get(\"/api/ms-login/logout\");\r\n }\r\n return response;\r\n }\r\n}\r\n"],"names":["Event","I18n","HttpRequest","DataModel","DVQueryable","DataViewRequest","WebHttpRequest","createRouter","createWebHashHistory","PageManager","Components","UserSession","authBeforeEach","md5","ACCESS_TOKEN_HEADER","X_ACCESS_TOKEN_HEADER"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var vue = require('vue');
|
|
4
4
|
var elementPlus = require('element-plus');
|
|
5
|
-
require('@maketribe/dm');
|
|
5
|
+
var dm = require('@maketribe/dm');
|
|
6
6
|
require('@maketribe/utils');
|
|
7
7
|
require('../../../core/DataModelDefines.js');
|
|
8
8
|
var MSAppClient = require('../../../core/MSAppClient.js');
|
|
@@ -73,6 +73,62 @@ const MKHeaderTools = /* @__PURE__ */ vue.defineComponent({
|
|
|
73
73
|
const userSession = msAppClient.userSession;
|
|
74
74
|
const userInfo = vue.computed(() => userSession.userInfo);
|
|
75
75
|
const avatar = vue.computed(() => vue.unref(userInfo).avatar);
|
|
76
|
+
const showDialog = vue.ref(false);
|
|
77
|
+
const form = vue.reactive({
|
|
78
|
+
password: "",
|
|
79
|
+
newPassword: "",
|
|
80
|
+
repeatPassword: ""
|
|
81
|
+
});
|
|
82
|
+
const formRef = vue.ref();
|
|
83
|
+
vue.watch(showDialog, async () => {
|
|
84
|
+
if (vue.unref(showDialog)) {
|
|
85
|
+
form.password = "";
|
|
86
|
+
form.newPassword = "";
|
|
87
|
+
form.repeatPassword = "";
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
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]+)$/;
|
|
91
|
+
const validateCode1 = (rule, value, callback) => {
|
|
92
|
+
if (value == "") {
|
|
93
|
+
callback(new Error("\u8BF7\u8F93\u5165\u5BC6\u7801"));
|
|
94
|
+
}
|
|
95
|
+
if (value.length < 8) {
|
|
96
|
+
callback(new Error("\u5BC6\u7801\u7801\u957F\u5EA6\u4E0D\u80FD\u5C0F\u4E8E8\u4F4D"));
|
|
97
|
+
}
|
|
98
|
+
if (value != form.newPassword) {
|
|
99
|
+
callback(new Error("\u4E24\u6B21\u8F93\u5165\u4E0D\u4E00\u81F4"));
|
|
100
|
+
}
|
|
101
|
+
if (!reg.test(value)) {
|
|
102
|
+
callback(new Error("\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u6570\u5B57\uFF0C\u5B57\u6BCD\u548C\u7279\u6B8A\u7B26\u53F7"));
|
|
103
|
+
} else {
|
|
104
|
+
callback();
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const validateCode = (rule, value, callback) => {
|
|
108
|
+
if (value == "") {
|
|
109
|
+
callback(new Error("\u8BF7\u8F93\u5165\u5BC6\u7801\u7801"));
|
|
110
|
+
}
|
|
111
|
+
if (value == form.password) {
|
|
112
|
+
callback(new Error("\u65B0\u5BC6\u7801\u4E0D\u80FD\u4E0E\u65E7\u5BC6\u7801\u76F8\u540C"));
|
|
113
|
+
}
|
|
114
|
+
if (!reg.test(value)) {
|
|
115
|
+
callback(new Error("\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u6570\u5B57\uFF0C\u5B57\u6BCD\u548C\u7279\u6B8A\u7B26\u53F7"));
|
|
116
|
+
} else {
|
|
117
|
+
callback();
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
const submitChangePassword = async () => {
|
|
121
|
+
const isPass = await formRef.value.validate();
|
|
122
|
+
if (!isPass) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
let result = await msAppClient.changePassword(form.password, form.newPassword);
|
|
126
|
+
if (result.data.code != 200) {
|
|
127
|
+
dm.Messager.instance.error(result.data.msg || "\u4FEE\u6539\u5BC6\u7801\u5931\u8D25");
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
msAppClient.logout();
|
|
131
|
+
};
|
|
76
132
|
return () => {
|
|
77
133
|
return vue.createVNode("div", {
|
|
78
134
|
"class": "mk-header-tools"
|
|
@@ -102,9 +158,103 @@ const MKHeaderTools = /* @__PURE__ */ vue.defineComponent({
|
|
|
102
158
|
default: () => [vue.createVNode(index.MKSvgIcon, {
|
|
103
159
|
"iconClass": "SwitchButton"
|
|
104
160
|
}, null), vue.createTextVNode("\u9000\u51FA\u767B\u5F55")]
|
|
161
|
+
}), vue.createVNode(elementPlus.ElDropdownItem, {
|
|
162
|
+
"onClick": () => {
|
|
163
|
+
showDialog.value = true;
|
|
164
|
+
}
|
|
165
|
+
}, {
|
|
166
|
+
default: () => [vue.createVNode(index.MKSvgIcon, {
|
|
167
|
+
"iconClass": "SwitchButton"
|
|
168
|
+
}, null), vue.createTextVNode("\u4FEE\u6539\u5BC6\u7801")]
|
|
105
169
|
})]
|
|
106
170
|
})
|
|
107
|
-
})])
|
|
171
|
+
})]), vue.createVNode(elementPlus.ElDialog, {
|
|
172
|
+
"model-value": showDialog.value,
|
|
173
|
+
"onUpdate:modelValue": (v) => {
|
|
174
|
+
showDialog.value = v;
|
|
175
|
+
},
|
|
176
|
+
"title": "\u4FEE\u6539\u5BC6\u7801",
|
|
177
|
+
"width": "30%"
|
|
178
|
+
}, {
|
|
179
|
+
default: () => [vue.createVNode(elementPlus.ElForm, {
|
|
180
|
+
"ref": formRef,
|
|
181
|
+
"model": form,
|
|
182
|
+
"label-width": "80px"
|
|
183
|
+
}, {
|
|
184
|
+
default: () => [vue.createVNode(elementPlus.ElFormItem, {
|
|
185
|
+
"label": "\u65E7\u5BC6\u7801",
|
|
186
|
+
"required": true,
|
|
187
|
+
"prop": "password",
|
|
188
|
+
"rules": [{
|
|
189
|
+
required: true,
|
|
190
|
+
message: "\u8BF7\u8F93\u5165\u65E7\u5BC6\u7801",
|
|
191
|
+
trigger: "change"
|
|
192
|
+
}]
|
|
193
|
+
}, {
|
|
194
|
+
default: () => [vue.createVNode(elementPlus.ElInput, {
|
|
195
|
+
"model-value": form.password,
|
|
196
|
+
"onUpdate:modelValue": (v) => {
|
|
197
|
+
form.password = v;
|
|
198
|
+
},
|
|
199
|
+
"type": "password"
|
|
200
|
+
}, null)]
|
|
201
|
+
}), vue.createVNode(elementPlus.ElFormItem, {
|
|
202
|
+
"label": "\u65B0\u5BC6\u7801",
|
|
203
|
+
"required": true,
|
|
204
|
+
"prop": "newPassword",
|
|
205
|
+
"rules": [{
|
|
206
|
+
required: true,
|
|
207
|
+
message: "\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801",
|
|
208
|
+
trigger: "change"
|
|
209
|
+
}, {
|
|
210
|
+
validator: validateCode,
|
|
211
|
+
trigger: "change"
|
|
212
|
+
}]
|
|
213
|
+
}, {
|
|
214
|
+
default: () => [vue.createVNode(elementPlus.ElInput, {
|
|
215
|
+
"model-value": form.newPassword,
|
|
216
|
+
"onUpdate:modelValue": (v) => {
|
|
217
|
+
form.newPassword = v;
|
|
218
|
+
},
|
|
219
|
+
"type": "password"
|
|
220
|
+
}, null)]
|
|
221
|
+
}), vue.createVNode(elementPlus.ElFormItem, {
|
|
222
|
+
"label": "\u91CD\u590D\u5BC6\u7801",
|
|
223
|
+
"required": true,
|
|
224
|
+
"prop": "repeatPassword",
|
|
225
|
+
"rules": [{
|
|
226
|
+
required: true,
|
|
227
|
+
message: "\u8BF7\u518D\u6B21\u8F93\u5165\u5BC6\u7801",
|
|
228
|
+
trigger: "change"
|
|
229
|
+
}, {
|
|
230
|
+
validator: validateCode1,
|
|
231
|
+
trigger: "change"
|
|
232
|
+
}]
|
|
233
|
+
}, {
|
|
234
|
+
default: () => [vue.createVNode(elementPlus.ElInput, {
|
|
235
|
+
"model-value": form.repeatPassword,
|
|
236
|
+
"onUpdate:modelValue": (v) => {
|
|
237
|
+
form.repeatPassword = v;
|
|
238
|
+
},
|
|
239
|
+
"type": "password"
|
|
240
|
+
}, null)]
|
|
241
|
+
})]
|
|
242
|
+
})],
|
|
243
|
+
footer: () => vue.createVNode("div", null, [vue.createVNode(elementPlus.ElButton, {
|
|
244
|
+
"onClick": () => {
|
|
245
|
+
showDialog.value = false;
|
|
246
|
+
}
|
|
247
|
+
}, {
|
|
248
|
+
default: () => [vue.createTextVNode("\u53D6\u6D88")]
|
|
249
|
+
}), vue.createVNode(elementPlus.ElButton, {
|
|
250
|
+
"type": "primary",
|
|
251
|
+
"onClick": () => {
|
|
252
|
+
submitChangePassword();
|
|
253
|
+
}
|
|
254
|
+
}, {
|
|
255
|
+
default: () => [vue.createTextVNode("\u786E\u5B9A")]
|
|
256
|
+
})])
|
|
257
|
+
})]);
|
|
108
258
|
};
|
|
109
259
|
}
|
|
110
260
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sources":["../../../../../src/layouts/components/header/tools.tsx"],"sourcesContent":["import { computed, defineComponent, unref } from \"vue\";\r\nimport {\r\n ElDropdown,\r\n ElDropdownItem,\r\n ElDropdownMenu,\r\n ElImage,\r\n} from \"element-plus\";\r\nimport { MSAppClient } from \"../../../core\";\r\nimport { MKSvgIcon } from \"../../../components\";\r\n\r\nexport const MKHeaderTools = defineComponent({\r\n name: \"MKHeaderTools\",\r\n setup(props) {\r\n const msAppClient = MSAppClient.instance!;\r\n const userSession = msAppClient.userSession!;\r\n\r\n const userInfo = computed(() => userSession.userInfo!);\r\n\r\n const avatar = computed(() => unref(userInfo).avatar);\r\n\r\n return () => {\r\n return (\r\n <div class=\"mk-header-tools\">\r\n <div class=\"mk-header-tools__item\">\r\n <ElDropdown\r\n class=\"mk-header-tools__user\"\r\n trigger=\"click\"\r\n v-slots={{\r\n default: () => (\r\n <div class=\"mk-header-tools__user-info\">\r\n <ElImage\r\n class=\"mk-header-tools__avatar\"\r\n src={unref(avatar)}\r\n v-slots={{\r\n error: () => (\r\n <MKSvgIcon iconClass=\"Avatar\" class=\" mk-header-tools__default-avatar\" />\r\n ),\r\n }}\r\n />\r\n <span class=\"mk-header-tools__nickName\">\r\n {unref(userInfo).nickName}\r\n </span>\r\n </div>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n <ElDropdownItem onClick={() => msAppClient.logout()}>\r\n <MKSvgIcon iconClass=\"SwitchButton\" />\r\n 退出登录\r\n </ElDropdownItem>\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["MKHeaderTools","defineComponent","name","setup","props","msAppClient","MSAppClient","instance","userSession","userInfo","computed","avatar","unref","_createVNode","ElDropdown","default","ElImage","error","MKSvgIcon","nickName","dropdown","ElDropdownMenu","ElDropdownItem","onClick","logout","_createTextVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,MAAMA,gCAAgCC,mBAAA,CAAA;AAAA,EAC3CC,IAAM,EAAA,eAAA;AAAA,EACNC,MAAMC,KAAO,EAAA;AACX,IAAA,MAAMC,cAAcC,uBAAYC,CAAAA,QAAAA,CAAAA;AAChC,IAAA,MAAMC,cAAcH,WAAYG,CAAAA,WAAAA,CAAAA;AAEhC,IAAA,MAAMC,QAAWC,GAAAA,YAAAA,CAAS,MAAMF,WAAAA,CAAYC,QAAS,CAAA,CAAA;AAErD,IAAA,MAAME,SAASD,YAAS,CAAA,MAAME,SAAMH,CAAAA,QAAQ,EAAEE,MAAM,CAAA,CAAA;AAEpD,IAAA,OAAO,MAAM;AACX,MAAA,OAAAE,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,iBAAA;AAAA,OAAA,EAAA,CAAAA,eAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,uBAAA;AAAA,OAAA,EAAAA,CAAAA,eAAAA,CAAAC,sBAAA,EAAA;AAAA,QAAA,OAAA,EAAA,uBAAA;AAAA,QAAA,SAAA,EAAA,OAAA;AAAA,OAMiB,EAAA;AAAA,QACPC,OAAAA,EAASA,MAAAF,eAAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EAAA,4BAAA;AAAA,SAAA,EAAAA,CAAAA,eAAAA,CAAAG,mBAAA,EAAA;AAAA,UAAA,OAAA,EAAA,yBAAA;AAAA,UAAA,KAAA,EAIEJ,UAAMD,MAAM,CAAA;AAAA,SACR,EAAA;AAAA,UACPM,KAAAA,EAAOA,MAAAJ,eAAAA,CAAAK,eAAA,EAAA;AAAA,YAAA,WAAA,EAAA,QAAA;AAAA,YAAA,OAAA,EAAA,kCAAA;AAAA,aAAA,IAAA,CAAA;AAAA,SAGR,CAAAL,EAAAA,eAAAA,CAAA,MAAA,EAAA;AAAA,UAAA,OAAA,EAAA,2BAAA;AAAA,SAAA,EAAA,CAGAD,SAAMH,CAAAA,QAAQ,EAAEU,QAAQ,CAG9B,CAAA,CAAA,CAAA;AAAA,QACDC,QAAUA,EAAAA,MAAAP,eAAAQ,CAAAA,0BAAAA,EAAA,IAAA,EAAA;AAAA,UAAAN,OAAAA,EAAAA,MAAAF,CAAAA,eAAAA,CAAAS,0BAAA,EAAA;AAAA,YAAA,SAAA,EAEmBC,MAAMlB,WAAAA,CAAYmB,MAAO,EAAA;AAAA,WAAC,EAAA;AAAA,YAAAT,OAAAA,EAAAA,MAAAF,CAAAA,eAAAA,CAAAK,eAAA,EAAA;AAAA,cAAA,WAAA,EAAA,cAAA;AAAA,aAAA,EAAA,IAAA,CAAAO,EAAAA,mBAAAA,CAAA,0BAAA,CAAA,CAAA;AAAA,WAAA,CAAA,CAAA;AAAA,SAAA,CAAA;AAAA,OAMxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAKX,CAAA;AAAA,GACF;AACF,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"tools.js","sources":["../../../../../src/layouts/components/header/tools.tsx"],"sourcesContent":["import { computed, defineComponent, unref, ref, reactive, watch, nextTick } from \"vue\";\r\nimport {\r\n ElDropdown,\r\n ElDropdownItem,\r\n ElDropdownMenu,\r\n ElImage,\r\n ElDialog,\r\n ElForm,\r\n ElFormItem,\r\n ElInput,\r\n ElButton\r\n} from \"element-plus\";\r\nimport { MSAppClient } from \"../../../core\";\r\nimport { MKSvgIcon } from \"../../../components\";\r\nimport { Messager } from \"@maketribe/dm\";\r\n\r\nexport const MKHeaderTools = defineComponent({\r\n name: \"MKHeaderTools\",\r\n setup(props) {\r\n const msAppClient = MSAppClient.instance!;\r\n const userSession = msAppClient.userSession!;\r\n\r\n const userInfo = computed(() => userSession.userInfo!);\r\n\r\n const avatar = computed(() => unref(userInfo).avatar);\r\n const showDialog = ref(false);\r\n const form = reactive({\r\n password: \"\",\r\n newPassword: \"\",\r\n repeatPassword: \"\",\r\n });\r\n const formRef = ref();\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 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\r\n if (value.length < 8) {\r\n callback(new Error(\"密码码长度不能小于8位\"));\r\n }\r\n\r\n if (value != form.newPassword) {\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 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 == 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 const submitChangePassword = async () => {\r\n const isPass = await formRef.value.validate()\r\n if (!isPass) {\r\n return;\r\n }\r\n let result = await msAppClient.changePassword(form.password, form.newPassword)\r\n if (result.data.code != 200) {\r\n Messager.instance.error(result.data.msg || \"修改密码失败\")\r\n return;\r\n }\r\n msAppClient.logout()\r\n }\r\n\r\n return () => {\r\n return (\r\n <div class=\"mk-header-tools\">\r\n <div class=\"mk-header-tools__item\">\r\n <ElDropdown\r\n class=\"mk-header-tools__user\"\r\n trigger=\"click\"\r\n v-slots={{\r\n default: () => (\r\n <div class=\"mk-header-tools__user-info\">\r\n <ElImage\r\n class=\"mk-header-tools__avatar\"\r\n src={unref(avatar)}\r\n v-slots={{\r\n error: () => (\r\n <MKSvgIcon iconClass=\"Avatar\" class=\" mk-header-tools__default-avatar\" />\r\n ),\r\n }}\r\n />\r\n <span class=\"mk-header-tools__nickName\">\r\n {unref(userInfo).nickName}\r\n </span>\r\n </div>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n <ElDropdownItem onClick={() => msAppClient.logout()}>\r\n <MKSvgIcon iconClass=\"SwitchButton\" />\r\n 退出登录\r\n </ElDropdownItem>\r\n <ElDropdownItem onClick={() => { showDialog.value = true }}>\r\n <MKSvgIcon iconClass=\"SwitchButton\" />\r\n 修改密码\r\n </ElDropdownItem>\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n />\r\n </div>\r\n <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\"} 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} 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} 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} onUpdate:modelValue={(v) => { form.repeatPassword = v }} type={'password'} />\r\n </ElFormItem>\r\n </ElForm>\r\n </ElDialog>\r\n </div >\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["MKHeaderTools","defineComponent","name","setup","props","msAppClient","MSAppClient","instance","userSession","userInfo","computed","avatar","unref","showDialog","ref","form","reactive","password","newPassword","repeatPassword","formRef","watch","reg","validateCode1","rule","value","callback","Error","length","test","validateCode","submitChangePassword","isPass","validate","result","changePassword","data","code","Messager","error","msg","logout","_createVNode","ElDropdown","default","ElImage","MKSvgIcon","nickName","dropdown","ElDropdownMenu","ElDropdownItem","onClick","_createTextVNode","ElDialog","v","ElForm","ElFormItem","required","message","trigger","ElInput","validator","footer","ElButton"],"mappings":"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"}
|
|
@@ -79,4 +79,5 @@ export declare class MSAppClient {
|
|
|
79
79
|
avatarPath: string;
|
|
80
80
|
}>, any>>;
|
|
81
81
|
logout(): Promise<import("@maketribe/request").ResponseConfig<any, any>>;
|
|
82
|
+
changePassword(password: string, newPassword: string): Promise<import("@maketribe/request").ResponseConfig<any, any>>;
|
|
82
83
|
}
|
|
@@ -153,6 +153,20 @@ class MSAppClient {
|
|
|
153
153
|
this.setUserSession(null);
|
|
154
154
|
return this.httpRequest.get("/api/ms-login/logout");
|
|
155
155
|
}
|
|
156
|
+
async changePassword(password, newPassword) {
|
|
157
|
+
console.log(454);
|
|
158
|
+
const response = await this.httpRequest.request({
|
|
159
|
+
url: "/api/dv/ms-member/modify/password",
|
|
160
|
+
method: "POST",
|
|
161
|
+
data: { password: md5(`mkbl#${password}`), newPassword: md5(`mkbl#${newPassword}`) }
|
|
162
|
+
});
|
|
163
|
+
if (response.data.code == 200) {
|
|
164
|
+
this.userSession?.dispose();
|
|
165
|
+
this.setUserSession(null);
|
|
166
|
+
return this.httpRequest.get("/api/ms-login/logout");
|
|
167
|
+
}
|
|
168
|
+
return response;
|
|
169
|
+
}
|
|
156
170
|
}
|
|
157
171
|
|
|
158
172
|
export { MSAppClient };
|
|
@@ -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 DataViewRequest,\r\n DVQueryable,\r\n HttpRequest,\r\n R,\r\n WebHttpRequest,\r\n} from \"@maketribe/request\";\r\nimport { IComponents, DataModel, Components } 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 { ACCESS_TOKEN_HEADER, X_ACCESS_TOKEN_HEADER } 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 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 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 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 /**\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 i18n: I18n;\r\n\r\n dataTableComponents: IComponents;\r\n dataFormComponents: IComponents;\r\n dataFilterComponents: IComponents;\r\n whereFilterComponents: IComponents;\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.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.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 HttpRequest.appID = this.appID;\r\n\r\n this.httpRequest = this._options.httpRequest;\r\n\r\n DataModel.setHttpRequest(this.httpRequest);\r\n DVQueryable.setDefaultDataViewRequest(\r\n new DataViewRequest({ httpRequest: this.httpRequest })\r\n );\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 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 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 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 this.httpRequest.getInterceptors().response.use((config) => {\r\n if (config.data.code === 401) {\r\n this.vueRouter.push({ name: \"login\" });\r\n // if (this.userSession) {\r\n // this.userSession.lock();\r\n // } else {\r\n // this.vueRouter.push({ name: \"login\" });\r\n // }\r\n }\r\n return config;\r\n });\r\n\r\n this.initd = true;\r\n }\r\n\r\n async login(account: string, password: string, code: string) {\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/api/ms-login/login\",\r\n method: \"POST\",\r\n data: { account, password: md5(`mkbl#${password}`), vCode: code },\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 modifyPassword(account: 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: \"/api/ms-login/modify-password\",\r\n method: \"POST\",\r\n data: { account, vCode: code },\r\n });\r\n\r\n return response;\r\n }\r\n\r\n async logout() {\r\n this.userSession?.dispose();\r\n this.setUserSession(null);\r\n\r\n return this.httpRequest.get(\"/api/ms-login/logout\");\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 DataViewRequest,\r\n DVQueryable,\r\n HttpRequest,\r\n R,\r\n WebHttpRequest,\r\n} from \"@maketribe/request\";\r\nimport { IComponents, DataModel, Components, Messager } 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 { ACCESS_TOKEN_HEADER, X_ACCESS_TOKEN_HEADER } 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 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 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 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 /**\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 i18n: I18n;\r\n\r\n dataTableComponents: IComponents;\r\n dataFormComponents: IComponents;\r\n dataFilterComponents: IComponents;\r\n whereFilterComponents: IComponents;\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.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.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 HttpRequest.appID = this.appID;\r\n\r\n this.httpRequest = this._options.httpRequest;\r\n\r\n DataModel.setHttpRequest(this.httpRequest);\r\n DVQueryable.setDefaultDataViewRequest(\r\n new DataViewRequest({ httpRequest: this.httpRequest })\r\n );\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 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 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 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 this.httpRequest.getInterceptors().response.use((config) => {\r\n if (config.data.code === 401) {\r\n this.vueRouter.push({ name: \"login\" });\r\n // if (this.userSession) {\r\n // this.userSession.lock();\r\n // } else {\r\n // this.vueRouter.push({ name: \"login\" });\r\n // }\r\n }\r\n return config;\r\n });\r\n\r\n this.initd = true;\r\n }\r\n\r\n async login(account: string, password: string, code: string) {\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/api/ms-login/login\",\r\n method: \"POST\",\r\n data: { account, password: md5(`mkbl#${password}`), vCode: code },\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 modifyPassword(account: 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: \"/api/ms-login/modify-password\",\r\n method: \"POST\",\r\n data: { account, vCode: code },\r\n });\r\n\r\n return response;\r\n }\r\n\r\n async logout() {\r\n this.userSession?.dispose();\r\n this.setUserSession(null);\r\n\r\n return this.httpRequest.get(\"/api/ms-login/logout\");\r\n }\r\n async changePassword(password: string, newPassword: string) {\r\n console.log(454);\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: \"/api/dv/ms-member/modify/password\",\r\n method: \"POST\",\r\n data: { password: md5(`mkbl#${password}`), newPassword: md5(`mkbl#${newPassword}`) },\r\n });\r\n if (response.data.code == 200) {\r\n this.userSession?.dispose();\r\n this.setUserSession(null);\r\n\r\n return this.httpRequest.get(\"/api/ms-login/logout\");\r\n }\r\n return response;\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent, computed, unref, createVNode, createTextVNode } from 'vue';
|
|
2
|
-
import { ElDropdown, ElImage, ElDropdownMenu, ElDropdownItem } from 'element-plus';
|
|
3
|
-
import '@maketribe/dm';
|
|
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';
|
|
4
4
|
import '@maketribe/utils';
|
|
5
5
|
import '../../../core/DataModelDefines.js';
|
|
6
6
|
import { MSAppClient } from '../../../core/MSAppClient.js';
|
|
@@ -71,6 +71,62 @@ const MKHeaderTools = /* @__PURE__ */ defineComponent({
|
|
|
71
71
|
const userSession = msAppClient.userSession;
|
|
72
72
|
const userInfo = computed(() => userSession.userInfo);
|
|
73
73
|
const avatar = computed(() => unref(userInfo).avatar);
|
|
74
|
+
const showDialog = ref(false);
|
|
75
|
+
const form = reactive({
|
|
76
|
+
password: "",
|
|
77
|
+
newPassword: "",
|
|
78
|
+
repeatPassword: ""
|
|
79
|
+
});
|
|
80
|
+
const formRef = ref();
|
|
81
|
+
watch(showDialog, async () => {
|
|
82
|
+
if (unref(showDialog)) {
|
|
83
|
+
form.password = "";
|
|
84
|
+
form.newPassword = "";
|
|
85
|
+
form.repeatPassword = "";
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
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]+)$/;
|
|
89
|
+
const validateCode1 = (rule, value, callback) => {
|
|
90
|
+
if (value == "") {
|
|
91
|
+
callback(new Error("\u8BF7\u8F93\u5165\u5BC6\u7801"));
|
|
92
|
+
}
|
|
93
|
+
if (value.length < 8) {
|
|
94
|
+
callback(new Error("\u5BC6\u7801\u7801\u957F\u5EA6\u4E0D\u80FD\u5C0F\u4E8E8\u4F4D"));
|
|
95
|
+
}
|
|
96
|
+
if (value != form.newPassword) {
|
|
97
|
+
callback(new Error("\u4E24\u6B21\u8F93\u5165\u4E0D\u4E00\u81F4"));
|
|
98
|
+
}
|
|
99
|
+
if (!reg.test(value)) {
|
|
100
|
+
callback(new Error("\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u6570\u5B57\uFF0C\u5B57\u6BCD\u548C\u7279\u6B8A\u7B26\u53F7"));
|
|
101
|
+
} else {
|
|
102
|
+
callback();
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
const validateCode = (rule, value, callback) => {
|
|
106
|
+
if (value == "") {
|
|
107
|
+
callback(new Error("\u8BF7\u8F93\u5165\u5BC6\u7801\u7801"));
|
|
108
|
+
}
|
|
109
|
+
if (value == form.password) {
|
|
110
|
+
callback(new Error("\u65B0\u5BC6\u7801\u4E0D\u80FD\u4E0E\u65E7\u5BC6\u7801\u76F8\u540C"));
|
|
111
|
+
}
|
|
112
|
+
if (!reg.test(value)) {
|
|
113
|
+
callback(new Error("\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u6570\u5B57\uFF0C\u5B57\u6BCD\u548C\u7279\u6B8A\u7B26\u53F7"));
|
|
114
|
+
} else {
|
|
115
|
+
callback();
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
const submitChangePassword = async () => {
|
|
119
|
+
const isPass = await formRef.value.validate();
|
|
120
|
+
if (!isPass) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
let result = await msAppClient.changePassword(form.password, form.newPassword);
|
|
124
|
+
if (result.data.code != 200) {
|
|
125
|
+
Messager.instance.error(result.data.msg || "\u4FEE\u6539\u5BC6\u7801\u5931\u8D25");
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
msAppClient.logout();
|
|
129
|
+
};
|
|
74
130
|
return () => {
|
|
75
131
|
return createVNode("div", {
|
|
76
132
|
"class": "mk-header-tools"
|
|
@@ -100,9 +156,103 @@ const MKHeaderTools = /* @__PURE__ */ defineComponent({
|
|
|
100
156
|
default: () => [createVNode(MKSvgIcon, {
|
|
101
157
|
"iconClass": "SwitchButton"
|
|
102
158
|
}, null), createTextVNode("\u9000\u51FA\u767B\u5F55")]
|
|
159
|
+
}), createVNode(ElDropdownItem, {
|
|
160
|
+
"onClick": () => {
|
|
161
|
+
showDialog.value = true;
|
|
162
|
+
}
|
|
163
|
+
}, {
|
|
164
|
+
default: () => [createVNode(MKSvgIcon, {
|
|
165
|
+
"iconClass": "SwitchButton"
|
|
166
|
+
}, null), createTextVNode("\u4FEE\u6539\u5BC6\u7801")]
|
|
103
167
|
})]
|
|
104
168
|
})
|
|
105
|
-
})])
|
|
169
|
+
})]), createVNode(ElDialog, {
|
|
170
|
+
"model-value": showDialog.value,
|
|
171
|
+
"onUpdate:modelValue": (v) => {
|
|
172
|
+
showDialog.value = v;
|
|
173
|
+
},
|
|
174
|
+
"title": "\u4FEE\u6539\u5BC6\u7801",
|
|
175
|
+
"width": "30%"
|
|
176
|
+
}, {
|
|
177
|
+
default: () => [createVNode(ElForm, {
|
|
178
|
+
"ref": formRef,
|
|
179
|
+
"model": form,
|
|
180
|
+
"label-width": "80px"
|
|
181
|
+
}, {
|
|
182
|
+
default: () => [createVNode(ElFormItem, {
|
|
183
|
+
"label": "\u65E7\u5BC6\u7801",
|
|
184
|
+
"required": true,
|
|
185
|
+
"prop": "password",
|
|
186
|
+
"rules": [{
|
|
187
|
+
required: true,
|
|
188
|
+
message: "\u8BF7\u8F93\u5165\u65E7\u5BC6\u7801",
|
|
189
|
+
trigger: "change"
|
|
190
|
+
}]
|
|
191
|
+
}, {
|
|
192
|
+
default: () => [createVNode(ElInput, {
|
|
193
|
+
"model-value": form.password,
|
|
194
|
+
"onUpdate:modelValue": (v) => {
|
|
195
|
+
form.password = v;
|
|
196
|
+
},
|
|
197
|
+
"type": "password"
|
|
198
|
+
}, null)]
|
|
199
|
+
}), createVNode(ElFormItem, {
|
|
200
|
+
"label": "\u65B0\u5BC6\u7801",
|
|
201
|
+
"required": true,
|
|
202
|
+
"prop": "newPassword",
|
|
203
|
+
"rules": [{
|
|
204
|
+
required: true,
|
|
205
|
+
message: "\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801",
|
|
206
|
+
trigger: "change"
|
|
207
|
+
}, {
|
|
208
|
+
validator: validateCode,
|
|
209
|
+
trigger: "change"
|
|
210
|
+
}]
|
|
211
|
+
}, {
|
|
212
|
+
default: () => [createVNode(ElInput, {
|
|
213
|
+
"model-value": form.newPassword,
|
|
214
|
+
"onUpdate:modelValue": (v) => {
|
|
215
|
+
form.newPassword = v;
|
|
216
|
+
},
|
|
217
|
+
"type": "password"
|
|
218
|
+
}, null)]
|
|
219
|
+
}), createVNode(ElFormItem, {
|
|
220
|
+
"label": "\u91CD\u590D\u5BC6\u7801",
|
|
221
|
+
"required": true,
|
|
222
|
+
"prop": "repeatPassword",
|
|
223
|
+
"rules": [{
|
|
224
|
+
required: true,
|
|
225
|
+
message: "\u8BF7\u518D\u6B21\u8F93\u5165\u5BC6\u7801",
|
|
226
|
+
trigger: "change"
|
|
227
|
+
}, {
|
|
228
|
+
validator: validateCode1,
|
|
229
|
+
trigger: "change"
|
|
230
|
+
}]
|
|
231
|
+
}, {
|
|
232
|
+
default: () => [createVNode(ElInput, {
|
|
233
|
+
"model-value": form.repeatPassword,
|
|
234
|
+
"onUpdate:modelValue": (v) => {
|
|
235
|
+
form.repeatPassword = v;
|
|
236
|
+
},
|
|
237
|
+
"type": "password"
|
|
238
|
+
}, null)]
|
|
239
|
+
})]
|
|
240
|
+
})],
|
|
241
|
+
footer: () => createVNode("div", null, [createVNode(ElButton, {
|
|
242
|
+
"onClick": () => {
|
|
243
|
+
showDialog.value = false;
|
|
244
|
+
}
|
|
245
|
+
}, {
|
|
246
|
+
default: () => [createTextVNode("\u53D6\u6D88")]
|
|
247
|
+
}), createVNode(ElButton, {
|
|
248
|
+
"type": "primary",
|
|
249
|
+
"onClick": () => {
|
|
250
|
+
submitChangePassword();
|
|
251
|
+
}
|
|
252
|
+
}, {
|
|
253
|
+
default: () => [createTextVNode("\u786E\u5B9A")]
|
|
254
|
+
})])
|
|
255
|
+
})]);
|
|
106
256
|
};
|
|
107
257
|
}
|
|
108
258
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sources":["../../../../../src/layouts/components/header/tools.tsx"],"sourcesContent":["import { computed, defineComponent, unref } from \"vue\";\r\nimport {\r\n ElDropdown,\r\n ElDropdownItem,\r\n ElDropdownMenu,\r\n ElImage,\r\n} from \"element-plus\";\r\nimport { MSAppClient } from \"../../../core\";\r\nimport { MKSvgIcon } from \"../../../components\";\r\n\r\nexport const MKHeaderTools = defineComponent({\r\n name: \"MKHeaderTools\",\r\n setup(props) {\r\n const msAppClient = MSAppClient.instance!;\r\n const userSession = msAppClient.userSession!;\r\n\r\n const userInfo = computed(() => userSession.userInfo!);\r\n\r\n const avatar = computed(() => unref(userInfo).avatar);\r\n\r\n return () => {\r\n return (\r\n <div class=\"mk-header-tools\">\r\n <div class=\"mk-header-tools__item\">\r\n <ElDropdown\r\n class=\"mk-header-tools__user\"\r\n trigger=\"click\"\r\n v-slots={{\r\n default: () => (\r\n <div class=\"mk-header-tools__user-info\">\r\n <ElImage\r\n class=\"mk-header-tools__avatar\"\r\n src={unref(avatar)}\r\n v-slots={{\r\n error: () => (\r\n <MKSvgIcon iconClass=\"Avatar\" class=\" mk-header-tools__default-avatar\" />\r\n ),\r\n }}\r\n />\r\n <span class=\"mk-header-tools__nickName\">\r\n {unref(userInfo).nickName}\r\n </span>\r\n </div>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n <ElDropdownItem onClick={() => msAppClient.logout()}>\r\n <MKSvgIcon iconClass=\"SwitchButton\" />\r\n 退出登录\r\n </ElDropdownItem>\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["MKHeaderTools","name","setup","props","msAppClient","MSAppClient","instance","userSession","userInfo","computed","avatar","unref","_createVNode","ElDropdown","default","ElImage","error","MKSvgIcon","nickName","dropdown","ElDropdownMenu","ElDropdownItem","onClick","logout","_createTextVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,MAAMA,gCAAgC,eAAA,CAAA;AAAA,EAC3CC,IAAM,EAAA,eAAA;AAAA,EACNC,MAAMC,KAAO,EAAA;AACX,IAAA,MAAMC,cAAcC,WAAYC,CAAAA,QAAAA,CAAAA;AAChC,IAAA,MAAMC,cAAcH,WAAYG,CAAAA,WAAAA,CAAAA;AAEhC,IAAA,MAAMC,QAAWC,GAAAA,QAAAA,CAAS,MAAMF,WAAAA,CAAYC,QAAS,CAAA,CAAA;AAErD,IAAA,MAAME,SAASD,QAAS,CAAA,MAAME,KAAMH,CAAAA,QAAQ,EAAEE,MAAM,CAAA,CAAA;AAEpD,IAAA,OAAO,MAAM;AACX,MAAA,OAAAE,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,iBAAA;AAAA,OAAA,EAAA,CAAAA,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,uBAAA;AAAA,OAAA,EAAAA,CAAAA,WAAAA,CAAAC,UAAA,EAAA;AAAA,QAAA,OAAA,EAAA,uBAAA;AAAA,QAAA,SAAA,EAAA,OAAA;AAAA,OAMiB,EAAA;AAAA,QACPC,OAAAA,EAASA,MAAAF,WAAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EAAA,4BAAA;AAAA,SAAA,EAAAA,CAAAA,WAAAA,CAAAG,OAAA,EAAA;AAAA,UAAA,OAAA,EAAA,yBAAA;AAAA,UAAA,KAAA,EAIEJ,MAAMD,MAAM,CAAA;AAAA,SACR,EAAA;AAAA,UACPM,KAAAA,EAAOA,MAAAJ,WAAAA,CAAAK,SAAA,EAAA;AAAA,YAAA,WAAA,EAAA,QAAA;AAAA,YAAA,OAAA,EAAA,kCAAA;AAAA,aAAA,IAAA,CAAA;AAAA,SAGR,CAAAL,EAAAA,WAAAA,CAAA,MAAA,EAAA;AAAA,UAAA,OAAA,EAAA,2BAAA;AAAA,SAAA,EAAA,CAGAD,KAAMH,CAAAA,QAAQ,EAAEU,QAAQ,CAG9B,CAAA,CAAA,CAAA;AAAA,QACDC,QAAUA,EAAAA,MAAAP,WAAAQ,CAAAA,cAAAA,EAAA,IAAA,EAAA;AAAA,UAAAN,OAAAA,EAAAA,MAAAF,CAAAA,WAAAA,CAAAS,cAAA,EAAA;AAAA,YAAA,SAAA,EAEmBC,MAAMlB,WAAAA,CAAYmB,MAAO,EAAA;AAAA,WAAC,EAAA;AAAA,YAAAT,OAAAA,EAAAA,MAAAF,CAAAA,WAAAA,CAAAK,SAAA,EAAA;AAAA,cAAA,WAAA,EAAA,cAAA;AAAA,aAAA,EAAA,IAAA,CAAAO,EAAAA,eAAAA,CAAA,0BAAA,CAAA,CAAA;AAAA,WAAA,CAAA,CAAA;AAAA,SAAA,CAAA;AAAA,OAMxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAKX,CAAA;AAAA,GACF;AACF,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"tools.js","sources":["../../../../../src/layouts/components/header/tools.tsx"],"sourcesContent":["import { computed, defineComponent, unref, ref, reactive, watch, nextTick } from \"vue\";\r\nimport {\r\n ElDropdown,\r\n ElDropdownItem,\r\n ElDropdownMenu,\r\n ElImage,\r\n ElDialog,\r\n ElForm,\r\n ElFormItem,\r\n ElInput,\r\n ElButton\r\n} from \"element-plus\";\r\nimport { MSAppClient } from \"../../../core\";\r\nimport { MKSvgIcon } from \"../../../components\";\r\nimport { Messager } from \"@maketribe/dm\";\r\n\r\nexport const MKHeaderTools = defineComponent({\r\n name: \"MKHeaderTools\",\r\n setup(props) {\r\n const msAppClient = MSAppClient.instance!;\r\n const userSession = msAppClient.userSession!;\r\n\r\n const userInfo = computed(() => userSession.userInfo!);\r\n\r\n const avatar = computed(() => unref(userInfo).avatar);\r\n const showDialog = ref(false);\r\n const form = reactive({\r\n password: \"\",\r\n newPassword: \"\",\r\n repeatPassword: \"\",\r\n });\r\n const formRef = ref();\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 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\r\n if (value.length < 8) {\r\n callback(new Error(\"密码码长度不能小于8位\"));\r\n }\r\n\r\n if (value != form.newPassword) {\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 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 == 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 const submitChangePassword = async () => {\r\n const isPass = await formRef.value.validate()\r\n if (!isPass) {\r\n return;\r\n }\r\n let result = await msAppClient.changePassword(form.password, form.newPassword)\r\n if (result.data.code != 200) {\r\n Messager.instance.error(result.data.msg || \"修改密码失败\")\r\n return;\r\n }\r\n msAppClient.logout()\r\n }\r\n\r\n return () => {\r\n return (\r\n <div class=\"mk-header-tools\">\r\n <div class=\"mk-header-tools__item\">\r\n <ElDropdown\r\n class=\"mk-header-tools__user\"\r\n trigger=\"click\"\r\n v-slots={{\r\n default: () => (\r\n <div class=\"mk-header-tools__user-info\">\r\n <ElImage\r\n class=\"mk-header-tools__avatar\"\r\n src={unref(avatar)}\r\n v-slots={{\r\n error: () => (\r\n <MKSvgIcon iconClass=\"Avatar\" class=\" mk-header-tools__default-avatar\" />\r\n ),\r\n }}\r\n />\r\n <span class=\"mk-header-tools__nickName\">\r\n {unref(userInfo).nickName}\r\n </span>\r\n </div>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n <ElDropdownItem onClick={() => msAppClient.logout()}>\r\n <MKSvgIcon iconClass=\"SwitchButton\" />\r\n 退出登录\r\n </ElDropdownItem>\r\n <ElDropdownItem onClick={() => { showDialog.value = true }}>\r\n <MKSvgIcon iconClass=\"SwitchButton\" />\r\n 修改密码\r\n </ElDropdownItem>\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n />\r\n </div>\r\n <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\"} 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} 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} 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} onUpdate:modelValue={(v) => { form.repeatPassword = v }} type={'password'} />\r\n </ElFormItem>\r\n </ElForm>\r\n </ElDialog>\r\n </div >\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["MKHeaderTools","name","setup","props","msAppClient","MSAppClient","instance","userSession","userInfo","computed","avatar","unref","showDialog","ref","form","reactive","password","newPassword","repeatPassword","formRef","watch","reg","validateCode1","rule","value","callback","Error","length","test","validateCode","submitChangePassword","isPass","validate","result","changePassword","data","code","Messager","error","msg","logout","_createVNode","ElDropdown","default","ElImage","MKSvgIcon","nickName","dropdown","ElDropdownMenu","ElDropdownItem","onClick","_createTextVNode","ElDialog","v","ElForm","ElFormItem","required","message","trigger","ElInput","validator","footer","ElButton"],"mappings":"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"}
|