<template>
  <div class="container-accountability">
    <el-form ref="formData" :model="formData" label-width="150px">
      <el-row>
        <el-col :span="12">
          <el-form-item
            label="考核年度:"
            prop="khnd"
            :rules="{
              required: true,
              trigger: 'blur',
              message: '请输入',
            }"
          >
            <el-date-picker
              :disabled="isShow"
              v-model="formData.khnd"
              type="year"
              placeholder="请选择"
              format="yyyy"
              value-format="yyyy"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item
            label="评分表名称:"
            prop="pfbmc"
            :rules="{
              required: true,
              trigger: 'blur',
              message: '请输入',
            }"
          >
            <el-input
              :disabled="isShow"
              clearable
              v-model="formData.pfbmc"
              placeholder="请输入"
            ></el-input>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-table
          :data="formData.khpfbList"
          stripe
          border
          fit
          highlight-current-row
          style="width: 100%"
          :header-cell-style="headerStyle"
          :span-method="objectSpanMethod"
        >
          <!-- <el-table-column prop="khnra" align="center" label="考核内容"> -->
          <el-table-column prop="khnra" align="center" label="考核内容">
          </el-table-column>
          <el-table-column prop="khnrb" align="center" label="考核内容">
          </el-table-column>
          <!-- </el-table-column> -->

          <el-table-column prop="pfbz" align="center" label="评价标准">
          </el-table-column>
          <el-table-column prop="pfxz" align="center" label="评价细则">
            <template slot-scope="scope">
              <!-- v-if="scope.$index==0" -->
              <span v-html="scope.row.pfxz"></span>
              <!-- <el-form-item
                  v-else
                  :prop="'khpfbList.' + scope.$index + '.pfxz'"
                  label-width="0"
                  :rules="[
                    {
                      required: true,
                      message: '请输入评价细则',
                      trigger: 'change',
                    },
                  ]"
                >
                  <el-input v-model="scope.row.pfxz" :disabled="isShow"></el-input>
                </el-form-item> -->
            </template>
          </el-table-column>
          <el-table-column prop="fz" align="center" label="分值">
            <template slot-scope="scope">
              <span v-if="scope.$index == 0">{{ scope.row.fz }}</span>
              <el-form-item
                v-else
                :prop="'khpfbList.' + scope.$index + '.fz'"
                label-width="0"
                :rules="[
                  {
                    required: true,
                    message: '请输入分值',
                    trigger: 'change',
                  },
                ]"
              >
                <el-input
                  @change="fzSum"
                  v-model="scope.row.fz"
                  :disabled="isShow"
                ></el-input>
              </el-form-item>
            </template>
          </el-table-column>
        </el-table>
      </el-row>
      <el-row v-show="isShow">
        <el-col :span="8">
          <el-form-item label="接收人：" prop="jsr">
            <el-input
              v-model="formData.jsr"
              autocomplete="off"
              :disabled="$route.query.type != 'js'"
            ></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="接收单位：" prop="jsdw">
            <el-input
              v-model="formData.jsdw"
              autocomplete="off"
              :disabled="$route.query.type != 'js'"
            ></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="接收时间：" prop="jssj">
            <el-date-picker
              v-model="formData.jssj"
              style="width: 100%"
              :disabled="$route.query.type != 'js'"
              value-format="yyyy-MM-dd HH:mm:ss"
              format="yyyy-MM-dd HH:mm:ss"
              type="date"
              placeholder="选择日期"
            ></el-date-picker>
          </el-form-item>
        </el-col>
      </el-row>

      <el-row style="text-align: center; margin-top: 20px">
        <span>
          <el-button
            type="primary"
            size="small"
            @click="handleSave(0)"
            class="iconfont iconchucun iconbaocun"
            v-show="!isShow"
            >保存</el-button
          >
          <el-button
            type="primary"
            size="small"
            v-show="!isShow"
            class="iconfont icontijiao"
            @click="handleSave(1)"
            >提交</el-button
          >
          <el-button
            type="primary"
            size="small"
            @click="handleJs(0)"
            class="iconfont iconchucun iconjieshou"
            v-show="$route.query.type == 'js'"
            >接收</el-button
          >
          <el-button
            type="primary"
            size="small"
            v-show="$route.query.type == 'js'"
            class="iconfont iconbohui"
            @click="handleJs(1)"
            >驳回</el-button
          >
          <el-button
            type="primary"
            size="small"
            class="iconfont iconfanhui"
            @click="retrunList"
            >返回</el-button
          >
        </span>
      </el-row>
    </el-form>
  </div>
</template>
  
<script>
import { addKhpg, updateKhpgg, getKhpgDetail } from "@/api/evaluationMan/index";
import { dateTimeFormat } from "@/utils/index";
export default {
  data() {
    return {
      isShow: false,
      formData: {
        khnd: "",
        pfbmc: "",
        khpfbList: [
          { khnra: "合计", khnrb: "合计", pfbz: "--", pfxz: "--", fz: "100" },
          {
            khnra: "一、粮食数量情况",
            khnrb: "一符三专四落实情况",
            pfbz: "严格落实“一符三专四落实”（账实相符，专仓储存、专人保管、专账记载，数量落实、质量落实、品种落实、地点落实）规定。",
            pfxz: "（1）账实不符的，每仓扣2分；<br/>（2）未实行专仓储存、专人保管、专账记载的，每仓扣2分；<br/>（3）未做到数量、质量、品种、地点“四落实”的，每仓扣2分。",
            fz: "6",
          },
          {
            khnra: "二、粮食质量情况",
            khnrb: "市级储备粮质量管理情况",
            pfbz: "符合《天津市市级政府储备粮食质量安全管理办法》相关规定。",
            pfxz: "（1）入库期间，未按规定进行逐车查验和平仓检验，检验结果不完整的，每仓扣4分；<br/>（2）储存期间，未进行常规质量指标和储存品质指标检验的，检验结果不完整的，每仓扣4分；<br/>（3）出库期间，检验报告超过有效期3个月，未按规定重新检验的，每仓扣4分",
            fz: "12",
          },
          {
            khnra: "二、粮食质量情况",
            khnrb: "市级储备粮质量管理情况",
            pfbz: "符合《天津市市级政府储备质量安全管理办法》相关规定。",
            pfxz: "（1）未按规定建立粮食质量安全档案的，每仓扣2分；<br/>（2）粮食质量安全档案资料不全、保管不善或管理不规范的，每仓扣1分。",
            fz: "10",
          },
          {
            khnra: "三、轮换计划执行情况",
            khnrb: "严格落实承储企业轮换任务",
            pfbz: "严格落实承储企业轮换任务",
            pfxz: "未严格执行轮换计划通知的，发生擅自改变轮换计划、擅自串换品种、擅自变更轮出仓号和入库库点等问题的，扣5分。",
            fz: "5",
          },
          {
            khnra: "三、轮换计划执行情况",
            khnrb: "严格落实承储企业轮换任务",
            pfbz: "严格落实承储企业轮换任务",
            pfxz: "未经有关部门批准超储存期限轮换的，扣4分。",
            fz: "4",
          },
          {
            khnra: "三、轮换计划执行情况",
            khnrb: "严格落实承储企业轮换任务",
            pfbz: "严格落实承储企业轮换任务",
            pfxz: "未严格执行轮换架空期规定，未经有关部门批准存在超轮换架空期问题的，扣3分。",
            fz: "3",
          },
          {
            khnra: "三、轮换计划执行情况",
            khnrb: "严格落实承储企业轮换任务",
            pfbz: "严格落实承储企业轮换任务",
            pfxz: "轮换手续不齐全的，扣1分。",
            fz: "1",
          },
          {
            khnra: "四、安全储粮和安全生产情况",
            khnrb: "市级储备粮安全储粮情况",
            pfbz: "符合《天津市地方政府粮食储备仓储管理办法》相关规定",
            pfxz: "（1）未按规定落实粮情检查制度的，每仓扣1分；<br/>（2）发现结露、板结、发热、虫害等问题未及时采取措施进行处理的，每项扣1分。",
            fz: "7",
          },
          {
            khnra: "四、安全储粮和安全生产情况",
            khnrb: "市级储备粮安全储粮情况",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。",
            pfxz: "未结合粮情开展检查，未及时排查处置隐患，发现问题未及时整改的，每次扣1分。",
            fz: "5",
          },
          {
            khnra: "四、安全储粮和安全生产情况",
            khnrb: "市级储备粮安全储粮情况",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。 ",
            pfxz: "（1）房式仓储存除稻谷以外的品种时，超过设计装粮线的，每仓扣1分；<br/>（2）储存粮食容重超过800g/L的，未经粮仓设计单位确认最大储存量的，每仓扣1分；<br/>（3）储存稻谷时，粮面与屋盖水平构件之间的净高小于1.8米，影响作业安全的，每仓扣1分",
            fz: "9",
          },
          {
            khnra: "五、政策执行情况（8分）",
            khnrb: "财务制度规范性",
            pfbz: "财务管理制度健全、财务不兼容岗位分离，人员分工职责明确。 ",
            pfxz: "（1）未建立财务管理制度的，扣1分；<br/>（2）不兼容岗位没有分离的，扣1分。/L的，未经粮仓设计单位确认最大储存量的，每仓扣1分；<br/>（3）储存稻谷时，粮面与屋盖水平构件之间的净高小于1.8米，影响作业安全的，每仓扣1分",
            fz: "2",
          },
          {
            khnra: "五、政策执行情况（8分）",
            khnrb: "财务制度规范性",
            pfbz: "申报财政补贴与数量相符，档案留存完整。 ",
            pfxz: "（1）未按规定设置会计科目的，扣2分；<br/>（2）未按规定编制会计分录的，扣2分。",
            fz: "4",
          },
          {
            khnra: "五、政策执行情况（8分）",
            khnrb: "财务制度规范性",
            pfbz: "申报财政补贴与数量相符，档案留存完整。 ",
            pfxz: "（1）申报财政补贴与数量不相符的，扣1分；<br/>（2）档案留存不完整的，扣1分。",
            fz: "2",
          },
          {
            khnra: "六、规范化管理情况（30分）",
            khnrb: "规范化管理",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。 ",
            pfxz: "（1）未悬挂市储粮标识牌的，每仓扣1分；<br/>（2）未悬挂粮仓设计说明标牌的，每仓扣1分。",
            fz: "2",
          },
          {
            khnra: "六、规范化管理情况（30分）",
            khnrb: "规范化管理",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。",
            pfxz: "粮食入库完成后，未按规定时间内建卡、检查粮情的，每仓扣0.5分。 ",
            fz: "2",
          },
          {
            khnra: "六、规范化管理情况（30分）",
            khnrb: "规范化管理",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。.5分。 ",
            pfxz: "（1）粮情检测记录填写不规范、不完整的，每处扣0.1分；<br/>（2）粮情卡片未标明特殊情况由非本片保管员代写的，每仓扣0.1分。",
            fz: "2",
          },
          {
            khnra: "六、规范化管理情况（30分）",
            khnrb: "规范化管理",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。 ",
            pfxz: "（1）粮面不平整、未合理铺设粮面走道板的，每仓扣0.2分；<br/>（2）防鼠板、防虫线、防雀网或相同作用设施布置不到位的，每仓扣0.2分。",
            fz: "2",
          },
          {
            khnra: "六、规范化管理情况（30分）",
            khnrb: "规范化管理",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。",
            pfxz: "（1）门窗、照明灯等相关设备不能正常使用的，每仓扣0.2分；<br/>（2）仓内温湿度计未规范有效设置的，每仓扣0.1分。",
            fz: "2",
          },
          {
            khnra: "六、规范化管理情况（30分）",
            khnrb: "规范化管理",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。 ",
            pfxz: "（1）仓内墙体开裂、墙皮大面积脱落影响储粮安全的，每仓扣1分；<br/>（2）发生仓顶漏雨渗水、地面返潮等现象的，每仓扣1分。",
            fz: "2",
          },
          {
            khnra: "六、规范化管理情况（30分）",
            khnrb: "规范化管理",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。 ",
            pfxz: "（1）仓内卫生差，有虫絮蛛网等现象的，每仓扣0.1分；<br/>（2）粮堆有杂质聚集等现象不做相应处理的，每仓扣0.1分。",
            fz: "2",
          },
          {
            khnra: "六、规范化管理情况（30分）",
            khnrb: "规范化管理",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。",
            pfxz: "（1）“粮安工程”智能化平台信息填写不完整、更新不及时无合理解释的，每一项扣0.1分；<br/>（2）粮安工程”粮库智能化系统日常巡检、管理的日志材料不齐全、不规范的，每处扣0.1分；<br/>（3）擅自进行有关操作对系统软件、硬件、数据等造成破坏或泄露影响系统安全稳定运行的，扣0.1分；<br/>（4）对系统数据的更新、软件或硬件的运维和备案等维护管理不及时，导致系统数据与实际不符造成严重影响的，扣0.1分。",
            fz: "8",
          },
          {
            khnra: "六、规范化管理情况（30分）",
            khnrb: "规范化管理",
            pfbz: "符合《粮油安全储存守则》《天津市地方政府粮食储备仓储管理办法》相关规定。",
            pfxz: "（1）对检查中提出粮食储存安全隐患问题未及时整改的，每项扣3分；<br/>（2）对多次提出粮食储存安全隐患问题未彻底整改的，每项扣8分。",
            fz: "8",
          },
          {
            khnra: "七、一票否决",
            khnrb: "一票否决",
            pfbz: "未发生擅自动用、架空库存、盗卖粮食等违规问题。",
            pfxz: "发现擅自动用、库存亏空、盗卖储备粮等重大违规问题，可视情节直接判定考核结果为“不合格”。",
            fz: "0",
          },
          {
            khnra: "七、一票否决",
            khnrb: "一票否决",
            pfbz: "未发现库存粮食不符合国家标准。",
            pfxz: "发现库存粮食不符合国家标准，可视情节直接判定考核结果为“不合格”。",
            fz: "0",
          },
          {
            khnra: "七、一票否决",
            khnrb: "一票否决",
            pfbz: "轮换工作要求得到严格执行。",
            pfxz: "发现应轮未轮、未轮报轮、转圈轮换、套取财政补贴、挪用农发行贷款等违规行为的，可视情节直接判定考核结果为“不合格”。",
            fz: "0",
          },
          {
            khnra: "七、一票否决",
            khnrb: "一票否决",
            pfbz: "妥善处理安全事故，没有发生迟报、瞒报问题。",
            pfxz: "发生事故，出现迟报、瞒报，或事故救援处置、舆情应对不当，或未配合事故调查做好善后处理的，可视情节直接判定考核结果为“不合格”。",
            fz: "0",
          },
          {
            khnra: "七、一票否决",
            khnrb: "一票否决",
            pfbz: "问题整改落实到位。",
            pfxz: "发现存在拖延整改、虚假整改、应付整改等问题的，可视情节直接判定考核结果为“不合格”。",
            fz: "0",
          },
        ],
      },
    };
  },
  created() {
    this.formData.khpfbList.map((item, index) => {
      item.order = index;
    });
    if (this.$route.query.type == 1 || this.$route.query.type == "add") {
      this.isShow = false;
    } else {
      this.isShow = true;
    }
    if (this.$route.query.id) {
      this.getDetail();
    }
  },
  methods: {
    fzSum() {
      this.formData.khpfbList[0].fz = "0";
      this.formData.khpfbList.map((item) => {
        if (item.khnra !== "合计") {
          this.formData.khpfbList[0].fz = (
            Number(item.fz) + Number(this.formData.khpfbList[0].fz)
          ).toString();
        }
      });
    },
    getDetail() {
      getKhpgDetail(this.$route.query.id).then((res) => {
        if (res.infoCode == 200) {
          this.formData = res.data;
          if (this.$route.query.type == "js") {
            this.formData.jssj = dateTimeFormat(new Date());
            this.formData.jsr = sessionStorage.getItem("userName");
            this.formData.jsdw = sessionStorage.getItem("deptName");
          }
        }
      });
    },
    handleJs(type) {
      let data = {
        id: this.formData.id,
		jsr:this.formData.jsr,
		jsdw:this.formData.jsdw,
		jssj:this.formData.jssj,
        zt: type ? "驳回" : "待发布",
      };
      updateKhpgg(data).then((res) => {
        if (res.infoCode == 200) {
          this.$message({
            message: "操作成功！",
            type: "success",
          });
          this.retrunList();
        } else {
          this.$message.error(res.msg);
        }
      });
    },
    handleSave(type) {
      this.$refs.formData.validate((valid) => {
        if (valid) {
          this.$confirm("是否确认操作？", "提示", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          })
            .then(() => {
              this.handleSaveTodo(type);
            })
            .catch(() => {
              this.$message({
                type: "info",
                message: "已取消提交",
              });
            });
        } else {
          this.$message.warning("请先填写必填项");
        }
      });
    },
    handleSaveTodo(type) {
      let data = {
        ...this.formData,
        // qyzp:this.formData.khpfbList[0].fz,
        zt: "草稿",
      };
      if (type) {
        data.zt = "待接收";
      }
      if (this.$route.query.id) {
        updateKhpgg(data).then((res) => {
          if (res.infoCode == "200") {
            this.$message({
              message: "提交成功！",
              type: "success",
            });
            this.retrunList();
          }
        });
      } else {
        addKhpg(data).then((res) => {
          if (res.infoCode == "200") {
            this.$message({
              message: "提交成功！",
              type: "success",
            });
            this.retrunList();
          }
        });
      }
    },
    retrunList() {
      this.$router.go(-1);
    },
    headerStyle({ row, column, rowIndex, columnIndex }) {
      const comStyle = {
        backgroundColor: "#4095e5",
        color: "#333",
        fontSize: "500",
      };
      if (rowIndex === 0) {
        row[0].colSpan = 0; // 将表头第一列和第二列合并，内容展示为第二列的内容
        row[1].colSpan = 2;
        if (columnIndex === 0) {
          // 将表头第一列隐藏
          return {
            display: "none",
            ...comStyle,
          };
        }
      }
      return comStyle;
    },
    // table合并列
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      if (rowIndex == 0 && columnIndex == 0) {
        return {
          rowspan: 1,
          colspan: 2,
        };
      } else if (rowIndex == 0 && columnIndex == 1) {
        return {
          rowspan: 1,
          colspan: 0,
        };
      } else if (columnIndex == 0 || columnIndex == 1) {
        var spanArr = this.getSpanArr(this.formData.khpfbList, column.property);
        const _row = spanArr[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col,
        };
      }
    },
    //处理合并行
    getSpanArr(data, spanKey) {
      var spanArr = [];
      var pos = "";
      for (var i = 0; i < data.length; i++) {
        if (i === 0) {
          spanArr.push(1);
          pos = 0;
        } else {
          // 判断当前元素与上一个元素是否相同
          if (data[i][spanKey] === data[i - 1][spanKey]) {
            spanArr[pos] += 1;
            spanArr.push(0);
          } else {
            spanArr.push(1);
            pos = i;
          }
        }
      }
      return spanArr;
    },
  },
};
</script>
  
<style>
</style>
