账户信息
@@ -718,26 +718,21 @@ export default {
try {
console.log('加载账户信息,设备SN:', this.selectedDeviceSn)
- // 根据 sn_code 查询账户信息
- const res = await PlaAccountServer.page({
- seachOption: {
- key: 'sn_code',
- value: this.selectedDeviceSn
- },
- pageOption: {
- page: 1,
- pageSize: 1
- }
- })
+ // 通过 sn_code 直接获取账户信息
+ const res = await PlaAccountServer.getBySnCode(this.selectedDeviceSn)
console.log('账户信息接口返回:', res)
- // 支持多种数据格式
- const accountList = res.data?.rows || res.data?.list || res.data?.data || []
-
- if (accountList.length > 0) {
- const accountData = accountList[0]
- console.log('找到账户信息:', accountData)
+ if (res.code === 0 && res.data) {
+ const accountData = res.data
+ console.log('找到账户信息原始数据:', accountData)
+
+ // 确保 id 字段存在,支持多种字段名
+ if (!accountData.id) {
+ accountData.id = accountData.account_id || accountData.accountId || accountData.ID || null
+ }
+
+ console.log('账户ID:', accountData.id)
// 如果接口没有返回设备状态,则单独查询
if (accountData.is_online === undefined || accountData.is_logged_in === undefined) {
@@ -766,8 +761,10 @@ export default {
this.accountInfo = accountData
console.log('设置账户信息:', this.accountInfo)
+ console.log('accountInfo.id 值:', this.accountInfo.id)
+ console.log('v-if 判断结果:', !!this.accountInfo.id)
} else {
- console.warn('未找到账户信息,设备SN:', this.selectedDeviceSn)
+ console.warn('未找到账户信息,设备SN:', this.selectedDeviceSn, '响应:', res)
this.accountInfo = {}
}
} catch (error) {
@@ -778,7 +775,7 @@ export default {
// 处理开关变化
async handleSwitchChange(field, value) {
- if (!this.accountInfo.id) {
+ if (!this.accountInfo || !this.accountInfo.id) {
this.$Message.warning('账户信息不存在')
return
}
diff --git a/api/controller_admin/pla_account.js b/api/controller_admin/pla_account.js
index cec0389..94d2eec 100644
--- a/api/controller_admin/pla_account.js
+++ b/api/controller_admin/pla_account.js
@@ -18,6 +18,35 @@ module.exports = {
const accountData = await plaAccountService.getAccountById(id);
return ctx.success(accountData);
},
+
+ /**
+ * @swagger
+ * /admin_api/account/getBySnCode:
+ * post:
+ * summary: 通过设备SN码获取账号信息
+ * description: 根据设备SN码直接获取对应的账号信息
+ * tags: [后台-账号管理]
+ * requestBody:
+ * required: true
+ * content:
+ * application/json:
+ * schema:
+ * type: object
+ * required:
+ * - sn_code
+ * properties:
+ * sn_code:
+ * type: string
+ * description: 设备SN码
+ * responses:
+ * 200:
+ * description: 获取成功
+ */
+ 'POST /account/getBySnCode': async (ctx) => {
+ const { sn_code } = ctx.getBody();
+ const accountData = await plaAccountService.getAccountBySnCode(sn_code);
+ return ctx.success(accountData);
+ },
/**
* @swagger
* /admin_api/account/list:
diff --git a/api/services/pla_account_service.js b/api/services/pla_account_service.js
index 2f00874..69377fd 100644
--- a/api/services/pla_account_service.js
+++ b/api/services/pla_account_service.js
@@ -37,6 +37,46 @@ class PlaAccountService {
return accountData;
}
+ /**
+ * 根据设备SN码获取账号信息
+ * @param {string} sn_code - 设备SN码
+ * @returns {Promise