shj
2022-03-31 381d806f7a04ed66ceb8dcb848c2b17de4202554
src/views/safetyproduction/new.vue
@@ -5,18 +5,24 @@
        <Titlename title="检查项树"></Titlename>
        <div class="box-left-content">
          <el-tree
            ref="tree"
            :data="tree"
            node-key="id"
            node-key="value"
            @check="treeClick"
            :expand-on-click-node="false"
            :default-checked-keys="treeList"
            show-checkbox
          ></el-tree>
        </div>
      </div>
      <div class="box-right" v-if="list == '' ? false : true">
        <el-button type="primary" @click="open()" class="btns">添加</el-button>
        <div class="btns">
        <el-button type="primary" class="btn" @click="open(0)">添加</el-button>
         <el-button type="primary" class="btn" @click="open(-1)">暂存</el-button>
         </div>
        <div v-for="(item, i) in lists" :key="i">
        <div class="title">
          A级要素:<span>{{ item.nameA }}</span>
          A级要素:<span>{{ item.elementAName }}</span>
        </div>
        <div v-for="(item, index) in item.child" :key="index">
          <el-row class="titles">
@@ -29,7 +35,7 @@
          </el-row>
          <el-row>
            <el-col :span="22" :offset="1">
              <el-table border :data="item.child">
              <el-table ref="table" border :data="item.child">
                <el-table-column
                  prop="standardizationRequirements"
                  align="center"
@@ -55,10 +61,11 @@
                  <el-table-column
                    align="center"
                    width="80px"
                    type="expand"
                    label="扣分项"
                    type="expand"
                  >
                    <el-table :data="item.child.deductionList">
                  <template slot-scope="scope">
                    <el-table :data="scope.row.deductionList">
                      <el-table-column
                        prop="name"
                        align="center"
@@ -74,6 +81,7 @@
                      >
                      </el-table-column>
                    </el-table>
                     </template>
                  </el-table-column>
                </el-table-column>
                <el-table-column align="center" label="操作" width="200px">
@@ -106,7 +114,7 @@
    <el-input v-model="form.inspectionName"></el-input>
  </el-form-item>
   <el-form-item label="检查人名称">
    <el-select v-model="form.inspector" placeholder="请选择">
    <el-select v-model="form.inspector" style="width:100%" placeholder="请选择">
    <el-option
      v-for="item in nameList"
      :key="item.id"
@@ -117,7 +125,7 @@
  </el-form-item>
   <el-form-item label="时间">
    <el-col :span="11">
      <el-date-picker type="date"  format="yyyy 年 MM 月 dd 日" placeholder="开始时间" v-model="form.inspectionTime" style="width: 100%;"></el-date-picker>
      <el-date-picker  type="date"  format="yyyy 年 MM 月 dd 日" placeholder="开始时间" v-model="form.inspectionTime" style="width: 100%;"></el-date-picker>
    </el-col>
    <!-- <el-col style="text-align:center" :span="2">-</el-col>
    <el-col :span="11">
@@ -125,9 +133,9 @@
    </el-col> -->
  </el-form-item>
    </el-form>
  <span slot="footer" class="dialog-footer">
  <span slot="footer" style="text-align:center;display:block;" class="dialog-footer">
     <el-button type="primary" class="btn" @click="addC">确 定</el-button>
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="addC">确 定</el-button>
  </span>
</el-dialog>
  </div>
@@ -139,6 +147,8 @@
  safetyInspectionItemTreeB,
  safetySelfInspectionAdd,
  safetyInspectionItemName,
  safetySelfInspectionInfo,
  safetySelfInspectionMod,
} from "@/api/safetySelfInspection.js";
export default {
  components: { Titlename },
@@ -162,18 +172,48 @@
      nameList:[],
      tree: [],
      id: "",
      nameA: "",
      arr:[]
      elementAName: "",
      arr:[],
      treeList:[],
       defaultProps: {
          children: 'children',
          label: 'label'
        },
        itemId:""
    };
  },
  created() {
    this.TreeA();
    this.id=this.$route.query.name
    this.itemId=this.$route.query.id
    this.itemInfo(this.$route.query.id)
  },
  methods: {
       itemInfo(id) {
       safetySelfInspectionInfo({id:id}).then((res) => {
        if (res.data.code == 200){
          this.form=res.data.result
          console.log(res.data.result)
          this.list = res.data.result;
          var trees=[]
          for(var i=0;i<this.list.itemList.length;i++){
            trees.push(this.list.itemList[i].elementA)
          }
          this.treeList=Array.from(new Set(trees))
        var arr = this.checkSameDataA(this.list.itemList);
        console.log('tag', arr)
        for (var i = 0; i < arr.length; i++) {
          arr[i].child = this.checkSameData(arr[i].child);
          arr[i].id={safetySelfInspectionId:arr[i].child.safetySelfInspectionId,safetyInspectionItemId:arr[i].child.safetyInspectionItemId}
        }
        this.lists = arr;
        console.log(this.lists)
        }
      });
    },
    TreeA() {
      safetyInspectionItemTreeA().then((res) => {
        if (res.data.code == 200) {
          // console.log(res.data)
          this.tree = res.data.result;
        }
      });
@@ -181,12 +221,12 @@
    TreeB(id) {
      safetyInspectionItemTreeB({ id: id }).then((res) => {
        this.list=[]
        if(this.id=="添加"){
        if (res.data.code == 200) {
           this.list = res.data.result;
           console.log(this.list)
          var capA={nameA:'',id:[],child:[]}
          var capA={elementAName:'',id:[],child:[]}
          var atte=[]
           capA.nameA = this.list[0].elementAName;
           capA.elementAName = this.list[0].elementAName;
           for(var i=0;i<this.list.length;i++){
             var capB={safetySelfInspectionId:"",safetyInspectionItemId:""}
             capB.safetyInspectionItemId=this.list[i].id
@@ -194,16 +234,53 @@
           }
           capA.id=atte
           capA.child= this.checkSameData(this.list);
           if(this.lists.findIndex(item=>item.nameA===capA.nameA)==-1){
           if(this.lists.findIndex(item=>item.elementAName===capA.elementAName)==-1){
             this.lists.push(capA)
           }else{
            var i=this.lists.findIndex(item=>item.nameA===capA.nameA)
            var i=this.lists.findIndex(item=>item.elementAName===capA.elementAName)
            this.lists.splice(i,1)
           }
        }
        console.log(this.lists)
        }else if(this.id=="编辑"){
          this.list = res.data.result;
          var capA={elementAName:'',id:[],child:[]}
          var atte=[]
           capA.elementAName = this.list[0].elementAName;
           for(var i=0;i<this.list.length;i++){
             var capB={safetySelfInspectionId:"",safetyInspectionItemId:""}
             capB.safetyInspectionItemId=this.list[i].id
             capB.safetySelfInspectionId=this.itemId
             atte.push(capB)
           }
           console.log("数据",this.lists)
           capA.id=atte
           capA.child= this.checkSameData(this.list);
           if(this.lists.findIndex(item=>item.elementAName===capA.elementAName)==-1){
             this.lists.push(capA)
           }else{
            var i=this.lists.findIndex(item=>item.elementAName===capA.elementAName)
            this.lists.splice(i,1)
           }
        }
      });
    },
       checkSameDataA(resData) {
      let dataInfo = {};
      resData.forEach((item, index) => {
        let { elementAName } = item;
        if (!dataInfo[elementAName]) {
          dataInfo[elementAName] = {
            elementAName,
            id:{},
            child: [],
          };
        }
        dataInfo[elementAName].child.push(item);
      });
      let list = Object.values(dataInfo); // list 转换成功的数据
      return list;
    },
    checkSameData(resData) {
      let dataInfo = {};
@@ -231,7 +308,9 @@
        },
      });
    },
    open(){
    open(type){
      this.dialogVisible = true
      this.form.status=type
      var arr=[]
      for(var i=0;i<this.lists.length;i++){
        this.lists[i].id
@@ -240,15 +319,15 @@
        }
      }
      this.form.itemList=arr
    this.dialogVisible = true
    safetyInspectionItemName().then(res=>{
      // console.log(res)
  if(res.data.code==200){
    if(res.data.code==200){
          this.nameList=res.data.result
        }
    })
    },
    addC(){
        if(this.id=='添加'){
      safetySelfInspectionAdd(this.form).then(res=>{
       if(res.data.code==200){
         this.dialogVisible=false
@@ -261,6 +340,17 @@
       }
      
      })
        }else if(this.id=='编辑'){
        safetySelfInspectionMod(this.form).then(res=>{
           this.dialogVisible=false
           this.$notify({
              type: "success",
              duration: 2000,
              message: "编辑成功",
              title: "成功",
            });
        })
      }
    },
    btnsQX() {
      this.show = true;
@@ -285,7 +375,7 @@
  border-radius: 5px;
}
.box-left-content {
  padding: 10px;
  padding:10px 20px;
}
.box-right {
  position: relative;
@@ -306,4 +396,11 @@
  top: 10px;
  right: 50px;
}
.box-left-content /deep/ .el-tree-node__expand-icon{
  display: none;
}
.btn {
  background-color: #034ea2;
  border: 1px solid #034ea2;
}
</style>