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;
  }
}
相关推荐
GreenTea2 小时前
GrokBot 核心成员 Lauren Tan:每月交付 2000 个 PR 的人,是怎么用 AI 的
前端·后端·架构
mCell3 小时前
用 Knip 清理 AI Coding 留下的冗余代码
前端·ai编程·前端工程化
笃行3504 小时前
使用Rokid AIUI做了一个童年推箱子游戏
前端
excel5 小时前
前端加密的作用与使用场景
前端
计算机魔术师6 小时前
纽约时报版权诉讼披露:微软高管内部称训练 AI 是人类历史上最大规模劳动窃取
前端
去伪存真6 小时前
大模型的参数量为什么那么大?
前端·人工智能
IT_陈寒7 小时前
Java空指针这次真把我坑惨了
前端·人工智能·后端
高级程序源8 小时前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
八荒启·交互动画8 小时前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计8 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能