| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566 |
- <style lang="scss">
- .staff {
- display: flex;
- justify-content: space-between;
- .companies {
- height: 75vh;
- overflow: auto;
- margin-right: 10px;
- overflow-x: hidden;
- }
- & > li {
- width: 30%;
- list-style: none;
- min-height: 70vh;
- background: #fff;
- border: 1px solid #d9d9d9;
- padding: 20px 10px;
- }
- .custom-tree-node {
- width: 100%;
- .el-tree-node__content {
- height: 32px;
- }
- .label_name {
- font-size: 14px;
- }
- .active {
- color: #1989fa;
- }
- .edit {
- float: right;
- i {
- font-weight: bolder;
- font-size: 14px;
- }
- }
- }
- .staff_list {
- width: 68%;
- .grid_item {
- height: 60vh;
- border: 1px solid #ccc;
- text-align: center;
- .el-input--mini {
- width: 90%;
- margin-top: 10px;
- }
- .el-button--primary {
- width: 90%;
- margin-top: 20px;
- }
- }
- }
- }
- .staffs {
- margin-right: 10px;
- }
- // 企业端
- .qy_content{
- background:#151932;
- width:100%;
- height:85vh;
- margin-top:10px;
- .grid-item{
- padding:20px;
- color: #fff;
- }
- .intro{
- height: 85vh;
- overflow-y: scroll;
- line-height: 25px;
- }
- }
- </style>
- <template>
- <section>
- <p>公司管理 > 网格化管理</p>
- <!-- 管理员端 -->
- <div v-if="utype == 0">
- <div class="content">
- <ul class="staff">
- <li class="companies">
- <el-form size="small">
- <el-form-item>
- <el-input
- suffix-icon="el-icon-search"
- v-model="name"
- @change="getData"
- placeholder="公司名称"
- ></el-input>
- </el-form-item>
- </el-form>
- <el-tree
- :data="data"
- node-key="id"
- :props="props"
- :expand-on-click-node="false"
- >
- <span
- class="custom-tree-node"
- slot-scope="{ node, data }"
- @click="change(data)"
- >
- <span v-if="id == data.id" class="label_name active">{{
- node.label
- }}</span>
- <span v-else class="label_name">{{ node.label }}</span>
- </span>
- </el-tree>
- </li>
- <li class="staff_list">
- <el-form
- label-width="70px"
- :inline="true"
- size="small"
- label-position="left"
- >
- <el-form-item>
- <el-button
- icon="el-icon-plus"
- @click="(dialogFormVisible1 = true), (staff = {})"
- type="primary"
- size="mini"
- >安全生产网格化管理简介</el-button
- >
- </el-form-item>
- </el-form>
- <div>
- <el-row :gutter="20">
- <el-col :span="4">
- <div class="grid_item" v-for="item in gridList" :key="item">
- <div>
- <el-input
- v-model="item.name"
- placeholder="请输入"
- size="mini"
- >
- <el-button
- slot="append"
- icon="el-icon-edit"
- size="mini"
- @click="dialogFormVisible1 = true"
- ></el-button>
- </el-input>
- </div>
- <el-button type="primary" size="mini">添加</el-button>
- </div>
- </el-col>
- <el-col :span="4">
- <div class="grid_item">1111</div>
- </el-col>
- <el-col :span="4">
- <div class="grid_item">1111</div>
- </el-col>
- <el-col :span="4">
- <div class="grid_item">1111</div>
- </el-col>
- <el-col :span="4">
- <div class="grid_item">1111</div>
- </el-col>
- </el-row>
- </div>
- </li>
- </ul>
- </div>
- <el-dialog
- title="编辑"
- :visible.sync="dialogFormVisible1"
- width="800px"
- :close-on-click-modal="false"
- :close-on-press-escape="false"
- >
- <el-form size="small" label-width="120px">
- <el-row :gutter="10">
- <el-col :span="8">
- <el-form-item label="类型">
- <el-select clearable v-model="form1.utype" placeholder="请选择">
- <el-option label="部门级" value="部门级"></el-option>
- <el-option label="岗位级" value="岗位级"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="负责人姓名">
- <el-input
- v-model="form1.charge_person_name"
- placeholder=""
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="负责人电话">
- <el-input
- v-model="form1.charge_person_phone"
- placeholder=""
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="负责人照片">
- <div class="upload_div">
- <i
- v-if="form.safecolor_img"
- @click="form.safecolor_img = ''"
- class="el-icon-delete"
- ></i>
- <i class="el-icon-upload"></i>
- <img
- v-if="form.safecolor_img"
- width="100%"
- height="100%"
- :src="form.safecolor_img"
- alt=""
- />
- <input
- accept="image/png,image/jpg"
- @change="upload('safecolor_img')"
- id="safecolor_img"
- type="file"
- />
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="安全证书">
- <div class="upload_div">
- <i
- v-if="form.safecolor_img"
- @click="form.safecolor_img = ''"
- class="el-icon-delete"
- ></i>
- <i class="el-icon-upload"></i>
- <img
- v-if="form.safecolor_img"
- width="100%"
- height="100%"
- :src="form.safecolor_img"
- alt=""
- />
- <input
- accept="image/png,image/jpg"
- @change="upload('safecolor_img')"
- id="safecolor_img"
- type="file"
- />
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- <el-form-item label="责任清单">
- <el-input
- type="textarea"
- v-model="form1.duty_list"
- placeholder=""
- rows="10"
- ></el-input>
- </el-form-item>
- <el-form-item label="履职清单">
- <el-input
- type="textarea"
- v-model="form1.job_list"
- placeholder=""
- rows="10"
- ></el-input>
- </el-form-item>
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button size="small" @click="dialogFormVisible1 = false"
- >取 消</el-button
- >
- <el-button size="small" type="primary" @click="addStaff"
- >确 定</el-button
- >
- </div>
- </el-dialog>
- </div>
- <!-- 企业端 -->
- <div class="qy_content">
- <el-row :gutter="10">
- <el-col :span="12">
- <div class="grid-item intro">
- <h3 align="center">巴中市恩阳区子耀商贸有限公司</h3>
- <h4 align="center">安全生产网格化管理建设过程简介</h4>
- <div id="w-e-textarea-1" data-slate-editor="" data-slate-node="value" suppresscontenteditablewarning="" role="textarea" spellcheck="true" autocorrect="true" autocapitalize="true" contenteditable="true">
- <pre id="w-e-element-27" data-slate-node="element"><code id="w-e-element-28" data-slate-node="element"><span id="w-e-text-29" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">公司自成立以来,认真贯彻执行《安全生产法》、《关于印发四川省安全风险分级管控工作指南》的通知》(川办〔2017〕25号)、企业安全文化建设评价准则 AQT9005-2008等文件要求,一直秉承着“人民至上、生命至上”的安全生产方针,把安全生产当做头等大事来抓,在市、区政府和应急管理局领导的关心关照下,不断提高安全生产管理水平,从未发生过安全生产事故。公司在安全生产方面主要做了以下几个方面的工作:
- 一、安全生产行业规范管理</span></span></span></code></pre><p id="w-e-element-13" data-slate-node="element"><span id="w-e-text-14" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">公司按照行业安全生产规范要求,落实了安全生产主体责任,建立了全员安全生产责任制(安全生产清单制管理),通过全员全过程参与,全面管控经营活动各环节的安全生产工作,实现了安全管理系统化、岗位操作行为规范化等。</span></span></span></p><p id="w-e-element-15" data-slate-node="element"><span id="w-e-text-16" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">二、安全文化建设</span></span></span></p><p id="w-e-element-17" data-slate-node="element"><span id="w-e-text-18" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">公司通过安全文化建设,形成了富有公司特色的安全文化理念;通过开展安全文化进部门、进班组、进岗位创新安全文化建设模式;树立安全文化建设典型,使全员的安全知识、安全意识、安全能力、安全素质得到普遍提高;创建本质安全型部门、班组、员工;通过学习和借鉴各行业先进的安全管理思想和安全文化理论,结合公司安全管理实际,通过提炼总结,逐步形成安全文化的价值体系,做到内涵丰富、系统完善、个性鲜明,逐步形成上下齐心、知行合一的安全文化,推动企业安全、健康、和谐发展。</span></span></span></p><p id="w-e-element-19" data-slate-node="element"><span id="w-e-text-20" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">三、风险管控和隐患排查双重预防机制建设</span></span></span></p><p id="w-e-element-21" data-slate-node="element"><span id="w-e-text-22" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">公司以安全风险辨识和分级管控为基础,以隐患排查和治理为手段,把风险控制在隐患前面,并通过隐患排查,及时找出风险控制过程可能出现的缺失、缺陷、漏洞及风险控制失效环节,把隐患消灭在事故发生之前。通过安全风险管控和隐患排查双重预防机制建设,还建立健全了安全风险分级管控和隐患排查治理工作制度和规范,完善了技术工程支撑、智能化管控、第三方专业化服务的保障措施,实现企业安全风险自辨自控、隐患自查自治,全面提升了公司安全生产整体预控能力,防止重特大事故的发生。</span></span></span></p><p id="w-e-element-23" data-slate-node="element"><span id="w-e-text-24" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">为进一步落实公司的安全生产责任,构建长效的安全生产机制,形成公司各负其责、上下联动、齐抓共管的安全生产工作良好局面,在原有的规范管理基础上,进一步实行公司内部的安全生产网格化管理,更进一步明确网格单元内各责任人和责任区域在工作中的安全职责,做到定人、定岗、定责,确保安全管理工作无遗漏、全覆盖,达到安全隐患排查工作“横向到边、纵向到底”,安全隐患整治责任明确、落实到位的目的。</span></span></span></p><p id="w-e-element-25" data-slate-node="element"><span id="w-e-text-26" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">安全生产网格化管理责任图</span></span></span></p><p id="w-e-element-3" data-slate-node="element" style="text-align: center;"><span id="w-e-text-4" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true" style="font-size: 10.5pt; font-family: Calibri, "sans-serif";">
- 巴中市恩阳区子耀商贸有限公司
- 安全生产网格化管理建设过程简介
- 公司自成立以来,认真贯彻执行《安全生产法》、《关于印发四川省安全风险分级管控工作指南》的通知》(川办〔2017〕25号)、企业安全文化建设评价准则 AQT9005-2008等文件要求,一直秉承着“人民至上、生命至上”的安全生产方针,把安全生产当做头等大事来抓,在市、区政府和应急管理局领导的关心关照下,不断提高安全生产管理水平,从未发生过安全生产事故。公司在安全生产方面主要做了以下几个方面的工作:
- 一、安全生产行业规范管理
- 公司按照行业安全生产规范要求,落实了安全生产主体责任,建立了全员安全生产责任制(安全生产清单制管理),通过全员全过程参与,全面管控经营活动各环节的安全生产工作,实现了安全管理系统化、岗位操作行为规范化等。
- 二、安全文化建设
- 公司通过安全文化建设,形成了富有公司特色的安全文化理念;通过开展安全文化进部门、进班组、进岗位创新安全文化建设模式;树立安全文化建设典型,使全员的安全知识、安全意识、安全能力、安全素质得到普遍提高;创建本质安全型部门、班组、员工;通过学习和借鉴各行业先进的安全管理思想和安全文化理论,结合公司安全管理实际,通过提炼总结,逐步形成安全文化的价值体系,做到内涵丰富、系统完善、个性鲜明,逐步形成上下齐心、知行合一的安全文化,推动企业安全、健康、和谐发展。
- 三、风险管控和隐患排查双重预防机制建设
- 公司以安全风险辨识和分级管控为基础,以隐患排查和治理为手段,把风险控制在隐患前面,并通过隐患排查,及时找出风险控制过程可能出现的缺失、缺陷、漏洞及风险控制失效环节,把隐患消灭在事故发生之前。通过安全风险管控和隐患排查双重预防机制建设,还建立健全了安全风险分级管控和隐患排查治理工作制度和规范,完善了技术工程支撑、智能化管控、第三方专业化服务的保障措施,实现企业安全风险自辨自控、隐患自查自治,全面提升了公司安全生产整体预控能力,防止重特大事故的发生。
- 为进一步落实公司的安全生产责任,构建长效的安全生产机制,形成公司各负其责、上下联动、齐抓共管的安全生产工作良好局面,在原有的规范管理基础上,进一步实行公司内部的安全生产网格化管理,更进一步明确网格单元内各责任人和责任区域在工作中的安全职责,做到定人、定岗、定责,确保安全管理工作无遗漏、全覆盖,达到安全隐患排查工作“横向到边、纵向到底”,安全隐患整治责任明确、落实到位的目的。
- 安全生产网格化管理责任图
-
- </span></span></span></p></div>
- </div>
- </el-col>
- <el-col :span="12">
- <div class="grid-item grid_chart">
- <h3 align="center">安全生产网格化管理责任图</h3>
- <!-- <img src="../../images/grid.png" alt="" style="margin-top:50px;text-align:center;margin-left:50px;"> -->
- <vue2-org-tree :data="treeData" :horizontal="true"/>
- </div>
- </el-col>
- </el-row>
- </div>
- </section>
- </template>
- <script>
- import Page from "../../components/Page";
- export default {
- components: {
- Page,
- },
- data() {
- return {
- dialogFormVisible: false,
- dialogFormVisible1: false,
- dialogFormVisible2: false,
- data: [],
- form: { page: 1, page_size: 20 },
- list: [],
- total: 1,
- loading: false,
- props: {
- label: "name",
- },
- id: "",
- dpt: { enterprise_name: "", enterprise_id: "", staffusers: [] },
- enterprise_name: "",
- name: "",
- staff: {},
- dptList: [],
- form1: {},
- gridList: [
- {
- name: "公司负责人",
- id: 1,
- children: [
- {
- name: "安全科",
- id: 2,
- children: [
- {
- name: "仓库运行班",
- id: 3,
- children: [
- {
- name: "储存员",
- id: 4,
- children: [],
- },
- ],
- },
- ],
- },
- ],
- },
- ],
- utype: 2,
- treeData: {
- id: 0,
- label: "XXX科技有限公司",
- children: [
- {
- id: 2,
- label: "产品研发部",
- children: [
- {
- id: 5,
- label: "研发-前端"
- },
- {
- id: 6,
- label: "研发-后端"
- },
- {
- id: 9,
- label: "UI设计"
- },
- {
- id: 10,
- label: "产品经理"
- }
- ]
- },
- {
- id: 3,
- label: "销售部",
- children: [
- {
- id: 7,
- label: "销售一部"
- },
- {
- id: 8,
- label: "销售二部"
- }
- ]
- },
- {
- id: 4,
- label: "财务部"
- },
- {
- id: 9,
- label: "HR人事"
- }
- ]
- }
- };
- },
- methods: {
- gopage(size) {
- if (size) {
- this.form.page_size = size;
- }
- this.form.page = this.$refs.pageButton.page;
- this.getData();
- },
- change(data) {
- this.id = data.id;
- this.enterprise_name = data.name;
- this.getDpt();
- this.$api.getDepartmentList({ enterprise_id: data.id }).then((res) => {
- this.dptList = res.data.data.list;
- });
- },
- getData() {
- this.loading = true;
- this.$api.getEnterpriseList({ name: this.name }).then((res) => {
- this.data = res.data.data.list;
- // this.id=this.data[0].id;
- // this.enterprise_name=this.data[0].name;
- this.change(this.data[0]);
- });
- },
- //获取员工列表
- getDpt() {
- var parm = this.form;
- parm.enterprise_id = this.id;
- this.$api.getStaffuserList(parm).then((res) => {
- this.loading = false;
- this.list = res.data.data.list;
- this.total = res.data.data.total;
- });
- },
- del(id) {
- this.$confirm("确定删除吗", "提示", {
- type: "warning",
- }).then(() => {
- this.$api.deleteStaffuser({ id: id }).then((res) => {
- this.$message({
- message: "删除成功",
- type: "success",
- });
- this.getDpt();
- });
- });
- },
- addStaff() {
- let parm = this.staff;
- if (!parm.name) {
- this.$message.error("请输入员工名称");
- return;
- }
- if (!parm.username) {
- this.$message.error("请输入账号");
- return;
- }
- if (!parm.password) {
- this.$message.error("请输入密码");
- return;
- }
- if (!parm.utype) {
- this.$message.error("请选择账号类型");
- return;
- }
- if (parm.utype != "公司级" && !parm.department_id) {
- this.$message.error("请选择部门");
- return;
- }
- if (parm.id) {
- this.$api.updateStaffuser(parm).then((res) => {
- if (res.data.code == 0) {
- this.getDpt();
- this.staff = {};
- this.$message({
- message: "修改成功",
- type: "success",
- });
- this.dialogFormVisible1 = false;
- } else {
- this.$message.error(res.data.message);
- }
- });
- } else {
- parm.id = 0;
- parm.enterprise_id = this.id;
- this.$api.saveStaffuser(parm).then((res) => {
- if (res.data.code == 0) {
- this.getDpt();
- this.staff = {};
- this.$message({
- message: "新增成功",
- type: "success",
- });
- this.dialogFormVisible1 = false;
- } else {
- this.$message.error(res.data.message);
- }
- });
- }
- },
- handleClose(index) {
- this.dpt.staffusers.splice(index, 1);
- },
- edit(data) {
- this.dialogFormVisible1 = true;
- this.staff = { ...data };
- },
- },
- created() {
- this.getData();
- },
- };
- </script>
|