¶Ô±ÈÐÂÎļþ |
| | |
| | | // åºå¯¹é£é©çæªæ½ç¸å
³æ¥å£ |
| | | import request from "@/utils/request"; |
| | | |
| | | //å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§ å页 |
| | | export function getPageResults(query) { |
| | | return request({ |
| | | url: "/manageRiskAssessmentResults/getPageResults", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§ å®¡æ¹ |
| | | export function dangerousRiskApproval(data) { |
| | | return request({ |
| | | url: "/manageRiskAssessmentResults/dangerousRiskApproval", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§ æ¹å |
| | | export function hazardIdentificationAndRiskApproval(data) { |
| | | return request({ |
| | | url: "/manageRiskAssessmentResults/hazardIdentificationAndRiskApproval", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§ å é¤ |
| | | export function removeRiskFactors(query) { |
| | | return request({ |
| | | url: "/manageRiskAssessmentResults/removeRiskFactors", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§ æ°å¢ |
| | | export function addNewRiskFactors(data) { |
| | | return request({ |
| | | url: "/manageRiskAssessmentResults/addNewRiskFactors", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§ å¯¼åº |
| | | export function exportHazardFactorIdentification(query) { |
| | | return request({ |
| | | url: "/manageRiskAssessmentResults/exportHazardFactorIdentification", |
| | | method: "get", |
| | | headers: { |
| | | responseType: "blob", |
| | | }, |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //é大é£é©å ç´ åæåæ§å¶è®¡åæ¸
å å页 |
| | | export function getPageList(query) { |
| | | return request({ |
| | | url: "/manageControlPlanList/getPageList", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // é大é£é©å ç´ åæåæ§å¶è®¡åæ¸
å å®¡æ ¸ |
| | | export function riskAnalysisApprovalOfControlPlanChecklist(data) { |
| | | return request({ |
| | | url: "/manageControlPlanList/riskAnalysisApprovalOfControlPlanChecklist", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // é大é£é©å ç´ åæåæ§å¶è®¡åæ¸
å æ¹å |
| | | export function approvalOfControlPlanChecklist(data) { |
| | | return request({ |
| | | url: "/manageControlPlanList/approvalOfControlPlanChecklist", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //é大é£é©å ç´ åæåæ§å¶è®¡åæ¸
å å é¤ |
| | | export function deleteSignificantRiskFactorAnalysis(query) { |
| | | return request({ |
| | | url: "/manageControlPlanList/deleteSignificantRiskFactorAnalysis", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // é大é£é©å ç´ åæåæ§å¶è®¡åæ¸
å æ°å¢ |
| | | export function analysisOfMajorRiskFactorsAdded(data) { |
| | | return request({ |
| | | url: "/manageControlPlanList/analysisOfMajorRiskFactorsAdded", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //é大é£é©å ç´ åæåæ§å¶è®¡åæ¸
å å¯¼åº |
| | | export function exportSignificantRiskFactors(query) { |
| | | return request({ |
| | | url: "/manageControlPlanList/exportSignificantRiskFactors", |
| | | method: "get", |
| | | headers: { |
| | | responseType: "blob", |
| | | }, |
| | | params: query, |
| | | }); |
| | | } |
| | |
| | | <el-button size="small" type="primary" @click="refreshTable()">æ¥ è¯¢</el-button> |
| | | </div> |
| | | <div class="btn"> |
| | | <el-button size="small" @click="$refs.ValueTable.openUpload()" v-if="inPower"> |
| | | <!-- <el-button size="small" @click="$refs.ValueTable.openUpload()" v-if="inPower"> |
| | | <i class="el-icon-upload2" style="color: #3a7bfa"></i> |
| | | <span style="color: #3a7bfa">导å
¥</span></el-button> |
| | | <span style="color: #3a7bfa">导å
¥</span></el-button> --> |
| | | <el-button size="small" type="primary" @click="openAdd" v-if="addPower">æ°å¢</el-button> |
| | | </div> |
| | | </div> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div style="padding: 10px"> |
| | | <div class="header"> |
| | | <span></span> |
| | | <div style="min-width: 200px"> |
| | | <el-button type="primary" size="small" @click="addFun">æ° å¢</el-button> |
| | | <el-button type="primary" size="small" @click="approvalFun">审 æ¹</el-button> |
| | | <el-button type="primary" size="small" @click="approveFun">æ¹ å</el-button> |
| | | <el-upload style="display: inline-block; padding: 0 6px" :headers="headers" :action="action" :on-error="onError" |
| | | :show-file-list="false" :on-success="onSuccess"> |
| | | <el-button size="small" type="primary">导 å
¥</el-button> |
| | | </el-upload> |
| | | <el-button size="small" @click="openDownloadDia">导åº</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table :data="tableData" style="width: 100%" height="calc(100vh - 18em)"> |
| | | <el-table-column type="index" label="åºå·" width="120"> |
| | | <template v-slot="scope"> |
| | | <span>{{ (page.current - 1) * page.size + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="venue" label="å°ç¹/æ´»å¨" min-width="180"></el-table-column> |
| | | <el-table-column prop="hazard" label="å±é©å ç´ " width="testDate" min-width="180"></el-table-column> |
| | | <el-table-column prop="accidents" label="å¯è½å¯¼è´çäºæ
" min-width="180"></el-table-column> |
| | | <el-table-column prop="injury" label="对人å¯è½é æçå±å®³" min-width="180"></el-table-column> |
| | | <el-table-column label="é£é©è¯ä»·" align="center" min-width="180"> |
| | | <template> |
| | | <el-table-column prop="riskL" label="L" min-width="80"></el-table-column> |
| | | <el-table-column prop="riskE" label="E" min-width="80"></el-table-column> |
| | | <el-table-column prop="riskC" label="C" min-width="80"></el-table-column> |
| | | <el-table-column prop="riskD" label="D" min-width="80"></el-table-column> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="level" label="é£é©ç级" min-width="180"></el-table-column> |
| | | <el-table-column prop="measures" label="æ§å¶æªæ½" min-width="180"></el-table-column> |
| | | <el-table-column prop="editorName" label="ç¼å¶äººå§å" min-width="180"></el-table-column> |
| | | <el-table-column prop="editorDate" label="ç¼å¶æ¥æ" min-width="180"></el-table-column> |
| | | <el-table-column prop="approvalName" label="审æ¹äººå§å" min-width="180"></el-table-column> |
| | | <el-table-column prop="approvalDate" label="å®¡æ¹æ¥æ" min-width="180"></el-table-column> |
| | | <el-table-column prop="approvalStatus" label="审æ¹ç¶æ" min-width="180"> |
| | | <template #default="{ row }"> |
| | | {{ row.approvalStatus === 1 ? 'éè¿' : row.approvalStatus === 2 ? 'ä¸éè¿' : '' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="approveName" label="æ¹å人å§å" min-width="180"></el-table-column> |
| | | <el-table-column prop="approveStatus" label="æ¹åç¶æ" min-width="180"> |
| | | <template #default="{ row }"> |
| | | {{ row.approveStatus === 1 ? 'éè¿' : row.approveStatus === 2 ? 'ä¸éè¿' : '' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="approveDate" label="æ¹åæ¥æ" min-width="180"></el-table-column> |
| | | <el-table-column fixed="right" label="æä½" width="100"> |
| | | <template v-slot="scope"> |
| | | <el-button type="text" size="small" @click="editClick(scope.row)">ç¼è¾</el-button> |
| | | <el-button @click="deleteClick(scope.row)" type="text" size="small">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="page.size" :page-sizes="[10, 20, 30, 50, 100]" :total="page.total" |
| | | layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | </el-pagination> |
| | | <el-dialog title="æç¤º" :visible.sync="dialogVisible" width="50%"> |
| | | <el-form ref="form" :model="form" label-width="120px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å°ç¹/æ´»å¨"> |
| | | <el-input v-model="form.venue" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å±é©å ç´ "> |
| | | <el-input v-model="form.hazard" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å¯è½å¯¼è´çäºæ
"> |
| | | <el-input v-model="form.accidents" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="对人å¯è½é æçå±å®³" label-width="140px"> |
| | | <el-input v-model="form.injury" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="é£é©è¯ä»·/L"> |
| | | <el-input v-model="form.riskL" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="é£é©è¯ä»·/E"> |
| | | <el-input v-model="form.riskE" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="é£é©è¯ä»·/C"> |
| | | <el-input v-model="form.riskC" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="é£é©è¯ä»·/D"> |
| | | <el-input v-model="form.riskD" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="é£é©ç级"> |
| | | <el-input v-model="form.level" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ§å¶æªæ½"> |
| | | <el-input v-model="form.measures" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="addApi" :loading="loading">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getToken } from "@/utils/auth"; |
| | | import { |
| | | getPageResults, |
| | | dangerousRiskApproval, |
| | | hazardIdentificationAndRiskApproval, |
| | | removeRiskFactors, |
| | | addNewRiskFactors, |
| | | exportHazardFactorIdentification, |
| | | } from '@/api/cnas/systemManagement/measuresDealRisks.js' |
| | | import { mapGetters } from "vuex"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | dialogVisible: false, |
| | | form: {}, |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 0, |
| | | }, |
| | | tableData: [], |
| | | loading: false |
| | | } |
| | | }, |
| | | computed: { |
| | | headers() { |
| | | return { |
| | | 'Authorization': "Bearer " + getToken() |
| | | } |
| | | }, |
| | | action() { |
| | | return this.javaApi + '/manageRiskAssessmentResults/riskAssessmentImport' |
| | | }, |
| | | ...mapGetters(["userId"]), |
| | | }, |
| | | methods: { |
| | | handleSizeChange(val) { |
| | | this.page.size = val; |
| | | this.initData(); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.page.current = val; |
| | | this.initData(); |
| | | }, |
| | | // åé¡µè¡¨æ ¼åå§å |
| | | initData() { |
| | | this.tableData = [] |
| | | getPageResults(this.page).then(res => { |
| | | if (res.code === 201) return; |
| | | this.tableData = res.data.records; |
| | | this.page.total = res.data.total; |
| | | }); |
| | | }, |
| | | // å®¡æ¹ |
| | | approvalFun() { |
| | | this.$confirm('æ¯å¦å®¡æ¹éè¿?', 'æç¤º', { |
| | | confirmButtonText: 'éè¿', |
| | | cancelButtonText: 'ä¸éè¿', |
| | | type: 'warning', |
| | | closeOnClickModal: false, // ç¦æ¢ç¹å»é®ç½©å±å
³é |
| | | distinguishCancelAndClose: true, |
| | | beforeClose: (action, instance, done) => { |
| | | if (action === 'confirm') { |
| | | this.approvalApi(this.userId, 1) |
| | | done(); |
| | | } else if (action === 'cancel') { |
| | | this.approvalApi(this.userId, 2) |
| | | done(); |
| | | } else if (action === 'close') { |
| | | // ç¹å»âÃâæé®ï¼ä¸å
许å
³é |
| | | done(); |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // å®¡æ¹æ¥å£ |
| | | approvalApi(userId, status) { |
| | | dangerousRiskApproval({ approval: userId, status: status }).then(res => { |
| | | if (res.code === 201) return; |
| | | this.initData() |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æä½æå!' |
| | | }); |
| | | }); |
| | | }, |
| | | // æ¹å |
| | | approveFun() { |
| | | this.$confirm('æ¯å¦æ¹åéè¿?', 'æç¤º', { |
| | | confirmButtonText: 'éè¿', |
| | | cancelButtonText: 'ä¸éè¿', |
| | | type: 'warning', |
| | | closeOnClickModal: false, // ç¦æ¢ç¹å»é®ç½©å±å
³é |
| | | distinguishCancelAndClose: true, |
| | | beforeClose: (action, instance, done) => { |
| | | if (action === 'confirm') { |
| | | this.approveApi(this.userId, 1) |
| | | done(); |
| | | } else if (action === 'cancel') { |
| | | this.approveApi(this.userId, 2) |
| | | done(); |
| | | } else if (action === 'close') { |
| | | // ç¹å»âÃâæé®ï¼ä¸å
许å
³é |
| | | done(); |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // æ¹åæ¥å£ |
| | | approveApi(userId, status) { |
| | | hazardIdentificationAndRiskApproval({ approve: userId, status: status }).then(res => { |
| | | if (res.code === 201) return; |
| | | this.initData() |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æä½æå!' |
| | | }); |
| | | }); |
| | | }, |
| | | // æä»¶ä¸ä¼ 失败 |
| | | onError() { |
| | | this.$message({ |
| | | type: 'error', |
| | | message: 'æä½å¤±è´¥!' |
| | | }); |
| | | }, |
| | | // æä»¶ä¸ä¼ æå |
| | | onSuccess(response) { |
| | | if (response.code == 201) { |
| | | this.$message({ |
| | | type: 'error', |
| | | message: response.message, |
| | | }); |
| | | return |
| | | } |
| | | this.initData() |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æä½æå!' |
| | | }); |
| | | }, |
| | | addFun() { |
| | | this.form = {} |
| | | this.dialogVisible = true |
| | | }, |
| | | // å é¤ |
| | | deleteClick(row) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æ°æ®, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | removeRiskFactors({ id: row.id }).then(res => { |
| | | if (res.code === 201) return; |
| | | this.initData() |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æä½æå!' |
| | | }); |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | addApi() { |
| | | this.loading = true |
| | | addNewRiskFactors(this.form).then(res => { |
| | | if (res.code === 201) return; |
| | | this.dialogVisible = false |
| | | this.loading = false |
| | | this.initData() |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æä½æå!' |
| | | }); |
| | | }).catch(err => { |
| | | this.loading = false |
| | | }); |
| | | }, |
| | | // ç¼è¾ |
| | | editClick(row) { |
| | | this.form = { ...row } |
| | | this.dialogVisible = true |
| | | }, |
| | | // å¯¼åº |
| | | openDownloadDia() { |
| | | exportHazardFactorIdentification().then(res => { |
| | | this.outLoading = false |
| | | this.$message.success('å¯¼åºæå') |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, 'å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§' + '.docx'); |
| | | }) |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.initData() |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .header { |
| | | height: 3em; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div style="padding: 10px"> |
| | | <div class="header"> |
| | | <div></div> |
| | | <div style="min-width: 200px"> |
| | | <el-button type="primary" size="small" @click="addFun">æ° å¢</el-button> |
| | | <el-button type="primary" size="small" @click="approvalFun">审 æ¹</el-button> |
| | | <el-button type="primary" size="small" @click="approveFun">æ¹ å</el-button> |
| | | <el-upload style="display: inline-block; padding: 0 6px" :action="action" :headers="headers" :on-error="onError" |
| | | :show-file-list="false" :on-success="onSuccess"> |
| | | <el-button size="small" type="primary">导 å
¥</el-button> |
| | | </el-upload> |
| | | <el-button size="small" @click="openDownloadDia">导åº</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table :data="tableData" style="width: 100%" height="calc(100vh - 18em)"> |
| | | <el-table-column type="index" label="åºå·" width="120"> |
| | | <template v-slot="scope"> |
| | | <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="jobActivity" label="ä½ä¸æ´»å¨" min-width="180"></el-table-column> |
| | | <el-table-column prop="category" label="é£é©å ç´ ç±»å«" width="testDate" min-width="180"></el-table-column> |
| | | <el-table-column prop="description" label="é£é©å ç´ æè¿°" min-width="180"></el-table-column> |
| | | <el-table-column prop="result" label="å¯å¯¼è´çäºæ
" min-width="180"></el-table-column> |
| | | <el-table-column prop="intolerable" label="æ¯å¦ä¸å¯æ¿åé£é©" min-width="180"></el-table-column> |
| | | <el-table-column prop="plan" label="æ§å¶è®¡å" min-width="180"></el-table-column> |
| | | <el-table-column prop="editorName" label="ç¼å¶äººå§å" min-width="180"></el-table-column> |
| | | <el-table-column prop="editorDate" label="ç¼å¶æ¥æ" min-width="180"></el-table-column> |
| | | <el-table-column prop="approvalName" label="审æ¹å§å" min-width="180"></el-table-column> |
| | | <el-table-column prop="approvalDate" label="å®¡æ¹æ¥æ" min-width="180"></el-table-column> |
| | | <el-table-column prop="approvalStatus" label="审æ¹ç¶æ" min-width="180"> |
| | | <template #default="{ row }"> |
| | | {{ row.approvalStatus === 1 ? 'éè¿' : row.approvalStatus === 2 ? 'ä¸éè¿' : '' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="approveName" label="æ¹åå§å" min-width="180"></el-table-column> |
| | | <el-table-column prop="approveStatus" label="æ¹åç¶æ" min-width="180"> |
| | | <template #default="{ row }"> |
| | | {{ row.approveStatus === 1 ? 'éè¿' : row.approveStatus === 2 ? 'ä¸éè¿' : '' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="approveDate" label="æ¹åäººæ¥æ" min-width="180"></el-table-column> |
| | | <el-table-column fixed="right" label="æä½" width="100"> |
| | | <template v-slot="scope"> |
| | | <el-button type="text" size="small" @click="editClick(scope.row)">ç¼è¾</el-button> |
| | | <el-button @click="deleteClick(scope.row)" type="text" size="small">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" :total="search.total" |
| | | layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | </el-pagination> |
| | | <el-dialog title="æç¤º" :visible.sync="dialogVisible" width="50%"> |
| | | <el-form ref="form" :model="form" label-width="120px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä½ä¸æ´»å¨"> |
| | | <el-input v-model="form.jobActivity" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="é£é©å ç´ ç±»å«"> |
| | | <el-input v-model="form.category" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="é£é©å ç´ æè¿°"> |
| | | <el-input v-model="form.description" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å¯å¯¼è´çäºæ
"> |
| | | <el-input v-model="form.result" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¯å¦ä¸å¯æ¿åé£é©" label-width="130px"> |
| | | <el-input v-model="form.intolerable" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ§å¶è®¡å"> |
| | | <el-input v-model="form.plan" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="addApi" :loading="loading">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getToken } from "@/utils/auth"; |
| | | import { |
| | | getPageList, |
| | | riskAnalysisApprovalOfControlPlanChecklist, |
| | | approvalOfControlPlanChecklist, |
| | | deleteSignificantRiskFactorAnalysis, |
| | | analysisOfMajorRiskFactorsAdded, |
| | | exportSignificantRiskFactors, |
| | | } from '@/api/cnas/systemManagement/measuresDealRisks.js' |
| | | import { mapGetters } from "vuex"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | dialogVisible: false, |
| | | form: {}, |
| | | loading: false, |
| | | search: { |
| | | size: 20, |
| | | current: 1, |
| | | total: 0 |
| | | }, |
| | | tableData: [], |
| | | } |
| | | }, |
| | | computed: { |
| | | headers() { |
| | | return { |
| | | 'Authorization': "Bearer " + getToken() |
| | | } |
| | | }, |
| | | action() { |
| | | return this.javaApi + '/manageControlPlanList/importControlPlanList' |
| | | }, |
| | | ...mapGetters(["userId"]), |
| | | }, |
| | | methods: { |
| | | handleSizeChange(val) { |
| | | this.search.size = val; |
| | | this.initData(); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.search.current = val; |
| | | this.initData(); |
| | | }, |
| | | initData() { |
| | | getPageList(this.search).then(res => { |
| | | if (res.code === 201) return; |
| | | this.tableData = res.data.records; |
| | | this.search.total = res.data.total; |
| | | }); |
| | | }, |
| | | // å®¡æ¹ |
| | | approvalFun() { |
| | | this.$confirm('æ¯å¦å®¡æ¹éè¿?', 'æç¤º', { |
| | | confirmButtonText: 'éè¿', |
| | | cancelButtonText: 'ä¸éè¿', |
| | | type: 'warning', |
| | | closeOnClickModal: false, // ç¦æ¢ç¹å»é®ç½©å±å
³é |
| | | distinguishCancelAndClose: true, |
| | | beforeClose: (action, instance, done) => { |
| | | if (action === 'confirm') { |
| | | this.approvalApi(this.userId, 1) |
| | | done(); |
| | | } else if (action === 'cancel') { |
| | | this.approvalApi(this.userId, 2) |
| | | done(); |
| | | } else if (action === 'close') { |
| | | // ç¹å»âÃâæé®ï¼ä¸å
许å
³é |
| | | done(); |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // å®¡æ¹æ¥å£ |
| | | approvalApi(userId, status) { |
| | | riskAnalysisApprovalOfControlPlanChecklist({ approval: userId, status }).then(res => { |
| | | if (res.code === 201) return; |
| | | this.initData() |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æä½æå!' |
| | | }); |
| | | }); |
| | | }, |
| | | // æ¹å |
| | | approveFun() { |
| | | this.$confirm('æ¯å¦æ¹åéè¿?', 'æç¤º', { |
| | | confirmButtonText: 'éè¿', |
| | | cancelButtonText: 'ä¸éè¿', |
| | | type: 'warning', |
| | | closeOnClickModal: false, // ç¦æ¢ç¹å»é®ç½©å±å
³é |
| | | distinguishCancelAndClose: true, |
| | | beforeClose: (action, instance, done) => { |
| | | if (action === 'confirm') { |
| | | this.approveApi(this.userId, 1) |
| | | done(); |
| | | } else if (action === 'cancel') { |
| | | this.approveApi(this.userId, 2) |
| | | done(); |
| | | } else if (action === 'close') { |
| | | // ç¹å»âÃâæé®ï¼ä¸å
许å
³é |
| | | done(); |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // æ¹åæ¥å£ |
| | | approveApi(userId, status) { |
| | | approvalOfControlPlanChecklist({ approve: userId, status }).then(res => { |
| | | if (res.code === 201) return; |
| | | this.initData() |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æä½æå!' |
| | | }); |
| | | }); |
| | | }, |
| | | onError() { |
| | | this.$message({ |
| | | type: 'error', |
| | | message: 'æä½å¤±è´¥!' |
| | | }); |
| | | }, |
| | | onSuccess(response) { |
| | | if (response.code == 201) { |
| | | this.$message({ |
| | | type: 'error', |
| | | message: response.message, |
| | | }); |
| | | return |
| | | } |
| | | this.initData() |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æä½æå!' |
| | | }); |
| | | }, |
| | | addFun() { |
| | | this.form = {} |
| | | this.dialogVisible = true |
| | | }, |
| | | // å é¤ |
| | | deleteClick(row) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æ°æ®, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteSignificantRiskFactorAnalysis({ id: row.id }).then(res => { |
| | | if (res.code === 201) return; |
| | | this.initData() |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æä½æå!' |
| | | }); |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | addApi() { |
| | | this.loading = true |
| | | analysisOfMajorRiskFactorsAdded(this.form).then(res => { |
| | | if (res.code === 201) return; |
| | | this.dialogVisible = false |
| | | this.loading = false |
| | | this.initData() |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æä½æå!' |
| | | }); |
| | | }).catch(err => { |
| | | this.loading = false |
| | | }); |
| | | }, |
| | | // ç¼è¾ |
| | | editClick(row) { |
| | | this.form = { ...row } |
| | | this.dialogVisible = true |
| | | }, |
| | | // å¯¼åº |
| | | openDownloadDia() { |
| | | exportSignificantRiskFactors().then(res => { |
| | | this.outLoading = false |
| | | this.$message.success('å¯¼åºæå') |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, 'é大é£é©å ç´ åæåæ§å¶è®¡åæ¸
å' + '.docx'); |
| | | }) |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.initData() |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .header { |
| | | height: 3em; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="main"> |
| | | <el-tabs v-model="activeName" type="border-card" :lazy="true"> |
| | | <el-tab-pane label="å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§" name="å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§"> |
| | | <HazardIdentificationRiskAssessment v-if="activeName === 'å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§'" /> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="é大é£é©å ç´ åæåæ§å¶è®¡åæ¸
å" name="é大é£é©å ç´ åæåæ§å¶è®¡åæ¸
å"> |
| | | <listRiskAnalysisControlPlans v-if="activeName === 'é大é£é©å ç´ åæåæ§å¶è®¡åæ¸
å'" /> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import HazardIdentificationRiskAssessment |
| | | from "./components/hazardIdentificationRiskAssessment.vue"; |
| | | import listRiskAnalysisControlPlans |
| | | from "./components//listRiskAnalysisControlPlans.vue"; |
| | | export default { |
| | | components: { HazardIdentificationRiskAssessment, listRiskAnalysisControlPlans }, |
| | | data() { |
| | | return { |
| | | activeName: 'å±é©å ç´ è¾¨è¯ä¸é£é©è¯ä»·ç»æä¸è§', |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .main { |
| | | width: 100%; |
| | | } |
| | | |
| | | /deep/ .el-tabs--border-card>.el-tabs__content { |
| | | height: calc(100vh - 9em); |
| | | padding: 0; |
| | | } |
| | | </style> |
| | |
| | | <div class="title_small">LIMSå®éªå®¤ç®¡çç³»ç»</div> |
| | | <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> |
| | | <el-form-item prop="username"> |
| | | <el-input |
| | | v-model="loginForm.username" |
| | | type="text" |
| | | auto-complete="off" |
| | | placeholder="è´¦å·" |
| | | > |
| | | <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="è´¦å·"> |
| | | <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="password"> |
| | | <el-input |
| | | v-model="loginForm.password" |
| | | type="password" |
| | | auto-complete="off" |
| | | placeholder="å¯ç " |
| | | @keyup.enter.native="handleLogin" |
| | | > |
| | | <el-input v-model="loginForm.password" type="password" auto-complete="off" placeholder="å¯ç " |
| | | @keyup.enter.native="handleLogin" show-password> |
| | | <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="code" v-if="captchaEnabled"> |
| | | <el-input |
| | | v-model="loginForm.code" |
| | | auto-complete="off" |
| | | placeholder="éªè¯ç " |
| | | style="width: 63%" |
| | | @keyup.enter.native="handleLogin" |
| | | > |
| | | <el-input v-model="loginForm.code" auto-complete="off" placeholder="éªè¯ç " style="width: 63%" |
| | | @keyup.enter.native="handleLogin"> |
| | | <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> |
| | | </el-input> |
| | | <div class="login-code"> |
| | | <img :src="codeUrl" @click="getCode" class="login-code-img"/> |
| | | <img :src="codeUrl" @click="getCode" class="login-code-img" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">è®°ä½å¯ç </el-checkbox> |
| | | <el-form-item style="width:100%;"> |
| | | <el-button |
| | | :loading="loading" |
| | | size="medium" |
| | | type="primary" |
| | | style="width:100%;" |
| | | @click.native.prevent="handleLogin" |
| | | > |
| | | <el-button :loading="loading" size="medium" type="primary" style="width:100%;" |
| | | @click.native.prevent="handleLogin"> |
| | | <span v-if="!loading">ç» å½</span> |
| | | <span v-else>ç» å½ ä¸...</span> |
| | | </el-button> |
| | |
| | | </el-form> |
| | | </div> |
| | | <!-- åºé¨ --> |
| | | <!-- <div class="el-login-footer">--> |
| | | <!-- <span>Copyright © 2018-2025 ruoyi.vip All Rights Reserved.</span>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="el-login-footer">--> |
| | | <!-- <span>Copyright © 2018-2025 ruoyi.vip All Rights Reserved.</span>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }, |
| | | watch: { |
| | | $route: { |
| | | handler: function(route) { |
| | | handler: function (route) { |
| | | this.redirect = route.query && route.query.redirect; |
| | | }, |
| | | immediate: true |
| | |
| | | Cookies.remove('rememberMe'); |
| | | } |
| | | this.$store.dispatch("Login", this.loginForm).then(() => { |
| | | this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); |
| | | this.$router.push({ path: this.redirect || "/" }).catch(() => { }); |
| | | }).catch(() => { |
| | | this.loading = false; |
| | | if (this.captchaEnabled) { |
| | |
| | | display: flex; |
| | | background-image: url("~@/assets/images/login.png"); |
| | | background-size: 100% 100%; |
| | | |
| | | .leftImg { |
| | | width: calc(100% - 500px); |
| | | height: 100%; |
| | | overflow: hidden; |
| | | |
| | | img { |
| | | width: 100%; |
| | | min-height: 100%; |
| | |
| | | align-items: center; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | |
| | | .title_big { |
| | | color: #004EA2; |
| | | font-size: 40px; |
| | |
| | | color: #004EA2; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .login-form { |
| | | border-radius: 6px; |
| | | background: #ffffff; |
| | | width: 400px; |
| | | padding: 25px 25px 5px 25px; |
| | | |
| | | .el-input { |
| | | height: 38px; |
| | | |
| | | input { |
| | | height: 38px; |
| | | } |
| | | } |
| | | |
| | | .input-icon { |
| | | height: 39px; |
| | | width: 14px; |
| | | margin-left: 2px; |
| | | } |
| | | |
| | | .login-code { |
| | | width: 33%; |
| | | height: 38px; |
| | | float: right; |
| | | |
| | | img { |
| | | cursor: pointer; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .login-code-img { |
| | | height: 38px; |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .el-login-footer { |
| | | height: 40px; |
| | | line-height: 40px; |