Update App.jsx via upload script - 2026-08-01 00:20:34
This commit is contained in:
parent
3292dd7552
commit
1bdb84c240
17
App.jsx
17
App.jsx
|
|
@ -4279,7 +4279,7 @@ async function jmsResolveIp(domain) {
|
|||
return answer ? answer.data : null;
|
||||
}
|
||||
|
||||
function JmsLineCard({ line, ip, onRefreshIp, onCheck, onCopy, onQr, onEdit, onDelete }) {
|
||||
function JmsLineCard({ line, ip, onRefreshIp, onCheck, onCopy, onQr, onDuplicate, onEdit, onDelete }) {
|
||||
const meta = JMS_PROTO_META[line.protocol];
|
||||
const status = line.monitorStatus || 'normal';
|
||||
const dotClass = status === 'abnormal' ? 'jms-dot-abnormal' : status === 'checking' ? 'jms-dot-checking' : 'jms-dot-normal';
|
||||
|
|
@ -4320,8 +4320,9 @@ function JmsLineCard({ line, ip, onRefreshIp, onCheck, onCopy, onQr, onEdit, onD
|
|||
<div className="jms-card-actions">
|
||||
<button className="btn btn-sm" onClick={() => onCopy(line)}><Copy size={13} />复制链接</button>
|
||||
<button className="btn btn-sm" onClick={() => onQr(line)}><QrCode size={13} />二维码</button>
|
||||
<button className="btn btn-sm btn-ghost" onClick={() => onEdit(line)}><Edit2 size={13} /></button>
|
||||
<button className="btn btn-sm btn-ghost btn-danger" onClick={() => onDelete(line.id)}><Trash2 size={13} /></button>
|
||||
<button className="btn btn-sm btn-ghost" onClick={() => onDuplicate(line)} title="复制为新线路"><Layers size={13} /></button>
|
||||
<button className="btn btn-sm btn-ghost" onClick={() => onEdit(line)} title="编辑"><Edit2 size={13} /></button>
|
||||
<button className="btn btn-sm btn-ghost btn-danger" onClick={() => onDelete(line.id)} title="删除"><Trash2 size={13} /></button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
@ -4434,6 +4435,15 @@ function JmsPage({ lines, onSave, onDelete, onCheck, onNotify }) {
|
|||
setDraft({ ...line });
|
||||
setModalOpen(true);
|
||||
}
|
||||
function duplicateLine(line) {
|
||||
setEditingId(null); // 不带id,保存时会当成全新的一条线路,不会覆盖原线路
|
||||
setGroup(line.group);
|
||||
setProtocol(line.protocol);
|
||||
const { id, monitorStatus, lastChecked, ...rest } = line;
|
||||
setDraft({ ...rest, name: line.name ? `${line.name} 副本` : '' });
|
||||
setModalOpen(true);
|
||||
onNotify('已复制配置,改一下地址/端口/名称就能存成新线路');
|
||||
}
|
||||
function closeModal() { setModalOpen(false); }
|
||||
|
||||
function handleGroupChange(g) {
|
||||
|
|
@ -4481,6 +4491,7 @@ function JmsPage({ lines, onSave, onDelete, onCheck, onNotify }) {
|
|||
onCheck={onCheck}
|
||||
onCopy={copyLink}
|
||||
onQr={openQr}
|
||||
onDuplicate={duplicateLine}
|
||||
onEdit={openEditModal}
|
||||
onDelete={onDelete}
|
||||
/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue