feat: 增加机器位置手动编辑功能及公开查看界面

This commit is contained in:
2026-07-11 15:43:17 +08:00
parent becd8f0e20
commit 84dbdf58c4
13 changed files with 316 additions and 51 deletions
+44
View File
@@ -686,6 +686,9 @@
</div>
<div style="font-size: 0.85em; color: #aaa;">站点: {{ loc.station || loc.station_code || '未知' }}</div>
<div style="font-size: 0.8em; color: #888; margin-top: 4px;">坐标: {{ loc.x }}, {{ loc.y }}, {{ loc.z }}</div>
<div style="margin-top: 8px;">
<button class="btn sm primary" @click.stop="openEditMachineModal(id)">编辑</button>
</div>
</div>
</div>
</template>
@@ -693,6 +696,47 @@
</div>
</div>
<!-- 编辑机器位置 Modal -->
<div v-if="showEditMachineModal" class="jr-admin-modal-overlay" @click.self="showEditMachineModal = false">
<div class="jr-admin-modal">
<div class="jr-admin-modal-header">
<h3>编辑设备位置 - {{ editMachineForm.device_id }}</h3>
<button class="jr-admin-modal-close" @click="showEditMachineModal = false"><i class="fas fa-times"></i></button>
</div>
<div class="jr-admin-modal-body">
<div class="jr-admin-form-group">
<label>站点代码 / 名称</label>
<input type="text" v-model="editMachineForm.station_code" class="jr-admin-input">
</div>
<div class="jr-admin-form-group" style="display: flex; gap: 10px;">
<div style="flex: 1;">
<label>X 坐标</label>
<input type="number" v-model="editMachineForm.x" class="jr-admin-input">
</div>
<div style="flex: 1;">
<label>Y 坐标</label>
<input type="number" v-model="editMachineForm.y" class="jr-admin-input">
</div>
<div style="flex: 1;">
<label>Z 坐标</label>
<input type="number" v-model="editMachineForm.z" class="jr-admin-input">
</div>
</div>
<div class="jr-admin-form-group">
<label>类型</label>
<select v-model="editMachineForm.type" class="jr-admin-input">
<option value="TicketMachine">售票机</option>
<option value="Gate">检票机</option>
</select>
</div>
</div>
<div class="jr-admin-modal-footer">
<button class="btn" @click="showEditMachineModal = false">取消</button>
<button class="btn primary" @click="saveMachineLocation">保存</button>
</div>
</div>
</div>
<!-- 车票记录 -->
<div v-if="currentView === 'tickets'">
<div class="grid">