<script setup>
import {ref, reactive, unref, onMounted, onBeforeMount} from 'vue';
import {cinema_list} from "@/apis/update.js";


// 表单部分
const cinemaSearch = reactive({
  ip: '',
  version: '',
})

const cinemaSearchRef = ref()

//  数据校验部分
const ip_validate = (rule, value, callback) => {
  const regex = new RegExp('((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}');
  if (value === '') {
    callback()
  }
  if (!regex.test(value)) {
    callback(new Error('请输入正确的IP地址'))
  } else {
    callback()
  }
}

const ipRule = reactive({
  ip: [{validator: ip_validate, trigger: 'change'}]
})

// 数据提交
const submitSearch = (formEl) => {
  console.log('至少执行了')
  const {ip, version} = unref(cinemaSearch)
  // console.log(formEl)
  console.log(ip, version)
  if (!formEl) return
  formEl.validate((valid) => {
    if (valid) {
      console.log('提交数据')
    } else {
      console.log('提交失败')
      return false
    }
  })
}

const resetSearch = (formEl) => {
  console.log(formEl)
  if (!formEl) return
  console.log("resetSearch")
  formEl.resetFields()
}

// const get_table_data = {
//   async
// }

// 表格部分
// const tableData = cinema_list().then(res => {
//
//   if (res.code === 200) {
//     console.log(res)
//     return res.data
//   }
// })
// // console.log(tableData)
//

const get_table_data = async () => {
  await cinema_list().then(res => {
    if (res.length > 0) {
      console.log(res)
      return reactive([...res])
      // console.log(tableData)
    } else {
      console.log('else')
      return reactive([]);
    }
  }).catch(err => {
        console.log('err')
        console.log(err)
        return reactive([]);
      }
  )
}
//
// let tableData = reactive(
//     [
//       {
//         'update_time': '2023-12-13 16:16:18',
//         'name': '鼎新测试环境3.112',
//         'ip': '172.16.3.112',
//         'zz_num': '14105121',
//         'inner_id': '2105',
//         'db_user': 'test',
//         'db_pwd': 'cine123456',
//         'sys_ver': '2.0.33.0337ZZ',
//         'client_ver': '2.033.0337.8894'
//       }
//     ]
// )
// console.log(tableData)
//
onMounted(
    async () => {
      console.log('onMounted1')
      const tableData = await get_table_data();
      console.log('onMounted2')
    }
)



</script>

<template>
  <el-form
      ref="cinemaSearchRef"
      :model="cinemaSearch"
      status-icon
      :rules="ipRule"
      class="cinema-search"
      :inline="true"
      style="width: 100%"
  >
    <el-row>
      <el-col :span="8">
        <el-form-item label="影院IP" prop="ip" label-width="60">
          <el-input v-model="cinemaSearch.ip" placeholder="请输入完整的影院IP" style="width: 180px;"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="8">
        <el-form-item label="系统版本" prop="version">
          <el-input v-model="cinemaSearch.version" style="width: 160px;"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="6">
        <el-form-item>
          <el-button type="primary" @click="submitSearch(cinemaSearchRef)">搜索</el-button>
        </el-form-item>
        <el-form-item>
          <el-button @click="resetSearch(cinemaSearchRef)">重置</el-button>
        </el-form-item>
      </el-col>
    </el-row>
  </el-form>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="update_time" label="更新时间" width="200"></el-table-column>
    <el-table-column prop="name" label="影院名称" width="200"></el-table-column>
    <el-table-column prop="ip" label="影院IP" width="120"></el-table-column>
    <el-table-column prop="zz_num" label="专资编码" width="120"></el-table-column>
    <el-table-column prop="inner_id" label="鼎新编码" width="100"></el-table-column>
    <el-table-column prop="sys_ver" label="系统版本" width="120"></el-table-column>
    <el-table-column prop="client_ver" label="客户端版本" width="200"></el-table-column>
    <el-table-column prop="db_user" label="数据库账号" width="100"></el-table-column>
    <el-table-column prop="db_pwd" label="数据库密码" width="120"></el-table-column>
  </el-table>
</template>

<style scoped>

</style>