<template>
  <div class="app-container" style="width: 90%">
    <div
      class="el-icon-info"
      style="font-size: 30px; float: right; color: #009c69"
      @click="handleDescription"
    />
    <el-form
      ref="createTemp"
      :rules="rules"
      :model="createTemp"
      label-position="right"
      label-width="270px"
      style="margin-top: 40px; margin-bottom: 30px"
    >
      <el-row>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.jhzqlyjz')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model.number="createTemp.remainOptRate"
              type="number"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.pfzqlyjz')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.nqzqlyjz')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.cczqlyjz')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.hlzdtzzqlyj')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.hlzdtzzqlyj1')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.mrcapjz')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.mrcayjz')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.slsjpccyjz')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.ccpjhlyjz')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.ccpjzhlyjz')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.ccpjgjnslcb')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.nlsllccyjz')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item
            :label="$t('defaultParameter.kcyjts')"
            prop="remainOptRate"
          >
            <el-input
              ref="remainOptRate"
              v-model="createTemp.remainOptRate"
              :disabled="isRoleEdit == false"
              class="filter-item"
              :placeholder="$t('defaultParameter.slfpzb')"
              type="text"
            />
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <div slot="footer" class="dialog-footer" style="bottom: 10px">
      <el-button
        v-if="isRoleEdit"
        class="save"
        :disabled="isokDisable"
        @click="handleSave"
        >{{ $t("formulationEvaluation.save") }}</el-button
      >
      <el-button
        v-if="isRoleEdit"
        class="warning"
        :disabled="isokDisable"
        @click="handleRecovery"
      >
        {{ $t("defaultParameter.hfmr") }}</el-button
      >
    </div>
    <el-dialog
      :title="textMap[description.dialogStatus]"
      :destroy-on-close="true"
      :visible.sync="description.dialogFormVisible"
      :close-on-click-modal="false"
      width="70%"
    >
      <div class="app-description dialogMinHeight">
        <div class="content">
          {{ $t("defaultParameter.emsg1") }}
          <br />

          {{ $t("defaultParameter.emsg2") }}
          <br />
          {{ $t("defaultParameter.emsg3") }}
          <br />
          {{ $t("defaultParameter.emsg4") }}
          <br />
          {{ $t("defaultParameter.emsg5") }}
          <br />
          {{ $t("defaultParameter.emsg6") }}
          <br />
          {{ $t("defaultParameter.emsg7") }}
          <br />
          {{ $t("defaultParameter.emsg8") }}
          <br />
          {{ $t("defaultParameter.emsg9") }}
          <br />
          {{ $t("defaultParameter.emsg10") }}
          <br />
          {{ $t("defaultParameter.emsg11") }}
          <br />
          {{ $t("defaultParameter.emsg12") }}
          <br />
          {{ $t("defaultParameter.emsg13") }}
          <br />
          {{ $t("defaultParameter.emsg14") }}
        </div>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button
          class="cancelClose"
          @click="description.dialogFormVisible = false"
          >{{ $t("common.closed") }}</el-button
        >
      </div>
    </el-dialog>
  </div>
</template>

<script>
import {
  GetDataByName,
  PostDataByName,
  GetDataByNames,
  failproccess,
  checkButtons,
  ExecDataByConfig,
} from "@/api/common";
import Cookies from "js-cookie";
import { MessageBox } from "element-ui";
export default {
  name: "DefaultParameter",
  data() {
    return {
      isRoleEdit: [],
      planBeforeDayList: [
        { id: "1", name: this.$t("supplier.yes") },
        { id: "0", name: this.$t("supplier.no") },
      ], // 是否可取前一天计划
      planNextDayList: [
        { id: "1", name: this.$t("supplier.yes") },
        { id: "0", name: this.$t("supplier.no") },
      ], // 是否可取后一天计划
      isSupplementList: [
        { id: "1", name: this.$t("supplier.yes") },
        { id: "0", name: this.$t("supplier.no") },
      ], // 是否启用补料
      isLeftoverMaterialList: [
        { id: "1", name: this.$t("supplier.yes") },
        { id: "0", name: this.$t("supplier.no") },
      ], // 是否启用剩料
      decimalPlacesList: [
        { id: "0", name: this.$t("supplier.zs") },
        { id: "1", name: this.$t("supplier.xs1") },
        { id: "2", name: this.$t("supplier.xs2") },
        { id: "3", name: this.$t("supplier.xs3") },
      ], // 日计划报表小数点位数
      isLockBullsList: [
        { id: "1", name: this.$t("supplier.yes") },
        { id: "0", name: this.$t("supplier.no") },
      ], // 启用饲料锁定牛头数
      disposalList: [], // 剩料处理选项
      waterConditioningList: [
        { id: "0", name: this.$t("defaultParameter.qz") },
        { id: "1", name: this.$t("defaultParameter.bcl") },
        { id: "2", name: this.$t("defaultParameter.bcl") },
      ], // 水分调节选项
      priceCalculationList: [
        { id: "1", name: this.$t("supplier.yes") },
        { id: "0", name: this.$t("supplier.no") },
      ], // 是否启用库存管理
      numberList: [
        { id: "0", name: "1" },
        { id: "1", name: "2" },
        { id: "2", name: "3" },
        { id: "3", name: "4" },
      ], // 班次数量
      feedontractList: [
        { id: "1", name: this.$t("supplier.yes") },
        { id: "0", name: this.$t("supplier.no") },
      ], // 是否启用饲料合同
      leftoverMaterialList: [
        { id: "0", name: this.$t("supplier.defb") },
        { id: "1", name: this.$t("supplier.slfb") },
      ],
      requestParams: [
        {
          name: "getRemainFeedList",
          offset: 0,
          pagecount: 0,
          parammaps: { pastureid: Cookies.get("pastureid") },
        },
      ],
      getdataListParm: {
        name: "getysoptList",
        page: 1,
        offset: 1,
        pagecount: 10,
        returntype: "Map",
        parammaps: {
          pastureid: Cookies.get("pastureid"),
        },
      },
      tableKey: 0,
      listLoading: true,
      createTemp: {},
      rules: {},
      isokDisable: false,
      description: {
        dialogFormVisible: false,
        dialogStatus: "",
      },
      textMap: {
        description: this.$t("supplier.cssm"),
      },
      requestParam: {},
    };
  },
  created() {
    this.getList();
    this.getButtons();
    this.getDownList();
  },

  methods: {
    getButtons() {
      const Edit = "DefaultParameter";
      const isRoleEdit = checkButtons(
        JSON.parse(sessionStorage.getItem("buttons")),
        Edit
      );
      this.isRoleEdit = isRoleEdit;
    },
    getDownList() {
      GetDataByNames(this.requestParams).then((response) => {
        this.disposalList = response.data.getRemainFeedList.list;
      });
    },
    getList() {
      this.listLoading = true;
      GetDataByName(this.getdataListParm).then((response) => {
        console.log("table1数据", response.data.list);
        if (response.data.list !== null) {
          this.createTemp = response.data.list[0];
        } else {
          this.list = [];
        }
        setTimeout(() => {
          this.listLoading = false;
        }, 100);
      });
    },
    handleSave() {
      console.log("点击了保存");
      this.isokDisable = true;
      setTimeout(() => {
        this.isokDisable = false;
      }, 1000);
      this.requestParam.common = { returnmap: "0" };
      this.requestParam.data = [];
      this.requestParam.data[0] = {
        name: "updatesysopt",
        type: "e",
        parammaps: {
          pastureid: this.createTemp.pastureid,
          isGetLastPlan: this.createTemp.isGetLastPlan,
          isGetNextPlan: this.createTemp.isGetNextPlan,
          isEnableSupplyFeed: this.createTemp.isEnableSupplyFeed,
          isEnableRemainFeed: this.createTemp.isEnableRemainFeed,
          reportDigit: this.createTemp.reportDigit,
          isLockCount: this.createTemp.isLockCount,
          remainOpt: this.createTemp.remainOpt,
          waterOpt: this.createTemp.waterOpt,
          overweightWarnRate: this.createTemp.overweightWarnRate,
          overweightBanRate: this.createTemp.overweightBanRate,
          repertoryWarn: this.createTemp.repertoryWarn,
          isfeedstorage: this.createTemp.isfeedstorage,
          times: this.createTemp.times,
          isEnableContract: this.createTemp.isEnableContract,
          remainOptDis: this.createTemp.remainOptDis,
          remainOptRate: this.createTemp.remainOptRate,
        },
      };
      this.requestParam.data[1] = {
        name: "updateFPbyFTChangeALL",
        type: "e",
        parammaps: {
          pastureid: this.createTemp.pastureid,
        },
      };

      ExecDataByConfig(this.requestParam).then((response) => {
        console.log("保存发送参数", this.requestParam);
        if (response.msg !== "fail") {
          this.$notify({
            title: this.$t("common.succes"),
            message: this.$t("driver.saveSuccess"),
            type: "success",
            duration: 2000,
          });
          this.getList();
        } else {
          this.$notify({
            title: this.$t("driver.saveFail"),
            message: response.data,
            type: "warning",
            duration: 2000,
          });
        }
      });
    },
    handleRecovery() {
      console.log("点击了恢复默认");
      this.isokDisable = true;
      setTimeout(() => {
        this.isokDisable = false;
      }, 1000);
      MessageBox.confirm(this.$t("defaultParameter.config"), {
        confirmButtonText: this.$t("common.confirm"),
        cancelButtonText: this.$t("common.cancel"),
        type: "warning",
      }).then(() => {
        this.requestParam.common = { returnmap: "0" };
        this.requestParam.data = [];
        this.requestParam.data[0] = {
          name: "updatesysoptinit",
          type: "e",
          parammaps: {
            pastureid: this.createTemp.pastureid,
          },
        };
        this.requestParam.data[1] = {
          name: "updateFPbyFTChangeALL",
          type: "e",
          parammaps: {
            pastureid: this.createTemp.pastureid,
          },
        };

        ExecDataByConfig(this.requestParam).then((response) => {
          console.log("保存发送参数", this.requestParam);
          if (response.msg !== "fail") {
            this.$notify({
              title: this.$t("common.succes"),
              message: this.$t("driver.saveSuccess"),
              type: "success",
              duration: 2000,
            });
            this.getList();
          } else {
            this.$notify({
              title: this.$t("driver.saveFail"),
              message: response.data,
              type: "warning",
              duration: 2000,
            });
          }
        });
      });
    },
    handleDescription() {
      this.description.dialogStatus = "description";
      this.description.dialogFormVisible = true;
    },
  },
};
</script>
<style lang="scss" scoped>
.app-description {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 14px;
  line-height: 28px;
  .content {
    display: flex;
  }
}
</style>
