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

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

查看文件

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

查看文件

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