From 28120b744a5f70dc35b538d68fba9487e46a0d60 Mon Sep 17 00:00:00 2001 From: shj <1790240199@qq.com> Date: 星期五, 25 三月 2022 17:33:40 +0800 Subject: [PATCH] 检查清单 --- src/views/safetyproduction/checklist.vue | 707 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 447 insertions(+), 260 deletions(-) diff --git a/src/views/safetyproduction/checklist.vue b/src/views/safetyproduction/checklist.vue index 0697acc..58f8c18 100644 --- a/src/views/safetyproduction/checklist.vue +++ b/src/views/safetyproduction/checklist.vue @@ -9,295 +9,482 @@ <el-col :span="12"> <el-form-item size="mini"> <el-input - v-model="form.name" + v-model="filterText" 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" class="btns" @click="find" size="mini" + >搜索</el-button + > <el-button type="primary" style="margin: 0px" class="btns" icon="el-icon-plus" size="mini" + @click="safetyInspectionItemC('', '新增')" ></el-button> </el-form-item> </el-col> </el-row> </el-form> <el-tree - :data="data" + :data="tree" :props="defaultProps" + @node-click="safetyInspectionItemL" + default-expand-all + :filter-node-method="filterNode" + ref="tree" ></el-tree> </div> </div> <div class="box-right" v-if="show"> - <div class="box-rightXQ" v-for="(item,index) in 6" :key="index"> - <el-row class="box-rightXQ-top"> - <el-col :span="2"> - <p class="titles">标准化要求:</p> - </el-col> - <el-col :span="20"> - <p class="titles-type">1.企业应建立识别和获取适用的安全生产法律、法规、标准及其他要求的管理制度,明确责任部门, - 确定获取渠道、方式和时机,及时识别和获取,定期更新。</p> - </el-col> - <el-col :span="2"><p class="btnXG" @click="show=false">修改</p></el-col> - </el-row> - <el-row> - <el-col :span="2"><p class="title">企业达标标准:</p></el-col> - <el-col :span="9"><p class="title-type">1.企业应建立识别和获取适用的安全生产法律、法规、标准及其他要求的管理制度,明确责任部门, - 确定获取渠道、方式和时机,及时识别和获取,定期更新。</p></el-col> - <el-col :span="2" :offset="1"><p class="title">评审方法:</p></el-col> - <el-col :span="10"><p>1.识别和获取适用的安全生产法律、法规、标准及政府其他要求的制度; - 2.适用的法律法规、.......</p></el-col> - </el-row> - </div> + <div class="box-rightXQ" v-for="(item, index) in list" :key="index"> + <el-row class="box-rightXQ-top"> + <el-col :span="2"> + <p class="titles">标准化要求:</p> + </el-col> + <el-col :span="18"> + <p class="titles-type"> + {{ item.standardizationRequirements }} + </p> + </el-col> + <el-col :span="2" + ><p class="btnXG" @click="safetyInspectionItemC(item.id, '修改')"> + 修改 + </p></el-col + > + <el-col :span="2" + ><p class="btnXG" @click="safetyInspectionItemDel(item.id)"> + 删除 + </p></el-col + > + </el-row> + <el-row> + <el-col :span="2"><p class="title">企业达标标准:</p></el-col> + <el-col :span="9" + ><p class="title-type"> + {{ item.enterpriseStandard }} + </p></el-col + > + <el-col :span="2" :offset="1" + ><p class="title">评审方法:</p></el-col + > + <el-col :span="10" + ><p class="title-type"> + {{ item.reviewMethod }} + </p></el-col + > + </el-row> + </div> </div> <!-- 修改 --> - <div class="box-rights" v-if="show==false?true:false"> + <div class="box-rights" v-if="show == false ? true : false"> <Titlename title="基础信息"></Titlename> <el-form ref="form" :model="form" label-width="120px"> - <div style="width:80%;margin:auto"> - <el-row class="box-right-content" align="top"> - <el-col :span="11" > - <el-form-item label="A级要素"> - <el-select - v-model="formInline.region" - :disabled="true" - style="width: 100%" - > - <el-option label="区域一" value="shanghai"></el-option> - <el-option label="区域二" value="beijing"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2" style="white-space: nowrap"> - <el-form-item label="B级要素"> - <el-select - v-model="formInline.region" - :disabled="true" - style="width: 100%" - > - <el-option label="区域一" value="shanghai"></el-option> - <el-option label="区域二" value="beijing"></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="标准化要求"> - <el-input - :rows="3" - type="textarea" - v-model="form.name" - placeholder="" - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="企业达标标准"> - <el-input - type="textarea" - :rows="3" - v-model="form.name" - placeholder="" - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="评审方法"> - <el-input - type="textarea" - :rows="3" - v-model="form.name" - placeholder="" - ></el-input> - </el-form-item> - </el-col> - </el-row> + <div style="width: 80%; margin: auto"> + <el-row class="box-right-content" align="top"> + <el-col :span="11"> + <el-form-item label="A级要素"> + <el-select + v-model="form.elementA" + :disabled="disabled" + style="width: 100%" + @change="select" + > + <el-option + v-for="item in tree" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2" style="white-space: nowrap"> + <el-form-item label="B级要素"> + <el-select + v-if="title == '新增'" + v-model="form.elementB" + :disabled="disabled" + style="width: 100%" + > + <el-option + v-for="item in treeChildren" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + <el-select + v-if="title == '修改'" + v-model="form.elementBName" + :disabled="disabled" + style="width: 100%" + > + <el-option + v-for="item in treeChildren" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="标准化要求"> + <el-input + :rows="3" + type="textarea" + v-model="form.standardizationRequirements" + placeholder="" + maxlength="250" + show-word-limit + ></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="企业达标标准"> + <el-input + type="textarea" + :rows="3" + v-model="form.enterpriseStandard" + placeholder="" + maxlength="250" + show-word-limit + ></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="评审方法"> + <el-input + type="textarea" + :rows="3" + v-model="form.reviewMethod" + placeholder="" + maxlength="250" + show-word-limit + ></el-input> + </el-form-item> + </el-col> + </el-row> </div> <Titlename title="评选标准"></Titlename> - <div style="width:80%;margin:auto"> - <el-row> - <el-col :span="24"> - <el-form-item label="否决项"> - <el-input - type="textarea" - :rows="3" - v-model="form.name" - placeholder="" - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row style="padding: 15px 0"> - <el-col :span="12"> - <span - style="font-size: 16px; font-weight: bold; line-height: 29px" - >扣分清单</span - > - </el-col> - <el-col :span="12" style="text-align: right"> - <el-button type="primary" @click="dialogVisible=true" class="btns" size="mini" icon="el-icon-plus" - >新增</el-button - > - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-table border> - <el-table-column - prop="date" - align="center" - label="序号" - width="150" + <div style="width: 80%; margin: auto"> + <el-row> + <el-col :span="24"> + <el-form-item label="否决项"> + <el-input + type="textarea" + :rows="3" + v-model="form.veto" + placeholder="" + maxlength="250" + show-word-limit + ></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row style="padding: 15px 0"> + <el-col :span="12"> + <span + style="font-size: 16px; font-weight: bold; line-height: 29px" + >扣分清单</span > - </el-table-column> - <el-table-column - prop="name" - align="center" - label="名称" - ></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 - > - </template> - </el-table-column> - </el-table> - </el-col> - </el-row> - <el-row> - <el-col :span="24" style="padding:20px 0;text-align:center"> - <el-button type="primary" class="btns">提交</el-button> - <el-button @click="btnsQX">取消</el-button> - </el-col> - </el-row> + </el-col> + <el-col :span="12" style="text-align: right"> + <el-button + type="primary" + @click="coAdd('', '新增')" + class="btns" + size="mini" + icon="el-icon-plus" + >新增</el-button + > + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-table border :data="form.deductionList"> + <el-table-column + type="index" + align="center" + label="序号" + width="150" + > + </el-table-column> + <el-table-column + prop="name" + align="center" + label="名称" + ></el-table-column> + <el-table-column align="center" label="操作" width="200px"> + <template slot-scope="scope"> + <el-button + @click="coAdd(scope.row, '编辑')" + type="text" + size="small" + >编辑</el-button + > + <el-button + type="text" + size="small" + style="color: red" + @click="listDel(scope.row)" + >删除</el-button + > + </template> + </el-table-column> + </el-table> + </el-col> + </el-row> + <el-row> + <el-col :span="24" style="padding: 20px 0; text-align: center"> + <el-button + type="primary" + @click="safetyInspectionItemA" + class="btns" + >提交</el-button + > + <el-button @click="btnsQX">取消</el-button> + </el-col> + </el-row> </div> </el-form> </div> - </div> - + </div> -<el-dialog - title="新增扣分项" - :visible.sync="dialogVisible" - width="30%" -> - <el-form ref="form" :model="form" label-width="80px"> - <el-form-item label="名称"> - <el-input v-model="form.name"></el-input> - </el-form-item> - <el-form-item label="说明"> - <el-input v-model="form.name" :rows="5" type="textarea"></el-input> - </el-form-item> - </el-form> - <span slot="footer" class="dialog-footer"> - <el-button @click="dialogVisible = false">取 消</el-button> - <el-button type="primary" class="btns" @click="dialogVisible = false">确 定</el-button> - </span> -</el-dialog> - + <el-dialog :title="titleN" :visible.sync="dialogVisible" width="30%"> + <el-form ref="form" :model="formInline" label-width="80px"> + <el-form-item label="名称"> + <el-input v-model="formInline.name"></el-input> + </el-form-item> + <el-form-item label="说明"> + <el-input + v-model="formInline.remark" + :rows="5" + type="textarea" + ></el-input> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="dialogVisible = false">取 消</el-button> + <el-button type="primary" class="btns" @click="listAdd" + >确 定</el-button + > + </span> + </el-dialog> </div> </template> <script> -import Titlename from "../../components/Titlename/index.vue" +import Titlename from "../../components/Titlename/index.vue"; +import { + safetyInspectionItemList, + safetyInspectionItemAdd, + safetyInspectionItemMod, + safetyInspectionItemDel, + safetyInspectionItemTree, +} from "@/api/safetyInspectionItem.js"; export default { components: { Titlename }, data() { return { - dialogVisible:false, - show:true, + filterText: "", + dialogVisible: false, + show: true, + disabled: true, + title: "", + titleN: "", + index: "", form: { - name: "", + elementA: "", + elementB: "", + standardizationRequirements: "", + enterpriseStandard: "", + reviewMethod: "", + veto: "", + deductionList: [], }, formInline: { - user: "", - region: "", + name: "", + remark: "", }, - data: [ - { - label: "一级 1", - children: [ - { - label: "二级 1-1", - children: [ - { - label: "三级 1-1-1", - }, - ], - }, - ], + listQuery: { + filter: { + elementB: "", }, - { - 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", - }, - ], - }, - ], - }, - ], + + pageIndex: 1, + pageSize: 10, + }, + tree: [], + list: [], + treeChildren: [], defaultProps: { children: "children", label: "label", }, }; }, - methods:{ - btnsQX(){ - this.show=true - } - } + created() { + this.beforTree(); + }, + watch: { + filterText(val) { + this.$refs.tree.filter(val); + }, + }, + methods: { + filterNode(value, data){ + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + beforTree() { + safetyInspectionItemTree().then((res) => { + console.log(res); + this.tree = res.data.result; + }); + }, + safetyInspectionItemL(data) { + // console.log(data) + this.listQuery.filter.elementB = data.value; + safetyInspectionItemList(this.listQuery).then((res) => { + // console.log(res.data.result.records); + this.list = res.data.result.records; + }); + }, + safetyInspectionItemC(id, type) { + this.show = false; + this.title = type; + if (type == "新增") { + this.disabled = false; + this.form = { + elementA: "", + elementB: "", + standardizationRequirements: "", + enterpriseStandard: "", + reviewMethod: "", + veto: "", + deductionList: [], + }; + } else { + this.disabled = true; + var i = this.list.findIndex((item) => item.id == id); + console.log(id); + this.form = this.list[i]; + } + }, + select(val) { + this.form.elementB = ""; + var i = this.tree.findIndex((item) => item.value == val); + this.treeChildren = this.tree[i].children; + }, + safetyInspectionItemA() { + if (this.title == "新增") { + safetyInspectionItemAdd(this.form).then((res) => { + if (res.data.code == 200) { + this.show = true; + safetyInspectionItemList(this.listQuery).then((res) => { + this.list = res.data.result.records; + }); + this.$notify({ + type: "success", + duration: 2000, + message: "新增成功", + title: "成功", + }); + } else { + this.$message({ + type: "warning", + message: res.data.message, + }); + } + }); + } else { + safetyInspectionItemMod(this.form).then((res) => { + if (res.data.code == 200) { + this.show = true; + safetyInspectionItemList(this.listQuery).then((res) => { + this.list = res.data.result.records; + }); + this.$notify({ + type: "success", + duration: 2000, + message: "修改成功", + title: "成功", + }); + } else { + his.$message({ + type: "warning", + message: res.data.message, + }); + } + }); + } + }, + coAdd(val, type) { + this.titleN = type; + if (type == "新增") { + this.dialogVisible = true; + this.formInline = { + name: "", + remark: "", + }; + } else { + this.dialogVisible = true; + this.index = this.form.deductionList.findIndex( + (item) => item.name == val.name + ); + this.formInline = val; + } + }, + listAdd() { + if (this.titleN == "新增") { + this.form.deductionList.push(this.formInline); + this.dialogVisible = false; + } else { + this.form.deductionList[this.index].name = this.formInline.name; + this.form.deductionList[this.index].space = this.formInline.space; + this.dialogVisible = false; + } + }, + listDel(val) { + var i = this.form.deductionList.findIndex( + (item) => item.name == val.name + ); + this.form.deductionList.splice(i, 1); + }, + safetyInspectionItemDel(id) { + safetyInspectionItemDel({ id: id }).then((res) => { + if (res.data.code == 200) { + safetyInspectionItemList(this.listQuery).then((res) => { + this.list = res.data.result.records; + }); + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + } + }); + }, + btnsQX() { + this.show = true; + }, + }, }; </script> <style scoped> @@ -329,46 +516,46 @@ background-color: #fff; border-radius: 5px; } -.box-rightXQ{ - margin-bottom:10px; +.box-rightXQ { + margin-bottom: 10px; border: 1px solid #dedede; border-radius: 5px; padding: 0 10px; background-color: white; font-size: 14px; } -.titles{ +.titles { font-weight: bold; - text-align:right; + text-align: right; } -.title{ - text-align:right; +.title { + text-align: right; } -.titles-type{ - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.title-type{ +.titles-type { overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 4; + white-space: nowrap; + text-overflow: ellipsis; } -.btnXG{ +.title-type { + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 4; +} +.btnXG { text-align: center; - color: #034EA2; + color: #034ea2; font-weight: bolder; } -.box-rightXQ-top{ - border-bottom: 1px solid #E9E9E9; +.box-rightXQ-top { + border-bottom: 1px solid #e9e9e9; } .box-right-content { padding: 15px 0; } -.btns{ - background-color: #034EA2; - border: 1px solid #034EA2; +.btns { + background-color: #034ea2; + border: 1px solid #034ea2; } </style> \ No newline at end of file -- Gitblit v1.9.2