shj
2022-03-29 7f9b036ab4c97a7eb9bf93162431ad17450689ff
src/views/safetyproduction/new.vue
@@ -4,104 +4,142 @@
      <div class="box-left">
        <Titlename title="检查项树"></Titlename>
        <div class="box-left-content">
          <!-- <el-form ref="form" :model="form" style="font-size: 12px" size="mini">
            <el-row>
              <el-col :span="12">
                <el-form-item size="mini">
                  <el-input
                    v-model="form.name"
                    placeholder="请输入检查项名称"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="11" :offset="1" style="white-space: nowrap">
                <el-form-item size="mini">
                  <el-button type="primary" class="btns" size="mini">搜索</el-button>
                  <el-button
                    type="primary"
                    style="margin: 0px"
                    class="btns"
                    icon="el-icon-plus"
                    size="mini"
                  ></el-button>
                </el-form-item>
              </el-col>
            </el-row>
          </el-form> -->
          <el-tree
            :data="data"
            :props="defaultProps"
            :data="tree"
            node-key="id"
            @check="treeClick"
            show-checkbox
          ></el-tree>
        </div>
      </div>
      <div class="box-right" v-if="show">
          <div class="title">A级要素:<span>A级要素2</span></div>
        <div v-for="(item,index) in 2" :key="index">
      <div class="box-right" v-if="list == '' ? false : true">
        <el-button type="primary" @click="open()" class="btns">添加</el-button>
        <div v-for="(item, i) in lists" :key="i">
        <div class="title">
          A级要素:<span>{{ item.nameA }}</span>
        </div>
        <div v-for="(item, index) in item.child" :key="index">
          <el-row class="titles">
            <el-col :span="6" :offset="1"><p><span>B级要素:</span>法律、法规和标准的识别和获取</p></el-col>
             <el-col :span="6"  :offset="4"><p><span>得分:</span>50</p></el-col>
            <el-col :span="6" :offset="1"
              ><p><span>B级要素:</span>{{ item.elementBName }}</p></el-col
            >
            <el-col :span="6" :offset="4"
              ><p><span>得分:</span>50</p></el-col
            >
          </el-row>
          <el-row>
             <el-col :span="22" :offset="1">
                  <el-table
                    border
                    :data="tableData"
            <el-col :span="22" :offset="1">
              <el-table border :data="item.child">
                <el-table-column
                  prop="standardizationRequirements"
                  align="center"
                  label="标准化要求"
                >
                </el-table-column>
                <el-table-column
                  prop="enterpriseStandard"
                  align="center"
                  label="企业达标标准"
                ></el-table-column>
                <el-table-column
                  prop="reviewMethod"
                  align="center"
                  label="评审方法"
                ></el-table-column>
                <el-table-column prop="name" align="center" label="评审标准">
                  <el-table-column
                    prop="veto"
                    align="center"
                    label="否决项"
                  ></el-table-column>
                  <el-table-column
                    align="center"
                    width="80px"
                    type="expand"
                    label="扣分项"
                  >
                    <el-table-column
                      prop="date"
                      align="center"
                      label="标准化要求"
                    >
                    </el-table-column>
                    <el-table-column
                      prop="name"
                      align="center"
                      label="企业达标标准"
                    ></el-table-column>
                    <el-table-column
                      prop="name"
                      align="center"
                      label="评审方法"
                    ></el-table-column>
                    <el-table :data="item.child.deductionList">
                      <el-table-column
                      prop="name"
                      align="center"
                      label="评审标准"
                        prop="name"
                        align="center"
                        label="扣分项"
                      >
                      </el-table-column>
                      <el-table-column prop="date" align="center" label="扣分">
                      </el-table-column>
                      <el-table-column
                        prop="date"
                        align="center"
                        label="扣分备注"
                      >
                      </el-table-column>
                    </el-table>
                  </el-table-column>
                </el-table-column>
                <el-table-column align="center" label="操作" width="200px">
                  <template slot-scope="scope">
                    <el-button
                      @click="handleClick(scope.row)"
                      type="text"
                      size="small"
                      >修改</el-button
                    >
                     <el-table-column
                      prop="name"
                      align="center"
                      label="否决项"
                    ></el-table-column>
                     <el-table-column
                      prop="name"
                      align="center"
                      label="扣分项"
                    ></el-table-column>
                    </el-table-column>
                    <el-table-column align="center" label="操作" width="200px">
                      <template slot-scope="scope">
                        <el-button
                          @click="handleClick(scope.row)"
                          type="text"
                          size="small"
                          >修改</el-button
                        >
                        <!-- <el-button type="text" size="small" style="color: red"
                    <!-- <el-button type="text" size="small" style="color: red"
                          >删除</el-button
                        > -->
                      </template>
                    </el-table-column>
                  </el-table>
                </el-col>
              </el-row>
                  </template>
                </el-table-column>
              </el-table>
            </el-col>
          </el-row>
        </div>
        </div>
      </div>
    </div>
    <el-dialog
  title="添加"
  :visible.sync="dialogVisible"
  width="30%"
>
  <el-form ref="form" :model="form" label-width="100px">
     <el-form-item label="自查清单名称">
    <el-input v-model="form.inspectionName"></el-input>
  </el-form-item>
   <el-form-item label="检查人名称">
    <el-select v-model="form.inspector" placeholder="请选择">
    <el-option
      v-for="item in nameList"
      :key="item.id"
      :label="item.realname"
      :value="item.id">
    </el-option>
  </el-select>
  </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-col>
    <!-- <el-col style="text-align:center" :span="2">-</el-col>
    <el-col :span="11">
      <el-date-picker type="date"  format="yyyy 年 MM 月 dd 日" placeholder="结束时间" v-model="form.inspectionEndTime" style="width: 100%;"></el-date-picker>
    </el-col> -->
  </el-form-item>
    </el-form>
  <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="addC">确 定</el-button>
  </span>
</el-dialog>
  </div>
</template>
<script>
import Titlename from "../../components/Titlename/index.vue";
import {
  safetyInspectionItemTreeA,
  safetyInspectionItemTreeB,
  safetySelfInspectionAdd,
  safetyInspectionItemName,
} from "@/api/safetySelfInspection.js";
export default {
  components: { Titlename },
  data() {
@@ -109,110 +147,121 @@
      dialogVisible: false,
      show: true,
      form: {
        name: "",
      inspectionName:"",
      inspector:"",
      inspectionTime:"",
      status:"",
      itemList:[]
      },
      formInline: {
        user: "",
        region: "",
      },
      tableData: [
        {
          date: "2016-05-02",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1518 弄",
          zip: 200333,
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1517 弄",
          zip: 200333,
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1519 弄",
          zip: 200333,
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1516 弄",
          zip: 200333,
        },
      ],
      data: [
        {
          label: "一级 1",
          children: [
            {
              label: "二级 1-1",
              children: [
                {
                  label: "三级 1-1-1",
                },
              ],
            },
          ],
        },
        {
          label: "一级 2",
          children: [
            {
              label: "二级 2-1",
              children: [
                {
                  label: "三级 2-1-1",
                },
              ],
            },
            {
              label: "二级 2-2",
              children: [
                {
                  label: "三级 2-2-1",
                },
              ],
            },
          ],
        },
        {
          label: "一级 3",
          children: [
            {
              label: "二级 3-1",
              children: [
                {
                  label: "三级 3-1-1",
                },
              ],
            },
            {
              label: "二级 3-2",
              children: [
                {
                  label: "三级 3-2-1",
                },
              ],
            },
          ],
        },
      ],
      defaultProps: {
        children: "children",
        label: "label",
      },
      list: [],
      lists:[],
      nameList:[],
      tree: [],
      id: "",
      nameA: "",
      arr:[]
    };
  },
  created() {
    this.TreeA();
  },
  methods: {
    TreeA() {
      safetyInspectionItemTreeA().then((res) => {
        if (res.data.code == 200) {
          // console.log(res.data)
          this.tree = res.data.result;
        }
      });
    },
    TreeB(id) {
      safetyInspectionItemTreeB({ id: id }).then((res) => {
        this.list=[]
        if (res.data.code == 200) {
           this.list = res.data.result;
           console.log(this.list)
          var capA={nameA:'',id:[],child:[]}
          var atte=[]
           capA.nameA = this.list[0].elementAName;
           for(var i=0;i<this.list.length;i++){
             var capB={safetySelfInspectionId:"",safetyInspectionItemId:""}
             capB.safetyInspectionItemId=this.list[i].id
             atte.push(capB)
           }
           capA.id=atte
           capA.child= this.checkSameData(this.list);
           if(this.lists.findIndex(item=>item.nameA===capA.nameA)==-1){
             this.lists.push(capA)
           }else{
            var i=this.lists.findIndex(item=>item.nameA===capA.nameA)
            this.lists.splice(i,1)
           }
        }
        console.log(this.lists)
      });
    },
    checkSameData(resData) {
      let dataInfo = {};
      resData.forEach((item, index) => {
        let { elementBName } = item;
        if (!dataInfo[elementBName]) {
          dataInfo[elementBName] = {
            elementBName,
            child: [],
          };
        }
        dataInfo[elementBName].child.push(item);
      });
      let list = Object.values(dataInfo); // list 转换成功的数据
      return list;
    },
    treeClick(currentObj) {
      this.TreeB(currentObj.value);
    },
    handleClick(data) {
      this.$router.push({
        path: "/reviewXG",
        query: {
          id: data,
        },
      });
    },
    open(){
      var arr=[]
      for(var i=0;i<this.lists.length;i++){
        this.lists[i].id
        for(var j=0;j<this.lists[i].id.length;j++){
          arr.push(this.lists[i].id[j])
        }
      }
      this.form.itemList=arr
    this.dialogVisible = true
    safetyInspectionItemName().then(res=>{
      // console.log(res)
  if(res.data.code==200){
          this.nameList=res.data.result
        }
    })
    },
    addC(){
      safetySelfInspectionAdd(this.form).then(res=>{
       if(res.data.code==200){
         this.dialogVisible=false
           this.$notify({
              type: "success",
              duration: 2000,
              message: "新增成功",
              title: "成功",
            });
       }
      })
    },
    btnsQX() {
      this.show = true;
    },
@@ -239,16 +288,22 @@
  padding: 10px;
}
.box-right {
  position: relative;
  width: 79%;
  background-color: white;
  border-radius: 5px;
}
.title{
.title {
  font-size: 16px;
  padding: 10px 20px;
  font-weight: bold;
}
.titles{
.titles {
  font-size: 14px;
}
.btns{
  position: absolute;
  top: 10px;
  right: 50px;
}
</style>