<template>
    <div class="app-container home">
      <TabTitle :text="nowText" />
     
      <div class="add-but">
        <div class="search-input">
          <el-input
            v-model="queryParams.searchValue"
            style="max-width: 400px"
            placeholder="请输入场景关键字"
            class="input-with-select"
          >
            <template #append>
              <div @click="getList" class="cursor: pointer;">
                <el-button :icon="Search" />&nbsp; 搜索
              </div>
            </template>
          </el-input>
        </div>
          <el-button type="primary" plain @click="handAdd">新增算法</el-button>
          <el-button type="primary" plain>告警等级</el-button>
      </div>
      <el-row :gutter="10">
        <el-col :xs="0" :sm="2" :md="3" :lg="4">
          <el-card class="left-list">
            <el-menu
              default-active="2"
              class="el-menu-vertical-demo"
            >
              <el-menu-item v-for="item in algorithmList" :key="item.name" :index="item.name">
                <span>{{ item.name }}</span>
              </el-menu-item>
            </el-menu>  
          </el-card>
        </el-col>
        <el-col :xs="24" :sm="20" :md="20" :lg="20">
          <el-scrollbar height="700px">
            <el-card class="right-list">
            <template v-slot:header>
              <div class="cleartitle" style="justify-content: flex-start">
                <img src="@/assets/images/logo_video.png" width="25px" alt=""> <span>我的算法</span>
              </div>
            </template>
            <el-row :gutter="10" class="mb8" style="justify-content: flex-start;">
               <el-col :span="1.5">
                  <el-button
                     type="primary"
                     plain
                  >全部</el-button>
               </el-col>
               <el-col :span="1.5">
                  <el-button
                     type="primary"
                     plain
                  >运行中</el-button>
               </el-col>
               <el-col :span="1.5">
                  <el-button
                     type="primary"
                     plain
                  >已禁用</el-button>
               </el-col>
               <el-col :span="1.5">
                  <el-button
                     type="primary"
                     plain
                  >已下载</el-button>
               </el-col>
               <el-col :span="1.5">
                  <el-button
                     type="primary"
                     plain
                  >已删除</el-button>
               </el-col>
            </el-row>
            <div class="alg-list">
              <el-card  v-for="item in algList" :key="item.name" class="alg-item" shadow="hover" @click="handDetails">
                <template v-slot:header>
                  <div class="cleartitle">
                    <span>{{item.algorithmName}}</span>
                    <el-tag
                      :type="'success'"
                      effect="dark"
                    >
                      {{ 'success'}}
                    </el-tag>
                  </div>
                </template>
                <template v-slot:default >
                  <img
                    :src="item.cardImg"
                    style="width: 100%"
                  />
                  <p style="color: #999999;font-size: 12px;">
                    {{item.cardCopywriting}}
                  </p>
                  <div style="display: flex;justify-content: flex-end;position: absolute;right: 15px;bottom: 10px;" >
                    <el-button link type="primary" icon="Edit" @click.stop="handleUpdate(item)" >修改</el-button>
                    <el-button link type="primary" icon="Delete" @click.stop="handleDelete(item)">删除</el-button>
                    <el-dropdown trigger="click" @command.stop="handleSetSize">
                      <el-button link type="primary">
                        <el-icon class="el-icon--right">
                        <arrow-down />
                      </el-icon>更多</el-button>
                      <template #dropdown>
                        <el-dropdown-menu>
                          <el-dropdown-item :command="'卸载'">
                            {{ '卸载' }}
                          </el-dropdown-item>
                          <el-dropdown-item :command="'导入'">
                            {{ '导入' }}
                          </el-dropdown-item>
                          <el-dropdown-item :command="'下载'">
                            {{ '下载' }}
                          </el-dropdown-item>
                        </el-dropdown-menu>
                      </template>
                    </el-dropdown>
                  </div>
                </template>
              </el-card>
            </div>
          </el-card>
          </el-scrollbar>
        </el-col>
      </el-row>
      <algForm ref="algFormRef"  @getList="getList"/>
    </div>
</template>
  
<script setup name="Index">
  import { listAlg, detailAlg, addAlg, updateAlg, deleteAlg, } from "@/api/algorithmList/index.js";
  import algForm from './components/form.vue'
  // import algForm from './components/algorithmDown.vue'
  import { ArrowDown } from '@element-plus/icons-vue'
  import { Search } from '@element-plus/icons-vue'
  const router = useRouter();
  const { proxy } = getCurrentInstance();
  const algFormRef = ref(null)
  const nowText=ref('算法管理')
  const ids = ref([]);
  const algorithmList=reactive([
    {
      name:"我的算法",
      value:1
    },
    {
      name:"最新算法",
      value:2
    },
    {
      name:"基础算法",
      value:3
    },
    {
      name:"智慧煤矿",
      value:4
    },
    {
      name:"智慧能源",
      value:5
    },
    {
      name:"智慧校园",
      value:6
    },
    {
      name:"智慧港口",
      value:7
    },
    {
      name:"智慧煤矿",
      value:8
    },
    {
      name:"智慧能源",
      value:9
    },
    {
      name:"智慧校园",
      value:10
    },
  ])
  const algList = ref([]);
  const data = reactive({
    form: {},
    queryParams: {
      postCode: undefined,
      searchValue: '',
      status: undefined
    },
    rules: {
      postName: [{ required: true, message: "岗位名称不能为空", trigger: "blur" }],
      postCode: [{ required: true, message: "岗位编码不能为空", trigger: "blur" }],
      postSort: [{ required: true, message: "岗位顺序不能为空", trigger: "blur" }],
    }
  });
  const { queryParams, form, rules } = toRefs(data);

  
  /** 查询算法列表 */
  function getList() {
    // loading.value = true;
    listAlg(queryParams.value).then(response => {
      // console.log("🚀 ~ listAlg ~ response:", response)
      algList.value = response.rows
      // loading.value = false;
    });
  }
  function handAdd(row){
    algFormRef.value.handleAdd()
  }
  function handDetails(id){
    router.push("/algorithmList/details/info/" + '123');
  }
  function handleSetSize(row) {
    console.log('%c [ row ]-170', 'font-size:13px; background:pink; color:#bf2c9f;', row)
    // reset();
    // const postId = row.postId || ids.value;
    // getPost(postId).then(response => {
    //   form.value = response.data;
    //   open.value = true;
    //   title.value = "修改岗位";
    // });
  }
  function handleUpdate(row) {
    algFormRef.value.handleUpdate(row)
  }
  
  /** 删除按钮操作 */
  function handleDelete(row) {
    const id = row.id || ids.value;
    proxy.$modal.confirm('是否确认删除算法名称为"' + row.algorithmName + '"的数据项？').then(function() {
      return deleteAlg(id);
    }).then(() => {
      getList();
      proxy.$modal.msgSuccess("删除成功");
    }).catch(() => {});
  }
  getList();
  </script>
  
  <style scoped lang="scss">
   .search-input{
    display: flex;
    width: 400px;
    margin-right: 10px;
   }
   .add-but{
    position: absolute;
    display: flex;
    top: 30px;
    right: 20px;
   }
   .left-list{
    min-height: 700px;
   }
   .right-list{
    min-height: 700px;
    .alg-list{
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
      gap: 16px;
      .alg-item{
        width: 100%;
        min-height: 350px;
        cursor: pointer;
        position: relative;
      }
    }
   }
   .cleartitle{
    font-size: 16px;
    font-weight: 600;
    display: flex;
    justify-content: space-between;
  }
  </style>
  
  