JeechBoot前端表格内操作设置下拉

上面是最终的结果,这是在业务场景中很容易碰到的功能操作,下面就是该功能的代码展示。

javascript 复制代码
//接口定义
export const openDoor1 = (params: { id: string; dwState: string }) => {
  return defHttp.post({
    url: Api.openDoor,
    params:params ,  // 参数作为query参数传递
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    } // 将参数放到请求头上
  }, { isTransformResponse: false });
}
javascript 复制代码
//在操作栏区域添加组件
<!-- 门禁远程开门(设备名称为门禁时显示) -->
        <template v-if="record.deviceType == 0">
          <a-space>
            <a-dropdown trigger="click" @click="e => e.preventDefault()">
              <a-button type="text" size="small" :loading="doorLoading[record.id]">
                远程开门 <Icon icon="mdi:chevron-down" />
              </a-button>
              <template #overlay>
                <a-menu @click="({ key }) => handleDoorStateChange(record, key)">
                  <a-menu-item key="0">关闭</a-menu-item>
                  <a-menu-item key="1">打开</a-menu-item>
                  <a-menu-item key="2">常开</a-menu-item>
                  <a-menu-item key="3">常关</a-menu-item>
                </a-menu>
              </template>
            </a-dropdown>
          </a-space>
        </template>
javascript 复制代码
//逻辑书写
// ------------------- 门禁远程开门逻辑 -------------------
/**
 * 处理门禁开门状态选择
 */
async function handleDoorStateChange(record: any, dwState: string) {
  if (doorLoading.value[record.id]) return;
  
  try {
    doorLoading.value[record.id] = true;
    const params = { id: record.id, dwState: dwState };
    const result = await openDoor1(params);
    
    if (result.success) {
      const stateMap = { '0': '关闭', '1': '打开', '2': '常开', '3': '常关' };
      createMessage.success(`已设置为${stateMap[dwState]}状态,指令已发送`);
      reload();
    } else {
      createMessage.error(result.message || '操作失败');
    }
  } catch (error) {
    console.error('门禁开门失败:', error);
    createMessage.error('操作失败,请重试');
  } finally {
    doorLoading.value[record.id] = false;
  }
}
相关推荐
风骏时光牛马8 分钟前
大模型底层架构与推理流程AI源码深度剖析
前端
程序员Sunday9 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
Setsuna_F_Seiei9 小时前
前端转型 Agent 开发 06 之 Agent Memory 记忆系统(让 Agent 更智能,更懂你)
前端·agent·ai编程
zhangzeyuaaa10 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
默_笙10 小时前
🌊 向量库和 ES 都查不出"关系",我只好给奶茶建了一张人脉网
前端·javascript
优选资讯11 小时前
标签打印软件怎么对接 Excel 数据
前端·excel
思无邪6611 小时前
用 AI 做 JS 逆向:从抓包到复现的完整方法论
开发语言·javascript·人工智能
一个风轻云淡12 小时前
GCC 和 GDB命令简单解读
java·linux·前端
u01110267512 小时前
图片处理接口如何统一错误信息 前端提示与后端错误码设计
前端·状态模式
福兮说13 小时前
浏览器里把 iPhone 的 HEIC 转成 JPG:Chrome 解不开、转完大了七成、拍摄时间全丢,六个坑实测
前端·javascript·图像处理·chrome·ios·iphone·heic