<template>
  <div class="div_main">
    <div class="div_search">
      <el-form
        :inline="true"
        :model="dataForm"
        @keyup.enter.native="getDataList()"
      >
        <el-form-item label="疫苗接种点名称" prop="name">
          <el-input
            v-model="dataForm.name"
            placeholder="核酸检测点名称"
            clearable
          ></el-input>
        </el-form-item>
        <el-form-item label="咨询电话" prop="mobile">
          <el-input
            v-model="dataForm.mobile"
            placeholder="咨询电话"
            clearable
          ></el-input>
        </el-form-item>
        <el-form-item>
          <el-button class="diy-button--search" @click="getDataList()">{{
            $t("query")
          }}</el-button>
        </el-form-item>
        <el-form-item>
          <el-button
            class="diy-button--add"
            type="primary"
            @click="addOrUpdateHandle()"
            >{{ $t("add") }}</el-button
          >
        </el-form-item>
        <!--<el-form-item>-->
        <!--<el-button type="danger" @click="deleteHandle()">{{-->
        <!--$t("deleteBatch")-->
        <!--}}</el-button>-->
        <!--</el-form-item>-->
      </el-form>
    </div>
    <div class="div_table">
      <div class="exportBtn">
        <el-button
          style="margin-left: 10px"
          class="diy-button--export"
          size="small"
          @click="handleExportModule()"
          >下载疫苗接种点模板</el-button
        >

        <el-upload
          style=""
          ref="upload"
          :multiple="false"
          :show-file-list="false"
          :before-upload="
            (file) => {
              beforeUpload(file);
            }
          "
          action=""
          accept=".xls,.xlsx"
          :http-request="
            () => {
              uploadFile();
            }
          "
        >
          <el-button
            style="margin-left: 10px"
            size="small"
            class="diy-button--delete"
            >导入疫苗接种点数据</el-button
          >
        </el-upload>
        <el-button
          style="margin-left: 15px"
          class="diy-button--more"
          size="small"
          @click="handleSendNotice"
          >发送通知</el-button
        >
      </div>
      <el-table
        v-loading="dataListLoading"
        :data="dataList"
        border
        @selection-change="dataListSelectionChangeHandle"
        style="width: 100%"
      >
        <el-table-column
          type="selection"
          header-align="center"
          align="center"
          width="50"
        ></el-table-column>
        <!--<el-table-column-->
        <!--prop="orgName"-->
        <!--label="所属组织名称"-->
        <!--header-align="center"-->
        <!--align="center"-->
        <!--&gt;</el-table-column>-->
        <el-table-column
          prop="name"
          label="疫苗接种点名称"
          header-align="center"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="inoculationDate"
          label="接种日期"
          header-align="center"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="moStartTime"
          label="接种上午开始时间"
          header-align="center"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="moEndTime"
          label="接种上午结束时间"
          header-align="center"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="afStartTime"
          label="接种下午开始时间"
          header-align="center"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="afEndTime"
          label="接种下午结束时间"
          header-align="center"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="noAvailableVaccines"
          label="暂无疫苗"
          header-align="center"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="mobile"
          label="咨询电话"
          header-align="center"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="address"
          label="接种点地址"
          header-align="center"
          align="center"
        ></el-table-column>
        <el-table-column
          :label="$t('handle')"
          fixed="right"
          header-align="center"
          align="center"
          width="150"
        >
          <template slot-scope="scope">
            <el-button
              type="text"
              size="small"
              @click="addOrUpdateHandle(scope.row.id)"
              >{{ $t("update") }}</el-button
            >
            <el-button
              type="text"
              size="small"
              @click="deleteHandle(scope.row.id)"
              >{{ $t("delete") }}</el-button
            >
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
        :current-page="page"
        :page-sizes="[10, 20, 50, 100]"
        :page-size="limit"
        :total="total"
        layout="total, sizes, prev, pager, next, jumper"
        @size-change="pageSizeChangeHandle"
        @current-change="pageCurrentChangeHandle"
      >
      </el-pagination>
    </div>
    <!-- 弹窗, 新增 / 修改 -->
    <el-dialog
      :visible.sync="addOrUpdateVisible"
      :title="!updateId ? $t('add') : $t('update')"
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :destroy-on-close="true"
    >
      <add-or-update
        ref="addOrUpdate"
        @refreshDataList="getDataList"
        @closeDialog="closeDialog"
      ></add-or-update>
    </el-dialog>
    <!-- 发送通知弹出框 -->
    <el-dialog :visible.sync="sendNoticeFormShow"
               :close-on-click-modal="false"
               :close-on-press-escape="false"
               title="发送通知"
               width="850px"
               top="5vh"
               class="dialog-h"
               @closed="diaClose">
      <icpoint-noice ref="ref_sendnotice"
                      @diaClose="diaClose"></icpoint-noice>
    </el-dialog>
  </div>
</template>

<script>
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./icpointvaccinesinoculation-add-or-update";
import icpointNoice from './icpointNoice'

export default {
  mixins: [mixinViewModule],
  data() {
    return {
      mixinViewModuleOptions: {
        getDataListURL: "/epmetuser/icPointVaccinesInoculation/page",
        getDataListIsPage: true,
        deleteURL: "/epmetuser/icPointVaccinesInoculation",
        deleteIsBatch: true,
      },
      dataForm: {
        name: "",
        mobile: "",
      },
      updateId: null,
      sendNoticeFormShow:false,
    };
  },
  components: {
    AddOrUpdate,
    icpointNoice
  },
  methods: {
    // 发送通知
    handleSendNotice () {
      this.sendNoticeFormShow = true
      this.$nextTick(() => {
        this.$refs.ref_sendnotice.initForm(this.selectionAll, '4')
      })
    },
    // 关闭通知
    diaClose(){
      this.sendNoticeFormShow = false
    },
    // 新增 / 修改
    addOrUpdateHandle(id) {
      this.updateId = id;
      this.$nextTick(() => {
        this.$refs.addOrUpdate.dataForm.id = id;
        this.$refs.addOrUpdate.init();
      });
      this.addOrUpdateVisible = true;
    },
    // 关闭弹窗
    closeDialog() {
      this.addOrUpdateVisible = false;
      this.updateId = null;
    },
    handleExportModule() {
      let title = "疫苗接种点模板";
      let url = "/epmetuser/icPointVaccinesInoculation/exporttemplate";

      let params = {};

      app.ajax.exportFilePost(
        url,
        params,
        (data, rspMsg) => {
          this.download(data, title + ".xls");
        },
        (rspMsg, data) => {
          this.$message.error(rspMsg);
        }
      );
    },
    // 下载文件
    download(data, fileName) {
      if (!data) {
        return;
      }

      var csvData = new Blob([data]);

      if (window.navigator && window.navigator.msSaveOrOpenBlob) {
        window.navigator.msSaveOrOpenBlob(csvData, fileName);
      }
      // for Non-IE (chrome, firefox etc.)
      else {
        var a = document.createElement("a");
        document.body.appendChild(a);
        a.style = "display: none";
        var url = window.URL.createObjectURL(csvData);
        a.href = url;
        a.download = fileName;
        a.click();
        a.remove();
        window.URL.revokeObjectURL(url);
      }
    },
    // 上传文件之前的钩子
    beforeUpload(file) {
      this.files = file;

      const isText = file.type === "application/vnd.ms-excel";
      const isTextComputer =
        file.type ===
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

      if (!isText && !isTextComputer) {
        this.$message.error("请选择正确格式的文件");
        this.files = null;
        this.fileName = "";
        return false;
      } else {
        this.fileName = file.name;
        return true;
      }
    },
    async uploadFile() {
      if (this.fileName == "") {
        this.$message.warning("请选择要上传的文件！");
        return false;
      }

      this.$message({
        showClose: true,
        message: "导入中，请到系统管理-导入记录中查看进度",
        duration: 0,
      });

      //清空上传列表
      this.$refs["upload"].clearFiles();
      let url = "";

      let fileFormData = new FormData();
      fileFormData.append("file", this.files); //filename是键，file是值，就是要传的文件，test.zip是要传的文件名

      url = "/epmetuser/icPointVaccinesInoculation/pointImport";

      window.app.ajax.post2(
        url,
        fileFormData,
        (data, rspMsg) => {
          if (data.code === 0 && data.msg == "success") {
            // this.$message.success('导入成功')
          } else {
            // this.$message({
            //   showClose: true,
            //   message: rspMsg,
            //   duration: 0,
            //   type: "error"
            // })
            // this.$message.error(rspMsg)
          }
          this.loadTable();
        },
        (rspMsg, data) => {},
        { headers: { "Content-Type": "multipart/form-data" } }
      );
    },
  },
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/modules/visual/communityManage.scss";
@import "@/assets/scss/modules/management/list-main.scss";
.exportBtn {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}
.div_left_table {
  margin-top: 10px;
  margin-left: 15px;
  background-color: #ffffff;
  border-radius: 5px;
  padding: 10px;
}
</style>
