<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" @click="handeAdd" plain>告警等级</el-button>
      </div>
      <el-row :gutter="10">
        <el-col :xs="0" :sm="2" :md="3" :lg="4">
          <el-card class="left-list" style="height: 100%;">
            <el-menu
              default-active="2"
              class="el-menu-vertical-demo"
            >
              <el-menu-item :index="''" @click="handMenuClick">
                <span>全部</span>
              </el-menu-item>
              <el-menu-item :index="'我的算法'" @click="handMenuClick">
                <span>我的算法</span>
              </el-menu-item>
     
              <el-menu-item v-for="item in algorithm_scen" :key="item.value" :index="item.value" @click="handMenuClick"> 
                <span>{{ item.label }}</span>
              </el-menu-item>
            </el-menu>  
          </el-card>
        </el-col>
        <el-col :xs="24" :sm="20" :md="20" :lg="20">
          <el-scrollbar :height="globalScreenHeight+'px'">
            <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>{{nowTopTitle}}</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(item)">
                <template v-slot:header>
                  <div class="cleartitle">
                    <span>{{item.algorithmName}}</span>
                    <el-tag
                      :type=" item.algorithmStatus=='0'?'success':'danger'"
                      effect="dark"
                    >
                      {{ item.algorithmStatus=='0'?'已启用':'已停用' }}
                    </el-tag>
                  </div>
                </template>
                <template v-slot:default >
                  <div   style="width: 100%;max-height: 200px;overflow: hidden;">
                    <img
                      :src="'http://192.168.3.82' +item.cardImg"
                      style="width: 100%;"
                    />
                  </div>
                  <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="Bottom" @click.stop="handleUpdate(item)" >下载</el-button>
                    <el-button link type="primary" icon="Edit" @click.stop="handleEnable(item)" >{{item.algorithmStatus=='0'?'停用':'启用' }}</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>
      <algorithmDown ref="algorithmDownRef" />
    </div>
</template>
  
<script setup name="Index">
  import { listAlg, detailAlg, addAlg, updateAlg, deleteAlg,updateAlgState } from "@/api/algorithmList/index.js";
  import algorithmDown from './components/algorithmDown.vue'
  // import algForm from './components/algorithmDown.vue'
  const { proxy } = getCurrentInstance();
  const { algorithm_scen, sys_job_status } = proxy.useDict("algorithm_scen", "sys_job_status");
  import { ArrowDown } from '@element-plus/icons-vue'
  import { Search } from '@element-plus/icons-vue'
  const globalScreenHeight = inject('globalScreenHeight');
  const router = useRouter();
  const algorithmDownRef = ref(null)
  const nowText=ref('算法管理')
  const nowTopTitle=ref('算法管理')
  const ids = ref([]);
  const algorithmList=reactive([])
  const algList = ref([]);
  const data = reactive({
    form: {},
    queryParams: {
      pageNum: 1,
      pageSize: 100,
      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 handeAdd(row){
    algorithmDownRef.value.handleAdd()
  }
  function handDetails(row){
    // console.log("🚀 ~ handDetails ~ row:", row)
    router.push("/algorithmList/details/info/" + row.id);
  }
  function handleSetSize(row) {
    // reset();
    // const postId = row.postId || ids.value;
    // getPost(postId).then(response => {
    //   form.value = response.data;
    //   open.value = true;
    //   title.value = "修改岗位";
    // });
  }
  function handleUpdate(row) {
    algorithmDownRef.value.handleUpdate(row)
  }
  
  function handMenuClick(row) {
    queryParams.value.applicationScenarios=row.index
    nowTopTitle.value=row.index
    getList()
  }
  
  function handleEnable(row){
    const params={
      algorithmStatus: row.algorithmStatus=='1'?"0":"1",
      id:row.id
    }
    updateAlgState(params).then((res) => {
      console.log("🚀 ~ updateAlgState ~ res:", res)
      getList()
    })

  }

  /** 删除按钮操作 */
  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: 30px;
   }
   .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>
  
  