新增:在用户名片面板展现「协议离婚」按钮及相关的交互弹窗提示
This commit is contained in:
@@ -94,6 +94,7 @@ class MarriageController extends Controller
|
|||||||
'status' => $marriage->status,
|
'status' => $marriage->status,
|
||||||
'marriage_id' => $marriage->id,
|
'marriage_id' => $marriage->id,
|
||||||
'partner_name' => $partner?->username,
|
'partner_name' => $partner?->username,
|
||||||
|
'is_my_partner' => $partner?->id === $request->user()?->id,
|
||||||
'ring' => $marriage->ringItem?->only(['name', 'icon']),
|
'ring' => $marriage->ringItem?->only(['name', 'icon']),
|
||||||
'level_icon' => \App\Services\MarriageIntimacyService::levelIcon($marriage->level),
|
'level_icon' => \App\Services\MarriageIntimacyService::levelIcon($marriage->level),
|
||||||
'level_name' => \App\Services\MarriageIntimacyService::levelName($marriage->level),
|
'level_name' => \App\Services\MarriageIntimacyService::levelName($marriage->level),
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
{{-- 内容区 --}}
|
{{-- 内容区 --}}
|
||||||
<div id="global-dialog-message"
|
<div id="global-dialog-message"
|
||||||
style="padding:18px 18px 14px; font-size:13px; color:#374151;
|
style="padding:18px 18px 14px; font-size:13px; color:#374151; white-space:pre-wrap;
|
||||||
line-height:1.6; word-break:break-word;">
|
line-height:1.6; word-break:break-word;">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -167,6 +167,45 @@
|
|||||||
this.friendLoading = false;
|
this.friendLoading = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async handleConfirmDivorce(marriageId) {
|
||||||
|
// 等待后端接口实现,当前先略
|
||||||
|
return;
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 发起协议离婚 */
|
||||||
|
async doDivorce(marriageId) {
|
||||||
|
if (!marriageId) return;
|
||||||
|
this.showUserModal = false;
|
||||||
|
|
||||||
|
const confirmed = await window.chatDialog?.confirm(
|
||||||
|
'提出离婚后,对方将在私人频道收到通知。\n\n如果对方在 24 小时内未作决定,此申请将自动升级为“强制离婚”,并扣除发起方一定的魅力值作为单方面解除契约的惩罚。\n\n您确定要继续发起离婚申请吗?',
|
||||||
|
'发起离婚',
|
||||||
|
'#475569'
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!confirmed) return;
|
||||||
|
|
||||||
|
window.chatDialog?.alert('请稍候…', '发送申请中', '#9ca3af');
|
||||||
|
try {
|
||||||
|
const res = await fetch(window.chatContext.marriage.divorceUrl(marriageId), {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Accept': 'application/json',
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'X-CSRF-TOKEN': document.querySelector('meta[name=csrf-token]').content
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const data = await res.json();
|
||||||
|
if (data.ok) {
|
||||||
|
window.chatDialog?.alert(data.message, '已发出', '#6b7280');
|
||||||
|
} else {
|
||||||
|
window.chatDialog?.alert(data.message || '操作失败', '错误', '#dc2626');
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
window.chatDialog?.alert('网络请求失败', '错误', '#dc2626');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/** 获取用户资料 */
|
/** 获取用户资料 */
|
||||||
async fetchUser(username) {
|
async fetchUser(username) {
|
||||||
try {
|
try {
|
||||||
@@ -736,14 +775,23 @@
|
|||||||
💍 请先设置性别
|
💍 请先设置性别
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{-- 对方已婚时显示提示 --}}
|
{{-- 对方已婚时显示提示(非伴侣) --}}
|
||||||
<div x-show="!marriageLoading && targetMarriage && targetMarriage.status === 'married'"
|
<div x-show="!marriageLoading && targetMarriage && targetMarriage.status === 'married' && !targetMarriage.is_my_partner"
|
||||||
style="flex:1; display:flex; align-items:center; justify-content:center;
|
style="flex:1; display:flex; align-items:center; justify-content:center;
|
||||||
padding:7px 10px; border-radius:5px; font-size:11px; background:#fff1f2;
|
padding:7px 10px; border-radius:5px; font-size:11px; background:#fff1f2;
|
||||||
border:1px solid #fecdd3; color:#f43f5e; font-weight:bold;">
|
border:1px solid #fecdd3; color:#f43f5e; font-weight:bold;">
|
||||||
💑 <span x-text="'与 ' + (targetMarriage?.partner_name || '—') + ' 已婚'"
|
💑 <span x-text="'与 ' + (targetMarriage?.partner_name || '—') + ' 已婚'"
|
||||||
style="margin-left:3px;"></span>
|
style="margin-left:3px;"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{-- 如果对方是自己的伴侣,显示离婚按钮 --}}
|
||||||
|
<button
|
||||||
|
x-show="!marriageLoading && targetMarriage && targetMarriage.status === 'married' && targetMarriage.is_my_partner"
|
||||||
|
style="flex:1; padding: 7px 10px; border-radius: 5px; font-size: 12px; font-weight: bold; cursor: pointer;
|
||||||
|
background: #64748b; color:#fff; border:none;"
|
||||||
|
x-on:click="doDivorce(targetMarriage.marriage_id)">
|
||||||
|
💔 协议离婚
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{-- 内联礼物面板 --}}
|
{{-- 内联礼物面板 --}}
|
||||||
|
|||||||
Reference in New Issue
Block a user