<!-- 预览审查表单 -->
<template>
  <el-dialog
    title="预览审查表单"
    :visible.sync="dialogManger.dialogVisible"
    width="75%"
    append-to-body
    :close-on-click-modal="false"
    :close-on-press-escape="false"
    :before-close="handleClose"
  >
    <!--审查表单概要-->
    <div class="form-review-questionnaire" style="margin: 0">
      <div class="title-display">
        <span class="title-i"></span>
        <span class="title-content">预览审查表单</span>
        <div class="control-btns">
          <div class="control-btn" @click="openAll()">
            <icon-park
              type="down-c"
              theme="outline"
              size="16"
              style="margin-right: 5px"
              fill="#303133"
            />
            全部展开
          </div>
          <div class="control-btn" @click="closeAll()">
            <icon-park
              type="up-c"
              theme="outline"
              size="16"
              style="margin-right: 5px"
              fill="#303133"
            />
            全部收起
          </div>
        </div>
      </div>
      <!--审查表单概要-->
      <collapse v-model="activeNames" class="mt10">
        <collapse-item
          v-for="(item, key) in dialogManger.model.systemReviewTask.standard"
          :key="key"
          :name="item.chapter + key"
        >
          <span slot="title" style="width: 100%">
            <div class="standard-box">
              <div class="standard-left">
                <div class="standard-title">
                  <div class="standard">标准:</div>
                  {{ item.chapter + item.text }}
                </div>
              </div>
              <div class="standard-result">
                审查结果:
                <span v-if="item.passed === null">__</span>
                <span v-else-if="item.passed == 1" class="green">符合</span>
                <span v-else class="orange">不符合</span>
              </div>
            </div>
          </span>
          <table class="table">
            <tr>
              <th>审查要点</th>
              <th>审查细则</th>
              <th>现有控制</th>
              <th>不符合描述</th>
              <th class="investigate-result">审查结果</th>
              <th>记录</th>
              <th class="written-by">填写人</th>
            </tr>
            <template v-for="(keyPoint, keyPointKey) in item.keyPointList">
              <tr :key="keyPointKey">
                <td :rowspan="keyPoint.reviewDetailsList.length + 1">
                  {{ keyPoint.text }}
                </td>
              </tr>
              <template
                v-for="(
                  reviewDetail, reviewDetailKey
                ) in keyPoint.reviewDetailsList"
              >
                <tr :key="reviewDetailKey">
                  <td align="center">{{ reviewDetail.text }}</td>
                  <td align="center">
                    {{
                      reviewDetail.result
                        ? reviewDetail.result.successRemark
                        : ''
                    }}
                  </td>
                  <td align="center">
                    {{
                      reviewDetail.result ? reviewDetail.result.failRemark : ''
                    }}
                  </td>
                  <td align="center" class="investigate-result">
                    <div v-if="reviewDetail.result">
                      <el-tag
                        v-if="reviewDetail.result.passed === 1"
                        size="medium"
                        type="success"
                        >符合</el-tag
                      >
                      <el-tag
                        v-if="reviewDetail.result.passed === 0"
                        size="medium"
                        type="warning"
                        >不符合</el-tag
                      >
                    </div>
                    <div v-else>__</div>
                  </td>
                  <td align="center">
                    <div v-if="reviewDetail.result">
                      <div v-if="reviewDetail.result.fileList.length">
                        <template v-for="i in reviewDetail.result.fileList">
                          {{ i.fileName ? ` 文件:《${i.fileName}》` : '' }}
                          {{ i.catalogue }}
                        </template>
                      </div>
                      <div v-if="reviewDetail.result.comment">
                        备注: {{ reviewDetail.result.comment }}
                      </div>
                    </div>
                    <div v-else>__</div>
                  </td>
                  <td align="center" class="written-by">
                    <column-data
                      :text="
                        reviewDetail.result
                          ? reviewDetail.result.userName
                            ? reviewDetail.result.userName
                            : '__'
                          : '__'
                      "
                    />
                  </td>
                </tr>
              </template>
            </template>
          </table>
        </collapse-item>
      </collapse>
    </div>
    <span slot="footer" class="dialog-footer">
      <el-button type="primary" @click="handleClose()"> 关 闭 </el-button>
    </span>
  </el-dialog>
</template>
<script>
import collapse from '@/components/Collapse/collapse'
import collapseItem from '@/components/Collapse/collapse-item'
export default {
  components: {
    collapse: collapse,
    'collapse-item': collapseItem
  },
  props: {
    dialogManger: {
      type: Object,
      default() {
        return {
          dialogVisible: false,
          model: {
            systemReviewTask: {
              standard: []
            }
          }
        }
      }
    }
  },
  data() {
    return {
      activeNames: []
    }
  },
  watch: {
    'dialogManger.dialogVisible': {
      handler(newValue, oldValue) {
        if (newValue) {
          this.openAll()
        }
      }
    }
  },
  methods: {
    // 关闭预览
    handleClose() {
      this.dialogManger.dialogVisible = false
    },
    openAll() {
      this.activeNames = this.dialogManger.model.systemReviewTask.standard.map(
        (i, key) => {
          return i.chapter + key
        }
      )
    },
    closeAll() {
      this.activeNames = []
    }
  }
}
</script>