<template>
  <div id="">
    <a-form :model="problemForm" :label-col="{span: 6}" :wrapper-col="{span: 18}" :rules="rules" ref="problemForm">
      <a-form-item label="问题类别" style="text-align:left">
        <a-select v-model:value="t1" placeholder="请选择" @change="problemListChange">
          <a-select-option v-for="(item, index) in problemList" :key="index" :value="item.inspPblmsName">{{
            item.inspPblmsName }}</a-select-option>
        </a-select>
      </a-form-item>
      <a-form-item label="检查项目" style="text-align:left">
        <a-select v-model:value="t2" placeholder="请选择" @change="currentCheckPointListChange">
          <a-select-option v-for="(item, index) in currentCheckPointList" :key="index" :value="item.checkPointName">{{
            item.checkPointName
          }}</a-select-option>
        </a-select>
      </a-form-item>
      <a-form-item label="问题描述" style="text-align:left">
        <a-select v-model:value="t3" placeholder="请选择" @change="currentProblemDescListChange" style="max-width: 500px">
          <a-select-option v-for="(item, index) in currentProblemDescList" :key="index" :value="item.pblmDesc" style="max-width: 500px">{{
            item.pblmDesc
          }}</a-select-option>
        </a-select>
      </a-form-item>
      <a-form-item label="详情" style="text-align:left">
        <a-textarea v-model:value="xiangqingmiaoshu" :rows="2" placeholder="" />
      </a-form-item>
      <a-form-item label="严重程度" style="text-align:left" prop="inspPblmCate">
        <p v-if="inspPblmCate == 0">一般</p>
        <p v-if="inspPblmCate == 1">较重</p>
        <p v-if="inspPblmCate == 2">严重</p>
        <p v-if="inspPblmCate == 3">特别严重</p>
      </a-form-item>
      <a-form-item label="典型问题" style="text-align:left">
        <a-radio-group v-model:value="problemForm.ifCasePblm">
          <a-radio value="1">是</a-radio>
          <a-radio value="0">否</a-radio>
        </a-radio-group>
      </a-form-item>
      <a-form-item label="责任单位名称">
        <a-input v-model:value="problemForm.inspPblmOrgName" placeholder="请输入内容" required />
      </a-form-item>
      <a-form-item label="详细描述">
        <a-textarea v-model:value="problemForm.inspPblmDesc" :rows="2" placeholder="请输入内容" required />
      </a-form-item>
      <a-form-item label="备注">
        <a-textarea v-model:value="problemForm.note" :rows="2" placeholder="请输入内容" />
      </a-form-item>
      <a-form-item label="上传照片">
        <upload ref="uploadFile" :url="`/pdcApi/file/insert?bizId=`" @uploadOver="removeNewSupervision"></upload>
      </a-form-item>
      <a-form-item :wrapper-col="{ span: 18, offset: 6 }" style="margin-top: 50px">
        <a-button type="primary" @click="onSubmit('problemForm')" style="width: 100px;float:right">保存</a-button>
      </a-form-item>
    </a-form>
  </div>
</template>

<script>
import { submitUpload } from '../../../api/duChaAPI.js';
import request from '../../../utils/gw_ajax_request.js';
import upload from '../../../widgets/uploadFile.vue';

export default {
  props: [
    'objId',
    'objName',
    'villType',
    'objType',
    'problemMiddleType',
    'problemSmallType',
    'engId',
    'currentObjectRgstrId',
  ],
  data() {
    return {
      problemForm: {
        t1: '',
        t2: '',
        t3: '',
        villType: '',
        objId: '',
        regid: '',
        objType: '',
        // inspPblmName: "",
        inspPblmCate: '',
        inspPblmDesc: '',
        ifCasePblm: '0',
        inspPblmOrgName: '',
        pblmStat: '',
        dataStat: '',
        nm: '',
        recPers: '',
        note: '',
        gwComFiles: [
          {
            id: '',
            filePath: '',
            bizId: '',
          },
        ],
      },
      inspPblmCate: '',
      inspPlamCatelist: ['一般', '较重', '严重'],
      imgList: [],
      videoList: [],
      audioList: [],
      pblmStat: '',
      gwComFiles: [],
      problemList: [],
      currentCheckPointList: [],
      currentProblemDescList: [],
      t1: '',
      t2: '',
      t3: '',
      xiangqingmiaoshu: '',
      wenTiLeiBie: '',
      jianChaXiangMu: '',
      rules: {
        inspPblmDesc: [
          {
            required: true,
            message: '请输入描述',
            trigger: 'blur',
          },
        ],
      },
    };
  },
  components: {
    upload,
  },
  computed: {
    recPers() {
      return localStorage.getItem('persId')
        ? localStorage.getItem('persId')
        : '';
    },
  },
  created() {
    this.getproblemSmallType();
  },
  methods: {
    problemMiddleTypeChange() {
      this.middleTypeList.forEach((ele) => {
        // if(ele.)
      });
    },
    getproblemSmallType() {
      const result = [];
      request
        .get('/dc/insp/pblms/getPblmType', {
          params: {
            type: this.objType,
          },
        })
        .then((res) => {
          if (res.success) {
            res.data.forEach((ele) => {
              let haveinspPblmsName = false;
              result.forEach((inspPblm) => {
                if (inspPblm['inspPblmsName'] == ele.inspPblmsName) {
                  //
                  let havechekPoint = false;
                  inspPblm['checkPoints'].forEach((chekPoint) => {
                    if (chekPoint['checkPointName'] == ele.checkPoint) {
                      //
                      chekPoint['pblmDescs'].push({
                        pblmDesc: ele.pblmDesc,
                        sn: ele.sn,
                        guid: ele.guid,
                      });
                      havechekPoint = true;
                    }
                  });
                  if (!havechekPoint) {
                    const newCheckPoint = {};
                    newCheckPoint['checkPointName'] = ele.checkPoint;
                    newCheckPoint['sort2'] = ele.sort2;
                    newCheckPoint['pblmDescs'] = [
                      {
                        pblmDesc: ele.pblmDesc,
                        sn: ele.sn,
                        guid: ele.guid,
                      },
                    ];
                    inspPblm['checkPoints'].push(newCheckPoint);
                  }
                  haveinspPblmsName = true;
                }
              });
              if (!haveinspPblmsName) {
                const haveinspPblmsObj = {};
                haveinspPblmsObj['inspPblmsName'] = ele.inspPblmsName;
                haveinspPblmsObj['sort1'] = ele.sort1;
                haveinspPblmsObj['checkPoints'] = [
                  {
                    checkPointName: ele.checkPoint,
                    sort2: ele.sort2,
                    pblmDescs: [
                      {
                        pblmDesc: ele.pblmDesc,
                        sn: ele.sn,
                        guid: ele.guid,
                      },
                    ],
                  },
                ];
                result.push(haveinspPblmsObj);
              }
            });

            this.problemList = result;
            console.log(this.problemList);
          }
        });
    },
    getproblemMiddleType() {
      this.middleTypeList = [];
      request
        .get('/dc/insp/pblms/getPblmType', {
          params: {
            type: 1,
          },
        })
        .then((res) => {
          if (res.success) {
            console.log(res.data);
            res.data.forEach((ele) => {
              this.middleTypeList.push(ele);
            });
          }
        });
    },
    getYanZhongChengDu() {
      request
        .post('/dc/insp/pblms/getByPblms', {
          inspPblmsName: this.wenTiLeiBie,
          checkPoint: this.jianChaXiangMu,
          pblmDesc: this.xiangqingmiaoshu,
          type: 17,
        })
        .then((res) => {
          if (res.success) {
            console.log('验证' + res);
            this.inspPblmCate = res.data.inspPblmCate;
          }
        });
    },
    onSubmit(problemForm) {
      this.$refs[problemForm].validate((valid) => {
        if (valid) {
          this.problemForm.villType = '0';
          this.problemForm.recPers = this.recPers;
          this.problemForm.objId = this.objId;
          this.problemForm.regid = this.currentObjectRgstrId;
          this.problemForm.nm = this.objName;
          this.problemForm.objType = this.objType;
          this.problemForm.pblmStat = '0';

          this.problemForm['inspPblmName'] = this.t1.inspPblmsName;
          this.problemForm['inspPlbmType'] = this.t2.sort2;
          // this.problemForm['inspPblmName'] = this.t3.pblmDesc;
          this.problemForm['inspPblmCode'] = this.t3.sn;
          this.problemForm['pblmsTypeId'] = this.t3.guid;
          if (!this.problemForm.inspPblmName) {
            this.$message.info('请选择问题类别');
            return;
          }
          if (!this.problemForm.inspPlbmType) {
            this.$message.info('请选择单位性质');
            return;
          }
          if (!this.problemForm.inspPblmName) {
            this.$message.info('请选择发现问题');
            return;
          }
          request.post('/dc/insp/pblm', this.problemForm).then((res) => {
            if (res.success) {
              this.pblmId = res.data.pblmId;
              this.gwComFiles = [];
              this.pblmStat = res.data.pblmStat;
              if (this.$refs.uploadFile.submitUpload(res.data.pblmId)) {
                this.removeNewSupervision();
              }
            }
          });
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    },
    // 文件上传
    submitUpload() {
      this.$refs.upload.submit();
    },
    updatefilelist(arg) {
      request
        .post('/dc/insp/pblm/update', {
          pblmId: this.pblmId,
          gwComFiles: arg,
          pblmStat: this.pblmStat,
        })
        .then((res) => {
          this.removeNewSupervision();
        });
    },
    removeNewSupervision(arg) {
      if (arg) {
        console.log(arg);
        var args = this.gwComFiles.concat(arg);
        this.updatefilelist(args);
      }
      this.$message.success('保存成功');
      this.$emit('closeDialog');
      this.gwComFiles = [];
      this.$refs.uploadFile.init();
    },
    problemListChange: function (item) {
      this.currentCheckPointList = item.checkPoints;
    },
    currentCheckPointListChange: function (item) {
      this.currentProblemDescList = item.pblmDescs;
    },
    currentProblemDescListChange: (item) => {
      console.log(item);
    },
  },
  watch: {
    t1: {
      handler: function (val, oldVal) {
        // console.log("详情"+val.pblmDesc)
        this.wenTiLeiBie = val.inspPblmsName;
        this.getYanZhongChengDu();
      },
      deep: true,
    },
    t2: {
      handler: function (val, oldVal) {
        this.jianChaXiangMu = val.checkPointName;
        this.getYanZhongChengDu();
      },
      deep: true,
    },
    t3: {
      handler: function (val, oldVal) {
        this.xiangqingmiaoshu = val.pblmDesc;
        this.problemForm.inspPblmDesc = val.pblmDesc;
        this.getYanZhongChengDu();
      },
      deep: true,
    },
  },
};
</script>

<style lang='less' scoped>

</style>
