<template>
  <Mask :width="800" :height="600" :is-show="show" @close="show=false" title="项目列表" :show-footer="true">
    <template #default>
      <div class="search_content_wrapper">
        <div class="search_wrapper">
          <span>药品名称:</span>
          <el-input
              class="input"
              v-model="keyword"
              placeholder="请输入药品名称或者编号"
              @input="search_social"
              clearable/>
          <el-button type="primary" @click="add">添加项目</el-button>
        </div>
        <div class="content">
          <el-table :data="tableList" @row-click="rowClick">
            <el-table-column
                prop="name"
                label="项目名称">
            </el-table-column>
            <el-table-column
                prop="purchaseUnitPrice"
                label="总进货价">
            </el-table-column>
            <el-table-column
                prop="unitPrice"
                label="总售价">
            </el-table-column>
          </el-table>
        </div>
      </div>
    </template>
    <template #footer>
      <div class="bottom">
        <el-pagination
            background
            layout="prev, pager, next"
            @current-change="handleCurrentChange"
            :current-page="current_page"
            :page-size="20"
            :total="total">
        </el-pagination>
      </div>
    </template>
  </Mask>
  <AddProject :add="true" ref="addProjectMaskRef" @close="init"></AddProject>
</template>
<script setup lang="ts">
import {ref, nextTick} from "vue";
import {post} from '@/utils/request.ts'
import Mask from "@/components/common/Mask.vue";
import AddProject from "@/components/settings/AddProject.vue";
import CloseBtn from "@/components/CloseBtn.vue";
import {ElMessage} from "element-plus";

let current_search_data: any = null;
let keyword = ref('');
let current_page = ref(1)
const show = ref(false);

const emit = defineEmits(["confirm"])

let search_result = ref({
  totalPage: 0,
  list: [],
  pageNum: 1,
});

const init = () => {

  post("item/group/list", {
    name: keyword.value,
    page: current_page.value,
    size: 10,
  }).then((res: any) => {
    tableList.value = res.list
    total.value = res.total_count
    show.value = true;
  })

};
defineExpose({init});

function init_search_data() {
  isloading.value = false;
  current_search_data = null;
  search_result.value = {
    totalPage: 0,
    list: [],
    pageNum: 1,
  }
}

const tableList = ref<any>([
  {
    name: '',
    purchaseUnitPrice: '',
    unitPrice: '',
  }
])
let isloading = ref(false);
let search_social = () => {
  isloading.value = true;
}
const addProjectMaskRef = ref<any>(null);
const rowClick = (row: any) => {
  nextTick(() => {
    addProjectMaskRef.value?.init(row);
  })
}
const add = () => {
  nextTick(() => {
    addProjectMaskRef.value?.initData();
  })
}
const total = ref<any>(0)
const handleCurrentChange = (val: any) => {
  current_page.value = val;
  init();
}
</script>
<style scoped lang="scss">
.search_bottom {
  display: block;
  margin-top: 10px;
}

.search_content_wrapper {
  background-color: #FFF;
  width: 100%;
  height: 100%;
  overflow: hidden;
  margin: auto;
  margin-top: 20px;
  border-radius: 10px;
  box-sizing: border-box;
  padding: 10px;
}

.search_wrapper {
  position: relative;
  width: 100%;
  display: flex;
  margin: 0 auto;
  height: 60px;

  span {
    position: relative;
    display: block;
    width: 100px;
    text-align: right;
    line-height: 40px;
  }

  .input {
    display: block;
    flex: 1;
  }


  button {
    width: 80px;
    line-height: 40px;
    color: #FFF;
    margin-left: 10px;
    height: 40px;
    background-color: #409EFF;
    border: none;
  }
}

.content {
  display: block;
  width: 100%;
  flex: 1;
  //min-height: 0;

  table {
    //border-collapse: collapse;
    width: 100%;
  }

  th,
  td {
    //border: 1px solid #ccc;
    padding: 8px;
    text-align: left;

  }

  th {
    //background-color: #F9F9F9;
  }

  /* 可选：为可点击的行添加鼠标悬停效果 */
  tr:hover {
    //background-color: #f5f5f5;
  }
}

:deep(.invalid) {
  color: #409EFF;
}

.search_result {
  width: 100%;
  height: 400px;
}
.bottom{
  height: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0 24px;
}
</style>
