|
|
@@ -63,6 +63,10 @@
|
|
|
<img src="../../assets/img/更多应用.png" alt="" />
|
|
|
<p>巡检任务</p>
|
|
|
</li>
|
|
|
+ <li @click="scan">
|
|
|
+ <img src="../../assets/img/更多应用.png" alt="" />
|
|
|
+ <p>3D眼镜借用</p>
|
|
|
+ </li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
<div class="swipe-con flex justify-between mt10">
|
|
|
@@ -131,9 +135,11 @@ import { useUserApi } from '/@/api/system/user'
|
|
|
import { useTrainingApi } from '/@/api/training'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
import { useUserInfo } from '/@/stores/userInfo'
|
|
|
-
|
|
|
+import { useGlassesApi } from '/@/api/platform/glasses'
|
|
|
import { useUserInfos } from '/@/hooks/useUserInfos'
|
|
|
+import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
|
|
|
+const glassesApi = useGlassesApi();
|
|
|
const { userInfos } = useUserInfos()
|
|
|
const newsApi = useNewsApi()
|
|
|
const dictApi = useDictApi()
|
|
|
@@ -151,6 +157,8 @@ const deptData = ref(<any[]>[])
|
|
|
const pjtList = ref(<any[]>[])
|
|
|
const pjtTypeList = ref(<any[]>[])
|
|
|
const router = useRouter()
|
|
|
+
|
|
|
+const glassesInfo = ref()
|
|
|
const state = reactive({
|
|
|
form: {
|
|
|
keyWord: ''
|
|
|
@@ -189,6 +197,64 @@ const getTrainingList = async () => {
|
|
|
if (err) return
|
|
|
trainingList.value = res?.data?.list || []
|
|
|
}
|
|
|
+
|
|
|
+const getGlassesInfo = async (glassesId:any) => {
|
|
|
+ const [err, res]: ToResponse = await to(glassesApi.getGlassesById({ id: glassesId }))
|
|
|
+ if (err) return
|
|
|
+ glassesInfo.value = res.data
|
|
|
+}
|
|
|
+
|
|
|
+const handleBorrower = async (glassesId: any) => {
|
|
|
+ const [err, res]: ToResponse = await to(glassesApi.borrowerGlasses({ id: glassesId }))
|
|
|
+ if (err) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return true
|
|
|
+}
|
|
|
+
|
|
|
+const scan = async () => {
|
|
|
+ try {
|
|
|
+ // 1. 调用微信扫码
|
|
|
+ const rawRes = await useUserInfo().scanCode(1)
|
|
|
+ console.log("扫码拿到的原始内容:", rawRes)
|
|
|
+
|
|
|
+ // 获取设备详情
|
|
|
+ await getGlassesInfo(rawRes)
|
|
|
+ if (!glassesInfo.value) {
|
|
|
+ ElMessage.error("未找到眼镜信息,请核对二维码")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2. 弹出确认框(改用 await 写法,更简洁)
|
|
|
+ await ElMessageBox.confirm(
|
|
|
+ `识别到设备编号:${glassesInfo.value.deviceId},是否确认借用?`,
|
|
|
+ '确认借用',
|
|
|
+ {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'info',
|
|
|
+ center: true,
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
+ const isSuccess = await handleBorrower(glassesInfo.value.id)
|
|
|
+ if (isSuccess) {
|
|
|
+ ElMessage.success('借用成功')
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ // 这里的 err 分为两种情况:
|
|
|
+ // 1. 用户在 MessageBox 点了“取消” (会进入这里)
|
|
|
+ // 2. 微信扫码接口报错或用户关闭扫码 (也会进入这里)
|
|
|
+
|
|
|
+ if (err === 'cancel') {
|
|
|
+ ElMessage.info('已取消借用')
|
|
|
+ } else {
|
|
|
+ console.error("扫码或系统出错:", err)
|
|
|
+ ElMessage.error('操作未完成')
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
const onSearch = () => { }
|
|
|
const onRouterPush = (val: string, params?: any) => {
|
|
|
router.push({
|