feat(ywq): 新增授权关系功能

- 添加授权关系列表和新增授权医生页面
- 实现授权请求的处理逻辑
- 优化刷新组件,支持分页加载
- 修复确认对话框的返回逻辑
这个提交包含在:
徐勤民 2024-10-26 19:35:48 +08:00
父节点 3a34fc48b8
当前提交 6e5dfee898
共有 2 个文件被更改,包括 44 次插入34 次删除

查看文件

@ -176,34 +176,37 @@ export class ToolsHelper {
* 弹出Confirm弹窗 * 弹出Confirm弹窗
* @param options * @param options
*/ */
static showConfirmDialog(options: ConfirmOptions) { static showConfirmDialog(options: ConfirmOptions): Promise<void> {
try { return new Promise((reject) => {
promptAction.showDialog({ try {
alignment: 1, promptAction.showDialog({
title: options.title, alignment: 1,
message: options.msg, title: options.title,
buttons: [{ message: options.msg,
text: options.confirm?.text ?? "确定", buttons: [{
color: options.confirm?.color ?? "#000000", text: options.confirm?.text ?? "确定",
}, { color: options.confirm?.color ?? "#000000",
text: options.cancel?.text ?? "取消", }, {
color: options.cancel?.color ?? "#666666", text: options.cancel?.text ?? "取消",
}] color: options.cancel?.color ?? "#666666",
}) }]
.then((data) => {
if (data.index === 0) {
options.confirm?.onClick && options.confirm.onClick()
} else {
options.cancel?.onClick && options.cancel.onClick()
}
}) })
.catch((err: Error) => { .then((data) => {
ToolsHelper.showMessage(err.message) if (data.index === 0) {
}) options.confirm?.onClick && options.confirm.onClick()
} catch (error) { } else {
let message = (error as BusinessError).message options.cancel?.onClick && options.cancel.onClick()
ToolsHelper.showMessage(message) }
} })
.catch((err: Error) => {
ToolsHelper.showMessage(err.message)
})
} catch (error) {
reject()
let message = (error as BusinessError).message
ToolsHelper.showMessage(message)
}
})
} }
public static mapDialog = new HashMap<string, number>() public static mapDialog = new HashMap<string, number>()
@ -345,7 +348,7 @@ export class ToolsHelper {
}); });
} }
private static getUniqueId(fun: Function): string { static getUniqueId(fun: Function): string {
if (!ToolsHelper.uniqueIdMap.has(fun)) { if (!ToolsHelper.uniqueIdMap.has(fun)) {
ToolsHelper.uniqueIdMap.set(fun, ToolsHelper.getUuid()); ToolsHelper.uniqueIdMap.set(fun, ToolsHelper.getUuid());
} }

查看文件

@ -7,7 +7,9 @@ type ItemType = (string | number | Object)
export struct RefreshView { export struct RefreshView {
@Link isLoading: boolean @Link isLoading: boolean
@Prop data: Array<object> @Prop data: Array<object>
onLoadMore?: () => void @Require keyGenerator?: (item: ESObject, index: number) => string
pageSize: number = 10
onLoadMore?: (pageNum: number) => void
onRefresh?: () => void onRefresh?: () => void
private startY: number = 0 private startY: number = 0
private endY: number = 0 private endY: number = 0
@ -15,7 +17,7 @@ export struct RefreshView {
private _openMore: boolean = false private _openMore: boolean = false
aboutToAppear(): void { aboutToAppear(): void {
// this.onRefresh && this.onRefresh() this.onRefresh && this.onRefresh()
} }
// 使用父组件@Builder装饰的方法初始化子组件@BuilderParam // 使用父组件@Builder装饰的方法初始化子组件@BuilderParam
@ -30,7 +32,7 @@ export struct RefreshView {
ListItem() { ListItem() {
this.customBuilderParam(item, index) this.customBuilderParam(item, index)
} }
}, (index: number) => index.toString()) }, (item: ESObject, index: number) => this.keyGenerator!(item, index))
} }
.onTouch((event: TouchEvent) => { .onTouch((event: TouchEvent) => {
const e1 = event.touches[0] const e1 = event.touches[0]
@ -48,13 +50,18 @@ export struct RefreshView {
case TouchType.Up: case TouchType.Up:
this.endY = e1.y this.endY = e1.y
if (this.endY - this.startY < -100 && this._openMore) { if (this.endY - this.startY < -100 && this._openMore) {
this.onLoadMore && this.onLoadMore() const v = this.data && (this.data.length % this.pageSize) === 0
if (v) {
this.onLoadMore && this.onLoadMore(Math.floor(this.data.length / this.pageSize))
} else {
ToolsHelper.showMessage('没有更多数据了')
}
} }
break break
} }
}) })
.onScrollIndex((first: number, last: number) => { .onScrollIndex((first: number, last: number) => {
this.lastNum = last this.lastNum = last + 1
}) })
.width('100%') .width('100%')
.height('100%') .height('100%')
@ -65,7 +72,7 @@ export struct RefreshView {
.width('100%') .width('100%')
.height('100%') .height('100%')
.textAlign(TextAlign.Center) .textAlign(TextAlign.Center)
} }
} }
.width('100%') .width('100%')