diff --git a/src/platforms/app-plus/service/api/ui/popup.js b/src/platforms/app-plus/service/api/ui/popup.js index ac8f73014e1e9c11e01a3427dfe959b63f033c72..676f047fbcde8e57c17021419b837591edecd566 100644 --- a/src/platforms/app-plus/service/api/ui/popup.js +++ b/src/platforms/app-plus/service/api/ui/popup.js @@ -121,24 +121,35 @@ export function showModal ({ cancelText, cancelColor, confirmText, - confirmColor + confirmColor, + editable = false, + placeholderText = '' } = {}, callbackId) { + // TODO 在 editable 为 true 时,content 应该是输入框中可修改内容。后续找客户端商量。 + const buttons = showCancel ? [cancelText, confirmText] : [confirmText] + const tip = editable ? placeholderText : buttons + content = content || ' ' - plus.nativeUI.confirm(content, (e) => { + plus.nativeUI[editable ? 'prompt' : 'confirm'](content, (e) => { if (showCancel) { - invoke(callbackId, { + const isConfirm = e.index === 1 + const res = { errMsg: 'showModal:ok', - confirm: e.index === 1, + confirm: isConfirm, cancel: e.index === 0 || e.index === -1 - }) + } + isConfirm && editable && (res.content = e.value) + invoke(callbackId, res) } else { - invoke(callbackId, { + const res = { errMsg: 'showModal:ok', confirm: e.index === 0, cancel: false - }) + } + editable && (res.content = e.value) + invoke(callbackId, res) } - }, title, showCancel ? [cancelText, confirmText] : [confirmText]) + }, title, tip, buttons) } export function showActionSheet ({ itemList = [], diff --git a/src/platforms/h5/components/app/popup/mixins/modal.js b/src/platforms/h5/components/app/popup/mixins/modal.js index 0aca27af0ffd00ae568adec06189c579cd94f422..18fa3dbbdd0a8f4911847895386a6eae56d5fa0c 100644 --- a/src/platforms/h5/components/app/popup/mixins/modal.js +++ b/src/platforms/h5/components/app/popup/mixins/modal.js @@ -21,9 +21,9 @@ export default { }, methods: { // 处理 modal close 回调 - _onModalClose (type) { + _onModalClose (res) { this.showModal.visible = false - isFn(this.onModalCloseCallback) && this.onModalCloseCallback(type) + isFn(this.onModalCloseCallback) && this.onModalCloseCallback(res) } } -} +} diff --git a/src/platforms/h5/components/app/popup/modal.vue b/src/platforms/h5/components/app/popup/modal.vue index 44e111dd9dbc09957e996012ca385748548cb19e..7d645a74fbc93b7a847e21cc99baa601c25be200 100644 --- a/src/platforms/h5/components/app/popup/modal.vue +++ b/src/platforms/h5/components/app/popup/modal.vue @@ -15,7 +15,16 @@ v-text="title" /> +