shj
2022-03-29 7f9b036ab4c97a7eb9bf93162431ad17450689ff
自查清单
已修改6个文件
已添加1个文件
706 ■■■■■ 文件已修改
index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/safetySelfInspection.js 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safetyproduction/checklist.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safetyproduction/checklistself.vue 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safetyproduction/new.vue 409 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safetyproduction/reviewXG.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
index.html
@@ -22,7 +22,7 @@
        #app {
            margin: 0;
            padding: 0;
            overflow: hidden;
            /* overflow: hidden; */
            height: 100%;
        }
src/api/safetySelfInspection.js
对比新文件
@@ -0,0 +1,109 @@
import {getToken} from "../utils/auth";
import request from '@/utils/request'
export function safetySelfInspectionList(data) {
    return request({
        headers:{
            'Authorization': getToken()
        },
        url: process.env.BASE_API+'/safetySelfInspection/page',
        method: 'post',
        data
    })
}
export function safetySelfInspectionInfo(data) {
    return request({
        headers:{
            'Authorization': getToken()
        },
        url: process.env.BASE_API+'/safetySelfInspection/info',
        method: 'post',
        data
    })
}
export function safetySelfInspectionItemInfo(data) {
    return request({
        headers:{
            'Authorization': getToken()
        },
        url: process.env.BASE_API+'/safetySelfInspection/itemInfo',
        method: 'post',
        data
    })
}
export function safetySelfInspectionModItemInfo(data) {
    return request({
        headers:{
            'Authorization': getToken()
        },
        url: process.env.BASE_API+'/safetySelfInspection/modItemInfo',
        method: 'post',
        data
    })
}
export function safetySelfInspectionAdd(data) {
    return request({
        headers:{
            'Authorization': getToken()
        },
        url: process.env.BASE_API+'/safetySelfInspection/add',
        method: 'post',
        data
    })
}
export function safetySelfInspectionMod(data) {
    return request({
        headers:{
            'Authorization': getToken()
        },
        url: process.env.BASE_API+'/safetySelfInspection/mod',
        method: 'post',
        data
    })
}
export function safetySelfInspectionDel(data) {
    return request({
        headers:{
            'Authorization': getToken()
        },
        url: process.env.BASE_API+'/safetySelfInspection/del',
        method: 'post',
        data
    })
}
export function safetyInspectionItemTreeA(data) {
    return request({
        headers:{
            'Authorization': getToken()
        },
        url: process.env.BASE_API+'/elementManagement/getElementTree',
        method: 'post',
        data
    })
}
export function safetyInspectionItemName(data) {
    return request({
        headers:{
            'Authorization': getToken()
        },
        url: process.env.BASE_API+'/getUserList',
        method: 'post',
        data
    })
}
export function safetyInspectionItemTreeB(data) {
    return request({
        headers:{
            'Authorization': getToken()
        },
        url: process.env.BASE_API+'/safetyInspectionItem/infoElementA',
        method: 'post',
        data
    })
}
src/router/index.js
@@ -168,12 +168,11 @@
            meta: { title: '自查清单_去评审', icon: '' }
          },
          {
            id: 2,
            parentId: 0,
            path: '/new',
            name: '自查清单_新增|修改',
            // name: '自查清单_新增|修改',
            component: () => import('@/views/safetyproduction/new'),
            meta: { title: '自查清单_新增|修改', icon: '' }
            // meta: { title: '自查清单_新增|修改', icon: '' }
            hidden: true
          },
          {
            id: 2,
src/views/safetyproduction/checklist.vue
@@ -16,7 +16,7 @@
              </el-col>
              <el-col :span="11" :offset="1" style="white-space: nowrap">
                <el-form-item size="mini">
                  <el-button type="primary" class="btns" @click="find" size="mini"
                  <el-button type="primary" class="btns"  size="mini"
                    >搜索</el-button
                  >
                  <el-button
src/views/safetyproduction/checklistself.vue
@@ -1,125 +1,151 @@
<template>
  <div class="app-container">
    <el-form ref="form" :model="form" label-width="80px">
    <el-form ref="form" :model="listQuery" label-width="80px">
      <el-row>
        <el-col :span="5">
          <el-form-item label="自查任务">
            <el-input v-model="form.name"></el-input>
            <el-input v-model="listQuery.filter.inspectionName"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="5">
          <el-form-item label="检查时间">
            <el-date-picker v-model="form.value1" type="date" placeholder="选择日期">
            <el-date-picker
              v-model="listQuery.filter.inspectionStartTime"
              type="date"
              format="yyyy 年 MM 月 dd 日"
              placeholder="选择日期"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="5">
          <el-form-item label="检查人员">
            <el-input v-model="form.name"></el-input>
            <el-input v-model="listQuery.filter.inspectorName"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="4" style="text-align: center">
          <el-button type="primary" icon="el-icon-search" class="btns"
          <el-button
            type="primary"
            icon="el-icon-search"
            class="btns"
            @click="find()"
            >搜索</el-button
          >
          <el-button
            type="primary"
            icon="el-icon-plus"
            class="btns"
            @click="dialogVisible = true"
            @click="jump()"
            >新增</el-button
          >
        </el-col>
      </el-row>
    </el-form>
    <el-table :data="tableData" border style="width: 100%">
      <el-table-column prop="date" label="自查任务">
    <el-table :data="list" border style="width: 100%">
      <el-table-column align="center" prop="inspectionName" label="自查任务">
      </el-table-column>
      <el-table-column prop="name" label="检查时间"> </el-table-column>
      <el-table-column prop="name" label="检查人员"> </el-table-column>
      <el-table-column prop="province" label="状态"> </el-table-column>
      <el-table-column prop="address" label="更新时间"> </el-table-column>
      <el-table-column align="center" prop="createTime" label="检查时间">
      </el-table-column>
      <el-table-column align="center" prop="inspectorName" label="检查人员">
      </el-table-column>
      <el-table-column align="center" label="状态">
        <template slot-scope="scope">
          <span v-if="scope.row.status == -1">暂存</span>
          <span v-if="scope.row.status == 0">评审中</span>
          <span v-if="scope.row.status == 1">已评审</span>
        </template>
      </el-table-column>
      <el-table-column align="center" prop="updateTime" label="更新时间">
      </el-table-column>
      <el-table-column align="center" label="操作">
        <template slot-scope="scope">
          <el-button @click="handleClick(scope.row)" type="text" size="small"
          <el-button v-if="scope.row.status==-1" @click="handleClick(scope.row)" type="text" size="small"
            >编辑</el-button
          >
          <el-button type="text" size="small" style="color: red"
           <el-button v-if="scope.row.status==0" @click="handleClick(scope.row)" type="text" size="small"
            >去评审</el-button
          >
           <el-button v-if="scope.row.status==1" @click="handleClick(scope.row)" type="text" size="small"
            >查看</el-button
          >
          <el-button  v-if="scope.row.status==1?false:true" type="text" size="small" style="color: red"
            >删除</el-button
          >
        </template>
      </el-table-column>
    </el-table>
    <div style="text-align: right">
      <el-pagination
        v-show="recordTotal > 0"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="currentPage"
        :page-sizes="[10, 20, 30, 50]"
        :page-size="pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="recordTotal"
      >
      </el-pagination>
    </div>
  </div>
</template>
<script>
import { safetySelfInspectionList } from "@/api/safetySelfInspection.js";
export default {
  data() {
    return {
      dialogVisible: false,
      form: {
        name: "",
        value1:"",
      form: {},
      listQuery: {
        filter: {
          inspectionName: "",
          inspectorName: "",
          inspectionStartTime: "",
          inspectionEndTime: "",
          status: "",
        },
        pageIndex: 1,
        pageSize: 5,
      },
      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,
        },
      ],
      options: [
        {
          value: "选项1",
          label: "黄金糕",
        },
        {
          value: "选项2",
          label: "双皮奶",
        },
        {
          value: "选项3",
          label: "蚵仔煎",
        },
        {
          value: "选项4",
          label: "龙须面",
        },
        {
          value: "选项5",
          label: "北京烤鸭",
        },
      ],
      value: "",
      list: [],
      pageSize: 10,
      recordTotal: 0,
      currentPage: 1,
    };
  },
  created() {
    this.safetySelfInspectionL();
  },
  methods: {
    async safetySelfInspectionL() {
      var res = await safetySelfInspectionList(this.listQuery).then((res) => {
        if (res.data.code == 200) {
          console.log(res.data);
          this.list = res.data.result.records;
          this.recordTotal = res.data.result.total;
          this.pageSize = res.data.result.size;
          this.currentPage = res.data.result.current;
        }
      });
    },
    handleClick(index) {},
    find() {
      this.safetySelfInspectionL();
    },
    handleSizeChange(val) {
      this.listQuery.pageSize = val;
      this.safetySelfInspectionL();
    },
    handleCurrentChange(val) {
      this.listQuery.pageIndex = val;
      this.safetySelfInspectionL();
    },
    jump(){
      this.$router.push({
        path:"/new"
      })
    }
  },
};
</script>
<style scoped>
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>
src/views/safetyproduction/reviewXG.vue
@@ -221,6 +221,9 @@
      },
    };
  },
  created(){
  console.log(this.$route.query.id)
  },
  methods: {
    handleClick() {
      this.dialogVisible = true;