From b59d7d4f48f84dc856d46f6ee6c8e9300376d272 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期四, 08 九月 2022 09:33:43 +0800 Subject: [PATCH] 合并 --- src/views/goalManagement/processForms/component/formInformationTops.vue | 162 src/views/facilityManagement/deviceType/index.vue | 130 src/views/goalManagement/targetDecompositionHalfYear/index.vue | 286 - src/views/goalManagement/targetStatistics/index.vue | 92 src/views/goalManagement/processForms/processForms.vue | 124 src/views/contingencyManagement/panManagement/component/approval.vue | 239 src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue | 325 - src/views/contingencyManagement/contingency/component/openAdd.vue | 569 -- src/views/contingencyManagement/abolishDialog/component/formInformationTop.vue | 144 src/views/goalManagement/Goalsummary/index.vue | 227 src/views/goalManagement/Incentivestandard/component/DailogAdd.vue | 147 src/views/goalManagement/Incentivestandard/index.vue | 283 src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue | 404 - src/views/accidentManagementSystem/accidentCases/index.vue | 520 src/views/goalManagement/targetEscalation/component/TypeDailog.vue | 341 - src/views/contingencyManagement/contingency/component/upData.vue | 125 src/views/goalManagement/targetImprovements/index.vue | 307 - src/utils/request.ts | 3 src/views/goalManagement/index.vue | 14 src/views/contingencyManagement/panManagement/component/initiateApproval.vue | 159 src/views/goalManagement/safetyAssessment/component/DailogAdd.vue | 281 src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue | 305 - src/views/goalManagement/TargetBook/index.vue | 289 - src/views/goalManagement/processForms/component/lowerPlate.vue | 120 .env.development | 4 src/views/contingencyManagement/abolishDialog/abolishDialog.vue | 139 src/views/goalManagement/targetImprovements/component/Dailogprove.vue | 105 src/views/goalManagement/IncentiveRecording/index.vue | 302 - src/views/goalManagement/targetSettings/component/search.vue | 52 src/views/facilityManagement/ProductionEquipment/index.vue | 390 - src/views/contingencyManagement/abolishDialog/component/formInformationTops.vue | 318 - src/views/contingencyManagement/processForm/component/lowerPlate.vue | 120 src/views/goalManagement/targetDecompositionYear/index.vue | 284 - src/views/goalManagement/TargetBook/component/DailogAdd.vue | 246 src/views/goalManagement/targetEscalation/component/Dailog.vue | 65 src/components/equipmentDailog/Dailog.vue | 1 src/views/goalManagement/performanceAppraisal/component/DailogKh.vue | 247 src/views/goalManagement/targetDecompositionMonth/index.vue | 286 - src/views/contingencyManagement/processForm/component/formInformationTops.vue | 312 - src/views/facilityManagement/keyEquipment/index.vue | 449 - src/views/goalManagement/safetyAssessment/index.vue | 241 src/views/contingencyManagement/panManagement/component/openAdd.vue | 471 - src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue | 204 src/views/goalManagement/performanceAppraisal/index.vue | 526 - src/views/goalManagement/targetDecompositionYear/component/Dailog.vue | 262 src/views/goalManagement/targetDecompositionQuarter/index.vue | 286 - src/views/goalManagement/targetEscalation/index.vue | 199 src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue | 204 src/components/uploaderImg/index.vue | 3 src/views/contingencyManagement/processForm/processForm.vue | 137 src/views/goalManagement/safetyAssessment/component/Dailog.vue | 264 src/views/goalManagement/processForms/component/formInformationTop.vue | 144 src/views/contingencyManagement/panManagement/component/upData.vue | 125 src/views/facilityManagement/InstrumentationInformation/index.vue | 391 - src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue | 196 src/views/facilityManagement/deviceType/component/Dailog.vue | 198 src/components/editor/index.vue | 198 src/views/contingencyManagement/panManagement/component/abolishLibrary.vue | 226 src/views/contingencyManagement/abolishDialog/component/lowerPlate.vue | 120 src/views/contingencyManagement/panManagement/component/approvalProcess.vue | 196 src/views/goalManagement/targetSettings/index.vue | 300 - src/views/goalManagement/TargetBook/component/DailogSearch.vue | 175 src/views/contingencyManagement/processForm/component/formInformationTop.vue | 144 src/components/uploaderFile/index.vue | 9 src/views/goalManagement/performanceAppraisal/component/DailogKhS.vue | 133 /dev/null | 377 - src/views/contingencyManagement/panManagement/component/startUp.vue | 160 src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue | 308 - src/views/contingencyManagement/contingency/index.vue | 401 - src/views/goalManagement/targetClassification/index.vue | 261 src/views/goalManagement/targetSettings/component/dailogAdd.vue | 284 - src/views/facilityManagement/EquipmentStatistics/index.vue | 101 src/views/facilityManagement/safetyEquipment/index.vue | 391 - src/views/goalManagement/performanceAppraisal/component/DailogAq.vue | 455 - 74 files changed, 372 insertions(+), 16,634 deletions(-) diff --git a/.env.development b/.env.development index e37ce2c..9feecc6 100644 --- a/.env.development +++ b/.env.development @@ -1,10 +1,10 @@ # 本地环境 ENV = 'development' -VITE_API_URL = 'http://192.168.0.35:8008' +#VITE_API_URL = 'http://192.168.0.35:8008' #李宇飞接口地址 -#VITE_API_URL = 'http://192.168.0.50:8008' +VITE_API_URL = 'http://192.168.0.50:8008' #张凤接口地址 #VITE_API_URL = 'http://192.168.0.29:8008' diff --git a/src/components/accidentManagementSystem/accidentExpress/component/numberOfCasualties.vue b/src/components/accidentManagementSystem/accidentExpress/component/numberOfCasualties.vue deleted file mode 100644 index c586c23..0000000 --- a/src/components/accidentManagementSystem/accidentExpress/component/numberOfCasualties.vue +++ /dev/null @@ -1,461 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - title="编辑伤亡人员" - v-model="isShowDialog" - width="769px" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form - ref="ruleFormRef" - :model="ruleForm" - size="default" - label-width="120px" - > - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="姓名" prop="name"> - <el-input v-model="ruleForm.name" placeholder="请输入姓名"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="性别" prop="sex"> - <el-select v-model="ruleForm.gender" class="w100" placeholder="请选择人员性别"> - <el-option label="男" value="false"></el-option> - <el-option label="女" value="true"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="身份证号码" prop="teamName"> - <el-input v-model="ruleForm.card" placeholder="请输入身份证号码"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="伤害描述"> - <el-input v-model="ruleForm.injuryDesc" type="textarea" placeholder="请输入内容" - maxlength="150"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="受损描述"> - <el-input v-model="ruleForm.damageDesc" type="textarea" placeholder="请输入内容" - maxlength="150"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-button v-if="!disabled" size="default" type="primary" @click="onAdd()">添加</el-button> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-table :data="tableData" style="width: 100%"> - <el-table-column prop="name" label="姓名"/> - <el-table-column prop="gender" label="性别"> - <template #default="scope"> - <div v-if="scope.row.gender==false"> - 男 - </div> - <div v-else> - 女 - </div> - </template> - </el-table-column> - <el-table-column prop="card" label="身份证"/> - <el-table-column prop="injuryDesc" label="伤害描述"/> - <el-table-column prop="damageDesc" label="受损描述"/> - <el-table-column v-if="!disabled" label="操作" width="60" align="center" fixed="right"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onDelete(scope.row.id)"> - 删除 - </el-button> - </template> - </el-table-column> - </el-table> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="onCancel" size="default">关闭</el-button> - <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <CheckTemplate ref="Shows"/> - <userSelections ref="userRef"/> - <RegionsDialog ref="openRef"/> - </div> -</template> - -<script lang="ts"> - import { - reactive, - ref, - defineComponent - } from 'vue'; - - import type { - UploadUserFile, - FormInstance, - // FormRules, - } from 'element-plus' - import {ElMessage} from 'element-plus'; - import { - Search, - FullScreen - } from '@element-plus/icons-vue' - import UserSelections from "/@/components/userSelections/index.vue" - import CheckTemplate from '/@/components/checkTemplate/index.vue' - import RegionsDialog from '/@/components/regionsDialog/index.vue' - import {accidentManagementSystemApi} from '/@/api/accidentManagementSystem'; - - export default defineComponent({ - name: 'openEdit', - components: { - CheckTemplate, - UserSelections, - RegionsDialog, - }, - setup() { - const isShowDialog = ref(false) - - const ruleFormRef = ref<FormInstance>() - //定义表单 - const accidentExpressId = ref() - const ruleForm = reactive({ - accidentExpressId: accidentExpressId, - name: '', // 姓名 - gender: '', //性别 - card: '', // 身份证 - injuryDesc: '', // 伤害描述 - damageDesc: '', // 受损描述 - }); - const tableData = ref([]) - const disabled = ref([]) - // 打开弹窗 - const openDialog = (id, type) => { - accidentExpressId.value = id - isShowDialog.value = true; - disabled.value = type - onList() - }; - // 一览 - const onList = () => { - accidentManagementSystemApi() - .casualtyList(accidentExpressId.value) - .then((res) => { - if (res.data.code == '200') { - tableData.value = res.data.data - console.log('伤亡人员一览', tableData.value) - } - }) - }; - // 添加 - const onAdd = () => { - if (accidentExpressId.value != null && accidentExpressId.value != '') { - accidentManagementSystemApi() - .casualtyAdd(ruleForm) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '添加成功', - type: 'success', - }); - onList() - } - }) - } else { - ElMessage({ - showClose: true, - message: '请先添加事故快报', - type: 'error', - }); - } - }; - // 删除 - const onDelete = (id) => { - accidentManagementSystemApi() - .casualtyDel(id) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '删除成功', - type: 'success', - }); - onList() - } - }) - }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - // 取消 - const onCancel = () => { - closeDialog(); - }; - //日期选择器 - const value1 = ref('') - // 上传附件 - const fileList = ref<UploadUserFile[]>([]) - // 可选择树 - const treeSelect = ref() - const tree = [ - { - value: '1', - label: 'Level one 1', - children: [ - { - value: '1-1', - label: 'Level two 1-1', - children: [ - { - value: '1-1-1', - label: 'Level three 1-1-1', - }, - ], - }, - ], - }, - { - value: '2', - label: 'Level one 2', - children: [ - { - value: '2-1', - label: 'Level two 2-1', - children: [ - { - value: '2-1-1', - label: 'Level three 2-1-1', - }, - ], - }, - { - value: '2-2', - label: 'Level two 2-2', - children: [ - { - value: '2-2-1', - label: 'Level three 2-2-1', - }, - ], - }, - ], - }, - { - value: '3', - label: 'Level one 3', - children: [ - { - value: '3-1', - label: 'Level two 3-1', - children: [ - { - value: '3-1-1', - label: 'Level three 3-1-1', - }, - ], - }, - { - value: '3-2', - label: 'Level two 3-2', - children: [ - { - value: '3-2-1', - label: 'Level three 3-2-1', - }, - ], - }, - ], - }, - ] - //定义树形下拉框 - const responsibleDepartment = ref() - const data = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '经营班子', - children: [], - }, - ], - }, - { - value: '2', - label: '生产运行部', - children: [ - { - value: '2-1', - label: '灌装一班', - children: [] - }, - { - value: '2-2', - label: '工艺四班', - children: [], - }, - ], - }, - { - value: '3', - label: '设备部', - children: [ - { - value: '3-1', - label: '仪表班', - children: [], - }, - { - value: '3-2', - label: '机修班', - children: [], - }, - ], - }, - ] - // 必填项提示 - // const rules = reactive<FormRules>({ - // teamName: [ - // { - // required: true, - // message: '队伍名称不能为空', - // trigger: 'change', - // }, - // ], - // teamLevel: [ - // { - // required: true, - // message: '队伍级别不能为空', - // trigger: 'change', - // }, - // ], - // teamLeader: [ - // { - // required: true, - // message: '队伍负责人不能为空', - // trigger: 'change', - // }, - // ], - // responsibleDepartment: [ - // { - // required: true, - // message: '负责人部门不能为空', - // trigger: 'change', - // }, - // ], - // teamPhone: [ - // { - // required: true, - // message: '负责人手机不能为空', - // trigger: 'change', - // }, - // ], - // telephone: [ - // { - // required: true, - // message: '固定电话不能为空', - // trigger: 'change', - // }, - // ], - // }) - // 表单提交验证必填项 - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - console.log('submit!') - closeDialog(); - } else { - console.log('error submit!', fields) - } - }) - - } - // 应急队伍弹窗 - const Shows = ref() - const daiInpt = () => { - Shows.value.openDailog() - } - // 选择区域弹窗 - const openRef = ref() - const regionsDialog = () => { - openRef.value.openDailog() - } - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - fileList, - responsibleDepartment, - data, - Search, - ruleForm, - value1, - treeSelect, - tree, - daiInpt, - Shows, - ruleFormRef, - submitForm, - // rules, - openUser, - userRef, - regionsDialog, - openRef, - toggleFullscreen, - FullScreen, - full, - tableData, - onAdd, - onDelete, - accidentExpressId, - disabled - }; - }, - }); -</script> -<style scoped lang="scss"> - .textarea { - height: 168px !important; - } - - .textarea ::v-deep .el-textarea__inner { - height: 168px !important; - } - - ::v-deep .el-table__cell { - font-weight: 400; - } - - .el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; - } - - .el-select { - width: 100%; - } -</style> \ No newline at end of file diff --git a/src/components/accidentManagementSystem/accidentExpress/component/openAdd.vue b/src/components/accidentManagementSystem/accidentExpress/component/openAdd.vue deleted file mode 100644 index 50a59d7..0000000 --- a/src/components/accidentManagementSystem/accidentExpress/component/openAdd.vue +++ /dev/null @@ -1,474 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="50%" draggable :fullscreen="full" @close="closeDialog(ruleFormRef)"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" size="default" label-width="140px"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故名称" prop="accidentName"> - <el-input v-model="ruleForm.accidentName" :disabled="disabled" placeholder="请填写事故名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故部门" placeholder="请选择" prop="accidentDepartmentId"> - <el-tree-select - v-model="ruleForm.accidentDepartmentId" - :disabled="disabled" - :props="propse" - :data="newTreeList" - class="w100" - placeholder="请选择" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="发生地点" prop="occurrencePlace"> - <el-input v-model="ruleForm.occurrencePlace" :disabled="disabled" placeholder="请填写发生地点"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="发生时间" prop="occurrenceTime"> - <!--<el-input v-model="ruleForm.occurrenceTime" :disabled="disabled" placeholder="请填写发生时间"></el-input>--> - <el-date-picker - :disabled="disabled" - v-model="ruleForm.occurrenceTime" - value-format="YYYY-MM-DD HH:mm:ss" - type="datetime" - class="w100" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故原因" prop="accidentCause"> - <el-select v-model="ruleForm.accidentCause" :disabled="disabled" class="w100" placeholder="请选择"> - <el-option label="人的不安全行为" value="1"></el-option> - <el-option label="物的不安全状态" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="是否有伤亡" prop="casualties"> - <el-radio-group v-model="ruleForm.casualties" :disabled="disabled" @change="typeChang"> - <el-radio :label="true">是</el-radio> - <el-radio :label="false">否</el-radio> - </el-radio-group> - <el-button v-if="ruleForm.casualties" type="primary" style="margin-left: 20px" :icon="Edit" @click="openDai" round plain /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故简要经过" prop="accidentBriefProcess"> - <el-input - v-model="ruleForm.accidentBriefProcess" - :disabled="disabled" - type="textarea" - placeholder="请填写事故简要经过" - maxlength="150" - ></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故原因初步分析" prop="accidentCausesPreliminaryAnalysis"> - <el-input - v-model="ruleForm.accidentCausesPreliminaryAnalysis" - :disabled="disabled" - type="textarea" - placeholder="请填写事故原因初步分析" - maxlength="150" - ></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急防范措施" prop="emergencyPrecautions"> - <el-input - v-model="ruleForm.emergencyPrecautions" - :disabled="disabled" - type="textarea" - placeholder="请填写应急防范措施" - maxlength="150" - ></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="事故照片" prop="fileList"> - <!--<el-input v-model="ruleForm.fileList" :disabled="disabled"--> - <!--type="textarea" placeholder="请填写应急防范措施" maxlength="150"></el-input>--> - <uploaderImg :fileList="fileListDemo"></uploaderImg> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" v-if="disabled == true ? false : true" type="primary" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <NumberOfCasualties ref="ShowUser"></NumberOfCasualties> - <CheckTemplate ref="Shows" /> - <userSelections ref="userRef" /> - <RegionsDialog ref="openRef" /> - </div> -</template> - -<script lang="ts"> -import { reactive, ref, defineComponent, defineEmits, onMounted } from 'vue'; - -import type { UploadUserFile, FormInstance, FormRules } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen, Edit } from '@element-plus/icons-vue'; -import NumberOfCasualties from '/@/views/accidentManagementSystem/accidentExpress/component/numberOfCasualties.vue'; -import UserSelections from '/@/components/userSelections/index.vue'; -import CheckTemplate from '/@/components/checkTemplate/index.vue'; -import uploaderImg from '/@/components/uploaderImg/index.vue'; -import RegionsDialog from '/@/components/regionsDialog/index.vue'; -import { accidentManagementSystemApi } from '/@/api/accidentManagementSystem'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - name: 'openAdd', - components: { - CheckTemplate, - UserSelections, - RegionsDialog, - NumberOfCasualties, - uploaderImg, - }, - setup(props, { emit }) { - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - //定义表单 - const ruleForm = ref({ - emergencyPrecautions: '', - accidentCausesPreliminaryAnalysis: '', - accidentBriefProcess: '', - casualties: '', - accidentCause: '', - occurrenceTime: '', - occurrencePlace: '', - accidentDepartmentId: '', - accidentName: '', - fileList: [], - id: '', - }); - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if (title == '查看事故快报' || title == '修改事故快报') { - accidentManagementSystemApi() - .accidentScarh(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } - }; - //日期选择器 - const value1 = ref(''); - // 上传附件 - const fileList = ref<UploadUserFile[]>([]); - const fileListDemo = ref<UploadUserFile[]>([ - { - name: 'food.jpeg', - url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100', - }, - { - name: 'food.jpeg', - url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100', - }, - ]); - // 可选择树 - const treeSelect = ref(); - - //定义树形下拉框 - const responsibleDepartment = ref(); - const data = []; - //el-tree-select回显 - const propse = { - label: 'depName', - children: 'children', - }; - const newTreeList = []; - //得到部门树 - const department = async () => { - await goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - getTreeList(res.data.data, newTreeList); - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 递归树状数据且修改字段名 - const getTreeList = (treeList, newTreeList) => { - treeList.map((c) => { - let tempData = { - depName: c.depName, - value: c.depId, - children: [], - }; - if (c.children && c.children.length > 0) { - tempData.children = []; - getTreeList(c.children, tempData.children); - } - newTreeList.push(tempData); - }); - }; - onMounted(() => { - department(); - }); - // 必填项提示 - const rules = reactive<FormRules>({ - accidentName: [ - { - required: true, - message: '事故名称不能为空', - trigger: 'change', - }, - ], - accidentDepartmentId: [ - { - required: true, - message: '事故部门不能为空', - trigger: 'change', - }, - ], - occurrencePlace: [ - { - required: true, - message: '发生地点不能为空', - trigger: 'change', - }, - ], - occurrenceTime: [{ type: 'date', required: true, message: '发生时间不能为空', trigger: 'blur' }], - accidentCause: [ - { - required: true, - message: '事故原因不能为空', - trigger: 'change', - }, - ], - casualties: [ - { - required: true, - message: '是否有伤亡不能为空', - trigger: 'change', - }, - ], - accidentBriefProcess: [ - { - required: true, - message: '事故简要经过不能为空', - trigger: 'change', - }, - ], - accidentCausesPreliminaryAnalysis: [ - { - required: true, - message: '事故原因初步分析不能为空', - trigger: 'change', - }, - ], - emergencyPrecautions: [ - { - required: true, - message: '应急防范措施不能为空', - trigger: 'change', - }, - ], - }); - // 子传父 - // const emit=defineEmits(['myAdd']) - // 表单提交验证必填项 - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建事故快报') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - ruleForm.value.id = null; - accidentManagementSystemApi() - .accidentAdd(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } else if (title == '修改事故快报') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - ruleForm.value.fileList = [ - // { - // fileUrl: 'url', - // fileName: 'name', - // }, - ]; - accidentManagementSystemApi() - .accidentView(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - } - ruleForm.value = { - accidentExpressId: '', - emergencyPrecautions: '', - accidentCausesPreliminaryAnalysis: '', - accidentBriefProcess: '', - casualties: '', - accidentCause: '', - occurrenceTime: '', - occurrencePlace: '', - accidentDepartmentId: '', - accidentName: '', - fileList: [], - }; - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - const closeDialog = (formEl: FormInstance | undefined) => { - formEl.resetFields(); - console.log(ruleForm); - isShowDialog.value = false; - }; - // 是否有伤亡弹窗 - const typeChang = () => { - console.log('tag', ruleForm); - }; - const ShowUser = ref(); - const openDai = () => { - ShowUser.value.openDialog(ruleForm.value.id, disabled.value); - }; - // 应急队伍弹窗 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(); - }; - // 选择区域弹窗 - const openRef = ref(); - const regionsDialog = () => { - openRef.value.openDailog(); - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - ShowUser, - typeChang, - openDialog, - isShowDialog, - fileList, - responsibleDepartment, - data, - Search, - Edit, - ruleForm, - value1, - treeSelect, - daiInpt, - Shows, - ruleFormRef, - submitForm, - resetForm, - rules, - openUser, - userRef, - regionsDialog, - openDai, - openRef, - toggleFullscreen, - FullScreen, - full, - titles, - disabled, - emit, - propse, - department, - getTreeList, - newTreeList, - closeDialog, - fileListDemo, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> diff --git a/src/components/accidentManagementSystem/accidentExpress/index.vue b/src/components/accidentManagementSystem/accidentExpress/index.vue deleted file mode 100644 index ce1a6df..0000000 --- a/src/components/accidentManagementSystem/accidentExpress/index.vue +++ /dev/null @@ -1,346 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-input size="default" v-model="listQuery.searchParams.accidentName" placeholder="事故名称" style="max-width: 215px" /> - <el-button size="default" type="primary" class="ml10" @click="listApi"> 查询 </el-button> - <el-button size="default" class="ml10" @click="submitReset"> 重置 </el-button> - </div> - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> <Plus /> </el-icon>新建 - </el-button> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> <Edit /> </el-icon>修改 - </el-button> - <el-button size="default" type="danger" @click="onDeleteAll" plain :disabled="danger"> - <el-icon> <Delete /> </el-icon>删除 - </el-button> - </div> - <div class="button_Right"> - <!-- <el-button @click="upButton"> - <el-icon> - <Upload /> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Download /> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Refresh /> - </el-icon> - </el-button> --> - </div> - </div> - <el-table :data="tableData" style="width: 100%" ref="multipleTableRef" @selection-change="handleSelectionChange"> - <el-table-column align="center" type="selection" width="55" /> - <el-table-column align="center" prop="accidentName" label="事故名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" prop="deptName" label="事故部门" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" prop="occurrencePlace" label="发生地点" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" prop="occurrenceTime" label="发生时间" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" prop="accidentCause" label="事故原因" show-overflow-tooltip sortable> - <template #default="scope"> - <div v-if="scope.row.accidentCause=='1'">人的不安全行为</div> - <div v-if="scope.row.accidentCause=='2'">物的不安全状态</div> - </template> - </el-table-column> - <el-table-column align="center" prop="createName" label="创建人" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" prop="gmtModitify" label="更新时间" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="260" align="center" fixed="right"> - <template #default="scope"> - <!-- <el-button size="small" text disabled> - <el-icon style="margin-right: 5px"> <Upload /> </el-icon>上报 - </el-button> --> - <el-button size="small" text type="primary" @click="onEdit('修改', scope.row.id)"> - <el-icon style="margin-right: 5px"> <EditPen /> </el-icon>修改 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('详情', scope.row.id)"> - <el-icon style="margin-right: 5px"> <View /> </el-icon>详情 - </el-button> - <el-button size="small" text type="primary" @click="onDelete(scope.row.id)"> - <el-icon style="margin-right: 5px"> <Delete /> </el-icon>删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-card> - <OpenAdd ref="addRef" @myAdd="onMyAdd" /> - <upData ref="upShow"></upData> - </div> -</template> - -<script lang="ts"> -import { reactive, onMounted, ref, defineComponent } from 'vue'; -import { ElTable, ElMessage, ElMessageBox } from 'element-plus'; -import { Plus, View, Download, Refresh, EditPen, Edit, Delete, Upload } from '@element-plus/icons-vue'; -import OpenAdd from '/@/views/accidentManagementSystem/accidentExpress/component/openAdd.vue'; -import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; -import { accidentManagementSystemApi } from '/@/api/accidentManagementSystem'; -export default defineComponent({ - name: 'index', - components: { - EditPen, - Plus, - Upload, - Download, - Refresh, - Edit, - Delete, - UpData, - OpenAdd, - View, - }, - - setup() { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - accidentName: '', - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 列表数据请求 - const listApi = async () => { - let res = await accidentManagementSystemApi().accidentList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }; - onMounted(() => { - listApi(); - }); - // 重置 - const submitReset = () => { - listQuery.searchParams.accidentName = ''; - listApi(); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - listQuery.pageSize = val; - listApi(); - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - listQuery.pageIndex = val; - listApi(); - }; - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - - // 打开新增弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建事故快报',false); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 删除 - const onDelete = (data: any) => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - accidentManagementSystemApi() - .accidentDele([data]) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - accidentManagementSystemApi() - .accidentDele(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 上传 - const upShow = ref(); - const upButton = () => { - upShow.value.openDialog(); - }; - - // 打开修改用户弹窗 - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog('查看事故快报',row,true); - } else { - addRef.value.openDialog('修改事故快报',row,false); - } - }; - - return { - upButton, - upShow, - tableData, - pageIndex, - pageSize, - total, - handleSizeChange, - handleCurrentChange, - onEdit, - onOpenAdd, - addRef, - listQuery, - listApi, - submitReset, - warning, - danger, - handleSelectionChange, - onMyAdd, - onDelete, - deletAll, - onDeleteAll, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box { - padding: 20px; - background-color: #fff; -} -.tableForm { - margin-top: 10px; -} -/*按钮行*/ -.button_Line { - display: flex; - flex-direction: row; - justify-content: space-between; -} -//分页 -.pages { - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/accidentManagementSystem/accidentReport/component/openAdd.vue b/src/components/accidentManagementSystem/accidentReport/component/openAdd.vue deleted file mode 100644 index de8cecb..0000000 --- a/src/components/accidentManagementSystem/accidentReport/component/openAdd.vue +++ /dev/null @@ -1,665 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="800px" draggable :fullscreen="full" @close="closeDialog(ruleFormRef)"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" size="default" :rules="rules" label-width="140px"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故快报" prop="accidentName"> - <el-input v-model="ruleForm.accidentName" :disabled="true" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故部门" placeholder="请选择" prop="accidentDepartmentId"> - <!--<el-input v-model="ruleForm.accidentDepartmentName" class="input-with-select" />--> - <el-tree-select v-model="ruleForm.accidentDepartmentId" :disabled="true" :data="newTreeList" - :props="propse" class="w100" placeholder="请选择" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故发生地点" prop="occurrencePlace"> - <el-input v-model="ruleForm.occurrencePlace" :disabled="true" placeholder="请填写发生地点"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="发生时间" prop="occurrenceTime"> - <el-date-picker - v-model="ruleForm.occurrenceTime" - :disabled="true" - value-format="YYYY-MM-DD HH:mm:ss" - type="datetime" - class="w100" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故类别" prop="accidentType"> - <el-select v-model="ruleForm.accidentType" :disabled="disabled" class="w100" placeholder="请选择"> - <el-option label="人员伤亡事故" value="人员伤亡事故"></el-option> - <el-option label="火灾爆炸事故" value="火灾爆炸事故"></el-option> - <el-option label="危险品泄露事故" value="危险品泄露事故"></el-option> - <el-option label="设备事故" value="设备事故"></el-option> - <el-option label="工艺事故" value="工艺事故"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故等级" prop="accidentGrade"> - <el-select v-model="ruleForm.accidentGrade" :disabled="disabled" class="w100" placeholder="请选择"> - <el-option label="特别重大" value="人员伤亡事故"></el-option> - <el-option label="重大" value="重大"></el-option> - <el-option label="较大" value="较大"></el-option> - <el-option label="一般" value="一般"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="经济损失" prop="economicLoss"> - <el-input v-model="ruleForm.economicLoss" :disabled="disabled" placeholder="请填写经济损失"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="轻伤人数" prop="minorInjuryNum"> - <el-input v-model="ruleForm.minorInjuryNum" :disabled="disabled" placeholder="请填写轻伤人数"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="重伤人数" prop="seriousInjuryNum"> - <el-input v-model="ruleForm.seriousInjuryNum" :disabled="disabled" placeholder="请填写重伤人数"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="死亡人数" prop="deathNum"> - <el-input v-model="ruleForm.deathNum" :disabled="disabled" placeholder="请填写死亡人数"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故原因" prop="accidentCause"> - <el-input v-model="ruleForm.accidentCause" :disabled="disabled" placeholder="请填写事故原因"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="要求报告完成期限" prop="reportDeadline"> - <el-date-picker - v-model="ruleForm.reportDeadline" - :disabled="disabled" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故级别" prop="accidentLevel"> - <el-select v-model="ruleForm.accidentLevel" :disabled="disabled" class="w100" placeholder="请选择"> - <el-option label="特大事故" value="特大事故"></el-option> - <el-option label="重大事故" value="重大事故"></el-option> - <el-option label="较大事故" value="较大事故"></el-option> - <el-option label="一般事故" value="一般事故"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故延期申请" prop="accidentDelayApply"> - <el-input v-model="ruleForm.accidentDelayApply" :disabled="disabled" placeholder="请填写事故延期申请"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="原因综合分析(直接分析)" prop="comprehensiveAnalysisDirect"> - <el-input - v-model="ruleForm.comprehensiveAnalysisDirect" - :disabled="disabled" - type="textarea" - placeholder="请填写原因综合分析(直接分析)" - maxlength="150" - ></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="原因综合分析(间接分析)" prop="comprehensiveAnalysisIndirect"> - <el-input - v-model="ruleForm.comprehensiveAnalysisIndirect" - :disabled="disabled" - type="textarea" - placeholder="请填写原因综合分析(间接分析)" - maxlength="150" - ></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="整改措施" prop="rectificationMeasures"> - <el-input v-model="ruleForm.rectificationMeasures" :disabled="disabled" - type="textarea" placeholder="请填写整改措施" maxlength="150"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故处理" prop="accidentHandling"> - <el-input v-model="ruleForm.accidentHandling" :disabled="disabled" - type="textarea" placeholder="请填写事故处理" maxlength="150"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="填写人" prop="fillInUserName"> - <el-input v-model="ruleForm.fillInUserName" :disabled="true" - placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="填写日期" prop="fillInTime"> - <el-date-picker - v-model="ruleForm.fillInTime" - :disabled="disabled" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">--> - <!-- <el-form-item label="事故照片">--> - <!-- <el-input v-model="ruleForm.describe" type="textarea" placeholder="请填写应急防范措施" maxlength="150"></el-input>--> - <!-- </el-form-item>--> - <!-- </el-col>--> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="相关人员笔录" prop="relevantPersonnelRecords"> - <el-input v-model="ruleForm.relevantPersonnelRecords" :disabled="disabled" - type="textarea" placeholder="请填写相关人员笔录" maxlength="150"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故状态" prop="status"> - <el-select v-model="ruleForm.status" :disabled="statusDisabled" class="w100" placeholder="请选择"> - <el-option label="处理中" :value="1"></el-option> - <el-option label="已处理" :value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="事故分析会议纪要" prop="fileList"> - <uploaderImg :fileList="fileList" :disabled="disabled"></uploaderImg> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="其他材料" prop="otherMaterials"> - <el-input v-model="ruleForm.otherMaterials" :disabled="disabled" - type="textarea" placeholder="请填写其他材料" maxlength="150"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <AccidentName @selectItem="onSelectItem" ref="Shows" /> - <DailogSearchUserManger @SearchUser="onUser" ref="userRef" /> - <RegionsDialog ref="openRef" /> - </div> -</template> - -<script lang="ts"> -import { reactive, ref, defineComponent,onMounted } from 'vue'; - -import type { UploadUserFile, FormInstance, FormRules } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue'; -import AccidentName from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue'; -import RegionsDialog from '/@/components/regionsDialog/index.vue'; -import uploaderImg from '/@/components/uploaderImg/index.vue'; -import { emergencySuppliesApi } from '/@/api/contingencyManagement/emergencyResources'; -import { accidentManagementSystemApi } from '/@/api/workInjuryDeclaration'; -import { goalManagementApi } from '/@/api/goalManagement'; - -export default defineComponent({ - name: 'openAdd', - components: { - AccidentName, - DailogSearchUserManger, - RegionsDialog, - uploaderImg - }, - setup(props, { emit }) { - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - //定义表单 - const ruleForm = ref({ - accidentExpressId:'', - accidentExpressName:'', - accidentDepartmentId:'', - accidentDepartmentName:'', - occurrencePlace:'', - occurrenceTime:'', - - - - accidentType: '', - accidentGrade: '', - economicLoss: '', - minorInjuryNum: '', - seriousInjuryNum: '', - deathNum: '', - accidentCause: '', - reportDeadline: '', - accidentLevel: '', - accidentDelayApply: '', - comprehensiveAnalysisDirect: '', - comprehensiveAnalysisIndirect: '', - rectificationMeasures: '', - accidentHandling: '', - fillInUserUid: '', - fillInUserName:'', - fillInTime: '', - relevantPersonnelRecords: '', - otherMaterials: '', - fileList: [], - status:'' - }); - const titles = ref(); - const disabled = ref(); - const statusDisabled = ref(true) - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean,statusDisabledFlag:string) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if(statusDisabledFlag.value=='first'){ - ruleForm.value.status = 1 - }else if(statusDisabledFlag.value=='second'){ - ruleForm.value.status = 2 - } - if (title == '修改事故报告') { - statusDisabled.value = false - }else { - statusDisabled.value = true - } - if (title == '查看事故报告' || title == '修改事故报告') { - accidentManagementSystemApi() - .seeAccidentReport(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } - }; - // 关闭弹窗 - const closeDialog = (formEl: FormInstance | undefined) => { - formEl.resetFields(); - console.log(ruleForm) - isShowDialog.value = false; - }; - // 取消 - const onCancel = (formEl: FormInstance | undefined) => { - closeDialog(formEl); - }; - //日期选择器 - const value1 = ref(''); - // 上传附件 - const fileList = ref<UploadUserFile[]>([]); - // 可选择树 - const treeSelect = ref(); - //定义树形下拉框 - const responsibleDepartment = ref(); - const data = [ - ]; - // 必填项提示 - const rules = reactive<FormRules>({ - accidentDepartmentId: [ - { - required: true, - message: '事故部门不能为空', - trigger: 'change', - }, - ], - occurrenceTime: [ - { - required: true, - message: '发生时间不能为空', - trigger: 'blur', - }, - ], - accidentType: [ - { - required: true, - message: '事故类别不能为空', - trigger: 'change', - }, - ], - accidentGrade: [ - { - required: true, - message: '事故等级不能为空', - trigger: 'change', - }, - ], - economicLoss: [ - { - required: true, - message: '经济损失不能为空', - trigger: 'change', - }, - ], - reportDeadline: [ - { - required: true, - message: '要求报告完成期限不能为空', - trigger: 'blur', - }, - ], - accidentLevel: [ - { - required: true, - message: '事故级别不能为空', - trigger: 'change', - }, - ], - comprehensiveAnalysisDirect: [ - { - required: true, - message: '原因综合分析(直接分析)不能为空', - trigger: 'blur', - }, - ], - comprehensiveAnalysisIndirect: [ - { - required: true, - message: '原因综合分析(间接分析)不能为空', - trigger: 'blur', - }, - ], - rectificationMeasures: [ - { - required: true, - message: '整改措施不能为空', - trigger: 'blur', - }, - ], - accidentHandling: [ - { - required: true, - message: '事故处理不能为空', - trigger: 'change', - }, - ], - fillInUserName: [ - { - required: true, - message: '填写人不能为空', - trigger: 'change', - }, - ], - fillInTime: [ - { - type: 'date', - required: true, - message: '填写日期不能为空', - trigger: 'blur', - }, - ], - status: [ - { - required: true, - message: '事故状态不能为空', - trigger: 'change', - }, - ], - }); - //事故快报回填 - const onSelectItem = (item: any) => { - console.log('item', item[0]); - ruleForm.value.accidentExpressId = item[0].id - ruleForm.value.accidentName = item[0].accidentName - ruleForm.value.accidentDepartmentId = item[0].accidentDepartmentId - ruleForm.value.accidentDepartmentName = item[0].deptName - ruleForm.value.occurrencePlace = item[0].occurrencePlace - ruleForm.value.occurrenceTime = item[0].occurrenceTime - }; - // 表单提交验证必填项 - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建事故报告') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - accidentManagementSystemApi() - .addAccidentReport(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } else if (title == '修改事故报告') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - //TODO 上传组件待定 - ruleForm.value.fileList = [] - isShowDialog.value = false; - accidentManagementSystemApi() - .editAccidentReport(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - accidentExpressId:'', - accidentExpressName:'', - accidentDepartmentId:'', - accidentDepartmentName:'', - occurrencePlace:'', - occurrenceTime:'', - - - - accidentType: '', - accidentGrade: '', - economicLoss: '', - minorInjuryNum: '', - seriousInjuryNum: '', - deathNum: '', - accidentCause: '', - reportDeadline: '', - accidentLevel: '', - accidentDelayApply: '', - comprehensiveAnalysisDirect: '', - comprehensiveAnalysisIndirect: '', - rectificationMeasures: '', - accidentHandling: '', - fillInUserUid: '', - fillInUserName:'', - fillInTime: '', - relevantPersonnelRecords: '', - otherMaterials: '', - fileList: [], - status:'' - }; - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - const handleChange = (val: number) => { - console.log(val); - }; - // 应急队伍弹窗 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(); - }; - // 选择区域弹窗 - const openRef = ref(); - const regionsDialog = () => { - openRef.value.openDailog(); - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - const onUser = (userItem: any) => { - ruleForm.value.fillInUserUid = userItem[0].uid; - ruleForm.value.fillInUserName = userItem[0].realName; - }; - //el-tree-select回显 - const propse = { - label: 'depName', - children: 'children', - }; - const newTreeList = []; - //得到部门树 - const department = async () => { - await goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - getTreeList(res.data.data, newTreeList); - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 递归树状数据且修改字段名 - const getTreeList = (treeList, newTreeList) => { - treeList.map((c) => { - let tempData = { - depName: c.depName, - value: c.depId, - children: [], - }; - if (c.children && c.children.length > 0) { - tempData.children = []; - getTreeList(c.children, tempData.children); - } - newTreeList.push(tempData); - }); - }; - onMounted(() => { - department(); - }); - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - fileList, - responsibleDepartment, - data, - Search, - ruleForm, - value1, - treeSelect, - daiInpt, - Shows, - ruleFormRef, - submitForm, - rules, - openUser, - userRef, - regionsDialog, - openRef, - toggleFullscreen, - FullScreen, - full, - onUser, - resetForm, - titles, - disabled, - emit, - handleChange, - onSelectItem, - newTreeList, - department, - getTreeList, - propse, - statusDisabled - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -::v-deep .el-form-item--default .el-form-item__label { - height: 100%; - text-align: right; -} -</style> diff --git a/src/components/accidentManagementSystem/accidentReport/index.vue b/src/components/accidentManagementSystem/accidentReport/index.vue deleted file mode 100644 index 6694d4b..0000000 --- a/src/components/accidentManagementSystem/accidentReport/index.vue +++ /dev/null @@ -1,387 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane - v-for="item in editableTabs" - :key="item.name" - :label="item.title" - :name="item.name" - > - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> - <Plus /> - </el-icon>新建 - </el-button> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> - <Edit /> - </el-icon>修改 - </el-button> - <el-button size="default" type="danger" plain @click="onDeleteAll" :disabled="danger"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </div> - <div class="button_Right"> - <el-button @click="upButton"> - <el-icon> - <Upload /> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Download /> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Refresh /> - </el-icon> - </el-button> - </div> - </div> - <el-table - :data="tableData" - style="width: 100%" - ref="multipleTableRef" - @selection-change="handleSelectionChange" - > - <el-table-column - type="selection" - width="55" - /> - <el-table-column prop="accidentName" label="事故名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="deptName" label="事故部门" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="accidentType" label="事故类别" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="accidentGrade" label="事故等级" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="occurrencePlace" label="发生地点" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="occurrenceTime" label="发生时间" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="260" align="center" fixed="right"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> - <el-icon style="margin-right: 5px"> <View /> </el-icon>查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)"> - <el-icon style="margin-right: 5px"> <EditPen /> </el-icon>修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> 删除 </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="40" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-tab-pane> - <!--<el-tab-pane label="已处理" name="second"></el-tab-pane>--> - </el-tabs> - </el-card> - <OpenAdd ref="addRef" @myAdd="onMyAdd" /> -<!-- <upData ref="upShow"></upData>--> - </div> -</template> - -<script lang="ts"> -import { - // toRefs, - reactive, - onMounted, - ref, - defineComponent -} from 'vue'; -import { - // ElTable, - ElMessageBox, - ElMessage, - TabsPaneContext, -} from 'element-plus'; -import { - Plus, - Upload, - Download, - Refresh, - EditPen, - View, - Delete, - Edit, -} from '@element-plus/icons-vue' -import OpenAdd from '/@/views/accidentManagementSystem/accidentReport/component/openAdd.vue' -import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; -import {accidentManagementSystemApi} from "/@/api/workInjuryDeclaration"; - - -export default defineComponent({ - name: 'systemUser', - components: { - EditPen, - Plus, - Upload, - Download, - Refresh, - UpData, - Edit, - Delete, - OpenAdd, - View, - }, - setup() { - const activeName = ref('first') - const statusDisabledFlag = ref('first')//控制弹窗中的事件状态是否可以修改 - const handleClick = (tab: TabsPaneContext, event: Event) => { - if(tab.props.name=='first'){ - listQuery.searchParams.status=1 - statusDisabledFlag.value = 'first' - listApi() - }else if(tab.props.name=='second'){ - listQuery.searchParams.status=2 - statusDisabledFlag.value = 'second' - listApi() - } - } - - const editableTabs = ref([ - { - title: '处理中', - name: 'first', - }, - { - title: '已处理', - name: 'second', - }, - ]) - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - status: 1, - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 请求列表数据 - const listApi = async () => { - let res = await accidentManagementSystemApi().getAccidentReportList(listQuery); - // console.log(res); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }; - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - // console.log(deletAll.value); - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - // 页面加载时 - onMounted(() => { - listApi(); - }); - // 打开新建用户弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建事故报告','',false,statusDisabledFlag); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 打开修改用户弹窗 - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog('查看事故报告',row,true,statusDisabledFlag); - } else { - addRef.value.openDialog('修改事故报告',row,false,statusDisabledFlag); - } - }; - // 上传 - // const upShow=ref() - // const upButton=()=>{ - // upShow.value.openDialog() - // } - // 删除用户 - const onRowDel = (data: any) => { - var deleteList = [data] - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - accidentManagementSystemApi() - .deleteAccidentReport(deleteList) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - accidentManagementSystemApi() - .deleteAccidentReport(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - return { - onOpenAdd, - addRef, - activeName, - handleClick, - // upButton, - // upShow, - tableData, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - listApi, - handleSelectionChange, - warning, - danger, - listQuery, - onRowDel, - total, - onMyAdd, - onDeleteAll, - onEdit, - editableTabs - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box{ - padding: 20px; - background-color: #fff; -} -.tableForm{ - margin-top: 10px; -} -/*按钮行*/ -.button_Line{ - display: flex; - flex-direction: row; - justify-content: space-between; -} -//分页 -.pages{ - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled{ - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next{ - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue b/src/components/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue deleted file mode 100644 index d349645..0000000 --- a/src/components/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue +++ /dev/null @@ -1,240 +0,0 @@ -<template> - <div> - <el-dialog v-model="dialogVisible" title="选择事故名称" width="900px" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row> - <el-col :span="18"> - <el-row> - <el-form ref="ruleFormRef" :model="ruleForm" :inline="true" status-icon> - <!--<el-form-item>--> - <!--<el-input size="default" v-model="listQuery.searchParams.id" placeholder="id" style="min-width: 215px;"/>--> - <!--</el-form-item>--> - <el-form-item> - <el-input size="default" v-model="listQuery.searchParams.accidentName" placeholder="事故名称" style="min-width: 215px" /> - </el-form-item> - <!--<el-form-item>--> - <!--<el-input size="default" v-model="listQuery.searchParams.deptName" placeholder="事故部门" style="min-width: 215px;"/>--> - <!--</el-form-item>--> - <!--<el-form-item>--> - <!--<el-input size="default" v-model="listQuery.searchParams.occurrencePlace" placeholder="发生地点" style="min-width: 215px;"/>--> - <!--</el-form-item>--> - <!--<el-form-item>--> - <!--<el-input size="default" v-model="listQuery.searchParams.occurrenceTime" placeholder="发生时间" style="min-width: 215px;"/>--> - <!--</el-form-item>--> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="submitReset">重置</el-button> - <el-button size="default" :icon="Delete" @click="handleClose">清除选择</el-button> - </el-form-item> - </el-form> - </el-row> - <!--<el-table :data="tableData" style="width: 100%;margin-top:20px">--> - <!--<el-table-column type="selection" width="55" />--> - <!--<el-table-column align="center" prop="date" label="id" />--> - <!--<el-table-column align="center" prop="name" label="事故名称"/>--> - <!--<el-table-column align="center" prop="date" label="事故部门" />--> - <!--<el-table-column align="center" prop="name" label="发生地点"/>--> - <!--<el-table-column align="center" prop="name" label="发生时间"/>--> - <!--</el-table>--> - <!--<div class="pages">--> - <!--<el-pagination--> - <!--v-model:currentPage="currentPage4"--> - <!--v-model:page-size="pageSize4"--> - <!--:page-sizes="[100, 200, 300, 400]"--> - <!--:small="small"--> - <!--:disabled="disabled"--> - <!--:background="background"--> - <!--layout="total, sizes, prev, pager, next, jumper"--> - <!--:total="400"--> - <!--@size-change="handleSizeChange"--> - <!--@current-change="handleCurrentChange"--> - <!--/>--> - <!--</div>--> - <el-table :data="tableData" style="width: 100%" ref="multipleTableRef"> - <el-table-column align="center"> - <template #default="scope"> - <el-radio-group v-model="radio1"> - <el-radio :label="scope.row.id" size="large" @click="checkedItem(scope.row)">{{ null }}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <!--<el-table-column prop="id" label="id" show-overflow-tooltip></el-table-column>--> - <el-table-column prop="accidentName" label="事故名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="deptName" label="事故部门" show-overflow-tooltip></el-table-column> - <el-table-column prop="occurrencePlace" label="发生地点" show-overflow-tooltip></el-table-column> - <el-table-column prop="occurrenceTime" label="发生时间" show-overflow-tooltip></el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-col> - <el-col :span="6"> - <el-tag v-for="tag in dynamicTags" :key="tag" class="mx-1" style="margin: 5px" closable :disable-transitions="false" @close="handleClose()"> - {{ tag.accidentName }} - </el-tag> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> - </div> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref } from 'vue'; -import { Delete, FullScreen } from '@element-plus/icons-vue'; -import { - // ElTable, - ElMessage, -} from 'element-plus'; -import { accidentManagementSystemApi } from '/@/api/workInjuryDeclaration'; -export default defineComponent({ - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const openDailog = () => { - dialogVisible.value = true; - listApi(); - }; - // 搜索条件 - const ruleForm = reactive({ - pass: '', - }); - // 定义表格数据 - const tableData = ref([]); - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - accidentName: '', - }, - }); - //单选按钮 - const radio1 = ref(''); - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - const checkedItem = (row: object) => { - dynamicTags.value = [row]; - }; - // 重置 - const submitReset = () => { - listQuery.searchParams = {}; - listApi(); - }; - const submitForm = () => { - emit('selectItem', dynamicTags.value); - dialogVisible.value = false; - }; - //查询list数据 - const listApi = async () => { - let res = await accidentManagementSystemApi().accidentList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }; - // 右方点击添加后显示标签 - const dynamicTags = ref([]); - const handleClose = () => { - dynamicTags.value = []; - radio1.value = ''; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - openDailog, - ruleForm, - tableData, - handleSizeChange, - handleCurrentChange, - dynamicTags, - handleClose, - Delete, - toggleFullscreen, - FullScreen, - full, - pageIndex, - pageSize, - total, - listApi, - listQuery, - radio1, - checkedItem, - submitReset, - submitForm, - }; - }, -}); -</script> -<style scoped> -.el-form--inline .el-form-item { - margin-bottom: 18px !important; - margin-right: 12px; -} -/*分页*/ -.pages { - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> diff --git a/src/components/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue b/src/components/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue deleted file mode 100644 index 581cd61..0000000 --- a/src/components/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue +++ /dev/null @@ -1,510 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="769px" draggable :fullscreen="full" @close="closeDialog(ruleFormRef)"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="120px" :rules="rules"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="申报人姓名" prop="declareUserName"> - <el-input v-model="ruleForm.declareUserName" :disabled="disabled" placeholder="请填写申报人姓名"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="申报人性别" prop="declareUserGender"> - <el-radio-group v-model="ruleForm.declareUserGender" :disabled="disabled"> - <el-radio :label="false">男</el-radio> - <el-radio :label="true">女</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="申报人部门" placeholder="请选择" prop="declareDepartmentId"> - <el-tree-select v-model="ruleForm.declareDepartmentId" :disabled="disabled" - :data="newTreeList" :props="propse" class="w100" placeholder="请选择" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故名称" prop="accidentName"> - <el-input v-model="ruleForm.accidentName" :disabled="true" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故发生时间" prop="occurrenceTime"> - <el-date-picker - v-model="ruleForm.occurrenceTime" - :disabled="true" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="工伤类型" prop="workInjuryType"> - <el-select v-model="ruleForm.workInjuryType" :disabled="disabled" class="w100" placeholder="请选择"> - <el-option label="轻微伤" value="轻微伤"></el-option> - <el-option label="轻伤" value="轻伤"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="申报日期" prop="declareDate"> - <el-date-picker - v-model="ruleForm.declareDate" - :disabled="disabled" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="损失工时" prop="lostTime"> - <el-input v-model="ruleForm.lostTime" :disabled="disabled" placeholder="请填写损失工时"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="就诊医院" prop="visitHospital"> - <el-input v-model="ruleForm.visitHospital" :disabled="disabled" placeholder="请填写就诊医院"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="就诊结果" prop="visitResult"> - <el-input v-model="ruleForm.visitResult" :disabled="disabled" placeholder="请填写就诊结果"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="相关附件"> - <uploaderImg :fileList="fileList" :disabled="disabled"></uploaderImg> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="注意事项" prop="mattersNeedingAttention"> - <el-input v-model="ruleForm.mattersNeedingAttention" :disabled="disabled" placeholder="请填写注意事项"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="材料是否齐全" prop="completeMaterials"> - <el-radio-group v-model="ruleForm.completeMaterials" :disabled="disabled"> - <el-radio :label="false">否</el-radio> - <el-radio :label="true">是</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="备注" prop="remark"> - <el-input v-model="ruleForm.remark" :disabled="disabled" type="textarea" placeholder="请填写备注" maxlength="150"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <AccidentName @selectItem="onSelectItem" ref="showRef" /> - <userSelections ref="userRef" /> - <RegionsDialog ref="openRef" /> - </div> -</template> - -<script lang="ts"> -import { - reactive, - ref, - defineComponent, - onMounted -} from 'vue'; - -import type { UploadUserFile, FormInstance,FormRules } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import UserSelections from '/@/components/userSelections/index.vue'; -import AccidentName from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue'; -import RegionsDialog from '/@/components/regionsDialog/index.vue'; -import uploaderImg from '/@/components/uploaderImg/index.vue'; -import { emergencySuppliesApi } from '/@/api/contingencyManagement/emergencyResources'; -import { accidentManagementSystemApi } from '/@/api/workInjuryDeclaration'; -import { goalManagementApi } from '/@/api/goalManagement'; - -export default defineComponent({ - name: 'openAdd', - components: { - AccidentName, - UserSelections, - RegionsDialog, - uploaderImg - }, - setup(props, { emit }) { - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - //定义表单 - const ruleForm = ref({ - declareUserName: '', - declareUserGender: '', - declareDepartmentId: '', - accidentName:'', - accidentExpressId: '', - workInjuryType: '', - declareDate: '', - lostTime: '', - visitHospital: '', - visitResult: '', - mattersNeedingAttention: '', - completeMaterials: '', - remark: '', - fileList: [ - { - fileName: '', - fileUrl: '', - }, - ], - }); - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if (title == '查看工伤申报' || title == '修改工伤申报') { - accidentManagementSystemApi() - .seeAccidentManagementSystem(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } - }; - //日期选择器 - const value1 = ref(''); - // 上传附件 - const fileList = ref<UploadUserFile[]>([]); - // 可选择树 - const treeSelect = ref(); - const tree = [ - ]; - //定义树形下拉框 - const responsibleDepartment = ref(); - const data = [ - - ]; - //el-tree-select回显 - const propse = { - label: 'depName', - children: 'children', - }; - const newTreeList = []; - //得到部门树 - const department = async () => { - await goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - getTreeList(res.data.data, newTreeList); - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 递归树状数据且修改字段名 - const getTreeList = (treeList, newTreeList) => { - treeList.map((c) => { - let tempData = { - depName: c.depName, - value: c.depId, - children: [], - }; - if (c.children && c.children.length > 0) { - tempData.children = []; - getTreeList(c.children, tempData.children); - } - newTreeList.push(tempData); - }); - }; - onMounted(() => { - department(); - }); - // 关闭弹窗 - const closeDialog = (formEl: FormInstance | undefined) => { - formEl.resetFields(); - isShowDialog.value = false; - }; - // 必填项提示 - const rules = reactive<FormRules>({ - declareUserName: [ - { - required: true, - message: '申报人姓名不能为空', - trigger: 'change', - }, - ], - declareUserGender: [ - { - required: true, - message: '申报人性别不能为空', - trigger: 'change', - }, - ], - declareDepartmentId: [ - { - required: true, - message: '申报人部门不能为空', - trigger: 'change', - }, - ], - accidentName: [ - { - required: true, - message: '事故名称不能为空', - trigger: 'change', - }, - ], - workInjuryType: [ - { - required: true, - message: '工伤类型不能为空', - trigger: 'change', - }, - ], - declareDate: [ - { - required: true, - message: '申报日期不能为空', - trigger: 'blur', - }, - ], - lostTime: [ - { - required: true, - message: '损失工时不能为空', - trigger: 'change', - }, - ], - visitHospital: [ - { - required: true, - message: '就诊医院不能为空', - trigger: 'change', - }, - ], - visitResult: [ - { - required: true, - message: '就诊结果不能为空', - trigger: 'change', - }, - ], - mattersNeedingAttention: [ - { - required: true, - message: '注意事项不能为空', - trigger: 'change', - }, - ], - completeMaterials: [ - { - required: true, - message: '材料状态不能为空', - trigger: 'change', - }, - ], - remark: [ - { - required: true, - message: '备注不能为空', - trigger: 'change', - }, - ] - }) - - // 事故名称弹窗 - const showRef = ref(); - const daiInpt = () => { - showRef.value.openDailog(); - }; - //事故快报回填 - const onSelectItem = (item: any) => { - console.log('item', item); - ruleForm.value.accidentExpressId = item[0].id - ruleForm.value.accidentName = item[0].accidentName - ruleForm.value.occurrenceTime = item[0].occurrenceTime - - }; - // 表单提交验证必填项 - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建工伤申报') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - accidentManagementSystemApi() - .workAdd(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } else if (title == '修改工伤申报') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - accidentManagementSystemApi() - .workView(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - declareUserName: '', - declareUserGender: '', - declareDepartmentId: '', - accidentExpressId: '', - workInjuryType: '', - declareDate: '', - lostTime: '', - visitHospital: '', - visitResult: '', - mattersNeedingAttention: '', - completeMaterials: '', - remark: '', - fileList: [ - { - fileName: '', - fileUrl: '', - }, - ], - }; - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - // 选择区域弹窗 - const openRef = ref(); - const regionsDialog = () => { - openRef.value.openDailog(); - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - daiInpt, - openDialog, - isShowDialog, - fileList, - responsibleDepartment, - data, - Search, - ruleForm, - value1, - treeSelect, - tree, - showRef, - ruleFormRef, - submitForm, - rules, - openUser, - userRef, - regionsDialog, - openRef, - toggleFullscreen, - FullScreen, - full, - resetForm, - titles, - disabled, - emit, - onSelectItem, - department, - getTreeList, - newTreeList, - propse, - closeDialog, - uploaderImg - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> diff --git a/src/components/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue b/src/components/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue deleted file mode 100644 index f3ef29b..0000000 --- a/src/components/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue +++ /dev/null @@ -1,400 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - title="新建事故快报" - v-model="isShowDialog" - width="769px" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form - ref="ruleFormRef" - :model="ruleForm" - size="default" - label-width="120px" - > - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故名称" prop="teamName"> - <el-input v-model="ruleForm.teamName" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故部门" placeholder="请选择"> - <el-tree-select - v-model="ruleForm.responsibleDepartment" - :data="data" class="w100" - placeholder="请选择"/> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="发生地点" prop="teamLeader"> - <el-input v-model="ruleForm.teamName" placeholder="请填写发生地点"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="发生时间" prop="telephone"> - <el-date-picker - v-model="value1" - type="datetime" - class="w100" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故原因" prop="teamLevel"> - <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择"> - <el-option label="人的不安全行为" value="admin"></el-option> - <el-option label="物的不安全状态" value="common"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="是否有伤亡"> - <el-radio-group v-model="ruleForm.resource"> - <el-radio label="是" /> - <el-radio label="否" /> - </el-radio-group> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故简要经过"> - <el-input v-model="ruleForm.describe" type="textarea" placeholder="请填写事故简要经过" maxlength="150"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故原因初步分析"> - <el-input v-model="ruleForm.describe" type="textarea" placeholder="请填写事故原因初步分析" maxlength="150"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急防范措施"> - <el-input v-model="ruleForm.describe" type="textarea" placeholder="请填写应急防范措施" maxlength="150"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="事故照片"> - <el-input v-model="ruleForm.describe" type="textarea" placeholder="请填写应急防范措施" maxlength="150"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="onCancel" size="default">关闭</el-button> - <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <CheckTemplate ref="Shows"/> - <userSelections ref="userRef"/> - <RegionsDialog ref="openRef"/> - </div> -</template> - -<script lang="ts"> -import { - reactive, - ref, - defineComponent -} from 'vue'; - -import type { - UploadUserFile, - FormInstance, - // FormRules, -} from 'element-plus' - -import { - Search, - FullScreen -} from '@element-plus/icons-vue' -import UserSelections from "/@/components/userSelections/index.vue" -import CheckTemplate from '/@/components/checkTemplate/index.vue' -import RegionsDialog from '/@/components/regionsDialog/index.vue' - -export default defineComponent({ - name: 'openEdit', - components: { - CheckTemplate, - UserSelections, - RegionsDialog, - }, - setup() { - const isShowDialog = ref(false) - - const ruleFormRef = ref<FormInstance>() - //定义表单 - const ruleForm = reactive({ - teamName: '', // 队伍名称 - teamLeader: '', //队伍负责人 - department: [], // 负责人部门 - phone: '', // 负责人手机 - telephone: '', // 固定电话 - }); - // 打开弹窗 - const openDialog = () => { - // state.ruleForm = row; - isShowDialog.value = true; - }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - // 取消 - const onCancel = () => { - closeDialog(); - }; - //日期选择器 - const value1 = ref('') - // 上传附件 - const fileList = ref<UploadUserFile[]>([]) - // 可选择树 - const treeSelect = ref() - const tree = [ - { - value: '1', - label: 'Level one 1', - children: [ - { - value: '1-1', - label: 'Level two 1-1', - children: [ - { - value: '1-1-1', - label: 'Level three 1-1-1', - }, - ], - }, - ], - }, - { - value: '2', - label: 'Level one 2', - children: [ - { - value: '2-1', - label: 'Level two 2-1', - children: [ - { - value: '2-1-1', - label: 'Level three 2-1-1', - }, - ], - }, - { - value: '2-2', - label: 'Level two 2-2', - children: [ - { - value: '2-2-1', - label: 'Level three 2-2-1', - }, - ], - }, - ], - }, - { - value: '3', - label: 'Level one 3', - children: [ - { - value: '3-1', - label: 'Level two 3-1', - children: [ - { - value: '3-1-1', - label: 'Level three 3-1-1', - }, - ], - }, - { - value: '3-2', - label: 'Level two 3-2', - children: [ - { - value: '3-2-1', - label: 'Level three 3-2-1', - }, - ], - }, - ], - }, - ] - //定义树形下拉框 - const responsibleDepartment = ref() - const data = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '经营班子', - children: [], - }, - ], - }, - { - value: '2', - label: '生产运行部', - children: [ - { - value: '2-1', - label: '灌装一班', - children: [] - }, - { - value: '2-2', - label: '工艺四班', - children: [], - }, - ], - }, - { - value: '3', - label: '设备部', - children: [ - { - value: '3-1', - label: '仪表班', - children: [], - }, - { - value: '3-2', - label: '机修班', - children: [], - }, - ], - }, - ] - // 必填项提示 - // const rules = reactive<FormRules>({ - // teamName: [ - // { - // required: true, - // message: '队伍名称不能为空', - // trigger: 'change', - // }, - // ], - // teamLevel: [ - // { - // required: true, - // message: '队伍级别不能为空', - // trigger: 'change', - // }, - // ], - // teamLeader: [ - // { - // required: true, - // message: '队伍负责人不能为空', - // trigger: 'change', - // }, - // ], - // responsibleDepartment: [ - // { - // required: true, - // message: '负责人部门不能为空', - // trigger: 'change', - // }, - // ], - // teamPhone: [ - // { - // required: true, - // message: '负责人手机不能为空', - // trigger: 'change', - // }, - // ], - // telephone: [ - // { - // required: true, - // message: '固定电话不能为空', - // trigger: 'change', - // }, - // ], - // }) - // 表单提交验证必填项 - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - console.log('submit!') - } else { - console.log('error submit!', fields) - } - }) - } - // 应急队伍弹窗 - const Shows=ref() - const daiInpt=()=>{ - Shows.value.openDailog() - } - // 选择区域弹窗 - const openRef=ref() - const regionsDialog=()=>{ - openRef.value.openDailog() - } - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - fileList, - responsibleDepartment, - data, - Search, - ruleForm, - value1, - treeSelect, - tree, - daiInpt, - Shows, - ruleFormRef, - submitForm, - // rules, - openUser, - userRef, - regionsDialog, - openRef, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea{ - height: 168px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 168px!important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal{ - height: 0; - margin: 0; - border-top: transparent; -} -.el-select{ - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/accidentManagementSystem/workInjuryDeclaration/index.vue b/src/components/accidentManagementSystem/workInjuryDeclaration/index.vue deleted file mode 100644 index 503246d..0000000 --- a/src/components/accidentManagementSystem/workInjuryDeclaration/index.vue +++ /dev/null @@ -1,406 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-form ref="ruleFormRef" size="default" label-width="80px" :inline="true"> - <el-form-item prop="telephone"> - <el-input v-model="listQuery.searchParams.accidentName" placeholder="请选择事故快报" :disabled="true" - class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt"/> - </template> - </el-input> - </el-form-item> - <el-button size="default" type="primary" class="ml10" @click="listApi"> 查询</el-button> - <el-button size="default" class="ml10" @click="submitReset"> 重置</el-button> - </el-form> - </div> - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> - <Plus/> - </el-icon> - 新建 - </el-button> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> - <Edit/> - </el-icon> - 修改 - </el-button> - <el-button size="default" type="danger" plain @click="onDeleteAll" :disabled="danger"> - <el-icon> - <Delete/> - </el-icon> - 删除 - </el-button> - </div> - <div class="button_Right"> - <el-button @click="upButton"> - <el-icon> - <Upload/> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Download/> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Refresh/> - </el-icon> - </el-button> - </div> - </div> - <el-table :data="tableData" style="width: 100%" ref="multipleTableRef" - @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55"/> - <el-table-column prop="declareUserName" label="申报人名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="deptName" label="申报人部门" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="accidentName" label="事故名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="workInjuryType" label="工商类型" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="declareDate" label="申报日期" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="visitHospital" label="就诊医院" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="260" align="center" fixed="right"> - <template #default="scope"> - <!--<el-button size="small" text disabled>--> - <!--<el-icon style="margin-right: 5px"> <Upload /> </el-icon>上报--> - <!--</el-button>--> - <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> - <el-icon style="margin-right: 5px"> - <View/> - </el-icon> - 查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)"> - <el-icon style="margin-right: 5px"> - <EditPen/> - </el-icon> - 修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> 删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-card> - <AccidentName ref="showRef" @selectItem="onSelectItem"/> - <OpenAdd ref="addRef" @myAdd="onMyAdd"/> - <!-- <OpenEdit ref="editRef" />--> - <upData ref="upShow"></upData> - </div> -</template> - -<script lang="ts"> - import { - // toRefs, - reactive, - // onMounted, - ref, - defineComponent, - onMounted, - } from 'vue'; - import { - ElMessageBox, - ElMessage - } from 'element-plus'; - import { - Plus, - Download, - Refresh, - View, - EditPen, - Edit, - Delete, - Search, - Upload - } from '@element-plus/icons-vue'; - import AccidentName from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue'; - import OpenAdd from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue'; - import OpenEdit from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue'; - import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; - import {accidentManagementSystemApi} from '/@/api/accidentManagementSystem'; - - export default defineComponent({ - name: 'index', - components: { - OpenEdit, - EditPen, - Plus, - Upload, - Download, - Refresh, - Edit, - View, - Delete, - UpData, - OpenAdd, - AccidentName, - }, - setup() { - //列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - accidentExpressId: "", - }, - }); - //搜索条件回填 - const onSelectItem = (item: any) => { - console.log('item', item[0].accidentName); - listQuery.searchParams.accidentExpressId = item[0].id - listQuery.searchParams.accidentName = item[0].accidentName - }; - // 定义表格数据 - const tableData = ref([]); - // 请求列表数据 - const listApi = async () => { - let res = await accidentManagementSystemApi().workList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }; - onMounted(() => { - listApi(); - }); - // 重置 - const submitReset = () => { - listQuery.searchParams.accidentExpressId = '' - listQuery.searchParams.accidentName = '' - listApi(); - } - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - // 事故名称弹窗 - const showRef = ref(); - const daiInpt = () => { - showRef.value.openDailog(); - }; - // 打开新增弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建工伤申报', false); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 上传 - const upShow = ref(); - const upButton = () => { - upShow.value.openDialog(); - }; - - // 打开修改用户弹窗 - // const editRef = ref(); - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog('查看工伤申报', row, true); - } else { - addRef.value.openDialog('修改工伤申报', row, false); - } - }; - // 删除用户 - const onRowDel = (data: any) => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - accidentManagementSystemApi() - .workDelete([data]) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => { - }); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - accidentManagementSystemApi() - .workDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => { - }); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - return { - daiInpt, - showRef, - upButton, - upShow, - tableData, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - onEdit, - onOpenAdd, - addRef, - // editRef, - listApi, - Search, - submitReset, - onDeleteAll, - handleSelectionChange, - warning, - danger, - listQuery, - onRowDel, - total, - onMyAdd, - onSelectItem - }; - }, - }); -</script> -<style scoped lang="scss"> - .table_Box { - padding: 20px; - background-color: #fff; - } - - .tableForm { - margin-top: 10px; - } - - /*按钮行*/ - .button_Line { - display: flex; - flex-direction: row; - justify-content: space-between; - } - - //分页 - .pages { - display: flex; - justify-content: flex-end; - margin-top: 15px; - } - - ::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; - } - - ::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; - } - - ::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; - } - - ::v-deep .el-pagination button:disabled { - color: #c0c4cc; - } - - ::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; - } -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/abolishDialog/abolishDialog.vue b/src/components/contingencyManagement/abolishDialog/abolishDialog.vue deleted file mode 100644 index 69dba30..0000000 --- a/src/components/contingencyManagement/abolishDialog/abolishDialog.vue +++ /dev/null @@ -1,139 +0,0 @@ -<template> - <div class="system-user-container"> - <h4 class="title">胡海涛2022-07-01 16:08:42发起了目标检查上报(检查)--检查</h4> - <div class="box"> - <el-menu - :default-active="activeIndex" - class="el-menu-demo" - background-color="#ebeef5" - text-color="#fff" - active-text-color="#fff" - mode="horizontal" - @select="handleSelect" - > - <el-menu-item index="1">表单信息</el-menu-item> - <el-menu-item index="2">流程图</el-menu-item> - </el-menu> - <div v-if="activeIndex == 1" class="navType"> - <formInformationTop v-if="false"></formInformationTop> - <formInformationTops></formInformationTops> - </div> - <div v-if="activeIndex == 2" class="navType" style="padding:20px 20px 0 20px"> - <div class="title2">流程图 - <!-- <img src=""> --> - </div> - <div style="width:100%;height:400px"></div> - </div> - </div> - <lowerPlate></lowerPlate> - <div class="btns"> - <el-button type="primary">启动</el-button> - </div> - </div> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref,onMounted } from 'vue'; -import { useRouter } from 'vue-router'; -import formInformationTop from './component/formInformationTop.vue' -import formInformationTops from './component/formInformationTops.vue' -import lowerPlate from './component/lowerPlate.vue' -export default defineComponent({ - components:{lowerPlate,formInformationTop,formInformationTops}, - setup() { - const activeIndex = ref<any>('1'); - const handleSelect = (key: string, keyPath: string[]) => { - // console.log(key, keyPath); - activeIndex.value = key; - }; - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - - const router=useRouter() - const Type=onMounted(()=>{ - // console.log("xxxxxxx",router) - }) - - return { - activeIndex, - handleSelect, - form, - router, - Type - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; - padding: 15px; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} - -/*弹窗底部边框线*/ -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -/*弹窗顶部边框线*/ -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -</style> diff --git a/src/components/contingencyManagement/abolishDialog/component/formInformationTop.vue b/src/components/contingencyManagement/abolishDialog/component/formInformationTop.vue deleted file mode 100644 index ef75063..0000000 --- a/src/components/contingencyManagement/abolishDialog/component/formInformationTop.vue +++ /dev/null @@ -1,144 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标指标"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="指标值"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" style="padding: 0 20px"> - <el-tab-pane label="考核指标" name="1"> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" type="index" label="序号" width="70" /> - <el-table-column align="center" prop="date" label="责任部门" /> - <el-table-column align="center" prop="name" label="考核指标" /> - <el-table-column align="center" prop="address" label="制定部门" /> - <el-table-column align="center" prop="address" label="制定日期" /> - <el-table-column align="center" label="检查值"> - <template #default> - <el-input v-model="form.name" placeholder=""></el-input> - </template> - </el-table-column> - <el-table-column align="center" prop="address" label="检查人" /> - <el-table-column align="center" prop="address" label="检查时间" /> - </el-table> - <div class="tiao"> - <div class="typeS">审批</div> - </div> - <el-row style="padding:20px 0"> - <el-col :span="6" style="text-align:right">一级审批:</el-col> - <el-col :span="18">同意</el-col> - </el-row> - <el-row style="padding:0 0 20px 0"> - <el-col :span="6"></el-col> - <el-col :span="18"><span class="logoColor">同意</span><span style="margin-right: 8px;">杜建喜</span><span>2021-05-24 04:47:42</span></el-col> - </el-row> - </el-tab-pane> - </el-tabs> -</template> -<script lang="ts"> -import { defineComponent,ref,reactive } from 'vue' - -export default defineComponent({ - setup() { - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const activeName = ref('1'); - return{ - form, - tableData, - activeName - } - }, -}) -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0 ; -} -</style> diff --git a/src/components/contingencyManagement/abolishDialog/component/formInformationTops.vue b/src/components/contingencyManagement/abolishDialog/component/formInformationTops.vue deleted file mode 100644 index 68ae8a6..0000000 --- a/src/components/contingencyManagement/abolishDialog/component/formInformationTops.vue +++ /dev/null @@ -1,318 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="12"> - <el-form-item label="预案名称"> - <el-input v-model="form.name" disabled placeholder="请填写预案名称"></el-input> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="适用部门"> - <el-tree-select - class="select" - placeholder="请选择" - v-model="value" - :data="data" - :render-after-expand="false" - show-checkbox - multiple - clearable - disabled - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="预案类型"> - <el-select class="select" v-model="form.region" disabled placeholder="请选择"> - <el-option label="综合应急预案" value="shanghai" /> - <el-option label="现场处置方案" value="beijing" /> - <el-option label="专项应急预案" value="shanghai" /> - <el-option label="其它预案" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="危险源关联"> - <el-select class="select" v-model="form.region" disabled placeholder="请选择"> - <el-option label="是" value="shanghai" /> - <el-option label="否" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="预案级别"> - <el-select class="select" v-model="form.region" disabled placeholder="请选择"> - <el-option label="公司及" value="shanghai" /> - <el-option label="分厂级" value="beijing" /> - <el-option label="车间级" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="编写人"> - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - disabled - > - <template #append> - <el-button :icon="Search" @click="openUser" disabled/> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="编写部门" disabled placeholder="请选择"> - <el-tree-select - class="select" - v-model="value2" - :data="dataSelect" - :render-after-expand="false" - multiple - check-strictly - check-on-click-node - clearable - disabled - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="发布实施日期"> - <el-date-picker v-model="datetime" type="datetime" disabled placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急队伍" prop="telephone" @click="daiInpt" > - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - disabled - > - <template #append> - <el-button :icon="Search" disabled/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="预案附件"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - :on-change="handleChange" - disabled - > - <el-button type="primary" disabled - >点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 添加相关附件 - </div> - </template> - </el-upload> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="区域名称" prop="telephone"> - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - disabled - > - <template #append> - <el-button :icon="Search" disabled @click="regionsDialog"/> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <checkTemplate ref="ShowRef"/> - <userSelections ref="userRef"/> - <RegionsDialog ref="openRef"/> -</template> -<script lang="ts"> -import { - defineComponent, - ref, - reactive -} from 'vue'; -import { - Search -} from '@element-plus/icons-vue' -import UserSelections from "/@/components/userSelections/index.vue" -import CheckTemplate from "/@/components/checkTemplate/index.vue" -import RegionsDialog from "/@/components/regionsDialog/index.vue"; -export default defineComponent({ - components: { - CheckTemplate, - UserSelections, - RegionsDialog, - }, - setup() { - const form = reactive({ - name: '', - value: '', - value2: '', - teamLeader: '', - - // data: '', - // dataSelect: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - - // 可选择树形选择框 - const value = ref() - - const data = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '生产运行部', - children: [ - { - value: '1-1-1', - label: '工艺二班', - }, - ], - }, - ], - } - ] - // 树形选择框 - const value2 = ref() - - const dataSelect = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '生产运行部', - children: [ - { - value: '1-1-1', - label: '工艺二班', - }, - ], - }, - ], - } - ] - // 应急队伍弹窗 - const ShowRef=ref() - const daiInpt=()=>{ - ShowRef.value.openDailog() - } - // 选择区域弹窗 - const openRef=ref() - const regionsDialog=()=>{ - openRef.value.openDailog() - } - // 打开编写人选择用户弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - // 日期选择 - const datetime = ref('') - return { - form, - value, - data, - value2, - dataSelect, - openUser, - userRef, - Search, - ShowRef, - daiInpt, - openRef, - datetime, - regionsDialog, - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box { - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao { - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0; - position: relative; -} -.typeS { - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor { - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns { - width: 100%; - padding: 20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); -} -.title2 { - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0; -} -.select{ - width: 100%; -} -.select ::v-deep .el-select{ - width: 100%; -} -</style> diff --git a/src/components/contingencyManagement/abolishDialog/component/lowerPlate.vue b/src/components/contingencyManagement/abolishDialog/component/lowerPlate.vue deleted file mode 100644 index cbb82fb..0000000 --- a/src/components/contingencyManagement/abolishDialog/component/lowerPlate.vue +++ /dev/null @@ -1,120 +0,0 @@ -<template> - <div class="box"> - <el-form ref="formS" :model="form" :rules="rules" label-width="120px"> - <el-row> - <el-col :span="15"> - <el-form-item label="流程标题"> - <el-input v-model="form.names" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label="下级审批日期"> - <el-date-picker v-model="form.date1" type="date" placeholder="下级审批日期" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.delivery" label="是否抄送" @change="typeChang"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.delivery"> - <el-col :span="15"> - <el-form-item label="抄送给" prop="resource"> - <el-input v-model="form.resource" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.type" label="指定下一步处理者(不设置就使用默认处理人)"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.type"> - <el-col :span="15"> - <el-form-item label="指定" prop="desc"> - <el-input v-model="form.desc" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - <DailogSearchUser ref="ShowUser"></DailogSearchUser> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue' -import { Search } from '@element-plus/icons-vue'; -import type { FormInstance, FormRules } from 'element-plus' -export default defineComponent({ - components:{DailogSearchUser}, - setup() { - const formS=ref<FormInstance>() - let form = reactive({ - names: '', - region: '', - date1: '', - date2: '', - delivery: "", - type: "", - resource: '', - desc: '', - }); - const typeChang=()=>{ - console.log('tag',form) - } - const rules = reactive<FormRules>({ - resource: [ - { - type: 'array', - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ], - desc: [ - { - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ]}) - const ShowUser=ref() - const openDai =()=>{ - ShowUser.value.openDailog() - } - return { - form, - rules, - formS, - typeChang, - ShowUser, - openDai, - Search, - }; - }, -}); -</script> - -<style scoped> -.box { - margin: 30px 0 100px 0; - background-color: #fff; - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); - padding: 20px; -} -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/contingency/component/addEmergencyPersonnel.vue b/src/components/contingencyManagement/contingency/component/addEmergencyPersonnel.vue deleted file mode 100644 index de19c3f..0000000 --- a/src/components/contingencyManagement/contingency/component/addEmergencyPersonnel.vue +++ /dev/null @@ -1,314 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - :title="titles" - v-model="isShowDialog" - width="40%" - draggable - :fullscreen="full" - @close="resetForm(ruleFormRef)" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form - ref="ruleFormRef" - :model="ruleForm" - size="default" - :rules="rules" - :disabled="disabled" - label-width="90px"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="选择人员" prop="name"> - <el-input - v-model="ruleForm.userName" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="人员工号" prop="jobNumber"> - <el-input v-model="ruleForm.jobNumber" placeholder="请填写人员工号"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="人员名称" prop="name"> - <el-input v-model="ruleForm.name" placeholder="请填写人员名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="人员性别" prop="gender"> - <el-radio-group v-model="ruleForm.gender"> - <el-radio :label="false">男</el-radio> - <el-radio :label="true">女</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="手机号码" prop="phone"> - <el-input v-model="ruleForm.phone" placeholder="请填写手机号码"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="职位" prop="position"> - <el-input v-model="ruleForm.position" placeholder="请填写职位"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button size="default" type="primary" @click="addForm(ruleFormRef)">继续添加</el-button> - <el-button size="default" @click="resetForm(ruleFormRef)">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)" >确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser"/> - </div> -</template> - -<script lang="ts"> -import { - ref, - reactive, - defineComponent -} from 'vue'; - -import type { - FormRules, - FormInstance, -} from 'element-plus' -import { ElMessage } from 'element-plus'; -import { - Search, - FullScreen, -} from '@element-plus/icons-vue' -import DailogSearchUserManger from "/@/components/DailogSearchUserManger/index.vue" -import {contingencyApi} from "/@/api/contingencyManagement/contingency"; - -export default defineComponent({ - name: 'addTeamLeader', - components: { - // Search, - DailogSearchUserManger - }, - setup(props, { emit }) { - const isShowDialog = ref(false) - const ruleFormRef = ref<FormInstance>() - const ruleForm = ref ({ - teamId: '', - userUid: '', - userName:'', - gender: '', - jobNumber: '', // 人员工号 - name: '', // 人员名称 - phone: '', // 手机号码 - position: '', // 职位 - }); - const rules = reactive<FormRules>({ - jobNumber: [ - { - required: true, - message: '人员工号不能为空', - trigger: 'change', - }, - ], - personnelName: [ - { - required: true, - message: '人员名称不能为空', - trigger: 'change', - }, - ], - personnelGender: [ - { - required: true, - message: '人员性别不能为空', - trigger: 'change', - }, - ], - phone: [ - { - required: true, - message: '手机号码不能为空', - trigger: 'change', - }, - ], - position: [ - { - required: true, - message: '职位不能为空', - trigger: 'change', - }, - ], - }) - const titles = ref(); - const disabled = ref(); - //继续添加 - const addForm = (formEl: FormInstance | undefined) => { - emit('myAdd', ruleForm.value); - formEl.resetFields(); - } - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建应急队伍人员') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - // console.log('-------',ruleForm.value) - // emit('myAdd', ruleForm.value); - contingencyApi() - .addEmergencyTeamPersonnel(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } - else if (title == '修改应急队伍人员') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - contingencyApi() - .editEmergencyTeamPersonnel(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - teamId: '', - userUid: '', - userName:'', - gender: '', - jobNumber: '', // 人员工号 - name: '', // 人员名称 - phone: '', // 手机号码 - position: '', // 职位 - }; - } - } - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - - // 打开弹窗 - const openDialog = (title: string, id: number,teamId:number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - ruleForm.value.teamId = teamId - - if (title == '查看应急队伍人员' || title == '修改应急队伍人员') { - contingencyApi() - .seeEmergencyTeamPersonnel(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - const onUser = (e:any) => { - ruleForm.value.userUid=e[0].uid - ruleForm.value.userName=e[0].realName - ruleForm.value.gender=e[0].sex - ruleForm.value.name=e[0].username - ruleForm.value.jobNumber=e[0].jobNumber - ruleForm.value.phone=e[0].phone - ruleForm.value.position=e[0].position - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - // closeDialog, - isShowDialog, - ruleFormRef, - // submitForm, - // onCancel, - ruleForm, - rules, - Search, - toggleFullscreen, - FullScreen, - full, - resetForm, - titles, - disabled, - emit, - openUser, - userRef, - onUser, - addForm, - submitForm, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea{ - height: 168px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 168px!important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/contingency/component/openAdd.vue b/src/components/contingencyManagement/contingency/component/openAdd.vue deleted file mode 100644 index e853358..0000000 --- a/src/components/contingencyManagement/contingency/component/openAdd.vue +++ /dev/null @@ -1,503 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="50%" draggable :fullscreen="full" @close="resetForm(ruleFormRef)"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" size="default" :rules="rules" label-width="120px" - :disabled="disabled"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="队伍名称" prop="teamName"> - <el-input v-model="ruleForm.teamName" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="队伍级别" prop="teamLevel"> - <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择"> - <el-option label="公司" value="1"></el-option> - <el-option label="分厂-车间" value="2"></el-option> - <el-option label="工序-班组等" value="3"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="队伍负责人" prop="principalName"> - <el-input v-model="ruleForm.principalName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="负责人部门" prop="principalDepartmentId"> - <el-tree-select v-model="ruleForm.principalDepartmentId" :data="data" class="w100" - :props="propse" clearable placeholder="请选择"/> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="负责人手机" prop="principalPhone"> - <el-input v-model="ruleForm.principalPhone" placeholder="请填写负责人手机"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="固定电话" prop="telephoneNumber"> - <el-input v-model="ruleForm.telephoneNumber" placeholder="请填写固定电话"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="队伍描述" prop="teamDesc"> - <el-input class="textarea" v-model="ruleForm.teamDesc" type="textarea" maxlength="150" - placeholder="请填写队伍描述"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="相关附件" prop="fileList"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - :on-change="handleChange" - > - <el-button type="primary">点击上传</el-button> - <template #tip> - <div class="el-upload__tip">添加相关附件</div> - </template> - </el-upload> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row :gutter="35"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="应急队伍人员" name="first" > - <el-button type="primary" size="default" @click="onAddEmergencyPersonnel" :disabled="disabled">新增 - </el-button> - <el-table - :data="tableData" - style="width: 100%; margin-top: 15px" - ref="multipleTableRef" - :header-cell-style="{ background: '#f6f7fa', color: '#909399' }" - :disabled="disabled" - > - <el-table-column prop="jobNumber" label="人员工号" show-overflow-tooltip></el-table-column> - <el-table-column prop="name" label="人员名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="phone" label="手机号码" show-overflow-tooltip></el-table-column> - <el-table-column prop="position" label="职位" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="250" align="center"> - <template #default="scope"> - <el-button :disabled="disabled" size="small" @click="onEdit('查看应急队伍人员',scope.row.id)">查看 - </el-button> - <el-button :disabled="disabled" size="small" @click="onEdit('修改应急队伍人员',scope.row.id)" - style="margin-right: 5px">编辑 - </el-button> - <el-button :disabled="disabled" size="small" @click="onRowDel(scope.row.id)" - style="margin-right: 5px">删除 - </el-button> - </template> - </el-table-column> - </el-table> - </el-tab-pane> - </el-tabs> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" v-if="disabled == true ? false : true" type="primary" - @click="onSubmit(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <AddEmergencyPersonnel ref="addRef" @myAdd="onMyAdd"/> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser"/> - </div> -</template> - -<script lang="ts"> - import { - reactive, - ref, - defineComponent, - onMounted, - // toRefs, - } from 'vue'; - import { - ElMessage, - ElMessageBox, - } from 'element-plus'; - - import type { - UploadUserFile, - TabsPaneContext, - FormInstance, - FormRules, - } from 'element-plus' - - import { - Search, - FullScreen - } from '@element-plus/icons-vue' - import AddEmergencyPersonnel from "/@/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue"; - import DailogSearchUserManger from "/@/components/DailogSearchUserManger/index.vue" - import {contingencyApi} from "/@/api/contingencyManagement/contingency"; - import {goalManagementApi} from "/@/api/goalManagement"; - // import {releaseDrillPlanApi} from "/@/api/releaseDrillPlan"; - - - export default defineComponent({ - name: 'openAdd', - components: { - AddEmergencyPersonnel, - DailogSearchUserManger, - }, - setup(prop, {emit}) { - const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - const ruleForm = ref({ - teamName: '', // 队伍名称 - teamLevel: '', // 队伍级别 - principalUid: '', // 队伍负责人 - principalName: '', - principalDepartmentId: '', //负责人部门 - principalPhone: '', // 负责人手机 - telephoneNumber: '', // 固定电话 - teamDesc: '', //队伍描述 - fileList: [ - { - fileUrl: 'url', - fileName: 'name', - } - ], - memberList: [] - }); - const titles = ref(); - const disabled = ref(); - const peopleInsertBtn = ref(false) - const teamId = ref() - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - teamId.value = id - //如果是新增 无法添加人员 - if(title == '新建应急队伍管理'){ - peopleInsertBtn.value = true - }else{ - peopleInsertBtn.value = false - } - if (title == '查看应急队伍管理' || title == '修改应急队伍管理') { - contingencyApi() - .seeEmergencyTeam(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - listApi() - } - }); - } - } - // 上传附件 - const fileList = ref<UploadUserFile[]>([]) - - //部门树 - const department = () => { - goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - //定义树形下拉框 - const principalDepartmentId = ref() - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - const data = ref() - onMounted(() => { - department(); - }); - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - const onUser = (e: any) => { - ruleForm.value.principalUid = e[0].uid - ruleForm.value.principalName = e[0].realName - }; - //定义tabs切换 - const activeName = ref('first') - const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event) - } - - // 必填项提示 - const rules = reactive<FormRules>({ - teamName: [ - { - required: true, - message: '队伍名称不能为空', - trigger: 'change', - }, - ], - teamLevel: [ - { - required: true, - message: '队伍级别不能为空', - trigger: 'change', - }, - ], - principalUid: [ - { - required: true, - message: '队伍负责人不能为空', - trigger: 'change', - }, - ], - principalDepartmentId: [ - { - required: true, - message: '负责人部门不能为空', - trigger: 'change', - }, - ], - principalPhone: [ - { - required: true, - message: '负责人手机不能为空', - trigger: 'change', - }, - ], - telephoneNumber: [ - { - required: true, - message: '固定电话不能为空', - trigger: 'change', - }, - ], - }) - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - const onSubmit = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建应急队伍管理') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - contingencyApi() - .addEmergencyTeam(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } else if (title == '修改应急队伍管理') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - contingencyApi() - .editEmergencyTeam(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - teamName: '', // 队伍名称 - teamLevel: '', // 队伍级别 - principalUid: '', // 队伍负责人 - principalDepartmentId: '', //负责人部门 - principalPhone: '', // 负责人手机 - telephoneNumber: '', // 固定电话 - teamDesc: '', //队伍描述 - fileList: [ - { - fileUrl: 'url', - fileName: 'name', - } - ], - memberList: [] - }; - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - tableData.value=[] - }; - // 定义表格数据 - const tableData = ref([]); - //添加队伍负责人弹窗 - const addRef = ref(); - const onAddEmergencyPersonnel = () => { - //未添加队伍 无法修改人员 - if(peopleInsertBtn.value == true){ - ElMessage({ - showClose: true, - message: '请先添加应急队伍', - type: 'warning', - }); - }else { - addRef.value.openDialog('新建应急队伍人员','',teamId.value); - } - - }; - // 请求列表数据 - const listApi = async () => { - let res = await contingencyApi().getEmergencyTeamPersonnelList(teamId.value); - if (res.data.code == 200) { - tableData.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }; - // 新增后刷新 - const onMyAdd = (e: object) => { - listApi(); - // console.log(e) - // item.value = e - // tableData.value.push(item.value) - // console.log(tableData) - }; - // 打开修改弹窗 - const onEdit = (val: string, row: object) => { - if (val == '查看应急队伍人员') { - addRef.value.openDialog('查看应急队伍人员', row,teamId.value, true); - } else { - addRef.value.openDialog('修改应急队伍人员', row,teamId.value, false); - } - }; - // 删除 - const onRowDel = (data: any) => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }).then(() => { - contingencyApi() - .deleteEmergencyTeamPersonnel(data) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi() - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi() - } - }); - }) - .catch(() => { - }); - }; - return { - openDialog, - fileList, - principalDepartmentId, - data, - activeName, - handleClick, - tableData, - Search, - resetForm, - isShowDialog, - ruleFormRef, - ruleForm, - rules, - addRef, - userRef, - titles, - disabled, - propse, - emit, - onSubmit, - openUser, - onAddEmergencyPersonnel, - toggleFullscreen, - FullScreen, - full, - onUser, - onMyAdd, - listApi, - onEdit, - onRowDel, - department, - peopleInsertBtn, - teamId - }; - }, - }); -</script> -<style scoped lang="scss"> - .textarea { - height: 168px !important; - } - - .textarea ::v-deep .el-textarea__inner { - height: 168px !important; - } - - ::v-deep .el-table__cell { - font-weight: 400; - } -</style> - diff --git a/src/components/contingencyManagement/contingency/component/upData.vue b/src/components/contingencyManagement/contingency/component/upData.vue deleted file mode 100644 index cc3e2d0..0000000 --- a/src/components/contingencyManagement/contingency/component/upData.vue +++ /dev/null @@ -1,125 +0,0 @@ -<template> - <el-dialog - v-model="dialogVisible" - title="导入Excel" - width="50%" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - multiple - :on-preview="handlePreview" - :on-remove="handleRemove" - :before-remove="beforeRemove" - :limit="3" - :on-exceed="handleExceed" - > - <el-button size="default">下载模板</el-button> - <el-button size="default" type="primary">点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 只允许导入“xls”或“xlsx”格式文件! - </div> - </template> - </el-upload> - </el-dialog> -</template> -<script lang="ts"> -import { ref, - defineComponent, -} from "vue"; -import { - ElMessage, - ElMessageBox -} from "element-plus"; -import type { - UploadProps, - UploadUserFile, -} from "element-plus"; -import { - FullScreen -} from '@element-plus/icons-vue' -export default defineComponent({ - setup() { - let dialogVisible =ref<boolean>(false) - const fileList = ref<UploadUserFile[]>([ - // { - // name: "element-plus-logo.svg", - // url: "https://element-plus.org/images/element-plus-logo.svg", - // }, - // { - // name: "element-plus-logo2.svg", - // url: "https://element-plus.org/images/element-plus-logo.svg", - // }, - ]); - - const handleRemove: UploadProps["onRemove"] = (file, uploadFiles) => { - console.log(file, uploadFiles); - }; - - const handlePreview: UploadProps["onPreview"] = (uploadFile) => { - console.log(uploadFile); - }; - - const handleExceed: UploadProps["onExceed"] = (files, uploadFiles) => { - ElMessage.warning( - `The limit is 3, you selected ${ - files.length - } files this time, add up to ${ - files.length + uploadFiles.length - } totally` - ); - }; - - const beforeRemove: UploadProps["beforeRemove"] = ( - uploadFile, - uploadFiles - ) => { - return ElMessageBox.confirm( - `Cancel the transfert of ${uploadFile.name} ?` - ).then( - () => true, - () => false - ); - }; - // 打开弹窗 - const openDialog = (type:string,value:any,projectList: any,projectId:string) => { - dialogVisible.value=true - } - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - fileList, - handleRemove, - handlePreview, - handleExceed, - beforeRemove, - openDialog, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped lang="scss"> -.el-upload__tip{ - margin-left: 100px; - margin-top: 20px; -} -::v-deep .el-dialog__header{ - border-bottom: 1px solid #e8e8e8; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/contingency/index.vue b/src/components/contingencyManagement/contingency/index.vue deleted file mode 100644 index 2196936..0000000 --- a/src/components/contingencyManagement/contingency/index.vue +++ /dev/null @@ -1,393 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-form :inline="true" class="demo-form-inline"> - <el-form-item> - <el-input size="default" v-model="listQuery.searchParams.teamName" placeholder="队伍名称"> </el-input> - </el-form-item> - <el-form-item> - <el-select size="default" v-model="listQuery.searchParams.teamType" placeholder="请选择队伍级别"> - <el-option label="公司" value="1"></el-option> - <el-option label="分厂-车间" value="2"></el-option> - <el-option label="工序-班组等" value="3"></el-option> - </el-select> - </el-form-item> - <el-form-item> - <el-button size="default" type="primary" class="ml10" @click="onSubmit"> - 查询 - </el-button> - <el-button size="default" class="ml10" @click="submitReset"> - 重置 - </el-button> - </el-form-item> - </el-form> - </div> - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> - <Plus /> - </el-icon>新建 - </el-button> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> - <Edit /> - </el-icon>修改 - </el-button> - <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </div> -<!-- <div class="button_Right">--> -<!-- <el-button size="default" @click="upButton">--> -<!-- <el-icon>--> -<!-- <Upload />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button size="default">--> -<!-- <el-icon>--> -<!-- <Download />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button size="default">--> -<!-- <el-icon>--> -<!-- <Refresh />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- </div>--> - </div> - <el-table - :data="tableData" - style="width: 100%" - ref="multipleTableRef" - @selection-change="handleSelectionChange" - > - <el-table-column - type="selection" - width="55" - /> - <el-table-column prop="teamName" label="队伍名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="teamLevel" label="队伍级别" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.teamLevel == 1">公司</span> - <span v-if="scope.row.teamLevel == 2">分厂-车间</span> - <span v-if="scope.row.teamLevel == 3">工序-班组等</span> - </template> - </el-table-column> - <el-table-column prop="teamDesc" label="队伍描述" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="principalPhone" label="负责人手机" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="attachments" label="相关附件" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="200" align="center" fixed="right"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <View /> - </el-icon>查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <EditPen /> - </el-icon>修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - class="mt15" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:currentPage="pageIndex" - background - v-model:page-size="pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - > - </el-pagination> - </div> - </el-card> - <OpenAdd ref="addRef" @myAdd="onMyAdd" /> - <upData ref="upShow"></upData> - </div> -</template> - -<script lang="ts"> -import { - // toRefs, - reactive, - onMounted, - ref, - defineComponent -} from 'vue'; -import { - ElMessageBox, - ElMessage, -} from 'element-plus'; -import { Plus, - Edit, - Delete, - // Upload, - // Download, - // Refresh, - View, - EditPen, -} from '@element-plus/icons-vue' - -import OpenAdd from '../../contingencyManagement/contingency/component/openAdd.vue' -import UpData from '../../contingencyManagement/contingency/component/upData.vue'; -import {contingencyApi} from "../../../api/contingencyManagement/contingency"; - -export default defineComponent({ - name: 'systemUser', - components: { - OpenAdd, - View, - EditPen, - Plus, - Edit, - Delete, - // Upload, - // Download, - // Refresh, - UpData, - contingencyApi - }, - setup() { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - teamName: "", - teamType: "", - } - }) - // 定义表格数据 - const tableData = ref([]); - // 列表数据请求 - const onSubmit = async () => { - let res = await contingencyApi().getTeamManagementList(listQuery) - if(res.data.code === '200'){ - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - }else{ - ElMessage({ - showClose: true, - type:'error', - message:res.data.msg - }) - } - } - // 重置 - const submitReset = () => { - listQuery.searchParams.teamName = ''; - listQuery.searchParams.teamType = ''; - onSubmit(); - }; - const warning = ref(true); - const danger = ref(true); - const deleteAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deleteAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - - // 上传 - // const upShow=ref() - // const upButton=()=>{ - // upShow.value.openDialog() - // } - // 打开新增应急队伍弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建应急队伍管理'); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - onSubmit(); - } else { - onSubmit(); - } - }; - // 打开修改应急队伍弹窗 - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog('查看应急队伍管理',row,true); - } else { - addRef.value.openDialog('修改应急队伍管理',row,false); - } - }; - // 删除用户 - const onRowDel = (data: any) => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }).then(() => { - contingencyApi() - .deleteEmergencyTeam([data]) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }).catch(() => {}); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - contingencyApi() - .deleteEmergencyTeam(deleteAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const onHandleSizeChange = (val: number) => { - listQuery.pageSize = val; - onSubmit(); - }; - const onHandleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - onSubmit(); - }; - // 页面加载时 - onMounted(() => { - onSubmit(); - }); - return { - listQuery, - onSubmit, - // upButton, - // upShow, - onOpenAdd, //新增 - addRef, - pageIndex, - pageSize, - total, - onEdit, - handleSelectionChange, - submitReset, - onRowDel, - onMyAdd, - tableData, - onDeleteAll, - onHandleSizeChange, - onHandleCurrentChange, - deleteAll, - warning, - danger, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box{ - padding: 20px; - background-color: #fff; -} -.tableForm{ - margin-top: 10px; -} -/*按钮行*/ - .button_Line{ - display: flex; - flex-direction: row; - justify-content: space-between; - margin-bottom: 10px; - } -//分页 -.pages{ - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -.el-form .el-form-item{ - margin-bottom: 0px!important; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending{ - border-bottom-color: #c0c4cc; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue b/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue deleted file mode 100644 index 07f4e5f..0000000 --- a/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue +++ /dev/null @@ -1,841 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - :title="titles" - v-model="isShowDialog" - width="900px" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form - ref="ruleFormRef" - :model="ruleForm" - size="default" - label-width="120px" - > - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练名称" prop="emergencyPlanName"> - <el-input :disabled="true" v-model="ruleForm.emergencyPlanName" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练地点" prop="drillAddress"> - <el-input :disabled="true" v-model="ruleForm.drillAddress" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="主办部门" placeholder="请选择" prop="departmentId"> - <!--<el-tree-select--> - <!--v-model="ruleForm.departmentId"--> - <!--:data="data" class="w100"--> - <!--placeholder="请选择"/>--> - - <el-tree-select :disabled="true" v-model="ruleForm.departmentId" - :data="newTreeList" :props="propse" class="w100" placeholder="请选择" /> - </el-form-item> - - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练方式" prop="drillWay"> - <el-select :disabled="true" v-model="ruleForm.drillWay" class="w100" placeholder="请选择"> - <el-option label="综合" value="0"></el-option> - <el-option label="桌面" value="1"></el-option> - <el-option label="专项" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急预案" prop="drillName" > - <el-input - :disabled="true" - v-model="ruleForm.drillName" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :disabled="true" :icon="Search" @click="daiInpt"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练级别" prop="drillLevel"> - <el-select :disabled="true" v-model="ruleForm.drillLevel" class="w100" placeholder="请选择"> - <el-option label="公司级" value="1"></el-option> - <el-option label="分厂级" value="2"></el-option> - <el-option label="车间级" value="3"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划定制日期" prop="makingPlanDate"> - <el-date-picker :disabled="true" v-model="ruleForm.makingPlanDate" - value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划演练日期" prop="drillPlanDate"> - <el-date-picker :disabled="true" v-model="ruleForm.drillPlanDate" - value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="修改时间" prop="updateDate"> - <el-date-picker :disabled="true" v-model="ruleForm.updateDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划定制人" prop="makingUserUid"> - <el-input :disabled="true" v-model="ruleForm.makingUserName" placeholder="请填写计划定制人"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="制定部门" prop="makingDepartmentId"> - <!--<el-tree-select--> - <!--v-model="ruleForm.makingDepartmentId"--> - <!--:data="data" class="w100"--> - <!--placeholder="请选择"/>--> - - <el-tree-select :disabled="true" v-model="ruleForm.makingDepartmentId" - :data="newTreeList" :props="propse" class="w100" placeholder="请选择" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练人员" prop="planUserListString" > - <el-input - :disabled="true" - v-model="ruleForm.planUserListString" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :disabled="true" :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="演练目的" prop="purpose"> - <el-input - :disabled="true" - v-model="ruleForm.purpose" - placeholder="请填写演练目的" - class="input-with-select textarea" - type="textarea" - > - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练负责人" prop="chargeUserListString" > - <el-input - :disabled="true" - v-model="ruleForm.chargeUserListString" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :disabled="true" :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="保险措施" prop="insuranceMeasures"> - <el-input :disabled="true" v-model="ruleForm.insuranceMeasures" placeholder="请填写保险措施"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练经费" prop="drillExpense"> - <el-input :disabled="true" v-model="ruleForm.drillExpense" placeholder="请填写演练经费"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="备注信息" prop="remark"> - <el-input - :disabled="true" - v-model="ruleForm.remark" - placeholder="请填写备注信息" - class="input-with-select textarea" - type="textarea" - > - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" style="margin-bottom: 0!important;"> - <el-form-item label="预案附件"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - :on-change="handleChange" - > - <el-button type="primary" - >点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 添加相关附件 - </div> - </template> - </el-upload> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="实际到场人员" prop="executeUserListString" > - <el-input - v-model="ruleForm.executeUserListString" - placeholder="请选择" - class="input-with-select" - :disabled="true" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="演练过程描述" prop="processDesc"> - <el-input :disabled="true" v-model="ruleForm.processDesc" class="textarea" type="textarea" placeholder="请填写演练过程描述"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练记录人" prop="recordUserName" > - <el-input - v-model="ruleForm.recordUserName" - placeholder="请选择" - class="input-with-select" - :disabled="true" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练记录时间" prop="drillRecordDate"> - <el-date-picker - v-model="ruleForm.drillRecordDate" - class="w100" - type="datetime" - placeholder="选择日期时间" - :disabled="true" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <div class="el-divider--horizontal"> - <div class="el-divider__text"> - <h3>评价</h3> - </div> - </div> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练负责人" prop="evaluationUserListString" > - <el-input - v-model="ruleForm.evaluationUserListString" - placeholder="请选择" - class="input-with-select" - :disabled="disabled" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="预案评审-适宜性" prop="suitable"> - <el-select :disabled="disabled" v-model="ruleForm.suitable" class="w100" placeholder="请选择"> - <el-option label="全部能够执行" value="1"></el-option> - <el-option label="全部不能够执行" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="预案评审-充分性" prop="sufficient"> - <el-select :disabled="disabled" v-model="ruleForm.sufficient" class="w100" placeholder="请选择"> - <el-option label="完全满足应急要求" value="1"></el-option> - <el-option label="不完全满足应急要求" value="2"></el-option> - <el-option label="完全不满足应急要求" value="3"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="人员到位情况" prop="arrival"> - <el-select :disabled="disabled" v-model="ruleForm.arrival" class="w100" placeholder="请选择"> - <el-option label="迅速准确,基本按时到位" value="1"></el-option> - <el-option label="未按时到位" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资到位情况-现场物资" prop="supplies"> - <el-select :disabled="disabled" v-model="ruleForm.supplies" class="w100" placeholder="请选择"> - <el-option label="现场物资充分,全部有效" value="1"></el-option> - <el-option label="现场物资不充分" value="2"></el-option> - <el-option label="现场没有物资" value="3"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资到位情况-个人防护" prop="protection"> - <el-select :disabled="disabled" v-model="ruleForm.protection" class="w100" placeholder="请选择"> - <el-option label="全部人员防护到位" value="1"></el-option> - <el-option label="人员未防护到位" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="协调组织情况-整体组织" prop="whole"> - <el-select :disabled="disabled" v-model="ruleForm.whole" class="w100" placeholder="请选择"> - <el-option label="协调基本顺利,能够满足要求" value="1"></el-option> - <el-option label="协调不顺利" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="协调组织情况-疏散组分工" prop="division"> - <el-select :disabled="disabled" v-model="ruleForm.division" class="w100" placeholder="请选择"> - <el-option label="安全,快速" value="1"></el-option> - <el-option label="安全,不快速" value="2"></el-option> - <el-option label="不安全,快速" value="3"></el-option> - <el-option label="不安全,不快速" value="4"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="实战效果评价" prop="effect"> - <el-select :disabled="disabled" v-model="ruleForm.effect" class="w100" placeholder="请选择"> - <el-option label="基本达到目的,部分环节有待改进" value="1"></el-option> - <el-option label="未达到目的" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="支援部门和协作有效性-报告上级" prop="report"> - <el-select :disabled="disabled" v-model="ruleForm.report" class="w100" placeholder="请选择"> - <el-option label="报告及时" value="1"></el-option> - <el-option label="报告不及时" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="支援部门和协作有效性-安全部门" prop="safety"> - <el-select :disabled="disabled" v-model="ruleForm.safety" class="w100" placeholder="请选择"> - <el-option label="按要求协作" value="1"></el-option> - <el-option label="未按要求协作" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="支援部门和协作有效性-救援后勤部门" prop="rescue"> - <el-select :disabled="disabled" v-model="ruleForm.rescue" class="w100" placeholder="请选择"> - <el-option label="按要求协作" value="1"></el-option> - <el-option label="未按要求协作" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="支援部门和协作有效性-警戒撤离配合" prop="evacuate"> - <el-select :disabled="disabled" v-model="ruleForm.evacuate" class="w100" placeholder="请选择"> - <el-option label="按要求配合" value="1"></el-option> - <el-option label="未按要求配合" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="是否需要修改应急预案" prop="needModify"> - <el-select :disabled="disabled" v-model="ruleForm.needModify" class="w100" placeholder="请选择"> - <el-option label="是" :value="true"></el-option> - <el-option label="否" :value="false"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="存在问题和改进措施" prop="questionAndImprove"> - <el-input :disabled="disabled" v-model="ruleForm.questionAndImprove" class="textarea" type="textarea" placeholder="请填写备注信息"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="修改内容" prop="modifyContent"> - <el-input :disabled="disabled" v-model="ruleForm.modifyContent" class="textarea" type="textarea" placeholder="请填写修改内容"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="附件列表"> - <el-upload - v-model:file-list="ruleForm.userList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - :on-change="handleChange" - > - <el-button type="primary" - >点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 添加相关附件 - </div> - </template> - </el-upload> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button v-if="!disabled" size="default" type="primary" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <RegionsDialog ref="Shows" @SearchUser="onUser"/> - <DailogSearchUser ref="userRef" @SearchUser="selectUser"/> -<!-- <RegionsDialog ref="openRef"/>--> - </div> -</template> - -<script lang="ts"> -import { - reactive, - ref, - defineComponent, - onMounted, -} from 'vue'; - -import { - UploadUserFile, - FormInstance, - ElMessage -} from 'element-plus' -import { - Search, - FullScreen -} from '@element-plus/icons-vue' -import UserSelections from "/@/components/userSelections/index.vue" -import RegionsDialog from "/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue" -import DailogSearchUser from "/@/components/DailogSearchUser/index.vue" -import {emergencyDrillEvaluationApi} from "/@/api/contingencyManagement/emergencyDrillEvaluation"; -import {goalManagementApi} from "/@/api/goalManagement"; -export default defineComponent({ - name: 'approvalProgress', - components: { - UserSelections, - RegionsDialog, - DailogSearchUser - }, - setup(props, { emit }) { - const isShowDialog = ref(false) - - const ruleFormRef = ref<FormInstance>() - //定义表单 - const ruleForm = ref ({ - drillPlanId: '', - suitable: '', - sufficient: '', - arrival: '', - supplies: '', - protection: '', - whole: '', - division: '', - effect: '', - report: '', - safety: '', - rescue: '', - evacuate: '', - needModify: '', - questionAndImprove: '', - modifyContent: '', - fileList: [ - { - fileName: 'name', - fileUrl: 'url', - } - ], - userList: [ - ] - }); - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if (title == '查看演练实施评价') { - emergencyDrillEvaluationApi() - .seeEmergencyDrillEvaluation(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - ruleForm.value.planUserListString='' - ruleForm.value.chargeUserListString='' - ruleForm.value.executeUserListString='' - ruleForm.value.evaluationUserListString='' - //演练人员 - for(var a = 0;a<res.data.data.planUserList.length;a++){ - ruleForm.value.planUserListString += res.data.data.planUserList[a].userName+';' - } - //演练负责人员 - for(var a = 0;a<res.data.data.planChargeUserList.length;a++){ - ruleForm.value.chargeUserListString += res.data.data.planChargeUserList[a].userName+';' - } - //实际到场人员 - for(var a = 0;a<res.data.data.executeUserList.length;a++){ - ruleForm.value.executeUserListString += res.data.data.executeUserList[a].userName+';' - } - //演练负责人(评价) - for(var a = 0;a<res.data.data.evaluationUserList.length;a++){ - ruleForm.value.evaluationUserListString += res.data.data.evaluationUserList[a].userName+';' - } - } - }); - } - if(title=='演练实施评价'){ - emergencyDrillEvaluationApi() - .seeEmergencyDrillEvaluation(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - ruleForm.value.planUserListString='' - ruleForm.value.chargeUserListString='' - ruleForm.value.executeUserListString='' - ruleForm.value.evaluationUserListString='' - for(var a = 0;a<res.data.data.planUserList.length;a++){ - ruleForm.value.planUserListString += res.data.data.planUserList[a].userName+';' - } - for(var a = 0;a<res.data.data.planChargeUserList.length;a++){ - ruleForm.value.chargeUserListString += res.data.data.planChargeUserList[a].userName+';' - } - for(var a = 0;a<res.data.data.executeUserList.length;a++){ - ruleForm.value.executeUserListString += res.data.data.executeUserList[a].userName+';' - } - //演练负责人(评价) - for(var a = 0;a<res.data.data.evaluationUserList.length;a++){ - ruleForm.value.evaluationUserListString += res.data.data.evaluationUserList[a].userName+';' - } - } - }); - } - if(title=='演练实施查看评价'){ - emergencyDrillEvaluationApi() - .seeEmergencyDrillEvaluation(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - ruleForm.value.planUserListString='' - ruleForm.value.chargeUserListString='' - ruleForm.value.executeUserListString='' - ruleForm.value.evaluationUserListString='' - for(var a = 0;a<res.data.data.planUserList.length;a++){ - ruleForm.value.planUserListString += res.data.data.planUserList[a].userName+';' - } - for(var a = 0;a<res.data.data.planChargeUserList.length;a++){ - ruleForm.value.chargeUserListString += res.data.data.planChargeUserList[a].userName+';' - } - for(var a = 0;a<res.data.data.executeUserList.length;a++){ - ruleForm.value.executeUserListString += res.data.data.executeUserList[a].userName+';' - } - //演练负责人(评价) - for(var a = 0;a<res.data.data.evaluationUserList.length;a++){ - ruleForm.value.evaluationUserListString += res.data.data.evaluationUserList[a].userName+';' - } - } - }); - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - // 取消 - const onCancel = () => { - closeDialog(); - }; - //日期选择器 - const value1 = ref('') - // 上传附件 - const fileList = ref<UploadUserFile[]>([]) - // 可选择树 - const treeSelect = ref() - const tree = [ - , - ] - //定义树形下拉框 - const responsibleDepartment = ref() - const data = [ - - ] - // 必填项提示 - // const rules = reactive<FormRules>({ - // teamName: [ - // { - // required: true, - // message: '队伍名称不能为空', - // trigger: 'change', - // }, - // ], - // teamLevel: [ - // { - // required: true, - // message: '队伍级别不能为空', - // trigger: 'change', - // }, - // ], - // teamLeader: [ - // { - // required: true, - // message: '队伍负责人不能为空', - // trigger: 'change', - // }, - // ], - // responsibleDepartment: [ - // { - // required: true, - // message: '负责人部门不能为空', - // trigger: 'change', - // }, - // ], - // teamPhone: [ - // { - // required: true, - // message: '负责人手机不能为空', - // trigger: 'change', - // }, - // ], - // telephone: [ - // { - // required: true, - // message: '固定电话不能为空', - // trigger: 'change', - // }, - // ], - // }) - - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - //演练负责人(评价) - ruleForm.value.userList = ruleForm.value.evaluationUserList - // console.log(ruleForm.value.evaluationUserList) - // ruleForm.value.userList=[] - // for(var a = 0;a<ruleForm.value.evaluationUserList.length;a++){ - // // += res.data.data.evaluationUserList[a].userName+';' - // } - if (title == '演练实施评价') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - // console.log(ruleForm.value) - emergencyDrillEvaluationApi() - .editEmergencyDrillEvaluation(ruleForm.value) - // emergencyDrillExecuteApi() - // .editEmergencyDrillExecute(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '评价成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - isShowDialog.value = false; - formEl.resetFields(); - ruleForm.value = { - drillRecordDate: '', // 演练记录时间 - drillPlanId: '', //演练计划ID - drillName:'', - recordUserUid: '', // 记录人ID - processDesc: '', // 演练过程描述 - userList: [ - { - userUid: '', - }, - { - userUid: '', - } - ] - }; - } - } - // 应急队伍弹窗 - const Shows=ref() - const daiInpt=()=>{ - Shows.value.openDailog() - } - const onUser = (e:any) => { - ruleForm.value.drillPlanId=e.id - }; - // 选择区域弹窗 - const openRef=ref() - const regionsDialog=()=>{ - openRef.value.openDailog() - } - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(0); - }; - - const selectUser = (e) =>{ - ruleForm.value.evaluationUserListString='' - ruleForm.value.evaluationUserList=[] - for(var a = 0;a<e.length;a++){ - ruleForm.value.evaluationUserList.push( - { - userName: e[a].realName, - userUid: e[a].uid, - } - ) - ruleForm.value.evaluationUserListString+=e[a].realName+';' - } - } - //el-tree-select回显 - const propse = { - label: 'depName', - children: 'children', - }; - const newTreeList = []; - //得到部门树 - const department = async () => { - await goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - getTreeList(res.data.data, newTreeList); - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 递归树状数据且修改字段名 - const getTreeList = (treeList, newTreeList) => { - treeList.map((c) => { - let tempData = { - depName: c.depName, - value: c.depId, - children: [], - }; - if (c.children && c.children.length > 0) { - tempData.children = []; - getTreeList(c.children, tempData.children); - } - newTreeList.push(tempData); - }); - }; - onMounted(() => { - department(); - }); - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - fileList, - responsibleDepartment, - data, - Search, - ruleForm, - value1, - treeSelect, - tree, - daiInpt, - Shows, - onUser, - ruleFormRef, - // rules, - openUser, - userRef, - regionsDialog, - openRef, - toggleFullscreen, - FullScreen, - full, - resetForm, - titles, - disabled, - emit, - propse, - department, - newTreeList, - selectUser, - submitForm - }; - }, -}); -</script> -<style scoped lang="scss"> -.el-form .el-form-item{ - margin-bottom: 18px !important; - display: flex; - align-items: flex-start; -} -::v-deep .el-form-item--default .el-form-item__label{ - text-align: right; - height: 100%; -} -.textarea{ - height: 90px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 90px!important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal{ - height: 0; - margin: 0; - border-top: transparent; -} -.el-select{ - width: 100%; -} -.el-divider--horizontal { - display: block; - height: 1px; - width: 100%; - margin: 24px 0; - background-color: #dcdfe6; - position: relative; -} -.el-divider__text { - position: absolute; - background-color: #fff; - padding: 0 20px; - color: #303133; - left: 50%; - font-weight: 500; - font-size: 14px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/flowChart.vue b/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/flowChart.vue deleted file mode 100644 index 6469b53..0000000 --- a/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/flowChart.vue +++ /dev/null @@ -1,307 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog title="应急演练计划--修改审批进度" v-model="isShowDialog" width="769px" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <!-- <img class="process-status-img" src=""> --> - <el-tabs type="border-card"> - <el-tab-pane label="流转记录"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <span>流转记录</span> - </div> - </template> - <div> - <el-steps :active="2"> - <el-step title="开始" description="胡海涛,2022-07-09 20:41:50" /> - <el-step title="一级审批" description="管理员,2022-07-09 20:41:50" /> - </el-steps> - </div> - <el-table :data="tableData" stripe style="width: 100%"> - <el-table-column prop="date" label="执行环节" width="120" /> - <el-table-column prop="name" label="执行人" width="120" /> - <el-table-column prop="address" label="开始时间" width="100" /> - <el-table-column prop="address" label="结束时间" width="100" /> - <el-table-column prop="address" label="办理状态" width="100" /> - <el-table-column prop="address" label="审批意见" width="100" /> - <el-table-column prop="address" label="任务历时" width="100" /> - </el-table> - </el-card> - </el-tab-pane> - <el-tab-pane label="流程信息"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <span>流程信息</span> - </div> - </template> - <div> - <el-timeline> - <el-timeline-item timestamp="2018/4/12" placement="top" color="rgb(63, 158, 255)"> - <el-card> - <h4 style="margin: 10px 0; padding-bottom: 10px">一级审批</h4> - <el-row> - <el-col class="tip" :span="22" :offset="1"> - <div class="item"> - <span class="label">审批人:</span> - <span class="value">管理员</span> - </div> - <div class="item"> - <span class="label">办理状态:</span> - <span class="value"> - <!-- <el-tag--> - <!-- v-for="item in items"--> - <!-- :key="item.label"--> - <!-- :type="item.type"--> - <!-- class="mx-1"--> - <!-- effect="dark"--> - <!-- >--> - <!-- {{ item.label }}--> - <!-- </el-tag>--> - <p class="text">等待审核</p> - </span> - </div> - <div class="item"> - <span class="label">审批意见:</span> - <span class="value">等待审核</span> - </div> - <div class="item"> - <span class="label">开始时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">结束时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">用时:</span> - <span class="value">0秒</span> - </div> - </el-col> - </el-row> - </el-card> - </el-timeline-item> - <el-timeline-item timestamp="2018/4/3" placement="top" color="rgb(63, 158, 255)"> - <el-card> - <h4>开始</h4> - <el-row> - <el-col class="tip" :span="22" :offset="1"> - <div class="item"> - <span class="label">审批人:</span> - <span class="value">胡海涛</span> - </div> - <div class="item"> - <span class="label">办理状态:</span> - <span class="value"> - <p class="text">开始</p> - </span> - </div> - <div class="item"> - <span class="label">审批意见:</span> - <span class="value">等待审核</span> - </div> - <div class="item"> - <span class="label">开始时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">结束时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">用时:</span> - <span class="value">0秒</span> - </div> - </el-col> - </el-row> - </el-card> - </el-timeline-item> - </el-timeline> - </div> - </el-card> - </el-tab-pane> - <el-tab-pane label="流程图"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <span>流程图</span> - </div> - </template> - <div></div> - </el-card> - </el-tab-pane> - </el-tabs> - </el-dialog> - <RegionsDialog ref="Shows" /> - <UserCheckbox ref="userRef" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent } from 'vue'; - -import type { TagProps } from 'element-plus'; - -import { Search, FullScreen } from '@element-plus/icons-vue'; -import UserCheckbox from '/@/components/userCheckbox/index.vue'; -import RegionsDialog from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue'; - -export default defineComponent({ - name: 'openAdd', - components: { - RegionsDialog, - UserCheckbox, - }, - setup() { - const isShowDialog = ref(false); - // 打开弹窗 - const openDialog = () => { - // state.ruleForm = row; - isShowDialog.value = true; - }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - { - date: '2016-05-02', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - { - date: '2016-05-04', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - { - date: '2016-05-01', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - ]; - - type Item = { type: TagProps['type']; label: string }; - - const items = ref<Array<Item>>([{ type: '', label: '等待审核' }]); - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - Search, - tableData, - items, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped lang="scss"> -.process-status-img { - width: 128px; - height: auto; - position: absolute; - right: 10px; - top: 60px; - z-index: 999; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer { - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -//tabs字体颜色 -::v-deep .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active { - color: #a9d86e !important; -} -.card-header { - display: flex; - justify-content: space-between; - align-items: center; -} -//.box-card { -// width: 480px; -//} -//步骤条字体大小 -::v-deep .el-step__icon-inner { - font-size: 14px !important; -} -//步骤条颜色 -::v-deep .el-step__line { - background-color: #409eff; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending { - border-bottom-color: #c0c4cc; -} - -.tip { - padding: 8px 16px; - background-color: #ecf8ff; - border-radius: 4px; - border-left: 5px solid #50bfff; - margin: 20px 0; -} -.item { - height: 32px; - line-height: 32px; - margin-bottom: 8px; -} -.item .label { - display: inline-block; - height: 100%; - width: 70px; - font-size: 14px; - color: #5e6d82; - text-align: end; - vertical-align: top; -} -.item .value { - padding-left: 10px; - font-size: 14px; - max-width: calc(100% - 90px); - color: #5e6d82; - display: inline-block; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.text { - background-color: #409eff; - color: #fff; - border-width: 1px; - border-style: solid; - border-radius: 4px; - height: 24px; - padding: 0 8px; - line-height: 22px; - display: inline-block; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/rectificationDialog.vue b/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/rectificationDialog.vue deleted file mode 100644 index bc66e00..0000000 --- a/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/rectificationDialog.vue +++ /dev/null @@ -1,775 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - :title="titles" - v-model="isShowDialog" - width="769px" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form - ref="ruleFormRef" - :model="ruleForm" - size="default" - label-width="120px" - :disabled="disabled" - > - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="整改标题" prop="emergencyPlanName"> - <el-input v-model="ruleForm.emergencyPlanName" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="整改单编号" prop="teamName"> - <el-input v-model="ruleForm.teamName" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="整改来源" prop="teamLeader"> - <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择"> - <el-option label="演练评价等" value="admin"></el-option> - <el-option label="现场处置方案" value="common"></el-option> - <el-option label="专项应急预案" value="common"></el-option> - <el-option label="其他预案" value="common"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="整改对象名称" prop="teamLeader"> - <el-input v-model="ruleForm.teamName" placeholder="请填写整改对象名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="不合格因素" prop="teamLevel"> - <el-input v-model="ruleForm.name" class="textarea" type="textarea"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="整改要求" prop="teamLevel"> - <el-input v-model="ruleForm.name" class="textarea" type="textarea"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="隐患等级" prop="teamLeader"> - <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择"> - <el-option label="一般">一般</el-option> - <el-option label="重大">重大</el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="隐患后果" prop="teamLeader"> - <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择"> - <el-option label="死亡">死亡</el-option> - <el-option label="重伤">重伤</el-option> - <el-option label="轻伤">轻伤</el-option> - <el-option label="火灾">火灾</el-option> - <el-option label="交通事故">交通事故</el-option> - <el-option label="财产损失">财产损失</el-option> - <el-option label="其它">其它</el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="隐患类型" prop="teamLeader"> - <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择"> - <el-option label="化学品管理" value="admin"></el-option> - <el-option label="管理制度缺陷" value="common"></el-option> - <el-option label="设计缺陷" value="admin"></el-option> - <el-option label="其它" value="common"></el-option> - <el-option label="现场管理" value="admin"></el-option> - <el-option label="消防安全" value="common"></el-option> - <el-option label="消防安全" value="common"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="区域名称" prop="telephone"> - <el-input - v-model="ruleForm.teamLeader" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="regionsDialog"/> - </template> - </el-input> - </el-form-item> - </el-col> -<!-- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">--> -<!-- <el-form-item label="隐患照片" prop="telephone">--> -<!-- <el-upload--> -<!-- class="avatar-uploader"--> -<!-- action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"--> -<!-- :show-file-list="false"--> -<!-- :on-success="handleAvatarSuccess"--> -<!-- :before-upload="beforeAvatarUpload"--> -<!-- >--> -<!-- <img v-if="imageUrl" :src="imageUrl" class="avatar" />--> -<!-- <el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>--> -<!-- </el-upload>--> -<!-- </el-form-item>--> -<!-- </el-col>--> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="发现人" prop="telephone" > - <el-input - v-model="ruleForm.teamLeader" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="发现日期" prop="telephone"> - <el-date-picker - v-model="value1" - class="w100" - type="datetime" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="填报人" prop="telephone" > - <el-input - v-model="ruleForm.teamLeader" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="填报日期" prop="telephone"> - <el-date-picker - v-model="value1" - class="w100" - type="datetime" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="填报人部门" placeholder="请选择"> - <el-tree-select - v-model="ruleForm.responsibleDepartment" - :data="data" class="w100" - placeholder="请选择"/> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="现场整改" prop="teamPhone"> - <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择"> - <el-option label="是" value="admin"></el-option> - <el-option label="否" value="common"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="责任部门" placeholder="请选择"> - <el-tree-select - v-model="ruleForm.responsibleDepartment" - :data="data" class="w100" - placeholder="请选择"/> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="组织整改" name="first"> - <el-row style="margin: 0"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" style="padding-left: 17.5px;padding-right: 17.5px;"> - <el-form-item label="整改意见" prop="teamLevel"> - <el-input v-model="ruleForm.name" class="textarea" type="textarea" placeholder="请填写整改意见"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" style="padding-left: 17.5px;padding-right: 17.5px;"> - <el-form-item label="整改期限" prop="telephone"> - <el-date-picker - v-model="value1" - class="w100" - type="datetime" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" style="padding-left: 17.5px;padding-right: 17.5px;"> - <el-form-item label="填报人" prop="telephone" > - <el-input - v-model="ruleForm.teamLeader" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" style="padding-left: 17.5px;padding-right: 17.5px;"> - <el-form-item label="填报日期" prop="telephone"> - <el-date-picker - v-model="value1" - class="w100" - type="datetime" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - </el-row> - </el-tab-pane> - </el-tabs> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" v-if="disabled == true ? false : true" type="primary" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <CheckTemplate ref="Shows"/> - <userSelections ref="userRef"/> - <RegionsDialog ref="openRef"/> - </div> -</template> - -<script lang="ts"> -import { - reactive, - ref, - defineComponent -} from 'vue'; -import { - ElMessage -} -from 'element-plus' -import type { - TabsPaneContext, - FormInstance, - UploadProps, -} from 'element-plus' -import { - Search, - Plus, - FullScreen -} from '@element-plus/icons-vue' -import UserSelections from "/@/components/userSelections/index.vue" -import CheckTemplate from '/@/components/checkTemplate/index.vue' -import RegionsDialog from '/@/components/regionsDialog/index.vue' -import {releaseDrillPlanApi} from "/@/api/contingencyManagement/emergencyDrillPlan"; -import {emergencyDrillEvaluationApi} from "/@/api/contingencyManagement/emergencyDrillEvaluation"; - -export default defineComponent({ - name: 'rectificationDialog', - components: { - CheckTemplate, - UserSelections, - RegionsDialog, - }, - setup(props, { emit }) { - const isShowDialog = ref(false) - - const ruleFormRef = ref<FormInstance>() - //定义表单 - const ruleForm = reactive({ - id: '', - drillPlanId: '', - suitable: '', - sufficient: '', - arrival: '', - supplies: '', - protection: '', - whole: '', - division: '', - effect: '', - report: '', - safety: '', - rescue: '', - evacuate: '', - needModify: '', - questionAndImprove: '', - modifyContent: '', - fileList: [ - { - fileName: 'name', - fileUrl: 'url', - } - ], - userList: [ - { - userUid: '' - }, - { - userUid: '' - } - ] - }); - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - // if (title == '查看演练实施评价' || title == '修改演练实施评价') { - // releaseDrillPlanApi() - // .seeReleaseDrillPlan(id) - // .then((res) => { - // if (res.data.code == 200) { - // ruleForm.value = res.data.data; - // } - // }); - // } - }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - // 取消 - const onCancel = () => { - closeDialog(); - }; - //日期选择器 - const value1 = ref('') - // 可选择树 - const treeSelect = ref() - const tree = [ - { - value: '1', - label: 'Level one 1', - children: [ - { - value: '11', - label: 'Level two 1-1', - children: [ - { - value: '111', - label: 'Level three 1-1-1', - }, - ], - }, - ], - }, - { - value: '2', - label: 'Level one 2', - children: [ - { - value: '21', - label: 'Level two 2-1', - children: [ - { - value: '211', - label: 'Level three 2-1-1', - }, - ], - }, - { - value: '22', - label: 'Level two 2-2', - children: [ - { - value: '221', - label: 'Level three 2-2-1', - }, - ], - }, - ], - }, - { - value: '3', - label: 'Level one 3', - children: [ - { - value: '31', - label: 'Level two 3-1', - children: [ - { - value: '311', - label: 'Level three 3-1-1', - }, - ], - }, - { - value: '32', - label: 'Level two 3-2', - children: [ - { - value: '321', - label: 'Level three 3-2-1', - }, - ], - }, - ], - }, - ] - //定义树形下拉框 - const responsibleDepartment = ref() - const data = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '11', - label: '经营班子', - children: [], - }, - ], - }, - { - value: '2', - label: '生产运行部', - children: [ - { - value: '21', - label: '灌装一班', - children: [] - }, - { - value: '22', - label: '工艺四班', - children: [], - }, - ], - }, - { - value: '3', - label: '设备部', - children: [ - { - value: '31', - label: '仪表班', - children: [], - }, - { - value: '32', - label: '机修班', - children: [], - }, - ], - }, - ] - // 必填项提示 - // const rules = reactive<FormRules>({ - // teamName: [ - // { - // required: true, - // message: '队伍名称不能为空', - // trigger: 'change', - // }, - // ], - // teamLevel: [ - // { - // required: true, - // message: '队伍级别不能为空', - // trigger: 'change', - // }, - // ], - // teamLeader: [ - // { - // required: true, - // message: '队伍负责人不能为空', - // trigger: 'change', - // }, - // ], - // responsibleDepartment: [ - // { - // required: true, - // message: '负责人部门不能为空', - // trigger: 'change', - // }, - // ], - // teamPhone: [ - // { - // required: true, - // message: '负责人手机不能为空', - // trigger: 'change', - // }, - // ], - // telephone: [ - // { - // required: true, - // message: '固定电话不能为空', - // trigger: 'change', - // }, - // ], - // }) - // 应急队伍弹窗 - // 表单提交验证必填项 - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '查看演练实施评价') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyDrillEvaluationApi() - .addEmergencyDrillEvaluation(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } - else if (title == '修改演练实施评价') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyDrillEvaluationApi() - .editEmergencyDrillEvaluation(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - id: '', - drillPlanId: '', - suitable: '', - sufficient: '', - arrival: '', - supplies: '', - protection: '', - whole: '', - division: '', - effect: '', - report: '', - safety: '', - rescue: '', - evacuate: '', - needModify: '', - questionAndImprove: '', - modifyContent: '', - fileList: [ - { - fileName: 'name', - fileUrl: 'url', - } - ], - userList: [ - { - userUid: '' - }, - { - userUid: '' - } - ] - }; - } - } - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - const Shows=ref() - const daiInpt=()=>{ - Shows.value.openDailog() - } - // 选择区域弹窗 - const openRef=ref() - const regionsDialog=()=>{ - openRef.value.openDailog() - } - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - const activeName = ref('first') - - const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event) - } - // 上传图片 - const imageUrl = ref('') - - const handleAvatarSuccess: UploadProps['onSuccess'] = ( - response, - uploadFile - ) => { - imageUrl.value = URL.createObjectURL(uploadFile.raw!) - } - - const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => { - if (rawFile.type !== 'image/jpeg') { - ElMessage.error('Avatar picture must be JPG format!') - return false - } else if (rawFile.size / 1024 / 1024 > 2) { - ElMessage.error('Avatar picture size can not exceed 2MB!') - return false - } - return true - } - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - responsibleDepartment, - data, - Search, - ruleForm, - value1, - treeSelect, - tree, - daiInpt, - Shows, - ruleFormRef, - // rules, - openUser, - userRef, - regionsDialog, - openRef, - activeName, - handleClick, - handleAvatarSuccess, - beforeAvatarUpload, - Plus, - toggleFullscreen, - FullScreen, - full, - submitForm, - emit, - titles, - disabled, - resetForm, - }; - }, -}); -</script> -<style scoped lang="scss"> -.el-form .el-form-item{ - margin-bottom: 18px !important; -} -::v-deep .el-form-item--default .el-form-item__label{ - text-align: right; - height: 100%; -} -.textarea{ - height: 50px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 50px!important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal{ - height: 0; - margin: 0; - border-top: transparent; -} -.el-select{ - width: 100%; -} -.el-divider--horizontal { - display: block; - height: 1px; - width: 100%; - margin: 24px 0; - background-color: #dcdfe6; - position: relative; -} -.el-divider__text { - position: absolute; - background-color: #fff; - padding: 0 20px; - color: #303133; - left: 50%; - font-weight: 500; - font-size: 14px; -} -////上传图片 -//.avatar-uploader .avatar { -// width: 178px; -// height: 178px; -// display: block; -//} - -</style> - -<!--<style scoped>--> -<!--.avatar-uploader .avatar {--> -<!-- width: 178px;--> -<!-- height: 178px;--> -<!-- display: block;--> -<!--}--> -<!--</style>--> -<!--<style>--> -<!--.avatar-uploader .el-upload {--> -<!-- border: 1px dashed var(--el-border-color);--> -<!-- border-radius: 6px;--> -<!-- cursor: pointer;--> -<!-- position: relative;--> -<!-- overflow: hidden;--> -<!-- transition: var(--el-transition-duration-fast);--> -<!--}--> - -<!--.avatar-uploader .el-upload:hover {--> -<!-- border-color: var(--el-color-primary);--> -<!--}--> - -<!--.el-icon.avatar-uploader-icon {--> -<!-- font-size: 28px;--> -<!-- color: #8c939d;--> -<!-- width: 178px;--> -<!-- height: 178px;--> -<!-- text-align: center;--> -<!--}--> -<!--</style>--> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue b/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue deleted file mode 100644 index a6a4c9b..0000000 --- a/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue +++ /dev/null @@ -1,502 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="待评价" name="first"> - <div class="button_Line mb15"> - <div class="button_Left"> - <!--<el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll">--> - <!--<el-icon>--> - <!--<Delete />--> - <!--</el-icon>删除--> - <!--</el-button>--> - </div> -<!-- <div class="button_Right">--> -<!-- <el-button @click="upButton">--> -<!-- <el-icon>--> -<!-- <Upload />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button>--> -<!-- <el-icon>--> -<!-- <Download />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button>--> -<!-- <el-icon>--> -<!-- <Refresh />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- </div>--> - </div> - <el-table - :data="tableData" - style="width: 100%" - ref="multipleTableRef" - @selection-change="handleSelectionChange" - > - <el-table-column - type="selection" - width="55" - /> - <el-table-column prop="drillName" label="演练名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillAddress" label="演练地点" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable> - <template #default="scope"> - <div v-if="scope.row.drillWay=='0'">综合</div> - <div v-if="scope.row.drillWay=='1'">桌面</div> - <div v-if="scope.row.drillWay=='2'">专项</div> - </template> - </el-table-column> - <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable> - <template #default="scope"> - <div v-if="scope.row.drillLevel=='1'">公司级</div> - <div v-if="scope.row.drillLevel=='2'">分厂级</div> - <div v-if="scope.row.drillLevel=='3'">车间级</div> - </template> - </el-table-column> - <el-table-column prop="drillPlanDate" label="计划演练日期" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillRecordDate" label="演练记录日期" show-overflow-tooltip sortable></el-table-column> -<!-- <el-table-column prop="attachments" label="应急预案" show-overflow-tooltip sortable></el-table-column>--> - <el-table-column label="操作" width="260" align="center" fixed="right"> - <template #default="scope"> - <!--<el-button size="small" text disabled>--> - <!--<el-icon style="margin-right: 5px;">--> - <!--<EditPen />--> - <!--</el-icon>评价--> - <!--</el-button>--> -<!-- <el-button size="small" text type="primary" @click="onFlowChart(scope.row.id)">--> -<!-- 审批进度--> -<!-- </el-button>--> - <!--<el-button size="small" text type="primary" @click="onApprovalProgress('详情',scope.row.id)">--> - <!--<el-icon style="margin-right: 5px;">--> - <!--<EditPen />--> - <!--</el-icon>查看评价--> - <!--</el-button>--> - - <el-button size="small" text type="primary" @click="onApprovalProgress('评价',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <EditPen /> - </el-icon>评价 - </el-button> - - <!--<el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)">--> - <!--<el-icon style="margin-right: 5px;">--> - <!--<EditPen />--> - <!--</el-icon>整改--> - <!--</el-button>--> - <!--<el-button size="small" text disabled @click="onOpenEdit(scope.row)">--> - <!--查看整改--> - <!--</el-button>--> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-tab-pane> - <el-tab-pane label="已评价" name="second"> - <div class="button_Line mb15"> - <div class="button_Left"> - <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </div> - <!-- <div class="button_Right">--> - <!-- <el-button @click="upButton">--> - <!-- <el-icon>--> - <!-- <Upload />--> - <!-- </el-icon>--> - <!-- </el-button>--> - <!-- <el-button>--> - <!-- <el-icon>--> - <!-- <Download />--> - <!-- </el-icon>--> - <!-- </el-button>--> - <!-- <el-button>--> - <!-- <el-icon>--> - <!-- <Refresh />--> - <!-- </el-icon>--> - <!-- </el-button>--> - <!-- </div>--> - </div> - <el-table - :data="tableData" - style="width: 100%" - ref="multipleTableRef" - @selection-change="handleSelectionChange" - > - <el-table-column - type="selection" - width="55" - /> - <el-table-column prop="drillName" label="演练名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillAddress" label="演练地点" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable> - <template #default="scope"> - <div v-if="scope.row.drillWay=='0'">综合</div> - <div v-if="scope.row.drillWay=='1'">桌面</div> - <div v-if="scope.row.drillWay=='2'">专项</div> - </template> - </el-table-column> - <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable> - <template #default="scope"> - <div v-if="scope.row.drillLevel=='1'">公司级</div> - <div v-if="scope.row.drillLevel=='2'">分厂级</div> - <div v-if="scope.row.drillLevel=='3'">车间级</div> - </template> - </el-table-column> - <el-table-column prop="drillPlanDate" label="计划演练日期" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillRecordDate" label="演练记录日期" show-overflow-tooltip sortable></el-table-column> - <!-- <el-table-column prop="attachments" label="应急预案" show-overflow-tooltip sortable></el-table-column>--> - <el-table-column label="操作" width="260" align="center" fixed="right"> - <template #default="scope"> - <!--<el-button size="small" text disabled>--> - <!--<el-icon style="margin-right: 5px;">--> - <!--<EditPen />--> - <!--</el-icon>评价--> - <!--</el-button>--> - <!-- <el-button size="small" text type="primary" @click="onFlowChart(scope.row.id)">--> - <!-- 审批进度--> - <!-- </el-button>--> - <el-button size="small" text type="primary" @click="onApprovalProgress('查看评价',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <EditPen /> - </el-icon>查看评价 - </el-button> - <!--<el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)">--> - <!--<el-icon style="margin-right: 5px;">--> - <!--<EditPen />--> - <!--</el-icon>整改--> - <!--</el-button>--> - <!--<el-button size="small" text disabled @click="onOpenEdit(scope.row)">--> - <!--查看整改--> - <!--</el-button>--> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-tab-pane> - </el-tabs> - </el-card> - <ApprovalProgress ref="approvalRef" @myAdd="onMyAdd" /> -<!-- <FlowChart ref="flowRef" />--> - <RectificationDialog ref="rectificationRef" @myAdd="onMyAdds" /> -<!-- <upData ref="upShow"></upData>--> - </div> -</template> - -<script lang="ts"> -import { - // toRefs, - reactive, - onMounted, - ref, - defineComponent -} from 'vue'; -import { - ElMessage, - ElMessageBox, - TabsPaneContext, -} from 'element-plus'; -import { - Plus, - // Upload, - // Download, - // Refresh, - Delete, - EditPen, -} from '@element-plus/icons-vue' -// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/components/flowChart.vue' -import ApprovalProgress from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; -import RectificationDialog from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/rectificationDialog.vue'; -import {emergencyDrillEvaluationApi} from '/@/api/contingencyManagement/emergencyDrillEvaluation' -import {emergencyDrillExecuteApi} from "/@/api/contingencyManagement/emergencyDrillExecute"; - - -// 定义接口来定义对象的类型 -// interface TableDataRow { -// } -export default defineComponent({ - name: 'systemUser', - components: { - EditPen, - Plus, - // Upload, - // Download, - // Refresh, - // UpData, - Delete, - ApprovalProgress, - RectificationDialog, - // FlowChart - }, - setup() { - const activeName = ref('first') - const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event) - if(tab.props.name=='first'){ - listQuery.searchParams.status=false - listApi() - }else if(tab.props.name=='second'){ - listQuery.searchParams.status=true - listApi() - } - } - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - status:false - }, - }); - // 定义表格数据 - const tableData = ref([]); - - // 列表数据请求 - const listApi = async () => { - // let res = await emergencyDrillEvaluationApi().getEmergencyDrillEvaluationList(listQuery); - let res = await emergencyDrillExecuteApi().getEmergencyDrillExecuteList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }; - - // 上传 - // const upShow=ref() - // const upButton=()=>{ - // upShow.value.openDialog() - // } - - // 审批进度弹窗 - // const flowRef = ref(); - // const onFlowChart = (row: TableDataRow) => { - // flowRef.value.openDialog(row); - // }; - // 打开修改弹窗 - const rectificationRef = ref(); - const onEdit = (val: string, row: object) => { - if (val == '修改') { - rectificationRef.value.openDialog('修改演练实施评价',row,false); - } else { - // rectificationRef.value.openDialog('修改演练实施评价',row,false); - } - }; - const onMyAdds = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 审批进度弹窗 - const approvalRef = ref(); - const onApprovalProgress = (val: string, row: object) => { - if (val == '详情') { - approvalRef.value.openDialog('查看演练实施评价', row, true); - } - if (val == '评价') { - approvalRef.value.openDialog('演练实施评价', row, false); - } - if (val == '查看评价') { - approvalRef.value.openDialog('演练实施查看评价', row, true); - } - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 整改弹窗 - // const rectificationRef = ref(); - // const onEdit = () => { - // rectificationRef.value.openDialog(); - // }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - emergencyDrillEvaluationApi() - .deleteEmergencyDrillEvaluation(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - listApi(); - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - listApi(); - }; - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - // console.log(deletAll.value); - if (val.length == 1) { - danger.value = false; - } else if (val.length == 0) { - danger.value = true; - } else { - danger.value = false; - } - }; - onMounted(() => { - listApi(); - }); - return { - activeName, - handleClick, - // upButton, - // upShow, - tableData, - // onOpenEdit, //编辑 - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - onApprovalProgress, - approvalRef, - onEdit, - rectificationRef, - // onFlowChart, - // flowRef, - onDeleteAll, - danger, - total, - handleSelectionChange, - onMyAdd, - onMyAdds, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box{ - padding: 20px; - background-color: #fff; -} -.tableForm{ - margin-top: 10px; -} -/*按钮行*/ -.button_Line{ - display: flex; - flex-direction: row; - justify-content: space-between; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending{ - border-bottom-color: #c0c4cc; -} -//分页 -.pages{ - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled{ - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next{ - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/openAdd.vue b/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/openAdd.vue deleted file mode 100644 index 15f3892..0000000 --- a/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/openAdd.vue +++ /dev/null @@ -1,627 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - :title="titles" - v-model="isShowDialog" - width="769px" - draggable - :fullscreen="full" - @close="resetForm(ruleFormRef)" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form - ref="ruleFormRef" - :model="ruleForm" - size="default" - label-width="120px" - :disabled="disabled" - > - <el-row :gutter="35"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="演练名称" prop="drillName"> - <el-input - v-model="ruleForm.drillName" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="regionsDialog"/> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - - - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练地点" prop="drillAddress"> - <el-input :disabled="true" v-model="drillRuleForm.drillAddress" placeholder="请填写演练地点"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="主办部门" placeholder="请选择" prop="departmentId"> - <el-tree-select - :disabled="true" - v-model="drillRuleForm.departmentId" - :data="deptData" - check-strictly - class="w100" - :props="propse" - clearable - placeholder="请选择"/> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练方式" prop="drillWay"> - <el-select :disabled="true" v-model="drillRuleForm.drillWay" class="w100" placeholder="请选择"> - <el-option label="综合" value="0"></el-option> - <el-option label="桌面" value="1"></el-option> - <el-option label="专项" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急预案" prop="planName" > - <el-input - :disabled="true" - v-model="drillRuleForm.planName" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :disabled="true" :icon="Search" @click="daiInpt"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练级别" prop="drillLevel"> - <el-select :disabled="true" v-model="drillRuleForm.drillLevel" class="w100" placeholder="请选择"> - <el-option label="公司级" value="1"></el-option> - <el-option label="分厂级" value="2"></el-option> - <el-option label="车间级" value="3"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划定制日期" prop="makingPlanDate"> - <el-date-picker :disabled="true" v-model="drillRuleForm.makingPlanDate" - value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划演练日期" prop="drillPlanDate"> - <el-date-picker :disabled="true" v-model="drillRuleForm.drillPlanDate" - value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="修改时间" prop="gmtModitify"> - <el-date-picker :disabled="true" v-model="drillRuleForm.gmtModitify" - value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划定制人" prop="makingUserName"> - <el-input :disabled="true" v-model="drillRuleForm.makingUserName" placeholder="请填写计划定制人"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="制定部门" prop="makingDepartmentId"> - <el-tree-select - :disabled="true" - v-model="drillRuleForm.makingDepartmentId" - check-strictly - :data="deptData" - class="w100" - :props="propse" - clearable - placeholder="请选择"/> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练人员" prop="userListString" > - <el-input - :disabled="true" - v-model="drillRuleForm.userListString" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :disabled="true" :icon="Search" @click="openUser(0)"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="演练目的" prop="purpose"> - <el-input - :disabled="true" - v-model="drillRuleForm.purpose" - placeholder="请填写演练目的" - class="input-with-select textarea" - type="textarea" - > - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练负责人" prop="chargeUserListString" > - <el-input - :disabled="true" - v-model="drillRuleForm.chargeUserListString" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :disabled="true" :icon="Search" @click="openUser(1)"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="保险措施" prop="insuranceMeasures"> - <el-input :disabled="true" v-model="drillRuleForm.insuranceMeasures" placeholder="请填写保险措施"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练经费" prop="drillExpense"> - <el-input :disabled="true" v-model="drillRuleForm.drillExpense" placeholder="请填写演练经费"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="备注信息" prop="remark"> - <el-input - :disabled="true" - v-model="drillRuleForm.remark" - placeholder="请填写备注信息" - class="input-with-select textarea" - type="textarea" - > - </el-input> - </el-form-item> - </el-col> - </el-row> - - - - - <el-row :gutter="35"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="实际到场人员" prop="autualUserListString" > - <el-input - v-model="ruleForm.autualUserListString" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="演练过程描述" prop="processDesc"> - <el-input - v-model="ruleForm.processDesc" - placeholder="请填写演练目的" - class="textarea" - type="textarea" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练记录人" prop="recordUserName" > - <el-input - v-model="ruleForm.recordUserName" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="daiInpt"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练记录时间" prop="drillRecordDate"> - <el-date-picker - class="w100" - v-model="ruleForm.drillRecordDate" - type="datetime" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" v-if="disabled == true ? false : true" type="primary" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <!--记录人--> - <DailogSearchUser ref="Shows" @SearchUser="onUser"/> - <!--到场人员--> - <DailogSearchUser ref="userRef" @SearchUser="selectDCuser"/> - <RegionsDialog ref="openRef" @SearchUser="onUsers"/> - </div> -</template> - -<script lang="ts"> -import { - // reactive, - ref, - defineComponent, - onMounted, -} from 'vue'; - -import type { - FormInstance, - // FormRules, -} from 'element-plus' -import { ElMessage } from 'element-plus'; -import { - Search, - FullScreen -} from '@element-plus/icons-vue' -import UserCheckbox from "/@/components/userCheckbox/index.vue" -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue' -import RegionsDialog from '/@/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/regionsDialog.vue' -import {emergencyDrillExecuteApi} from "/@/api/contingencyManagement/emergencyDrillExecute"; -import {releaseDrillPlanApi} from "/@/api/contingencyManagement/emergencyDrillPlan"; -import {goalManagementApi} from "/@/api/goalManagement"; - -export default defineComponent({ - name: 'openAdd', - components: { - DailogSearchUser, - UserCheckbox, - RegionsDialog, - }, - setup(props, { emit }) { - const isShowDialog = ref(false) - - const ruleFormRef = ref<FormInstance>() - //定义表单 - const ruleForm = ref ({ - drillRecordDate: '', // 演练记录时间 - drillPlanId: '', //演练计划ID - drillName:'', - recordUserUid: '', // 记录人ID - recordUserName:'', - processDesc: '', // 演练过程描述 - - autualUserListString:'', - userList: [ - { - userUid: '', - }, - { - userUid: '', - } - ] - }); - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if (title == '查看应急演练实施' || title == '修改应急演练实施') { - emergencyDrillExecuteApi() - .seeEmergencyDrillExecute(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - ruleForm.value.autualUserListString='' - for(var a = 0;a<res.data.data.userList.length;a++){ - ruleForm.value.autualUserListString += res.data.data.userList[a].userName+';' - } - - releaseDrillPlanApi() - .seeReleaseDrillPlan(res.data.data.drillPlanId) - .then((res1) => { - if (res1.data.code == 200) { - drillRuleForm.value = res1.data.data; - - drillRuleForm.value.userListString='' - drillRuleForm.value.chargeUserListString='' - for(var a = 0;a<res1.data.data.userList.length;a++){ - if(res1.data.data.userList[a].type==1){ - drillRuleForm.value.userListString += res1.data.data.userList[a].userName+';' - } - // if(res.data.data.userList[a].type==2){ - // ruleForm.value.chargeUserListString += res.data.data.userList[a].userName+';' - // } - } - // alert(res.data.data.chargeUserList.length) - for(var a = 0;a<res1.data.data.chargeUserList.length;a++){ - drillRuleForm.value.chargeUserListString += res1.data.data.chargeUserList[a].userName+';' - } - } - }) - } - }); - } - }; - const data = []; - const deptData = [] - //部门树 - // const department = () => { - // goalManagementApi() - // .getTreedepartment() - // .then((res) => { - // if (res.data.code == 200) { - // deptData.value = res.data.data; - // console.log('-------',deptData.value) - // } else { - // ElMessage.error(res.data.msg); - // } - // }); - // }; - // - // const propse = { - // label: 'depName', - // children: 'children', - // value: 'depId', - // }; - //el-tree-select回显 - const propse = { - label: 'depName', - children: 'children', - }; - //得到部门树 - const department = async () => { - await goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - getTreeList(res.data.data, deptData); - console.log('deptData',deptData) - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 递归树状数据且修改字段名 - const getTreeList = (treeList, deptData) => { - treeList.map((c) => { - let tempData = { - depName: c.depName, - value: c.depId, - children: [], - }; - if (c.children && c.children.length > 0) { - tempData.children = []; - getTreeList(c.children, tempData.children); - } - deptData.push(tempData); - }); - }; - onMounted(() => { - department(); - }); - //日期选择器 - const drillRecordDate = ref('') - // 表单提交验证必填项 - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建应急演练实施') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyDrillExecuteApi() - .addEmergencyDrillExecute(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } - else if (title == '修改应急演练实施') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyDrillExecuteApi() - .editEmergencyDrillExecute(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - drillRecordDate: '', // 演练记录时间 - drillPlanId: '', //演练计划ID - drillName:'', - recordUserUid: '', // 记录人ID - processDesc: '', // 演练过程描述 - userList: [ - { - userUid: '', - }, - { - userUid: '', - } - ] - }; - } - } - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - drillRuleForm.value={} - formEl.resetFields(); - }; - - // 演练名称弹窗 - const openRef=ref() - const regionsDialog = () => { - openRef.value.openDailog() - } - //定义表单 - const drillRuleForm = ref ({}) - const onUsers = (e:any) => { - console.log(e) - releaseDrillPlanApi() - .seeReleaseDrillPlan(e.id) - .then((res) => { - if (res.data.code == 200) { - drillRuleForm.value = res.data.data; - - drillRuleForm.value.userListString='' - drillRuleForm.value.chargeUserListString='' - for(var a = 0;a<res.data.data.userList.length;a++){ - if(res.data.data.userList[a].type==1){ - drillRuleForm.value.userListString += res.data.data.userList[a].userName+';' - } - // if(res.data.data.userList[a].type==2){ - // ruleForm.value.chargeUserListString += res.data.data.userList[a].userName+';' - // } - } - // alert(res.data.data.chargeUserList.length) - for(var a = 0;a<res.data.data.chargeUserList.length;a++){ - drillRuleForm.value.chargeUserListString += res.data.data.chargeUserList[a].userName+';' - } - } - }) - ruleForm.value.drillPlanId=e.id - ruleForm.value.drillName=e.drillName - }; - // 实际到场人员弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(0); - }; - const selectDCuser = (e) => { - ruleForm.value.autualUserListString='' - ruleForm.value.userList=[] - for(var a = 0;a<e.length;a++){ - ruleForm.value.userList.push( - { - userName: e[a].realName, - userUid: e[a].uid, - } - ) - ruleForm.value.autualUserListString+=e[a].realName+';' - } - } - // 演练记录人弹窗 - const Shows=ref() - const daiInpt=()=>{ - Shows.value.openDailog() - } - const onUser = (e:any) => { - ruleForm.value.recordUserUid=e.uid - ruleForm.value.recordUserName=e.realName - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - isShowDialog, - Search, - ruleForm, - drillRecordDate, - daiInpt, - Shows, - ruleFormRef, - submitForm, - // rules, - openUser, - userRef, - regionsDialog, - onUsers, - onUser, - openRef, - toggleFullscreen, - FullScreen, - full, - resetForm, - titles, - disabled, - emit, - selectDCuser, - drillRuleForm, - deptData, - propse, - data, - department - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea{ - height: 168px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 168px!important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal{ - height: 0; - margin: 0; - border-top: transparent; -} -.el-select{ - width: 100%; -} -.textarea{ - height: 90px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 90px!important; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/regionsDialog.vue b/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/regionsDialog.vue deleted file mode 100644 index a6cdd4e..0000000 --- a/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/regionsDialog.vue +++ /dev/null @@ -1,221 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" title="选择演练计划" width="900px" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row> - <el-col :span="18"> - <el-row> - <el-col :span="24"> - <el-form ref="ruleFormRef" :inline="true" :model="ruleForm" status-icon> - <el-form-item> - <el-input size="default" v-model="listQuery.searchParams.drillName" placeholder="演练名称" style="max-width: 215px;margin-right: 12px;" /> - </el-form-item> - <el-form-item> - <el-button size="default" type="primary" @click="onSubmit">查询</el-button> - <el-button size="default" @click="submitReset">重置</el-button> - </el-form-item> - </el-form> - </el-col> - <el-col :span="24"> - <el-button size="default" :icon="Delete" style="margin-top: 15px">清除选择</el-button> - </el-col> - </el-row> - <el-table - :data="tableData" - style="width: 100%; - margin-top: 20px" - @cell-click="radio" - > - <el-table-column width="55"> - <template #default="scope"> - <el-radio-group v-model="radio1"> - <el-radio :label="scope.row" size="large">{{ null }}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <el-table-column align="center" prop="drillName" label="演练名称" /> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - /> - </div> - </el-col> - <el-col :span="6"> - <div v-if="dynamicTags[0] == '' ? false : true"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag.drillName }} - </el-tag> - </div> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref, onMounted } from 'vue'; -import { ElMessage } from 'element-plus'; -import { Delete, FullScreen } from '@element-plus/icons-vue'; -import { emergencyPlanLogApi } from '/@/api/contingencyManagement/emergencyPlanLog'; -import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; -import {releaseDrillPlanApi} from "/@/api/contingencyManagement/emergencyDrillPlan"; -export default defineComponent({ - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const openDailog = () => { - dialogVisible.value = true; - onSubmit() - }; - // 搜索条件 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - drillName: '' - }, - }); - // 列表请求数据 - const onSubmit = async () => { - let res = await releaseDrillPlanApi().getReleaseDrillPlanList(listQuery); - if (res.data.code === '200') { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - type: 'error', - message: res.data.msg, - }); - } - }; - // 定义表格数据 - const tableData = ref([]); - // 重置 - const submitReset = () => { - listQuery.searchParams.drillName = ''; - onSubmit(); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const onHandleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const onHandleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - // 右方点击添加后显示标签 - const dynamicTags = ref(['']); - const handleClose = (tag: string) => { - dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); - radio1.value = ''; - }; - const radio1 = ref(''); - const radio = (event: any) => { - dynamicTags.value[0] = event; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - - const submitForm = () => { - let obj = JSON.parse(JSON.stringify(dynamicTags.value)); - emit('SearchUser', obj[0]); - dialogVisible.value = false; - }; - onMounted(() => { - onSubmit(); - }); - return { - dialogVisible, - openDailog, - tableData, - pageSize, - pageIndex, - onHandleSizeChange, - onHandleCurrentChange, - dynamicTags, - handleClose, - Delete, - radio1, - radio, - toggleFullscreen, - FullScreen, - full, - submitReset, - onMounted, - listQuery, - submitForm, - onSubmit, - total, - }; - }, -}); -</script> -<style scoped> -.el-form--inline .el-form-item { - margin-bottom: 0; - margin-right: 0; -} -/*分页*/ -.pages { - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> diff --git a/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/userSelect.vue b/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/userSelect.vue deleted file mode 100644 index c3a4156..0000000 --- a/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/userSelect.vue +++ /dev/null @@ -1,443 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - title="用户选择" - v-model="isShowDialog" - width="1000px" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-container class="layout-container-demo" style="height: 500px;overflow: auto;min-width: 960px"> - <el-aside width="200px"> - <el-input v-model="filterText" placeholder="请输入组织机构过滤" /> - <el-tree - ref="treeRef" - class="filter-tree" - :data="data" - :props="defaultProps" - default-expand-all - :filter-node-method="filterNode" - /> - </el-aside> - <el-container style="margin: 0 15px;min-width:560px;"> - <el-header style="font-size: 12px"> - <el-form :inline="true" :model="formInline" class="demo-form-inline"> - <el-form-item> - <el-input size="default" v-model="formInline.name" placeholder="登录名"> </el-input> - </el-form-item> - <el-form-item> - <el-button size="default" type="primary" class="ml10" @click="onSubmit"> - 查询 - </el-button> - <el-button size="default" class="ml10" @click="submitReset"> - 重置 - </el-button> - </el-form-item> - </el-form> - </el-header> - <el-main style="position: relative;"> - <el-table - :data="tableData" - :header-cell-style="{background:'#f6f7fa',color:'#909399',fontWeight:400}" - > - <el-table-column align="center" width="55"> - <template #default="scope"> - <el-radio-group v-model="radio1" @change="radio"> - <el-radio :label="scope.row.date" size="large">{{null}}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <el-table-column prop="date" label="登录名" width="100" show-overflow-tooltip sortable /> - <el-table-column prop="name" label="用户名" width="100" show-overflow-tooltip sortable /> - <el-table-column prop="address" label="所属机构" width="115" show-overflow-tooltip sortable /> - <el-table-column prop="department" label="所属部门" width="115" show-overflow-tooltip sortable/> - <el-table-column label="状态" - width="80" - prop="tag" - :filters="[ - { text: '正常', value: 'Home' }, - { text: '不正常', value: 'Office' }, - ]" - :filter-method="filterTag" - filter-placement="bottom-end"> - <template #default="scope"> - <el-tag - :type="scope.row.tag === 'Home' ? '' : 'success'" - disable-transitions - >{{ scope.row.tag }}</el-tag - > - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="40" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-main> - </el-container> - <div style="width: 200px;"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag }} - </el-tag> - </div> - </el-container> - <template #footer> - <span class="dialog-footer"> - <el-button size="default" type="primary" @click="onCancel">确定</el-button> - <el-button size="default" @click="onCancel">关闭</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -import { - ref, - defineComponent, - watch, - reactive, -} from 'vue'; - -import type { - ElTree, - // ElTable, -} from 'element-plus' -import { - FullScreen -} from '@element-plus/icons-vue' -interface Tree { - id: number - label: string - children?: Tree[] -} -// interface User { -// date: string -// name: string -// address: string -// } -export default defineComponent({ - name: 'userSelections', - components: { - // Search, - }, - setup() { - const isShowDialog = ref(false) - // 打开弹窗 - const openDialog = () => { - isShowDialog.value = true; - }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - // 取消 - const onCancel = () => { - closeDialog(); - }; - - - const filterText = ref('') - const treeRef = ref<InstanceType<typeof ElTree>>() //实例化 - - const defaultProps = { - children: 'children', - label: 'label', - } - - // 监听搜索关键字改变 - watch(filterText, (val) => { - treeRef.value!.filter(val) - }) - - // 节点过滤模糊搜索 - const filterNode = (value: string, data: Tree) => { - if (!value) return true - return data.label.includes(value) - } - - // 树形结构内容 - const data: Tree[] = [ - { - id: 1, - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - id: 4, - label: '经营班子', - children: [] - }, - ], - }, - { - id: 2, - label: '生产运行部', - children: [ - { - id: 5, - label: '工艺二班', - }, - { - id: 6, - label: '灌装一班', - }, - ], - }, - { - id: 3, - label: '设备部', - children: [ - { - id: 7, - label: '仪表班', - }, - { - id: 8, - label: '机修班', - }, - ], - }, - ] - // const item = { - // date: '孙刚', - // name: '龚赛健', - // address: '综合办公室', - // tag: '正常', - // } - // const tableData = ref(Array.from({ length: 7 }).fill(item)) - const tableData = [ - { - date: '孙刚', - name: '孙刚', - address: '', - department: '经营班子', - tag: '正常', - }, - { - date: '谭柏', - name: '谭柏', - address: '', - department: '经营班子', - tag: '正常', - }, - { - date: '倪威', - name: '倪威', - address: '', - department: '经营班子', - tag: '正常', - }, - { - date: '倪玲婕', - name: '倪玲婕', - address: '', - department: '经营班子', - tag: '正常', - }, - ]; - // 定义表单搜索 - const formInline = reactive({ - name: '', - }) - // 搜索按钮 - const onSubmit = () => { - console.log('submit!') - } - - // const multipleTableRef = ref<InstanceType<typeof ElTable>>() - // 右方点击添加后显示标签 - const dynamicTags = ref(['胡海涛']); - const handleClose = (tag: string) => { - dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); - radio1.value="" - }; - const radio1=ref('谭柏') - const radio=(event:any)=>{ - dynamicTags.value[0]=event - } - - // 分页 - const pageIndex = ref(4); - const pageSize = ref(10); - // 分页改变 - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`); - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - defaultProps, - filterNode, - data, - tableData, - formInline, - onSubmit, - // multipleTableRef, - handleClose, - dynamicTags, - handleSizeChange, - handleCurrentChange, - pageIndex, - pageSize, - radio1, - radio, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped lang="scss"> -.layout-container-demo .el-header { - position: relative; - color: var(--el-text-color-primary); - line-height: 32px; - --el-header-height: 45px; - padding: 0; -} -.layout-container-demo .el-aside { - padding: 10px; - border: 1px solid #ebeef5; - color: var(--el-text-color-primary); -} -::v-deep .el-input--large .el-input__inner { - height: 32px!important; - line-height: 32px!important; -} -.layout-container-demo .el-menu { - border-right: none; -} -.layout-container-demo .el-main { - padding: 0; -} -.layout-container-demo .toolbar { - display: inline-flex; - align-items: center; - justify-content: center; - height: 100%; - right: 20px; -} -.el-input--large{ - //width: 178px; - height: 32px; -} -.el-tree{ - overflow: auto; -} -::-webkit-scrollbar { - height: 1px; - -} -::-webkit-scrollbar-thumb { - background-color: transparent; -} -// 鼠标悬浮样式 -:hover::-webkit-scrollbar-thumb { - border-radius: 15px; - background-color: #d8d9db; -} -::v-deep .el-input__wrapper{ - width: 215px; -} -::v-deep .el-form-item{ - margin-bottom: 0; - margin-right: 0; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -//单选框圆形 -::v-deep .el-table__header .el-table-column--selection .cell .el-checkbox { - display:none -} -::v-deep .el-table-column--selection .cell{ - text-align: center; -} -::v-deep .el-checkbox__input .el-checkbox__inner{ - border-radius: 50%; -} -/*分页*/ -.pages{ - display: flex; - justify-content: flex-end; - margin-top: 15px; - align-items: center; - //position: absolute; - //bottom: 0; -} -::v-deep .el-pagination{ - width: 100%; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled{ - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next{ - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/index.vue b/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/index.vue deleted file mode 100644 index 767809d..0000000 --- a/src/components/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/index.vue +++ /dev/null @@ -1,375 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="button_Line mb15"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> - <Plus /> - </el-icon>新建 - </el-button> - <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </div> - <div class="button_Right"> -<!-- <el-button @click="upButton">--> -<!-- <el-icon>--> -<!-- <Upload />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button>--> -<!-- <el-icon>--> -<!-- <Download />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button>--> -<!-- <el-icon>--> -<!-- <Refresh />--> -<!-- </el-icon>--> -<!-- </el-button>--> - </div> - </div> - <el-table - :data="tableData" - style="width: 100%" - ref="" - @selection-change="handleSelectionChange" - > - <el-table-column - type="selection" - width="55" - /> - <el-table-column prop="drillName" label="演练名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillAddress" label="演练地点" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable> - <template #default="scope"> - <div v-if="scope.row.drillWay=='0'">综合</div> - <div v-if="scope.row.drillWay=='1'">桌面</div> - <div v-if="scope.row.drillWay=='2'">专项</div> - </template> - </el-table-column> - <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable> - <template #default="scope"> - <div v-if="scope.row.drillLevel=='1'">公司级</div> - <div v-if="scope.row.drillLevel=='2'">分厂级</div> - <div v-if="scope.row.drillLevel=='3'">车间级</div> - </template> - </el-table-column> - <el-table-column prop="drillPlanDate" label="计划演练日期" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillRecordDate" label="演练记录时间" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="emergencyPlanName" label="应急预案" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="260" align="center" fixed="right"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <View /> - </el-icon>查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <EditPen /> - </el-icon>修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - background - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-card> - <OpenAdd ref="addRef" @myAdd="onMyAdd"/> -<!-- <upData ref="upShow"></upData>--> - </div> -</template> - -<script lang="ts"> -import { - // toRefs, - reactive, - onMounted, - ref, - defineComponent -} from 'vue'; -import { - ElMessageBox, - ElMessage, - // ElTable, -} from 'element-plus'; -import { Plus, - // Edit, - Delete, - // Upload, - // Download, - View, - Refresh, - VideoPause, - EditPen, -} from '@element-plus/icons-vue' -import OpenAdd from '/@/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/openAdd.vue'; -import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; -import {emergencyDrillExecuteApi} from "/@/api/contingencyManagement/emergencyDrillExecute"; - -export default defineComponent({ - name: 'systemUser', - components: { - OpenAdd, - EditPen, - Plus, - // Edit, - Delete, - View, - // Upload, - // Download, - Refresh, - VideoPause, - UpData - }, - setup() { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 列表数据请求 - const listApi = async () => { - let res = await emergencyDrillExecuteApi().getEmergencyDrillExecuteList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }; - - // 上传 - // const upShow=ref() - // const upButton=()=>{ - // upShow.value.openDialog() - // } - // 打开新增用户弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建应急演练实施',false); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 打开修改用户弹窗 - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog('查看应急演练实施',row,true); - } else { - addRef.value.openDialog('修改应急演练实施',row,false); - } - }; - // 删除用户 - const onRowDel = (id: number) => { - let arr = []; - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', '提示',{ - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }).then(() => { - emergencyDrillExecuteApi() - .deleteEmergencyDrillExecute(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - danger.value = false; - } else if (val.length == 0) { - danger.value = true; - } else { - danger.value = false; - } - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - emergencyDrillExecuteApi() - .deleteEmergencyDrillExecute(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - listApi(); - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - listApi(); - }; - - onMounted(() => { - listApi(); - }); - return { - // upButton, - // upShow, - tableData, - onOpenAdd, //新增 - addRef, - onRowDel, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - onMyAdd, - total, - onDeleteAll, - handleSelectionChange, - danger, - deletAll, - onEdit, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box{ - padding: 20px; - background-color: #fff; -} -.tableForm{ - margin-top: 10px; -} -/*按钮行*/ -.button_Line{ - display: flex; - flex-direction: row; - justify-content: space-between; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending{ - border-bottom-color: #c0c4cc; -} -//分页开始 -.pages{ - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled{ - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next{ - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -//分页结束 -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue b/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue deleted file mode 100644 index 5dad014..0000000 --- a/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue +++ /dev/null @@ -1,325 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - title="应急演练计划--修改审批进度" - v-model="isShowDialog" - width="769px" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <!-- <img class="process-status-img" src="src/assets/icon.png"> --> - <el-tabs type="border-card"> - <el-tab-pane label="流转记录"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <span>流转记录</span> - </div> - </template> - <div> - <el-steps :active="2"> - <el-step title="开始" description="胡海涛,2022-07-09 20:41:50" /> - <el-step title="一级审批" description="管理员,2022-07-09 20:41:50" /> - </el-steps> - </div> - <el-table :data="tableData" stripe style="width: 100%"> - <el-table-column prop="date" label="执行环节" width="120" /> - <el-table-column prop="name" label="执行人" width="120" /> - <el-table-column prop="address" label="开始时间" width="100" /> - <el-table-column prop="address" label="结束时间" width="100" /> - <el-table-column prop="address" label="办理状态" width="100" /> - <el-table-column prop="address" label="审批意见" width="100" /> - <el-table-column prop="address" label="任务历时" width="100" /> - </el-table> - </el-card> - </el-tab-pane> - <el-tab-pane label="流程信息"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <span>流程信息</span> - </div> - </template> - <div> - <el-timeline> - <el-timeline-item timestamp="2018/4/12" placement="top" color="rgb(63, 158, 255)"> - <el-card> - <h4 style="margin: 10px 0;padding-bottom: 10px;">一级审批</h4> - <el-row> - <el-col class="tip" :span="22" :offset="1"> - <div class="item"> - <span class="label">审批人:</span> - <span class="value">管理员</span> - </div> - <div class="item"> - <span class="label">办理状态:</span> - <span class="value"> -<!-- <el-tag--> -<!-- v-for="item in items"--> -<!-- :key="item.label"--> -<!-- :type="item.type"--> -<!-- class="mx-1"--> -<!-- effect="dark"--> -<!-- >--> -<!-- {{ item.label }}--> -<!-- </el-tag>--> - <p class="text">等待审核</p> - </span> - </div> - <div class="item"> - <span class="label">审批意见:</span> - <span class="value">等待审核</span> - </div> - <div class="item"> - <span class="label">开始时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">结束时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">用时:</span> - <span class="value">0秒</span> - </div> - </el-col> - </el-row> - </el-card> - </el-timeline-item> - <el-timeline-item timestamp="2018/4/3" placement="top" color="rgb(63, 158, 255)"> - <el-card> - <h4>开始</h4> - <el-row> - <el-col class="tip" :span="22" :offset="1"> - <div class="item"> - <span class="label">审批人:</span> - <span class="value">胡海涛</span> - </div> - <div class="item"> - <span class="label">办理状态:</span> - <span class="value"> - <p class="text">开始</p> - </span> - </div> - <div class="item"> - <span class="label">审批意见:</span> - <span class="value">等待审核</span> - </div> - <div class="item"> - <span class="label">开始时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">结束时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">用时:</span> - <span class="value">0秒</span> - </div> - </el-col> - </el-row> - </el-card> - </el-timeline-item> - </el-timeline> - </div> - </el-card> - </el-tab-pane> - <el-tab-pane label="流程图"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <span>流程图</span> - </div> - </template> - <div> - </div> - </el-card> - </el-tab-pane> - </el-tabs> - </el-dialog> - <RegionsDialog ref="Shows"/> - <UserCheckbox ref="userRef"/> - </div> -</template> - -<script lang="ts"> -import { - - ref, - defineComponent -} from 'vue'; - -import type { - TagProps, -} from 'element-plus' - -import { - Search, - FullScreen -} from '@element-plus/icons-vue' -import UserCheckbox from "/@/components/userCheckbox/index.vue" -import RegionsDialog from "/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue" - -export default defineComponent({ - name: 'openAdd', - components: { - RegionsDialog, - UserCheckbox, - }, - setup() { - const isShowDialog = ref(false) - // 打开弹窗 - const openDialog = () => { - // state.ruleForm = row; - isShowDialog.value = true; - }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - { - date: '2016-05-02', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - { - date: '2016-05-04', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - { - date: '2016-05-01', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - ] - - type Item = { type: TagProps['type']; label: string } - - const items = ref<Array<Item>>([ - { type: '', label: '等待审核' }, - ]) - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - Search, - tableData, - items, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped lang="scss"> -.process-status-img{ - width: 128px; - height: auto; - position: absolute; - right: 10px; - top: 60px; - z-index: 999; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -//tabs字体颜色 -::v-deep .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{ - color: #a9d86e!important; -} -.card-header { - display: flex; - justify-content: space-between; - align-items: center; -} -//.box-card { -// width: 480px; -//} -//步骤条字体大小 -::v-deep .el-step__icon-inner{ - font-size: 14px!important; -} -//步骤条颜色 -::v-deep .el-step__line{ - background-color: #409eff; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending{ - border-bottom-color: #c0c4cc; -} - -.tip { - padding: 8px 16px; - background-color: #ecf8ff; - border-radius: 4px; - border-left: 5px solid #50bfff; - margin: 20px 0; -} -.item{ - height: 32px; - line-height: 32px; - margin-bottom: 8px; -} -.item .label { - display: inline-block; - height: 100%; - width: 70px; - font-size: 14px; - color: #5e6d82; - text-align: end; - vertical-align: top; -} -.item .value { - padding-left: 10px; - font-size: 14px; - max-width: calc(100% - 90px); - color: #5e6d82; - display: inline-block; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.text{ - background-color: #409eff; - color: #fff; - border-width: 1px; - border-style: solid; - border-radius: 4px; - height: 24px; - padding: 0 8px; - line-height: 22px; - display: inline-block; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue b/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue deleted file mode 100644 index a1a8412..0000000 --- a/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue +++ /dev/null @@ -1,571 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - :title="titles" - v-model="isShowDialog" - width="769px" - draggable - :fullscreen="full" - @close="resetForm(ruleFormRef)" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form - ref="ruleFormRef" - :model="ruleForm" - size="default" - label-width="120px" - :disabled="disabled" - > - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练名称" prop="drillName"> - <el-input v-model="ruleForm.drillName" placeholder="请填写演练名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练地点" prop="drillAddress"> - <el-input v-model="ruleForm.drillAddress" placeholder="请填写演练地点"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="主办部门" placeholder="请选择" prop="departmentId"> - <el-tree-select - v-model="ruleForm.departmentId" - :data="data" - check-strictly - class="w100" - :props="propse" - clearable - placeholder="请选择"/> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练方式" prop="drillWay"> - <el-select v-model="ruleForm.drillWay" class="w100" placeholder="请选择"> - <el-option label="综合" value="1"></el-option> - <el-option label="桌面" value="2"></el-option> - <el-option label="专项" value="3"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急预案" prop="planName" > - <el-input - v-model="ruleForm.planName" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="daiInpt"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练级别" prop="drillLevel"> - <el-select v-model="ruleForm.drillLevel" class="w100" placeholder="请选择"> - <el-option label="公司级" value="1"></el-option> - <el-option label="分厂级" value="2"></el-option> - <el-option label="车间级" value="3"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划定制日期" prop="makingPlanDate"> - <el-date-picker v-model="ruleForm.makingPlanDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划演练日期" prop="drillPlanDate"> - <el-date-picker v-model="ruleForm.drillPlanDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="修改时间" prop="gmtModitify"> - <el-date-picker v-model="ruleForm.gmtModitify" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划定制人" prop="makingUserName"> - <el-input v-model="ruleForm.makingUserName" placeholder="请填写计划定制人" disabled></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="制定部门" prop="makingDepartmentId"> - <el-tree-select - v-model="ruleForm.makingDepartmentId" - check-strictly - :data="data" - class="w100" - :props="propse" - clearable - placeholder="请选择"/> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练人员" prop="userListString" > - <el-input - v-model="ruleForm.userListString" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="openUser(0)"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="演练目的" prop="purpose"> - <el-input - v-model="ruleForm.purpose" - placeholder="请填写演练目的" - class="input-with-select textarea" - type="textarea" - > - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练负责人" prop="chargeUserListString" > - <el-input - v-model="ruleForm.chargeUserListString" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="openUser(1)"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="保险措施" prop="insuranceMeasures"> - <el-input v-model="ruleForm.insuranceMeasures" placeholder="请填写保险措施"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练经费" prop="drillExpense"> - <el-input v-model="ruleForm.drillExpense" placeholder="请填写演练经费"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="备注信息" prop="remark"> - <el-input - v-model="ruleForm.remark" - placeholder="请填写备注信息" - class="input-with-select textarea" - type="textarea" - > - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" style="margin-bottom: 0!important;"> - <el-form-item label="预案附件"> - <!--<el-upload--> - <!--v-model:file-list="fileList"--> - <!--class="upload-demo"--> - <!--action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"--> - <!--:on-change="handleChange"--> - <!-->--> - <!--<el-button type="primary"--> - <!-->点击上传</el-button>--> - <!--<template #tip>--> - <!--<div class="el-upload__tip">--> - <!--添加相关附件--> - <!--</div>--> - <!--</template>--> - <!--</el-upload>--> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" v-if="disabled == true ? false : true" type="primary" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <RegionsDialog ref="Shows" @SearchUser="onUser" /> - <DailogSearchUser ref="userRef" @SearchUser="SearchUser" /> - <DailogSearchUser ref="userFZRef" @SearchUser="SearchFZUser" /> - </div> -</template> - -<script lang="ts"> -import { - // reactive, - ref, - defineComponent, - onMounted, -} from 'vue'; - -import type { - UploadUserFile, - FormInstance, -} from 'element-plus' -import { ElMessage } from 'element-plus'; -import { - Search, - FullScreen -} from '@element-plus/icons-vue' -import DailogSearchUser from "/@/components/DailogSearchUser/index.vue" -import RegionsDialog from "/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue" -import {releaseDrillPlanApi} from "/@/api/contingencyManagement/emergencyDrillPlan"; -import {goalManagementApi} from "/@/api/goalManagement"; -import { Session } from '/@/utils/storage'; - -export default defineComponent({ - name: 'openAdd', - components: { - RegionsDialog, - DailogSearchUser - }, - setup(props, { emit }) { - const isShowDialog = ref(false) - - const ruleFormRef = ref<FormInstance>() - //定义表单 - const ruleForm = ref ({ - makingPlanDate: '', // 计划制定日期 - drillPlanDate: '', //计划演练日期 - makingUserUid: '', //计划制定人ID - makingUserName: '', //计划制定人Name - makingDepartmentId: '', // 计划制定部门ID - planId: '', // 应急预案ID - planName: '', // 应急预案name - departmentId: '', // 主办部门ID - drillExpense: '', // 演练经费 - drillLevel: '', //演练级别 - drillAddress: '', //演练地点 - drillName: '', // 演练名称 - drillWay: '', // 演练方式 - insuranceMeasures: '', // 保险措施 - remark: '', // 备注 - purpose: '', // 演练目的 - fileList: [ - ], - userList: [ - ], - chargeUserList:[], - userListString:'',//演练人员字段(回填使用) - chargeUserListString:'',//演练负责人字段(回填使用) - }); - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - ruleForm.value.makingUserUid = Session.get('uid'); - ruleForm.value.makingUserName = Session.get('realName'); - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if (title == '查看应急演练计划发布' || title == '修改应急演练计划发布') { - releaseDrillPlanApi() - .seeReleaseDrillPlan(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - ruleForm.value.userListString='' - ruleForm.value.chargeUserListString='' - for(var a = 0;a<res.data.data.userList.length;a++){ - if(res.data.data.userList[a].type==1){ - ruleForm.value.userListString += res.data.data.userList[a].userName+';' - } - // if(res.data.data.userList[a].type==2){ - // ruleForm.value.chargeUserListString += res.data.data.userList[a].userName+';' - // } - } - // alert(res.data.data.chargeUserList.length) - for(var a = 0;a<res.data.data.chargeUserList.length;a++){ - ruleForm.value.chargeUserListString += res.data.data.chargeUserList[a].userName+';' - } - } - }); - } - }; - //日期选择器 - const value1 = ref('') - // 上传附件 - const fileList = ref<UploadUserFile[]>([]) - // 可选择树 - const treeSelect = ref() - const tree = [ - ] - //部门树 - const department = () => { - goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - //定义树形下拉框 - const responsibleDepartment = ref() - const data = ref() - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - onMounted(() => { - department(); - }); - // 表单提交验证必填项 - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - ruleForm.value.userList = ruleForm.value.userList.concat(ruleForm.value.chargeUserList) - if (title == '新建应急演练计划发布') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - releaseDrillPlanApi() - .addReleaseDrillPlan(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } - else if (title == '修改应急演练计划发布') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - releaseDrillPlanApi() - .editReleaseDrillPlan(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - makingPlanDate: '', // 计划制定日期 - drillPlanDate: '', //计划演练日期 - makingUserUid: '', //计划制定人ID - makingDepartmentId: '', // 计划制定部门ID - planId: '', // 应急预案ID - planName: '', // 应急预案name - departmentId: '', // 主办部门ID - drillExpense: '', // 演练经费 - drillLevel: '', //演练级别 - drillAddress: '', //演练地点 - drillName: '', // 演练名称 - drillWay: '', // 演练方式 - insuranceMeasures: '', // 保险措施 - remark: '', // 备注 - purpose: '', // 演练目的 - fileList: [ - ], - userList: [ - ], - chargeUserList:[], - userListString:'',//演练人员字段(回填使用) - chargeUserListString:'',//演练负责人字段(回填使用) - }; - } - } - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - ruleForm.value = { - makingPlanDate: '', // 计划制定日期 - drillPlanDate: '', //计划演练日期 - makingUserUid: '', //计划制定人ID - makingDepartmentId: '', // 计划制定部门ID - planId: '', // 应急预案ID - planName: '', // 应急预案name - departmentId: '', // 主办部门ID - drillExpense: '', // 演练经费 - drillLevel: '', //演练级别 - drillAddress: '', //演练地点 - drillName: '', // 演练名称 - drillWay: '', // 演练方式 - insuranceMeasures: '', // 保险措施 - remark: '', // 备注 - purpose: '', // 演练目的 - fileList: [ - ], - userList: [ - ], - chargeUserList:[], - userListString:'',//演练人员字段(回填使用) - chargeUserListString:'',//演练负责人字段(回填使用) - }; - formEl.resetFields(); - }; - // 应急队伍弹窗 - const Shows=ref() - const daiInpt = () => { - Shows.value.openDailog() - } - const onUser = (e:any) => { - ruleForm.value.planId=e.id - ruleForm.value.planName=e.name - }; - // 打开用户选择弹窗 - const userRef = ref(); - const userFZRef = ref(); - //打开演练人员和演练负责人弹窗 type 0 演练人员 1 演练负责人 - const openUser = (type:number) => { - if(type==0){ - userRef.value.openDailog(0); - }else if(type==1){ - userFZRef.value.openDailog(0); - } - }; - const SearchUser = (e:any) => { - console.log('演练人员',e) - ruleForm.value.userListString='' - ruleForm.value.userList=[] - for(var a = 0;a<e.length;a++){ - ruleForm.value.userList.push( - { - type: 1, - userName: e[a].realName, - userUid: e[a].uid, - } - ) - ruleForm.value.userListString+=e[a].realName+';' - } - - }; - const SearchFZUser = (e:any) => { - console.log('演练负责人员',e[0].userName) - ruleForm.value.chargeUserListString='' - ruleForm.value.chargeUserList=[] - // ruleForm.value.chargeUserList = [] - for(var a = 0;a<e.length;a++){ - ruleForm.value.chargeUserList.push( - { - type: 2, - userName: e[a].realName, - userUid: e[a].uid, - } - ) - ruleForm.value.chargeUserListString+=e[a].realName+';' - } - }; - // 计划定制日期 - const datetime = ref(''); - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - isShowDialog, - fileList, - responsibleDepartment, - data, - department, - propse, - Search, - ruleForm, - value1, - treeSelect, - tree, - daiInpt, - Shows, - ruleFormRef, - submitForm, - openUser, - userRef, - datetime, - toggleFullscreen, - FullScreen, - full, - titles, - disabled, - resetForm, - emit, - onUser, - userFZRef, - SearchUser, - SearchFZUser - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea{ - height: 168px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 168px!important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal{ - height: 0; - margin: 0; - border-top: transparent; -} -.el-select{ - width: 100%; -} -//多行文本框 -.textarea{ - height: 70px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 70px!important; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue b/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue deleted file mode 100644 index ba15f44..0000000 --- a/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue +++ /dev/null @@ -1,219 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" title="选择应急预案" width="900px" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row> - <el-col :span="18"> - <el-row> - <el-col :span="24"> - <el-form ref="ruleFormRef" :inline="true" :model="ruleForm" status-icon> - <el-form-item> - <el-input size="default" v-model="listQuery.searchParams.name" placeholder="预案名称" style="max-width: 215px;margin-right: 12px;" /> - </el-form-item> - <el-form-item> - <el-button size="default" type="primary" @click="onSubmit">查询</el-button> - <el-button size="default" @click="submitReset">重置</el-button> - </el-form-item> - </el-form> - </el-col> - <el-col :span="24"> - <el-button size="default" :icon="Delete" style="margin-top: 15px">清除选择</el-button> - </el-col> - </el-row> - <el-table - :data="tableData" - style="width: 100%; - margin-top: 20px" - @cell-click="radio" - > - <el-table-column width="55"> - <template #default="scope"> - <el-radio-group v-model="radio1"> - <el-radio :label="scope.row" size="large">{{ null }}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <el-table-column align="center" prop="name" label="预案名称" /> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - /> - </div> - </el-col> - <el-col :span="6"> - <div v-if="dynamicTags[0] == '' ? false : true"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag.name }} - </el-tag> - </div> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref, onMounted } from 'vue'; -import { ElMessage } from 'element-plus'; -import { Delete, FullScreen } from '@element-plus/icons-vue'; -import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; -export default defineComponent({ - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const openDailog = () => { - dialogVisible.value = true; - onSubmit() - }; - // 搜索条件 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - name: "", type: "", abolishStatus: false - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 重置 - const submitReset = () => { - listQuery.searchParams.name = ''; - onSubmit(); - }; - - // 列表请求数据 - const onSubmit = async () => { - let res = await emergencyPlanApi().getEmergencyPlanList(listQuery); - if (res.data.code === '200') { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - type: 'error', - message: res.data.msg, - }); - } - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const onHandleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const onHandleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - // 右方点击添加后显示标签 - const dynamicTags = ref(['']); - const handleClose = (tag: string) => { - dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); - radio1.value = ''; - }; - const radio1 = ref(''); - const radio = (event: any) => { - dynamicTags.value[0] = event; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - - const submitForm = () => { - let obj = JSON.parse(JSON.stringify(dynamicTags.value)); - emit('SearchUser', obj[0]); - dialogVisible.value = false; - }; - onMounted(() => { - onSubmit(); - }); - return { - dialogVisible, - openDailog, - tableData, - pageSize, - pageIndex, - onHandleSizeChange, - onHandleCurrentChange, - dynamicTags, - handleClose, - Delete, - radio1, - radio, - toggleFullscreen, - FullScreen, - full, - submitReset, - onMounted, - listQuery, - onSubmit, - submitForm, - }; - }, -}); -</script> -<style scoped> -.el-form--inline .el-form-item { - margin-bottom: 0; - margin-right: 0; -} -/*分页*/ -.pages { - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> diff --git a/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue b/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue deleted file mode 100644 index 8799dd8..0000000 --- a/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue +++ /dev/null @@ -1,404 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="button_Line"> - <div class="button_Left mb15"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> - <Plus /> - </el-icon>新建 - </el-button> - <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </div> - <div class="button_Right"> -<!-- <el-button @click="upButton">--> -<!-- <el-icon>--> -<!-- <Upload />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button>--> -<!-- <el-icon>--> -<!-- <Download />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button>--> -<!-- <el-icon>--> -<!-- <Refresh />--> -<!-- </el-icon>--> -<!-- </el-button>--> - </div> - </div> - <el-table - :data="tableData" - style="width: 100%" - ref="multipleTableRef" - @selection-change="handleSelectionChange" - > - <el-table-column - type="selection" - width="55" - /> - <el-table-column prop="drillName" label="演练名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillAddress" label="演练地点" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.drillWay == 1">综合</span> - <span v-if="scope.row.drillWay == 2">桌面</span> - <span v-if="scope.row.drillWay == 3">专项</span> - </template> - </el-table-column> - <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.drillLevel == 1">公司级</span> - <span v-if="scope.row.drillLevel == 2">分厂级</span> - <span v-if="scope.row.drillLevel == 3">车间级</span> - </template> - </el-table-column> - <el-table-column prop="drillPlanDate" label="计划演练日期" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="gmtModitify" label="修改时间" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="260" align="center"> - <template #default="scope"> - <!--<el-button size="small" text type="primary" @click="releaseOfDrillPlan(0)">--> - <!--<el-icon style="margin-right: 5px;">--> - <!--<VideoPlay />--> - <!--</el-icon>启动--> - <!--</el-button>--> - <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <View /> - </el-icon>查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <EditPen /> - </el-icon>修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-card> - <OpenAdd ref="addRef" @myAdd="onMyAdd"/> -<!-- <FlowChart ref="flowRef"></FlowChart>--> - <upData ref="upShow"></upData> - </div> -</template> - -<script lang="ts"> -import { - // toRefs, - reactive, - onMounted, - ref, - defineComponent -} from 'vue'; -import { - ElMessageBox, - ElMessage, - // ElTable, -} from 'element-plus'; -import { - Plus, - Delete, - // Upload, - // Download, - // Refresh, - View, - VideoPlay, - EditPen, -} from '@element-plus/icons-vue' -import {useRouter} from "vue-router" -import OpenAdd from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue'; -// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/components/flowChart.vue'; -import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; -import { releaseDrillPlanApi } from '/@/api/contingencyManagement/emergencyDrillPlan'; - -export default defineComponent({ - name: 'systemUser', - components: { - OpenAdd, - EditPen, - Plus, - View, - Delete, - // Upload, - // Download, - // Refresh, - VideoPlay, - UpData, - // FlowChart, - }, - setup() { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - drillName: '' - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 列表数据请求 - const listApi = async () => { - let res = await releaseDrillPlanApi().getReleaseDrillPlanList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }; - onMounted(() => { - listApi(); - }); - // 上传 - // const upShow=ref() - // const upButton=()=>{ - // upShow.value.openDialog() - // } - - // 打开新增弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建应急演练计划发布',false); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 打开修改用户弹窗 - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog('查看应急演练计划发布',row,true); - } else { - addRef.value.openDialog('修改应急演练计划发布',row,false); - } - }; - // 打开修改用户弹窗 - // const flowRef = ref(); - // const onflowChart = (row: TableDataRow) => { - // flowRef.value.openDialog(row); - // }; - // 删除 - const onRowDel = (id: number) => { - let arr = []; - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', '提示',{ - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }).then(() => { - releaseDrillPlanApi() - .deleteReleaseDrillPlan(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - releaseDrillPlanApi() - .deleteReleaseDrillPlan(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - listApi(); - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - listApi(); - }; - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - // console.log(deletAll.value); - if (val.length == 1) { - danger.value = false; - } else if (val.length == 0) { - danger.value = true; - } else { - danger.value = false; - } - }; - - // 启动跳转 - const router=useRouter() - const releaseOfDrillPlan=(data:string)=>{ - router.push({ - path:"/releaseOfDrillStart", - query:{ - type:data - } - }) - } - return { - // upButton, - // upShow, - tableData, - // onflowChart, - // flowRef, - onOpenAdd, //新增 - addRef, - onRowDel, - View , - pageIndex, - listQuery, - pageSize, - handleSizeChange, - handleCurrentChange, - router, - releaseOfDrillPlan, - listApi, - danger, - deletAll, - handleSelectionChange, - onMyAdd, - onDeleteAll, - onEdit, - total, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box{ - padding: 20px; - background-color: #fff; -} -.tableForm{ - margin-top: 10px; -} -/*按钮行*/ -.button_Line{ - display: flex; - flex-direction: row; - justify-content: space-between; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending{ - border-bottom-color: #c0c4cc; -} -//分页 -.pages{ - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled{ - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next{ - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyPlanStartRecord/component/openSee.vue b/src/components/contingencyManagement/emergencyPlanStartRecord/component/openSee.vue deleted file mode 100644 index e550b77..0000000 --- a/src/components/contingencyManagement/emergencyPlanStartRecord/component/openSee.vue +++ /dev/null @@ -1,195 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - :title="titles" - v-model="isShowDialog" - width="769px" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form - ref="ruleFormRef" - :model="ruleForm" - size="default" - label-width="120px" - :disabled="disabled" - > - <el-row :gutter="35"> - <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急预案" prop="planName" > - <el-input - v-model="ruleForm.planName" - placeholder="请选择" - class="input-with-select" - disabled - > - <template #append> - <el-button :icon="Search" disabled @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="备注"> - <el-input - class="textarea" - v-model="ruleForm.remark" - type="textarea" - maxlength="150" - placeholder="请填写备注" - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button size="default" @click="resetForm(ruleFormRef)">关闭</el-button> - <el-button size="default" v-if="disabled == true ? false : true" type="primary" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUser ref="userRef" @SearchUser="onUser"/> - <AddEmergencyPersonnel ref="addRef" /> - </div> -</template> - -<script lang="ts"> -import { - ref, - defineComponent -} from 'vue'; -import type { - FormInstance, -} from 'element-plus' -import { ElMessage } from 'element-plus'; -import { - Search, - FullScreen -} from '@element-plus/icons-vue' -import DailogSearchUser from "/@/components/DailogSearchUser/index.vue" -import AddEmergencyPersonnel from "/@/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue"; -import {emergencyPlanLogApi} from "/@/api/contingencyManagement/emergencyPlanLog"; - -export default defineComponent({ - name: 'openEdit', - components: { - DailogSearchUser, - AddEmergencyPersonnel, - }, - setup(props, { emit }) { - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - const ruleForm= ref({ - planId: '', //应急预案人员 - remark: '', // 备注 - }) - const titles = ref(); - const disabled = ref(); - - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - const onUser = (e:any) => { - ruleForm.value.planId=e.id - }; - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if (title == '查看应急预案启动记录' || title == '修改应急预案启动记录') { - emergencyPlanLogApi() - .seeEmergencyPlanLog(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } - }; - // 表单提交验证必填项 - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '修改应急预案启动记录') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyPlanLogApi() - .editEmergencyPlanLog(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - planId: '', //应急预案人员 - remark: '', // 备注 - }; - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - Search, - ruleFormRef, - openUser, - userRef, - toggleFullscreen, - FullScreen, - full, - titles, - disabled, - emit, - ruleForm, - submitForm, - resetForm, - isShowDialog, - onUser, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea{ - height: 50px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 50px!important; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyPlanStartRecord/component/selectEmergencyPlan.vue b/src/components/contingencyManagement/emergencyPlanStartRecord/component/selectEmergencyPlan.vue deleted file mode 100644 index da6b207..0000000 --- a/src/components/contingencyManagement/emergencyPlanStartRecord/component/selectEmergencyPlan.vue +++ /dev/null @@ -1,242 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" title="选择应急预案" width="900px" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row> - <el-col :span="18"> - <el-row> - <el-col :span="24"> - <el-form ref="ruleFormRef" :inline="true" :model="ruleForm" status-icon> - <el-form-item> - <el-input size="default" v-model="listQuery.searchParams.name" placeholder="预案名称" style="max-width: 215px" /> - </el-form-item> - <el-form-item> - <el-select - size="default" - v-model="listQuery.searchParams.type" - placeholder="请选择预案类型" - class="ml10" - style="max-width: 215px; margin-right: 12px" - > - <el-option label="综合应急预案" value="1"></el-option> - <el-option label="现场处置方案" value="2"></el-option> - <el-option label="专项应急预案" value="3"></el-option> - <el-option label="其他预案" value="4"></el-option> - </el-select> - </el-form-item> - <el-form-item> - <el-button size="default" type="primary" @click="onSubmit">查询</el-button> - <el-button size="default" @click="submitReset">重置</el-button> - </el-form-item> - </el-form> - </el-col> - <el-col :span="24"> - <el-button size="default" :icon="Delete" @click="submitReset" style="margin-top: 15px">清除选择</el-button> - </el-col> - </el-row> - <el-table :data="tableData" style="width: 100%; margin-top: 20px" @cell-click="radio"> - <el-table-column width="55"> - <template #default="scope"> - <el-radio-group v-model="radio1"> - <el-radio :label="scope.row" size="large">{{ null }}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <el-table-column align="center" prop="name" label="预案名称" /> - <el-table-column align="center" prop="type" label="预案类型"> - <template #default="scope"> - <span v-if="scope.row.type == '1'">综合应急预案</span> - <span v-if="scope.row.type == '2'">现场处置方案</span> - <span v-if="scope.row.type == '3'">专项应急预案</span> - <span v-if="scope.row.type == '4'">其他预案</span> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - /> - </div> - </el-col> - <el-col :span="6"> - <div v-if="dynamicTags[0] == '' ? false : true"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag.name }} - </el-tag> - </div> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref, onMounted } from 'vue'; -import { ElMessage } from 'element-plus'; -import { Delete, FullScreen } from '@element-plus/icons-vue'; -import { emergencyPlanLogApi } from '/@/api/contingencyManagement/emergencyPlanLog'; -import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; -export default defineComponent({ - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const openDailog = () => { - dialogVisible.value = true; - onSubmit(); - }; - // 搜索条件 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - name: '', - type: '', - abolishStatus: false, - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 请求列表数据 - const onSubmit = async () => { - let res = await emergencyPlanApi().getEmergencyPlanList(listQuery); - if (res.data.code === '200') { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - type: 'error', - message: res.data.msg, - }); - } - }; - // 重置 - const submitReset = () => { - listQuery.searchParams.name = ''; - listQuery.searchParams.type = ''; - radio1.value="" - dynamicTags.value[0]="" - onSubmit(); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const onHandleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const onHandleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - // 右方点击添加后显示标签 - const dynamicTags = ref(['']); - const handleClose = (tag: string) => { - dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); - radio1.value = ''; - }; - const radio1 = ref(''); - const radio = (event: any) => { - dynamicTags.value[0] = event; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - - const submitForm = () => { - let obj = JSON.parse(JSON.stringify(dynamicTags.value)); - emit('SearchUser', obj[0]); - dialogVisible.value = false; - }; - onMounted(() => { - onSubmit(); - }); - return { - dialogVisible, - openDailog, - tableData, - pageSize, - pageIndex, - onHandleSizeChange, - onHandleCurrentChange, - dynamicTags, - handleClose, - Delete, - radio1, - radio, - toggleFullscreen, - FullScreen, - full, - submitReset, - onMounted, - listQuery, - onSubmit, - submitForm, - total, - }; - }, -}); -</script> -<style scoped> -.el-form--inline .el-form-item { - margin-bottom: 0; - margin-right: 0; -} -/*分页*/ -.pages { - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> diff --git a/src/components/contingencyManagement/emergencyPlanStartRecord/index.vue b/src/components/contingencyManagement/emergencyPlanStartRecord/index.vue deleted file mode 100644 index 29f589c..0000000 --- a/src/components/contingencyManagement/emergencyPlanStartRecord/index.vue +++ /dev/null @@ -1,405 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-form - size="default" - label-width="80px" - :inline="true" - > - <el-form-item prop="telephone" > - <el-input - v-model="listQuery.searchParams.planName" - placeholder="请选择应急预案" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="daiInpt"/> - </template> - </el-input> - </el-form-item> - <el-button size="default" type="primary" class="ml10" @click="onSubmit"> - 查询 - </el-button> - <el-button size="default" class="ml10" @click="submitReset"> - 重置 - </el-button> - </el-form> - </div> - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> - <Edit /> - </el-icon>修改 - </el-button> - <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </div> - <div class="button_Right"> - <el-button> - <el-icon> - <Download /> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Refresh /> - </el-icon> - </el-button> - </div> - </div> - <el-table - :data="tableData" - style="width: 100%" - @selection-change="handleSelectionChange" - > - <el-table-column - type="selection" - width="55" - /> - <el-table-column prop="planName" label="应急预案" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="userName" label="启动人" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="startCreate" label="启动时间" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="remark" label="备注" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="200" align="center" fixed="right"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <View /> - </el-icon>查看 - </el-button> -<!-- <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)">--> -<!-- <el-icon style="margin-right: 5px;">--> -<!-- <EditPen />--> -<!-- </el-icon>修改--> -<!-- </el-button>--> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-card> - <SelectEmergencyPlan ref="showRef" @SearchUser="onUser"/> - <OpenSee ref="editRef" @myAdd="onMyAdd" /> - </div> -</template> - -<script lang="ts"> -import { - // toRefs, - reactive, - onMounted, - ref, - defineComponent -} from 'vue'; -import { - ElMessageBox, - ElMessage, -} from 'element-plus'; -import { - Search, - Delete, - // Upload, - Download, - Refresh, - View, - Edit, - EditPen, -} from '@element-plus/icons-vue' -import OpenSee from '/@/views/contingencyManagement/emergencyPlanStartRecord/component/openSee.vue'; -import SelectEmergencyPlan from '/@/views/contingencyManagement/emergencyPlanStartRecord/component/selectEmergencyPlan.vue' -import {emergencyPlanLogApi} from "/@/api/contingencyManagement/emergencyPlanLog"; -import {contingencyApi} from "/@/api/contingencyManagement/contingency"; - -export default defineComponent({ - name: 'systemUser', - components: { - OpenSee, - View, - EditPen, - Edit, - Delete, - SelectEmergencyPlan, - Download, - Refresh, - }, - setup() { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - planId: '', - }, - }); - // 定义表格数据 - const tableData = ref([]); - - // 请求列表数据 - const onSubmit = async () => { - let res = await emergencyPlanLogApi().getEmergencyPlanLogList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }; - //重置 - const submitReset = () => { - listQuery.searchParams.planId = ''; - listQuery.searchParams.planName = ''; - onSubmit(); - }; - const warning = ref(true); - const danger = ref(true); - const deleteAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deleteAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - // 打开修改应急预案启动记录弹窗 - const editRef = ref(); - const onEdit = (val: string, row: object) => { - if (val == '详情') { - editRef.value.openDialog('查看应急预案启动记录',row,true); - } - else { - editRef.value.openDialog('修改应急预案启动记录',row,false); - } - }; - // 修改后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - onSubmit(); - } else { - onSubmit(); - } - }; - // 应急预案 - const showRef=ref() - const daiInpt=()=>{ - showRef.value.openDailog() - } - const onUser = (e:any) => { - console.log(e) - listQuery.searchParams.planId=e.id - listQuery.searchParams.planName=e.name - }; - // 删除用户 - const onRowDel = (data: any) => { - ElMessageBox.confirm('确定删除所选项吗?', '提示',{ - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }).then(() => { - emergencyPlanLogApi() - .deleteEmergencyPlanLog([data]) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }).catch(() => {}); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - emergencyPlanLogApi() - .deleteEmergencyPlanLog(deleteAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - onSubmit(); - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - onSubmit(); - }; - // 上传 - const upShow=ref() - const upButton=()=>{ - upShow.value.openDialog() - } - onMounted(() => { - onSubmit(); - }); - return { - upButton, - upShow, - tableData, - editRef, - onMyAdd, - onRowDel, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - onSubmit, - Search, - daiInpt, - showRef, - onMounted, - submitReset, - listQuery, - Edit, - View, - onEdit, - onDeleteAll, - deleteAll, - warning, - danger, - total, - onUser, - handleSelectionChange, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box{ - padding: 20px; - background-color: #fff; -} -.tableForm{ - margin-top: 10px; -} -/*按钮行*/ -.button_Line{ - display: flex; - flex-direction: row; - justify-content: space-between; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending{ - border-bottom-color: #c0c4cc; -} -//分页 -.pages{ - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled{ - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next{ - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyResources/emergencyMaterialsInspection/component/openAdd.vue b/src/components/contingencyManagement/emergencyResources/emergencyMaterialsInspection/component/openAdd.vue deleted file mode 100644 index 3137291..0000000 --- a/src/components/contingencyManagement/emergencyResources/emergencyMaterialsInspection/component/openAdd.vue +++ /dev/null @@ -1,280 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" @close="resetForm(ruleFormRef)" v-model="isShowDialog" width="50%" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :disabled="titles=='查看应急物资检查'?true:false" :rules="rules" :model="ruleForm" size="default" label-width="120px"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急物资" prop="suppliesName"> - <el-input v-model="ruleForm.suppliesName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="检查结果" prop="inspectResult"> - <el-select v-model="ruleForm.inspectResult" class="w100" placeholder="请选择"> - <el-option label="正常" value="1"></el-option> - <el-option label="异常" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="创建人" prop="userName"> - <el-input v-model="ruleForm.userName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser(0)" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="创建时间" prop="inspectTime"> - <el-date-picker - class="w100" - v-model="ruleForm.inspectTime" - type="datetime" - value-format="YYYY-MM-DD HH:mm:ss" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="titles=='查看应急物资检查'?false:true" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <EmergencySupplies ref="showRef" @SearchUser="onUser" /> - <DailogSearchUser ref="userRef" @SearchUser="onUsers" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent, reactive } from 'vue'; - -import type { FormInstance, FormRules } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import EmergencySupplies from '/@/components/emergencySupplies/index.vue'; -import UserSelections from '/@/components/userSelections/index.vue'; -import { emergencyMaterialsInspectionApi } from '/@/api/contingencyManagement/emergencyMaterialsInspection'; -import { maintenanceEmergencyMaterialsApi } from '/@/api/contingencyManagement/maintenanceEmergencyMaterials'; - -export default defineComponent({ - name: 'openAdd', - components: { - DailogSearchUser, - EmergencySupplies, - }, - setup(props, { emit }) { - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - //定义表单 - const ruleForm = ref({ - suppliesId: '', // 物资ID - inspectResult: '', //检查结果 - inspectTime: '', // 创建时间 - userList: [], - }); - const titles = ref(); - const disableds = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number) => { - isShowDialog.value = true; - titles.value = title; - if (title == '查看应急物资检查' || title == '修改应急物资检查') { - emergencyMaterialsInspectionApi() - .seeEmergencyMaterialsInspection(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - let arr = []; - for (let i = 0; i < ruleForm.value.userList.length; i++) { - arr.push(ruleForm.value.userList[i].userName); - } - ruleForm.value.userName = arr.toString(); - } - }); - } - }; - //日期选择器 - const value1 = ref(''); - const rules = reactive<FormRules>({ - nameTitle: [], - inspectResult: [ - { - required: true, - message: '保养结果不能为空', - trigger: 'change', - }, - ], - userName: [ - { - required: true, - message: '创建人不能为空', - trigger: 'change', - }, - ], - inspectTime: [ - { - required: true, - message: '创建时间不能为空', - trigger: 'blur', - }, - ], - }); - // 表单提交验证必填项 - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建应急物资检查') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyMaterialsInspectionApi() - .addEmergencyMaterialsInspection(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } else if (title == '修改应急物资检查') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyMaterialsInspectionApi() - .editEmergencyMaterialsInspection(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - // 应急物资弹窗 - const showRef = ref(); - const daiInpt = () => { - showRef.value.openDailog(); - }; - const onUser = (e: any) => { - ruleForm.value.suppliesId = e.id; - ruleForm.value.suppliesName = e.name; - }; - // 编写人弹窗 - const userRef = ref(); - const openUser = (data: any) => { - userRef.value.openDailog(data); - }; - const onUsers = (val: any) => { - let arr = []; - for (let i = 0; i < val.length; i++) { - arr.push(val[i].realName); - ruleForm.value.userList.push({ - userUid: val[i].uid, - userName: val[i].realName, - }); - } - ruleForm.value.userName = arr.toString(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - isShowDialog, - Search, - ruleForm, - value1, - onUsers, - daiInpt, - showRef, - ruleFormRef, - submitForm, - openUser, - rules, - userRef, - resetForm, - toggleFullscreen, - FullScreen, - full, - titles, - disableds, - emit, - onUser, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue b/src/components/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue deleted file mode 100644 index 5e14343..0000000 --- a/src/components/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue +++ /dev/null @@ -1,388 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-form size="default" label-width="80px" :inline="true"> - <el-form-item prop="telephone"> - <el-input v-model="listQuery.searchParams.suppliesName" placeholder="请选择应急物资" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </el-input> - </el-form-item> - <el-button size="default" type="primary" class="ml10" @click="onSubmit"> 查询 </el-button> - <el-button size="default" class="ml10" @click="submitReset"> 重置 </el-button> - </el-form> - </div> - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> <Plus /> </el-icon>新建 - </el-button> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> <Edit /> </el-icon>修改 - </el-button> - <el-button size="default" type="danger" plain @click="onDeleteAll" :disabled="danger"> - <el-icon> <Delete /> </el-icon>删除 - </el-button> - </div> - <div class="button_Right"> - <el-button> - <el-icon> - <Download /> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Refresh /> - </el-icon> - </el-button> - </div> - </div> - <el-table :data="tableData" style="width: 100%" ref="multipleTableRef" @selection-change="handleSelectionChange"> - <el-table-column align="center" type="selection" width="55" /> - <el-table-column align="center" prop="suppliesName" label="物资名称" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" label="维修结果" min-width="120" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.inspectResult == 1">正常</span> - <span v-if="scope.row.inspectResult == 2">异常</span> - </template> - </el-table-column> - <el-table-column align="center" prop="inspectTime" label="维修日期" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="200" align="center" fixed="right"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onEdit('查看',scope.row.id)"> - <el-icon style="margin-right: 5px"> <View /> </el-icon>查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改', scope.row.id)"> - <el-icon style="margin-right: 5px"> <EditPen /> </el-icon>修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> - <el-icon> <Delete /> </el-icon>删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-card> - <EmergencySupplies ref="showRef" @SearchUser="onUser" /> - <upData ref="upShow"></upData> - <OpenAdd ref="addRef" @myAdd="onMyAdd" /> - </div> -</template> - -<script lang="ts"> -import { - // toRefs, - reactive, - onMounted, - ref, - defineComponent, -} from 'vue'; -import { - ElMessageBox, - ElMessage, - // ElTable, -} from 'element-plus'; -import { Plus, Search, Delete, Edit, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; -import EmergencySupplies from '/@/components/emergencySupplies/index.vue'; -import OpenAdd from '/@/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/component/openAdd.vue'; -import { emergencyMaterialsInspectionApi } from '/@/api/contingencyManagement/emergencyMaterialsInspection'; - -export default defineComponent({ - name: 'index', - components: { - View, - OpenAdd, - EditPen, - Plus, - Edit, - Delete, - EmergencySupplies, - Download, - Refresh, - UpData, - }, - setup() { - //定义表单 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - suppliesId: '', - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 搜索按钮 - const onSubmit = async () => { - let res = await emergencyMaterialsInspectionApi().getEmergencyMaterialsInspectionList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }; - // 重置 - const submitReset = () => { - listQuery.searchParams.suppliesId = ''; - listQuery.searchParams.suppliesName="" - onSubmit(); - }; - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - // 打开新建用户弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建应急物资检查'); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - onSubmit(); - } else { - onSubmit(); - } - }; - // 打开修改用户弹窗 - const onEdit = (val: string, row: object) => { - if (val == '查看') { - addRef.value.openDialog('查看应急物资检查', row); - } else { - addRef.value.openDialog('修改应急物资检查', row); - } - }; - // 删除 - const onRowDel = (id: number) => { - let arr = []; - arr.push(id); - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - emergencyMaterialsInspectionApi() - .deleteEmergencyMaterialsInspection(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }) - .catch(() => {}); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - emergencyMaterialsInspectionApi() - .deleteEmergencyMaterialsInspection(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }) - .catch(() => {}); - }; - // 上传 - const upShow = ref(); - const upButton = () => { - upShow.value.openDialog(); - }; - - // 应急物资弹窗 - const showRef = ref(); - const daiInpt = () => { - showRef.value.openDailog(); - }; - const onUser = (e: any) => { - listQuery.searchParams.suppliesId = e.id; - listQuery.searchParams.suppliesName=e.name - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - onSubmit(); - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - onSubmit(); - }; - // 页面加载时 - onMounted(() => { - onSubmit(); - }); - return { - upButton, - upShow, - Edit, - onRowDel, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - Search, - daiInpt, - showRef, - onOpenAdd, //新增 - addRef, - onSubmit, - View, - submitReset, - tableData, - onMyAdd, - onEdit, - onDeleteAll, - handleSelectionChange, - listQuery, - warning, - danger, - total, - onUser, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box { - padding: 20px; - background-color: #fff; -} -.tableForm { - margin-top: 10px; -} -/*按钮行*/ -.button_Line { - display: flex; - flex-direction: row; - justify-content: space-between; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer { - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending { - border-bottom-color: #c0c4cc; -} -//分页 -.pages { - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue b/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue deleted file mode 100644 index 0953d51..0000000 --- a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue +++ /dev/null @@ -1,224 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog title="修改应急物资检查" v-model="isShowDialog" @close="resetForm(ruleFormRef)" width="50%" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" size="default" label-width="120px"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急物资"> - <el-input v-model="nameTitle" disabled placeholder="请选择" class="input-with-select"> - <!-- <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> --> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="检查结果" prop="inspectResult"> - <el-select v-model="ruleForm.inspectResult" class="w100" placeholder="请选择"> - <el-option label="正常" value="1"></el-option> - <el-option label="异常" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="创建人" prop="userName"> - <el-input v-model="ruleForm.userName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser(0)" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="创建时间" prop="inspectTime"> - <el-date-picker - class="w100" - v-model="ruleForm.inspectTime" - type="datetime" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <!-- <EmergencySupplies ref="showRef" @SearchUser="onUser"/> --> - <DailogSearchUser ref="userRef" @SearchUser="onUsers" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent,reactive } from 'vue'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; -import type { FormInstance,FormRules } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import EmergencySupplies from '/@/components/emergencySupplies/index.vue'; -import UserSelections from '/@/components/userSelections/index.vue'; -import { emergencyMaterialsInspectionApi } from '/@/api/contingencyManagement/emergencyMaterialsInspection'; - -export default defineComponent({ - name: 'inspect', - components: { - UserSelections, - EmergencySupplies, - DailogSearchUser, - }, - setup(props, { emit }) { - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - //定义表单 - const ruleForm = ref({ - suppliesId: '', // 物资ID - inspectResult: '', //保养结果 - inspectTime: '', // 创建时间 - userList: [], - }); - const disabled = ref(); - // 打开弹窗 - const nameTitle = ref(); - const openDialog = (data: string) => { - isShowDialog.value = true; - ruleForm.value.suppliesId = data.id; - nameTitle.value = data.name; - }; - const rules = reactive<FormRules>({ - nameTitle: [], - inspectResult: [ - { - required: true, - message: '保养结果不能为空', - trigger: 'change', - }, - ], - userName: [ - { - required: true, - message: '创建人不能为空', - trigger: 'change', - }, - ], - inspectTime: [ - { - required: true, - message: '创建时间不能为空', - trigger: 'blur', - }, - ], - }); - // 表单提交验证必填项 - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyMaterialsInspectionApi() - .addEmergencyMaterialsInspection(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - formEl.resetFields(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - }); - } else { - console.log('error submit!', fields); - } - }); - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - - //日期选择器 - const value1 = ref(''); - - // 编写人弹窗 - const userRef = ref(); - const openUser = (type: any) => { - userRef.value.openDailog(type); - }; - const onUsers = (val: any) => { - let arr = []; - for (let i = 0; i < val.length; i++) { - arr.push(val[i].realName); - ruleForm.value.userList.push({ - userUid: val[i].uid, - userName: val[i].realName, - }); - } - ruleForm.value.userName = arr.toString(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - nameTitle, - openDialog, - isShowDialog, - resetForm, - rules, - Search, - ruleForm, - value1, - onUsers, - ruleFormRef, - submitForm, - openUser, - userRef, - toggleFullscreen, - FullScreen, - full, - disabled, - emit, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/maintain.vue b/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/maintain.vue deleted file mode 100644 index b30bcc2..0000000 --- a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/maintain.vue +++ /dev/null @@ -1,235 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog title="修改应急物资保养" @close="resetForm(ruleFormRef)" v-model="isShowDialog" width="50%" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" size="default" label-width="120px"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急物资" prop="nameTitle"> - <el-input v-model="nameTitle" disabled placeholder="请选择" class="input-with-select"> - <!-- <template #append> - <el-button :icon="Search" @click="daiInpt"/> - </template> --> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="保养结果" prop="maintainResult"> - <el-select v-model="ruleForm.maintainResult" class="w100" placeholder="请选择"> - <el-option label="正常" value="1"></el-option> - <el-option label="异常" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="创建人" prop="userName"> - <el-input v-model="ruleForm.userName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser(0)" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="创建时间" prop="maintainTime"> - <el-date-picker - class="w100" - v-model="ruleForm.maintainTime" - type="datetime" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <EmergencySupplies ref="showRef" @SearchUser="onUser" /> - <DailogSearchUser ref="userRef" @SearchUser="onUsers" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent, reactive } from 'vue'; - -import type { FormInstance, FormRules } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import EmergencySupplies from '/@/components/emergencySupplies/index.vue'; -import DailogSearchUser from '../../../../../components/DailogSearchUser/index.vue'; -import { maintenanceEmergencyMaterialsApi } from '/@/api/contingencyManagement/maintenanceEmergencyMaterials'; - -export default defineComponent({ - name: 'maintain', - components: { - DailogSearchUser, - EmergencySupplies, - }, - setup(props, { emit }) { - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - //定义表单 - const ruleForm = ref({ - suppliesId: '', // 物资ID - maintainResult: '', //保养结果 - maintainTime: '', // 创建时间 - userList: [], - }); - const disabled = ref(); - // 打开弹窗 - const nameTitle = ref(); - const openDialog = (data: string) => { - isShowDialog.value = true; - ruleForm.value.suppliesId = data.id; - nameTitle.value = data.name; - }; - const rules = reactive<FormRules>({ - nameTitle: [], - maintainResult: [ - { - required: true, - message: '保养结果不能为空', - trigger: 'change', - }, - ], - userName: [ - { - required: true, - message: '创建人不能为空', - trigger: 'change', - }, - ], - maintainTime: [ - { - required: true, - message: '创建时间不能为空', - trigger: 'blur', - }, - ], - }); - // 表单提交验证必填项 - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - maintenanceEmergencyMaterialsApi() - .addMaintenanceEmergencyMaterials(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - - //日期选择器 - const value1 = ref(''); - - // 应急物资弹窗 - const showRef = ref(); - const daiInpt = () => { - showRef.value.openDailog(); - }; - const onUser = (e: any) => { - ruleForm.value.suppliesId = e.id; - }; - - // 编写人弹窗 - const userRef = ref(); - const openUser = (type: any) => { - userRef.value.openDailog(type); - }; - const onUsers = (val: any) => { - let arr = []; - for (let i = 0; i < val.length; i++) { - arr.push(val[i].realName); - ruleForm.value.userList.push({ - userUid: val[i].uid, - userName: val[i].realName, - }); - } - ruleForm.value.userName = arr.toString(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - rules, - isShowDialog, - resetForm, - Search, - ruleForm, - value1, - daiInpt, - onUsers, - showRef, - ruleFormRef, - onUser, - submitForm, - openUser, - userRef, - toggleFullscreen, - FullScreen, - full, - disabled, - emit, - nameTitle, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/openAdd.vue b/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/openAdd.vue deleted file mode 100644 index 17defc0..0000000 --- a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/openAdd.vue +++ /dev/null @@ -1,515 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" @close="resetForm(ruleFormRef)" width="50%" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :rules="rules" :model="ruleForm" size="default" label-width="120px" :disabled="disabled"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资名称" prop="name"> - <el-input v-model="ruleForm.name" placeholder="请填写物资名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资编号" prop="number"> - <el-input v-model="ruleForm.number" placeholder="请填写物资编号"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资用途" prop="use"> - <el-input v-model="ruleForm.use" placeholder="请填写物资用途"></el-input> - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> - <!-- <el-form-item label="所属区域">--> - <!-- <el-input v-model="ruleForm.areaId" placeholder="请选择" class="input-with-select">--> - <!-- <template #append>--> - <!-- <el-button :icon="Search" @click="regionsDialog" />--> - <!-- </template>--> - <!-- </el-input>--> - <!-- </el-form-item>--> - <!-- </el-col>--> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资型号" prop="model"> - <el-input v-model="ruleForm.model" placeholder="请填写物资型号"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="负责部门" prop="departmentId"> - <el-tree-select - v-model="ruleForm.departmentId" - check-strictly - :data="data" - :props="propse" - class="w100" - clearable - :render-after-expand="false" - placeholder="请选择" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资分类" prop="classification"> - <el-select v-model="ruleForm.classification" class="w100" placeholder="请选择"> - <el-option label="事故气体吸收装置" value="1"></el-option> - <el-option label="通讯设施" value="2"></el-option> - <el-option label="交通运输工具" value="3"></el-option> - <el-option label="照明装置" value="4"></el-option> - <el-option label="防护器材" value="5"></el-option> - <el-option label="其它" value="6"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="存放位置" prop="place"> - <el-input v-model="ruleForm.place" placeholder="请填写存放位置"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="存储数量" prop="count"> - <el-input v-model.number="ruleForm.count" maxlength="6" placeholder="请填写存储数量"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="生产日期" prop="productionDate"> - <el-date-picker - v-model="ruleForm.productionDate" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="使用期限(天)" prop="usePeriod"> - <el-input v-model.number="ruleForm.usePeriod" maxlength="6" placeholder="请填写使用期限"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资状态" prop="status"> - <el-select v-model="ruleForm.status" class="w100" placeholder="请选择"> - <el-option label="完好" :value="1"></el-option> - <el-option label="维修" :value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="检查周期月" prop="inspectPeriod"> - <el-input v-model.number="ruleForm.inspectPeriod" type="" maxlength="4" placeholder="请填写使用期限"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="投用日期" prop="useDate"> - <el-date-picker v-model="ruleForm.useDate" type="datetime" class="w100" placeholder="选择日期时间" value-format="YYYY-MM-DD HH:mm:ss" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="使用说明" prop="useExplain"> - <el-input v-model="ruleForm.useExplain" type="textarea" placeholder="请填写使用说明"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="检查日期" prop="inspectDate"> - <el-date-picker - v-model="ruleForm.inspectDate" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="下次检查日期" prop="nextInspectDate"> - <el-date-picker - v-model="ruleForm.nextInspectDate" - type="datetime" - value-format="YYYY-MM-DD HH:mm:ss" - class="w100" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> - <!-- <el-form-item label="经度(度)">--> - <!-- <el-input v-model="ruleForm.longitude" placeholder="请填写经度(度)"></el-input>--> - <!-- </el-form-item>--> - <!-- </el-col>--> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> - <!-- <el-form-item label="纬度(度)">--> - <!-- <el-input v-model="ruleForm.latitude" placeholder="请填写纬度(度)"></el-input>--> - <!-- </el-form-item>--> - <!-- </el-col>--> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="负责人" prop="principalUserName"> - <el-input v-model="ruleForm.principalUserName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUser ref="Shows" @SearchUser="onUser"></DailogSearchUser> - <userSelections ref="userRef" /> - <RegionsCheckbox ref="openRef" /> - </div> -</template> - -<script lang="ts"> -import { reactive, ref, defineComponent, onMounted } from 'vue'; - -import type { FormInstance, FormRules } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import UserSelections from '/@/components/userSelections/index.vue'; -import PersonInCharge from '/@/views/contingencyManagement/emergencyResources/emergencySupplies/component/personInCharge.vue'; -import RegionsCheckbox from '/@/views/contingencyManagement/emergencyResources/emergencySupplies/component/regionsCheckbox.vue'; -import { emergencySuppliesApi } from '/@/api/contingencyManagement/emergencyResources'; -import { goalManagementApi } from '/@/api/goalManagement'; - -export default defineComponent({ - name: 'openAdd', - components: { - PersonInCharge, - UserSelections, - RegionsCheckbox, - DailogSearchUser, - }, - setup(props, { emit }) { - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - //定义表单 - const ruleForm = ref({ - productionDate: '', - useDate: '', - inspectDate: '', - nextInspectDate: '', - inspectPeriod: '', - count: '', - usePeriod: '', - departmentId: '', - principalUserUid: '', - principalUserName: '', - status: '', - classification: '', - name: '', - number: '', - model: '', - longitude: '', - latitude: '', - use: '', - areaId: null, - place: '', - useExplain: '', - }); - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if (title == '查看应急物资代码' || title == '修改应急物资代码') { - emergencySuppliesApi() - .seeEmergencySupplies(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } - }; - //日期选择器 - const value1 = ref(''); - //部门树 - const department = () => { - goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - //定义树形下拉框 - const responsibleDepartment = ref(); - const data = ref(); - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - onMounted(() => { - department(); - }); - // 必填项提示 - const rules = reactive<FormRules>({ - name: [ - { - required: true, - message: '物资名称不能为空', - trigger: 'change', - }, - ], - number: [ - { - required: true, - message: '物资编号不能为空', - trigger: 'change', - }, - ], - use: [ - { - required: true, - message: '物资用途不能为空', - trigger: 'change', - }, - ], - model: [ - { - required: true, - message: '物资型号不能为空', - trigger: 'change', - }, - ], - departmentId: [ - { - required: true, - message: '负责部门不能为空', - trigger: 'change', - }, - ], - classification: [ - { - required: true, - message: '物资分类不能为空', - trigger: 'change', - }, - ], - place: [ - { - required: true, - message: '存放位置不能为空', - trigger: 'change', - }, - ], - count: [ - { - required: true, - message: '存储数量不能为空', - trigger: 'change', - }, - { type: 'number', message: '请输入数字类型', trigger: 'change' }, - ], - productionDate: [ - { - required: true, - message: '生产日期不能为空', - trigger: 'change', - }, - ], - usePeriod: [ - { - required: true, - message: '使用期限不能为空', - trigger: 'change', - }, - { type: 'number', message: '请输入数字类型', trigger: 'change' }, - ], - status: [ - { - required: true, - message: '物资状态不能为空', - trigger: 'change', - }, - ], - inspectPeriod: [ - { - required: true, - message: '检查周期月不能为空', - trigger: 'change', - }, - { type: 'number', message: '请输入数字类型', trigger: 'change' }, - ], - useDate: [ - { - required: true, - message: '投用日期不能为空', - trigger: 'change', - }, - ], - inspectDate: [ - { - required: true, - message: '检查日期不能为空', - trigger: 'change', - }, - ], - nextInspectDate: [ - { - required: true, - message: '下次检查日期不能为空', - trigger: 'change', - }, - ], - principalUserName:[], - useExplain:[] - }); - // 表单提交验证必填项 - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建应急物资代码') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencySuppliesApi() - .addEmergencySupplies(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } else if (title == '修改应急物资代码') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencySuppliesApi() - .editEmergencySupplies(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - // 人名 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(); - }; - // 选择区域弹窗 - const openRef = ref(); - const regionsDialog = () => { - openRef.value.openDailog(); - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - const onUser = (e: any) => { - ruleForm.value.principalUserUid = e.uid; - ruleForm.value.principalUserName = e.realName; - }; - return { - openDialog, - isShowDialog, - responsibleDepartment, - data, - propse, - department, - Search, - ruleForm, - value1, - daiInpt, - Shows, - ruleFormRef, - submitForm, - rules, - openUser, - userRef, - regionsDialog, - openRef, - toggleFullscreen, - FullScreen, - full, - resetForm, - titles, - disabled, - emit, - onUser - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/openEdit.vue b/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/openEdit.vue deleted file mode 100644 index f5b2e61..0000000 --- a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/openEdit.vue +++ /dev/null @@ -1,549 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" @close="resetForm(ruleFormRef)" width="50%" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :rules="rules" :model="ruleForm" size="default" label-width="120px" :disabled="disabled"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资名称" prop="name"> - <el-input v-model="ruleForm.name" placeholder="请填写物资名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资编号" prop="number"> - <el-input v-model="ruleForm.number" placeholder="请填写物资编号"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资用途" prop="use"> - <el-input v-model="ruleForm.use" placeholder="请填写物资用途"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="投用日期" prop="useDate"> - <el-date-picker v-model="ruleForm.useDate" type="datetime" class="w100" placeholder="选择日期时间" value-format="YYYY-MM-DD HH:mm:ss" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资型号" prop="model"> - <el-input v-model="ruleForm.model" placeholder="请填写物资型号"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="负责部门" prop="departmentId"> - <el-tree-select v-model="ruleForm.departmentId" :data="data" class="w100" :props="propse" placeholder="请选择" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资分类" prop="classification"> - <el-select v-model="ruleForm.classification" class="w100" placeholder="请选择"> - <el-option label="事故气体吸收装置" value="1"></el-option> - <el-option label="通讯设施" value="2"></el-option> - <el-option label="交通运输工具" value="3"></el-option> - <el-option label="照明装置" value="4"></el-option> - <el-option label="防护器材" value="5"></el-option> - <el-option label="其它" value="6"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="存放位置" prop="place"> - <el-input v-model="ruleForm.place" placeholder="请填写存放位置"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="存储数量" prop="count"> - <el-input v-model.number="ruleForm.count" maxlength="6" placeholder="请填写存储数量"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="生产日期" prop="productionDate"> - <el-date-picker - v-model="ruleForm.productionDate" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="使用期限(天)" prop="usePeriod"> - <el-input v-model.number="ruleForm.usePeriod" maxlength="6" placeholder="请填写使用期限"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="物资状态" prop="status"> - <el-select v-model="ruleForm.status" class="w100" placeholder="请选择"> - <el-option label="完好" value="1"></el-option> - <el-option label="维修" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="检查周期月" prop="inspectPeriod"> - <el-input v-model.number="ruleForm.inspectPeriod" type="" maxlength="4" placeholder="请填写使用期限"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="使用说明"> - <el-input v-model="ruleForm.useExplain" type="textarea" placeholder="请填写使用说明"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="检查日期" prop="inspectDate"> - <el-date-picker - v-model="ruleForm.inspectDate" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="下次检查日期" prop="nextInspectDate"> - <el-date-picker - v-model="ruleForm.nextInspectDate" - type="datetime" - value-format="YYYY-MM-DD HH:mm:ss" - class="w100" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> - <!-- <el-form-item label="经度(度)">--> - <!-- <el-input v-model="ruleForm.longitude" placeholder="请填写经度(度)"></el-input>--> - <!-- </el-form-item>--> - <!-- </el-col>--> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> - <!-- <el-form-item label="纬度(度)">--> - <!-- <el-input v-model="ruleForm.latitude" placeholder="请填写纬度(度)"></el-input>--> - <!-- </el-form-item>--> - <!-- </el-col>--> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="负责人" prop="principalUserName"> - <el-input v-model="ruleForm.principalUserName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="保养记录"> - <el-table :data="ruleForm.maintainList" highlight-current-row> - <el-table-column align="center" label="保养结果" prop="maintainResult"> - <template #default="scope"> - <el-select size="mini" disabled v-model="scope.row.maintainResult"> - <el-option label="正常" value="1"></el-option> - <el-option label="异常" value="2"></el-option> - </el-select> - </template> - </el-table-column> - <el-table-column align="center" label="创建人" prop="userName"></el-table-column> - <el-table-column align="center" label="创建时间" prop="maintainTime"></el-table-column> - </el-table> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="检查记录"> - <el-table :data="ruleForm.inspectList" highlight-current-row> - <el-table-column align="center" label="检查结果" prop="maintainResult"> - <template #default="scope"> - <el-select size="mini" disabled v-model="scope.row.inspectResult"> - <el-option label="正常" value="1"></el-option> - <el-option label="异常" value="2"></el-option> - </el-select> - </template> - </el-table-column> - <el-table-column align="center" label="创建人" prop="userName"></el-table-column> - <el-table-column align="center" label="创建时间" prop="inspectTime"></el-table-column> - </el-table> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUser ref="Shows" @SearchUser="onUser"></DailogSearchUser> - <userSelections ref="userRef" /> - <RegionsCheckbox ref="openRef" /> - </div> -</template> - -<script lang="ts"> -import { reactive, ref, defineComponent } from 'vue'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; -import type { FormInstance, FormRules } from 'element-plus'; -import { ElMessage } from 'element-plus'; - -import { Search, FullScreen } from '@element-plus/icons-vue'; -import UserSelections from '../../../../../components/userSelections/index.vue'; -import PersonInCharge from '../component/personInCharge.vue'; -import RegionsCheckbox from '../component/regionsCheckbox.vue'; -import { emergencySuppliesApi } from '../../../../../api/contingencyManagement/emergencyResources'; -import { goalManagementApi } from '/@/api/goalManagement'; -import { AnyAaaaRecord } from 'dns'; -export default defineComponent({ - name: 'openAdd', - components: { - DailogSearchUser, - UserSelections, - RegionsCheckbox, - }, - setup(props, { emit }) { - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - //定义表单 - const ruleForm = ref({ - productionDate: '', - useDate: '', - inspectDate: '', - nextInspectDate: '', - inspectPeriod: '', - count: '', - usePeriod: '', - departmentId: '', - principalUserUid: '', - principalUserName:"", - status: '', - classification: '', - name: '', - number: '', - model: '', - longitude: '', - latitude: '', - use: '', - areaId: null, - place: '', - useExplain: '', - }); - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - department() - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if (title == '查看应急物资代码' || title == '修改应急物资代码') { - emergencySuppliesApi() - .seeEmergencySupplies(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - userNames(res.data.data.maintainList) - userNames(res.data.data.inspectList) - } - }); - } - }; - const userNames=(data:AnyAaaaRecord)=>{ - for(let i=0;i<data.length;i++){ - let arr=[] - for(let s=0;s<data[i].userList.length;s++){ - arr.push(data[i].userList[s].userName) - } - - data[i].userName=arr.toString() - } - } - //日期选择器 - const value1 = ref(''); - // 可选择树 - const treeSelect = ref(); - //部门树 - const department = () => { - goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - //定义树形下拉框 - const responsibleDepartment = ref(); - const data = ref(); - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - // 必填项提示 - const rules = reactive<FormRules>({ - name: [ - { - required: true, - message: '物资名称不能为空', - trigger: 'change', - }, - ], - number: [ - { - required: true, - message: '物资编号不能为空', - trigger: 'change', - }, - ], - use: [ - { - required: true, - message: '物资用途不能为空', - trigger: 'change', - }, - ], - model: [ - { - required: true, - message: '物资型号不能为空', - trigger: 'change', - }, - ], - departmentId: [ - { - required: true, - message: '负责部门不能为空', - trigger: 'change', - }, - ], - classification: [ - { - required: true, - message: '物资分类不能为空', - trigger: 'change', - }, - ], - place: [ - { - required: true, - message: '存放位置不能为空', - trigger: 'change', - }, - ], - count: [ - { - required: true, - message: '存储数量不能为空', - trigger: 'change', - }, - { type: 'number', message: '请输入数字类型', trigger: 'change' }, - ], - productionDate: [ - { - required: true, - message: '生产日期不能为空', - trigger: 'blur', - }, - ], - usePeriod: [ - { - required: true, - message: '使用期限不能为空', - trigger: 'blur', - }, - { type: 'number', message: '请输入数字类型', trigger: 'change' }, - ], - status: [ - { - required: true, - message: '物资状态不能为空', - trigger: 'change', - }, - ], - inspectPeriod: [ - { - required: true, - message: '检查周期月不能为空', - trigger: 'change', - }, - { type: 'number', message: '请输入数字类型', trigger: 'change' }, - ], - useDate: [ - { - required: true, - message: '投用日期不能为空', - trigger: 'blur', - }, - ], - inspectDate: [ - { - required: true, - message: '检查日期不能为空', - trigger: 'blur', - }, - ], - nextInspectDate: [ - { - required: true, - message: '下次检查日期不能为空', - trigger: 'blur', - }, - ], - principalUserName:[], - }); - // 表单提交验证必填项 - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建应急物资代码') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencySuppliesApi() - .addEmergencySupplies(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } else if (title == '修改应急物资代码') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencySuppliesApi() - .editEmergencySupplies(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - // 人名 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(); - }; - // 选择区域弹窗 - const openRef = ref(); - const regionsDialog = () => { - openRef.value.openDailog(); - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - const dataList = ref(); - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - const onUser = (e: any) => { - ruleForm.value.principalUserUid = e.uid; - ruleForm.value.principalUserName = e.realName; - }; - return { - onUser, - userNames, - openDialog, - isShowDialog, - responsibleDepartment, - data, - Search, - ruleForm, - value1, - treeSelect, - daiInpt, - Shows, - ruleFormRef, - submitForm, - rules, - openUser, - userRef, - regionsDialog, - openRef, - toggleFullscreen, - FullScreen, - full, - resetForm, - titles, - disabled, - emit, - dataList, - propse, - department - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/personInCharge.vue b/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/personInCharge.vue deleted file mode 100644 index 2e719ea..0000000 --- a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/personInCharge.vue +++ /dev/null @@ -1,213 +0,0 @@ -<template> - <el-dialog - v-model="dialogVisible" - title="选择岗位id" - width="900px" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row> - <el-col :span="18"> - <el-row> - <el-col :span="24"> - <el-form ref="ruleFormRef" :model="ruleForm" :inline="true" status-icon> - <el-form-item> - <el-input size="default" v-model="ruleForm.pass" placeholder="编号" style="max-width: 215px;"/> - </el-form-item> - <el-form-item> - <el-input size="default" v-model="ruleForm.checkPass" placeholder="姓名" style="max-width: 215px;padding: 0 12px;"/> - </el-form-item> - <el-form-item> - <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">查询</el-button> - <el-button size="default" @click="resetForm(ruleFormRef)">重置</el-button> - </el-form-item> - </el-form> - </el-col> - <el-col :span="24"> - <el-button size="default" :icon="Delete" style="margin-top: 15px;">清除选择</el-button> - </el-col> - </el-row> - <el-table - :data="tableData" - ref="multipleTableRef" - style="width: 100%;margin-top:20px" - > - <el-table-column align="center" width="55"> - <template #default="scope"> - <el-radio-group v-model="radio1" @change="radio"> - <el-radio :label="scope.row.name" size="large">{{null}}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <el-table-column align="center" prop="date" label="编号" /> - <el-table-column align="center" prop="name" label="姓名"/> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[100, 200, 300, 400]" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="400" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-col> - <el-col :span="6" style="padding-left: 15px"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag }} - </el-tag> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false" size="default">关闭</el-button> - <el-button type="primary" @click="dialogVisible = false" size="default">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { - defineComponent, - reactive, - ref, -} from 'vue'; -import { - Delete, - FullScreen -} from '@element-plus/icons-vue'; -interface User { - date: string - name: string - address: string -} -export default defineComponent({ - setup() { - const dialogVisible = ref<boolean>(false); - const openDailog = () => { - dialogVisible.value = true; - }; - // 搜索条件 - const ruleForm = reactive({ - pass: '', - checkPass: '', - }); - // 表格 - const tableData = [ - { - date: '6421cbc6cbb5493eabf9b27e83372d78', - name: '金伟', - }, - { - date: '6421cbc6cbb5493eabf9b27e83372d78', - name: '施凯健', - }, - { - date: '6421cbc6cbb5493eabf9b27e83372d78', - name: '程雪', - }, - { - date: '6421cbc6cbb5493eabf9b27e83372d78', - name: '杨恒', - }, - ]; - const pageSize4 = ref(100); - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`); - }; - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`); - }; - // 右方点击添加后显示标签 - const dynamicTags = ref(['杨恒']); - const handleClose = (tag: string) => { - dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); - radio1.value="" - }; - const radio1=ref('金伟') - const radio=(event:any)=>{ - dynamicTags.value[0]=event - } - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - openDailog, - ruleForm, - tableData, - pageSize4, - handleSizeChange, - handleCurrentChange, - dynamicTags, - handleClose, - Delete, - radio1, - radio, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped> -.el-form--inline .el-form-item{ - margin-bottom: 0; - margin-right: 0; -} -/*分页*/ -.pages{ - /*display: flex;*/ - /*justify-content: flex-end;*/ - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled{ - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next{ - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> diff --git a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/regionsCheckbox.vue b/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/regionsCheckbox.vue deleted file mode 100644 index d8d1973..0000000 --- a/src/components/contingencyManagement/emergencyResources/emergencySupplies/component/regionsCheckbox.vue +++ /dev/null @@ -1,164 +0,0 @@ -<template> - <el-dialog - v-model="dialogVisible" - title="选择区域" - width="900px" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row> - <el-col :span="18"> - <el-form :inline="true" ref="ruleFormRef" :model="ruleForm" status-icon> - <el-form-item> - <el-input size="default" v-model="ruleForm.checkPass" placeholder="风险区域名称" style="max-width: 215px;" /> - </el-form-item> - <el-form-item> - <el-button size="default" type="primary" @click="submitForm(ruleFormRef)" style="margin-left: 12px;">查询</el-button> - <el-button size="default" @click="resetForm(ruleFormRef)">重置</el-button> - </el-form-item> - <el-button size="default" :icon="Delete" style="margin-left: 12px;">清除选择</el-button> - </el-form> - <el-table :data="tableData" style="width: 100%;margin-top:20px;"> - <el-table-column align="center" width="55"> - <template #default="scope"> - <el-radio-group v-model="radio1" @change="radio"> - <el-radio :label="scope.row.name" size="large">{{null}}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <el-table-column align="center" prop="name" label="风险区域名称"/> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="40" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-col> - <el-col :span="6" style="padding-left: 15px;"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag }} - </el-tag> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false" size="default">关闭</el-button> - <el-button type="primary" @click="dialogVisible = false" size="default">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { - defineComponent, - reactive, - ref -} from 'vue'; -import { - Delete, - FullScreen -} from '@element-plus/icons-vue'; -export default defineComponent({ - setup() { - const dialogVisible = ref<boolean>(false); - const openDailog = () => { - dialogVisible.value = true; - }; - // 搜索条件 - const ruleForm = reactive({ - checkPass: '', - }); - // 表格 - const tableData = [ - { - name: '1#LNG储罐单元', - }, - { - name: 'LNG装车区', - }, - { - name: '丙烷储罐区', - }, - { - name: '4#LNG储罐单元', - }, - ]; - // 右方点击添加后显示标签 - const dynamicTags = ref(['LNG装车区']); - const handleClose = (tag: string) => { - dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); - radio1.value="" - }; - const radio1=ref('1#LNG储罐单元') - const radio=(event:any)=>{ - dynamicTags.value[0]=event - } - - // 分页 - const pageIndex = ref(4); - const pageSize = ref(10); - // 分页改变 - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`); - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - openDailog, - ruleForm, - tableData, - handleSizeChange, - handleCurrentChange, - pageIndex, - pageSize, - radio1, - radio, - dynamicTags, - handleClose, - Delete, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -.el-form--inline .el-form-item{ - margin: 0; -} -</style> diff --git a/src/components/contingencyManagement/emergencyResources/emergencySupplies/index.vue b/src/components/contingencyManagement/emergencyResources/emergencySupplies/index.vue deleted file mode 100644 index 3f9dc77..0000000 --- a/src/components/contingencyManagement/emergencyResources/emergencySupplies/index.vue +++ /dev/null @@ -1,396 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-input size="default" v-model="listQuery.searchParams.name" placeholder="物资名称" style="max-width: 215px" /> - <el-button size="default" type="primary" class="ml10" @click="listApi"> 查询 </el-button> - <el-button size="default" class="ml10" @click="submitReset"> 重置 </el-button> - </div> - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> <Plus /> </el-icon>新建 - </el-button> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> <Edit /> </el-icon>修改 - </el-button> - <el-button size="default" type="danger" plain @click="onDeleteAll" :disabled="danger"> - <el-icon> <Delete /> </el-icon>删除 - </el-button> - </div> - <div class="button_Right"> - <!-- <el-button @click="upButton">--> - <!-- <el-icon>--> - <!-- <Upload />--> - <!-- </el-icon>--> - <!-- </el-button>--> - <!-- <el-button>--> - <!-- <el-icon>--> - <!-- <Refresh />--> - <!-- </el-icon>--> - <!-- </el-button>--> - </div> - </div> - <el-table :data="tableData" style="width: 100%" ref="multipleTableRef" @selection-change="handleSelectionChange"> - <el-table-column align="center" type="selection" width="55" /> - <el-table-column align="center" prop="name" label="物资名称" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" prop="number" label="物资编号" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" prop="deptName" label="负责部门" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" label="物资分类" min-width="120" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.classification == 1">事故气体吸收装置</span><span v-if="scope.row.classification == 2">通讯设施</span - ><span v-if="scope.row.classification == 3">交通运输工具</span><span v-if="scope.row.classification == 4">照明装置</span - ><span v-if="scope.row.classification == 5">防护器材</span><span v-if="scope.row.classification == 6">其它</span> - </template> - </el-table-column> - <el-table-column align="center" prop="place" label="存放位置" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" prop="count" label="存储数量" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="200" align="center" fixed="right"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onMaintain(scope.row)"> - <el-icon style="margin-right: 5px"> <EditPen /> </el-icon>保养 - </el-button> - <el-button size="small" text type="primary" @click="onInspect(scope.row)"> - <el-icon style="margin-right: 5px"> <EditPen /> </el-icon>检查 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('详情', scope.row.id)"> - <el-icon style="margin-right: 5px"> <View /> </el-icon>查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改', scope.row.id)"> - <el-icon style="margin-right: 5px"> - <EditPen /> - </el-icon> - 修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> - <el-icon> <Delete /> </el-icon>删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-card> - <Maintain ref="seeRef" @myadd="onMaintainAdd" /> - <Inspect ref="spectRef" @myadd="onInspectAdd" /> - <OpenAdd ref="addRef" @myAdd="onMyAdd" /> - <OpenEdit ref="editRef" @myAdd="onMyAdds" /> - <!-- <upData ref="upShow"></upData>--> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent, reactive, onMounted } from 'vue'; -import { - ElMessageBox, - ElMessage, - // ElTable -} from 'element-plus'; -import { Plus, Edit, Delete, Upload, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import OpenAdd from '/@/views/contingencyManagement/emergencyResources/emergencySupplies/component/openAdd.vue'; -import Maintain from '/@/views/contingencyManagement/emergencyResources/emergencySupplies/component/maintain.vue'; -import Inspect from '/@/views/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue'; -import OpenEdit from '/@/views/contingencyManagement/emergencyResources/emergencySupplies/component/openEdit.vue'; -import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; -import { emergencySuppliesApi } from '/@/api/contingencyManagement/emergencyResources'; - -export default defineComponent({ - name: 'systemUser', - components: { - OpenAdd, - Maintain, - View, - OpenEdit, - EditPen, - Plus, - Edit, - Delete, - Upload, - // Download, - Inspect, - Refresh, - UpData, - }, - setup() { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - name: '', - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 请求列表数据 - const listApi = async () => { - let res = await emergencySuppliesApi().getEmergencySuppliesList(listQuery); - // console.log(res); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }; - //重置 - const submitReset = () => { - listQuery.searchParams.name = ''; - listApi(); - }; - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - // console.log(deletAll.value); - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - // 页面加载时 - onMounted(() => { - listApi(); - }); - // 上传 - // const upShow = ref(); - // const upButton = () => { - // upShow.value.openDialog(); - // }; - - //新增应急物资检查弹窗 - const seeRef = ref(); - const onMaintain = (data: any) => { - seeRef.value.openDialog(data); - }; - // 应急物资保养新增后刷新 - const onMaintainAdd = () => { - listApi(); - }; - //修改应急物资检查弹窗 - const spectRef = ref(); - const onInspect = (data: any) => { - spectRef.value.openDialog(data); - }; - // 应急物资检查新增后刷新 - const onInspectAdd = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 新建应急物资代码弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建应急物资代码', false); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 打开修改用户弹窗 - const editRef = ref(); - const onEdit = (val: string, row: object) => { - if (val == '详情') { - editRef.value.openDialog('查看应急物资代码', row, true); - } else { - editRef.value.openDialog('修改应急物资代码', row, false); - } - }; - // 新增后刷新 - const onMyAdds = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 删除用户 - const onRowDel = (id: number) => { - let arr = []; - arr.push(id); - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - emergencySuppliesApi() - .deleteEmergencySupplies(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - emergencySuppliesApi() - .deleteEmergencySupplies(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页条数 - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - listQuery.pageSize = val; - }; - // 分页数 - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - listQuery.pageIndex = val; - }; - return { - // upButton, - // upShow, - tableData, - onMaintain, //保养 - seeRef, - onOpenAdd, //新增 - addRef, - onRowDel, - pageIndex, - pageSize, - total, - handleSizeChange, - handleCurrentChange, - listQuery, - listApi, - onMounted, - submitReset, - onMyAdd, - onEdit, - editRef, - onDeleteAll, - handleSelectionChange, - warning, - danger, - spectRef, - onInspect, - onMaintainAdd, - onInspectAdd, - onMyAdds, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box { - padding: 20px; - background-color: #fff; -} -.tableForm { - margin-top: 10px; -} -/*按钮行*/ -.button_Line { - display: flex; - flex-direction: row; - justify-content: space-between; -} -//分页 -.pages { - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue b/src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue deleted file mode 100644 index 7bcfdce..0000000 --- a/src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue +++ /dev/null @@ -1,271 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="50%" @close="resetForm(ruleFormRef)" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :rules="rules" :model="ruleForm" size="default" label-width="120px" :disabled="disabled"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急物资" prop="suppliesName"> - <el-input v-model="ruleForm.suppliesName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="保养结果" prop="maintainResult"> - <el-select v-model="ruleForm.maintainResult" class="w100" placeholder="请选择"> - <el-option label="正常" value="1"></el-option> - <el-option label="异常" value="2"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="创建人" prop="userName"> - <el-input v-model="ruleForm.userName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser(0)" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="创建时间" prop="maintainTime"> - <el-date-picker - class="w100" - v-model="ruleForm.maintainTime" - type="datetime" - value-format="YYYY-MM-DD HH:mm:ss" - placeholder="选择日期时间" - /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <EmergencySupplies ref="showRef" @SearchUser="onUser" /> - <DailogSearchUser ref="userRef" @SearchUser="onUsers" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent, reactive } from 'vue'; - -import type { FormInstance, FormRules } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import EmergencySupplies from '../../../../../components/emergencySupplies/index.vue'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; -import { maintenanceEmergencyMaterialsApi } from '../../../../../api/contingencyManagement/maintenanceEmergencyMaterials'; - -export default defineComponent({ - name: 'openAdd', - components: { - DailogSearchUser, - EmergencySupplies, - }, - setup(props, { emit }) { - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - //定义表单 - const ruleForm = ref({ - suppliesId: '', // 物资ID - maintainResult: '', //保养结果 - maintainTime: '', // 创建时间 - userList: [], - }); - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number) => { - isShowDialog.value = true; - titles.value = `${title}应急物资保养`; - disabled.value = title == '查看' ? true : false; - if (title == '查看' || title == '修改') { - maintenanceEmergencyMaterialsApi() - .seeMaintenanceEmergencyMaterials(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - let arr = []; - for (let i = 0; i < ruleForm.value.userList.length; i++) { - arr.push(ruleForm.value.userList[i].userName); - } - ruleForm.value.userName = arr.toString(); - } - }); - } - }; - //日期选择器 - const maintainTime = ref(''); - // 表单提交验证必填项 - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - if (titles.value == '新建应急物资保养') { - isShowDialog.value = false; - maintenanceEmergencyMaterialsApi() - .addMaintenanceEmergencyMaterials(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - }); - } else if (titles.value == '修改应急物资保养') { - isShowDialog.value = false; - maintenanceEmergencyMaterialsApi() - .editMaintenanceEmergencyMaterials(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - const rules = reactive<FormRules>({ - nameTitle: [], - maintainResult: [ - { - required: true, - message: '保养结果不能为空', - trigger: 'change', - }, - ], - userName: [ - { - required: true, - message: '创建人不能为空', - trigger: 'change', - }, - ], - maintainTime: [ - { - required: true, - message: '创建时间不能为空', - trigger: 'blur', - }, - ], - }); - // 应急物资弹窗 - const showRef = ref(); - const daiInpt = () => { - showRef.value.openDailog(); - }; - const onUser = (e: any) => { - ruleForm.value.suppliesId = e.id; - ruleForm.value.suppliesName = e.name; - }; - // 编写人弹窗 - const userRef = ref(); - const openUser = (data: any) => { - userRef.value.openDailog(data); - }; - const onUsers = (val: any) => { - let arr = []; - for (let i = 0; i < val.length; i++) { - arr.push(val[i].realName); - ruleForm.value.userList.push({ - userUid: val[i].uid, - userName: val[i].realName, - }); - } - ruleForm.value.userName = arr.toString(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - isShowDialog, - Search, - ruleForm, - maintainTime, - daiInpt, - onUser, - onUsers, - rules, - showRef, - ruleFormRef, - submitForm, - openUser, - userRef, - toggleFullscreen, - FullScreen, - full, - resetForm, - titles, - disabled, - emit, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue b/src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue deleted file mode 100644 index f595dca..0000000 --- a/src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue +++ /dev/null @@ -1,392 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-form size="default" label-width="80px" :inline="true"> - <el-form-item prop="telephone"> - <el-input v-model="listQuery.searchParams.suppliesName" placeholder="请选择应急物资" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </el-input> - </el-form-item> - <el-button size="default" type="primary" class="ml10" @click="onSubmit"> 查询 </el-button> - <el-button size="default" class="ml10" @click="submitReset"> 重置 </el-button> - </el-form> - </div> - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd('新建')"> - <el-icon> <Plus /> </el-icon>新建 - </el-button> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> <Edit /> </el-icon>修改 - </el-button> - <el-button size="default" type="danger" plain @click="onDeleteAll" :disabled="danger"> - <el-icon> <Delete /> </el-icon>删除 - </el-button> - </div> - <div class="button_Right"> - <el-button> - <el-icon> - <Download /> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Refresh /> - </el-icon> - </el-button> - </div> - </div> - <el-table :data="tableData" style="width: 100%" ref="multipleTableRef" @selection-change="handleSelectionChange"> - <el-table-column align="center" type="selection" width="55" /> - <el-table-column align="center" prop="suppliesName" label="应急物资" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column align="center" label="保养结果" min-width="120" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.maintainResult == 1">正常</span> - <span v-if="scope.row.maintainResult == 2">异常</span> - </template> - </el-table-column> - <el-table-column align="center" prop="maintainTime" label="保养日期" min-width="120" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="200" align="center" fixed="right"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onEdit('查看', scope.row.id)"> - <el-icon style="margin-right: 5px"> <View /> </el-icon>查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改', scope.row.id)"> - <el-icon style="margin-right: 5px"> <EditPen /> </el-icon>修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> - <el-icon> <Delete /> </el-icon>删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-card> - <EmergencySupplies ref="showRef" @SearchUser="onUser" /> - <OpenSee ref="editRef" /> - <upData ref="upShow"></upData> - <OpenAdd ref="addRef" @myAdd="onMyAdd" /> - </div> -</template> - -<script lang="ts"> -import { reactive, onMounted, ref, defineComponent } from 'vue'; -import { - ElMessageBox, - ElMessage, - // ElTable, - // FormInstance, -} from 'element-plus'; -import { Plus, Search, Delete, Edit, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -// import OpenSee from '/@/views/contingencyManagement/emergencyPlanStartRecord/components/openSee.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; -// import EmergencySupplies from '/@/components/emergencySupplies/index.vue'; -// import OpenAdd from '/@/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/components/openAdd.vue'; -// import { contingencyApi } from '/@/api/contingency'; -// import { emergencySuppliesMaintainApi } from '/@/api/emergencySuppliesMaintain'; - -import OpenSee from '../../emergencyPlanStartRecord/component/openSee.vue'; -import UpData from '../../panManagement/component/upData.vue'; -import EmergencySupplies from '../../../../components/emergencySupplies/index.vue'; -import OpenAdd from '../maintenanceOfEmergencyMaterials/component/openAdd.vue'; -import { maintenanceEmergencyMaterialsApi } from '/@/api/contingencyManagement/maintenanceEmergencyMaterials'; - -export default defineComponent({ - name: 'systemUser', - components: { - OpenSee, - View, - OpenAdd, - EditPen, - Plus, - Edit, - Delete, - EmergencySupplies, - Download, - Refresh, - UpData, - }, - setup() { - //定义表单 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - suppliesId: '', - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 请求列表数据 - const onSubmit = async () => { - let res = await maintenanceEmergencyMaterialsApi().getMaintenanceEmergencyMaterialsList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }; - // 重置 - const submitReset = () => { - listQuery.searchParams.suppliesId = ''; - listQuery.searchParams.suppliesName=""; - onSubmit(); - }; - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - - // 打开新建用户弹窗 - const addRef = ref(); - const onOpenAdd = (data:any) => { - addRef.value.openDialog(data); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - onSubmit(); - } else { - onSubmit(); - } - }; - // 打开修改用户弹窗 - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog(val, row); - } else { - addRef.value.openDialog(val, row); - } - }; - // 删除 - const onRowDel = (data: any) => { - let arr=[] - arr.push(data) - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - maintenanceEmergencyMaterialsApi() - .deleteMaintenanceEmergencyMaterials(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }) - .catch(() => {}); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - maintenanceEmergencyMaterialsApi() - .deleteMaintenanceEmergencyMaterials(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }) - .catch(() => {}); - }; - // 上传 - const upShow = ref(); - const upButton = () => { - upShow.value.openDialog(); - }; - // 应急物资弹窗 - const showRef = ref(); - const daiInpt = () => { - showRef.value.openDailog(); - }; - const onUser = (e: any) => { - listQuery.searchParams.suppliesId = e.id; - listQuery.searchParams.suppliesName=e.name - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - onSubmit(); - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - onSubmit(); - }; - // 页面加载时 - onMounted(() => { - onSubmit(); - }); - return { - upButton, - upShow, - Edit, - onRowDel, - handleSizeChange, - handleCurrentChange, - Search, - daiInpt, - showRef, - onOpenAdd, //新增 - addRef, - onSubmit, - submitReset, - onMyAdd, - listQuery, - warning, - danger, - tableData, - pageIndex, - pageSize, - total, - handleSelectionChange, - onDeleteAll, - onEdit, - onUser, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box { - padding: 20px; - background-color: #fff; -} -.tableForm { - margin-top: 10px; -} -/*按钮行*/ -.button_Line { - display: flex; - flex-direction: row; - justify-content: space-between; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer { - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending { - border-bottom-color: #c0c4cc; -} -//分页 -.pages { - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/panManagement/component/abolishLibrary.vue b/src/components/contingencyManagement/panManagement/component/abolishLibrary.vue deleted file mode 100644 index f13523f..0000000 --- a/src/components/contingencyManagement/panManagement/component/abolishLibrary.vue +++ /dev/null @@ -1,219 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog title="废止库" v-model="isShowDialog" width="60%" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row :gutter="35"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-table - :data="tableData" - style="width: 100%; margin-top: 15px" - ref="multipleTableRef" - :model="formInline" - :header-cell-style="{ background: '#f6f7fa', color: '#909399' }" - > - <el-table-column prop="name" label="预案名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="type" label="预案类型" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="authorUid" label="编写人" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="releaseDate" label="发布实施日期" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="200" align="center"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onReduction(scope.row.id)">还原 </el-button> - </template> - </el-table-column> - </el-table> - </el-col> - </el-row> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - class="mt15" - background - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - /> - </div> - <template #footer> - <span class="dialog-footer"> - <el-button @click="onCancel">取消</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -import { ref, reactive, defineComponent, onMounted } from 'vue'; - -import type { FormInstance } from 'element-plus'; -import { - // ElMessageBox, - ElMessage, -} from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import { emergencyPlanApi } from '../../../../api/contingencyManagement/emergencyPlan'; -export default defineComponent({ - name: 'abolishLibrary', - components: {}, - setup(prop, { emit }) { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - abolishStatus: true, - }, - }); - // 定义表格数据 - const tableData = ref([]); - - // 列表数据请求 - const openDialog = async () => { - isShowDialog.value = true; - let res = await emergencyPlanApi().getEmergencyPlanList(listQuery); - if (res.data.code === '200') { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - type: 'error', - message: res.data.msg, - }); - } - }; - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - // 打开弹窗 - // const openDialog = () => { - // isShowDialog.value = true; - // }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - // 取消 - const onCancel = () => { - closeDialog(); - }; - const onReduction = async (id: number) => { - isShowDialog.value = false; - emergencyPlanApi() - .reductionEmergencyTeam(id) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - openDialog(); - } - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - tableData, - Search, - ruleFormRef, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - toggleFullscreen, - FullScreen, - full, - listQuery, - // onSubmit, - total, - emit, - onReduction, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -//分页 -.pages { - display: flex; - justify-content: flex-end; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/panManagement/component/approval.vue b/src/components/contingencyManagement/panManagement/component/approval.vue deleted file mode 100644 index b6db937..0000000 --- a/src/components/contingencyManagement/panManagement/component/approval.vue +++ /dev/null @@ -1,224 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="40%" draggable :fullscreen="full" :close-on-click-modal="false"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="120px" :disabled="disabled"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批名称" prop="workName"> - <el-input v-model="ruleForm.workName" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批标题" prop="title"> - <el-input v-model="ruleForm.title" placeholder="请填写审批名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批人" prop="approvePersonId"> - <el-input v-model="ruleForm.approvePersonName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="审批结果" prop="authorUid"> - <el-radio-group v-model="ruleForm.approveResult"> - <el-radio :label="false">不通过</el-radio> - <el-radio :label="true">通过</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="审批意见" prop="approveMemo"> - <el-input v-model="ruleForm.approveMemo" type="textarea" placeholder="请填写审批意见"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="是否完成" prop="authorUid" @change="typeChang"> - <el-radio-group v-model="ruleForm.complete"> - <el-radio :label="false">是</el-radio> - <el-radio :label="true">否</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批名称" prop="workName"> - <el-input v-model="ruleForm.twoWorkName" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批标题" prop="title"> - <el-input v-model="ruleForm.twoTitle" placeholder="请填写审批名称"></el-input> - </el-form-item> - </el-col> - <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批人" prop="authorUid"> - <el-input v-model="ruleForm.twoApprovePersonName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent } from 'vue'; - -import type { FormInstance } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue'; -import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; - -export default defineComponent({ - name: 'openAdd', - components: { - DailogSearchUserManger, - }, - setup(prop, { emit }) { - const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - const ruleForm = ref({ - approveId: '', - workName: '', // 审批名称 - title: '', //审批标题 - approvePersonId: '', // - approvePersonName: '', // 审批人 - approveStatus: 2, //审批状态 - relateType: 1, //业务类型 - approveResult: false, //审批结果 - approveMemo: '', //审批意见 - relateId: '', - twoWorkName:'', - twoTitle:'', - twoApprovePersonId:'', - twoApprovePersonName:'' - }); - const titles = ref(); - const disabled = ref(); - const uid = ref(); - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - ruleForm.value.relateId = id; - uid.value = id; - if(title == '查看审批' || title == '修改审批') { - emergencyPlanApi() - .approvalProcessEmergencyPlan(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } - }; - const submitForm = async () => { - ruleForm.value.workName = ruleForm.value.twoWorkName - ruleForm.value.title = ruleForm.value.twoTitle - ruleForm.value.approvePersonId = ruleForm.value.twoApprovePersonId - ruleForm.value.approvePersonName = ruleForm.value.twoApprovePersonName - isShowDialog.value = false; - emergencyPlanApi() - .editApprovalEmergencyPlan(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - }); - }; - const resetForm = () => { - isShowDialog.value = false; - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - //回显 - const onUser = (e: any) => { - ruleForm.value.twoApprovePersonId = e[0].uid; - ruleForm.value.twoApprovePersonName = e[0].realName; - }; - const typeChang = () => { - console.log('tag', ruleForm); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - Search, - submitForm, - openUser, - userRef, - toggleFullscreen, - FullScreen, - full, - titles, - disabled, - emit, - isShowDialog, - ruleFormRef, - ruleForm, - resetForm, - onUser, - typeChang, - uid, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/panManagement/component/approvalProcess.vue b/src/components/contingencyManagement/panManagement/component/approvalProcess.vue deleted file mode 100644 index 2356a0b..0000000 --- a/src/components/contingencyManagement/panManagement/component/approvalProcess.vue +++ /dev/null @@ -1,202 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog title="查看审批流程" v-model="isShowDialog" width="60%" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row :gutter="35"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-table - :data="tableData" - style="width: 100%; margin-top: 15px" - ref="multipleTableRef" - :model="formInline" - :header-cell-style="{ background: '#f6f7fa', color: '#909399' }" - > - <el-table-column prop="workName" label="审批人" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="title" label="审批标题" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="approvePersonName" label="编写人" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="approveMemo" label="审批意见" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="200" align="center"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onReduction(scope.row.id)">还原</el-button> - </template> - </el-table-column> - </el-table> - </el-col> - </el-row> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - class="mt15" - background - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - /> - </div> - <template #footer> - <span class="dialog-footer"> - <el-button @click="onCancel">取消</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -import { ref, reactive, defineComponent, onMounted } from 'vue'; - -import type { FormInstance } from 'element-plus'; -import { - // ElMessageBox, - ElMessage, -} from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import { emergencyPlanApi } from '../../../../api/contingencyManagement/emergencyPlan'; -export default defineComponent({ - name: 'abolishLibrary', - components: {}, - setup(prop, { emit }) { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - relateType: 1, - relateId: '', - startTime: '', - endTime: '', - }, - }); - // 定义表格数据 - const tableData = ref([]); - - // 列表数据请求 - const openDialog = async () => { - isShowDialog.value = true; - let res = await emergencyPlanApi().processEmergencyPlan(listQuery); - if (res.data.code === '200') { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - type: 'error', - message: res.data.msg, - }); - } - }; - - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - // 打开弹窗 - // const openDialog = () => { - // isShowDialog.value = true; - // }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - // 取消 - const onCancel = () => { - closeDialog(); - }; - const onReduction = async () => { - isShowDialog.value = false; - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - tableData, - Search, - ruleFormRef, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - toggleFullscreen, - FullScreen, - full, - listQuery, - // onSubmit, - total, - emit, - onReduction, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -//分页 -.pages { - display: flex; - justify-content: flex-end; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/panManagement/component/initiateApproval.vue b/src/components/contingencyManagement/panManagement/component/initiateApproval.vue deleted file mode 100644 index eb2afa2..0000000 --- a/src/components/contingencyManagement/panManagement/component/initiateApproval.vue +++ /dev/null @@ -1,159 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog title="发起审批" v-model="isShowDialog" width="40%" draggable :fullscreen="full" :close-on-click-modal="false"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="120px"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批名称" prop="workName"> - <el-input v-model="ruleForm.workName" placeholder="请填写审批名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批标题" prop="title"> - <el-input v-model="ruleForm.title" placeholder="请填写审批名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批人" prop="approvePersonId"> - <el-input v-model="ruleForm.approvePersonName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button size="default" type="primary" @click="submitForm">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent } from 'vue'; - -import type { FormInstance } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue'; -import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; - -export default defineComponent({ - name: 'openAdd', - components: { - DailogSearchUserManger, - }, - setup(prop, { emit }) { - const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - const ruleForm = ref({ - workName: '', // 审批名称 - title: '', //审批标题 - approvePersonId: '', - approvePersonName: '', - approveStatus: 2, - relateType: 1, - relateId: '', - }); - const titles = ref(); - - // 打开弹窗 - const openDialog = (title: string, id: number) => { - isShowDialog.value = true; - titles.value = title; - ruleForm.value.relateId = id; - uid.value = id; - }; - const uid = ref(); - const submitForm = async () => { - isShowDialog.value = false; - - emergencyPlanApi() - .approvalEmergencyPlan(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - }); - }; - const resetForm = () => { - isShowDialog.value = false; - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - //回显 - const onUser = (e: any) => { - ruleForm.value.approvePersonId = e[0].uid; - ruleForm.value.approvePersonName = e[0].realName; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - Search, - submitForm, - openUser, - userRef, - toggleFullscreen, - FullScreen, - full, - titles, - emit, - isShowDialog, - ruleFormRef, - ruleForm, - resetForm, - onUser, - uid, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/panManagement/component/openAdd.vue b/src/components/contingencyManagement/panManagement/component/openAdd.vue deleted file mode 100644 index 02c44c0..0000000 --- a/src/components/contingencyManagement/panManagement/component/openAdd.vue +++ /dev/null @@ -1,419 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="50%" draggable :fullscreen="full" :close-on-click-modal="false"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="120px" :disabled="disabled"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="预案名称" prop="name"> - <el-input v-model="ruleForm.name" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="适用部门" prop="responsibleDepartment"> - <el-tree-select - v-model="ruleForm.responsibleDepartment" - :data="data" - multiple - :render-after-expand="false" - :props="propse" - clearable - show-checkbox - check-strictly - check-on-click-node - placeholder="请选择" - /> - <el-divider /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="预案类型" prop="type"> - <el-select v-model="ruleForm.type" class="w100" placeholder="请选择"> - <el-option label="综合应急预案" value="1"></el-option> - <el-option label="现场处置方案" value="2"></el-option> - <el-option label="专项应急预案" value="3"></el-option> - <el-option label="其他预案" value="4"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="危险源关联" prop="associatedDanger"> - <el-select v-model="ruleForm.associatedDanger" class="w100" placeholder="请选择"> - <el-option label="是" :value="false"></el-option> - <el-option label="否" :value="true"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="预案级别" prop="level"> - <el-select v-model="ruleForm.level" class="w100" placeholder="请选择"> - <el-option label="公司级" value="1"></el-option> - <el-option label="分厂级" value="2"></el-option> - <el-option label="车间级" value="3"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="编写人" prop="authorId"> - <el-input v-model="ruleForm.authorName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="编写部门" prop="authorDeptId"> - <el-tree-select - v-model="ruleForm.authorDeptId" - check-strictly - :data="data" - class="w100" - :props="propse" - clearable - :render-after-expand="false" - placeholder="请选择" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="发布实施日期" prop="releaseDate"> - <el-date-picker - v-model="ruleForm.releaseDate" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急队伍" prop="emergencyTeam"> - <el-input v-model="ruleForm.emergencyTeam" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt(0)" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="相关附件"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - :on-change="handleChange" - > - <el-button type="primary">点击上传</el-button> - <template #tip> - <div class="el-upload__tip">添加相关附件</div> - </template> - </el-upload> - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> - <!-- <el-form-item label="区域名称" prop="areaName">--> - <!-- <el-input--> - <!-- v-model="ruleForm.areaName"--> - <!-- placeholder="请选择"--> - <!-- class="input-with-select"--> - <!-- >--> - <!-- <template #append>--> - <!-- <el-button :icon="Search" @click="regionsDialog"/>--> - <!-- </template>--> - <!-- </el-input>--> - <!-- </el-form-item>--> - <!-- </el-col>--> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <CheckTemplate ref="Shows" @SearchUser="SearchUser" /> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser" /> - <RegionsDialog ref="openRef" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent, onMounted } from 'vue'; - -import type { UploadUserFile, FormInstance } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue'; -import CheckTemplate from '/@/components/checkTemplate/index.vue'; -import RegionsDialog from '/@/components/regionsDialog/index.vue'; -import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; -import { goalManagementApi } from '/@/api/goalManagement'; - -export default defineComponent({ - name: 'openAdd', - components: { - CheckTemplate, - DailogSearchUserManger, - RegionsDialog, - }, - setup(prop, { emit }) { - const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - const ruleForm = ref({ - name: '', // 预案名称 - type: '', //预案类型 - associatedDanger: '', // 危险源关联 - level: '', // 预案级别 - authorUid: '', // 编写人 - authorName: '', - authorDeptId: '', // 编写部门 - releaseDate: '', // 发布实施日期 - fileList: [ - // { - // fileUrl: 'url', - // fileName: 'name', - // }, - ], - emergencyTeam: '', //应急队伍 - areaList: [], //区域列表 - teamList: [], - deptList: [], - abolishStatus: false, - }); - const titles = ref(); - const disabled = ref(); - - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if (title == '查看应急预案管理' || title == '修改应急预案管理') { - emergencyPlanApi() - .seeEmergencyTeam(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - let arr = []; - for (let i = 0; i < ruleForm.value.teamList.length; i++) { - arr.push(ruleForm.value.teamList[i].emergencyTeam); - } - ruleForm.value.emergencyTeam = arr.toString(); - } - }); - } - }; - //日期选择器 - const releaseDate = ref(''); - // 上传附件 - const fileList = ref<UploadUserFile[]>([]); - //部门树 - const department = () => { - goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - const treeSelect = ref(); - // const trees = ref(); - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - onMounted(() => { - department(); - }); - //定义树形下拉框 - const responsibleDepartment = ref(); - const data = ref(); - - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建应急预案管理') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyPlanApi() - .addEmergencyPlan(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } else if (title == '修改应急预案管理') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyPlanApi() - .editEmergencyTeam(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - name: '', // 预案名称 - type: '', //预案类型 - associatedDanger: '', // 危险源关联 - level: '', // 预案级别 - authorUid: '', // 编写人 - authorName: '', - authorDeptId: '', // 编写部门 - releaseDate: '', // 发布实施日期 - fileList: [ - // { - // fileUrl: 'url', - // fileName: 'name', - // }, - ], - emergencyTeam: '', //应急队伍 - areaList: [], //区域列表 - teamList: [ - ], - deptList: [], - abolishStatus: false, - }; - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - // 应急队伍弹窗 - const Shows = ref(); - const daiInpt = (data: any) => { - Shows.value.openDailog(data); - }; - const SearchUser = (val: any) => { - let arr = []; - for (let i = 0; i < val.length; i++) { - arr.push(val[i].teamName); - ruleForm.value.teamList.push({ - userUid: val[i].uid, - emergencyTeam: val[i].teamName, - }); - } - ruleForm.value.emergencyTeam = arr.toString(); - }; - // 选择区域弹窗 - const openRef = ref(); - const regionsDialog = () => { - openRef.value.openDailog(); - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - //回显 - const onUser = (e: any) => { - ruleForm.value.authorUid = e[0].uid; - ruleForm.value.authorName = e[0].realName; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - fileList, - responsibleDepartment, - data, - Search, - releaseDate, - treeSelect, - // trees, - propse, - department, - daiInpt, - Shows, - SearchUser, - submitForm, - openUser, - userRef, - regionsDialog, - openRef, - toggleFullscreen, - FullScreen, - full, - titles, - disabled, - emit, - isShowDialog, - ruleFormRef, - ruleForm, - resetForm, - onUser, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/panManagement/component/startUp.vue b/src/components/contingencyManagement/panManagement/component/startUp.vue deleted file mode 100644 index 49f5500..0000000 --- a/src/components/contingencyManagement/panManagement/component/startUp.vue +++ /dev/null @@ -1,160 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - :title="titles" - v-model="isShowDialog" - width="30%" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="ruleForm" ref="ruleFormRef" label-width="80px"> - <el-form-item label="备注" > - <el-input v-model="ruleForm.remark" type="textarea" autocomplete="off" /> - </el-form-item> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">取消</el-button> - <el-button size="default" type="primary" @click="submitForm(titles,ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -import { - ref, - defineComponent -} from 'vue'; - -import type { - FormInstance, -} from 'element-plus' -import { ElMessage } from 'element-plus'; -import { - Search, - FullScreen -} from '@element-plus/icons-vue' -import {emergencyPlanLogApi} from "/@/api/contingencyManagement/emergencyPlanLog"; - -export default defineComponent({ - name: 'openAdd', - components: { - }, - setup(prop, {emit}) { - const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - - const ruleForm = ref({ - // id: id, - remark: '', - }) - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - // const openDialog = (title: string ,id: number,) => { - // isShowDialog.value = true; - // titles.value = title; - // if (title == '启动') { - // emergencyPlanLogApi() - // .seeEmergencyPlanLog(id) - // .then((res) => { - // if (res.data.code == 200) { - // ruleForm.value = res.data.data; - // } - // }); - // } - // }; - const openDialog = (title: string) => { - isShowDialog.value = true; - titles.value = title; - }; - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '启动') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyPlanLogApi() - .addEmergencyPlanLog(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - ruleForm.value = { - // id: id, - remark: '', - } - } else { - console.log('error submit!', fields); - } - }); - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - Search, - toggleFullscreen, - FullScreen, - full, - titles, - emit, - isShowDialog, - ruleFormRef, - ruleForm, - submitForm, - disabled, - resetForm, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea{ - height: 168px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 168px!important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal{ - height: 0; - margin: 0; - border-top: transparent; -} -.el-select{ - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/panManagement/component/upData.vue b/src/components/contingencyManagement/panManagement/component/upData.vue deleted file mode 100644 index cc3e2d0..0000000 --- a/src/components/contingencyManagement/panManagement/component/upData.vue +++ /dev/null @@ -1,125 +0,0 @@ -<template> - <el-dialog - v-model="dialogVisible" - title="导入Excel" - width="50%" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - multiple - :on-preview="handlePreview" - :on-remove="handleRemove" - :before-remove="beforeRemove" - :limit="3" - :on-exceed="handleExceed" - > - <el-button size="default">下载模板</el-button> - <el-button size="default" type="primary">点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 只允许导入“xls”或“xlsx”格式文件! - </div> - </template> - </el-upload> - </el-dialog> -</template> -<script lang="ts"> -import { ref, - defineComponent, -} from "vue"; -import { - ElMessage, - ElMessageBox -} from "element-plus"; -import type { - UploadProps, - UploadUserFile, -} from "element-plus"; -import { - FullScreen -} from '@element-plus/icons-vue' -export default defineComponent({ - setup() { - let dialogVisible =ref<boolean>(false) - const fileList = ref<UploadUserFile[]>([ - // { - // name: "element-plus-logo.svg", - // url: "https://element-plus.org/images/element-plus-logo.svg", - // }, - // { - // name: "element-plus-logo2.svg", - // url: "https://element-plus.org/images/element-plus-logo.svg", - // }, - ]); - - const handleRemove: UploadProps["onRemove"] = (file, uploadFiles) => { - console.log(file, uploadFiles); - }; - - const handlePreview: UploadProps["onPreview"] = (uploadFile) => { - console.log(uploadFile); - }; - - const handleExceed: UploadProps["onExceed"] = (files, uploadFiles) => { - ElMessage.warning( - `The limit is 3, you selected ${ - files.length - } files this time, add up to ${ - files.length + uploadFiles.length - } totally` - ); - }; - - const beforeRemove: UploadProps["beforeRemove"] = ( - uploadFile, - uploadFiles - ) => { - return ElMessageBox.confirm( - `Cancel the transfert of ${uploadFile.name} ?` - ).then( - () => true, - () => false - ); - }; - // 打开弹窗 - const openDialog = (type:string,value:any,projectList: any,projectId:string) => { - dialogVisible.value=true - } - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - fileList, - handleRemove, - handlePreview, - handleExceed, - beforeRemove, - openDialog, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped lang="scss"> -.el-upload__tip{ - margin-left: 100px; - margin-top: 20px; -} -::v-deep .el-dialog__header{ - border-bottom: 1px solid #e8e8e8; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/panManagement/index.vue b/src/components/contingencyManagement/panManagement/index.vue deleted file mode 100644 index 79dd253..0000000 --- a/src/components/contingencyManagement/panManagement/index.vue +++ /dev/null @@ -1,626 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-form :inline="true" class="demo-form-inline"> - <el-form-item> - <el-input size="default" v-model="listQuery.searchParams.name" placeholder="预案名称" style="max-width: 215px"> </el-input> - </el-form-item> - <el-form-item> - <el-select size="default" v-model="listQuery.searchParams.type" placeholder="请选择预案类型" class="ml10" style="max-width: 215px"> - <el-option label="综合应急预案" value="admin"></el-option> - <el-option label="现场处置方案" value="common"></el-option> - <el-option label="专项应急预案" value="common"></el-option> - <el-option label="其他预案" value="common"></el-option> - </el-select> - </el-form-item> - <el-form-item> - <el-button size="default" type="primary" class="ml10" @click="onSubmit"> 查询 </el-button> - <el-button size="default" class="ml10" @click="submitReset"> 重置 </el-button> - </el-form-item> - </el-form> - </div> - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> - <Plus /> </el-icon - >新建 - </el-button> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> - <Edit /> </el-icon - >修改 - </el-button> - <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll"> - <el-icon> - <Delete /> </el-icon - >删除 - </el-button> - <el-button size="default" type="primary" @click="onabolishLibrary"> 废止库 </el-button> - </div> - <div class="button_Right"> - <!-- <el-button size="default" @click="upButton">--> - <!-- <el-icon>--> - <!-- <Upload />--> - <!-- </el-icon>--> - <!-- </el-button>--> - <!-- <el-button size="default">--> - <!-- <el-icon>--> - <!-- <Download />--> - <!-- </el-icon>--> - <!-- </el-button>--> - <!-- <el-button size="default">--> - <!-- <el-icon>--> - <!-- <Refresh />--> - <!-- </el-icon>--> - <!-- </el-button>--> - </div> - </div> - <el-table :data="tableData" style="width: 100%" ref="multipleTableRef" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" /> - <el-table-column prop="name" label="预案名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="type" label="预案类型" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.type == 1">综合应急预案</span> - <span v-if="scope.row.type == 2">现场处置方案</span> - <span v-if="scope.row.type == 3">专项应急预案</span> - <span v-if="scope.row.type == 4">其他预案</span> - </template> - </el-table-column> - <el-table-column prop="level" label="预案级别" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.level == 1">综合应急预案</span> - <span v-if="scope.row.level == 2">现场处置方案</span> - <span v-if="scope.row.level == 3">专项应急预案</span> - </template> - </el-table-column> - <el-table-column prop="releaseDate" label="发布实施日期" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="260" align="center" fixed="right"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="isDialogFormVisible(scope.row.id)"> - <el-icon style="margin-right: 5px"> - <VideoPlay /> </el-icon - >启动 - </el-button> - <el-button size="small" text type="primary" @click="abolish(scope.row.id)"> - <el-icon style="margin-right: 5px"> - <VideoPause /> </el-icon - >废止 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改', scope.row.id)"> - <el-icon style="margin-right: 5px"> - <EditPen /> </el-icon - >修改 - </el-button> - <el-button - size="small" - text - type="primary" - v-if="scope.row.approveStatus === 0 || scope.row.approveStatus === null" - @click="initiateApproval(scope.row.id)" - > - 发起审批 - </el-button> - <el-button - size="small" - text - type="primary" - v-if="scope.row.approveStatus === 2 && scope.row.checkApprove === true" - @click="onApproval('修改',scope.row.approveId)" - > - 审批 - </el-button> - <el-button - size="small" - text - type="primary" - v-if="scope.row.approveStatus === 2 && scope.row.checkApprove === false" - @click="onApproval('详情',scope.row.id)" - > - 查看审批 - </el-button> - <el-button size="small" text type="primary" v-if="scope.row.approveStatus === 3" @click="onApprovalProcess(scope.row.id)"> - 查看审批流程 - </el-button> - <!-- <el-button size="small" text type="primary" @click="jumpFrom(0)">--> - <!-- <el-icon style="margin-right: 5px;">--> - <!-- <EditPen />--> - <!-- </el-icon>修改--> - <!-- </el-button>--> - <!-- <el-button size="small" text type="primary" @click="abolish(0)">--> - <!-- 发起审批--> - <!-- </el-button>--> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> - <el-icon> - <Delete /> </el-icon - >删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - class="mt15" - background - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - /> - </div> - </el-card> - <OpenAdd ref="addRef" @myAdd="onMyAdd" /> - <AbolishLibrary ref="abolishRef" @myAdd="onMyAdd" /> - <InitiateApproval ref="initiateApprovalRef" @myAdd="onMyAdd" /> - <Approval ref="approvalRef" @myAdd="onMyAdd" /> - <ApprovalProcess ref="processRef" @myAdd="onMyAdd" /> - <!-- <StartUp ref="startRef" @myAdd="startUp"/>--> - <el-dialog v-model="dialogFormVisible" width="30%" title="启动" :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" ref="ruleFormRef" label-width="80px"> - <el-form-item label="备注"> - <el-input v-model="form.remark" type="textarea" autocomplete="off" /> - </el-form-item> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogFormVisible = false">取消</el-button> - <el-button type="primary" @click="onDetermine">确定</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -import { reactive, onMounted, ref, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage } from 'element-plus'; -// import {useRouter} from "vue-router" -import type {} from // FormInstance, -'element-plus'; -import { Plus, Edit, Delete, Upload, Download, Refresh, VideoPause, VideoPlay, EditPen, FullScreen } from '@element-plus/icons-vue'; -import OpenAdd from '/@/views/contingencyManagement/panManagement/component/openAdd.vue'; -// import StartUp from '/@/views/contingencyManagement/panManagement/components/startUp.vue'; -import AbolishLibrary from '/@/views/contingencyManagement/panManagement/component/abolishLibrary.vue'; -import ApprovalProcess from '/@/views/contingencyManagement/panManagement/component/approvalProcess.vue'; -import InitiateApproval from '/@/views/contingencyManagement/panManagement/component/initiateApproval.vue'; -import Approval from '/@/views/contingencyManagement/panManagement/component/approval.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; -import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; -import { emergencyPlanLogApi } from '/@/api/contingencyManagement/emergencyPlanLog'; - -export default defineComponent({ - name: 'systemUser', - components: { - OpenAdd, - // StartUp, - InitiateApproval, - AbolishLibrary, - Approval, - EditPen, - Plus, - Edit, - Delete, - Upload, - Download, - Refresh, - VideoPause, - VideoPlay, - ApprovalProcess, - // UpData, - emergencyPlanApi, - }, - setup(prop, { emit }) { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - name: '', - type: '', - abolishStatus: false, - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 列表数据请求 - const onSubmit = async () => { - let res = await emergencyPlanApi().getEmergencyPlanList(listQuery); - if (res.data.code === '200') { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - type: 'error', - message: res.data.msg, - }); - } - }; - // 重置 - const submitReset = () => { - listQuery.searchParams.name = ''; - listQuery.searchParams.type = ''; - onSubmit(); - }; - const warning = ref(true); - const danger = ref(true); - - // 上传 - // const upShow=ref() - // const upButton=()=>{ - // upShow.value.openDialog() - // } - // 启动弹窗 - const isDialogFormVisible = (data: any) => { - dialogFormVisible.value = true; - form.value.planId = data; - }; - const dialogFormVisible = ref(false); - const form = ref({ - remark: '', - }); - const onDetermine = () => { - dialogFormVisible.value = false; - emergencyPlanLogApi() - .addEmergencyPlanLog(form.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - }); - form.value = { - remark: '', - }; - }; - // 打开新增用户弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建应急预案管理', false); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - onSubmit(); - } else { - onSubmit(); - } - }; - // 打开修改应急预案管理弹窗 - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog('查看应急预案管理', row, true); - } else { - addRef.value.openDialog('修改应急预案管理', row, false); - } - }; - - //打开废止库弹窗 - const abolishRef = ref(); - const onabolishLibrary = () => { - abolishRef.value.openDialog(); - }; - // 废止 - const abolish = (data: any) => { - ElMessageBox.confirm('确定要废止所选项吗?', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - emergencyPlanApi() - .EmergencyTeam(data) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }) - .catch(() => {}); - }; - - // 删除用户 - const onRowDel = (id: number) => { - let arr = []; - arr.push(id); - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - emergencyPlanApi() - .deleteEmergencyTeam(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }) - .catch(() => {}); - }; - - const deleteAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deleteAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - emergencyPlanApi() - .deleteEmergencyTeam(deleteAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const onHandleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const onHandleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - - // const router=useRouter() - // 修改跳转 - // const jumpFrom=(data:string)=>{ - // router.push({ - // path:"/processForm", - // query:{ - // type:data - // } - // }) - // } - // 发起审批跳转 - // const abolish=(data:string)=>{ - // router.push({ - // path:"/abolishDialog", - // query:{ - // type:data - // } - // }) - // } - // 发起审批弹窗 - const initiateApprovalRef = ref(); - const initiateApproval = (row: object) => { - initiateApprovalRef.value.openDialog('发起审批',row, true); - }; - // 审批 - const approvalRef = ref(); - const onApproval = (val: string,row: object) => { - if(val=='详情'){ - approvalRef.value.openDialog('查看审批', row, true); - } else { - approvalRef.value.openDialog('修改审批', row, false); - } - }; - // 审批流程 - const processRef = ref(); - const onApprovalProcess = () => { - processRef.value.openDialog(); - }; - - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - // 页面加载时 - onMounted(() => { - onSubmit(); - }); - return { - tableData, - onSubmit, - onOpenAdd, //新增 - addRef, - onabolishLibrary, - abolishRef, - abolish, - onRowDel, - onHandleSizeChange, - onHandleCurrentChange, - toggleFullscreen, - FullScreen, - full, - listQuery, - pageIndex, - pageSize, - total, - submitReset, - onMounted, - deleteAll, - warning, - danger, - handleSelectionChange, - onMyAdd, - onDeleteAll, - dialogFormVisible, - isDialogFormVisible, - form, - emit, - onDetermine, - onEdit, - initiateApproval, - initiateApprovalRef, - onApproval, - approvalRef, - onApprovalProcess, - processRef, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box { - padding: 20px; - background-color: #fff; -} -.tableForm { - margin-top: 10px; -} -/*按钮行*/ -.button_Line { - display: flex; - flex-direction: row; - justify-content: space-between; - margin-bottom: 10px; -} -.el-form .el-form-item { - margin-bottom: 0 !important; -} -.el-button--text { - margin-right: 15px; -} -.el-select { - width: 300px; -} -.el-input { - width: 300px; -} -.dialog-footer button:first-child { - margin-right: 10px; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer { - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending { - border-bottom-color: #c0c4cc; -} -//分页 -.pages { - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/processForm/component/formInformationTop.vue b/src/components/contingencyManagement/processForm/component/formInformationTop.vue deleted file mode 100644 index ef75063..0000000 --- a/src/components/contingencyManagement/processForm/component/formInformationTop.vue +++ /dev/null @@ -1,144 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标指标"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="指标值"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" style="padding: 0 20px"> - <el-tab-pane label="考核指标" name="1"> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" type="index" label="序号" width="70" /> - <el-table-column align="center" prop="date" label="责任部门" /> - <el-table-column align="center" prop="name" label="考核指标" /> - <el-table-column align="center" prop="address" label="制定部门" /> - <el-table-column align="center" prop="address" label="制定日期" /> - <el-table-column align="center" label="检查值"> - <template #default> - <el-input v-model="form.name" placeholder=""></el-input> - </template> - </el-table-column> - <el-table-column align="center" prop="address" label="检查人" /> - <el-table-column align="center" prop="address" label="检查时间" /> - </el-table> - <div class="tiao"> - <div class="typeS">审批</div> - </div> - <el-row style="padding:20px 0"> - <el-col :span="6" style="text-align:right">一级审批:</el-col> - <el-col :span="18">同意</el-col> - </el-row> - <el-row style="padding:0 0 20px 0"> - <el-col :span="6"></el-col> - <el-col :span="18"><span class="logoColor">同意</span><span style="margin-right: 8px;">杜建喜</span><span>2021-05-24 04:47:42</span></el-col> - </el-row> - </el-tab-pane> - </el-tabs> -</template> -<script lang="ts"> -import { defineComponent,ref,reactive } from 'vue' - -export default defineComponent({ - setup() { - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const activeName = ref('1'); - return{ - form, - tableData, - activeName - } - }, -}) -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0 ; -} -</style> diff --git a/src/components/contingencyManagement/processForm/component/formInformationTops.vue b/src/components/contingencyManagement/processForm/component/formInformationTops.vue deleted file mode 100644 index 53eed6a..0000000 --- a/src/components/contingencyManagement/processForm/component/formInformationTops.vue +++ /dev/null @@ -1,312 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="12"> - <el-form-item label="预案名称"> - <el-input v-model="form.name" placeholder="请填写预案名称"></el-input> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="适用部门"> - <el-tree-select - class="select" - placeholder="请选择" - v-model="value" - :data="data" - :render-after-expand="false" - show-checkbox - multiple - clearable - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="预案类型"> - <el-select class="select" v-model="form.region" placeholder="请选择"> - <el-option label="综合应急预案" value="shanghai" /> - <el-option label="现场处置方案" value="beijing" /> - <el-option label="专项应急预案" value="shanghai" /> - <el-option label="其它预案" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="危险源关联"> - <el-select class="select" v-model="form.region" placeholder="请选择"> - <el-option label="是" value="shanghai" /> - <el-option label="否" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="预案级别"> - <el-select class="select" v-model="form.region" placeholder="请选择"> - <el-option label="公司及" value="shanghai" /> - <el-option label="分厂级" value="beijing" /> - <el-option label="车间级" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="编写人"> - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="编写部门" placeholder="请选择"> - <el-tree-select - class="select" - v-model="value2" - :data="dataSelect" - :render-after-expand="false" - multiple - check-strictly - check-on-click-node - clearable - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="发布实施日期"> - <el-date-picker v-model="datetime" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急队伍" prop="telephone" @click="daiInpt" > - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="预案附件"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - :on-change="handleChange" - > - <el-button type="primary" - >点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 添加相关附件 - </div> - </template> - </el-upload> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="区域名称" prop="telephone"> - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="regionsDialog"/> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <checkTemplate ref="ShowRef"/> - <userSelections ref="userRef"/> - <RegionsDialog ref="openRef"/> -</template> -<script lang="ts"> -import { - defineComponent, - ref, - reactive -} from 'vue'; -import { - Search -} from '@element-plus/icons-vue' -import UserSelections from "/@/components/userSelections/index.vue" -import CheckTemplate from "/@/components/checkTemplate/index.vue" -import RegionsDialog from "/@/components/regionsDialog/index.vue"; -export default defineComponent({ - components: { - CheckTemplate, - UserSelections, - RegionsDialog, - }, - setup() { - const form = reactive({ - name: '', - value: '', - value2: '', - teamLeader: '', - - // data: '', - // dataSelect: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - - // 可选择树形选择框 - const value = ref() - - const data = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '生产运行部', - children: [ - { - value: '1-1-1', - label: '工艺二班', - }, - ], - }, - ], - } - ] - // 树形选择框 - const value2 = ref() - - const dataSelect = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '生产运行部', - children: [ - { - value: '1-1-1', - label: '工艺二班', - }, - ], - }, - ], - } - ] - // 应急队伍弹窗 - const ShowRef=ref() - const daiInpt=()=>{ - ShowRef.value.openDailog() - } - // 选择区域弹窗 - const openRef=ref() - const regionsDialog=()=>{ - openRef.value.openDailog() - } - // 打开编写人选择用户弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - // 日期选择 - const datetime = ref('') - return { - form, - value, - data, - value2, - dataSelect, - openUser, - userRef, - Search, - ShowRef, - daiInpt, - openRef, - datetime, - regionsDialog, - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box { - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao { - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0; - position: relative; -} -.typeS { - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor { - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns { - width: 100%; - padding: 20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); -} -.title2 { - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0; -} -.select{ - width: 100%; -} -.select ::v-deep .el-select{ - width: 100%; -} -</style> diff --git a/src/components/contingencyManagement/processForm/component/lowerPlate.vue b/src/components/contingencyManagement/processForm/component/lowerPlate.vue deleted file mode 100644 index cbb82fb..0000000 --- a/src/components/contingencyManagement/processForm/component/lowerPlate.vue +++ /dev/null @@ -1,120 +0,0 @@ -<template> - <div class="box"> - <el-form ref="formS" :model="form" :rules="rules" label-width="120px"> - <el-row> - <el-col :span="15"> - <el-form-item label="流程标题"> - <el-input v-model="form.names" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label="下级审批日期"> - <el-date-picker v-model="form.date1" type="date" placeholder="下级审批日期" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.delivery" label="是否抄送" @change="typeChang"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.delivery"> - <el-col :span="15"> - <el-form-item label="抄送给" prop="resource"> - <el-input v-model="form.resource" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.type" label="指定下一步处理者(不设置就使用默认处理人)"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.type"> - <el-col :span="15"> - <el-form-item label="指定" prop="desc"> - <el-input v-model="form.desc" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - <DailogSearchUser ref="ShowUser"></DailogSearchUser> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue' -import { Search } from '@element-plus/icons-vue'; -import type { FormInstance, FormRules } from 'element-plus' -export default defineComponent({ - components:{DailogSearchUser}, - setup() { - const formS=ref<FormInstance>() - let form = reactive({ - names: '', - region: '', - date1: '', - date2: '', - delivery: "", - type: "", - resource: '', - desc: '', - }); - const typeChang=()=>{ - console.log('tag',form) - } - const rules = reactive<FormRules>({ - resource: [ - { - type: 'array', - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ], - desc: [ - { - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ]}) - const ShowUser=ref() - const openDai =()=>{ - ShowUser.value.openDailog() - } - return { - form, - rules, - formS, - typeChang, - ShowUser, - openDai, - Search, - }; - }, -}); -</script> - -<style scoped> -.box { - margin: 30px 0 100px 0; - background-color: #fff; - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); - padding: 20px; -} -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/processForm/processForm.vue b/src/components/contingencyManagement/processForm/processForm.vue deleted file mode 100644 index 98218a0..0000000 --- a/src/components/contingencyManagement/processForm/processForm.vue +++ /dev/null @@ -1,137 +0,0 @@ -<template> - <div class="system-user-container"> - <h4 class="title">胡海涛2022-07-01 16:08:42发起了目标检查上报(检查)--检查</h4> - <div class="box"> - <el-menu - :default-active="activeIndex" - class="el-menu-demo" - background-color="#ebeef5" - text-color="#fff" - active-text-color="#fff" - mode="horizontal" - @select="handleSelect" - > - <el-menu-item index="1">表单信息</el-menu-item> - <el-menu-item index="2">流程图</el-menu-item> - </el-menu> - <div v-if="activeIndex == 1" class="navType"> - <formInformationTop v-if="false"></formInformationTop> - <formInformationTops></formInformationTops> - </div> - <div v-if="activeIndex == 2" class="navType" style="padding:20px 20px 0 20px"> - <div class="title2">流程图</div> - <div style="width:100%;height:400px"></div> - </div> - </div> - <lowerPlate></lowerPlate> - <div class="btns"> - <el-button type="primary">启动</el-button> - </div> - </div> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref,onMounted } from 'vue'; -import { useRouter } from 'vue-router'; -import formInformationTop from './component/formInformationTop.vue' -import formInformationTops from './component/formInformationTops.vue' -import lowerPlate from './component/lowerPlate.vue' -export default defineComponent({ - components:{lowerPlate,formInformationTop,formInformationTops}, - setup() { - const activeIndex = ref('1'); - const handleSelect = (key: string, keyPath: string[]) => { - // console.log(key, keyPath); - activeIndex.value = key; - }; - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - - const router=useRouter() - const Type=onMounted(()=>{ - // console.log("xxxxxxx",router) - }) - - return { - activeIndex, - handleSelect, - form, - router, - Type - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; - padding: 15px; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} - -/*弹窗底部边框线*/ -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -/*弹窗顶部边框线*/ -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -</style> diff --git a/src/components/contingencyManagement/releaseOfDrillStart/component/formInformationTop.vue b/src/components/contingencyManagement/releaseOfDrillStart/component/formInformationTop.vue deleted file mode 100644 index ef75063..0000000 --- a/src/components/contingencyManagement/releaseOfDrillStart/component/formInformationTop.vue +++ /dev/null @@ -1,144 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标指标"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="指标值"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" style="padding: 0 20px"> - <el-tab-pane label="考核指标" name="1"> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" type="index" label="序号" width="70" /> - <el-table-column align="center" prop="date" label="责任部门" /> - <el-table-column align="center" prop="name" label="考核指标" /> - <el-table-column align="center" prop="address" label="制定部门" /> - <el-table-column align="center" prop="address" label="制定日期" /> - <el-table-column align="center" label="检查值"> - <template #default> - <el-input v-model="form.name" placeholder=""></el-input> - </template> - </el-table-column> - <el-table-column align="center" prop="address" label="检查人" /> - <el-table-column align="center" prop="address" label="检查时间" /> - </el-table> - <div class="tiao"> - <div class="typeS">审批</div> - </div> - <el-row style="padding:20px 0"> - <el-col :span="6" style="text-align:right">一级审批:</el-col> - <el-col :span="18">同意</el-col> - </el-row> - <el-row style="padding:0 0 20px 0"> - <el-col :span="6"></el-col> - <el-col :span="18"><span class="logoColor">同意</span><span style="margin-right: 8px;">杜建喜</span><span>2021-05-24 04:47:42</span></el-col> - </el-row> - </el-tab-pane> - </el-tabs> -</template> -<script lang="ts"> -import { defineComponent,ref,reactive } from 'vue' - -export default defineComponent({ - setup() { - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const activeName = ref('1'); - return{ - form, - tableData, - activeName - } - }, -}) -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0 ; -} -</style> diff --git a/src/components/contingencyManagement/releaseOfDrillStart/component/formInformationTops.vue b/src/components/contingencyManagement/releaseOfDrillStart/component/formInformationTops.vue deleted file mode 100644 index 8a1f2a5..0000000 --- a/src/components/contingencyManagement/releaseOfDrillStart/component/formInformationTops.vue +++ /dev/null @@ -1,440 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="12"> - <el-form-item label="演练名称"> - <el-input v-model="form.name" placeholder="请填写预案名称" disabled></el-input> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="演练地点"> - <el-input v-model="form.teamName" placeholder="请填写演练地点" disabled></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="主办部门"> - <el-tree-select - v-model="form.responsibleDepartment" - :data="data" class="w100" - placeholder="请选择" - disabled - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="演练方式" prop="teamLevel"> - <el-select v-model="form.teamLevel" class="w100" placeholder="请选择" disabled> - <el-option label="综合" value="admin"></el-option> - <el-option label="桌面" value="common3"></el-option> - <el-option label="专项" value="common2"></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="应急预案" prop="telephone" > - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - disabled - > - <template #append> - <el-button :icon="Search" @click="daiInpt" disabled/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="演练级别" prop="teamPhone"> - <el-select v-model="form.teamLevel" class="w100" placeholder="请选择" disabled> - <el-option label="公司级" value="admin"></el-option> - <el-option label="分厂级" value="common"></el-option> - <el-option label="车间级" value="common1"></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="计划定制日期" prop="teamPhone"> - <el-date-picker v-model="datetime" type="datetime" placeholder="选择日期时间" disabled style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="计划演练日期" prop="teamPhone"> - <el-date-picker v-model="drillDate" type="datetime" placeholder="选择日期时间" disabled style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="修改时间" prop="teamPhone"> - <el-date-picker v-model="editDate" class="w100" type="datetime" placeholder="选择日期时间" disabled style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划定制人" prop="teamPhone"> - <el-input v-model="form.planCustomizer" disabled placeholder="请填写演练地点"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="制定部门" prop="telephone"> - <el-tree-select - v-model="form.responsibleDepartment" - :data="data" class="w100" - placeholder="请选择" - disabled - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练人员" prop="telephone" > - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - disabled - > - <template #append> - <el-button :icon="Search" @click="openUser" disabled/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="演练目的" prop="telephone"> - <el-input - v-model="form.teamLeader" - placeholder="请填写演练目的" - class="input-with-select textarea" - type="textarea" - disabled - > - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练负责人" prop="telephone" > - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - disabled - > - <template #append> - <el-button :icon="Search" @click="openUser" disabled/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="保险措施" prop="teamName"> - <el-input v-model="form.teamName" placeholder="请填写演练名称" disabled></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练经费" prop="teamName"> - <el-input v-model="form.teamName" placeholder="请填写演练名称" disabled></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="备注信息" prop="telephone"> - <el-input - v-model="form.teamLeader" - placeholder="请填写备注信息" - class="input-with-select textarea" - type="textarea" - disabled - > - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" style="margin-bottom: 0!important;"> - <el-form-item label="预案附件"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - :on-change="handleChange" - disabled - > - <el-button type="primary" disabled - >点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 添加相关附件 - </div> - </template> - </el-upload> - </el-form-item> - </el-col> - </el-row> - </el-form> - <checkTemplate ref="ShowRef"/> - <userSelections ref="userRef"/> - <RegionsDialog ref="openRef"/> -</template> -<script lang="ts"> -import { - defineComponent, - ref, - reactive -} from 'vue'; -import { - Search -} from '@element-plus/icons-vue' -import type { - UploadUserFile, - // FormRules, -} from 'element-plus' -import UserSelections from "/@/components/userSelections/index.vue" -import CheckTemplate from "/@/components/checkTemplate/index.vue" -import RegionsDialog from "/@/components/regionsDialog/index.vue"; -export default defineComponent({ - components: { - CheckTemplate, - UserSelections, - RegionsDialog, - }, - setup() { - const form = reactive({ - name: '', - teamName: '', - responsibleDepartment: '', - teamLevel: '', - teamLeader: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - // 上传附件 - const fileList = ref<UploadUserFile[]>([]) - // 可选择树 - const treeSelect = ref() - const tree = [ - { - value: '1', - label: 'Level one 1', - children: [ - { - value: '1-1', - label: 'Level two 1-1', - children: [ - { - value: '1-1-1', - label: 'Level three 1-1-1', - }, - ], - }, - ], - }, - { - value: '2', - label: 'Level one 2', - children: [ - { - value: '2-1', - label: 'Level two 2-1', - children: [ - { - value: '2-1-1', - label: 'Level three 2-1-1', - }, - ], - }, - { - value: '2-2', - label: 'Level two 2-2', - children: [ - { - value: '2-2-1', - label: 'Level three 2-2-1', - }, - ], - }, - ], - }, - { - value: '3', - label: 'Level one 3', - children: [ - { - value: '3-1', - label: 'Level two 3-1', - children: [ - { - value: '3-1-1', - label: 'Level three 3-1-1', - }, - ], - }, - { - value: '3-2', - label: 'Level two 3-2', - children: [ - { - value: '3-2-1', - label: 'Level three 3-2-1', - }, - ], - }, - ], - }, - ] - //定义树形下拉框 - const responsibleDepartment = ref() - const data = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '经营班子', - children: [], - }, - ], - }, - { - value: '2', - label: '生产运行部', - children: [ - { - value: '2-1', - label: '灌装一班', - children: [] - }, - { - value: '2-2', - label: '工艺四班', - children: [], - }, - ], - }, - { - value: '3', - label: '设备部', - children: [ - { - value: '3-1', - label: '仪表班', - children: [], - }, - { - value: '3-2', - label: '机修班', - children: [], - }, - ], - }, - ] - // 计划定制日期 - const datetime = ref('') - // 计划演练日期 - const drillDate = ref('') - // 修改时间 - const editDate = ref('') - // 应急队伍弹窗 - const ShowRef=ref() - const daiInpt=()=>{ - ShowRef.value.openDailog() - } - // 选择区域弹窗 - const openRef=ref() - const regionsDialog=()=>{ - openRef.value.openDailog() - } - // 打开编写人选择用户弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - return { - form, - data, - treeSelect, - tree, - drillDate, - editDate, - openUser, - userRef, - Search, - ShowRef, - daiInpt, - responsibleDepartment, - openRef, - datetime, - regionsDialog, - fileList, - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box { - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao { - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0; - position: relative; -} -.typeS { - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor { - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns { - width: 100%; - padding: 20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); -} -.title2 { - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0; -} -.select{ - width: 100%; -} -.select ::v-deep .el-select{ - width: 100%; -} -</style> diff --git a/src/components/contingencyManagement/releaseOfDrillStart/component/lowerPlate.vue b/src/components/contingencyManagement/releaseOfDrillStart/component/lowerPlate.vue deleted file mode 100644 index cbb82fb..0000000 --- a/src/components/contingencyManagement/releaseOfDrillStart/component/lowerPlate.vue +++ /dev/null @@ -1,120 +0,0 @@ -<template> - <div class="box"> - <el-form ref="formS" :model="form" :rules="rules" label-width="120px"> - <el-row> - <el-col :span="15"> - <el-form-item label="流程标题"> - <el-input v-model="form.names" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label="下级审批日期"> - <el-date-picker v-model="form.date1" type="date" placeholder="下级审批日期" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.delivery" label="是否抄送" @change="typeChang"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.delivery"> - <el-col :span="15"> - <el-form-item label="抄送给" prop="resource"> - <el-input v-model="form.resource" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.type" label="指定下一步处理者(不设置就使用默认处理人)"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.type"> - <el-col :span="15"> - <el-form-item label="指定" prop="desc"> - <el-input v-model="form.desc" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - <DailogSearchUser ref="ShowUser"></DailogSearchUser> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue' -import { Search } from '@element-plus/icons-vue'; -import type { FormInstance, FormRules } from 'element-plus' -export default defineComponent({ - components:{DailogSearchUser}, - setup() { - const formS=ref<FormInstance>() - let form = reactive({ - names: '', - region: '', - date1: '', - date2: '', - delivery: "", - type: "", - resource: '', - desc: '', - }); - const typeChang=()=>{ - console.log('tag',form) - } - const rules = reactive<FormRules>({ - resource: [ - { - type: 'array', - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ], - desc: [ - { - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ]}) - const ShowUser=ref() - const openDai =()=>{ - ShowUser.value.openDailog() - } - return { - form, - rules, - formS, - typeChang, - ShowUser, - openDai, - Search, - }; - }, -}); -</script> - -<style scoped> -.box { - margin: 30px 0 100px 0; - background-color: #fff; - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); - padding: 20px; -} -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/components/contingencyManagement/releaseOfDrillStart/releaseOfDrillStart.vue b/src/components/contingencyManagement/releaseOfDrillStart/releaseOfDrillStart.vue deleted file mode 100644 index 98218a0..0000000 --- a/src/components/contingencyManagement/releaseOfDrillStart/releaseOfDrillStart.vue +++ /dev/null @@ -1,137 +0,0 @@ -<template> - <div class="system-user-container"> - <h4 class="title">胡海涛2022-07-01 16:08:42发起了目标检查上报(检查)--检查</h4> - <div class="box"> - <el-menu - :default-active="activeIndex" - class="el-menu-demo" - background-color="#ebeef5" - text-color="#fff" - active-text-color="#fff" - mode="horizontal" - @select="handleSelect" - > - <el-menu-item index="1">表单信息</el-menu-item> - <el-menu-item index="2">流程图</el-menu-item> - </el-menu> - <div v-if="activeIndex == 1" class="navType"> - <formInformationTop v-if="false"></formInformationTop> - <formInformationTops></formInformationTops> - </div> - <div v-if="activeIndex == 2" class="navType" style="padding:20px 20px 0 20px"> - <div class="title2">流程图</div> - <div style="width:100%;height:400px"></div> - </div> - </div> - <lowerPlate></lowerPlate> - <div class="btns"> - <el-button type="primary">启动</el-button> - </div> - </div> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref,onMounted } from 'vue'; -import { useRouter } from 'vue-router'; -import formInformationTop from './component/formInformationTop.vue' -import formInformationTops from './component/formInformationTops.vue' -import lowerPlate from './component/lowerPlate.vue' -export default defineComponent({ - components:{lowerPlate,formInformationTop,formInformationTops}, - setup() { - const activeIndex = ref('1'); - const handleSelect = (key: string, keyPath: string[]) => { - // console.log(key, keyPath); - activeIndex.value = key; - }; - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - - const router=useRouter() - const Type=onMounted(()=>{ - // console.log("xxxxxxx",router) - }) - - return { - activeIndex, - handleSelect, - form, - router, - Type - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; - padding: 15px; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} - -/*弹窗底部边框线*/ -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -/*弹窗顶部边框线*/ -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -</style> diff --git a/src/components/editor/index.vue b/src/components/editor/index.vue index 577e98e..78e5726 100644 --- a/src/components/editor/index.vue +++ b/src/components/editor/index.vue @@ -1,8 +1,8 @@ <template> - <div class="editor-container"> - <div ref="editorToolbar"></div> - <div ref="editorContent" :style="{ height }"></div> - </div> + <div class="editor-container"> + <div ref="editorToolbar"></div> + <div ref="editorContent" :style="{ height }"></div> + </div> </template> <script lang="ts"> @@ -13,103 +13,103 @@ // 定义接口来定义对象的类型 interface WangeditorState { - editorToolbar: HTMLDivElement | null; - editorContent: HTMLDivElement | null; - editor: any; + editorToolbar: HTMLDivElement | null; + editorContent: HTMLDivElement | null; + editor: any; } export default defineComponent({ - name: 'wngEditor', - props: { - // 节点 id - id: { - type: String, - default: () => 'wangeditor' - }, - // 是否禁用 - isDisable: { - type: Boolean, - default: () => false - }, - // 内容框默认 placeholder - placeholder: { - type: String, - default: () => '请输入内容' - }, - // 双向绑定:双向绑定值,字段名为固定,改了之后将不生效 - // 参考:https://v3.cn.vuejs.org/guide/migration/v-model.html#%E8%BF%81%E7%A7%BB%E7%AD%96%E7%95%A5 - modelValue: String, - // https://www.wangeditor.com/v5/getting-started.html#mode-%E6%A8%A1%E5%BC%8F - // 模式,可选 <default|simple>,默认 default - mode: { - type: String, - default: () => 'default' - }, - // 高度 - height: { - type: String, - default: () => '310px' - } - }, - setup(props, { emit }) { - const state = reactive<WangeditorState>({ - editorToolbar: null, - editor: null, - editorContent: null - }); - // 富文本配置 - const wangeditorConfig = () => { - const editorConfig: Partial<IEditorConfig> = { MENU_CONF: {} }; - props.isDisable ? (editorConfig.readOnly = true) : (editorConfig.readOnly = false); - editorConfig.placeholder = props.placeholder; - editorConfig.onChange = (editor: IDomEditor) => { - // console.log('content', editor.children); - // console.log('html', editor.getHtml()); - emit('update:modelValue', editor.getHtml()); - }; - (<any>editorConfig).MENU_CONF['uploadImage'] = { - base64LimitSize: 10 * 1024 * 1024 - }; - return editorConfig; - }; - // - const toolbarConfig = () => { - const toolbarConfig: Partial<IToolbarConfig> = {}; - toolbarConfig.toolbarKeys = toolbarKeys; - return toolbarConfig; - }; - // 初始化富文本 - // https://www.wangeditor.com/ - const initWangeditor = () => { - state.editor = createEditor({ - html: props.modelValue, - selector: state.editorContent!, - config: wangeditorConfig(), - mode: props.mode - }); - createToolbar({ - editor: state.editor, - selector: state.editorToolbar!, - mode: props.mode, - config: toolbarConfig() - }); - }; - // 页面加载时 - onMounted(() => { - initWangeditor(); - }); - // 监听双向绑定值的改变 - // https://gitee.com/lyt-top/vue-next-admin/issues/I4LM7I - watch( - () => props.modelValue, - (value) => { - state.editor.clear(); - state.editor.dangerouslyInsertHtml(value); - } - ); - return { - ...toRefs(state) - }; - } + name: 'wngEditor', + props: { + // 节点 id + id: { + type: String, + default: () => 'wangeditor', + }, + // 是否禁用 + isDisable: { + type: Boolean, + default: () => false, + }, + // 内容框默认 placeholder + placeholder: { + type: String, + default: () => '请输入内容', + }, + // 双向绑定:双向绑定值,字段名为固定,改了之后将不生效 + // 参考:https://v3.cn.vuejs.org/guide/migration/v-model.html#%E8%BF%81%E7%A7%BB%E7%AD%96%E7%95%A5 + modelValue: String, + // https://www.wangeditor.com/v5/getting-started.html#mode-%E6%A8%A1%E5%BC%8F + // 模式,可选 <default|simple>,默认 default + mode: { + type: String, + default: () => 'default', + }, + // 高度 + height: { + type: String, + default: () => '310px', + }, + }, + setup(props, { emit }) { + const state = reactive<WangeditorState>({ + editorToolbar: null, + editor: null, + editorContent: null, + }); + // 富文本配置 + const wangeditorConfig = () => { + const editorConfig: Partial<IEditorConfig> = { MENU_CONF: {} }; + props.isDisable ? (editorConfig.readOnly = true) : (editorConfig.readOnly = false); + editorConfig.placeholder = props.placeholder; + editorConfig.onChange = (editor: IDomEditor) => { + // console.log('content', editor.children); + // console.log('html', editor.getHtml()); + emit('update:modelValue', editor.getHtml()); + }; + (<any>editorConfig).MENU_CONF['uploadImage'] = { + base64LimitSize: 10 * 1024 * 1024, + }; + return editorConfig; + }; + // + const toolbarConfig = () => { + const toolbarConfig: Partial<IToolbarConfig> = {}; + toolbarConfig.toolbarKeys = toolbarKeys; + return toolbarConfig; + }; + // 初始化富文本 + // https://www.wangeditor.com/ + const initWangeditor = () => { + state.editor = createEditor({ + html: props.modelValue, + selector: state.editorContent!, + config: wangeditorConfig(), + mode: props.mode, + }); + createToolbar({ + editor: state.editor, + selector: state.editorToolbar!, + mode: props.mode, + config: toolbarConfig(), + }); + }; + // 页面加载时 + onMounted(() => { + initWangeditor(); + }); + // 监听双向绑定值的改变 + // https://gitee.com/lyt-top/vue-next-admin/issues/I4LM7I + watch( + () => props.modelValue, + (value) => { + state.editor.clear(); + state.editor.dangerouslyInsertHtml(value); + } + ); + return { + ...toRefs(state), + }; + }, }); </script> diff --git a/src/components/equipmentDailog/Dailog.vue b/src/components/equipmentDailog/Dailog.vue index c1bb4d8..9ed675f 100644 --- a/src/components/equipmentDailog/Dailog.vue +++ b/src/components/equipmentDailog/Dailog.vue @@ -654,7 +654,6 @@ }); } }); - formEl.resetFields(); form.value.takecareDetailList = []; form.value.testDetailList = []; form.value.repaireDetailList = []; diff --git a/src/components/facilityManagement/EquipmentStatistics/index.vue b/src/components/facilityManagement/EquipmentStatistics/index.vue deleted file mode 100644 index 07a359f..0000000 --- a/src/components/facilityManagement/EquipmentStatistics/index.vue +++ /dev/null @@ -1,91 +0,0 @@ -<template> - <div class="box"> - <div class="title">设备设施统计</div> - <div ref="main" style="width: 100%; height: 400px"></div> - </div> -</template> -<script lang="ts"> -import { defineComponent, onMounted, ref } from 'vue'; -import * as echarts from 'echarts'; -import { ElMessage } from 'element-plus'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -export default defineComponent({ - setup() { - const listApi = () => { - facilityManagementApi() - .getequipmentInfoStatistics() - .then((res) => { - if (res.data.code == 200) { - let arr=[] - arr=res.data.data - let date=[] - for (let i = 0; i < arr.length; i++) { - date.push(arr[i].count) - } - init(date); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - onMounted(() => { - listApi(); - }); - const main = ref(); - const init = (data:any) => { - var myChart = echarts.init(main.value); - var option = { - tooltip: {}, - grid: { - left: '3%', - right: '4%', - bottom: '5%', - containLabel: true, - }, - xAxis: { - type: 'category', - data: ['在用数', '报废数', '维修数', '停用数'], - }, - yAxis: { - type: 'value', - name: '数量', - nameTextStyle: { - color: '#aaa', - nameLocation: 'start', - }, - }, - color: ['#6394f9'], - series: [ - { - data: data, - type: 'bar', - }, - ], - }; - - myChart.setOption(option); - }; - return { - init, - onMounted, - main, - listApi, - }; - }, -}); -</script> -<style scoped> -.box { - background-color: #fff; - box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%); -} -.title { - font-size: 16px; - border-bottom: 1px solid #eee; - padding: 20px; -} -</style> diff --git a/src/components/facilityManagement/InstrumentationInformation/index.vue b/src/components/facilityManagement/InstrumentationInformation/index.vue deleted file mode 100644 index d4e4308..0000000 --- a/src/components/facilityManagement/InstrumentationInformation/index.vue +++ /dev/null @@ -1,376 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.qName" placeholder="装置设施名称" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row> - <el-col :span="4"> - <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> - <div class="tree"> - <!-- <el-tree ref="treeRef" class="filter-tree" :data="data" :props="props" :filter-node-method="filterNode" /> --> - <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" :filter-node-method="filterNode" /> - </div> - </el-col> - <el-col :span="20"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="openUp"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClicks" style="margin: 0 5%"> - <el-tab-pane label="设备保养" name="first"> - <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> - <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonId" align="center" label="保养负责人" sortable /> - <el-table-column property="takecareDate" align="center" :formatter="timeDate" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentId" align="center" label="保养负责人单位" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备检查" name="second" - ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonId" align="center" label="检查人" sortable /> - <el-table-column property="createTime" align="center" :formatter="timeDate" label="检查日期" sortable /> - <el-table-column property="name" align="center" label="检查人部门" sortable /> - <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> - <el-table-column property="name" align="center" label="检查状态" sortable /> </el-table - ></el-tab-pane> - <el-tab-pane label="设备检测" name="third"> - <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonId" align="center" label="检测人" sortable /> - <el-table-column property="testDate" align="center" :formatter="timeDate" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentId" align="center" label="检测人单位" sortable /> - <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column property="testResult" align="center" label="检测结果" sortable /> - <el-table-column property="testStatus" align="center" label="检测状态" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备维修" name="fourth"> - <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> - <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column property="repairStatus" align="center" label="维修状态" sortable /> - <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonId" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentId" align="center" label="维修负责人单位" sortable /> - <el-table-column property="repairStartDate" align="center" :formatter="timeDate" label="维修开始日期" sortable /> - <el-table-column property="repairEndDate" align="center" :formatter="timeDate" label="维修结束日期" sortable /> - </el-table> - </el-tab-pane> - </el-tabs> - </template> - </el-table-column> - <el-table-column property="qName" label="装置设施名称" align="center" sortable /> - <el-table-column property="positionNum" align="center" label="装置设施位号" sortable /> - <el-table-column property="qUsage" align="center" label="装置设施用途" sortable /> - <el-table-column property="model" label="装置设施型号" align="center" sortable show-overflow-tooltip /> - <el-table-column property="equipmentTypeId" label="类型/类别外键" align="center" sortable show-overflow-tooltip /> - <el-table-column property="setPart" label="设施部位" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </el-col> - </el-row> - <!-- <updata ref="Show"></updata> --> - <Dailog ref="openAdd" @navAddorUpdata="onAddorUpdata"></Dailog> - </div> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive, watch, onMounted } from 'vue'; -import { timeDate } from '/@/assets/index.ts'; -import updata from '/@/components/updata/updata.vue'; -import Dailog from '/@/components/equipmentDailog/Dailog.vue'; -import { ElTree, TabsPaneContext, ElMessage, ElMessageBox } from 'element-plus'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import { EditPen, View, Plus, Delete, Download, Refresh, Upload } from '@element-plus/icons-vue'; -interface Tree { - label: string; - children?: Tree[]; -} -export default defineComponent({ - components: { updata, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////名称 - positionNum: '', ////位号 - infoType: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.positionNum = ''; - listApi(); - }; - const listApi = () => { - facilityManagementApi() - .getequipmentInfoList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDailog(title, false, id, 0); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - const filterText = ref(''); - const treeRef = ref<InstanceType<typeof ElTree>>(); - // 树形 - const listApiTree = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const props = { - label: 'typeName', - children: 'childList', - value: 'id', - }; - watch(filterText, (val) => { - treeRef.value!.filter(val); - }); - - const filterNode = (value: string, data: Tree) => { - if (!value) return true; - return data.typeName.includes(value); - }; - const handleNodeClick = (data: Tree) => { - ruleForm.searchParams.positionNum = data.id; - listApi(); - }; - const data = ref([]); - onMounted(() => { - listApiTree(); - }); - const handleClicks = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - - const activeName = ref('first'); - // const Show=ref() - // const openUp=()=>{ - // Show.value.openDialog() - // } - return { - handleNodeClick, - ruleForm, - timeDate, - resetForm, - listApi, - onAddorUpdata, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - listApiTree, - handleClicks, - filterText, - treeRef, - props, - filterNode, - data, - openAdd, - openD, - activeName, - Plus, - EditPen, - Delete, - Download, - Refresh, - View, - Upload, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.tree { - height: 750px; - background-color: #fff; - overflow: hidden; - overflow-y: auto; -} -.btns { - padding: 10px 0px 10px 10px; - display: flex; - justify-content: space-between; - background-color: #fff; -} -</style> diff --git a/src/components/facilityManagement/ProductionEquipment/index.vue b/src/components/facilityManagement/ProductionEquipment/index.vue deleted file mode 100644 index ab8551e..0000000 --- a/src/components/facilityManagement/ProductionEquipment/index.vue +++ /dev/null @@ -1,375 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.qName" placeholder="装置设施名称" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row> - <el-col :span="4"> - <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> - <div class="tree"> - - <!-- <el-tree ref="treeRef" class="filter-tree" :data="data" :props="props" :filter-node-method="filterNode" /> --> - <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" :filter-node-method="filterNode" /> - </div> - </el-col> - <el-col :span="20"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="openUp"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClicks" style="margin: 0 5%"> - <el-tab-pane label="设备保养" name="first"> - <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> - <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonId" align="center" label="保养负责人" sortable /> - <el-table-column property="takecareDate" align="center" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentId" align="center" label="保养负责人单位" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备检查" name="second" - ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonId" align="center" label="检查人" sortable /> - <el-table-column property="createTime" align="center" label="检查日期" sortable /> - <el-table-column property="name" align="center" label="检查人部门" sortable /> - <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> - <el-table-column property="name" align="center" label="检查状态" sortable /> </el-table - ></el-tab-pane> - <el-tab-pane label="设备检测" name="third"> - <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonId" align="center" label="检测人" sortable /> - <el-table-column property="testDate" align="center" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentId" align="center" label="检测人单位" sortable /> - <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column property="testResult" align="center" label="检测结果" sortable /> - <el-table-column property="testStatus" align="center" label="检测状态" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备维修" name="fourth"> - <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> - <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column property="repairStatus" align="center" label="维修状态" sortable /> - <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonId" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentId" align="center" label="维修负责人单位" sortable /> - <el-table-column property="repairStartDate" align="center" label="维修开始日期" sortable /> - <el-table-column property="repairEndDate" align="center" label="维修结束日期" sortable /> - </el-table> - </el-tab-pane> - </el-tabs> - </template> - </el-table-column> - <el-table-column property="qName" label="装置设施名称" align="center" sortable /> - <el-table-column property="positionNum" align="center" label="装置设施位号" sortable /> - <el-table-column property="qUsage" align="center" label="装置设施用途" sortable /> - <el-table-column property="model" label="装置设施型号" align="center" sortable show-overflow-tooltip /> - <el-table-column property="equipmentTypeId" label="类型/类别外键" align="center" sortable show-overflow-tooltip /> - <el-table-column property="setPart" label="设施部位" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </el-col> - </el-row> - <!-- <updata ref="Show"></updata> --> - <Dailog ref="openAdd" @navAddorUpdata="onAddorUpdata"></Dailog> - </div> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive, watch, onMounted } from 'vue'; -import updata from '/@/components/updata/updata.vue'; -import Dailog from '/@/components/equipmentDailog/Dailog.vue'; -import { ElTree, TabsPaneContext, ElMessage, ElMessageBox } from 'element-plus'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import { EditPen, View, Plus, Delete, Download, Refresh, Upload } from '@element-plus/icons-vue'; -interface Tree { - label: string; - children?: Tree[]; -} -export default defineComponent({ - components: { updata, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////名称 - positionNum: '', ////位号 - infoType: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.positionNum = ''; - listApi(); - }; - const listApi = () => { - facilityManagementApi() - .getequipmentInfoList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDailog(title,true,id,1); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - const filterText = ref(''); - const treeRef = ref<InstanceType<typeof ElTree>>(); - // 树形 - const listApiTree = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - data.value= res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const props = { - label: 'typeName', - children: 'childList', - value: 'id', - } - watch(filterText, (val) => { - treeRef.value!.filter(val); - }); - - const filterNode = (value: string, data: Tree) => { - if (!value) return true; - return data.typeName.includes(value); - }; - const handleNodeClick=(data: Tree)=>{ - ruleForm.searchParams.positionNum=data.id - listApi(); - } - const data=ref([]) - onMounted(() => { - listApiTree(); - }); - const handleClicks = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - - const activeName = ref('first'); - // const Show=ref() - // const openUp=()=>{ - // Show.value.openDialog() - // } - return { - handleNodeClick, - ruleForm, - resetForm, - listApi, - onAddorUpdata, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - listApiTree, - handleClicks, - filterText, - treeRef, - props, - filterNode, - data, - openAdd, - openD, - activeName, - Plus, - EditPen, - Delete, - Download, - Refresh, - View, - Upload, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.tree { - height: 750px; - background-color: #fff; - overflow: hidden; - overflow-y: auto; -} -.btns { - padding: 10px 0px 10px 10px; - display: flex; - justify-content: space-between; - background-color: #fff; -} -</style> diff --git a/src/components/facilityManagement/deviceType/component/Dailog.vue b/src/components/facilityManagement/deviceType/component/Dailog.vue deleted file mode 100644 index 576135f..0000000 --- a/src/components/facilityManagement/deviceType/component/Dailog.vue +++ /dev/null @@ -1,190 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :fullscreen="full" @close="resetForm(ruleFormRef)" :title="titles" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" ref="ruleFormRef" :rules="rules" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="是否为设备内容" size="default" prop="isContent"> - <el-select v-model="form.isContent" placeholder="请选择" style="width: 100%"> - <el-option label="是" value="1" /> - <el-option label="否" value="2" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="父级编号" size="default" prop="parentId"> - <el-tree-select clearable check-strictly="true" v-model="form.parentId" :data="data" :props="propst" class="w100" placeholder="请选择" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="类别名称" size="default" prop="typeName"> - <el-input v-model="form.typeName" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="排列序列" size="default" prop="sortNum"> - <el-input v-model.number="form.sortNum" /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)">关闭</el-button> - <el-button type="primary" @click="submitForm(ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import type { FormInstance, FormRules } from 'element-plus'; -import { FullScreen } from '@element-plus/icons-vue'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import { ElMessage } from 'element-plus'; -import { type } from 'os'; -export default defineComponent({ - setup(prpos, { emit }) { - const dialogVisible = ref(false); - const form = ref({ - isContent: '', ////是否为设备内容 1:是 2:否 - typeName: '', ////类别名称 - parentId: "", ////父级ID,如果没有父级,为0 - isCheck: 0, ////是否检测 1:是 2:否 - isVisit: 0, ////是否巡检 1:是 2:否 - sortNum: '', //排列序列 - id: '', //设备类型ID ,更新时必填 - }); - const titles = ref(); - const disabled = ref(false); - const openDailog = (title: string, id: number) => { - listApi(); - dialogVisible.value = true; - titles.value = `${title}设备设施类型管理`; - if (title == '查看') { - disabled.value = true; - detail(id); - } else if (title == '修改') { - detail(id); - } else if (title == '添加') { - form.value.parentId=id - } - }; - const detail = (id: number) => { - facilityManagementApi() - .getequipmentTypeMngDetail(id) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - // 列表 - const listApi = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const data = ref([]); - const propst = { - label: 'typeName', - children: 'childList', - value: 'id', - }; - const ruleFormRef = ref<FormInstance>(); - const rules = reactive<FormRules>({ - isContent: [{ required: true, message: '是否为设备内容不能为空', trigger: 'change' }], - parentId: [], - typeName: [{ required: true, message: '类别名称不能为空', trigger: 'change' }], - sortNum: [ - { required: true, message: '排列序列不能为空', trigger: 'change' }, - { type: 'number', message: '请输入数字!', trigger: 'change' }, - ], - }); - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - facilityManagementApi() - .getequipmentTypeMngAddOrUpdate(form.value) - .then((res) => { - if (res.data.code == 200) { - dialogVisible.value = false; - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('onAdd'); - formEl.resetFields(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - } else { - console.log('error submit!', fields); - } - }); - }; - const resetForm = (formEl: FormInstance | undefined) => { - if (!formEl) return; - formEl.resetFields(); - dialogVisible.value = false; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - detail, - rules, - ruleFormRef, - listApi, - propst, - submitForm, - resetForm, - data, - disabled, - dialogVisible, - form, - titles, - openDailog, - full, - toggleFullscreen, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> diff --git a/src/components/facilityManagement/deviceType/index.vue b/src/components/facilityManagement/deviceType/index.vue deleted file mode 100644 index 11958ec..0000000 --- a/src/components/facilityManagement/deviceType/index.vue +++ /dev/null @@ -1,130 +0,0 @@ -<template> - <div class="box"> - <el-button type="primary" :icon="Plus" @click="openD('新建', 0)" size="default">新建</el-button> - <el-table :data="tableData" style="width: 100%" row-key="id" :tree-props="propse"> - <el-table-column align="center" label="是否为设备内容"> - <template #default="scope"> - <span v-if="scope.row.isContent == 1">是</span> - <span v-if="scope.row.isContent == 2">否</span> - </template> - </el-table-column> - <el-table-column align="center" label="巡检"> - <template #default="scope"> - <span v-if="scope.row.isVisit == 0">-</span> - <span v-if="scope.row.isVisit == 1">是</span> - <span v-if="scope.row.isVisit == 2">否</span> - </template> - </el-table-column> - <el-table-column align="center" label="检测"> - <template #default="scope"> - <span v-if="scope.row.isCheck == 0">-</span> - <span v-if="scope.row.isCheck == 1">是</span> - <span v-if="scope.row.isCheck == 2">否</span> - </template> - </el-table-column> - <el-table-column align="center" prop="typeName" label="类别名称" /> - <el-table-column align="center" label="操作"> - <template #default="scope"> - <el-button type="primary" link :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button type="primary" link :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button type="primary" link :icon="Delete" @click="Deletes(scope.row.id)">删除</el-button> - <el-button type="primary" link :icon="CirclePlus" @click="openD('添加', scope.row.id)">添加下级设备设施类型管理</el-button> - </template> - </el-table-column> - </el-table> - <Dailog ref="Show" @onAdd="add"></Dailog> - </div> -</template> -<script lang="ts"> -import { defineComponent, onMounted, ref } from 'vue'; -import { Plus, View, EditPen, Delete, CirclePlus } from '@element-plus/icons-vue'; -import Dailog from './component/Dailog.vue'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import { ElMessage,ElMessageBox } from 'element-plus'; -export default defineComponent({ - components: { Dailog }, - setup() { - // 列表 - const listApi = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - onMounted(() => { - listApi(); - }); - // 删除 - const Deletes = (id: number) => { - let arr = []; - arr.push(id); - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentTypeMngDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - const add = () => { - listApi(); - }; - const tableData = ref(); - const propse = { - children: 'childList', - }; - const Show = ref(); - const openD = (title: string, id: number) => { - Show.value.openDailog(title, id); - }; - return { - propse, - add, - tableData, - Show, - Deletes, - openD, - listApi, - Plus, - View, - EditPen, - CirclePlus, - Delete, - }; - }, -}); -</script> -<style scoped> -.box { - padding: 20px; - background-color: #fff; -} -</style> diff --git a/src/components/facilityManagement/keyEquipment/index.vue b/src/components/facilityManagement/keyEquipment/index.vue deleted file mode 100644 index 7e987d6..0000000 --- a/src/components/facilityManagement/keyEquipment/index.vue +++ /dev/null @@ -1,384 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.qName" placeholder="装置/部位名称" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row> - <el-col :span="4"> - <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> - <div class="tree"> - <!-- <el-input v-model="filterText" style="height: 30px" placeholder="Filter keyword" />--> - <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" :filter-node-method="filterNode" /> - </div> - </el-col> - <el-col :span="20"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="openUp"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick" style="margin: 0 5%"> - <el-tab-pane label="设备保养" name="first"> - <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> - <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonId" align="center" label="保养负责人" sortable /> - <el-table-column property="takecareDate" align="center" :formatter="timeDate" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentId" align="center" label="保养负责人单位" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备检查" name="second" - ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonId" align="center" label="检查人" sortable /> - <el-table-column property="createTime" align="center" :formatter="timeDate" label="检查日期" sortable /> - <el-table-column property="name" align="center" label="检查人部门" sortable /> - <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> - <el-table-column property="name" align="center" label="检查状态" sortable /> </el-table - ></el-tab-pane> - <el-tab-pane label="设备检测" name="third"> - <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonId" align="center" label="检测人" sortable /> - <el-table-column property="testDate" align="center" :formatter="timeDate" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentId" align="center" label="检测人单位" sortable /> - <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column property="testResult" align="center" label="检测结果" sortable /> - <el-table-column property="testStatus" align="center" label="检测状态" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备维修" name="fourth"> - <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> - <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column property="repairStatus" align="center" label="维修状态" sortable /> - <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonId" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentId" align="center" label="维修负责人单位" sortable /> - <el-table-column property="repairStartDate" align="center" :formatter="timeDate" label="维修开始日期" sortable /> - <el-table-column property="repairEndDate" align="center" :formatter="timeDate" label="维修结束日期" sortable /> - </el-table> - </el-tab-pane> - </el-tabs> - </template> - </el-table-column> - <el-table-column property="equipmentTypeId" align="center" label="类型/类别外键" sortable /> - <el-table-column property="qName" align="center" label="装置/部位名称" sortable /> - <el-table-column property="departmentId" label="所属部门" align="center" sortable show-overflow-tooltip /> - <el-table-column property="position" label="具体位置" align="center" sortable show-overflow-tooltip /> - <el-table-column property="leadingPersonName" label="负责人姓名" align="center" sortable show-overflow-tooltip /> - <el-table-column property="connectPersonId" label="装置部位分类" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </el-col> - </el-row> - <!-- <updata ref="Show"></updata>--> - <DailogS ref="ShowD" @navAddorUpdata="onAddorUpdata"></DailogS> - </div> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive, watch, onMounted } from 'vue'; -// import updata from '/@/components/updata/updata.vue' -import DailogS from '/@/components/equipmentDailog/DailogS.vue'; -import { ElTree, TabsPaneContext, ElMessage, ElMessageBox } from 'element-plus'; -import { EditPen, Plus, Delete, Download, Refresh, Upload, View } from '@element-plus/icons-vue'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import {timeDate} from '/@/assets/index.ts' -interface Tree { - label: string; - children?: Tree[]; -} -export default defineComponent({ - components: { - // updata, - DailogS, - }, - setup() { - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - equipmentTypeId: '', ////类型/类别外键 - qName: '', ////装置/部位名称 - // departmentId: '',////所属部门 - // position: '', ////具体位置 - // leadingPersonName: '', ////负责人姓名 - // connectPersonId: '',////装置部位分类 - infoTpe: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 3:重点监管装置/设备 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - listApi(); - }; - const listApi = () => { - facilityManagementApi() - .getkeypointEquipmentInfoAddOrList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const filterText = ref(''); - const treeRef = ref<InstanceType<typeof ElTree>>(); - // 树形 - const listApiTree = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - console.log(res.data.data); - data.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const props = { - label: 'typeName', - children: 'childList', - value: 'id', - } - watch(filterText, (val) => { - treeRef.value!.filter(val); - }); - const filterNode = (value: string, data: Tree) => { - if (!value) return true; - return data.typeName.includes(value); - }; - const handleNodeClick = (data: Tree) => { - console.log(data) - ruleForm.searchParams.qName = data.typeName; - - listApi(); - }; - const data = ref([]); - onMounted(() => { - listApiTree(); - }); - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getkeypointEquipmentInfoDetele(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getkeypointEquipmentInfoDetele(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - - const activeName = ref('first'); - - const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - // const Show=ref() - // const openUp=()=>{ - // Show.value.openDialog() - // } - // 新增弹窗 - const ShowD = ref(); - const openD = (title: String, id: number) => { - ShowD.value.openDailog(title, false, id, 2); - }; - return { - activeName, - handleClick, - ruleForm, - filterText, - treeRef, - props, - filterNode, - data, - tableData, - // Show, - // openUp, - ShowD, - danger, - openD, - // openEdit, - Plus, - EditPen, - listApiTree, - Delete, - View, - Download, - Refresh, - Upload, - resetForm, - listApi, - handleCurrentChange, - handleSizeChange, - onAddorUpdata, - total, - currentPage4, - pageSize4, - onDelete, - warning, - handleSelectionChange, - onDeleteAll, - handleNodeClick, - timeDate, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.tree { - height: 750px; - background-color: #fff; - overflow: hidden; - overflow-y: auto; -} -.btns { - padding: 10px 0px 10px 10px; - display: flex; - justify-content: space-between; - background-color: #fff; -} -</style> diff --git a/src/components/facilityManagement/safetyEquipment/index.vue b/src/components/facilityManagement/safetyEquipment/index.vue deleted file mode 100644 index 576cfb7..0000000 --- a/src/components/facilityManagement/safetyEquipment/index.vue +++ /dev/null @@ -1,377 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.qName" placeholder="装置设施名称" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row> - <el-col :span="4"> - <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> - <div class="tree"> - - <!-- <el-tree ref="treeRef" class="filter-tree" :data="data" :props="props" :filter-node-method="filterNode" /> --> - <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" :filter-node-method="filterNode" /> - </div> - </el-col> - <el-col :span="20"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="openUp"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClicks" style="margin: 0 5%"> - <el-tab-pane label="设备保养" name="first"> - <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> - <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonId" align="center" label="保养负责人" sortable /> - <el-table-column property="takecareDate" align="center" :formatter="timeDate" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentId" align="center" label="保养负责人单位" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备检查" name="second" - ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonId" align="center" label="检查人" sortable /> - <el-table-column property="createTime" align="center" :formatter="timeDate" label="检查日期" sortable /> - <el-table-column property="name" align="center" label="检查人部门" sortable /> - <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> - <el-table-column property="name" align="center" label="检查状态" sortable /> </el-table - ></el-tab-pane> - <el-tab-pane label="设备检测" name="third"> - <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonId" align="center" label="检测人" sortable /> - <el-table-column property="testDate" align="center" :formatter="timeDate" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentId" align="center" label="检测人单位" sortable /> - <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column property="testResult" align="center" label="检测结果" sortable /> - <el-table-column property="testStatus" align="center" label="检测状态" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备维修" name="fourth"> - <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> - <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column property="repairStatus" align="center" label="维修状态" sortable /> - <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonId" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentId" align="center" label="维修负责人单位" sortable /> - <el-table-column property="repairStartDate" align="center" :formatter="timeDate" label="维修开始日期" sortable /> - <el-table-column property="repairEndDate" align="center" :formatter="timeDate" label="维修结束日期" sortable /> - </el-table> - </el-tab-pane> - </el-tabs> - </template> - </el-table-column> - <el-table-column property="qName" label="装置设施名称" align="center" sortable /> - <el-table-column property="positionNum" align="center" label="装置设施位号" sortable /> - <el-table-column property="qUsage" align="center" label="装置设施用途" sortable /> - <el-table-column property="model" label="装置设施型号" align="center" sortable show-overflow-tooltip /> - <el-table-column property="equipmentTypeId" label="类型/类别外键" align="center" sortable show-overflow-tooltip /> - <el-table-column property="setPart" label="设施部位" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </el-col> - </el-row> - <!-- <updata ref="Show"></updata> --> - <Dailog ref="openAdd" @navAddorUpdata="onAddorUpdata"></Dailog> - </div> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive, watch, onMounted } from 'vue'; -import updata from '/@/components/updata/updata.vue'; -import Dailog from '/@/components/equipmentDailog/Dailog.vue'; -import { ElTree, TabsPaneContext, ElMessage, ElMessageBox } from 'element-plus'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import {timeDate} from '/@/assets/index.ts' -import { EditPen, View, Plus, Delete, Download, Refresh, Upload } from '@element-plus/icons-vue'; -interface Tree { - label: string; - children?: Tree[]; -} -export default defineComponent({ - components: { updata, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////名称 - positionNum: '', ////位号 - infoType: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.positionNum = ''; - listApi(); - }; - const listApi = () => { - facilityManagementApi() - .getequipmentInfoList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDailog(title,false,id,2); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - const filterText = ref(''); - const treeRef = ref<InstanceType<typeof ElTree>>(); - // 树形 - const listApiTree = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - data.value= res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const props = { - label: 'typeName', - children: 'childList', - value: 'id', - } - watch(filterText, (val) => { - treeRef.value!.filter(val); - }); - - const filterNode = (value: string, data: Tree) => { - if (!value) return true; - return data.typeName.includes(value); - }; - const handleNodeClick=(data: Tree)=>{ - ruleForm.searchParams.positionNum=data.id - listApi(); - } - const data=ref([]) - onMounted(() => { - listApiTree(); - }); - const handleClicks = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - - const activeName = ref('first'); - // const Show=ref() - // const openUp=()=>{ - // Show.value.openDialog() - // } - return { - handleNodeClick, - ruleForm, - resetForm, - listApi, - onAddorUpdata, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - listApiTree, - handleClicks, - filterText, - treeRef, - props, - filterNode, - data, - openAdd, - openD, - activeName, - Plus, - EditPen, - Delete, - Download, - Refresh, - View, - Upload, - timeDate, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.tree { - height: 750px; - background-color: #fff; - overflow: hidden; - overflow-y: auto; -} -.btns { - padding: 10px 0px 10px 10px; - display: flex; - justify-content: space-between; - background-color: #fff; -} -</style> diff --git a/src/components/uploaderFile/index.vue b/src/components/uploaderFile/index.vue index e84783c..95b947d 100644 --- a/src/components/uploaderFile/index.vue +++ b/src/components/uploaderFile/index.vue @@ -61,8 +61,9 @@ }; const handlePictureCardPreview: UploadProps['onPreview'] = (uploadFile) => { + console.log(uploadFile) goalManagementApi() - .searchFile(uploadFile.fileName) + .searchFile(uploadFile.name) .then((res) => { window.open(res.data, "_blank"); }) @@ -104,8 +105,12 @@ let form = new FormData(); form.append('file', param.file); //组装文件名(传入后缀名) + console.log(param) + var fileNameList = param.file.name.split('.') + var typeFile = param.file.name.split('.')[fileNameList.length-1] var fileName1 = getFileName(param.file.type.split('/')[1], 1); - var fileName2 = getFileName(param.file.type.split('/')[1], 2); + // var fileName2 = getFileName(param.file.type.split('/')[1], 2); + var fileName2 = '.'+typeFile; goalManagementApi() .beforeUploadFile(fileName1, fileName2) .then((res) => { diff --git a/src/components/uploaderImg/index.vue b/src/components/uploaderImg/index.vue index c30fad0..f044082 100644 --- a/src/components/uploaderImg/index.vue +++ b/src/components/uploaderImg/index.vue @@ -51,7 +51,8 @@ }; const handlePictureCardPreview: UploadProps['onPreview'] = (uploadFile) => { - dialogImageUrl.value = uploadFile.url!; + alert(1) + dialogImageUrl.value = uploadFile.url; dialogVisible.value = true; }; diff --git a/src/utils/request.ts b/src/utils/request.ts index 8c6a367..0c09f3b 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -42,7 +42,8 @@ } catch (err) { console.log(err); // 转换失败返回一个空对象 - return {}; + return { + }; } } ]; diff --git a/src/views/accidentManagementSystem/accidentCases/index.vue b/src/views/accidentManagementSystem/accidentCases/index.vue index e8c879c..e5a4bfc 100644 --- a/src/views/accidentManagementSystem/accidentCases/index.vue +++ b/src/views/accidentManagementSystem/accidentCases/index.vue @@ -1,261 +1,261 @@ -<template> - <div> - <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.caseTitle" size="default" placeholder="请输入关键词" /> - </el-form-item> - </el-col> - <!-- <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" /> - </el-form-item> - </el-col> --> - <el-col :span="16"> - <el-form-item> - <el-button type="primary" size="default" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <!-- <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain @click="openD('修改', deletAll[0])">修改</el-button> --> - <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column label="标题" align="center" property="caseTitle" sortable /> - <el-table-column property="caseTime" align="center" label="发布时间" sortable /> - <!-- <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> --> - <el-table-column label="操作" align="center" sortable show-overflow-tooltip> - <template #default="scope"> - <!-- <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> --> - <el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">编辑</el-button> - <el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - <DailogCases ref="Show" @onAdd="add"></DailogCases> - </div> -</template> -<script lang="ts"> -import DailogCases from './component/DailogCases.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import { accidentManagementSystemApi } from '/@/api/accidentManagementSystem'; -export default defineComponent({ - components: { ElButton, ElInput,DailogCases }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - caseTitle: '', - }, - }); - // 下方导航与表格 - const tableData = ref([]); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const resetForm = () => { - ruleForm.searchParams.caseTitle = ''; - listApi(); - }; - const listApi = () => { - accidentManagementSystemApi() - .getaccidentCaseList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApi(); - }); +<!--<template>--> +<!-- <div>--> +<!-- <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle">--> +<!-- <el-row>--> +<!-- <el-col :span="4">--> +<!-- <el-form-item>--> +<!-- <el-input v-model="ruleForm.searchParams.caseTitle" size="default" placeholder="请输入关键词" />--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <!– <el-col :span="4">--> +<!-- <el-form-item>--> +<!-- <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" />--> +<!-- </el-form-item>--> +<!-- </el-col> –>--> +<!-- <el-col :span="16">--> +<!-- <el-form-item>--> +<!-- <el-button type="primary" size="default" @click="listApi">查询</el-button>--> +<!-- <el-button size="default" @click="resetForm">重置</el-button>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- </el-row>--> +<!-- </el-form>--> +<!-- <div class="minCenter">--> +<!-- <div class="btns">--> +<!-- <div>--> +<!-- <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>--> +<!-- <!– <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain @click="openD('修改', deletAll[0])">修改</el-button> –>--> +<!-- <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button>--> +<!-- </div>--> +<!-- </div>--> +<!-- <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%">--> +<!-- <el-table-column type="selection" align="center" width="55" />--> +<!-- <el-table-column label="序号" align="center" type="index" width="70" />--> +<!-- <el-table-column label="标题" align="center" property="caseTitle" sortable />--> +<!-- <el-table-column property="caseTime" align="center" label="发布时间" sortable />--> +<!-- <!– <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip />--> +<!-- <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> –>--> +<!-- <el-table-column label="操作" align="center" sortable show-overflow-tooltip>--> +<!-- <template #default="scope">--> +<!-- <!– <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> –>--> +<!-- <el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">编辑</el-button>--> +<!-- <el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- </el-table>--> +<!-- <div class="pages">--> +<!-- <el-pagination--> +<!-- v-model:currentPage="currentPage4"--> +<!-- v-model:page-size="pageSize4"--> +<!-- :page-sizes="[10, 20, 30, 40]"--> +<!-- layout="total, sizes, prev, pager, next, jumper"--> +<!-- :total="total"--> +<!-- @size-change="handleSizeChange"--> +<!-- @current-change="handleCurrentChange"--> +<!-- />--> +<!-- </div>--> +<!-- </div>--> +<!-- <DailogCases ref="Show" @onAdd="add"></DailogCases>--> +<!-- </div>--> +<!--</template>--> +<!--<script lang="ts">--> +<!--import DailogCases from './component/DailogCases.vue';--> +<!--import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue';--> +<!--import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus';--> +<!--import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue';--> +<!--import { accidentManagementSystemApi } from '/@/api/accidentManagementSystem';--> +<!--export default defineComponent({--> +<!-- components: { ElButton, ElInput,DailogCases },--> +<!-- setup() {--> +<!-- // 搜索条件--> +<!-- const ruleForm = reactive({--> +<!-- pageSize: 10,--> +<!-- pageIndex: 1,--> +<!-- searchParams: {--> +<!-- caseTitle: '',--> +<!-- },--> +<!-- });--> +<!-- // 下方导航与表格--> +<!-- const tableData = ref([]);--> +<!-- const currentPage4 = ref();--> +<!-- const pageSize4 = ref();--> +<!-- const total = ref();--> +<!-- const resetForm = () => {--> +<!-- ruleForm.searchParams.caseTitle = '';--> +<!-- listApi();--> +<!-- };--> +<!-- const listApi = () => {--> +<!-- accidentManagementSystemApi()--> +<!-- .getaccidentCaseList(ruleForm)--> +<!-- .then((res) => {--> +<!-- if (res.data.code == 200) {--> +<!-- tableData.value = res.data.data;--> +<!-- currentPage4.value = res.data.pageIndex;--> +<!-- pageSize4.value = res.data.pageSize;--> +<!-- total.value = res.data.total;--> +<!-- } else {--> +<!-- ElMessage.error(res.data.msg);--> +<!-- }--> +<!-- });--> +<!-- };--> +<!-- onMounted(() => {--> +<!-- listApi();--> +<!-- });--> - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const activeNames = ref('1'); - // 打开弹窗 - const Show = ref(); - const openD = (title: String, id: number) => { - Show.value.openDailog(title,id); - }; - // 删除 - const onDelete = (id: number) => { - let arr = []; - arr.push(id); - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - console.log(arr) - accidentManagementSystemApi() - .getaccidentCaseDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - accidentManagementSystemApi() - .getaccidentCaseDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - const add = () => { - listApi(); - }; - return { - listApi, - add, - resetForm, - tableData, - currentPage4, - pageSize4, - total, - ruleForm, - handleSizeChange, - handleCurrentChange, - Show, - openD, - activeNames, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; -} -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 20px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -.tableC { - margin: 0 10%; -} -</style> +<!-- const handleSizeChange = (val: number) => {--> +<!-- // console.log(`${val} items per page`);--> +<!-- ruleForm.pageSize = val;--> +<!-- listApi();--> +<!-- };--> +<!-- const handleCurrentChange = (val: number) => {--> +<!-- // console.log(`current page: ${val}`);--> +<!-- ruleForm.pageIndex = val;--> +<!-- listApi();--> +<!-- };--> +<!-- const activeNames = ref('1');--> +<!-- // 打开弹窗--> +<!-- const Show = ref();--> +<!-- const openD = (title: String, id: number) => {--> +<!-- Show.value.openDailog(title,id);--> +<!-- };--> +<!-- // 删除--> +<!-- const onDelete = (id: number) => {--> +<!-- let arr = [];--> +<!-- arr.push(id);--> +<!-- ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {--> +<!-- confirmButtonText: '确定',--> +<!-- cancelButtonText: '取消',--> +<!-- type: 'warning',--> +<!-- })--> +<!-- .then(() => {--> +<!-- console.log(arr)--> +<!-- accidentManagementSystemApi()--> +<!-- .getaccidentCaseDelete(arr)--> +<!-- .then((res) => {--> +<!-- if (res.data.code == 200) {--> +<!-- ElMessage({--> +<!-- message: res.data.msg,--> +<!-- type: 'success',--> +<!-- });--> +<!-- listApi();--> +<!-- } else {--> +<!-- ElMessage.error(res.data.msg);--> +<!-- }--> +<!-- });--> +<!-- })--> +<!-- .catch(() => {--> +<!-- // ElMessage({--> +<!-- // type: 'info',--> +<!-- // message: 'Delete canceled',--> +<!-- // });--> +<!-- });--> +<!-- };--> +<!-- // 批量删除--> +<!-- const warning = ref(true);--> +<!-- const danger = ref(true);--> +<!-- const deletAll = ref();--> +<!-- const handleSelectionChange = (val: any) => {--> +<!-- let valId = JSON.parse(JSON.stringify(val));--> +<!-- let arr = [];--> +<!-- for (let i = 0; i < valId.length; i++) {--> +<!-- arr.push(valId[i].id);--> +<!-- }--> +<!-- deletAll.value = arr;--> +<!-- if (val.length == 1) {--> +<!-- warning.value = false;--> +<!-- danger.value = false;--> +<!-- } else if (val.length == 0) {--> +<!-- warning.value = true;--> +<!-- danger.value = true;--> +<!-- } else {--> +<!-- warning.value = true;--> +<!-- danger.value = false;--> +<!-- }--> +<!-- };--> +<!-- const onDeleteAll = () => {--> +<!-- ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {--> +<!-- confirmButtonText: '确定',--> +<!-- cancelButtonText: '取消',--> +<!-- type: 'warning',--> +<!-- })--> +<!-- .then(() => {--> +<!-- accidentManagementSystemApi()--> +<!-- .getaccidentCaseDelete(deletAll.value)--> +<!-- .then((res) => {--> +<!-- if (res.data.code == 200) {--> +<!-- ElMessage({--> +<!-- message: res.data.msg,--> +<!-- type: 'success',--> +<!-- });--> +<!-- listApi();--> +<!-- } else {--> +<!-- ElMessage.error(res.data.msg);--> +<!-- }--> +<!-- });--> +<!-- })--> +<!-- .catch(() => {--> +<!-- ElMessage({--> +<!-- type: 'info',--> +<!-- message: 'Delete canceled',--> +<!-- });--> +<!-- });--> +<!-- };--> +<!-- const add = () => {--> +<!-- listApi();--> +<!-- };--> +<!-- return {--> +<!-- listApi,--> +<!-- add,--> +<!-- resetForm,--> +<!-- tableData,--> +<!-- currentPage4,--> +<!-- pageSize4,--> +<!-- total,--> +<!-- ruleForm,--> +<!-- handleSizeChange,--> +<!-- handleCurrentChange,--> +<!-- Show,--> +<!-- openD,--> +<!-- activeNames,--> +<!-- onDelete,--> +<!-- warning,--> +<!-- danger,--> +<!-- deletAll,--> +<!-- handleSelectionChange,--> +<!-- onDeleteAll,--> +<!-- Plus,--> +<!-- Delete,--> +<!-- Upload,--> +<!-- Download,--> +<!-- Refresh,--> +<!-- View,--> +<!-- EditPen,--> +<!-- };--> +<!-- },--> +<!--});--> +<!--</script>--> +<!--<style scoped>--> +<!--.topTitle {--> +<!-- background-color: #fff;--> +<!-- padding: 20px 0px 20px 0px;--> +<!--}--> +<!--.minCenter {--> +<!-- width: 100%;--> +<!-- background-color: #fff;--> +<!-- margin-top: 10px;--> +<!-- padding: 0 20px;--> +<!--}--> +<!--.btns {--> +<!-- padding: 20px 0px 10px 0px;--> +<!-- display: flex;--> +<!-- justify-content: space-between;--> +<!--}--> +<!--.pages {--> +<!-- padding: 20px 0;--> +<!-- display: flex;--> +<!-- justify-content: right;--> +<!--}--> +<!--.tableC {--> +<!-- margin: 0 10%;--> +<!--}--> +<!--</style>--> diff --git a/src/views/contingencyManagement/abolishDialog/abolishDialog.vue b/src/views/contingencyManagement/abolishDialog/abolishDialog.vue index 69dba30..e69de29 100644 --- a/src/views/contingencyManagement/abolishDialog/abolishDialog.vue +++ b/src/views/contingencyManagement/abolishDialog/abolishDialog.vue @@ -1,139 +0,0 @@ -<template> - <div class="system-user-container"> - <h4 class="title">胡海涛2022-07-01 16:08:42发起了目标检查上报(检查)--检查</h4> - <div class="box"> - <el-menu - :default-active="activeIndex" - class="el-menu-demo" - background-color="#ebeef5" - text-color="#fff" - active-text-color="#fff" - mode="horizontal" - @select="handleSelect" - > - <el-menu-item index="1">表单信息</el-menu-item> - <el-menu-item index="2">流程图</el-menu-item> - </el-menu> - <div v-if="activeIndex == 1" class="navType"> - <formInformationTop v-if="false"></formInformationTop> - <formInformationTops></formInformationTops> - </div> - <div v-if="activeIndex == 2" class="navType" style="padding:20px 20px 0 20px"> - <div class="title2">流程图 - <!-- <img src=""> --> - </div> - <div style="width:100%;height:400px"></div> - </div> - </div> - <lowerPlate></lowerPlate> - <div class="btns"> - <el-button type="primary">启动</el-button> - </div> - </div> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref,onMounted } from 'vue'; -import { useRouter } from 'vue-router'; -import formInformationTop from './component/formInformationTop.vue' -import formInformationTops from './component/formInformationTops.vue' -import lowerPlate from './component/lowerPlate.vue' -export default defineComponent({ - components:{lowerPlate,formInformationTop,formInformationTops}, - setup() { - const activeIndex = ref<any>('1'); - const handleSelect = (key: string, keyPath: string[]) => { - // console.log(key, keyPath); - activeIndex.value = key; - }; - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - - const router=useRouter() - const Type=onMounted(()=>{ - // console.log("xxxxxxx",router) - }) - - return { - activeIndex, - handleSelect, - form, - router, - Type - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; - padding: 15px; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} - -/*弹窗底部边框线*/ -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -/*弹窗顶部边框线*/ -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -</style> diff --git a/src/views/contingencyManagement/abolishDialog/component/formInformationTop.vue b/src/views/contingencyManagement/abolishDialog/component/formInformationTop.vue index ef75063..e69de29 100644 --- a/src/views/contingencyManagement/abolishDialog/component/formInformationTop.vue +++ b/src/views/contingencyManagement/abolishDialog/component/formInformationTop.vue @@ -1,144 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标指标"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="指标值"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" style="padding: 0 20px"> - <el-tab-pane label="考核指标" name="1"> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" type="index" label="序号" width="70" /> - <el-table-column align="center" prop="date" label="责任部门" /> - <el-table-column align="center" prop="name" label="考核指标" /> - <el-table-column align="center" prop="address" label="制定部门" /> - <el-table-column align="center" prop="address" label="制定日期" /> - <el-table-column align="center" label="检查值"> - <template #default> - <el-input v-model="form.name" placeholder=""></el-input> - </template> - </el-table-column> - <el-table-column align="center" prop="address" label="检查人" /> - <el-table-column align="center" prop="address" label="检查时间" /> - </el-table> - <div class="tiao"> - <div class="typeS">审批</div> - </div> - <el-row style="padding:20px 0"> - <el-col :span="6" style="text-align:right">一级审批:</el-col> - <el-col :span="18">同意</el-col> - </el-row> - <el-row style="padding:0 0 20px 0"> - <el-col :span="6"></el-col> - <el-col :span="18"><span class="logoColor">同意</span><span style="margin-right: 8px;">杜建喜</span><span>2021-05-24 04:47:42</span></el-col> - </el-row> - </el-tab-pane> - </el-tabs> -</template> -<script lang="ts"> -import { defineComponent,ref,reactive } from 'vue' - -export default defineComponent({ - setup() { - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const activeName = ref('1'); - return{ - form, - tableData, - activeName - } - }, -}) -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0 ; -} -</style> diff --git a/src/views/contingencyManagement/abolishDialog/component/formInformationTops.vue b/src/views/contingencyManagement/abolishDialog/component/formInformationTops.vue index 68ae8a6..e69de29 100644 --- a/src/views/contingencyManagement/abolishDialog/component/formInformationTops.vue +++ b/src/views/contingencyManagement/abolishDialog/component/formInformationTops.vue @@ -1,318 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="12"> - <el-form-item label="预案名称"> - <el-input v-model="form.name" disabled placeholder="请填写预案名称"></el-input> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="适用部门"> - <el-tree-select - class="select" - placeholder="请选择" - v-model="value" - :data="data" - :render-after-expand="false" - show-checkbox - multiple - clearable - disabled - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="预案类型"> - <el-select class="select" v-model="form.region" disabled placeholder="请选择"> - <el-option label="综合应急预案" value="shanghai" /> - <el-option label="现场处置方案" value="beijing" /> - <el-option label="专项应急预案" value="shanghai" /> - <el-option label="其它预案" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="危险源关联"> - <el-select class="select" v-model="form.region" disabled placeholder="请选择"> - <el-option label="是" value="shanghai" /> - <el-option label="否" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="预案级别"> - <el-select class="select" v-model="form.region" disabled placeholder="请选择"> - <el-option label="公司及" value="shanghai" /> - <el-option label="分厂级" value="beijing" /> - <el-option label="车间级" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="编写人"> - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - disabled - > - <template #append> - <el-button :icon="Search" @click="openUser" disabled/> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="编写部门" disabled placeholder="请选择"> - <el-tree-select - class="select" - v-model="value2" - :data="dataSelect" - :render-after-expand="false" - multiple - check-strictly - check-on-click-node - clearable - disabled - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="发布实施日期"> - <el-date-picker v-model="datetime" type="datetime" disabled placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急队伍" prop="telephone" @click="daiInpt" > - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - disabled - > - <template #append> - <el-button :icon="Search" disabled/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="预案附件"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - :on-change="handleChange" - disabled - > - <el-button type="primary" disabled - >点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 添加相关附件 - </div> - </template> - </el-upload> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="区域名称" prop="telephone"> - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - disabled - > - <template #append> - <el-button :icon="Search" disabled @click="regionsDialog"/> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <checkTemplate ref="ShowRef"/> - <userSelections ref="userRef"/> - <RegionsDialog ref="openRef"/> -</template> -<script lang="ts"> -import { - defineComponent, - ref, - reactive -} from 'vue'; -import { - Search -} from '@element-plus/icons-vue' -import UserSelections from "/@/components/userSelections/index.vue" -import CheckTemplate from "/@/components/checkTemplate/index.vue" -import RegionsDialog from "/@/components/regionsDialog/index.vue"; -export default defineComponent({ - components: { - CheckTemplate, - UserSelections, - RegionsDialog, - }, - setup() { - const form = reactive({ - name: '', - value: '', - value2: '', - teamLeader: '', - - // data: '', - // dataSelect: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - - // 可选择树形选择框 - const value = ref() - - const data = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '生产运行部', - children: [ - { - value: '1-1-1', - label: '工艺二班', - }, - ], - }, - ], - } - ] - // 树形选择框 - const value2 = ref() - - const dataSelect = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '生产运行部', - children: [ - { - value: '1-1-1', - label: '工艺二班', - }, - ], - }, - ], - } - ] - // 应急队伍弹窗 - const ShowRef=ref() - const daiInpt=()=>{ - ShowRef.value.openDailog() - } - // 选择区域弹窗 - const openRef=ref() - const regionsDialog=()=>{ - openRef.value.openDailog() - } - // 打开编写人选择用户弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - // 日期选择 - const datetime = ref('') - return { - form, - value, - data, - value2, - dataSelect, - openUser, - userRef, - Search, - ShowRef, - daiInpt, - openRef, - datetime, - regionsDialog, - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box { - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao { - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0; - position: relative; -} -.typeS { - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor { - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns { - width: 100%; - padding: 20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); -} -.title2 { - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0; -} -.select{ - width: 100%; -} -.select ::v-deep .el-select{ - width: 100%; -} -</style> diff --git a/src/views/contingencyManagement/abolishDialog/component/lowerPlate.vue b/src/views/contingencyManagement/abolishDialog/component/lowerPlate.vue index cbb82fb..e69de29 100644 --- a/src/views/contingencyManagement/abolishDialog/component/lowerPlate.vue +++ b/src/views/contingencyManagement/abolishDialog/component/lowerPlate.vue @@ -1,120 +0,0 @@ -<template> - <div class="box"> - <el-form ref="formS" :model="form" :rules="rules" label-width="120px"> - <el-row> - <el-col :span="15"> - <el-form-item label="流程标题"> - <el-input v-model="form.names" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label="下级审批日期"> - <el-date-picker v-model="form.date1" type="date" placeholder="下级审批日期" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.delivery" label="是否抄送" @change="typeChang"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.delivery"> - <el-col :span="15"> - <el-form-item label="抄送给" prop="resource"> - <el-input v-model="form.resource" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.type" label="指定下一步处理者(不设置就使用默认处理人)"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.type"> - <el-col :span="15"> - <el-form-item label="指定" prop="desc"> - <el-input v-model="form.desc" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - <DailogSearchUser ref="ShowUser"></DailogSearchUser> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue' -import { Search } from '@element-plus/icons-vue'; -import type { FormInstance, FormRules } from 'element-plus' -export default defineComponent({ - components:{DailogSearchUser}, - setup() { - const formS=ref<FormInstance>() - let form = reactive({ - names: '', - region: '', - date1: '', - date2: '', - delivery: "", - type: "", - resource: '', - desc: '', - }); - const typeChang=()=>{ - console.log('tag',form) - } - const rules = reactive<FormRules>({ - resource: [ - { - type: 'array', - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ], - desc: [ - { - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ]}) - const ShowUser=ref() - const openDai =()=>{ - ShowUser.value.openDailog() - } - return { - form, - rules, - formS, - typeChang, - ShowUser, - openDai, - Search, - }; - }, -}); -</script> - -<style scoped> -.box { - margin: 30px 0 100px 0; - background-color: #fff; - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); - padding: 20px; -} -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue b/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue index cafe13e..e69de29 100644 --- a/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue +++ b/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue @@ -1,305 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - :title="titles" - v-model="isShowDialog" - width="40%" - draggable - :fullscreen="full" - @close="resetForm(ruleFormRef)" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form - ref="ruleFormRef" - :model="ruleForm" - size="default" - :rules="rules" - :disabled="disabled" - label-width="90px"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="选择人员" prop="name"> - <el-input - v-model="ruleForm.name" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="人员工号" prop="jobNumber"> - <el-input v-model="ruleForm.jobNumber" placeholder="请填写人员工号"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="人员名称" prop="name"> - <el-input v-model="ruleForm.name" placeholder="请填写人员名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="人员性别" prop="gender"> - <el-radio-group v-model="ruleForm.gender"> - <el-radio :label="false">男</el-radio> - <el-radio :label="true">女</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="手机号码" prop="phone"> - <el-input v-model="ruleForm.phone" placeholder="请填写手机号码"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="职位" prop="position"> - <el-input v-model="ruleForm.position" placeholder="请填写职位"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> -<!-- <el-button size="default" type="primary" @click="addForm(ruleFormRef)">继续添加</el-button>--> - <el-button size="default" @click="resetForm(ruleFormRef)">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)" >确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser"/> - </div> -</template> - -<script lang="ts"> -import { - ref, - reactive, - defineComponent -} from 'vue'; - -import type { - FormRules, - FormInstance, -} from 'element-plus' -import { ElMessage } from 'element-plus'; -import { - Search, - FullScreen, -} from '@element-plus/icons-vue' -import DailogSearchUserManger from "/@/components/DailogSearchUserManger/index.vue" -import {contingencyApi} from "/@/api/contingencyManagement/contingency"; - -export default defineComponent({ - name: 'addTeamLeader', - components: { - // Search, - DailogSearchUserManger - }, - setup(props, { emit }) { - const isShowDialog = ref(false) - const ruleFormRef = ref<FormInstance>() - const ruleForm = ref ({ - teamId: '', - userUid: '', - gender: '', - jobNumber: '', // 人员工号 - name: '', // 人员名称 - phone: '', // 手机号码 - position: '', // 职位 - }); - const rules = reactive<FormRules>({ - jobNumber: [ - { - required: true, - message: '人员工号不能为空', - trigger: 'change', - }, - ], - personnelName: [ - { - required: true, - message: '人员名称不能为空', - trigger: 'change', - }, - ], - personnelGender: [ - { - required: true, - message: '人员性别不能为空', - trigger: 'change', - }, - ], - phone: [ - { - required: true, - message: '手机号码不能为空', - trigger: 'change', - }, - ], - position: [ - { - required: true, - message: '职位不能为空', - trigger: 'change', - }, - ], - }) - const titles = ref(); - const disabled = ref(); - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建应急队伍人员') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - // console.log('-------',ruleForm.value) - // emit('myAdd', ruleForm.value); - contingencyApi() - .addEmergencyTeamPersonnel(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } - else if (title == '修改应急队伍人员') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - contingencyApi() - .editEmergencyTeamPersonnel(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - teamId: '', - userUid: '', - gender: '', - jobNumber: '', // 人员工号 - name: '', // 人员名称 - phone: '', // 手机号码 - position: '', // 职位 - }; - } - } - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - - // 打开弹窗 - const openDialog = (title: string, id: number,teamId:number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - ruleForm.value.teamId = teamId - - if (title == '查看应急队伍人员' || title == '修改应急队伍人员') { - contingencyApi() - .seeEmergencyTeamPersonnel(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - const onUser = (e:any) => { - ruleForm.value.userUid=e[0].uid - ruleForm.value.gender=e[0].sex - ruleForm.value.name=e[0].realName - ruleForm.value.jobNumber=e[0].jobNumber - ruleForm.value.phone=e[0].phone - ruleForm.value.position=e[0].position - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - // closeDialog, - isShowDialog, - ruleFormRef, - // submitForm, - // onCancel, - ruleForm, - rules, - Search, - toggleFullscreen, - FullScreen, - full, - resetForm, - titles, - disabled, - emit, - openUser, - userRef, - onUser, - submitForm, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea{ - height: 168px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 168px!important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/contingency/component/openAdd.vue b/src/views/contingencyManagement/contingency/component/openAdd.vue index 2d9e986..e69de29 100644 --- a/src/views/contingencyManagement/contingency/component/openAdd.vue +++ b/src/views/contingencyManagement/contingency/component/openAdd.vue @@ -1,569 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="50%" draggable :fullscreen="full" @close="resetForm(ruleFormRef)"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" size="default" :rules="rules" label-width="120px" - :disabled="disabled"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="队伍名称" prop="teamName"> - <el-input v-model="ruleForm.teamName" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="队伍级别" prop="teamLevel"> - <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择"> - <el-option label="公司" value="1"></el-option> - <el-option label="分厂-车间" value="2"></el-option> - <el-option label="工序-班组等" value="3"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="队伍负责人" prop="principalName"> - <el-input v-model="ruleForm.principalName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="负责人部门" prop="principalDepartmentId"> - <el-tree-select v-model="ruleForm.principalDepartmentId" :data="newTreeList" class="w100" - :props="propse" clearable placeholder="请选择"/> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="负责人手机" prop="principalPhone"> - <el-input v-model="ruleForm.principalPhone" placeholder="请填写负责人手机"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="固定电话" prop="telephoneNumber"> - <el-input v-model="ruleForm.telephoneNumber" placeholder="请填写固定电话"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="队伍描述" prop="teamDesc"> - <el-input class="textarea" v-model="ruleForm.teamDesc" type="textarea" maxlength="150" - placeholder="请填写队伍描述"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="相关附件" prop="fileList"> - <uploaderFile :fileList="fileList" :systemName="'EMERGENCY'" :disabled="disabled" - @successUploader="successUploader"></uploaderFile> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row :gutter="35"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="应急队伍人员" name="first" > - <el-button type="primary" size="default" @click="onAddEmergencyPersonnel(ruleFormRef)" :disabled="disabled">新增 - </el-button> - <el-table - :data="tableData" - style="width: 100%; margin-top: 15px" - ref="multipleTableRef" - :header-cell-style="{ background: '#f6f7fa', color: '#909399' }" - :disabled="disabled" - > - <el-table-column prop="jobNumber" label="人员工号" show-overflow-tooltip></el-table-column> - <el-table-column prop="name" label="人员名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="phone" label="手机号码" show-overflow-tooltip></el-table-column> - <el-table-column prop="position" label="职位" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="250" align="center"> - <template #default="scope"> - <el-button :disabled="disabled" size="small" @click="onEdit('查看应急队伍人员',scope.row.id)">查看 - </el-button> - <el-button :disabled="disabled" size="small" @click="onEdit('修改应急队伍人员',scope.row.id)" - style="margin-right: 5px">编辑 - </el-button> - <el-button :disabled="disabled" size="small" @click="onRowDel(scope.row.id)" - style="margin-right: 5px">删除 - </el-button> - </template> - </el-table-column> - </el-table> - </el-tab-pane> - </el-tabs> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" v-if="disabled == true ? false : true" type="primary" - @click="onSubmit(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <AddEmergencyPersonnel ref="addRef" @myAdd="onMyAdd"/> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser"/> - </div> -</template> - -<script lang="ts"> - import { - reactive, - ref, - defineComponent, - onMounted, - // toRefs, - } from 'vue'; - import { - ElMessage, - ElMessageBox, - } from 'element-plus'; - - import type { - UploadUserFile, - TabsPaneContext, - FormInstance, - FormRules, - } from 'element-plus' - - import { - Search, - FullScreen - } from '@element-plus/icons-vue' - import AddEmergencyPersonnel from "/@/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue"; - import DailogSearchUserManger from "/@/components/DailogSearchUserManger/index.vue" - import {contingencyApi} from "/@/api/contingencyManagement/contingency"; - import {goalManagementApi} from "/@/api/goalManagement"; - import uploaderFile from '/@/components/uploaderFile/index.vue'; - // import {releaseDrillPlanApi} from "/@/api/releaseDrillPlan"; - - - export default defineComponent({ - name: 'openAdd', - components: { - AddEmergencyPersonnel, - DailogSearchUserManger, - uploaderFile - }, - setup(prop, {emit}) { - const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - const ruleForm = ref({ - teamName: '', // 队伍名称 - teamLevel: '', // 队伍级别 - principalUid: '', // 队伍负责人 - principalName: '', - principalDepartmentId: '', //负责人部门 - principalPhone: '', // 负责人手机 - telephoneNumber: '', // 固定电话 - teamDesc: '', //队伍描述 - fileList: [], - memberList: [] - }); - const titles = ref(); - const disabled = ref(); - const teamId = ref() - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - teamId.value = id - if (title == '查看应急队伍管理' || title == '修改应急队伍管理') { - contingencyApi() - .seeEmergencyTeam(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - fileList.value = (res.data.data.fileList?res.data.data.fileList:[]) - initFileListData() - listApi() - } - }); - } - } - // 上传附件 - const fileList = ref([]) - const initFileListData = async () => { - for(var a = 0;a<fileList.value.length;a++){ - fileList.value[a].name = fileList.value[a].fileName - } - } - // 上传成功组装数据 - const successUploader = (list) =>{ - fileList.value = list - const formFileList = [] - for(var a = 0;a<fileList.value.length;a++){ - formFileList.push( - { - fileName:fileList.value[a].fileName, - fileUrl:'' - } - ) - } - ruleForm.value.fileList = formFileList - } - //定义树形下拉框 - const principalDepartmentId = ref() - const data = ref() - - - - //el-tree-select回显 - const propse = { - label: 'depName', - children: 'children', - }; - const newTreeList = []; - //得到部门树 - const department = async () => { - await goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - getTreeList(res.data.data, newTreeList); - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 递归树状数据且修改字段名 - const getTreeList = (treeList, newTreeList) => { - treeList.map((c) => { - let tempData = { - depName: c.depName, - value: c.depId, - children: [], - }; - if (c.children && c.children.length > 0) { - tempData.children = []; - getTreeList(c.children, tempData.children); - } - newTreeList.push(tempData); - }); - }; - onMounted(() => { - department(); - }); - - - - - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - const onUser = (e: any) => { - ruleForm.value.principalUid = e[0].uid - ruleForm.value.principalName = e[0].realName - }; - //定义tabs切换 - const activeName = ref('first') - const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event) - } - - // 必填项提示 - const rules = reactive<FormRules>({ - teamName: [ - { - required: true, - message: '队伍名称不能为空', - trigger: 'change', - }, - ], - teamLevel: [ - { - required: true, - message: '队伍级别不能为空', - trigger: 'change', - }, - ], - principalUid: [ - { - required: true, - message: '队伍负责人不能为空', - trigger: 'change', - }, - ], - principalDepartmentId: [ - { - required: true, - message: '负责人部门不能为空', - trigger: 'change', - }, - ], - principalPhone: [ - { - required: true, - message: '负责人手机不能为空', - trigger: 'change', - }, - ], - telephoneNumber: [ - { - required: true, - message: '固定电话不能为空', - trigger: 'change', - }, - ], - }) - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - const onSubmit = async (title: string, formEl: FormInstance | undefined) => { - if(!ruleForm.value.fileList){ - ruleForm.value.fileList = [] - } - if (title == '新建应急队伍管理') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - if(teamId.value==null||teamId.value==''){ - contingencyApi() - .addEmergencyTeam(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - }else { - ElMessage({ - showClose: true, - message: '添加成功', - type: 'success', - }); - emit('myAdd', true); - } - } else { - console.log('error submit!', fields); - } - }); - } else if (title == '修改应急队伍管理') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - contingencyApi() - .editEmergencyTeam(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - teamName: '', // 队伍名称 - teamLevel: '', // 队伍级别 - principalUid: '', // 队伍负责人 - principalDepartmentId: '', //负责人部门 - principalPhone: '', // 负责人手机 - telephoneNumber: '', // 固定电话 - teamDesc: '', //队伍描述 - fileList: [], - memberList: [] - }; - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - fileList.value = [] - tableData.value=[] - ruleForm.value = {} - }; - // 定义表格数据 - const tableData = ref([]); - //添加队伍负责人弹窗 - const addRef = ref(); - const onAddEmergencyPersonnel = async (formEl: FormInstance | undefined) => { - if(!ruleForm.value.fileList){ - ruleForm.value.fileList = [] - } - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - // isShowDialog.value = false; - if(teamId.value == ''||teamId.value==null){ - ElMessageBox.confirm('确认添加此应急队伍?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - contingencyApi() - .addEmergencyTeam(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - teamId.value = res.data.data.id - addRef.value.openDialog('新建应急队伍人员','',teamId.value); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }) - .catch(() => {}); - - }else { - addRef.value.openDialog('新建应急队伍人员','',teamId.value); - } - - - } else { - console.log('error submit!', fields); - } - }); - }; - // 请求列表数据 - const listApi = async () => { - let res = await contingencyApi().getEmergencyTeamPersonnelList(teamId.value); - if (res.data.code == 200) { - tableData.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }; - // 新增后刷新 - const onMyAdd = (e: object) => { - listApi(); - }; - // 打开修改弹窗 - const onEdit = (val: string, row: object) => { - if (val == '查看应急队伍人员') { - addRef.value.openDialog('查看应急队伍人员', row,teamId.value, true); - } else { - addRef.value.openDialog('修改应急队伍人员', row,teamId.value, false); - } - }; - // 删除 - const onRowDel = (data: any) => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }).then(() => { - contingencyApi() - .deleteEmergencyTeamPersonnel(data) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi() - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi() - } - }); - }) - .catch(() => { - }); - }; - return { - openDialog, - fileList, - principalDepartmentId, - data, - activeName, - handleClick, - tableData, - Search, - resetForm, - isShowDialog, - ruleFormRef, - ruleForm, - rules, - addRef, - userRef, - titles, - disabled, - propse, - emit, - onSubmit, - openUser, - onAddEmergencyPersonnel, - toggleFullscreen, - FullScreen, - full, - onUser, - onMyAdd, - listApi, - onEdit, - onRowDel, - department, - teamId, - newTreeList, - successUploader, - initFileListData - }; - }, - }); -</script> -<style scoped lang="scss"> - .textarea { - height: 168px !important; - } - - .textarea ::v-deep .el-textarea__inner { - height: 168px !important; - } - - ::v-deep .el-table__cell { - font-weight: 400; - } -</style> - diff --git a/src/views/contingencyManagement/contingency/component/upData.vue b/src/views/contingencyManagement/contingency/component/upData.vue index cc3e2d0..e69de29 100644 --- a/src/views/contingencyManagement/contingency/component/upData.vue +++ b/src/views/contingencyManagement/contingency/component/upData.vue @@ -1,125 +0,0 @@ -<template> - <el-dialog - v-model="dialogVisible" - title="导入Excel" - width="50%" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - multiple - :on-preview="handlePreview" - :on-remove="handleRemove" - :before-remove="beforeRemove" - :limit="3" - :on-exceed="handleExceed" - > - <el-button size="default">下载模板</el-button> - <el-button size="default" type="primary">点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 只允许导入“xls”或“xlsx”格式文件! - </div> - </template> - </el-upload> - </el-dialog> -</template> -<script lang="ts"> -import { ref, - defineComponent, -} from "vue"; -import { - ElMessage, - ElMessageBox -} from "element-plus"; -import type { - UploadProps, - UploadUserFile, -} from "element-plus"; -import { - FullScreen -} from '@element-plus/icons-vue' -export default defineComponent({ - setup() { - let dialogVisible =ref<boolean>(false) - const fileList = ref<UploadUserFile[]>([ - // { - // name: "element-plus-logo.svg", - // url: "https://element-plus.org/images/element-plus-logo.svg", - // }, - // { - // name: "element-plus-logo2.svg", - // url: "https://element-plus.org/images/element-plus-logo.svg", - // }, - ]); - - const handleRemove: UploadProps["onRemove"] = (file, uploadFiles) => { - console.log(file, uploadFiles); - }; - - const handlePreview: UploadProps["onPreview"] = (uploadFile) => { - console.log(uploadFile); - }; - - const handleExceed: UploadProps["onExceed"] = (files, uploadFiles) => { - ElMessage.warning( - `The limit is 3, you selected ${ - files.length - } files this time, add up to ${ - files.length + uploadFiles.length - } totally` - ); - }; - - const beforeRemove: UploadProps["beforeRemove"] = ( - uploadFile, - uploadFiles - ) => { - return ElMessageBox.confirm( - `Cancel the transfert of ${uploadFile.name} ?` - ).then( - () => true, - () => false - ); - }; - // 打开弹窗 - const openDialog = (type:string,value:any,projectList: any,projectId:string) => { - dialogVisible.value=true - } - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - fileList, - handleRemove, - handlePreview, - handleExceed, - beforeRemove, - openDialog, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped lang="scss"> -.el-upload__tip{ - margin-left: 100px; - margin-top: 20px; -} -::v-deep .el-dialog__header{ - border-bottom: 1px solid #e8e8e8; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/contingency/index.vue b/src/views/contingencyManagement/contingency/index.vue index 8083231..e69de29 100644 --- a/src/views/contingencyManagement/contingency/index.vue +++ b/src/views/contingencyManagement/contingency/index.vue @@ -1,401 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-form :inline="true" class="demo-form-inline"> - <el-form-item> - <el-input size="default" v-model="listQuery.searchParams.teamName" placeholder="队伍名称"> </el-input> - </el-form-item> - <el-form-item> - <el-select size="default" v-model="listQuery.searchParams.teamLevel" placeholder="请选择队伍级别"> - <el-option label="公司" value="1"></el-option> - <el-option label="分厂-车间" value="2"></el-option> - <el-option label="工序-班组等" value="3"></el-option> - </el-select> - </el-form-item> - <el-form-item> - <el-button size="default" type="primary" class="ml10" @click="onSubmit"> - 查询 - </el-button> - <el-button size="default" class="ml10" @click="submitReset"> - 重置 - </el-button> - </el-form-item> - </el-form> - </div> - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> - <Plus /> - </el-icon>新建 - </el-button> - <el-button size="default" type="warning" plain :disabled="warning" @click="onEdit('修改', deleteAll[0])"> - <el-icon> - <Edit /> - </el-icon>修改 - </el-button> - <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </div> -<!-- <div class="button_Right">--> -<!-- <el-button size="default" @click="upButton">--> -<!-- <el-icon>--> -<!-- <Upload />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button size="default">--> -<!-- <el-icon>--> -<!-- <Download />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button size="default">--> -<!-- <el-icon>--> -<!-- <Refresh />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- </div>--> - </div> - <el-table - :data="tableData" - style="width: 100%" - ref="multipleTableRef" - @selection-change="handleSelectionChange" - > - <el-table-column - type="selection" - width="55" - /> - <el-table-column prop="teamName" label="队伍名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="teamLevel" label="队伍级别" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.teamLevel == 1">公司</span> - <span v-if="scope.row.teamLevel == 2">分厂-车间</span> - <span v-if="scope.row.teamLevel == 3">工序-班组等</span> - </template> - </el-table-column> - <el-table-column prop="teamDesc" label="队伍描述" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="principalPhone" label="负责人手机" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="fileList" label="相关附件" show-overflow-tooltip sortable> - - </el-table-column> - <el-table-column label="操作" width="200" align="center" fixed="right"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <View /> - </el-icon>查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <EditPen /> - </el-icon>修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - class="mt15" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:currentPage="pageIndex" - background - v-model:page-size="pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - > - </el-pagination> - </div> - </el-card> - <OpenAdd ref="addRef" @myAdd="onMyAdd" /> - <upData ref="upShow"></upData> - </div> -</template> - -<script lang="ts"> -import { - // toRefs, - reactive, - onMounted, - ref, - defineComponent -} from 'vue'; -import { - ElMessageBox, - ElMessage, -} from 'element-plus'; -import { - Plus, - Delete, - // Upload, - // Download, - // Refresh, - Edit, - View, - EditPen, -} from '@element-plus/icons-vue' - -import OpenAdd from '../../contingencyManagement/contingency/component/openAdd.vue' -import UpData from '../../contingencyManagement/contingency/component/upData.vue'; -import {contingencyApi} from "../../../api/contingencyManagement/contingency"; - -export default defineComponent({ - name: 'systemUser', - components: { - OpenAdd, - View, - Edit, - EditPen, - Plus, - Delete, - // Upload, - // Download, - // Refresh, - UpData, - contingencyApi - }, - setup() { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - teamName: "", - teamLevel: "", - } - }) - // 定义表格数据 - const tableData = ref([]); - // 列表数据请求 - const onSubmit = async () => { - let res = await contingencyApi().getTeamManagementList(listQuery) - if(res.data.code === '200'){ - tableData.value = res.data.data; - for(var a = 0;a<tableData.value.length;a++){ - if(tableData.value[a].fileList!=null&&tableData.value[a].fileList!=''&&tableData.value[a].fileList.length!=0){ - tableData.value[a].fileList = tableData.value[a].fileList[0].fileName - } - } - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - }else{ - ElMessage({ - showClose: true, - type:'error', - message:res.data.msg - }) - } - } - // 重置 - const submitReset = () => { - listQuery.searchParams.teamName = ''; - listQuery.searchParams.teamLevel = ''; - onSubmit(); - }; - const warning = ref(true); - const danger = ref(true); - const deleteAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deleteAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - - // 上传 - // const upShow=ref() - // const upButton=()=>{ - // upShow.value.openDialog() - // } - // 打开新增应急队伍弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建应急队伍管理'); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - onSubmit(); - } else { - onSubmit(); - } - }; - // 打开修改应急队伍弹窗 - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog('查看应急队伍管理',row,true); - } else { - addRef.value.openDialog('修改应急队伍管理',row,false); - } - }; - // 删除用户 - const onRowDel = (data: any) => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }).then(() => { - contingencyApi() - .deleteEmergencyTeam([data]) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }).catch(() => {}); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - contingencyApi() - .deleteEmergencyTeam(deleteAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - onSubmit(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - onSubmit(); - } - }); - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const onHandleSizeChange = (val: number) => { - listQuery.pageSize = val; - onSubmit(); - }; - const onHandleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - onSubmit(); - }; - // 页面加载时 - onMounted(() => { - onSubmit(); - }); - return { - listQuery, - onSubmit, - // upButton, - // upShow, - onOpenAdd, //新增 - addRef, - pageIndex, - pageSize, - total, - onEdit, - handleSelectionChange, - submitReset, - onRowDel, - onMyAdd, - tableData, - onDeleteAll, - onHandleSizeChange, - onHandleCurrentChange, - deleteAll, - warning, - danger, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box{ - padding: 20px; - background-color: #fff; -} -.tableForm{ - margin-top: 10px; -} -/*按钮行*/ - .button_Line{ - display: flex; - flex-direction: row; - justify-content: space-between; - margin-bottom: 10px; - } -//分页 -.pages{ - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -.el-form .el-form-item{ - margin-bottom: 0px!important; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending{ - border-bottom-color: #c0c4cc; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue index 5dad014..e69de29 100644 --- a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue +++ b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue @@ -1,325 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - title="应急演练计划--修改审批进度" - v-model="isShowDialog" - width="769px" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <!-- <img class="process-status-img" src="src/assets/icon.png"> --> - <el-tabs type="border-card"> - <el-tab-pane label="流转记录"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <span>流转记录</span> - </div> - </template> - <div> - <el-steps :active="2"> - <el-step title="开始" description="胡海涛,2022-07-09 20:41:50" /> - <el-step title="一级审批" description="管理员,2022-07-09 20:41:50" /> - </el-steps> - </div> - <el-table :data="tableData" stripe style="width: 100%"> - <el-table-column prop="date" label="执行环节" width="120" /> - <el-table-column prop="name" label="执行人" width="120" /> - <el-table-column prop="address" label="开始时间" width="100" /> - <el-table-column prop="address" label="结束时间" width="100" /> - <el-table-column prop="address" label="办理状态" width="100" /> - <el-table-column prop="address" label="审批意见" width="100" /> - <el-table-column prop="address" label="任务历时" width="100" /> - </el-table> - </el-card> - </el-tab-pane> - <el-tab-pane label="流程信息"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <span>流程信息</span> - </div> - </template> - <div> - <el-timeline> - <el-timeline-item timestamp="2018/4/12" placement="top" color="rgb(63, 158, 255)"> - <el-card> - <h4 style="margin: 10px 0;padding-bottom: 10px;">一级审批</h4> - <el-row> - <el-col class="tip" :span="22" :offset="1"> - <div class="item"> - <span class="label">审批人:</span> - <span class="value">管理员</span> - </div> - <div class="item"> - <span class="label">办理状态:</span> - <span class="value"> -<!-- <el-tag--> -<!-- v-for="item in items"--> -<!-- :key="item.label"--> -<!-- :type="item.type"--> -<!-- class="mx-1"--> -<!-- effect="dark"--> -<!-- >--> -<!-- {{ item.label }}--> -<!-- </el-tag>--> - <p class="text">等待审核</p> - </span> - </div> - <div class="item"> - <span class="label">审批意见:</span> - <span class="value">等待审核</span> - </div> - <div class="item"> - <span class="label">开始时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">结束时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">用时:</span> - <span class="value">0秒</span> - </div> - </el-col> - </el-row> - </el-card> - </el-timeline-item> - <el-timeline-item timestamp="2018/4/3" placement="top" color="rgb(63, 158, 255)"> - <el-card> - <h4>开始</h4> - <el-row> - <el-col class="tip" :span="22" :offset="1"> - <div class="item"> - <span class="label">审批人:</span> - <span class="value">胡海涛</span> - </div> - <div class="item"> - <span class="label">办理状态:</span> - <span class="value"> - <p class="text">开始</p> - </span> - </div> - <div class="item"> - <span class="label">审批意见:</span> - <span class="value">等待审核</span> - </div> - <div class="item"> - <span class="label">开始时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">结束时间:</span> - <span class="value">2022-07-09 20:41:50</span> - </div> - <div class="item"> - <span class="label">用时:</span> - <span class="value">0秒</span> - </div> - </el-col> - </el-row> - </el-card> - </el-timeline-item> - </el-timeline> - </div> - </el-card> - </el-tab-pane> - <el-tab-pane label="流程图"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <span>流程图</span> - </div> - </template> - <div> - </div> - </el-card> - </el-tab-pane> - </el-tabs> - </el-dialog> - <RegionsDialog ref="Shows"/> - <UserCheckbox ref="userRef"/> - </div> -</template> - -<script lang="ts"> -import { - - ref, - defineComponent -} from 'vue'; - -import type { - TagProps, -} from 'element-plus' - -import { - Search, - FullScreen -} from '@element-plus/icons-vue' -import UserCheckbox from "/@/components/userCheckbox/index.vue" -import RegionsDialog from "/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue" - -export default defineComponent({ - name: 'openAdd', - components: { - RegionsDialog, - UserCheckbox, - }, - setup() { - const isShowDialog = ref(false) - // 打开弹窗 - const openDialog = () => { - // state.ruleForm = row; - isShowDialog.value = true; - }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - { - date: '2016-05-02', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - { - date: '2016-05-04', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - { - date: '2016-05-01', - name: 'Tom', - address: '2022-07-09 20:41:50', - }, - ] - - type Item = { type: TagProps['type']; label: string } - - const items = ref<Array<Item>>([ - { type: '', label: '等待审核' }, - ]) - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - Search, - tableData, - items, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped lang="scss"> -.process-status-img{ - width: 128px; - height: auto; - position: absolute; - right: 10px; - top: 60px; - z-index: 999; -} -//弹窗底部边框线 -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -//弹窗顶部边框线 -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -//tabs字体颜色 -::v-deep .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{ - color: #a9d86e!important; -} -.card-header { - display: flex; - justify-content: space-between; - align-items: center; -} -//.box-card { -// width: 480px; -//} -//步骤条字体大小 -::v-deep .el-step__icon-inner{ - font-size: 14px!important; -} -//步骤条颜色 -::v-deep .el-step__line{ - background-color: #409eff; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending{ - border-bottom-color: #c0c4cc; -} - -.tip { - padding: 8px 16px; - background-color: #ecf8ff; - border-radius: 4px; - border-left: 5px solid #50bfff; - margin: 20px 0; -} -.item{ - height: 32px; - line-height: 32px; - margin-bottom: 8px; -} -.item .label { - display: inline-block; - height: 100%; - width: 70px; - font-size: 14px; - color: #5e6d82; - text-align: end; - vertical-align: top; -} -.item .value { - padding-left: 10px; - font-size: 14px; - max-width: calc(100% - 90px); - color: #5e6d82; - display: inline-block; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.text{ - background-color: #409eff; - color: #fff; - border-width: 1px; - border-style: solid; - border-radius: 4px; - height: 24px; - padding: 0 8px; - line-height: 22px; - display: inline-block; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue index b1a7099..e69de29 100644 --- a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue +++ b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue @@ -1,404 +0,0 @@ -<template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="button_Line"> - <div class="button_Left mb15"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> - <Plus /> - </el-icon>新建 - </el-button> - <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </div> - <div class="button_Right"> -<!-- <el-button @click="upButton">--> -<!-- <el-icon>--> -<!-- <Upload />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button>--> -<!-- <el-icon>--> -<!-- <Download />--> -<!-- </el-icon>--> -<!-- </el-button>--> -<!-- <el-button>--> -<!-- <el-icon>--> -<!-- <Refresh />--> -<!-- </el-icon>--> -<!-- </el-button>--> - </div> - </div> - <el-table - :data="tableData" - style="width: 100%" - ref="multipleTableRef" - @selection-change="handleSelectionChange" - > - <el-table-column - type="selection" - width="55" - /> - <el-table-column prop="drillName" label="演练名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillAddress" label="演练地点" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.drillWay == 1">综合</span> - <span v-if="scope.row.drillWay == 2">桌面</span> - <span v-if="scope.row.drillWay == 3">专项</span> - </template> - </el-table-column> - <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable> - <template #default="scope"> - <span v-if="scope.row.drillLevel == 1">公司级</span> - <span v-if="scope.row.drillLevel == 2">分厂级</span> - <span v-if="scope.row.drillLevel == 3">车间级</span> - </template> - </el-table-column> - <el-table-column prop="drillPlanDate" label="计划演练日期" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="gmtModitify" label="修改时间" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="260" align="center"> - <template #default="scope"> - <!--<el-button size="small" text type="primary" @click="releaseOfDrillPlan(0)">--> - <!--<el-icon style="margin-right: 5px;">--> - <!--<VideoPlay />--> - <!--</el-icon>启动--> - <!--</el-button>--> - <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <View /> - </el-icon>查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)"> - <el-icon style="margin-right: 5px;"> - <EditPen /> - </el-icon>修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> - <el-icon> - <Delete /> - </el-icon>删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-card> - <OpenAdd ref="addRef" @myAdd="onMyAdd"/> -<!-- <FlowChart ref="flowRef"></FlowChart>--> - <upData ref="upShow"></upData> - </div> -</template> - -<script lang="ts"> -import { - // toRefs, - reactive, - onMounted, - ref, - defineComponent -} from 'vue'; -import { - ElMessageBox, - ElMessage, - // ElTable, -} from 'element-plus'; -import { - Plus, - Delete, - // Upload, - // Download, - // Refresh, - View, - VideoPlay, - EditPen, -} from '@element-plus/icons-vue' -import {useRouter} from "vue-router" -import OpenAdd from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue'; -// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue'; -import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; -import { releaseDrillPlanApi } from '/@/api/contingencyManagement/emergencyDrillPlan'; - -export default defineComponent({ - name: 'systemUser', - components: { - OpenAdd, - EditPen, - Plus, - View, - Delete, - // Upload, - // Download, - // Refresh, - VideoPlay, - UpData, - // FlowChart, - }, - setup() { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - drillName: '' - }, - }); - // 定义表格数据 - const tableData = ref([]); - // 列表数据请求 - const listApi = async () => { - let res = await releaseDrillPlanApi().getReleaseDrillPlanList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }; - onMounted(() => { - listApi(); - }); - // 上传 - // const upShow=ref() - // const upButton=()=>{ - // upShow.value.openDialog() - // } - - // 打开新增弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建应急演练计划发布',false); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 打开修改用户弹窗 - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog('查看应急演练计划发布',row,true); - } else { - addRef.value.openDialog('修改应急演练计划发布',row,false); - } - }; - // 打开修改用户弹窗 - // const flowRef = ref(); - // const onflowChart = (row: TableDataRow) => { - // flowRef.value.openDialog(row); - // }; - // 删除 - const onRowDel = (id: number) => { - let arr = []; - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', '提示',{ - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }).then(() => { - releaseDrillPlanApi() - .deleteReleaseDrillPlan(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - releaseDrillPlanApi() - .deleteReleaseDrillPlan(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - listApi(); - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - listApi(); - }; - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - // console.log(deletAll.value); - if (val.length == 1) { - danger.value = false; - } else if (val.length == 0) { - danger.value = true; - } else { - danger.value = false; - } - }; - - // 启动跳转 - const router=useRouter() - const releaseOfDrillPlan=(data:string)=>{ - router.push({ - path:"/releaseOfDrillStart", - query:{ - type:data - } - }) - } - return { - // upButton, - // upShow, - tableData, - // onflowChart, - // flowRef, - onOpenAdd, //新增 - addRef, - onRowDel, - View , - pageIndex, - listQuery, - pageSize, - handleSizeChange, - handleCurrentChange, - router, - releaseOfDrillPlan, - listApi, - danger, - deletAll, - handleSelectionChange, - onMyAdd, - onDeleteAll, - onEdit, - total, - }; - }, -}); -</script> -<style scoped lang="scss"> -.table_Box{ - padding: 20px; - background-color: #fff; -} -.tableForm{ - margin-top: 10px; -} -/*按钮行*/ -.button_Line{ - display: flex; - flex-direction: row; - justify-content: space-between; -} -//表头 -::v-deep .el-table th.el-table__cell { - background-color: #f6f7fa; - font-weight: 400; - color: #909399; -} -.el-table .sort-caret.ascending{ - border-bottom-color: #c0c4cc; -} -//分页 -.pages{ - display: flex; - justify-content: flex-end; - margin-top: 15px; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled{ - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next{ - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/abolishLibrary.vue b/src/views/contingencyManagement/panManagement/component/abolishLibrary.vue index c36b1e3..e69de29 100644 --- a/src/views/contingencyManagement/panManagement/component/abolishLibrary.vue +++ b/src/views/contingencyManagement/panManagement/component/abolishLibrary.vue @@ -1,226 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog title="废止库" v-model="isShowDialog" width="60%" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row :gutter="35"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-table - :data="tableData" - style="width: 100%; margin-top: 15px" - ref="multipleTableRef" - :model="formInline" - :header-cell-style="{ background: '#f6f7fa', color: '#909399' }" - > - <el-table-column prop="name" label="预案名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="type" label="预案类型" show-overflow-tooltip sortable> - <template #default="scope"> - <div v-if="scope.row.type==1">综合应急预案</div> - <div v-if="scope.row.type==2">现场处置方案</div> - <div v-if="scope.row.type==3">专项应急预案</div> - <div v-if="scope.row.type==4">其他预案</div> - </template> - </el-table-column> - <el-table-column prop="authorName" label="编写人" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="releaseDate" label="发布实施日期" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="200" align="center"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onReduction(scope.row.id)">还原 </el-button> - </template> - </el-table-column> - </el-table> - </el-col> - </el-row> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - class="mt15" - background - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - /> - </div> - <template #footer> - <span class="dialog-footer"> - <el-button @click="onCancel">取消</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -import { ref, reactive, defineComponent, onMounted } from 'vue'; - -import type { FormInstance } from 'element-plus'; -import { - // ElMessageBox, - ElMessage, -} from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import { emergencyPlanApi } from '../../../../api/contingencyManagement/emergencyPlan'; -export default defineComponent({ - name: 'abolishLibrary', - components: {}, - setup(prop, { emit }) { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - abolishStatus: true, - }, - }); - // 定义表格数据 - const tableData = ref([]); - - // 列表数据请求 - const openDialog = async () => { - isShowDialog.value = true; - let res = await emergencyPlanApi().getEmergencyPlanList(listQuery); - if (res.data.code === '200') { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - type: 'error', - message: res.data.msg, - }); - } - }; - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - // 打开弹窗 - // const openDialog = () => { - // isShowDialog.value = true; - // }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - // 取消 - const onCancel = () => { - closeDialog(); - }; - const onReduction = async (id: number) => { - isShowDialog.value = false; - emergencyPlanApi() - .reductionEmergencyTeam(id) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - openDialog(); - } - }) - .catch(() => {}); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - tableData, - Search, - ruleFormRef, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - toggleFullscreen, - FullScreen, - full, - listQuery, - // onSubmit, - total, - emit, - onReduction, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -//分页 -.pages { - display: flex; - justify-content: flex-end; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/approval.vue b/src/views/contingencyManagement/panManagement/component/approval.vue index aed57e8..e69de29 100644 --- a/src/views/contingencyManagement/panManagement/component/approval.vue +++ b/src/views/contingencyManagement/panManagement/component/approval.vue @@ -1,239 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="40%" draggable :fullscreen="full" :close-on-click-modal="false"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="120px" :disabled="disabled"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批名称" prop="workName"> - <el-input v-model="ruleForm.workName" placeholder="请填写队伍名称" disabled></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批标题" prop="title"> - <el-input v-model="ruleForm.title" placeholder="请填写审批名称" disabled></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批人" prop="approvePersonId"> - <el-input v-model="ruleForm.approvePersonName" placeholder="请选择" class="input-with-select" disabled> - <template #append> - <el-button :icon="Search" @click="openUser" :disabled="disabled"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="审批结果" prop="authorUid"> - <el-radio-group v-model="ruleForm.approveResult"> - <el-radio :label="false">不通过</el-radio> - <el-radio :label="true">通过</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="审批意见" prop="approveMemo"> - <el-input v-model="ruleForm.approveMemo" type="textarea" placeholder="请填写审批意见"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="是否完成" prop="complete" @change="typeChang"> - <el-radio-group v-model="ruleForm.complete"> - <el-radio :label="false">是</el-radio> - <el-radio :label="true">否</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批名称" prop="twoWorkName"> - <el-input v-model="ruleForm.twoWorkName" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批标题" prop="twoTitle"> - <el-input v-model="ruleForm.twoTitle" placeholder="请填写审批名称"></el-input> - </el-form-item> - </el-col> - <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批人" prop="twoApprovePersonName"> - <el-input v-model="ruleForm.twoApprovePersonName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent } from 'vue'; - -import type { FormInstance } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue'; -import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; - -export default defineComponent({ - name: 'openAdd', - components: { - DailogSearchUserManger, - }, - setup(prop, { emit }) { - const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - const ruleForm = ref({ - approveId: '', - workName: '', // 审批名称 - title: '', //审批标题 - approvePersonId: '', // - approvePersonName: '', // 审批人 - approveStatus: 2, //审批状态 - relateType: 1, //业务类型 - approveResult: false, //审批结果 - approveMemo: '', //审批意见 - relateId: '', - twoWorkName: '', - twoTitle: '', - twoApprovePersonId: '', - twoApprovePersonName: '', - }); - const titles = ref(); - const disabled = ref(); - const uid = ref(); - // 打开弹窗 - const openDialog = (title: string, approveId: number, type: boolean, id: number) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - - uid.value = approveId; - if (title == '查看审批' || title == '审批') { - emergencyPlanApi() - .approvalProcessEmergencyPlan(approveId) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - ruleForm.value.relateId = id; - } - }); - } - }; - const submitForm = async () => { - console.log(ruleForm.value); - - ruleForm.value.workName = ruleForm.value.twoWorkName; - ruleForm.value.title = ruleForm.value.twoTitle; - ruleForm.value.approvePersonId = ruleForm.value.twoApprovePersonId; - ruleForm.value.approvePersonName = ruleForm.value.twoApprovePersonName; - ruleForm.value.relateType = 1; - isShowDialog.value = false; - if(ruleForm.value.complete == false) { - ruleForm.value.approveStatus=3 - } - delete ruleForm.value.gmtCreate - delete ruleForm.value.complete - delete ruleForm.value.submitPersonName - - delete ruleForm.value.twoApprovePersonId - delete ruleForm.value.twoApprovePersonName - delete ruleForm.value.twoTitle - delete ruleForm.value.twoWorkName - emergencyPlanApi() - .editApprovalEmergencyPlan(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - }); - }; - const resetForm = () => { - isShowDialog.value = false; - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - //回显 - const onUser = (e: any) => { - ruleForm.value.twoApprovePersonId = e[0].uid; - ruleForm.value.twoApprovePersonName = e[0].realName; - }; - const typeChang = () => { - console.log('tag', ruleForm); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - Search, - submitForm, - openUser, - userRef, - toggleFullscreen, - FullScreen, - full, - titles, - disabled, - emit, - isShowDialog, - ruleFormRef, - ruleForm, - resetForm, - onUser, - typeChang, - uid, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/approvalProcess.vue b/src/views/contingencyManagement/panManagement/component/approvalProcess.vue index 209c51a..e69de29 100644 --- a/src/views/contingencyManagement/panManagement/component/approvalProcess.vue +++ b/src/views/contingencyManagement/panManagement/component/approvalProcess.vue @@ -1,196 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog title="查看审批流程" v-model="isShowDialog" width="60%" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row :gutter="35"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-table - :data="tableData" - style="width: 100%; margin-top: 15px" - ref="multipleTableRef" - :model="formInline" - :header-cell-style="{ background: '#f6f7fa', color: '#909399' }" - > - <el-table-column prop="workName" label="审批人" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="title" label="审批标题" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="approvePersonName" label="编写人" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="approveMemo" label="审批意见" show-overflow-tooltip sortable></el-table-column> - </el-table> - </el-col> - </el-row> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - class="mt15" - background - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - /> - </div> - <template #footer> - <span class="dialog-footer"> - <el-button @click="onCancel">取消</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -import { ref, reactive, defineComponent, onMounted } from 'vue'; - -import type { FormInstance } from 'element-plus'; -import { - // ElMessageBox, - ElMessage, -} from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import { emergencyPlanApi } from '../../../../api/contingencyManagement/emergencyPlan'; -export default defineComponent({ - name: 'abolishLibrary', - components: {}, - setup(prop, { emit }) { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - relateType: 1, - relateId: '', - startTime: '', - endTime: '', - }, - }); - // 定义表格数据 - const tableData = ref([]); - - // 列表数据请求 - const uid = ref(); - const openDialog = async (id: number) => { - isShowDialog.value = true; - listQuery.searchParams.relateId=id - uid.value = id; - let res = await emergencyPlanApi().processEmergencyPlan(listQuery); - if (res.data.code === '200') { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - type: 'error', - message: res.data.msg, - }); - } - }; - - const isShowDialog = ref(false); - - const ruleFormRef = ref<FormInstance>(); - // 打开弹窗 - // const openDialog = () => { - // isShowDialog.value = true; - // }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - // 取消 - const onCancel = () => { - closeDialog(); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - tableData, - Search, - ruleFormRef, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - toggleFullscreen, - FullScreen, - full, - listQuery, - total, - emit, - uid, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -//分页 -.pages { - display: flex; - justify-content: flex-end; -} -::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; -} -::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -::v-deep .el-pagination button:disabled { - color: #c0c4cc; -} -::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/initiateApproval.vue b/src/views/contingencyManagement/panManagement/component/initiateApproval.vue index eb2afa2..e69de29 100644 --- a/src/views/contingencyManagement/panManagement/component/initiateApproval.vue +++ b/src/views/contingencyManagement/panManagement/component/initiateApproval.vue @@ -1,159 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog title="发起审批" v-model="isShowDialog" width="40%" draggable :fullscreen="full" :close-on-click-modal="false"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="120px"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批名称" prop="workName"> - <el-input v-model="ruleForm.workName" placeholder="请填写审批名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批标题" prop="title"> - <el-input v-model="ruleForm.title" placeholder="请填写审批名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批人" prop="approvePersonId"> - <el-input v-model="ruleForm.approvePersonName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button size="default" type="primary" @click="submitForm">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent } from 'vue'; - -import type { FormInstance } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue'; -import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; - -export default defineComponent({ - name: 'openAdd', - components: { - DailogSearchUserManger, - }, - setup(prop, { emit }) { - const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - const ruleForm = ref({ - workName: '', // 审批名称 - title: '', //审批标题 - approvePersonId: '', - approvePersonName: '', - approveStatus: 2, - relateType: 1, - relateId: '', - }); - const titles = ref(); - - // 打开弹窗 - const openDialog = (title: string, id: number) => { - isShowDialog.value = true; - titles.value = title; - ruleForm.value.relateId = id; - uid.value = id; - }; - const uid = ref(); - const submitForm = async () => { - isShowDialog.value = false; - - emergencyPlanApi() - .approvalEmergencyPlan(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - }); - }; - const resetForm = () => { - isShowDialog.value = false; - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - //回显 - const onUser = (e: any) => { - ruleForm.value.approvePersonId = e[0].uid; - ruleForm.value.approvePersonName = e[0].realName; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - Search, - submitForm, - openUser, - userRef, - toggleFullscreen, - FullScreen, - full, - titles, - emit, - isShowDialog, - ruleFormRef, - ruleForm, - resetForm, - onUser, - uid, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/openAdd.vue b/src/views/contingencyManagement/panManagement/component/openAdd.vue index 4114bb7..e69de29 100644 --- a/src/views/contingencyManagement/panManagement/component/openAdd.vue +++ b/src/views/contingencyManagement/panManagement/component/openAdd.vue @@ -1,471 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - :title="titles" - v-model="isShowDialog" - width="50%" - draggable - :fullscreen="full" - :close-on-click-modal="false" - @close="resetForm(ruleFormRef)" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="120px" :disabled="disabled"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="预案名称" prop="name"> - <el-input v-model="ruleForm.name" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="适用部门" prop="responsibleDepartment"> - <el-tree-select - v-model="responsibleDepartment" - :data="newTreeList" - class="w100" - clearable - :props="propse" - multiple - :render-after-expand="false" - check-strictly - check-on-click-node - placeholder="请选择" - @change="changeDepartment" - /> - <el-divider /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="预案类型" prop="type"> - <el-select v-model="ruleForm.type" class="w100" placeholder="请选择"> - <el-option label="综合应急预案" value="1"></el-option> - <el-option label="现场处置方案" value="2"></el-option> - <el-option label="专项应急预案" value="3"></el-option> - <el-option label="其他预案" value="4"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="危险源关联" prop="associatedDanger"> - <el-select v-model="ruleForm.associatedDanger" class="w100" placeholder="请选择"> - <el-option label="是" :value="false"></el-option> - <el-option label="否" :value="true"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="预案级别" prop="level"> - <el-select v-model="ruleForm.level" class="w100" placeholder="请选择"> - <el-option label="公司级" value="1"></el-option> - <el-option label="分厂级" value="2"></el-option> - <el-option label="车间级" value="3"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="编写人" prop="authorId"> - <el-input v-model="ruleForm.authorName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="编写部门" prop="authorDeptId"> - <el-tree-select - v-model="ruleForm.authorDeptId" - :data="newTreeList" - class="w100" - :props="propse" - clearable - :render-after-expand="false" - placeholder="请选择" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="发布实施日期" prop="releaseDate"> - <el-date-picker - v-model="ruleForm.releaseDate" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急队伍" prop="emergencyTeam"> - <el-input v-model="ruleForm.teamName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt(0)" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="相关附件"> - <uploaderFile :fileList="fileList" :systemName="'EMERGENCY'" :disabled="disabled" - @successUploader="successUploader"></uploaderFile> - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> - <!-- <el-form-item label="区域名称" prop="areaName">--> - <!-- <el-input--> - <!-- v-model="ruleForm.areaName"--> - <!-- placeholder="请选择"--> - <!-- class="input-with-select"--> - <!-- >--> - <!-- <template #append>--> - <!-- <el-button :icon="Search" @click="regionsDialog"/>--> - <!-- </template>--> - <!-- </el-input>--> - <!-- </el-form-item>--> - <!-- </el-col>--> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - <CheckTemplate ref="Shows" @SearchUser="SearchUser" /> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser" /> - <RegionsDialog ref="openRef" /> - </div> -</template> - -<script lang="ts"> -import { ref, defineComponent, onMounted } from 'vue'; - -import type { UploadUserFile, FormInstance } from 'element-plus'; -import { ElMessage } from 'element-plus'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue'; -import CheckTemplate from '/@/components/checkTemplate/index.vue'; -import RegionsDialog from '/@/components/regionsDialog/index.vue'; -import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; -import { goalManagementApi } from '/@/api/goalManagement'; -import uploaderFile from '/@/components/uploaderFile/index.vue'; -export default defineComponent({ - name: 'openAdd', - components: { - CheckTemplate, - DailogSearchUserManger, - RegionsDialog, - uploaderFile - }, - setup(prop, { emit }) { - const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - const ruleForm = ref({ - name: '', // 预案名称 - type: '', //预案类型 - associatedDanger: '', // 危险源关联 - level: '', // 预案级别 - authorUid: '', // 编写人 - authorName: '', - authorDeptId: '', // 编写部门 - releaseDate: '', // 发布实施日期 - fileList: [], - areaList: [], //区域列表 - teamList: [], - // teamId: '', //应急队伍 - deptList: [], - }); - const titles = ref(); - const disabled = ref(); - - // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { - isShowDialog.value = true; - titles.value = title; - disabled.value = type; - if (title == '查看应急预案管理' || title == '修改应急预案管理') { - emergencyPlanApi() - .seeEmergencyTeam(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - ruleForm.value.teamName = '' - responsibleDepartment.value = [] - if(res.data.data.teamList){ - for(var a = 0;a<res.data.data.teamList.length;a++){ - ruleForm.value.teamName+=res.data.data.teamList[a].teamName+';' - } - } - if(res.data.data.deptList){ - for(var a = 0;a<res.data.data.deptList.length;a++){ - - responsibleDepartment.value.push(res.data.data.deptList[a].departmentId) - } - } - fileList.value = (res.data.data.fileList?res.data.data.fileList:[]) - initFileListData() - } - }); - } - }; - const initFileListData = async () => { - for(var a = 0;a<fileList.value.length;a++){ - fileList.value[a].name = fileList.value[a].fileName - } - } - // 上传成功组装数据 - const successUploader = (list) =>{ - fileList.value = list - const formFileList = [] - for(var a = 0;a<fileList.value.length;a++){ - formFileList.push( - { - fileName:fileList.value[a].fileName, - fileUrl:'' - } - ) - } - ruleForm.value.fileList = formFileList - } - //日期选择器 - const releaseDate = ref(''); - // 上传附件 - const fileList = ref([]); - //el-tree-select回显 - const propse = { - label: 'depName', - children: 'children', - }; - const newTreeList = []; - //得到部门树 - const department = async () => { - await goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - getTreeList(res.data.data, newTreeList); - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 递归树状数据且修改字段名 - const getTreeList = (treeList, newTreeList) => { - treeList.map((c) => { - let tempData = { - depName: c.depName, - value: c.depId, - children: [], - }; - if (c.children && c.children.length > 0) { - tempData.children = []; - getTreeList(c.children, tempData.children); - } - newTreeList.push(tempData); - }); - }; - onMounted(() => { - department(); - }); - const changeDepartment = (e) => { - var temList = []; - for (var a = 0; a < e.length; a++) { - temList.push({ - departmentId: e[a], - }); - } - ruleForm.value.deptList = temList; - console.log(ruleForm); - }; - //定义树形下拉框 - const responsibleDepartment = ref([]); - const data = ref(); - - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if(!ruleForm.value.fileList){ - ruleForm.value.fileList = [] - } - if (title == '新建应急预案管理') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - delete ruleForm.value.teamName - emergencyPlanApi() - .addEmergencyPlan(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - } else if (title == '修改应急预案管理') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - delete ruleForm.value.teamName - emergencyPlanApi() - .editEmergencyTeam(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - } else { - console.log('error submit!', fields); - } - }); - formEl.resetFields(); - ruleForm.value = { - name: '', // 预案名称 - type: '', //预案类型 - associatedDanger: '', // 危险源关联 - level: '', // 预案级别 - authorUid: '', // 编写人 - authorName: '', - authorDeptId: '', // 编写部门 - releaseDate: '', // 发布实施日期 - fileList: [], - // teamId: '', //应急队伍ID - areaList: [], //区域列表 - teamList: [], - deptList: [], - }; - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - ruleForm.value = {}; - fileList.value = [] - }; - // 应急队伍弹窗 - const Shows = ref(); - const daiInpt = (data: any) => { - Shows.value.openDailog(data); - }; - const SearchUser = (val: any) => { - let arr = []; - ruleForm.value.teamList = []; - for (let i = 0; i < val.length; i++) { - arr.push(val[i].teamName); - ruleForm.value.teamList.push({ - teamId: val[i].id, - }); - } - ruleForm.value.teamName = arr.toString(); - }; - // 选择区域弹窗 - const openRef = ref(); - const regionsDialog = () => { - openRef.value.openDailog(); - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - //回显 - const onUser = (e: any) => { - ruleForm.value.authorUid = e[0].uid; - ruleForm.value.authorName = e[0].realName; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - fileList, - responsibleDepartment, - data, - Search, - releaseDate, - // treeSelect, - // trees, - propse, - department, - daiInpt, - Shows, - SearchUser, - submitForm, - openUser, - userRef, - regionsDialog, - openRef, - toggleFullscreen, - FullScreen, - full, - titles, - disabled, - emit, - isShowDialog, - ruleFormRef, - ruleForm, - resetForm, - onUser, - newTreeList, - changeDepartment, - successUploader, - initFileListData - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea { - height: 168px !important; -} -.textarea ::v-deep .el-textarea__inner { - height: 168px !important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal { - height: 0; - margin: 0; - border-top: transparent; -} -.el-select { - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/startUp.vue b/src/views/contingencyManagement/panManagement/component/startUp.vue index 49f5500..e69de29 100644 --- a/src/views/contingencyManagement/panManagement/component/startUp.vue +++ b/src/views/contingencyManagement/panManagement/component/startUp.vue @@ -1,160 +0,0 @@ -<template> - <div class="system-edit-user-container"> - <el-dialog - :title="titles" - v-model="isShowDialog" - width="30%" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="ruleForm" ref="ruleFormRef" label-width="80px"> - <el-form-item label="备注" > - <el-input v-model="ruleForm.remark" type="textarea" autocomplete="off" /> - </el-form-item> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">取消</el-button> - <el-button size="default" type="primary" @click="submitForm(titles,ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -import { - ref, - defineComponent -} from 'vue'; - -import type { - FormInstance, -} from 'element-plus' -import { ElMessage } from 'element-plus'; -import { - Search, - FullScreen -} from '@element-plus/icons-vue' -import {emergencyPlanLogApi} from "/@/api/contingencyManagement/emergencyPlanLog"; - -export default defineComponent({ - name: 'openAdd', - components: { - }, - setup(prop, {emit}) { - const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - - const ruleForm = ref({ - // id: id, - remark: '', - }) - const titles = ref(); - const disabled = ref(); - // 打开弹窗 - // const openDialog = (title: string ,id: number,) => { - // isShowDialog.value = true; - // titles.value = title; - // if (title == '启动') { - // emergencyPlanLogApi() - // .seeEmergencyPlanLog(id) - // .then((res) => { - // if (res.data.code == 200) { - // ruleForm.value = res.data.data; - // } - // }); - // } - // }; - const openDialog = (title: string) => { - isShowDialog.value = true; - titles.value = title; - }; - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '启动') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyPlanLogApi() - .addEmergencyPlanLog(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - formEl.resetFields(); - }); - ruleForm.value = { - // id: id, - remark: '', - } - } else { - console.log('error submit!', fields); - } - }); - } - }; - const resetForm = (formEl: FormInstance | undefined) => { - isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - Search, - toggleFullscreen, - FullScreen, - full, - titles, - emit, - isShowDialog, - ruleFormRef, - ruleForm, - submitForm, - disabled, - resetForm, - }; - }, -}); -</script> -<style scoped lang="scss"> -.textarea{ - height: 168px!important; -} -.textarea ::v-deep .el-textarea__inner{ - height: 168px!important; -} -::v-deep .el-table__cell { - font-weight: 400; -} -.el-divider--horizontal{ - height: 0; - margin: 0; - border-top: transparent; -} -.el-select{ - width: 100%; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/upData.vue b/src/views/contingencyManagement/panManagement/component/upData.vue index cc3e2d0..e69de29 100644 --- a/src/views/contingencyManagement/panManagement/component/upData.vue +++ b/src/views/contingencyManagement/panManagement/component/upData.vue @@ -1,125 +0,0 @@ -<template> - <el-dialog - v-model="dialogVisible" - title="导入Excel" - width="50%" - draggable - :fullscreen="full" - > - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - multiple - :on-preview="handlePreview" - :on-remove="handleRemove" - :before-remove="beforeRemove" - :limit="3" - :on-exceed="handleExceed" - > - <el-button size="default">下载模板</el-button> - <el-button size="default" type="primary">点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 只允许导入“xls”或“xlsx”格式文件! - </div> - </template> - </el-upload> - </el-dialog> -</template> -<script lang="ts"> -import { ref, - defineComponent, -} from "vue"; -import { - ElMessage, - ElMessageBox -} from "element-plus"; -import type { - UploadProps, - UploadUserFile, -} from "element-plus"; -import { - FullScreen -} from '@element-plus/icons-vue' -export default defineComponent({ - setup() { - let dialogVisible =ref<boolean>(false) - const fileList = ref<UploadUserFile[]>([ - // { - // name: "element-plus-logo.svg", - // url: "https://element-plus.org/images/element-plus-logo.svg", - // }, - // { - // name: "element-plus-logo2.svg", - // url: "https://element-plus.org/images/element-plus-logo.svg", - // }, - ]); - - const handleRemove: UploadProps["onRemove"] = (file, uploadFiles) => { - console.log(file, uploadFiles); - }; - - const handlePreview: UploadProps["onPreview"] = (uploadFile) => { - console.log(uploadFile); - }; - - const handleExceed: UploadProps["onExceed"] = (files, uploadFiles) => { - ElMessage.warning( - `The limit is 3, you selected ${ - files.length - } files this time, add up to ${ - files.length + uploadFiles.length - } totally` - ); - }; - - const beforeRemove: UploadProps["beforeRemove"] = ( - uploadFile, - uploadFiles - ) => { - return ElMessageBox.confirm( - `Cancel the transfert of ${uploadFile.name} ?` - ).then( - () => true, - () => false - ); - }; - // 打开弹窗 - const openDialog = (type:string,value:any,projectList: any,projectId:string) => { - dialogVisible.value=true - } - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - fileList, - handleRemove, - handlePreview, - handleExceed, - beforeRemove, - openDialog, - toggleFullscreen, - FullScreen, - full, - }; - }, -}); -</script> -<style scoped lang="scss"> -.el-upload__tip{ - margin-left: 100px; - margin-top: 20px; -} -::v-deep .el-dialog__header{ - border-bottom: 1px solid #e8e8e8; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/processForm/component/formInformationTop.vue b/src/views/contingencyManagement/processForm/component/formInformationTop.vue index ef75063..e69de29 100644 --- a/src/views/contingencyManagement/processForm/component/formInformationTop.vue +++ b/src/views/contingencyManagement/processForm/component/formInformationTop.vue @@ -1,144 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标指标"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="指标值"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" style="padding: 0 20px"> - <el-tab-pane label="考核指标" name="1"> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" type="index" label="序号" width="70" /> - <el-table-column align="center" prop="date" label="责任部门" /> - <el-table-column align="center" prop="name" label="考核指标" /> - <el-table-column align="center" prop="address" label="制定部门" /> - <el-table-column align="center" prop="address" label="制定日期" /> - <el-table-column align="center" label="检查值"> - <template #default> - <el-input v-model="form.name" placeholder=""></el-input> - </template> - </el-table-column> - <el-table-column align="center" prop="address" label="检查人" /> - <el-table-column align="center" prop="address" label="检查时间" /> - </el-table> - <div class="tiao"> - <div class="typeS">审批</div> - </div> - <el-row style="padding:20px 0"> - <el-col :span="6" style="text-align:right">一级审批:</el-col> - <el-col :span="18">同意</el-col> - </el-row> - <el-row style="padding:0 0 20px 0"> - <el-col :span="6"></el-col> - <el-col :span="18"><span class="logoColor">同意</span><span style="margin-right: 8px;">杜建喜</span><span>2021-05-24 04:47:42</span></el-col> - </el-row> - </el-tab-pane> - </el-tabs> -</template> -<script lang="ts"> -import { defineComponent,ref,reactive } from 'vue' - -export default defineComponent({ - setup() { - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const activeName = ref('1'); - return{ - form, - tableData, - activeName - } - }, -}) -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0 ; -} -</style> diff --git a/src/views/contingencyManagement/processForm/component/formInformationTops.vue b/src/views/contingencyManagement/processForm/component/formInformationTops.vue index 53eed6a..e69de29 100644 --- a/src/views/contingencyManagement/processForm/component/formInformationTops.vue +++ b/src/views/contingencyManagement/processForm/component/formInformationTops.vue @@ -1,312 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="12"> - <el-form-item label="预案名称"> - <el-input v-model="form.name" placeholder="请填写预案名称"></el-input> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="适用部门"> - <el-tree-select - class="select" - placeholder="请选择" - v-model="value" - :data="data" - :render-after-expand="false" - show-checkbox - multiple - clearable - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="预案类型"> - <el-select class="select" v-model="form.region" placeholder="请选择"> - <el-option label="综合应急预案" value="shanghai" /> - <el-option label="现场处置方案" value="beijing" /> - <el-option label="专项应急预案" value="shanghai" /> - <el-option label="其它预案" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="危险源关联"> - <el-select class="select" v-model="form.region" placeholder="请选择"> - <el-option label="是" value="shanghai" /> - <el-option label="否" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="预案级别"> - <el-select class="select" v-model="form.region" placeholder="请选择"> - <el-option label="公司及" value="shanghai" /> - <el-option label="分厂级" value="beijing" /> - <el-option label="车间级" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="编写人"> - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="openUser"/> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="编写部门" placeholder="请选择"> - <el-tree-select - class="select" - v-model="value2" - :data="dataSelect" - :render-after-expand="false" - multiple - check-strictly - check-on-click-node - clearable - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="发布实施日期"> - <el-date-picker v-model="datetime" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急队伍" prop="telephone" @click="daiInpt" > - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search"/> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="预案附件"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - :on-change="handleChange" - > - <el-button type="primary" - >点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 添加相关附件 - </div> - </template> - </el-upload> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="区域名称" prop="telephone"> - <el-input - v-model="form.teamLeader" - placeholder="请选择" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" @click="regionsDialog"/> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <checkTemplate ref="ShowRef"/> - <userSelections ref="userRef"/> - <RegionsDialog ref="openRef"/> -</template> -<script lang="ts"> -import { - defineComponent, - ref, - reactive -} from 'vue'; -import { - Search -} from '@element-plus/icons-vue' -import UserSelections from "/@/components/userSelections/index.vue" -import CheckTemplate from "/@/components/checkTemplate/index.vue" -import RegionsDialog from "/@/components/regionsDialog/index.vue"; -export default defineComponent({ - components: { - CheckTemplate, - UserSelections, - RegionsDialog, - }, - setup() { - const form = reactive({ - name: '', - value: '', - value2: '', - teamLeader: '', - - // data: '', - // dataSelect: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - - // 可选择树形选择框 - const value = ref() - - const data = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '生产运行部', - children: [ - { - value: '1-1-1', - label: '工艺二班', - }, - ], - }, - ], - } - ] - // 树形选择框 - const value2 = ref() - - const dataSelect = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '1-1', - label: '生产运行部', - children: [ - { - value: '1-1-1', - label: '工艺二班', - }, - ], - }, - ], - } - ] - // 应急队伍弹窗 - const ShowRef=ref() - const daiInpt=()=>{ - ShowRef.value.openDailog() - } - // 选择区域弹窗 - const openRef=ref() - const regionsDialog=()=>{ - openRef.value.openDailog() - } - // 打开编写人选择用户弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); - }; - // 日期选择 - const datetime = ref('') - return { - form, - value, - data, - value2, - dataSelect, - openUser, - userRef, - Search, - ShowRef, - daiInpt, - openRef, - datetime, - regionsDialog, - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box { - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao { - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0; - position: relative; -} -.typeS { - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor { - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns { - width: 100%; - padding: 20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); -} -.title2 { - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0; -} -.select{ - width: 100%; -} -.select ::v-deep .el-select{ - width: 100%; -} -</style> diff --git a/src/views/contingencyManagement/processForm/component/lowerPlate.vue b/src/views/contingencyManagement/processForm/component/lowerPlate.vue index cbb82fb..e69de29 100644 --- a/src/views/contingencyManagement/processForm/component/lowerPlate.vue +++ b/src/views/contingencyManagement/processForm/component/lowerPlate.vue @@ -1,120 +0,0 @@ -<template> - <div class="box"> - <el-form ref="formS" :model="form" :rules="rules" label-width="120px"> - <el-row> - <el-col :span="15"> - <el-form-item label="流程标题"> - <el-input v-model="form.names" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label="下级审批日期"> - <el-date-picker v-model="form.date1" type="date" placeholder="下级审批日期" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.delivery" label="是否抄送" @change="typeChang"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.delivery"> - <el-col :span="15"> - <el-form-item label="抄送给" prop="resource"> - <el-input v-model="form.resource" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.type" label="指定下一步处理者(不设置就使用默认处理人)"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.type"> - <el-col :span="15"> - <el-form-item label="指定" prop="desc"> - <el-input v-model="form.desc" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - <DailogSearchUser ref="ShowUser"></DailogSearchUser> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue' -import { Search } from '@element-plus/icons-vue'; -import type { FormInstance, FormRules } from 'element-plus' -export default defineComponent({ - components:{DailogSearchUser}, - setup() { - const formS=ref<FormInstance>() - let form = reactive({ - names: '', - region: '', - date1: '', - date2: '', - delivery: "", - type: "", - resource: '', - desc: '', - }); - const typeChang=()=>{ - console.log('tag',form) - } - const rules = reactive<FormRules>({ - resource: [ - { - type: 'array', - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ], - desc: [ - { - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ]}) - const ShowUser=ref() - const openDai =()=>{ - ShowUser.value.openDailog() - } - return { - form, - rules, - formS, - typeChang, - ShowUser, - openDai, - Search, - }; - }, -}); -</script> - -<style scoped> -.box { - margin: 30px 0 100px 0; - background-color: #fff; - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); - padding: 20px; -} -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/processForm/processForm.vue b/src/views/contingencyManagement/processForm/processForm.vue index 98218a0..e69de29 100644 --- a/src/views/contingencyManagement/processForm/processForm.vue +++ b/src/views/contingencyManagement/processForm/processForm.vue @@ -1,137 +0,0 @@ -<template> - <div class="system-user-container"> - <h4 class="title">胡海涛2022-07-01 16:08:42发起了目标检查上报(检查)--检查</h4> - <div class="box"> - <el-menu - :default-active="activeIndex" - class="el-menu-demo" - background-color="#ebeef5" - text-color="#fff" - active-text-color="#fff" - mode="horizontal" - @select="handleSelect" - > - <el-menu-item index="1">表单信息</el-menu-item> - <el-menu-item index="2">流程图</el-menu-item> - </el-menu> - <div v-if="activeIndex == 1" class="navType"> - <formInformationTop v-if="false"></formInformationTop> - <formInformationTops></formInformationTops> - </div> - <div v-if="activeIndex == 2" class="navType" style="padding:20px 20px 0 20px"> - <div class="title2">流程图</div> - <div style="width:100%;height:400px"></div> - </div> - </div> - <lowerPlate></lowerPlate> - <div class="btns"> - <el-button type="primary">启动</el-button> - </div> - </div> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref,onMounted } from 'vue'; -import { useRouter } from 'vue-router'; -import formInformationTop from './component/formInformationTop.vue' -import formInformationTops from './component/formInformationTops.vue' -import lowerPlate from './component/lowerPlate.vue' -export default defineComponent({ - components:{lowerPlate,formInformationTop,formInformationTops}, - setup() { - const activeIndex = ref('1'); - const handleSelect = (key: string, keyPath: string[]) => { - // console.log(key, keyPath); - activeIndex.value = key; - }; - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - - const router=useRouter() - const Type=onMounted(()=>{ - // console.log("xxxxxxx",router) - }) - - return { - activeIndex, - handleSelect, - form, - router, - Type - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; - padding: 15px; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} - -/*弹窗底部边框线*/ -::v-deep .el-dialog__footer{ - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -/*弹窗顶部边框线*/ -::v-deep .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - margin-right: 0; - border-radius: 4px 4px 0 0; -} -</style> diff --git a/src/views/facilityManagement/EquipmentStatistics/index.vue b/src/views/facilityManagement/EquipmentStatistics/index.vue index 136eea1..e69de29 100644 --- a/src/views/facilityManagement/EquipmentStatistics/index.vue +++ b/src/views/facilityManagement/EquipmentStatistics/index.vue @@ -1,101 +0,0 @@ -<template> - <div class="box"> - <div class="title">设备设施统计</div> - <div ref="main" style="width: 100%; height: 400px"></div> - </div> -</template> -<script lang="ts"> -import { defineComponent, onMounted, ref } from 'vue'; -import * as echarts from 'echarts'; -import { ElMessage } from 'element-plus'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -export default defineComponent({ - setup() { - const listApi = () => { - facilityManagementApi() - .getequipmentInfoStatistics() - .then((res) => { - if (res.data.code == 200) { - let arr = []; - arr = res.data.data; - let date = []; - for (let i = 0; i < arr.length; i++) { - if (arr[i].stopStatus == 1) { - date[0] = arr[i].count; - } else if (arr[i].stopStatus == 2) { - date[1] = arr[i].count; - }else if (arr[i].stopStatus == 3) { - date[2] = arr[i].count; - }else if (arr[i].stopStatus == 4) { - date[3] = arr[i].count; - }else if (arr[i].stopStatus == -1) { - date[4] = arr[i].count; - } - } - init(date); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - onMounted(() => { - listApi(); - }); - const main = ref(); - const init = (data: any) => { - var myChart = echarts.init(main.value); - var option = { - tooltip: {}, - grid: { - left: '3%', - right: '4%', - bottom: '5%', - containLabel: true, - }, - xAxis: { - type: 'category', - data: ['停用 ', '在用', '维修 ', '报废', '超时未保养'], - }, - yAxis: { - type: 'value', - name: '数量', - nameTextStyle: { - color: '#aaa', - nameLocation: 'start', - }, - }, - color: ['#6394f9'], - series: [ - { - data: data, - type: 'bar', - }, - ], - }; - - myChart.setOption(option); - }; - return { - init, - onMounted, - main, - listApi, - }; - }, -}); -</script> -<style scoped> -.box { - background-color: #fff; - box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%); -} -.title { - font-size: 16px; - border-bottom: 1px solid #eee; - padding: 20px; -} -</style> diff --git a/src/views/facilityManagement/InstrumentationInformation/index.vue b/src/views/facilityManagement/InstrumentationInformation/index.vue index 9d64291..e69de29 100644 --- a/src/views/facilityManagement/InstrumentationInformation/index.vue +++ b/src/views/facilityManagement/InstrumentationInformation/index.vue @@ -1,391 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.qName" placeholder="装置设施名称" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row> - <el-col :span="4"> - <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> - <div class="tree"> - <!-- <el-tree ref="treeRef" class="filter-tree" :data="data" :props="props" :filter-node-method="filterNode" /> --> - <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" :filter-node-method="filterNode" /> - </div> - </el-col> - <el-col :span="20"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen" - @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="openUp"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClicks" style="margin: 0 5%"> - <el-tab-pane label="设备保养" name="first"> - <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> - <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonName" align="center" label="保养负责人" sortable /> - <el-table-column property="takecareDate" align="center" :formatter="timeDate" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentName" align="center" label="保养负责人单位" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备检查" name="second" - ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonName" align="center" label="检查人" sortable /> - <el-table-column property="createTime" align="center" :formatter="timeDate" label="检查日期" sortable /> - <el-table-column property="name" align="center" label="检查人部门" sortable /> - <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> - <el-table-column property="name" align="center" label="检查状态" sortable /> </el-table - ></el-tab-pane> - <el-tab-pane label="设备检测" name="third"> - <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonName" align="center" label="检测人" sortable /> - <el-table-column property="testDate" align="center" :formatter="timeDate" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentName" align="center" label="检测人单位" sortable /> - <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column align="center" label="检测结果"> - <template #default="scope"> - <span v-if="scope.row.testResult == 1">成功</span> - <span v-if="scope.row.testResult == 2">失败</span> - </template> - </el-table-column> - <el-table-column property="testStatus" align="center" label="检测状态" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备维修" name="fourth"> - <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> - <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column align="center" label="维修状态"> - <template #default="scope"> - <span v-if="scope.row.repairStatus == 1">维修中</span> - <span v-if="scope.row.repairStatus == 2">已修好</span> - </template> - </el-table-column> - <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonName" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentName" align="center" label="维修负责人单位" sortable /> - <el-table-column property="repairStartDate" align="center" :formatter="timeDate" label="维修开始日期" sortable /> - <el-table-column property="repairEndDate" align="center" :formatter="timeDate" label="维修结束日期" sortable /> - </el-table> - </el-tab-pane> - </el-tabs> - </template> - </el-table-column> - <el-table-column property="qName" label="装置设施名称" align="center" sortable /> - <el-table-column property="positionNum" align="center" label="装置设施位号" sortable /> - <el-table-column property="qUsage" align="center" label="装置设施用途" sortable /> - <el-table-column property="model" label="装置设施型号" align="center" sortable show-overflow-tooltip /> - <el-table-column property="equipmentTypeId" label="类型/类别外键" align="center" sortable show-overflow-tooltip /> - <el-table-column property="setPart" label="设施部位" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </el-col> - </el-row> - <!-- <updata ref="Show"></updata> --> - <Dailog ref="openAdd" @navAddorUpdata="onAddorUpdata"></Dailog> - </div> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive, watch, onMounted } from 'vue'; -import { timeDate } from '/@/assets/index.ts'; -import updata from '/@/components/updata/updata.vue'; -import Dailog from '/@/components/equipmentDailog/Dailog.vue'; -import { ElTree, TabsPaneContext, ElMessage, ElMessageBox } from 'element-plus'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import { EditPen, View, Plus, Delete, Download, Refresh, Upload } from '@element-plus/icons-vue'; -interface Tree { - label: string; - children?: Tree[]; -} -export default defineComponent({ - components: { updata, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////名称 - positionNum: '', ////位号 - equipmentTypeId: '', - infoType: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.positionNum = ''; - ruleForm.searchParams.equipmentTypeId = ''; - listApiTree() - listApi(); - }; - const listApi = () => { - facilityManagementApi() - .getequipmentInfoList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDailog(title, false, id, 0); - }; - // 删除 - const onDelete = (id: number) => { - let arr = []; - arr.push(id); - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - const filterText = ref(''); - const treeRef = ref<InstanceType<typeof ElTree>>(); - // 树形 - const listApiTree = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const props = { - label: 'typeName', - children: 'childList', - value: 'id', - }; - watch(filterText, (val) => { - treeRef.value!.filter(val); - }); - - const filterNode = (value: string, data: Tree) => { - if (!value) return true; - return data.typeName.includes(value); - }; - const handleNodeClick = (data: Tree) => { - ruleForm.searchParams.positionNum = data.sortNum; - ruleForm.searchParams.equipmentTypeId = data.id; - listApi(); - }; - const data = ref([]); - onMounted(() => { - listApiTree(); - }); - const handleClicks = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - - const activeName = ref('first'); - // const Show=ref() - // const openUp=()=>{ - // Show.value.openDialog() - // } - return { - handleNodeClick, - ruleForm, - timeDate, - resetForm, - listApi, - onAddorUpdata, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - listApiTree, - handleClicks, - filterText, - treeRef, - props, - filterNode, - data, - openAdd, - openD, - activeName, - Plus, - EditPen, - Delete, - Download, - Refresh, - View, - Upload, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.tree { - height: 750px; - background-color: #fff; - overflow: hidden; - overflow-y: auto; -} -.btns { - padding: 10px 0px 10px 10px; - display: flex; - justify-content: space-between; - background-color: #fff; -} -</style> diff --git a/src/views/facilityManagement/ProductionEquipment/index.vue b/src/views/facilityManagement/ProductionEquipment/index.vue index 70edf54..e69de29 100644 --- a/src/views/facilityManagement/ProductionEquipment/index.vue +++ b/src/views/facilityManagement/ProductionEquipment/index.vue @@ -1,390 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.qName" placeholder="装置设施名称" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row> - <el-col :span="4"> - <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> - <div class="tree"> - - <!-- <el-tree ref="treeRef" class="filter-tree" :data="data" :props="props" :filter-node-method="filterNode" /> --> - <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" :filter-node-method="filterNode" /> - </div> - </el-col> - <el-col :span="20"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen" - @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="openUp"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClicks" style="margin: 0 5%"> - <el-tab-pane label="设备保养" name="first"> - <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> - <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonName" align="center" label="保养负责人" sortable /> - <el-table-column property="takecareDate" align="center" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentName" align="center" label="保养负责人单位" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备检查" name="second" - ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonName" align="center" label="检查人" sortable /> - <el-table-column property="createTime" align="center" label="检查日期" sortable /> - <el-table-column property="name" align="center" label="检查人部门" sortable /> - <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> - <el-table-column property="name" align="center" label="检查状态" sortable /> </el-table - ></el-tab-pane> - <el-tab-pane label="设备检测" name="third"> - <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonName" align="center" label="检测人" sortable /> - <el-table-column property="testDate" align="center" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentName" align="center" label="检测人单位" sortable /> - <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column align="center" label="检测结果"> - <template #default="scope"> - <span v-if="scope.row.testResult == 1">成功</span> - <span v-if="scope.row.testResult == 2">失败</span> - </template> - </el-table-column> - <el-table-column property="testStatus" align="center" label="检测状态" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备维修" name="fourth"> - <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> - <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column align="center" label="维修状态"> - <template #default="scope"> - <span v-if="scope.row.repairStatus == 1">维修中</span> - <span v-if="scope.row.repairStatus == 2">已修好</span> - </template> - </el-table-column> - <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonName" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentName" align="center" label="维修负责人单位" sortable /> - <el-table-column property="repairStartDate" align="center" label="维修开始日期" sortable /> - <el-table-column property="repairEndDate" align="center" label="维修结束日期" sortable /> - </el-table> - </el-tab-pane> - </el-tabs> - </template> - </el-table-column> - <el-table-column property="qName" label="装置设施名称" align="center" sortable /> - <el-table-column property="positionNum" align="center" label="装置设施位号" sortable /> - <el-table-column property="qUsage" align="center" label="装置设施用途" sortable /> - <el-table-column property="model" label="装置设施型号" align="center" sortable show-overflow-tooltip /> - <el-table-column property="equipmentTypeId" label="类型/类别外键" align="center" sortable show-overflow-tooltip /> - <el-table-column property="setPart" label="设施部位" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </el-col> - </el-row> - <!-- <updata ref="Show"></updata> --> - <Dailog ref="openAdd" @navAddorUpdata="onAddorUpdata"></Dailog> - </div> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive, watch, onMounted } from 'vue'; -import updata from '/@/components/updata/updata.vue'; -import Dailog from '/@/components/equipmentDailog/Dailog.vue'; -import { ElTree, TabsPaneContext, ElMessage, ElMessageBox } from 'element-plus'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import { EditPen, View, Plus, Delete, Download, Refresh, Upload } from '@element-plus/icons-vue'; -interface Tree { - label: string; - children?: Tree[]; -} -export default defineComponent({ - components: { updata, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////名称 - positionNum: '', ////位号 - equipmentTypeId:"", - infoType: 1, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.positionNum = ''; - ruleForm.searchParams.equipmentTypeId = ''; - listApiTree() - listApi(); - }; - const listApi = () => { - facilityManagementApi() - .getequipmentInfoList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDailog(title,true,id,1); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - const filterText = ref(''); - const treeRef = ref<InstanceType<typeof ElTree>>(); - // 树形 - const listApiTree = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - data.value= res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const props = { - label: 'typeName', - children: 'childList', - value: 'id', - } - watch(filterText, (val) => { - treeRef.value!.filter(val); - }); - - const filterNode = (value: string, data: Tree) => { - if (!value) return true; - return data.typeName.includes(value); - }; - const handleNodeClick=(data: Tree)=>{ - ruleForm.searchParams.equipmentTypeId=data.id - ruleForm.searchParams.equipmentTypeId = data.id; - listApi(); - } - const data=ref([]) - onMounted(() => { - listApiTree(); - }); - const handleClicks = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - - const activeName = ref('first'); - // const Show=ref() - // const openUp=()=>{ - // Show.value.openDialog() - // } - return { - handleNodeClick, - ruleForm, - resetForm, - listApi, - onAddorUpdata, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - listApiTree, - handleClicks, - filterText, - treeRef, - props, - filterNode, - data, - openAdd, - openD, - activeName, - Plus, - EditPen, - Delete, - Download, - Refresh, - View, - Upload, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.tree { - height: 750px; - background-color: #fff; - overflow: hidden; - overflow-y: auto; -} -.btns { - padding: 10px 0px 10px 10px; - display: flex; - justify-content: space-between; - background-color: #fff; -} -</style> diff --git a/src/views/facilityManagement/deviceType/component/Dailog.vue b/src/views/facilityManagement/deviceType/component/Dailog.vue index ce4d7af..e69de29 100644 --- a/src/views/facilityManagement/deviceType/component/Dailog.vue +++ b/src/views/facilityManagement/deviceType/component/Dailog.vue @@ -1,198 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :fullscreen="full" @close="resetForm(ruleFormRef)" :title="titles" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" ref="ruleFormRef" :rules="rules" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="是否为设备内容" size="default" prop="isContent"> - <el-select v-model="form.isContent" placeholder="请选择" style="width: 100%"> - <el-option label="是" :value="1" /> - <el-option label="否" :value="2" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="父级编号" size="default" prop="parentId"> - <el-tree-select clearable check-strictly="true" v-model="form.parentId" :data="data" :props="propst" class="w100" placeholder="请选择" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="类别名称" size="default" prop="typeName"> - <el-input v-model="form.typeName" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="排列序列" size="default" prop="sortNum"> - <el-input v-model.number="form.sortNum" /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)">关闭</el-button> - <el-button type="primary" @click="submitForm(ruleFormRef)">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import type { FormInstance, FormRules } from 'element-plus'; -import { FullScreen } from '@element-plus/icons-vue'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import { ElMessage } from 'element-plus'; -import { type } from 'os'; -export default defineComponent({ - setup(prpos, { emit }) { - const dialogVisible = ref(false); - const form = ref({ - isContent: '', ////是否为设备内容 1:是 2:否 - typeName: '', ////类别名称 - parentId: '', ////父级ID,如果没有父级,为0 - isCheck: 0, ////是否检测 1:是 2:否 - isVisit: 0, ////是否巡检 1:是 2:否 - sortNum: '', //排列序列 - // id: '', //设备类型ID ,更新时必填 - }); - const titles = ref(); - const titleT = ref(); - const disabled = ref(false); - const openDailog = (title: string, id: number) => { - listApi(); - titleT.value = title; - dialogVisible.value = true; - titles.value = `${title}设备设施类型管理`; - if (title == '查看') { - disabled.value = true; - detail(id); - } else if (title == '修改') { - detail(id); - } else if (title == '添加') { - form.value.parentId = id; - } - }; - const detail = (id: number) => { - facilityManagementApi() - .getequipmentTypeMngDetail(id) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - // 列表 - const listApi = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const data = ref([]); - const propst = { - label: 'typeName', - children: 'childList', - value: 'id', - }; - const ruleFormRef = ref<FormInstance>(); - const rules = reactive<FormRules>({ - isContent: [{ required: true, message: '是否为设备内容不能为空', trigger: 'change' }], - parentId: [], - typeName: [{ required: true, message: '类别名称不能为空', trigger: 'change' }], - sortNum: [ - { required: true, message: '排列序列不能为空', trigger: 'change' }, - { type: 'number', message: '请输入数字!', trigger: 'change' }, - ], - }); - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - if (titleT.value == '新建') { - delete form.value.id; - } - facilityManagementApi() - .getequipmentTypeMngAddOrUpdate(form.value) - .then((res) => { - if (res.data.code == 200) { - dialogVisible.value = false; - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('onAdd'); - formEl.resetFields(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - } else { - console.log('error submit!', fields); - } - }); - disabled.value=false - }; - const resetForm = (formEl: FormInstance | undefined) => { - if (!formEl) return; - formEl.resetFields(); - dialogVisible.value = false; - disabled.value=false - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - titleT, - detail, - rules, - ruleFormRef, - listApi, - propst, - submitForm, - resetForm, - data, - disabled, - dialogVisible, - form, - titles, - openDailog, - full, - toggleFullscreen, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> diff --git a/src/views/facilityManagement/deviceType/index.vue b/src/views/facilityManagement/deviceType/index.vue index 11958ec..e69de29 100644 --- a/src/views/facilityManagement/deviceType/index.vue +++ b/src/views/facilityManagement/deviceType/index.vue @@ -1,130 +0,0 @@ -<template> - <div class="box"> - <el-button type="primary" :icon="Plus" @click="openD('新建', 0)" size="default">新建</el-button> - <el-table :data="tableData" style="width: 100%" row-key="id" :tree-props="propse"> - <el-table-column align="center" label="是否为设备内容"> - <template #default="scope"> - <span v-if="scope.row.isContent == 1">是</span> - <span v-if="scope.row.isContent == 2">否</span> - </template> - </el-table-column> - <el-table-column align="center" label="巡检"> - <template #default="scope"> - <span v-if="scope.row.isVisit == 0">-</span> - <span v-if="scope.row.isVisit == 1">是</span> - <span v-if="scope.row.isVisit == 2">否</span> - </template> - </el-table-column> - <el-table-column align="center" label="检测"> - <template #default="scope"> - <span v-if="scope.row.isCheck == 0">-</span> - <span v-if="scope.row.isCheck == 1">是</span> - <span v-if="scope.row.isCheck == 2">否</span> - </template> - </el-table-column> - <el-table-column align="center" prop="typeName" label="类别名称" /> - <el-table-column align="center" label="操作"> - <template #default="scope"> - <el-button type="primary" link :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button type="primary" link :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button type="primary" link :icon="Delete" @click="Deletes(scope.row.id)">删除</el-button> - <el-button type="primary" link :icon="CirclePlus" @click="openD('添加', scope.row.id)">添加下级设备设施类型管理</el-button> - </template> - </el-table-column> - </el-table> - <Dailog ref="Show" @onAdd="add"></Dailog> - </div> -</template> -<script lang="ts"> -import { defineComponent, onMounted, ref } from 'vue'; -import { Plus, View, EditPen, Delete, CirclePlus } from '@element-plus/icons-vue'; -import Dailog from './component/Dailog.vue'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import { ElMessage,ElMessageBox } from 'element-plus'; -export default defineComponent({ - components: { Dailog }, - setup() { - // 列表 - const listApi = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - onMounted(() => { - listApi(); - }); - // 删除 - const Deletes = (id: number) => { - let arr = []; - arr.push(id); - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentTypeMngDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - const add = () => { - listApi(); - }; - const tableData = ref(); - const propse = { - children: 'childList', - }; - const Show = ref(); - const openD = (title: string, id: number) => { - Show.value.openDailog(title, id); - }; - return { - propse, - add, - tableData, - Show, - Deletes, - openD, - listApi, - Plus, - View, - EditPen, - CirclePlus, - Delete, - }; - }, -}); -</script> -<style scoped> -.box { - padding: 20px; - background-color: #fff; -} -</style> diff --git a/src/views/facilityManagement/keyEquipment/index.vue b/src/views/facilityManagement/keyEquipment/index.vue index 36c634d..e69de29 100644 --- a/src/views/facilityManagement/keyEquipment/index.vue +++ b/src/views/facilityManagement/keyEquipment/index.vue @@ -1,449 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.name" placeholder="装置/部位名称"/> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row> - <el-col :span="4"> - <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字"/> - <div class="tree"> - <!-- <el-input v-model="filterText" style="height: 30px" placeholder="Filter keyword" />--> - <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" - :filter-node-method="filterNode"/> - </div> - </el-col> - <el-col :span="20"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen" - @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" - plain>删除 - </el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="openUp"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" - style="width: 100%"> - <el-table-column type="selection" align="center" width="55"/> - <el-table-column type="expand"> - <template #default="scope"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick" - style="margin: 0 5%"> - <el-tab-pane label="设备保养" name="first"> - <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" - style="width: 100%"> - <el-table-column property="takecareMemo" align="center" label="保养情况" - sortable/> - <el-table-column property="leadingPersonName" align="center" label="保养负责人" - sortable/> - <el-table-column property="takecareDate" align="center" - :formatter="timeDate" label="保养日期" sortable/> - <el-table-column property="leadingPersonDepartmentName" align="center" - label="保养负责人单位" sortable/> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备检查" name="second" - > - <el-table ref="multipleTableRef" :data="scope.row.checkDetailList" - style="width: 100%"> - <el-table-column property="testPersonName" align="center" label="检查人" - sortable/> - <el-table-column property="testDate" align="center" :formatter="timeDate" - label="检查日期" sortable/> - <el-table-column property="testPersonDepartmentName" align="center" label="检查人部门" sortable/> - <el-table-column property="testResult" align="center" label="检查结果" - sortable> - <template #default="scope"> - <span v-if="scope.row.testResult == 1">成功</span> - <span v-if="scope.row.testResult == 2">失败</span> - </template> - </el-table-column> - <el-table-column property="testStatus" align="center" label="检查状态" sortable/> - </el-table - > - </el-tab-pane> - <el-tab-pane label="设备检测" name="third"> - <el-table ref="multipleTableRef" :data="scope.row.testDetailList" - style="width: 100%"> - <el-table-column property="repairPersonName" align="center" label="检测人" - sortable/> - <el-table-column property="repairStarDate" align="center" :formatter="timeDate" - label="检测日期" sortable/> - <el-table-column property="repairPersonDepartmentName" align="center" - label="检测人单位" sortable/> - <el-table-column property="testMemo" align="center" label="检测内容" sortable/> - <el-table-column property="testResult" align="center" label="检测结果" - sortable/> - <el-table-column property="testStatus" align="center" label="检测状态" - sortable/> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备维修" name="fourth"> - <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" - style="width: 100%"> - <el-table-column property="exceptionInfo" align="center" label="设施异常项" - sortable/> - <el-table-column property="repairStatus" align="center" label="维修状态" - sortable> - <template #default="scope"> - <span v-if="scope.row.repairStatus == 1">维修中</span> - <span v-if="scope.row.repairStatus == 2">已维修</span> - </template> - - </el-table-column> - <el-table-column property="repairMemo" align="center" label="维修情况" - sortable/> - <el-table-column property="repairPersonName" align="center" label="维修负责人" - sortable/> - <el-table-column property="repairPersonDepartmentName" align="center" - label="维修负责人单位" sortable/> - <el-table-column property="repairStartDate" align="center" - :formatter="timeDate" label="维修开始日期" sortable/> - <el-table-column property="repairEndDate" align="center" - :formatter="timeDate" label="维修结束日期" sortable/> - </el-table> - </el-tab-pane> - </el-tabs> - </template> - </el-table-column> - <el-table-column property="equipmentTypeName" align="center" label="类型/类别外键" sortable/> - <el-table-column property="name" align="center" label="装置/部位名称" sortable/> - <el-table-column property="departmentName" label="所属部门" align="center" sortable - show-overflow-tooltip/> - <el-table-column property="position" label="具体位置" align="center" sortable - show-overflow-tooltip/> - <el-table-column property="leadingPersonName" label="负责人姓名" align="center" sortable - show-overflow-tooltip/> - <el-table-column property="partType" label="装置部位分类" align="center" sortable - show-overflow-tooltip> - <template #default="scope"> - <span v-if="scope.row.partType == 1">关键装置</span> - <span v-if="scope.row.partType == 2">重点部位</span> - </template> - </el-table-column> - <el-table-column label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" - @click="openD('查看', scope.row.id)">查看 - </el-button> - <el-button link type="primary" size="default" :icon="EditPen" - @click="openD('修改', scope.row.id)">修改 - </el-button> - <el-button link type="primary" size="default" :icon="Delete" - @click="onDelete(scope.row.id)">删除 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </el-col> - </el-row> - <!-- <updata ref="Show"></updata>--> - <DailogS ref="ShowD" @navAddorUpdata="onAddorUpdata"></DailogS> - </div> -</template> -<script lang="ts"> - import {defineComponent, ref, reactive, watch, onMounted} from 'vue'; - // import updata from '/@/components/updata/updata.vue' - import DailogS from '/@/components/equipmentDailog/DailogS.vue'; - import {ElTree, TabsPaneContext, ElMessage, ElMessageBox} from 'element-plus'; - import {EditPen, Plus, Delete, Download, Refresh, Upload, View} from '@element-plus/icons-vue'; - import {facilityManagementApi} from '/@/api/facilityManagement'; - import {timeDate} from '/@/assets/index.ts' - - interface Tree { - label: string; - children?: Tree[]; - } - - export default defineComponent({ - components: { - // updata, - DailogS, - }, - setup() { - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - // equipmentTypeId: '', ////类型/类别外键 - name: '', ////装置/部位名称 - // departmentId: '',////所属部门 - // position: '', ////具体位置 - // leadingPersonName: '', ////负责人姓名 - // connectPersonId: '',////装置部位分类 - // infoTpe: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 3:重点监管装置/设备 - equipmentTypeId: '' - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.equipmentTypeId = ''; - listApi(); - }; - const listApi = () => { - // delete ruleForm.qName - facilityManagementApi() - .getkeypointEquipmentInfoAddOrList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const filterText = ref(''); - const treeRef = ref<InstanceType<typeof ElTree>>(); - // 树形 - const listApiTree = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - console.log(res.data.data); - data.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const props = { - label: 'typeName', - children: 'childList', - value: 'id', - } - watch(filterText, (val) => { - treeRef.value!.filter(val); - }); - const filterNode = (value: string, data: Tree) => { - if (!value) return true; - return data.typeName.includes(value); - }; - const handleNodeClick = (data: Tree) => { - console.log(data) - ruleForm.searchParams.equipmentTypeId = data.id; - - listApi(); - }; - const data = ref([]); - onMounted(() => { - listApiTree(); - }); - // 删除 - const onDelete = (id: number) => { - let arr = [] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getkeypointEquipmentInfoDetele(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - // const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - // warning.value = false; - danger.value = false; - } else if (val.length == 0) { - // warning.value = true; - danger.value = true; - } else { - // warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getkeypointEquipmentInfoDetele(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - - const activeName = ref('first'); - - const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - // const Show=ref() - // const openUp=()=>{ - // Show.value.openDialog() - // } - // 新增弹窗 - const ShowD = ref(); - const openD = (title: String, id: number) => { - ShowD.value.openDailog(title, false, id, 2); - }; - return { - activeName, - handleClick, - ruleForm, - filterText, - treeRef, - props, - filterNode, - data, - tableData, - // Show, - // openUp, - ShowD, - danger, - openD, - // openEdit, - Plus, - EditPen, - listApiTree, - Delete, - View, - Download, - Refresh, - Upload, - resetForm, - listApi, - handleCurrentChange, - handleSizeChange, - onAddorUpdata, - total, - currentPage4, - pageSize4, - onDelete, - // warning, - handleSelectionChange, - onDeleteAll, - handleNodeClick, - timeDate, - deletAll - }; - }, - }); -</script> -<style scoped> - .topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; - } - - .tree { - height: 750px; - background-color: #fff; - overflow: hidden; - overflow-y: auto; - } - - .btns { - padding: 10px 0px 10px 10px; - display: flex; - justify-content: space-between; - background-color: #fff; - } -</style> diff --git a/src/views/facilityManagement/safetyEquipment/index.vue b/src/views/facilityManagement/safetyEquipment/index.vue index d7f3ac5..e69de29 100644 --- a/src/views/facilityManagement/safetyEquipment/index.vue +++ b/src/views/facilityManagement/safetyEquipment/index.vue @@ -1,391 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.qName" placeholder="装置设施名称" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row> - <el-col :span="4"> - <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> - <div class="tree"> - <!-- <el-tree ref="treeRef" class="filter-tree" :data="data" :props="props" :filter-node-method="filterNode" /> --> - <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" :filter-node-method="filterNode" /> - </div> - </el-col> - <el-col :span="20"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen" - @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="openUp"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClicks" style="margin: 0 5%"> - <el-tab-pane label="设备保养" name="first"> - <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> - <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonName" align="center" label="保养负责人" sortable /> - <el-table-column property="takecareDate" align="center" :formatter="timeDate" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentName" align="center" label="保养负责人单位" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备检查" name="second" - ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonName" align="center" label="检查人" sortable /> - <el-table-column property="createTime" align="center" :formatter="timeDate" label="检查日期" sortable /> - <el-table-column property="name" align="center" label="检查人部门" sortable /> - <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> - <el-table-column property="name" align="center" label="检查状态" sortable /> </el-table - ></el-tab-pane> - <el-tab-pane label="设备检测" name="third"> - <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonName" align="center" label="检测人" sortable /> - <el-table-column property="testDate" align="center" :formatter="timeDate" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentName" align="center" label="检测人单位" sortable /> - <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column align="center" label="检测结果"> - <template #default="scope"> - <span v-if="scope.row.testResult == 1">成功</span> - <span v-if="scope.row.testResult == 2">失败</span> - </template> - </el-table-column> - <el-table-column property="testStatus" align="center" label="检测状态" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备维修" name="fourth"> - <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> - <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column align="center" label="维修状态"> - <template #default="scope"> - <span v-if="scope.row.repairStatus == 1">维修中</span> - <span v-if="scope.row.repairStatus == 2">已修好</span> - </template> - </el-table-column> - <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonName" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentName" align="center" label="维修负责人单位" sortable /> - <el-table-column property="repairStartDate" align="center" :formatter="timeDate" label="维修开始日期" sortable /> - <el-table-column property="repairEndDate" align="center" :formatter="timeDate" label="维修结束日期" sortable /> - </el-table> - </el-tab-pane> - </el-tabs> - </template> - </el-table-column> - <el-table-column property="qName" label="装置设施名称" align="center" sortable /> - <el-table-column property="positionNum" align="center" label="装置设施位号" sortable /> - <el-table-column property="qUsage" align="center" label="装置设施用途" sortable /> - <el-table-column property="model" label="装置设施型号" align="center" sortable show-overflow-tooltip /> - <el-table-column property="equipmentTypeId" label="类型/类别外键" align="center" sortable show-overflow-tooltip /> - <el-table-column property="setPart" label="设施部位" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </el-col> - </el-row> - <!-- <updata ref="Show"></updata> --> - <Dailog ref="openAdd" @navAddorUpdata="onAddorUpdata"></Dailog> - </div> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive, watch, onMounted } from 'vue'; -import updata from '/@/components/updata/updata.vue'; -import Dailog from '/@/components/equipmentDailog/Dailog.vue'; -import { ElTree, TabsPaneContext, ElMessage, ElMessageBox } from 'element-plus'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import { timeDate } from '/@/assets/index.ts'; -import { EditPen, View, Plus, Delete, Download, Refresh, Upload } from '@element-plus/icons-vue'; -interface Tree { - label: string; - children?: Tree[]; -} -export default defineComponent({ - components: { updata, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////名称 - positionNum: '', ////位号 - equipmentTypeId: '', - infoType: 2, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.positionNum = ''; - ruleForm.searchParams.equipmentTypeId = ''; - listApiTree() - listApi(); - }; - const listApi = () => { - facilityManagementApi() - .getequipmentInfoList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDailog(title, false, id, 2); - }; - // 删除 - const onDelete = (id: number) => { - let arr = []; - arr.push(id); - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getequipmentInfoDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - const filterText = ref(''); - const treeRef = ref<InstanceType<typeof ElTree>>(); - // 树形 - const listApiTree = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const props = { - label: 'typeName', - children: 'childList', - value: 'id', - }; - watch(filterText, (val) => { - treeRef.value!.filter(val); - }); - - const filterNode = (value: string, data: Tree) => { - if (!value) return true; - return data.typeName.includes(value); - }; - const handleNodeClick = (data: Tree) => { - ruleForm.searchParams.equipmentTypeId = data.id; - ruleForm.searchParams.equipmentTypeId = data.id; - listApi(); - }; - const data = ref([]); - onMounted(() => { - listApiTree(); - }); - const handleClicks = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - - const activeName = ref('first'); - // const Show=ref() - // const openUp=()=>{ - // Show.value.openDialog() - // } - return { - handleNodeClick, - ruleForm, - resetForm, - listApi, - onAddorUpdata, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - listApiTree, - handleClicks, - filterText, - treeRef, - props, - filterNode, - data, - openAdd, - openD, - activeName, - Plus, - EditPen, - Delete, - Download, - Refresh, - View, - Upload, - timeDate, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.tree { - height: 750px; - background-color: #fff; - overflow: hidden; - overflow-y: auto; -} -.btns { - padding: 10px 0px 10px 10px; - display: flex; - justify-content: space-between; - background-color: #fff; -} -</style> diff --git a/src/views/goalManagement/Goalsummary/index.vue b/src/views/goalManagement/Goalsummary/index.vue index a345459..e69de29 100644 --- a/src/views/goalManagement/Goalsummary/index.vue +++ b/src/views/goalManagement/Goalsummary/index.vue @@ -1,227 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.year" placeholder="年度" /> - </el-form-item> - </el-col> - <el-col :span="4" > - <el-form-item size="default"> - <el-tree-select v-model="ruleForm.searchParams.departmentId" :data="data" class="w100" placeholder="请选择" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <div class="btns"> - <p>汇总日期:2022-07-04 23:00:07</p> - <div> - <el-button type="primary" size="default" :icon="Download" @click="exportExcel('tab1', '会员明细.xlsx')">导出</el-button> - </div> - </div> - <el-table :data="tableData" style="width: 100%" id="tab1"> - <el-table-column label="责任部门" align="center"> - <template #default="scope">{{ scope.row.departmentId }}</template> - </el-table-column> - <el-table-column property="targetValue" align="center" label="安全目标指标" /> - <el-table-column property="examineValue" label="考核指标" align="center" show-overflow-tooltip /> - <el-table-column property="yiYue" label="1月" align="center" show-overflow-tooltip /> - <el-table-column property="february" label="2月" align="center" show-overflow-tooltip /> - <el-table-column property="erYue" label="3月" align="center" show-overflow-tooltip /> - <el-table-column property="sanYue" label="4月" align="center" show-overflow-tooltip /> - <el-table-column property="siYue" label="5月" align="center" show-overflow-tooltip /> - <el-table-column property="wuYue" label="6月" align="center" show-overflow-tooltip /> - <el-table-column property="liuYue" label="7月" align="center" show-overflow-tooltip /> - <el-table-column property="qiYue" label="8月" align="center" show-overflow-tooltip /> - <el-table-column property="baYue" label="9月" align="center" show-overflow-tooltip /> - <el-table-column property="jiuYue" label="10月" align="center" show-overflow-tooltip /> - <el-table-column property="shiYue" label="11月" align="center" show-overflow-tooltip /> - <el-table-column property="shiyiYue" label="12月" align="center" show-overflow-tooltip /> - <el-table-column label="考核结果" align="center"> - <template #default="scope">{{ scope.row.examineResult }}</template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> -</template> -<script lang="ts"> -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; - -import * as XLSX from 'xlsx'; - -export default defineComponent({ - components: { ElButton, ElInput }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - year: '', //年度 - departmentId: '', //责任部门 - }, - }); - // 下方导航与表格 - const tableData = ref([]); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const resetForm = () => { - ruleForm.searchParams.year = ''; - ruleForm.searchParams.departmentId = ''; - }; - const listApi = () => { - goalManagementApi() - .gettargetDutySummaryList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApi(); - }); - - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const data = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '11', - label: '经营班子', - children: [], - }, - ], - }, - { - value: '2', - label: '生产运行部', - children: [ - { - value: '21', - label: '灌装一班', - children: [], - }, - { - value: '22', - label: '工艺四班', - children: [], - }, - ], - }, - { - value: '3', - label: '设备部', - children: [ - { - value: '31', - label: '仪表班', - children: [], - }, - { - value: '32', - label: '机修班', - children: [], - }, - ], - }, - ]; - - const exportExcel = (id:string,name:string) => { - let workbook = XLSX.utils.table_to_book(document.getElementById(id)); //需要在table上定义一个id - try { - XLSX.writeFile(workbook, name); - console.log('导出成功!'); - } catch (e) { - console.log('导出失败!'); - } - } - return { - ruleForm, - tableData, - currentPage4, - pageSize4, - total, - data, - resetForm, - listApi, - handleSizeChange, - handleCurrentChange, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - exportExcel - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 10px 0px 10px 0px; - display: flex; - justify-content: left; -} -.btns p { - font-size: 18px; - line-height: 40px; - margin-right: 20px; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue b/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue index c0a5906..e69de29 100644 --- a/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue +++ b/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue @@ -1,204 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :before-close="resetForm" :fullscreen="full" :title="titles" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" label-width="120px"> - <el-row> - <el-col :span="24"> - <el-form-item label="员工姓名" size="default"> - <el-input v-model="form.personName" placeholder="请选择"> - <template #append> <el-button :icon="Search" @click="daiInpts(0)" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="奖惩名称" size="default"> - <el-input v-model="form.rewardPunishmentStandardName" placeholder="请选择"> - <template #append> <el-button :icon="Search" @click="daiInpt" /> </template - ></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="奖惩类型" size="default"> - <el-select v-model="form.standardType" disabled size="default" style="width: 100%" placeholder="请选择"> - <el-option label="奖励" :value="1" /> - <el-option label="惩罚" :value="2" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="奖惩内容" size="default"> - <el-input disabled v-model="form.content" placeholder="请填写奖惩内容" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="依据" size="default"> - <el-input disabled v-model="form.reason" placeholder="请填写奖惩依据" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="备注信息"> - <el-input v-model="form.memo" type="textarea" /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default" :disabled="disabled">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUser ref="Show" @SearchUser="UserId"></DailogSearchUser> - <DailogSearch ref="Shows" @backNum="numberId"></DailogSearch> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogSearch from './DailogSearch.vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; -export default defineComponent({ - components: { DailogSearch, DailogSearchUser }, - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const form = ref({ - rewardPunishmentStandardId: '', //奖惩标准/外键 - rewardPunishmentStandardName: '', - memo: '', ////备注信息 - personId: '', ////员工(多个用逗号隔开) - personName: '', - }); - const titles = ref(); - const disabled = ref(false); - // 打开弹窗 - const openDailog = (title: string, value: any, data: any) => { - dialogVisible.value = true; - titles.value = `${title}奖惩标准设定`; - disabled.value = title == '查看' ? true : false; - if (title == '查看' || title == '修改') - goalManagementApi() - .getrewardPunishmentDetail(data.id) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - form.value.standardType = data.standardType; - form.value.content = data.content; - form.value.reason = data.reason; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 提交 - const submitForm = () => { - dialogVisible.value = false; - delete form.value.standardType; - delete form.value.content; - delete form.value.reason; - delete form.value.rewardPunishmentStandardName - goalManagementApi() - .getrewardPunishmentAddOrUpdate(form.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - emit('navAddorUpdata'); - } else { - ElMessage.error(res.data.msg); - } - }); - form.value = { - rewardPunishmentStandardId: '', //奖惩标准/外键 - rewardPunishmentStandardName: '', - memo: '', ////备注信息 - personId: '', ////员工(多个用逗号隔开) - personName: '', - }; - }; - // 取消 - const resetForm = () => { - dialogVisible.value = false; - form.value = { - rewardPunishmentStandardId: '', //奖惩标准/外键 - rewardPunishmentStandardName: '', - memo: '', ////备注信息 - personId: '', ////员工(多个用逗号隔开) - personName: '', - }; - }; - - // 安全目标指标弹窗 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(); - }; - const Show = ref(); - const daiInpts = (type: any) => { - Show.value.openDailog(type); - }; - const numberId = (val: any) => { - console.log(val); - form.value.rewardPunishmentStandardId = val.id; - form.value.rewardPunishmentStandardName = val.qname; - form.value.standardType = val.standardType; - form.value.content = val.content; - form.value.reason = val.reason; - }; - const UserId = (val: any) => { - let arr = []; - let arrId = []; - for (let i = 0; i < val.length; i++) { - arr.push(val[i].realName); - arrId.push(val[i].uid); - } - form.value.personName = arr.toString(); - form.value.personId = arrId.toString(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - UserId, - form, - titles, - disabled, - openDailog, - submitForm, - numberId, - resetForm, - Shows, - daiInpt, - Show, - daiInpts, - full, - toggleFullscreen, - Search, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue b/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue index aabfa03..e69de29 100644 --- a/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue +++ b/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue @@ -1,204 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :fullscreen="full" title="奖惩类型" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row> - <el-col :span="17"> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon> - <el-row> - <el-col :span="12"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.standardType" placeholder="奖惩类型" /> - </el-form-item> - </el-col> - <!-- <el-col :span="6" :offset="1"> - <el-form-item> - <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" /> - </el-form-item> - </el-col> --> - <el-col :span="11" :offset="1"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-button size="default" :icon="Delete" @click="clear">清除选择</el-button> - <el-table :data="tableData" style="width: 100%; margin-top: 20px"> - <el-table-column align="center"> - <template #default="scope"> - <el-radio-group v-model="radio1"> - <el-radio :label="scope.row.id" @click="radio(scope.row)" size="large">{{ null }}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <el-table-column align="center" prop="qname" label="奖惩名称" width="180" /> - <el-table-column align="center" label="奖惩类型" width="180"> - <template #default="scope"> - <span v-if="scope.row.standardType == 1">奖励</span> - <span v-if="scope.row.standardType == 2">惩罚</span> - <span></span> - </template> - </el-table-column> - <el-table-column align="center" prop="content" label="奖惩内容" /> - </el-table> - <el-pagination - style="padding: 20px 0; border-bottom: 1px solid #dedede" - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </el-col> - <el-col :span="7"> - <div v-if="dynamicTags[0] == '' ? false : true"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag.qname }} - </el-tag> - </div> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref, onMounted } from 'vue'; -import { Delete, FullScreen } from '@element-plus/icons-vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - setup(props, { emit }) { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - standardType: '', ////奖惩类型 1:奖励 2:惩罚 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.standardType = ''; - listApi(); - }; - const listApi = () => { - goalManagementApi() - .getrewardPunishmentStandardList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - const handleClick = (val: any) => { - let targetType = JSON.parse(JSON.stringify(val)); - ruleForm.searchParams.standardType = targetType.paneName; - listApi(); - }; - onMounted(() => {}); - // const onAddorUpdata = () => { - // listApi(); - // }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 打开弹窗 - const dialogVisible = ref(false); - const openDailog = () => { - dialogVisible.value = true; - listApi(); - }; - // 右方点击添加后显示标签 - const dynamicTags = ref(['']); - const handleClose = (tag: string) => { - dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); - radio1.value = ''; - }; - const radio1 = ref(''); - const radio = (event: any) => { - dynamicTags.value[0] = event; - }; - const clear = () => { - dynamicTags.value = ['']; - radio1.value = ''; - }; - const submitForm = () => { - let obj = JSON.parse(JSON.stringify(dynamicTags.value)); - emit('backNum', obj[0]); - dialogVisible.value = false; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - submitForm, - radio, - radio1, - clear, - dialogVisible, - openDailog, - ruleForm, - resetForm, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - dynamicTags, - listApi, - handleClick, - handleClose, - Delete, - full, - toggleFullscreen, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> diff --git a/src/views/goalManagement/IncentiveRecording/index.vue b/src/views/goalManagement/IncentiveRecording/index.vue index 829190a..e69de29 100644 --- a/src/views/goalManagement/IncentiveRecording/index.vue +++ b/src/views/goalManagement/IncentiveRecording/index.vue @@ -1,302 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="personName" placeholder="请选择被奖惩者"> - <template #append> - <el-button :icon="Search" @click="openSearch" /> - </template> - </el-input> - </el-form-item> - </el-col> - <!-- <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" /> - </el-form-item> - </el-col> --> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen" - @click="openD('修改', editRow)">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" plain @click="onDeleteAll">删除 </el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column property="createTime" align="center" label="奖惩日期" :formatter="timeDate" sortable /> - <el-table-column label="奖惩类型" align="center" sortable> - <template #default="scope"> - <span v-if="scope.row.standardType == 1">奖励</span> - <span v-if="scope.row.standardType == 2">惩罚</span> - </template> - </el-table-column> - <el-table-column property="personName" align="center" label="被奖惩者" sortable /> - <el-table-column property="content" label="奖惩内容" align="center" sortable show-overflow-tooltip /> - <el-table-column property="reason" label="奖惩依据" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" sortable show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row)">查看 </el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除 </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - <DailogAdd ref="openAdd" @navAddorUpdata="onAddorUpdata"></DailogAdd> - <DailogSearchUser ref="openUser" @SearchUser="userId"></DailogSearchUser> - </div> - </div> -</template> -<script lang="ts"> -import DailogAdd from './component/DailogAdd.vue'; -import {timeDate} from '/@/assets/index.ts' -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen, Search } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - components: { ElButton, ElInput, DailogAdd, DailogSearchUser }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - personId: '', ////员工 - }, - }); - // 重置 - const personName=ref() - const resetForm = () => { - ruleForm.searchParams.personId = ''; - personName.value = ''; - listApi(); - }; - const listApi = () => { - goalManagementApi() - .getrewardPunishmentList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - const handleClick = (val: any) => { - let targetType = JSON.parse(JSON.stringify(val)); - ruleForm.searchParams.personId = targetType.paneName; - listApi(); - }; - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDailog(title, ruleForm.searchParams.personId, id); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getrewardPunishmentDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const editRow = ref() - const handleSelectionChange = (val: any) => { - editRow.value = val[0] - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getrewardPunishmentDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - const openUser = ref(); - const openSearch = () => { - openUser.value.openDailog(); - }; - const userId = (val: any) => { - ruleForm.searchParams.personId = val.uid; - personName.value = val.realName; - }; - return { - timeDate, - personName, - ruleForm, - userId, - resetForm, - listApi, - handleClick, - onAddorUpdata, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - openD, - onDelete, - openAdd, - warning, - danger, - deletAll, - openSearch, - handleSelectionChange, - onDeleteAll, - openUser, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - Search, - editRow - }; - }, -}); -</script> -<style scoped> -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} - -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} - -.btns { - padding: 10px 0px 10px 0px; - display: flex; - justify-content: space-between; -} - -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue b/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue index e910cb5..e69de29 100644 --- a/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue +++ b/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue @@ -1,147 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :before-close="resetForm" :fullscreen="full" :title="titles" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="奖惩类型" size="default"> - <el-select v-model="form.standardType" style="width: 100%" placeholder="请选择"> - <el-option label="奖励" :value="1" /> - <el-option label="惩罚" :value="2" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="奖惩内容" size="default"> - <el-input v-model="form.content" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="奖惩名称" size="default"> - <el-input v-model="form.qName" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="依据" size="default"> - <el-input v-model="form.reason" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="备注信息"> - <el-input v-model="form.memo" type="textarea" /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default" :disabled="disabled">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; -export default defineComponent({ - setup(props, { emit }) { - let Shows = ref(false); - const dialogVisible = ref<boolean>(false); - const form = ref({ - qName: "", ////奖惩名称 - reason: "", ////依据 - memo: "", ////备注信息 - content: "", ////奖惩内容 - standardType: null ////奖惩类型 1:奖励 2:惩罚 - }); - const titles = ref(); - const disabled = ref(false); - // 打开弹窗 - const openDailog = (title: string, value: any, id: number) => { - dialogVisible.value = true; - titles.value = `${title}奖惩标准设定`; - disabled.value = title == '查看' ? true : false; - if (title == '查看' || title == '修改') - goalManagementApi() - .getrewardPunishmentStandardDetail(id) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 提交 - const submitForm = () => { - dialogVisible.value = false; - goalManagementApi() - .getrewardPunishmentStandardaddOrUpdate(form.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - emit('navAddorUpdata'); - } else { - ElMessage.error(res.data.msg); - } - }); - form.value = { - qName: "", ////奖惩名称 - reason: "", ////依据 - memo: "", ////备注信息 - content: "", ////奖惩内容 - standardType: null, ////奖惩类型 1:奖励 2:惩罚 - } - }; - // 取消 - const resetForm = () => { - dialogVisible.value = false; - form.value = { - qName: "", ////奖惩名称 - reason: "", ////依据 - memo: "", ////备注信息 - content: "", ////奖惩内容 - standardType: null, ////奖惩类型 1:奖励 2:惩罚 - }; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - - return { - form, - titles, - dialogVisible, - openDailog, - disabled, - Search, - submitForm, - resetForm, - full, - toggleFullscreen, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/Incentivestandard/index.vue b/src/views/goalManagement/Incentivestandard/index.vue index c0aadc8..e69de29 100644 --- a/src/views/goalManagement/Incentivestandard/index.vue +++ b/src/views/goalManagement/Incentivestandard/index.vue @@ -1,283 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item> - <el-select v-model="ruleForm.searchParams.standardType" size="default" style="width: 100%" placeholder="请选择"> - <el-option label="奖励" value="1" /> - <el-option label="惩罚" value="2" /> - </el-select> - </el-form-item> - </el-col> - <!-- <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" /> - </el-form-item> - </el-col> --> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')" >新建</el-button> - <el-button size="default" type="warning" :disabled="warning" plain :icon="EditPen" - @click="openD('修改', deletAll[0])">修改 </el-button> - <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="handleSelectionChange">删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="upButton"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column property="qname" align="center" label="奖惩名称" sortable /> - <el-table-column property="name" align="center" label="奖惩类型" sortable> - <template #default="scope"> - <span v-if="scope.row.standardType == 1">奖励</span> - <span v-if="scope.row.standardType == 2">惩罚</span> - </template> - </el-table-column> - <el-table-column property="content" label="奖惩内容" align="center" sortable show-overflow-tooltip /> - <el-table-column property="reason" label="依据" align="center" sortable show-overflow-tooltip /> - <el-table-column property="memo" label="备注信息" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" sortable show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看 </el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除 </el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - <DailogAdd ref="openAdd" @navAddorUpdata="onAddorUpdata"></DailogAdd> - <!-- <upData ref="upShow"></upData> --> - </div> - </div> -</template> -<script lang="ts"> -import DailogAdd from './component/DailogAdd.vue'; -import upData from '../../../components/updata/updata.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - components: { ElButton, ElInput, upData, DailogAdd }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - standardType: '', ////奖惩类型 1:奖励 2:惩罚 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.standardType = ''; - listApi(); - }; - const listApi = () => { - goalManagementApi() - .getrewardPunishmentStandardList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - const handleClick = (val: any) => { - let targetType = JSON.parse(JSON.stringify(val)); - ruleForm.searchParams.standardType = targetType.paneName; - listApi(); - }; - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDailog(title, ruleForm.searchParams.standardType, id); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getrewardPunishmentStandardDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getrewardPunishmentStandardDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - return { - ruleForm, - resetForm, - listApi, - handleClick, - onAddorUpdata, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - openAdd, - openD, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - }; - }, -}); -</script> -<style scoped> -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} - -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} - -.btns { - padding: 10px 0px 10px 0px; - display: flex; - justify-content: space-between; -} - -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/TargetBook/component/DailogAdd.vue b/src/views/goalManagement/TargetBook/component/DailogAdd.vue index fa0bc2a..e69de29 100644 --- a/src/views/goalManagement/TargetBook/component/DailogAdd.vue +++ b/src/views/goalManagement/TargetBook/component/DailogAdd.vue @@ -1,246 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :before-close="resetForm" :fullscreen="full" :title="titles" width="50%" draggable @close="resetForm"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" label-width="120px"> - <el-row> - <el-col :span="24"> - <el-form-item label="岗位" size="default"> - <el-input v-model="form.jobName" placeholder="请选择"> - <template #append> <el-button :icon="Search" @click="daiInpt" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="责任书签订日期" size="default"> - <el-date-picker v-model="form.signDate" style="width:100%" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择日期时间" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="备注信息"> - <el-input v-model="form.memo" type="textarea" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="责任书附件"> - <uploaderFile :fileList="fileList" :systemName="'GOAL_MANAGE'" :disabled="disabled" - @successUploader="successUploader" @deleteFile="deleteFile"></uploaderFile> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearch ref="Shows" @backNum="IdNumber"></DailogSearch> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogSearch from './DailogSearch.vue'; -import { ElMessage, ElMessageBox } from 'element-plus'; -import type { UploadProps, UploadUserFile } from 'element-plus'; -import { goalManagementApi } from '/@/api/goalManagement'; -import uploaderFile from '/@/components/uploaderFile/index.vue'; -export default defineComponent({ - components: { DailogSearch,uploaderFile }, - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const form = ref({ - indexNum: '', //目标指标编号 - memo: '', ////备注信息 - signDate: '', //责任书签订日期 - extraFile: '', //责任书附件 - jobId: '', //岗位 - }); - const titles = ref(); - const disabled = ref(false); - // 打开弹窗 - const openDailog = (title: string, value: any, id: number) => { - dialogVisible.value = true; - titles.value =`${title}目标责任书`; - disabled.value = title == '查看' ? true : false; - if (title == '查看' || title == '修改') - goalManagementApi() - .gettargetDutyfileInfoDetail(id) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - form.value.signDate=timeC(form.value.signDate) - - - if(res.data.data.extraFile!=null&&res.data.data.extraFile!=''){ - var extraFileList = res.data.data.extraFile.split(',') - for(var a = 0;a<extraFileList.length;a++){ - fileList.value.push( - { - name:extraFileList[a] - } - ) - } - }else { - fileList.value = [] - } - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 上传成功组装数据 - const successUploader = (list) =>{ - console.log('successUploader',list) - fileList.value = list - var formFileList = '' - for(var a = 0;a<fileList.value.length;a++){ - if(a==fileList.value.length-1){ - formFileList+=fileList.value[a].name - }else { - formFileList+=fileList.value[a].name+',' - } - } - form.value.extraFile = formFileList - } - const deleteFile = (list) =>{ - console.log('deleteFile',list) - fileList.value = list - const formFileList = '' - for(var a = 0;a<fileList.value.length;a++){ - if(a==fileList.value.length-1){ - formFileList.value+=fileList.value[a].name - }else { - formFileList.value+=fileList.value[a].name+',' - } - } - form.value.extraFile = formFileList - } - const timeC = (timestamp: any) => { - let a = new Date(timestamp).getTime(); - const date = new Date(a); - const Y = date.getFullYear() + '-'; - const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; - const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; - const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; - const m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); - const s = date.getSeconds(); // 秒 - const dateString = Y + M + D + h + m +`:${s}`; - // console.log('dateString', dateString); // > dateString 2021-07-06 14:23 - return dateString; - }; - // 提交 - const submitForm = () => { - dialogVisible.value = false; - delete form.value.jobName - goalManagementApi() - .gettargetDutyfileInfoAddorUpdata(form.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - emit('navAddorUpdata'); - } else { - ElMessage.error(res.data.msg); - } - }); - form.value = { - indexNum: '', //目标指标编号 - memo: '', ////备注信息 - signDate: '', //责任书签订日期 - extraFile: '666', //责任书附件 - jobId: '', //岗位 - }; - }; - // 取消 - const resetForm = () => { - dialogVisible.value = false; - form.value = { - indexNum: '', //目标指标编号 - memo: '', ////备注信息 - signDate: '', //责任书签订日期 - extraFile: '666', //责任书附件 - jobId: '', //岗位 - }; - fileList.value = [] - }; - // 安全目标指标弹窗 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(); - }; - const IdNumber=(val:any)=>{ - form.value.jobId=val.id - form.value.jobName=val.date - } - // 点击上传 - const fileList = ref([ - ]); - - const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { - console.log(file, uploadFiles); - }; - - const handlePreview: UploadProps['onPreview'] = (uploadFile) => { - console.log(uploadFile); - }; - - const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { - ElMessage.warning(`The limit is 3, you selected ${files.length} files this time, add up to ${files.length + uploadFiles.length} totally`); - }; - - const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { - return ElMessageBox.confirm(`Cancel the transfert of ${uploadFile.name} ?`).then( - () => true, - () => false - ); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - timeC, - IdNumber, - dialogVisible, - form, - disabled, - titles, - openDailog, - daiInpt, - submitForm, - resetForm, - Shows, - Search, - fileList, - handleRemove, - handlePreview, - handleExceed, - beforeRemove, - full, - toggleFullscreen, - FullScreen, - successUploader, - deleteFile - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/TargetBook/component/DailogSearch.vue b/src/views/goalManagement/TargetBook/component/DailogSearch.vue index 4e7e97a..e69de29 100644 --- a/src/views/goalManagement/TargetBook/component/DailogSearch.vue +++ b/src/views/goalManagement/TargetBook/component/DailogSearch.vue @@ -1,175 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :fullscreen="full" title="选择岗位" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row> - <el-col :span="17"> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon> - <el-row> - <el-col :span="12"> - <el-form-item size="default"> - <el-input v-model="ruleForm.pass" placeholder="岗位名称" /> - </el-form-item> - </el-col> - <!-- <el-col :span="6" :offset="1"> - <el-form-item> - <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" /> - </el-form-item> - </el-col> --> - <el-col :span="11" :offset="1"> - <el-form-item> - <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">查询</el-button> - <el-button size="default" @click="resetForm(ruleFormRef)">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-button size="default" :icon="Delete">清除选择</el-button> - <el-table :data="tableData" style="width: 100%; margin-top: 20px" > - <el-table-column align="center" width="70px"> - <template #default="scope"> - <el-radio-group v-model="radio1"> - <el-radio :label="scope.row.id" @click="radio(scope.row)" size="large">{{ null }}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <el-table-column align="center" prop="date" label="岗位名称" /> - </el-table> - <el-pagination - style="padding: 20px 0; border-bottom: 1px solid #dedede" - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[100, 200, 300, 400]" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="400" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </el-col> - <el-col :span="7"> - <div v-if="dynamicTags[0]==''?false:true"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag.date }} - </el-tag> - </div> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref } from 'vue'; -import { Delete, FullScreen } from '@element-plus/icons-vue'; -export default defineComponent({ - setup(props,{emit}) { - const dialogVisible = ref<boolean>(false); - const openDailog = () => { - dialogVisible.value = true; - }; - // 搜索条件 - const ruleForm = reactive({ - pass: '', - checkPass: '', - }); - // 表格 - const tableData = [ - { id:1, - date: '岗位1', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - id:2, - date: '岗位2', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - id:3, - date: '岗位3', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { id:4, - date: '岗位4', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const pageSize4 = ref(100); - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`); - }; - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`); - }; - // 右方点击添加后显示标签 - const dynamicTags = ref(['']); - const handleClose = (tag: string) => { - dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); - radio1.value = ''; - }; - const radio1 = ref(''); - const radio = (event: any) => { - dynamicTags.value[0] = event; - }; - const clear=()=>{ - dynamicTags.value=[''] - radio1.value="" - } - const submitForm=()=>{ - let obj=JSON.parse(JSON.stringify(dynamicTags.value)) - emit("backNum",obj[0]) - dialogVisible.value = false - } - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - radio1, - radio, - clear, - dialogVisible, - openDailog, - ruleForm, - tableData, - pageSize4, - handleSizeChange, - handleCurrentChange, - dynamicTags, - handleClose, - submitForm, - Delete, - full, - toggleFullscreen, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> diff --git a/src/views/goalManagement/TargetBook/index.vue b/src/views/goalManagement/TargetBook/index.vue index 593acf8..e69de29 100644 --- a/src/views/goalManagement/TargetBook/index.vue +++ b/src/views/goalManagement/TargetBook/index.vue @@ -1,289 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="jobName" placeholder="请选择岗位"> - <template #append> <el-button :icon="Search" @click="openSearch" /> </template - ></el-input> - </el-form-item> - </el-col> - <!-- <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" /> - </el-form-item> - </el-col> --> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen" - @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="index" label="序号" align="center" width="70" /> - <el-table-column property="jobId" align="center" label="岗位" sortable /> - <el-table-column property="signDate" align="center" label="责任书签订日期" :formatter="timeDate" sortable /> - <el-table-column property="extraFile" align="center" label="附件" sortable /> - <el-table-column property="memo" label="备注信息" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" style="width: 300px"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - <DailogAdd ref="openAdd" @navAddorUpdata="onAddorUpdata"></DailogAdd> - <DailogSearch ref="openUser" @backNum="IdNumber"></DailogSearch> - </div> - </div> -</template> -<script lang="ts"> -import DailogAdd from './component/DailogAdd.vue'; -import {timeDate} from '/@/assets/index.ts' -import DailogSearch from './component/DailogSearch.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen, Search } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults'; -export default defineComponent({ - components: { ElButton, ElInput, DailogAdd, DailogSearch }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - jobId: '', ////岗位号/外键 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.jobId = ''; - jobName.value="" - listApi(); - }; - const listApi = () => { - goalManagementApi() - .gettargetDutyfileInfoList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - const handleClick = (val: any) => { - let targetType = JSON.parse(JSON.stringify(val)); - ruleForm.searchParams.jobId = targetType.paneName; - listApi(); - }; - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - const jobName=ref() - const IdNumber=(val:any)=>{ - ruleForm.jobId=val.id - jobName.value=val.date - } - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDailog(title, ruleForm.searchParams.jobId, id); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .gettargetDutyfileInfoDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .gettargetDutyfileInfoDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - const openUser = ref(); - const openSearch = () => { - openUser.value.openDailog(); - }; - return { - IdNumber, - ruleForm, - resetForm, - listApi, - handleClick, - onAddorUpdata, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - openAdd, - openD, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - openUser, - openSearch, - timeDate, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - Search, - }; - }, -}); -</script> -<style scoped> -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.btns { - padding: 10px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/index.vue b/src/views/goalManagement/index.vue index 8d45119..e69de29 100644 --- a/src/views/goalManagement/index.vue +++ b/src/views/goalManagement/index.vue @@ -1,14 +0,0 @@ -<template> - <router-view></router-view> -</template> - -<script> -export default { - name: "index" -} -</script> - -<style scoped> - -</style> - diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue b/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue index 1bf1044..e69de29 100644 --- a/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue +++ b/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue @@ -1,455 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :fullscreen="full" @close="handleClose(ruleFormRef)" :title="titles" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" label-width="120px" ref="ruleFormRef" :rules="rules"> - <el-row> - <el-col :span="11"> - <el-form-item label="考核标题" size="default" prop="title"> - <el-input v-model="form.title" placeholder="请填写考核标题"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="考核日期" size="default" prop="examineDate"> - <el-date-picker - v-model="form.examineDate" - format="YYYY-MM-DD HH:mm:ss" - value-format="YYYY-MM-DD HH:mm:ss" - type="datetime" - placeholder="请选择" - style="width: 100%" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="合格分数" size="default" prop="acceptanceNumber"> - <el-input v-model="form.acceptanceNumber" disabled /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="总分" size="default" prop="examineTotalNumber"> - <el-input v-model="form.examineTotalNumber" disabled /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="考核部门" size="default" prop="examineDepartmentId"> - <el-tree-select - v-model="form.examineDepartmentId" - :data="data" - class="w100" - @node-click="nameData1" - :props="propse" - check-strictly - placeholder="请选择" - /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="考核人" size="default" prop="examinePersonName"> - <el-input v-model="form.examinePersonName"> - <template #append> <el-button :icon="Search" @click="daiInpt(1)" /></template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="被考核部门" size="default" prop="beExaminedDepartmentId"> - <el-tree-select - v-model="form.beExaminedDepartmentId" - :data="data" - @node-click="nameData2" - class="w100" - :props="propse" - check-strictly - placeholder="请选择" - /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="被考核人" size="default" prop="beExaminedPersonName"> - <el-input v-model="form.beExaminedPersonName"> - <template #append> <el-button :icon="Search" @click="daiInpt(0)" /></template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="附件"> - <uploaderFile :fileList="fileList" :systemName="'GOAL_MANAGE'" :disabled="disabled" - @successUploader="successUploader" @deleteFile="deleteFile"></uploaderFile> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="考核模板" size="default" prop="examineTemplateName"> - <el-input v-model="form.examineTemplateName"> - <template #append> <el-button :icon="Search" @click="daiAdd" /></template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="备注信息" prop="memo"> - <el-input v-model="form.memo" type="textarea"> </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" class="demo-tabs"> - <el-tab-pane label="考核项目" name="1"> - <!-- <el-button type="primary" size="default" @click="daiAdd">新增</el-button> --> - </el-tab-pane> - </el-tabs> - <el-table :data="form.numberDetailJson" style="width: 100%"> - <el-table-column align="center" prop="itemDetail" label="考核项目" /> - <el-table-column align="center" prop="content" label="考核内容" /> - <el-table-column align="center" label="考核分数"> - <template #default="scope"> - <el-input @blur="numberC" v-model.number="scope.row.number"> </el-input> - </template> - </el-table-column> - <!-- <el-table-column align="center" prop="address" label="制定日期" /> - <el-table-column align="center" prop="address" label="上报人" /> - <el-table-column align="center" label="操作"> - <template #default> - <el-button link type="primary">查看</el-button> - </template> - </el-table-column> --> - </el-table> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm(ruleFormRef)" size="default">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearch ref="Show" @typeDome="onType"></DailogSearch> - <DailogSearchUser ref="Shows" @SearchUser="userId"></DailogSearchUser> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogSearch from './DailogSearch.vue'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; -import { ElMessage, ElMessageBox } from 'element-plus'; -import { goalManagementApi } from '/@/api/goalManagement'; -import type { UploadProps, UploadUserFile } from 'element-plus'; -import type { FormInstance, FormRules } from 'element-plus'; -import uploaderFile from '/@/components/uploaderFile/index.vue'; -export default defineComponent({ - components: { DailogSearchUser, DailogSearch,uploaderFile }, - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const ruleFormRef = ref<FormInstance>(); - const form = ref({ - beExaminedDepartmentId: '', ////被考核部门ID/外键 - beExaminedDepartmentName: '', - beExaminedPersonId: '', ////被考核人ID/外键(可能有多个,用逗号隔开) - beExaminedPersonName: '', - examineDate: '', ////考核日期 - examineDepartmentId: '', ////考核部门ID/外键 - examineDepartmentName: '', - examinePersonId: '', ////考核人ID/外键 - examinePersonName: '', - examineTemplateId: '', ////绩效考核模板ID/外键 - examineTemplateName: '', - examineTotalNumber: '', ////总分 - acceptanceNumber: '', ///合格分数 - extraFile: '', //责任书附件 - itemDetail: '', ////考核项目 - memo: '', ////备注信息 - numberDetailJson: [], ////各个考核项目的具体得分,json格式。形式为:[{“id”:"123","number":"123"}] - title: '', ////考核标题 - }); - const titles = ref(); - const titleT = ref(); - const disabled = ref(false); - // 打开弹窗 - const openDailog = (title: string, value: any, id: number) => { - department(); - dialogVisible.value = true; - titles.value = `${title}安全考核管理`; - titleT.value=title - disabled.value = title == '查看' ? true : false; - if (title == '查看' || title == '修改') - goalManagementApi() - .getexamineMngDetail(id) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - form.value.examineDate = timeC(form.value.examineDate); - form.value.numberDetailJson = form.value.currentExamineDtoList; - - - if(res.data.data.extraFile!=null&&res.data.data.extraFile!=''){ - var extraFileList = res.data.data.extraFile.split(',') - for(var a = 0;a<extraFileList.length;a++){ - fileList.value.push( - { - name:extraFileList[a] - } - ) - } - }else { - fileList.value = [] - } - - // fileList.value = (res.data.data.fileList?res.data.data.fileList:[]) - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 上传成功组装数据 - const successUploader = (list) =>{ - console.log('successUploader',list) - fileList.value = list - var formFileList = '' - for(var a = 0;a<fileList.value.length;a++){ - if(a==fileList.value.length-1){ - formFileList+=fileList.value[a].name - }else { - formFileList+=fileList.value[a].name+',' - } - } - form.value.extraFile = formFileList - } - const deleteFile = (list) =>{ - console.log('deleteFile',list) - fileList.value = list - const formFileList = '' - for(var a = 0;a<fileList.value.length;a++){ - if(a==fileList.value.length-1){ - formFileList.value+=fileList.value[a].name - }else { - formFileList.value+=fileList.value[a].name+',' - } - } - form.value.extraFile = formFileList - } - - const timeC = (timestamp: any) => { - let a = new Date(timestamp).getTime(); - const date = new Date(a); - const Y = date.getFullYear() + '-'; - const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; - const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; - const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; - const m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); - const s = date.getSeconds(); // 秒 - const dateString = Y + M + D + h + m + `:${s}`; - // console.log('dateString', dateString); // > dateString 2021-07-06 14:23 - return dateString; - }; - // 验证 - const rules = reactive<FormRules>({ - title: [{ required: true, message: '考核标题不能为空', trigger: 'blur' }], - examineDate: [{ required: true, message: '考核日期不能为空', trigger: 'blur' }], - examineDepartmentId: [{ required: true, message: '考核部门不能为空', trigger: 'blur' }], - examinePersonName: [], - examinePersonId: [], - beExaminedDepartmentId: [{ required: true, message: '被考核部门不能为空', trigger: 'blur' }], - beExaminedPersonName: [], - beExaminedPersonId: [], - examineTemplateId: [], - examineTemplateName: [{ required: true, message: '考核模板不能为空', trigger: 'blur' }], - memo: [], - }); - // 接收 - const onType = (data: any, val: any) => { - form.value.examineTotalNumber = ''; - form.value.examineTemplateId = data.id; - form.value.examineTemplateName = data.title; - form.value.acceptanceNumber = data.acceptanceNumber; - form.value.numberDetailJson = val.examineItemList; - }; - const numberC = () => { - let arr = 0; - for (let i = 0; i < form.value.numberDetailJson.length; i++) { - if (form.value.numberDetailJson[i].number != undefined) { - arr = parseInt(arr) + parseInt(form.value.numberDetailJson[i].number); - } else { - arr = parseInt(arr) + 0; - } - } - form.value.examineTotalNumber = arr; - }; - // 提交 - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - if(titleT.value=='新建'){ - delete form.value.id - } - dialogVisible.value = false; - let arr = []; - for (let i = 0; i < form.value.numberDetailJson.length; i++) { - arr.push({ - id: form.value.numberDetailJson[i].id, - number: form.value.numberDetailJson[i].number, - }); - } - form.value.numberDetailJson = JSON.stringify(arr); - goalManagementApi() - .getexamineMngAddOrUpdate(form.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - emit('navAddorUpdata'); - } else { - ElMessage.error(res.data.msg); - } - }); - } else { - console.log('error submit!', fields); - } - }); - }; - // 取消 - const resetForm = (formEl: FormInstance | undefined) => { - if (!formEl) return; - dialogVisible.value = false; - formEl.resetFields(); - }; - const handleClose = (formEl: FormInstance | undefined) => { - if (!formEl) return; - formEl.resetFields(); - fileList.value=[] - }; - const activeName = ref('1'); - // 新增弹窗 - const Show = ref(); - const daiAdd = () => { - Show.value.openDailog(); - }; - // 安全目标指标弹窗 - const Shows = ref(); - const daiInpt = (type: any) => { - Shows.value.openDailog(type); - }; - // 点击上传 - const fileList = ref<UploadUserFile[]>([]); - - const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { - console.log(file, uploadFiles); - }; - - const handlePreview: UploadProps['onPreview'] = (uploadFile) => { - console.log(uploadFile); - }; - - const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { - ElMessage.warning(`The limit is 3, you selected ${files.length} files this time, add up to ${files.length + uploadFiles.length} totally`); - }; - - const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { - return ElMessageBox.confirm(`Cancel the transfert of ${uploadFile.name} ?`).then( - () => true, - () => false - ); - }; - const userId = (val: any, type: any) => { - if (type == 1) { - form.value.examinePersonId = val.uid; - form.value.examinePersonName = val.realName; - } else if (type == 0) { - let uid = []; - let realName = []; - for (let i = 0; i < val.length; i++) { - uid.push(val[i].uid); - realName.push(val[i].realName); - } - form.value.beExaminedPersonId = uid.toString(); - form.value.beExaminedPersonName = realName.toString(); - console.log(form.value.beExaminedPersonId, form.value.beExaminedPersonName); - } - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - //部门 - const department = () => { - goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - const data = ref(); - const nameData1 = (val: any) => { - form.value.examineDepartmentName = val.depName; - }; - const nameData2 = (val: any) => { - form.value.beExaminedDepartmentName = val.depName; - console.log(form.value); - }; - return { - titleT, - rules, - timeC, - numberC, - onType, - handleClose, - nameData1, - nameData2, - ruleFormRef, - department, - propse, - data, - userId, - activeName, - dialogVisible, - form, - titles, - disabled, - openDailog, - submitForm, - resetForm, - Show, - daiAdd, - Shows, - daiInpt, - Search, - fileList, - handleRemove, - handlePreview, - handleExceed, - beforeRemove, - full, - toggleFullscreen, - FullScreen, - successUploader, - deleteFile - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogKh.vue b/src/views/goalManagement/performanceAppraisal/component/DailogKh.vue index 7d58a68..e69de29 100644 --- a/src/views/goalManagement/performanceAppraisal/component/DailogKh.vue +++ b/src/views/goalManagement/performanceAppraisal/component/DailogKh.vue @@ -1,247 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :before-close="resetForm" :fullscreen="full" title="新建考核标准设定" width="60%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="标准标题" size="default"> - <el-input v-model="form.title"> </el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="适用范围" size="default"> - <el-select v-model="form.applyRange" style="width: 100%" placeholder="请选择"> - <el-option label="安全生产责任制考核1" value="1" /> - <el-option label="安全生产责任制考核2" value="2" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <div v-if="clickType"> - <el-row> - <el-col :span="11"> - <el-form-item label="设定人" size="default"> - <el-input v-model="form.setPersonId" disabled> - <template #append> <el-button :icon="Search" @click="daiInpt" /></template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="设定人部门" size="default"> - <el-select v-model="form.setPersonDepartmentId" disabled style="width: 100%" placeholder="请选择"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - </div> - <el-row> - <el-col :span="11"> - <el-form-item label="模板分类编码" size="default"> - <el-input v-model="form.templateCode" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="合格分数" size="default"> - <el-input v-model="form.acceptanceNumber" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="备注信息"> - <el-input v-model="form.memo" type="textarea" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2" v-if="clickType"> - <el-form-item label="设定日期" size="default"> - <el-date-picker disabled v-model="form.setTimem" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" class="demo-tabs"> - <el-tab-pane label="考核项目" name="1"> - <el-button type="primary" size="default" @click="daiAdd('新增','')">新增</el-button> - </el-tab-pane> - </el-tabs> - <el-table :data="form.examineItemList" style="width: 100%"> - <el-table-column align="center" prop="itemType" label="类型" width="180" /> - <el-table-column align="center" prop="itemDetail" label="考核项目" width="180" /> - <el-table-column align="center" prop="content" label="考核内容" /> - <el-table-column align="center" prop="judgeStandard" label="评定标准" /> - <el-table-column align="center" prop="memo" label="考核说明" /> - <el-table-column align="center" label="操作"> - <template #default="scope"> - <el-button link type="primary" @click="daiAdd('查看', scope.row)">查看</el-button> - <el-button link type="primary" @click="daiAdd('修改', scope.row)">修改</el-button> - <el-button link type="primary" @click="deleteA(scope.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> - <DailogKhS ref="Show" @onAdd="AddObj"></DailogKhS> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogKhS from './DailogKhS.vue'; -import { ElMessage, ElMessageBox } from 'element-plus'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - components: { DailogKhS }, - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const form = ref({ - examineItemList: [], //考核项目列表 - setTimem: 1658386392466, - memo: '', ////备注信息 - templateCode: '', ////模板分类编码 - title: '', ////标准标题 - setPersonId: 1, //设定人 - acceptanceNumber: '', ////合格分数 - setPersonDepartmentId: 2, //设定人部门 - applyRange: '', ////适用范围 - }); - const titles = ref(); - const titleT = ref(); - const disabled = ref(false); - const clickType = ref(false); - // 打开弹窗 - const openDailog = (title: string, value: any, id: number) => { - dialogVisible.value = true; - titles.value = `${title}安全考核管理`; - titleT.value=title - disabled.value = title == '查看' ? true : false; - if (title == '查看' || title == '修改') { - goalManagementApi() - .getexamineTemplateDetail(id) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - } else { - clickType.value = false; - } - }; - // 接受传值 - const AddObj = (val: any) => { - if (index.value == -1) { - form.value.examineItemList.push(val); - } else { - form.value.examineItemList[index.value] = val; - } - }; - // 删除 - const deleteA = (tag: any) => { - form.value.examineItemList.splice(form.value.examineItemList.indexOf(tag), 1); - }; - // 提交 - const submitForm = () => { - if(titleT.value=='新建'){ - delete form.value.id - } - dialogVisible.value = false; - goalManagementApi() - .getexamineTemplateAddOrUpdate(form.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - emit('navAddorUpdata'); - } else { - ElMessage.error(res.data.msg); - } - }); - form.value = { - examineItemList: [], //考核项目列表 - setTimem: 1658386392466, - memo: '', ////备注信息 - templateCode: '', ////模板分类编码 - title: '', ////标准标题 - setPersonId: 1, //设定人 - acceptanceNumber: '', ////合格分数 - setPersonDepartmentId: 2, //设定人部门 - applyRange: '', ////适用范围 - }; - }; - // 取消 - const resetForm = () => { - dialogVisible.value = false; - form.value = { - examineItemList: [], //考核项目列表 - setTimem: 1658386392466, - memo: '', ////备注信息 - templateCode: '', ////模板分类编码 - title: '', ////标准标题 - setPersonId: 1, //设定人 - acceptanceNumber: '', ////合格分数 - setPersonDepartmentId: 2, //设定人部门 - applyRange: '', ////适用范围 - }; - }; - const activeName = ref('1'); - // 新增弹窗 - const index = ref<any>(); - const Show = ref(); - const daiAdd = (title: string, data: any) => { - index.value = form.value.examineItemList.indexOf(data); - Show.value.openDailog(title, data); - }; - // 安全目标指标弹窗 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(); - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - titleT, - index, - form, - dialogVisible, - deleteA, - AddObj, - openDailog, - activeName, - titles, - disabled, - submitForm, - resetForm, - Show, - daiAdd, - Shows, - daiInpt, - Search, - full, - clickType, - toggleFullscreen, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogKhS.vue b/src/views/goalManagement/performanceAppraisal/component/DailogKhS.vue index f186ab3..e69de29 100644 --- a/src/views/goalManagement/performanceAppraisal/component/DailogKhS.vue +++ b/src/views/goalManagement/performanceAppraisal/component/DailogKhS.vue @@ -1,133 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :before-close="resetForm" :fullscreen="full" :title="titles" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" label-width="120px"> - <el-row> - <el-col :span="24"> - <el-form-item label="类型"> - <el-input v-model="form.itemType" type="textarea"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="考核项目"> - <el-input v-model="form.itemDetail" type="textarea"> </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="考核内容"> - <el-input v-model="form.content" type="textarea"> </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="评定标准"> - <el-input v-model="form.judgeStandard" type="textarea"> </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="考核说明"> - <el-input v-model="form.memo" type="textarea"> </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> -<!-- <el-button type="primary" @click="dialogVisible = false" size="default">继续添加</el-button>--> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> - <!-- <DailogAdd ref="Show"></DailogAdd> - <DailogSearch ref="Shows"></DailogSearch> --> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -// import DailogAdd from './DailogAdd.vue' -// import DailogSearch from '../../../../components/DailogSearch/DailogSearch.vue' -export default defineComponent({ - // components:{DailogAdd,DailogSearch}, - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const form = ref({ - itemType: '', ////类型 - memo: '', //备注 - itemDetail: '', ////考核项目 - content: '', ////考核内容 - judgeStandard: '', ////评定标准 - }); - const disabled=ref(false) - const titles=ref() - const openDailog = (title: string, value: any) => { - dialogVisible.value = true; - titles.value=`${title}考核项目` - if (title == '查看') { - form.value = value; - disabled.value=true - }else if(title == '修改'){ - disabled.value=false - form.value = value; - } - }; - // 提交 - const submitForm = () => { - dialogVisible.value = false; - emit('onAdd', form.value); - form.value = { - itemType: '', ////类型 - memo: '', //备注 - itemDetail: '', ////考核项目 - content: '', ////考核内容 - judgeStandard: '', ////评定标准 - }; - }; - // 取消 - const resetForm = () => { - dialogVisible.value = false; - form.value = { - itemType: '', ////类型 - memo: '', //备注 - itemDetail: '', ////考核项目 - content: '', ////考核内容 - judgeStandard: '', ////评定标准 - }; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - form, - disabled, - titles, - dialogVisible, - openDailog, - submitForm, - resetForm, - Search, - full, - toggleFullscreen, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue b/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue index d50ea80..e69de29 100644 --- a/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue +++ b/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue @@ -1,196 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :fullscreen="full" title="选择安全目标指标" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row> - <el-col :span="17"> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon> - <el-row> - <el-col :span="12"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.title" placeholder="标准标题" /> - </el-form-item> - </el-col> - <!-- <el-col :span="6" :offset="1"> - <el-form-item> - <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" /> - </el-form-item> - </el-col> --> - <el-col :span="11" :offset="1"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi()">查询</el-button> - <el-button size="default" @click="reset">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-button size="default" :icon="Delete" @click="clear">清除选择</el-button> - <el-table :data="tableData" style="width: 100%; margin-top: 20px" > - <el-table-column align="center" width="70px"> - <template #default="scope"> - <el-radio-group v-model="radio1"> - <el-radio :label="scope.row.id" @click="radio(scope.row)" size="large">{{ null }}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <el-table-column align="center" prop="title" label="标准标题" /> - </el-table> - <el-pagination - style="padding: 20px 0; border-bottom: 1px solid #dedede" - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </el-col> - <el-col :span="7"> - <div v-if="dynamicTags[0]==''?false:true"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag.title }} - </el-tag> - </div> - </el-col> - </el-row> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref } from 'vue'; -import { Delete, FullScreen } from '@element-plus/icons-vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - setup(props,{emit}) { - const dialogVisible = ref<boolean>(false); - const openDailog = () => { - dialogVisible.value = true; - listApi() - }; - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - title: '', //标准标题 - }, - }); - const listApi = () => { - goalManagementApi() - .getexamineTemplateList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // 重置 - const reset=()=>{ - ruleForm.searchParams.title="" - listApi() - } - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 提交 - const submitForm=()=>{ - dialogVisible.value = false - emit("typeDome",dynamicTags.value[0],list.value) - clear() - } - // 右方点击添加后显示标签 - const dynamicTags = ref(['']); - const handleClose = (tag: string) => { - dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); - radio1.value = ''; - }; - const radio1 = ref(''); - const list=ref([]) - const radio = (event: any) => { - - goalManagementApi() - .getexamineTemplateDetail(event.id) - .then((res) => { - if (res.data.code == 200) { - list.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - dynamicTags.value[0] = event; - }; - const clear=()=>{ - dynamicTags.value=[''] - radio1.value="" - } - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - submitForm, - list, - reset, - dialogVisible, - listApi, - openDailog, - ruleForm, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - dynamicTags, - handleClose, - Delete, - full, - toggleFullscreen, - radio1, - radio, - clear, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> diff --git a/src/views/goalManagement/performanceAppraisal/index.vue b/src/views/goalManagement/performanceAppraisal/index.vue index 53838f6..e69de29 100644 --- a/src/views/goalManagement/performanceAppraisal/index.vue +++ b/src/views/goalManagement/performanceAppraisal/index.vue @@ -1,526 +0,0 @@ -<template> - <div> - <div class="minCenter"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="安全考核管理" name="1"> - <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-tree-select v-model="ruleForm.searchParams.examineDepartmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen" - @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" plain :icon="Delete" @click="onDeleteAll">删除</el-button> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <div class="tableC"> - <el-table :data="scope.row.currentExamineDtoList" style="width: 100%"> - <el-table-column align="center" prop="itemDetail" label="考核项目" /> - <el-table-column align="center" prop="content" label="考核内容" /> - <el-table-column align="center" prop="number" label="考核分数" /> - </el-table> - </div> - </template> - </el-table-column> - <el-table-column property="examineDate" align="center" :formatter="timeDate" label="考核日期" sortable /> - <el-table-column property="examineDepartmentName" align="center" label="考核部门" sortable /> - <el-table-column property="examinePersonName" label="考核人" align="center" sortable show-overflow-tooltip /> - <el-table-column property="beExaminedDepartmentName" label="被考核部门" align="center" sortable show-overflow-tooltip /> - <el-table-column property="examineTotalNumber" label="总分" align="center" sortable show-overflow-tooltip /> - <el-table-column property="numberDetailJson.number" label="考核结果" align="center" sortable show-overflow-tooltip /> - <el-table-column property="extraFile" label="附件" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="250px"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-tab-pane> - <el-tab-pane label="考核标准设定" name="2"> - <el-form :model="ruleForms" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForms.searchParams.title" placeholder="标准标题" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApis">查询</el-button> - <el-button size="default" @click="resetForms">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openDs('新建')">新建</el-button> - <!-- <el-button size="default" :disabled="warnings" type="warning" plain :icon="EditPen">修改</el-button> --> - <el-button size="default" :disabled="dangers" type="danger" plain :icon="Delete" @click="onDeleteAlls">删除</el-button> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableDatas" style="width: 100%" @selection-change="handleSelectionChanges"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <div class="tableC"> - <el-table :data="scope.row.examineItemList" style="width: 100%"> - <el-table-column align="center" prop="itemType" label="类型" /> - <el-table-column align="center" prop="itemDetail" label="考核项目" /> - <el-table-column align="center" prop="content" label="考核内容" /> - <el-table-column align="center" prop="judgeStandard" label="评定标准" /> - <el-table-column align="center" prop="memo" label="考核说明" /> - </el-table> - </div> - </template> - </el-table-column> - <el-table-column label="标准标题" property="title" align="center" sortable /> - <el-table-column property="applyRange" align="center" label="适用范围" sortable /> - <el-table-column property="setPersonName" label="设定人" align="center" sortable show-overflow-tooltip /> - <el-table-column property="setPersonDepartmentName" label="设定人部门" align="center" sortable show-overflow-tooltip /> - <el-table-column property="setTimem" label="设定日期" align="center" :formatter="timeDate" sortable show-overflow-tooltip /> - <el-table-column property="templateCode" label="模板分类编码" align="center" sortable show-overflow-tooltip /> - <el-table-column property="acceptanceNumber" label="合格分数" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="250px"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openDs('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openDs('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDeletes(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4s" - v-model:page-size="pageSize4s" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="totals" - @size-change="handleSizeChanges" - @current-change="handleCurrentChanges" - /> - </div> - </el-tab-pane> - </el-tabs> - </div> - <DailogAq ref="openAdd" @navAddorUpdata="onAddorUpdata"></DailogAq> - <DailogKh ref="openAdds" @navAddorUpdata="onAddorUpdatas"></DailogKh> - </div> -</template> -<script lang="ts"> -import {timeDate} from '/@/assets/index.ts' -import DailogAq from './component/DailogAq.vue'; -import DailogKh from './component/DailogKh.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import type { TabsPaneContext } from 'element-plus' -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - components: { ElButton, ElInput, DailogAq, DailogKh }, - setup() { - // 搜索条件 安全考核管理 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - examineDepartmentId: '', - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.examineDepartmentId = ''; - listApi() - }; - const listApi = () => { - goalManagementApi() - .getexamineMngList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD= (title: String, id: number) => { - openAdd.value.openDailog(title, ruleForm.searchParams.examineDepartmentId, id); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getexamineMngDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getexamineMngDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - // 切换 - const activeName = ref('1'); - const handleClick = (val: TabsPaneContext) => { - console.log(val) - if (val.props.name == '1') { - listApi(); - }else{ - listApis(); - } - }; - // 搜索条件 考核标准设定 - const ruleForms = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - title: '', //标准标题 - }, - }); - // 重置 - const resetForms = () => { - ruleForms.searchParams.title = ''; - listApis() - }; - const listApis = () => { - goalManagementApi() - .getexamineTemplateList(ruleForms) - .then((res) => { - if (res.data.code == 200) { - tableDatas.value = res.data.data; - currentPage4s.value = res.data.pageIndex; - pageSize4s.value = res.data.pageSize; - totals.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApis(); - department() - }); - const onAddorUpdatas = () => { - listApis(); - }; - // 表格 - const tableDatas = ref(); - const currentPage4s = ref(); - const pageSize4s = ref(); - const totals = ref(); - const handleSizeChanges = (val: number) => { - // console.log(`${val} items per page`); - ruleForms.pageSize = val; - listApis(); - }; - const handleCurrentChanges = (val: number) => { - // console.log(`current page: ${val}`); - ruleForms.pageIndex = val; - listApis(); - }; - // 弹窗 - const openAdds = ref(); - const openDs = (title: String, id: number) => { - openAdds.value.openDailog(title, ruleForm.searchParams.examineDepartmentId, id); - }; - // 删除 - const onDeletes = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getexamineTemplateDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApis(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warnings = ref(true); - const dangers = ref(true); - const deletAlls = ref(); - const handleSelectionChanges = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAlls.value = arr; - if (val.length == 1) { - warnings.value = false; - dangers.value = false; - } else if (val.length == 0) { - warnings.value = true; - dangers.value = true; - } else { - warnings.value = true; - dangers.value = false; - } - }; - const onDeleteAlls = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getexamineTemplateDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApis(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - //部门树 - const department = () => { - goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - const data = ref(); - return { - timeDate, - department, - propse, - data, - activeName, - ruleForm, - resetForm, - listApi, - handleClick, - onAddorUpdata, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - openAdd, - openD, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - ruleForms, - resetForms, - listApis, - onAddorUpdatas, - tableDatas, - currentPage4s, - pageSize4s, - totals, - handleSizeChanges, - handleCurrentChanges, - openAdds, - openDs, - onDeletes, - warnings, - dangers, - deletAlls, - handleSelectionChanges, - onDeleteAlls, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - }; - }, -}); -</script> -<style scoped> -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 20px; -} -.topTitle { - padding: 5px 0 20px 0; - border-bottom: 1px solid #dedede; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -.tableC { - margin: 0 10%; -} -</style> diff --git a/src/views/goalManagement/processForms/component/formInformationTop.vue b/src/views/goalManagement/processForms/component/formInformationTop.vue index 5f34405..e69de29 100644 --- a/src/views/goalManagement/processForms/component/formInformationTop.vue +++ b/src/views/goalManagement/processForms/component/formInformationTop.vue @@ -1,144 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标指标" size="default"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号" size="default"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度" size="default"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="指标值" size="default"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" style="padding: 0 20px"> - <el-tab-pane label="考核指标" name="1"> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" type="index" label="序号" width="70" /> - <el-table-column align="center" prop="date" label="责任部门" /> - <el-table-column align="center" prop="name" label="考核指标" /> - <el-table-column align="center" prop="address" label="制定部门" /> - <el-table-column align="center" prop="address" label="制定日期" /> - <el-table-column align="center" label="检查值"> - <template #default> - <el-input v-model="form.name" placeholder=""></el-input> - </template> - </el-table-column> - <el-table-column align="center" prop="address" label="检查人" /> - <el-table-column align="center" prop="address" label="检查时间" /> - </el-table> - <div class="tiao"> - <div class="typeS">审批</div> - </div> - <el-row style="padding:20px 0"> - <el-col :span="6" style="text-align:right">一级审批:</el-col> - <el-col :span="18">同意</el-col> - </el-row> - <el-row style="padding:0 0 20px 0"> - <el-col :span="6"></el-col> - <el-col :span="18"><span class="logoColor">同意</span><span style="margin-right: 8px;">杜建喜</span><span>2021-05-24 04:47:42</span></el-col> - </el-row> - </el-tab-pane> - </el-tabs> -</template> -<script lang="ts"> -import { defineComponent,ref,reactive } from 'vue' - -export default defineComponent({ - setup() { - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const activeName = ref('1'); - return{ - form, - tableData, - activeName - } - }, -}) -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:0 0 20px 0 ; -} -</style> diff --git a/src/views/goalManagement/processForms/component/formInformationTops.vue b/src/views/goalManagement/processForms/component/formInformationTops.vue index ba671e5..e69de29 100644 --- a/src/views/goalManagement/processForms/component/formInformationTops.vue +++ b/src/views/goalManagement/processForms/component/formInformationTops.vue @@ -1,162 +0,0 @@ -<template> - <el-form ref="form" :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标指标" size="default"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号" size="default"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度" size="default"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="责任部门" size="default"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="改进期限" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="Pick a date" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="发起人" size="default"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="发起时间" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="Pick a date" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" style="padding: 0 20px"> - <el-tab-pane label="考核指标" name="1"> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" type="index" label="序号" width="70" /> - <el-table-column align="center" prop="date" label="责任部门" /> - <el-table-column align="center" prop="name" label="考核指标" /> - <el-table-column align="center" prop="address" label="制定部门" /> - <el-table-column align="center" prop="address" label="制定日期" /> - <el-table-column align="center" label="检查值"> - <template #default> - <el-input v-model="form.name" placeholder=""></el-input> - </template> - </el-table-column> - <el-table-column align="center" prop="address" label="检查人" /> - <el-table-column align="center" prop="address" label="检查时间" /> - </el-table> - <div class="tiao"> - <div class="typeS">审批</div> - </div> - <el-row style="padding: 20px 0"> - <el-col :span="6" style="text-align: right">一级审批:</el-col> - <el-col :span="18">同意</el-col> - </el-row> - <el-row style="padding: 0 0 20px 0"> - <el-col :span="6"></el-col> - <el-col :span="18"><span class="logoColor">同意</span><span style="margin-right: 8px">杜建喜</span><span>2021-05-24 04:47:42</span></el-col> - </el-row> - </el-tab-pane> - </el-tabs> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; - -export default defineComponent({ - setup() { - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const activeName = ref('1'); - return { - form, - tableData, - activeName, - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box { - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao { - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0; - position: relative; -} -.typeS { - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor { - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns { - width: 100%; - padding: 20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); -} -.title2 { - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -.el-row{ - padding:20px 0 0px 0; -} -</style> diff --git a/src/views/goalManagement/processForms/component/lowerPlate.vue b/src/views/goalManagement/processForms/component/lowerPlate.vue index 3eea9f5..e69de29 100644 --- a/src/views/goalManagement/processForms/component/lowerPlate.vue +++ b/src/views/goalManagement/processForms/component/lowerPlate.vue @@ -1,120 +0,0 @@ -<template> - <div class="box"> - <el-form ref="formS" :model="form" :rules="rules" label-width="120px"> - <el-row> - <el-col :span="15"> - <el-form-item label="流程标题" size="default"> - <el-input v-model="form.names" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label="下级审批日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="Pick a date" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.delivery" label="是否抄送" @change="typeChang"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.delivery"> - <el-col :span="15"> - <el-form-item label="抄送给" prop="resource" size="default"> - <el-input v-model="form.resource" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="15"> - <el-form-item label=""> - <el-checkbox v-model="form.type" label="指定下一步处理者(不设置就使用默认处理人)"/> - </el-form-item> - </el-col> - </el-row> - <el-row v-if="form.type"> - <el-col :span="15"> - <el-form-item label="指定" prop="desc" size="default"> - <el-input v-model="form.desc" placeholder=""> - <template #append> <el-button :icon="Search" @click="openDai" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - <DailogSearchUser ref="ShowUser"></DailogSearchUser> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import DailogSearchUser from '/@/components/DailogSearchUser/index.vue' -import { Search } from '@element-plus/icons-vue'; -import type { FormInstance, FormRules } from 'element-plus' -export default defineComponent({ - components:{DailogSearchUser}, - setup() { - const formS=ref<FormInstance>() - let form = reactive({ - names: '', - region: '', - date1: '', - date2: '', - delivery: "", - type: "", - resource: '', - desc: '', - }); - const typeChang=()=>{ - console.log('tag',form) - } - const rules = reactive<FormRules>({ - resource: [ - { - type: 'array', - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ], - desc: [ - { - required: true, - message: '用户不能为空', - trigger: 'change', - }, - ]}) - const ShowUser=ref() - const openDai =()=>{ - ShowUser.value.openDailog() - } - return { - form, - rules, - formS, - typeChang, - ShowUser, - openDai, - Search, - }; - }, -}); -</script> - -<style scoped> -.box { - margin: 30px 0 100px 0; - background-color: #fff; - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); - padding: 20px; -} -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/processForms/processForms.vue b/src/views/goalManagement/processForms/processForms.vue index 331337a..e69de29 100644 --- a/src/views/goalManagement/processForms/processForms.vue +++ b/src/views/goalManagement/processForms/processForms.vue @@ -1,124 +0,0 @@ -<template> - <div> - <h4 class="title">胡海涛2022-07-01 16:08:42发起了目标检查上报(检查)--检查</h4> - <div class="box"> - <el-menu - :default-active="activeIndex" - class="el-menu-demo" - background-color="#ebeef5" - text-color="#fff" - active-text-color="#fff" - mode="horizontal" - @select="handleSelect" - > - <el-menu-item index="1">表单信息</el-menu-item> - <!-- <el-menu-item index="2">流程图</el-menu-item> --> - </el-menu> - <div v-if="activeIndex == 1" class="navType"> - <formInformationTop v-if="false"></formInformationTop> - <formInformationTops></formInformationTops> - </div> - <!-- <div v-if="activeIndex == 2" class="navType" style="padding:20px 20px 0 20px"> - <div class="title2">流程图</div> - <div style="width:100%;height:400px"></div> - </div> --> - </div> - <lowerPlate></lowerPlate> - <div class="btns"> - <el-button type="primary">发起上报</el-button> - </div> - </div> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref,onMounted } from 'vue'; -import { useRouter } from 'vue-router'; -import formInformationTop from './component/formInformationTop.vue' -import formInformationTops from './component/formInformationTops.vue' -import lowerPlate from './component/lowerPlate.vue' -export default defineComponent({ - components:{lowerPlate,formInformationTop,formInformationTops}, - setup() { - const activeIndex = ref('1'); - const handleSelect = (key: string, keyPath: string[]) => { - // console.log(key, keyPath); - activeIndex.value = key; - }; - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - - const router=useRouter() - const Type=onMounted(()=>{ - console.log("xxxxxxx",router) - }) - - return { - activeIndex, - handleSelect, - form, - router, - Type - }; - }, -}); -</script> -<style scoped> -.title { - text-align: center; - font-size: 16px; - margin-bottom: 20px; -} -.box{ - border: 1px solid #dcdfe6; - box-shadow: 0 2px 4px 0 rgb(0 0 0 / 12%), 0 0 6px 0 rgb(0 0 0 / 4%); -} -.navType { - background-color: #fff; -} -.tiao{ - width: 100%; - height: 1px; - background-color: #dcdfe6; - margin: 30px 0 ; - position: relative; -} -.typeS{ - width: 80px; - background-color: #fff; - position: absolute; - left: 30px; - top: -9px; - font-size: 14px; - text-align: center; -} -.logoColor{ - background-color: #67c23a; - color: #fff; - padding: 5px 8px; - border-radius: 5px; - margin-right: 5px; -} -.btns{ - width: 100%; - padding:20px 0; - background-color: #fff; - position: fixed; - bottom: 0px; - left: 0px; - text-align: center; - box-shadow: 0 -3px 5px 0 rgb(0 0 0 / 12%); - -} -.title2{ - padding: 20px 0 20px 10px; - width: 100%; - border: 1px solid #dcdfe6; -} -</style> diff --git a/src/views/goalManagement/safetyAssessment/component/Dailog.vue b/src/views/goalManagement/safetyAssessment/component/Dailog.vue index 21771af..e69de29 100644 --- a/src/views/goalManagement/safetyAssessment/component/Dailog.vue +++ b/src/views/goalManagement/safetyAssessment/component/Dailog.vue @@ -1,264 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :before-close="resetForm" :fullscreen="full" title="目标分解" width="60%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标指标" size="default"> - <el-input v-model="form.qName" :disabled="disabled"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号" size="default"> - <el-input v-model="form.indexNum" disabled /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度" size="default"> - <el-input v-model="form.year" disabled /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="指标值" size="default"> - <el-input v-model="form.value" disabled /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" class="demo-tabs"> - <el-tab-pane label="目标指标分解" name="1"> - <!-- <el-button type="primary" size="default" @click="daiAdd('新增')" :disabled="disabled">新增</el-button> --> - </el-tab-pane> - </el-tabs> - <el-table :data="formUp.targetDivideDetailList" style="width: 100%"> - <el-table-column align="center" property="dutyDepartmentName" label="责任部门" width="180" /> - <el-table-column align="center" property="value" label="考核指标" width="180" /> - <el-table-column align="center" property="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" property="makeDate" :formatter="timeDate" label="制定日期" /> - <el-table-column align="center" property="commitPersonName" label="上报人" /> - <el-table-column align="center" label="操作"> - <template #default="scope"> - <el-button link type="primary" @click="daiAdd('查看', scope.row)">查看</el-button> - <el-button link :disabled="disabled" type="primary" @click="daiAdd('修改', scope.row)">考核</el-button> - </template> - </el-table-column> - </el-table> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" v-if="disabled == false" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> - <DailogAdd ref="Show" @onAdd="add"></DailogAdd> - <DailogSearch ref="Shows" @backNum="onNumber"></DailogSearch> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import { timeDate } from '/@/assets/index.ts'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogAdd from './DailogAdd.vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; -import DailogSearch from '../../../../components/DailogSearch/DailogSearch.vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -import { emit } from 'process'; -import { deepClone } from '/@/utils/other'; -export default defineComponent({ - components: { DailogAdd, DailogSearch }, - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const form = ref({ - qName: '', - indexNum: '', - year: '', - value: '', - targetDivideDetailList: [], - }); - const targetType = ref(); - const disabled = ref(false); - const titles = ref(); - const numId=ref() - const openDailog = (title: string, type: any, id: number) => { - dialogVisible.value = true; - titles.value = title; - targetType.value = type; - - disabled.value = title == '查看' ? true : false; - if (title == '查看' || title == '修改') { - goalManagementApi() - .getTargetMngDetail(id) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - formUp.targetDivideDetailList = form.value.targetDivideDetailList; - for(let i=0;i<formUp.targetDivideDetailList.length;i++){ - formUp.targetDivideDetailList[i].makeDate=timeC(formUp.targetDivideDetailList[i].makeDate) - } - } else { - ElMessage.error(res.data.msg); - } - }); - } - numId.value=id - }; - const timeC = (timestamp: any) => { - let a = new Date(timestamp).getTime(); - const date = new Date(a); - const Y = date.getFullYear() + '-'; - const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; - const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; - const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; - const m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); - const s = date.getSeconds(); // 秒 - const dateString = Y + M + D + h + m +`:${s}`; - // console.log('dateString', dateString); // > dateString 2021-07-06 14:23 - return dateString; - }; - const onNumber = (val: object) => { - form.value = val; - }; - // 导航 - const activeName = ref('1'); - // 表格 - const tableData = ref([]); - // 新增弹窗 - const index = ref<any>(); - const Show = ref(); - const daiAdd = (title: string, data: any) => { - index.value = formUp.targetDivideDetailList.indexOf(data); - Show.value.openDailog(title, data); - }; - const formUp = reactive({ - targetId: '', //关联的目标指标/外键 - delTargetDivideDetails: '', //要删除的目标指标分解ID,多个用逗号隔开 - targetDivideDetailList: [], //目标指标分解列表 - }); - - const add = (val: any) => { - goalManagementApi() - .getTargetMngDetail(numId.value) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - formUp.targetDivideDetailList = form.value.targetDivideDetailList; - for(let i=0;i<formUp.targetDivideDetailList.length;i++){ - formUp.targetDivideDetailList[i].makeDate=timeC(formUp.targetDivideDetailList[i].makeDate) - } - } else { - ElMessage.error(res.data.msg); - } - }); - - // let obj=JSON.parse(JSON.stringify(form.value)) - }; - // 新增 - const submitForm = () => { - formUp.delTargetDivideDetails = arr.value.toString(); - formUp.targetId = form.value.id; - dialogVisible.value = false; - for(let i=0;i<formUp.targetDivideDetailList.length;i++){ - delete formUp.targetDivideDetailList[i].dutyDepartmentName - delete formUp.targetDivideDetailList[i].makerDepartmentName - } - goalManagementApi() - .gettargetDivideDetail(formUp) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - emit('addList'); - } else { - ElMessage.error(res.data.msg); - } - }); - form.value = { - qName: '', - indexNum: '', - year: '', - value: '', - targetDivideDetailList: [], - }; - tableData.value = []; - formUp.targetId = ''; - formUp.delTargetDivideDetails = ''; - formUp.targetDivideDetailList = []; - }; - const arr = ref([]); - // 安全目标指标弹窗 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(targetType.value); - }; - // 关闭 - const resetForm = () => { - dialogVisible.value = false; - form.value = { - qName: '', - indexNum: '', - year: '', - value: '', - targetDivideDetailList: [], - }; - tableData.value = []; - formUp.targetId = ''; - formUp.delTargetDivideDetails = ''; - formUp.targetDivideDetailList = []; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - // 时间格式处理 - // const timeDate = (data: any) => { - // let result = new Date(data).getTime(); - // return result; - // }; - return { - timeC, - index, - timeDate, - arr, - form, - dialogVisible, - openDailog, - activeName, - tableData, - Show, - daiAdd, - Shows, - daiInpt, - Search, - full, - toggleFullscreen, - FullScreen, - onNumber, - targetType, - disabled, - resetForm, - titles, - add, - formUp, - submitForm, - numId - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue b/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue index dc63830..e69de29 100644 --- a/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue +++ b/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue @@ -1,281 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :fullscreen="full" :title="titles" width="50%" draggable @close="resetForm(ruleFormRef)"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" label-width="120px" ref="ruleFormRef" :rules="rules"> - <!-- <el-row> - <el-col :span="11"> - <el-form-item label="责任部门" prop="dutyDepartmentId" size="default"> - <el-tree-select v-model="form.dutyDepartmentId" check-strictly="true" @current-change="dutyName" :data="data" class="w100" :props="propse" placeholder="请选择" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="考核指标" prop="examineValue" size="default"> - <el-input v-model.number="form.examineValue" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="制定人部门" prop="makerDepartmentId" size="default"> - <el-tree-select v-model="form.makerDepartmentId" :data="data" check-strictly="true" - @current-change="makerDepartmentName" class="w100" :props="propse" placeholder="请选择" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="制定日期" prop="makeDate" size="default"> - <el-date-picker v-model="form.makeDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="上报值" prop="uploadValue" size="default"> - <el-input v-model="form.uploadValue"> - <template #append> <el-button :icon="Search" @click="openUser" /> </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="上报时间" prop="uploadDate" size="default"> - <el-date-picker v-model="form.uploadDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> --> - <el-row> - <el-col :span="11"> - <el-form-item label="考核结果" prop="examineResult" size="default"> - <el-select v-model="form.examineResult" placeholder="请选择" style="width: 100%"> - <el-option label="合格" :value="1" /> - <el-option label="不合格" :value="2" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="考核人" prop="examinePersonName" size="default"> - <el-input v-model="form.examinePersonName"> - <template #append> <el-button :icon="Search" @click="openUser" /> </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <!-- <el-row> - <el-col :span="11"> - <el-form-item label="考核时间" prop="examineDate" size="default"> - <el-date-picker v-model="form.examineDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"></el-col> - </el-row> --> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm(ruleFormRef)" size="default">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUser ref="Show" @SearchUser="onUser"></DailogSearchUser> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive, onMounted } from 'vue'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import type { FormInstance, FormRules } from 'element-plus'; -import DailogSearchUser from '../../../../components/DailogSearchUser/index.vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - components: { DailogSearchUser }, - setup(props, { emit }) { - const ruleFormRef = ref<FormInstance>(); - const form = ref({ - targetDivideDetailId: "", //关联的目标分解/外键 - examinePersonId: "", - examinePersonName: '', - examineResult: "", //考核结果 1:合格 2:不合格 - id: "", //目标指标ID - }); - //部门 - // const department = () => { - // goalManagementApi() - // .getTreedepartment() - // .then((res) => { - // if (res.data.code == 200) { - // data.value = res.data.data; - // } else { - // ElMessage.error(res.data.msg); - // } - // }); - // }; - // const propse = { - // label: 'depName', - // children: 'children', - // value: 'depId', - // }; - // onMounted(() => { - // department(); - // }); - const disabled = ref(false); - // 开启弹窗 - const titles = ref(); - const dialogVisible = ref(false); - const openDailog = (title: string, data: any) => { - titles.value = `${title}目标考核`; - if (title == '查看') { - disabled.value = true; - form.value = data; - // form.value.id = data.targetId; - form.value.targetDivideDetailId=data.id - form.value.examinePersonName = data.examinePersonName; - form.value.examinePersonId=data.examinePersonId - form.value.examineResult=data.examineResult - } else if (title == '修改') { - console.log(data) - disabled.value = false; - // form.value.id = data.targetId; - form.value.targetDivideDetailId=data.id - form.value.examinePersonName = data.examinePersonName; - form.value.examinePersonId=data.examinePersonId - form.value.examineResult=data.examineResult - } else { - disabled.value = false; - } - dialogVisible.value = true; - }; - // 开启用户弹窗 - const Show = ref(); - const openUser = () => { - Show.value.openDailog(); - }; - const rules = reactive<FormRules>({ - // dutyDepartmentId: [ - // { - // required: true, - // message: '责任部门不能为空', - // trigger: 'blur', - // }, - // ], - // makerDepartmentId: [ - // { - // required: true, - // message: '制定人部门不能为空', - // trigger: 'blur', - // }, - // ], - // commitPersonId: [ - // { - // required: true, - // message: '上报人不能为空', - // trigger: 'blur', - // }, - // ], - // examineValue: [ - // { - // required: true, - // message: '考核指标值不能为空', - // trigger: 'blur', - // }, - // { - // type: 'number', - // message: '考核指标值只能为数字类型', - // trigger: 'blur', - // }, - // ], - // makeDate: [ - // { - // required: true, - // message: '制定日期不能为空', - // trigger: 'blur', - // }, - // ], - examinePersonName: [], - examineResult:[] - - }); - // const dutyName = (data: any) => { - // form.value.dutyDepartmentName = data.depName; - // }; - // const makerDepartmentName = (data: any) => { - // form.value.makerDepartmentName = data.depName; - // }; - - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - console.log(form.value) - dialogVisible.value = false; - goalManagementApi().gettargetExamineAddOrUpdate(form.value).then(res=>{ - if(res.data.code==200){ - ElMessage({ - message: res.data.msg, - type: 'success', - }); - }else{ - ElMessage.error(res.data.msg); - } - }) - // handleClose(formEl) - } else { - console.log('error submit!', fields); - } - }); - emit('onAdd'); - }; - - const resetForm = (formEl: FormInstance | undefined) => { - // console.log(formEl); - if (!formEl) return; - // formEl.resetFields(); - dialogVisible.value = false; - form.value = {}; - }; - // const handleClose = (formEl: any) => { - // formEl.resetFields(); - // }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - // const data = ref(); - const onUser = (e: any) => { - console.log(e); - form.value.examinePersonId = e.uid; - form.value.examinePersonName = e.realName; - }; - return { - disabled, - titles, - // handleClose, - form, - // propse, - // department, - dialogVisible, - openDailog, - Show, - openUser, - Search, - full, - toggleFullscreen, - FullScreen, - // data, - onUser, - ruleFormRef, - rules, - submitForm, - resetForm, - // dutyName, - // makerDepartmentName, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> diff --git a/src/views/goalManagement/safetyAssessment/index.vue b/src/views/goalManagement/safetyAssessment/index.vue index f52ba71..e69de29 100644 --- a/src/views/goalManagement/safetyAssessment/index.vue +++ b/src/views/goalManagement/safetyAssessment/index.vue @@ -1,241 +0,0 @@ -<template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.indexNum" placeholder="请输入目标指标" /> - </el-form-item> - </el-col> - <!-- <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" /> - </el-form-item> - </el-col> --> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <el-tabs v-model="ruleForm.searchParams.targetType" class="demo-tabs" @tab-click="handleClick"> - <div class="btns"> - <div> - <!-- <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> --> - </div> - <div> - <!-- <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <el-tab-pane label="目标定制(年)" name="1"> </el-tab-pane> - <el-tab-pane label="目标定制(月)" name="2"></el-tab-pane> - <el-tab-pane label="目标定制(半年)" name="3"></el-tab-pane> - <el-tab-pane label="目标定制(季度)" name="4"></el-tab-pane> - </el-tabs> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column type="expand"> - <template #default="scope"> - <div class="tableC"> - <el-tabs v-model="activeNames"> - <el-tab-pane label="目标指标分解" name="1"> - <el-table :data="scope.row.targetDivideDetailList" style="width: 100%"> - <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> - <el-table-column align="center" prop="value" label="考核指标" /> - <el-table-column align="center" prop="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> - <el-table-column align="center" prop="commitPersonName" label="上报人" /> - </el-table> - </el-tab-pane> - </el-tabs> - </div> - </template> - </el-table-column> - <el-table-column label="安全目标指标" align="center" property="qName" sortable /> - <el-table-column property="indexNum" align="center" label="考核指标编号" sortable /> - <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="300" sortable show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="View" @click="openD('修改', scope.row.id)">考核</el-button> - <!--<el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button>--> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - <Dailog ref="openAdd"></Dailog> - </div> - </div> -</template> -<script lang="ts"> -import { timeDate } from '/@/assets/index.ts'; -import Dailog from './component/Dailog.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults'; -export default defineComponent({ - components: { ElButton, ElInput, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////安全目标指标 - indexNum: '', ////目标指标编号 - targetType: '1', ////指标类型 1:年指标 2:月指标 - divideStatus: 1, ////分解状态 1:已分解 2:未分解 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.indexNum = ''; - }; - const listApi = () => { - goalManagementApi() - .gettargetExamineList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - const handleClick = (val: any) => { - let targetType = JSON.parse(JSON.stringify(val)); - ruleForm.searchParams.targetType = targetType.paneName; - listApi(); - }; - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 删除 - const onDelete = (id: number) => { - var arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDailog(title, ruleForm.searchParams.targetType,id); - }; - const activeNames=ref("1") - return { - timeDate, - activeNames, - listApi, - ruleForm, - resetForm, - handleClick, - tableData, - currentPage4, - pageSize4, - handleSizeChange, - handleCurrentChange, - onAddorUpdata, - total, - openAdd, - openD, - onDelete, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 10px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -.tableC { - margin: 0 10%; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetClassification/index.vue b/src/views/goalManagement/targetClassification/index.vue index 8c59970..e69de29 100644 --- a/src/views/goalManagement/targetClassification/index.vue +++ b/src/views/goalManagement/targetClassification/index.vue @@ -1,261 +0,0 @@ -<template> - <div> - <!-- <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" /> - </el-form-item> - </el-col> - <el-col :span="16"> - <el-form-item> - <el-button type="primary" size="default" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> --> - <div class="minCenter"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column label="名称" align="center" property="typeName" sortable /> - <el-table-column property="memo" align="center" label="描述" sortable /> - <!-- <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> --> - <el-table-column label="操作" align="center" sortable show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - <DailogClass ref="Show" @onAdd="add"></DailogClass> - </div> -</template> -<script lang="ts"> -import DailogClass from '/@/components/DailogClass/index.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - components: { ElButton, ElInput,DailogClass }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - typeName: '', ////分类名称 - }, - }); - // 下方导航与表格 - const tableData = ref([]); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - // const resetForm = () => { - // ruleForm.searchParams.qName = ''; - // ruleForm.searchParams.indexNum = ''; - // listApi(); - // }; - const listApi = () => { - goalManagementApi() - .gettargetClassList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApi(); - }); - - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const activeNames = ref('1'); - // 打开弹窗 - const Show = ref(); - const openD = (title: String, id: number) => { - Show.value.openDailog(title, ruleForm.searchParams.targetType,id); - }; - // 删除 - const onDelete = (id: number) => { - let arr = []; - arr.push(id); - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .gettargetClassDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .gettargetClassDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - const add = () => { - listApi(); - }; - return { - listApi, - add, - // resetForm, - tableData, - currentPage4, - pageSize4, - total, - ruleForm, - handleSizeChange, - handleCurrentChange, - Show, - openD, - activeNames, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; -} -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 20px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -.tableC { - margin: 0 10%; -} -</style> diff --git a/src/views/goalManagement/targetDecompositionHalfYear/index.vue b/src/views/goalManagement/targetDecompositionHalfYear/index.vue index 1ed6ed9..e69de29 100644 --- a/src/views/goalManagement/targetDecompositionHalfYear/index.vue +++ b/src/views/goalManagement/targetDecompositionHalfYear/index.vue @@ -1,286 +0,0 @@ -<template> - <div> - <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" /> - </el-form-item> - </el-col> - <el-col :span="16"> - <el-form-item> - <el-button type="primary" size="default" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <div class="btns"> - <div> - <!--<el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>--> - <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain - @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <div class="tableC"> - <el-tabs v-model="activeNames"> - <el-tab-pane label="目标指标分解" name="1"> - <el-table :data="scope.row.targetDivideDetailList" style="width: 100%"> - <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> - <el-table-column align="center" prop="value" label="考核指标" /> - <el-table-column align="center" prop="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> - <el-table-column align="center" prop="commitPersonName" label="上报人" /> - </el-table> - </el-tab-pane> - </el-tabs> - </div> - </template> - </el-table-column> - <el-table-column label="安全目标指标" align="center" property="qName" sortable /> - <el-table-column property="indexNum" align="center" label="目标指标编号" sortable /> - <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" sortable show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - <Dailog ref="Show" @addList="add"></Dailog> - </div> -</template> -<script lang="ts"> -import { timeDate } from '/@/assets/index.ts'; -import search from '../targetSettings/component/search.vue'; -import Dailog from '../targetDecompositionYear/component/Dailog.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults'; -export default defineComponent({ - components: { ElButton, ElInput, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////安全目标指标 - indexNum: '', ////目标指标编号 - targetType: '3', ////指标类型 1:年指标 2:月指标 - divideStatus: '', ////分解状态 1:已分解 2:未分解 - }, - }); - // 下方导航与表格 - const tableData = ref([]); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.indexNum = ''; - listApi() - }; - const listApi = () => { - goalManagementApi() - .getTargetMngList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApi(); - }); - - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const activeNames = ref('1'); - // 打开弹窗 - const Show = ref(); - const openD = (title: String, id: number) => { - Show.value.openDailog(title, ruleForm.searchParams.targetType, id); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - const add=()=>{ - listApi() - } - return { - timeDate, - add, - listApi, - resetForm, - tableData, - currentPage4, - pageSize4, - total, - ruleForm, - handleSizeChange, - handleCurrentChange, - Show, - openD, - activeNames, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - }; - }, -}); -</script> -<style scoped> -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 0px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -.tableC { - margin: 0 10%; -} -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetDecompositionMonth/index.vue b/src/views/goalManagement/targetDecompositionMonth/index.vue index f0510a7..e69de29 100644 --- a/src/views/goalManagement/targetDecompositionMonth/index.vue +++ b/src/views/goalManagement/targetDecompositionMonth/index.vue @@ -1,286 +0,0 @@ -<template> - <div> - <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" /> - </el-form-item> - </el-col> - <el-col :span="16"> - <el-form-item> - <el-button type="primary" size="default" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <div class="btns"> - <div> - <!--<el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>--> - <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain - @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <div class="tableC"> - <el-tabs v-model="activeNames"> - <el-tab-pane label="目标指标分解" name="1"> - <el-table :data="scope.row.targetDivideDetailList" style="width: 100%"> - <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> - <el-table-column align="center" prop="value" label="考核指标" /> - <el-table-column align="center" prop="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> - <el-table-column align="center" prop="commitPersonName" label="上报人" /> - </el-table> - </el-tab-pane> - </el-tabs> - </div> - </template> - </el-table-column> - <el-table-column label="安全目标指标" align="center" property="qName" sortable /> - <el-table-column property="indexNum" align="center" label="目标指标编号" sortable /> - <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" sortable show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - <Dailog ref="Show" @addList="add"></Dailog> - </div> -</template> -<script lang="ts"> -import { timeDate } from '/@/assets/index.ts'; -import search from '../targetSettings/component/search.vue'; -import Dailog from '../targetDecompositionYear/component/Dailog.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults'; -export default defineComponent({ - components: { ElButton, ElInput, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////安全目标指标 - indexNum: '', ////目标指标编号 - targetType: '2', ////指标类型 1:年指标 2:月指标 - divideStatus: '', ////分解状态 1:已分解 2:未分解 - }, - }); - // 下方导航与表格 - const tableData = ref([]); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.indexNum = ''; - listApi() - }; - const listApi = () => { - goalManagementApi() - .getTargetMngList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApi(); - }); - - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const activeNames = ref('1'); - // 打开弹窗 - const Show = ref(); - const openD = (title: String, id: number) => { - Show.value.openDailog(title, ruleForm.searchParams.targetType, id); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - const add=()=>{ - listApi() - } - return { - timeDate, - add, - listApi, - resetForm, - tableData, - currentPage4, - pageSize4, - total, - ruleForm, - handleSizeChange, - handleCurrentChange, - Show, - openD, - activeNames, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - }; - }, -}); -</script> -<style scoped> -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 0px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -.tableC { - margin: 0 10%; -} -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; -} -</style> diff --git a/src/views/goalManagement/targetDecompositionQuarter/index.vue b/src/views/goalManagement/targetDecompositionQuarter/index.vue index 4f0f36d..e69de29 100644 --- a/src/views/goalManagement/targetDecompositionQuarter/index.vue +++ b/src/views/goalManagement/targetDecompositionQuarter/index.vue @@ -1,286 +0,0 @@ -<template> - <div> - <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" /> - </el-form-item> - </el-col> - <el-col :span="16"> - <el-form-item> - <el-button type="primary" size="default" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <div class="btns"> - <div> - <!--<el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>--> - <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain - @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <div class="tableC"> - <el-tabs v-model="activeNames"> - <el-tab-pane label="目标指标分解" name="1"> - <el-table :data="scope.row.targetDivideDetailList" style="width: 100%"> - <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> - <el-table-column align="center" prop="value" label="考核指标" /> - <el-table-column align="center" prop="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> - <el-table-column align="center" prop="commitPersonName" label="上报人" /> - </el-table> - </el-tab-pane> - </el-tabs> - </div> - </template> - </el-table-column> - <el-table-column label="安全目标指标" align="center" property="qName" sortable /> - <el-table-column property="indexNum" align="center" label="目标指标编号" sortable /> - <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" sortable show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - <Dailog ref="Show" @addList="add"></Dailog> - </div> -</template> -<script lang="ts"> -import { timeDate } from '/@/assets/index.ts'; -import search from '../targetSettings/component/search.vue'; -import Dailog from '../targetDecompositionYear/component/Dailog.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults'; -export default defineComponent({ - components: { ElButton, ElInput, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////安全目标指标 - indexNum: '', ////目标指标编号 - targetType: '4', ////指标类型 1:年指标 2:月指标 - divideStatus: '', ////分解状态 1:已分解 2:未分解 - }, - }); - // 下方导航与表格 - const tableData = ref([]); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.indexNum = ''; - listApi() - }; - const listApi = () => { - goalManagementApi() - .getTargetMngList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApi(); - }); - - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const activeNames = ref('1'); - // 打开弹窗 - const Show = ref(); - const openD = (title: String, id: number) => { - Show.value.openDailog(title, ruleForm.searchParams.targetType, id); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - const add=()=>{ - listApi() - } - return { - timeDate, - add, - listApi, - resetForm, - tableData, - currentPage4, - pageSize4, - total, - ruleForm, - handleSizeChange, - handleCurrentChange, - Show, - openD, - activeNames, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - }; - }, -}); -</script> -<style scoped> -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 0px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -.tableC { - margin: 0 10%; -} -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; -} -</style> diff --git a/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue b/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue index c728ad6..e69de29 100644 --- a/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue +++ b/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue @@ -1,262 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :before-close="resetForm" :fullscreen="full" title="目标分解" width="60%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标指标" size="default"> - <el-input v-model="form.qName" :disabled="disabled"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号" size="default"> - <el-input v-model="form.indexNum" disabled /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度" size="default"> - <el-input v-model="form.year" disabled /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="指标值" size="default"> - <el-input v-model="form.value" disabled /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" class="demo-tabs"> - <el-tab-pane label="目标指标分解" name="1"> - <el-button type="primary" size="default" @click="daiAdd('新增')" :disabled="disabled">新增</el-button> - </el-tab-pane> - </el-tabs> - <el-table :data="formUp.targetDivideDetailList" style="width: 100%"> - <el-table-column align="center" property="dutyDepartmentName" label="责任部门" width="180" /> - <el-table-column align="center" property="value" label="考核指标" width="180" /> - <el-table-column align="center" property="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" property="makeDate" :formatter="timeDate" label="制定日期" /> - <el-table-column align="center" property="commitPersonName" label="上报人" /> - <el-table-column align="center" label="操作"> - <template #default="scope"> - <el-button link type="primary" @click="daiAdd('查看', scope.row)">查看</el-button> - <el-button link :disabled="disabled" type="primary" @click="daiAdd('修改', scope.row)">修改</el-button> - <el-button link :disabled="disabled" type="primary" @click="Delete(scope.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" v-if="disabled == false" @click="submitForm" size="default">确定</el-button> - </span> - </template> - </el-dialog> - <DailogAdd ref="Show" @onAdd="add"></DailogAdd> - <DailogSearch ref="Shows" @backNum="onNumber"></DailogSearch> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import { timeDate } from '/@/assets/index.ts'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import DailogAdd from './DailogAdd.vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; -import DailogSearch from '../../../../components/DailogSearch/DailogSearch.vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -import { emit } from 'process'; -import { deepClone } from '/@/utils/other'; -export default defineComponent({ - components: { DailogAdd, DailogSearch }, - setup(props, { emit }) { - const dialogVisible = ref<boolean>(false); - const form = ref({ - qName: '', - indexNum: '', - year: '', - value: '', - targetDivideDetailList: [], - }); - const targetType = ref(); - const disabled = ref(false); - const titles = ref(); - const openDailog = (title: string, type: any, id: number) => { - dialogVisible.value = true; - titles.value = title; - targetType.value = type; - disabled.value = title == '查看' ? true : false; - if (title == '查看' || title == '修改') { - goalManagementApi() - .getTargetMngDetail(id) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - formUp.targetDivideDetailList = form.value.targetDivideDetailList; - for(let i=0;i<formUp.targetDivideDetailList.length;i++){ - formUp.targetDivideDetailList[i].makeDate=timeC(formUp.targetDivideDetailList[i].makeDate) - } - } else { - ElMessage.error(res.data.msg); - } - }); - } - }; - const timeC = (timestamp: any) => { - let a = new Date(timestamp).getTime(); - const date = new Date(a); - const Y = date.getFullYear() + '-'; - const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; - const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; - const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; - const m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); - const s = date.getSeconds(); // 秒 - const dateString = Y + M + D + h + m +`:${s}`; - // console.log('dateString', dateString); // > dateString 2021-07-06 14:23 - return dateString; - }; - const onNumber = (val: object) => { - form.value = val; - }; - // 导航 - const activeName = ref('1'); - // 表格 - const tableData = ref([]); - // 新增弹窗 - const index = ref<any>(); - const Show = ref(); - const daiAdd = (title: string, data: any) => { - index.value = formUp.targetDivideDetailList.indexOf(data); - Show.value.openDailog(title, data); - }; - const formUp = reactive({ - targetId: '', //关联的目标指标/外键 - delTargetDivideDetails: '', //要删除的目标指标分解ID,多个用逗号隔开 - targetDivideDetailList: [], //目标指标分解列表 - }); - - const add = (val: any) => { - const item = deepClone(val); - console.log(item) - if (index.value == -1) { - formUp.targetDivideDetailList.push(item); - } else { - formUp.targetDivideDetailList[index.value] = item; - } - - // let obj=JSON.parse(JSON.stringify(form.value)) - }; - // 新增 - const submitForm = () => { - formUp.delTargetDivideDetails = arr.value.toString(); - formUp.targetId = form.value.id; - dialogVisible.value = false; - for(let i=0;i<formUp.targetDivideDetailList.length;i++){ - delete formUp.targetDivideDetailList[i].dutyDepartmentName - delete formUp.targetDivideDetailList[i].makerDepartmentName - } - goalManagementApi() - .gettargetDivideDetail(formUp) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - emit('addList'); - } else { - ElMessage.error(res.data.msg); - } - }); - form.value = { - qName: '', - indexNum: '', - year: '', - value: '', - targetDivideDetailList: [], - }; - tableData.value = []; - formUp.targetId = ''; - formUp.delTargetDivideDetails = ''; - formUp.targetDivideDetailList = []; - }; - const arr = ref([]); - // 删除 - const Delete = (data: any) => { - formUp.targetDivideDetailList.splice(form.value.targetDivideDetailList.indexOf(data), 1); - formUp.targetId = data.targetId; - arr.value.push(data.id); - }; - // 安全目标指标弹窗 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(targetType.value); - }; - // 关闭 - const resetForm = () => { - dialogVisible.value = false; - form.value = { - qName: '', - indexNum: '', - year: '', - value: '', - targetDivideDetailList: [], - }; - tableData.value = []; - formUp.targetId = ''; - formUp.delTargetDivideDetails = ''; - formUp.targetDivideDetailList = []; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - // 时间格式处理 - // const timeDate = (data: any) => { - // let result = new Date(data).getTime(); - // return result; - // }; - return { - timeC, - index, - timeDate, - arr, - form, - dialogVisible, - openDailog, - activeName, - tableData, - Show, - daiAdd, - Shows, - daiInpt, - Search, - full, - toggleFullscreen, - FullScreen, - onNumber, - targetType, - disabled, - resetForm, - titles, - add, - formUp, - submitForm, - Delete, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> diff --git a/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue b/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue index 52680b0..e69de29 100644 --- a/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue +++ b/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue @@ -1,308 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :fullscreen="full" :title="titles" width="50%" draggable @close="resetForm(ruleFormRef)"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" label-width="120px" ref="ruleFormRef" :rules="rules"> - <el-row> - <el-col :span="11"> - <el-form-item label="目标分类" prop="targetTypeId" size="default"> - <el-select v-model="form.targetTypeId" class="m-2" placeholder="请选择" style="width:100%"> - <el-option v-for="item in options" :key="item.id" :label="item.typeName" :value="item.id" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="责任人" prop="dutyPersonName" size="default"> - <el-input v-model="form.dutyPersonName"> - <template #append> <el-button :icon="Search" @click="openUser(1)" /> </template - ></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="责任部门" prop="dutyDepartmentId" size="default"> - <el-tree-select - v-model="form.dutyDepartmentId" - check-strictly="true" - @current-change="dutyName" - :data="data" - class="w100" - :props="propse" - placeholder="请选择" - /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="考核指标" prop="value" size="default"> - <el-input v-model.number="form.value" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="制定人部门" prop="makerDepartmentId" size="default"> - <el-tree-select - v-model="form.makerDepartmentId" - :data="data" - @current-change="makerName" - check-strictly="true" - class="w100" - :props="propse" - placeholder="请选择" - /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="制定日期" prop="makeDate" size="default"> - <el-date-picker - v-model="form.makeDate" - format="YYYY-MM-DD HH:mm:ss" - value-format="YYYY-MM-DD HH:mm:ss" - type="datetime" - placeholder="请选择" - style="width: 100%" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="上报人" prop="commitPersonName" size="default"> - <el-input v-model="form.commitPersonName"> - <template #append> <el-button :icon="Search" @click="openUser(2)" /> </template - ></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="计划措施" prop="commitPersonName" size="default"> - <el-input v-model="form.planDesc"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm(ruleFormRef)" :disabled="disabled" size="default">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUser ref="Show" @SearchUser="onUser"></DailogSearchUser> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive, onMounted } from 'vue'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -import type { FormInstance, FormRules } from 'element-plus'; -import DailogSearchUser from '../../../../components/DailogSearchUser/index.vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - components: { DailogSearchUser }, - setup(props, { emit }) { - const ruleFormRef = ref<FormInstance>(); - const form = ref({ - dutyDepartmentId: '', ////责任部门/外键 - makerDepartmentId: '', ////制定人部门/外键 - commitPersonId: '', ////上报人/外键 - commitPersonName: '', - value: '', ////考核指标值 - makeDate: '', ////制定日期 - targetTypeId: '', ///目标分类 - dutyPersonId: '', ///责任人id - dutyPersonName: '', ///责任人 - planDesc: '', ///计划措施 - }); - //部门 - const department = () => { - goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - onMounted(() => { - department(); - allList() - }); - const disabled = ref(false); - // 开启弹窗 - const titles = ref(); - const dialogVisible = ref(false); - const openDailog = (title: string, data: any) => { - titles.value = `${title}目标指标分解`; - if (title == '查看') { - disabled.value = true; - form.value = data; - } else if (title == '修改') { - disabled.value = false; - form.value = data; - } else { - disabled.value = false; - } - dialogVisible.value = true; - }; - // 分类 All - const allList=()=>{ - goalManagementApi().gettargetClassAll({}).then(res=>{ - if(res.data.code==200){ - options.value=res.data.data - }else{ - ElMessage.error(res.data.msg); - } - }) - } - // 开启用户弹窗 - const Show = ref(); - const openUser = (type:any) => { - Show.value.openDailog(type); - }; - const rules = reactive<FormRules>({ - targetTypeId: [ - { - required: true, - message: '目标分类不能为空', - trigger: 'blur', - }, - ], - dutyPersonName: [ - { - required: true, - message: '责任人不能为空', - trigger: 'blur', - }, - ], - dutyDepartmentId: [ - { - required: true, - message: '责任部门不能为空', - trigger: 'blur', - }, - ], - makerDepartmentId: [ - { - required: true, - message: '制定人部门不能为空', - trigger: 'blur', - }, - ], - commitPersonId: [ - { - required: true, - message: '上报人不能为空', - trigger: 'blur', - }, - ], - value: [ - { - required: true, - message: '考核指标值不能为空', - trigger: 'blur', - }, - { - type: 'number', - message: '考核指标值只能为数字类型', - trigger: 'blur', - }, - ], - makeDate: [ - { - required: true, - message: '制定日期不能为空', - trigger: 'blur', - }, - ], - commitPersonName: [], - }); - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - emit('onAdd', form.value); - dialogVisible.value = false; - // handleClose(formEl) - } else { - console.log('error submit!', fields); - } - }); - }; - - const resetForm = (formEl: FormInstance | undefined) => { - // console.log(formEl); - if (!formEl) return; - formEl.clearValidate(); - dialogVisible.value = false; - form.value = {}; - }; - // const handleClose = (formEl: any) => { - // formEl.resetFields(); - // }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - const data = ref(); - const onUser = (e: any, type: any) => { - console.log(e); - if (type == 1) { - form.value.dutyPersonId = e.uid; - form.value.dutyPersonName = e.realName; - } else if (type == 2) { - form.value.commitPersonId = e.uid; - form.value.commitPersonName = e.realName; - } - }; - const makerName = (data: any) => { - form.value.makerDepartmentName = data.depName; - }; - const dutyName = (data: any) => { - form.value.dutyDepartmentName = data.depName; - }; - const options = ref([]); - return { - options, - allList, - disabled, - makerName, - dutyName, - titles, - // handleClose, - form, - propse, - department, - dialogVisible, - openDailog, - Show, - openUser, - Search, - full, - toggleFullscreen, - FullScreen, - data, - onUser, - ruleFormRef, - rules, - submitForm, - resetForm, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> diff --git a/src/views/goalManagement/targetDecompositionYear/index.vue b/src/views/goalManagement/targetDecompositionYear/index.vue index e840ca6..e69de29 100644 --- a/src/views/goalManagement/targetDecompositionYear/index.vue +++ b/src/views/goalManagement/targetDecompositionYear/index.vue @@ -1,284 +0,0 @@ -<template> - <div> - <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" /> - </el-form-item> - </el-col> - <el-col :span="16"> - <el-form-item> - <el-button type="primary" size="default" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <div class="btns"> - <div> - <!--<el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>--> - <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain - @click="openD('修改', deletAll[0])">修改</el-button> - <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button> - </div> - </div> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <div class="tableC"> - <el-tabs v-model="activeNames"> - <el-tab-pane label="目标指标分解" name="1"> - <el-table :data="scope.row.targetDivideDetailList" style="width: 100%"> - <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> - <el-table-column align="center" prop="value" label="考核指标" /> - <el-table-column align="center" prop="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> - <el-table-column align="center" prop="commitPersonName" label="上报人" /> - </el-table> - </el-tab-pane> - </el-tabs> - </div> - </template> - </el-table-column> - <el-table-column label="安全目标指标" align="center" property="qName" sortable /> - <el-table-column property="indexNum" align="center" label="目标指标编号" sortable /> - <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" sortable show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - <Dailog ref="Show" @addList="add"></Dailog> - </div> -</template> -<script lang="ts"> -import { timeDate } from '/@/assets/index.ts'; -import Dailog from './component/Dailog.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - components: { ElButton, ElInput, Dailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////安全目标指标 - indexNum: '', ////目标指标编号 - targetType: '1', ////指标类型 1:年指标 2:月指标 - divideStatus: '', ////分解状态 1:已分解 2:未分解 - }, - }); - // 下方导航与表格 - const tableData = ref([]); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.indexNum = ''; - listApi() - }; - const listApi = () => { - goalManagementApi() - .getTargetMngList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApi(); - }); - - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const activeNames = ref('1'); - // 打开弹窗 - const Show = ref(); - const openD = (title: String, id: number) => { - Show.value.openDailog(title,ruleForm.searchParams.targetType, id); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - const add=()=>{ - listApi() - } - return { - timeDate, - listApi, - add, - resetForm, - tableData, - currentPage4, - pageSize4, - total, - ruleForm, - handleSizeChange, - handleCurrentChange, - Show, - openD, - activeNames, - onDelete, - warning, - danger, - deletAll, - handleSelectionChange, - onDeleteAll, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; -} -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 0px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -.tableC { - margin: 0 10%; -} -</style> diff --git a/src/views/goalManagement/targetEscalation/component/Dailog.vue b/src/views/goalManagement/targetEscalation/component/Dailog.vue index bf223b6..e69de29 100644 --- a/src/views/goalManagement/targetEscalation/component/Dailog.vue +++ b/src/views/goalManagement/targetEscalation/component/Dailog.vue @@ -1,65 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :fullscreen="full" title="查看审批流程" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-table :data="tableData" style="width: 100%"> - <el-table-column property="workName" label="审批人" sortable></el-table-column> - <el-table-column property="title" label="审批标题" sortable></el-table-column> - <el-table-column property="approvePersonName" label="编写人" sortable></el-table-column> - <el-table-column property="approveMemo" label="审批意见" sortable></el-table-column> - </el-table> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false">关闭</el-button> - <!-- <el-button type="primary" @click="dialogVisible = false">确定</el-button> --> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, reactive, ref } from 'vue'; -import { FullScreen } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - setup() { - const dialogVisible = ref(false); - const form = ref({ - pageSize: 10, - pageIndex: 1, - searchParams: { - relateId: '', ////检查记录ID - relateType:"", - gmtCreate:[], - }, - }); - const tableData = ref(); - const openDailog = (data: any,type:number) => { - dialogVisible.value = true; - form.value.searchParams.relateId=data - form.value.searchParams.relateType=type - goalManagementApi().getworkApproveListCode(form.value).then(res=>{ - if(res.data.code==200){ - tableData.value=res.data.data - } - }) - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - tableData, - openDailog, - full, - toggleFullscreen, - form, - FullScreen, - }; - }, -}); -</script> diff --git a/src/views/goalManagement/targetEscalation/component/TypeDailog.vue b/src/views/goalManagement/targetEscalation/component/TypeDailog.vue index 02c9afb..e69de29 100644 --- a/src/views/goalManagement/targetEscalation/component/TypeDailog.vue +++ b/src/views/goalManagement/targetEscalation/component/TypeDailog.vue @@ -1,341 +0,0 @@ -<template> - <el-dialog :title="titleName" v-model="dialogVisible" @click="resetForm" width="70%" draggable :fullscreen="full" :close-on-click-modal="false"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form ref="ruleFormRef" :model="form" size="default" :disabled="disabled" label-width="120px"> - <div v-if="titleName == '发起审批'"> - <el-row> - <el-col :span="11"> - <el-form-item label="审批名称" prop="workName" size="default"> - <el-input v-model="form.workName" :disabled="disabledT" placeholder="请填写名称"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="审批标题" prop="title" size="default"> - <el-input v-model="form.title" :disabled="disabledT" placeholder="请填写标题"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="审批人" prop="approvePersonId" size="default"> - <el-input v-model="form.approvePersonName" :disabled="disabledT" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"></el-col> - </el-row> - </div> - <div v-if="titleName != '发起审批'"> - <el-row> - <el-col :span="11"> - <el-form-item label="审批名称" prop="workName" size="default"> - <el-input v-model="formUp.workName" :disabled="disabledT" placeholder="请填写名称"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="审批标题" prop="title" size="default"> - <el-input v-model="formUp.title" :disabled="disabledT" placeholder="请填写标题"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="审批人" prop="approvePersonId" size="default"> - <el-input v-model="formUp.approvePersonName" :disabled="disabledT" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"></el-col> - </el-row> - </div> - <el-table :data="tableData" style="width: 90%;margin:20px auto"> - <el-table-column align="center" type="index" label="序号" width="80" /> - <el-table-column align="center" prop="makerDepartmentName" label="责任部门" /> - <el-table-column align="center" prop="value" label="考核指标" /> - <el-table-column align="center" prop="dutyDepartmentName" label="制定部门" /> - <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> - <el-table-column align="center" label="检查值"> - <template #default="scope"> - <el-input v-model="scope.row.commitValue" :disabled="disabledType" /> - </template> - </el-table-column> - <el-table-column align="center" label="检查人"> - <template #default="scope"> - <el-input v-model="scope.row.personName" :disabled="disabledType"> - <template #append> <el-button :icon="Search" @click="openUsers(scope.row)" /> </template - ></el-input> - </template> - </el-table-column> - </el-table> - <div v-if="typeScope"> - <el-row> - <el-col> - <el-form-item label="审批结果" prop="authorUid"> - <el-radio-group :disabled="disabled" v-model="form.approveResult"> - <el-radio :label="0">不通过</el-radio> - <el-radio :label="1">通过</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="审批意见" prop="approveMemo"> - <el-input v-model="form.approveMemo" :disabled="disabled" type="textarea" placeholder="请填写审批意见"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="是否完成" prop="complete"> - <el-radio-group v-model="form.approveStatus" :disabled="disabled"> - <el-radio :label="3">是</el-radio> - <el-radio :label="2">否</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - </el-row> - <div v-if="form.approveStatus == 2"> - <el-row> - <el-col :span="11"> - <el-form-item label="审批名称" prop="workName" size="default"> - <el-input v-model="form.workName" placeholder="请填写名称"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="审批标题" prop="title" size="default"> - <el-input v-model="form.title" placeholder="请填写标题"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="审批人" prop="approvePersonId" size="default"> - <el-input v-model="form.approvePersonName" placeholder="请选择" class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="openUser" /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"></el-col> - </el-row> - </div> - </div> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button size="default" type="primary" :disabled="disabled" @click="submitForm">确定</el-button> - </span> - </template> - </el-dialog> - <DailogSearchUserManger ref="userRef" @SearchUser="onUser" /> - <DailogSearchUser ref="Show" @SearchUser="onUsers"></DailogSearchUser> -</template> -<script lang="ts"> -import { ref, defineComponent } from 'vue'; -import { timeDate } from '/@/assets/index.ts'; -import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue'; -import { ElMessage } from 'element-plus'; -import DailogSearchUser from '../../../../components/DailogSearchUser/index.vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -import { Search, FullScreen } from '@element-plus/icons-vue'; -export default defineComponent({ - components: { DailogSearchUserManger, DailogSearchUser }, - setup(props, { emit }) { - const dialogVisible = ref(false); - const form = ref({ - workName: '', // 审批名称 - title: '', //审批标题 - approvePersonId: '', - approvePersonName: '', - approveStatus: "", - approveResult: '', - relateType: 1, - relateId: '', - relateDesc: '', - }); - // 提交 - const submitForm = () => { - if (titleName.value == '发起审批') { - let arr = []; - for (let i = 0; i < tableData.value.length; i++) { - arr.push({ - id: tableData.value[i].id, - value: tableData.value[i].commitValue, - personName: tableData.value[i].personName, - personId: tableData.value[i].personId, - }); - } - form.value.approveStatus=2 - form.value.relateDesc = JSON.stringify(arr); - goalManagementApi() - .getworkApproveAdd(form.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('onType'); - } else { - ElMessage.error(res.data.msg); - } - }); - } else if (titleName.value == '审批') { - goalManagementApi() - .getworkApproveUpdata(form.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('onType'); - } else { - ElMessage.error(res.data.msg); - } - }); - } - dialogVisible.value = false; - disabled.value = false; - disabledT.value = false; - form.value = {}; - formUp.value = {}; - }; - // 关闭 - const resetForm = () => { - disabled.value = false; - disabledT.value = false; - form.value = {}; - formUp.value = {}; - tableData.value=[]; - dialogVisible.value = false; - }; - const titleName = ref(); - const typeScope = ref(); - const disabledT = ref(false); - const disabled = ref(false); - const formUp = ref({ - workName: '', - title: '', - approvePersonName: '', - }); - const tableData = ref([]); - const disabledType=ref() - // 打开弹窗 - const openDialog = (title: string, name: any, id: number, type: number,data:any) => { - dialogVisible.value = true; - titleName.value = title; - form.value.relateType = type; - if (title == '发起审批') { - form.value.relateId = id; - typeScope.value = false; - goalManagementApi() - .getTargetMngDetail(id) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data.targetDivideDetailList; - } else { - ElMessage.error(res.data.msg); - } - }); - disabledType.value=false - } else if (title == '审批' || title == '查看审批') { - goalManagementApi() - .getworkApproveDetail(id) - .then((res) => { - if (res.data.code == 200) { - if (data.approveStatus==2&&data.checkApprove==true){ - disabled.value = false; - } else if(data.approveStatus==2&&data.checkApprove==false) { - disabled.value = true; - } - form.value = res.data.data; - form.value.approveStatus = ''; - formUp.value.workName = form.value.workName; - formUp.value.title = form.value.title; - formUp.value.approvePersonName = form.value.approvePersonName; - form.value.workName="" - form.value.title="" - form.value.approvePersonName="" - tableData.value=res.data.data.targetDivideDetailList - console.log(form.value.approvePersonName) - } - }); - disabledType.value=true - typeScope.value = true; - disabledT.value = true; - } - }; - // 打开用户选择弹窗 - const userRef = ref(); - const openUser = () => { - userRef.value.openDailog(); - }; - const index = ref(); - const Show = ref(); - const openUsers = (id: any) => { - index.value = tableData.value.indexOf(id); - Show.value.openDailog(); - }; - const onUser = (val: any) => { - form.value.approvePersonId = val[0].uid; - form.value.approvePersonName = val[0].realName; - }; - const onUsers = (val: any) => { - tableData.value[index.value].personName = val.realName; - tableData.value[index.value].personId = val.uid; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - disabledType, - index, - Show, - onUsers, - openUsers, - formUp, - timeDate, - tableData, - onUser, - dialogVisible, - form, - disabledT, - submitForm, - resetForm, - titleName, - typeScope, - disabled, - openDialog, - userRef, - openUser, - full, - toggleFullscreen, - Search, - FullScreen, - }; - }, -}); -</script> -<style> -.el-row { - padding-bottom: 20px; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetEscalation/index.vue b/src/views/goalManagement/targetEscalation/index.vue index 22535be..e69de29 100644 --- a/src/views/goalManagement/targetEscalation/index.vue +++ b/src/views/goalManagement/targetEscalation/index.vue @@ -1,199 +0,0 @@ -<template> - <div> - <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" /> - </el-form-item> - </el-col> - <el-col :span="16"> - <el-form-item> - <el-button type="primary" size="default" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="检查" name="1"> </el-tab-pane> - <el-tab-pane label="上报" name="2"></el-tab-pane> - </el-tabs> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%"> - <el-table-column label="安全目标指标" align="center" property="qName" sortable /> - <el-table-column property="indexNum" align="center" label="目标指标编号" sortable /> - <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> - <el-table-column v-if="activeName == 1" label="操作" align="center" show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="EditPen" v-if="scope.row.approveStatus==null" @click="TypeDailog('发起审批','检查',scope.row.id,1)">发起审批</el-button> - <el-button link type="primary" size="default" :icon="EditPen" v-if="scope.row.approveStatus==2&&scope.row.checkApprove==true" @click="TypeDailog('审批',scope.row.id,scope.row.approveId,1,scope.row)">审批</el-button> - <el-button link type="primary" size="default" :icon="EditPen" v-if="scope.row.approveStatus==2&&scope.row.checkApprove==false" @click="TypeDailog('查看审批',scope.row.id,scope.row.approveId,1,scope.row)">查看审批</el-button> - <el-button link type="primary" size="default" :icon="EditPen" v-if="scope.row.approveStatus==3" @click="openDai(scope.row.id,1)" >查看审批流程</el-button> - </template> - </el-table-column> - <el-table-column v-if="activeName == 2" label="操作" align="center" show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="EditPen" v-if="scope.row.approveStatus==null" @click="TypeDailog('发起审批','检查',scope.row.id,2)">发起审批</el-button> - <el-button link type="primary" size="default" :icon="EditPen" v-if="scope.row.approveStatus==2&&scope.row.checkApprove==true" @click="TypeDailog('审批',scope.row.id,scope.row.approveId,2,scope.row)">审批</el-button> - <el-button link type="primary" size="default" :icon="EditPen" v-if="scope.row.approveStatus==2&&scope.row.checkApprove==false" @click="TypeDailog('查看审批',scope.row.id,scope.row.approveId,2,scope.row)">查看审批</el-button> - <el-button link type="primary" size="default" :icon="EditPen" v-if="scope.row.approveStatus==3" @click="openDai(scope.row.id,2)" >查看审批流程</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - <Dailog ref="Show"></Dailog> - <TypeDailog ref="TypeD" @onType="typeAlign" /> - </div> -</template> -<script lang="ts"> -import Dailog from './component/Dailog.vue'; -import TypeDailog from './component/TypeDailog.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -import { useRouter } from 'vue-router'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - components: { ElButton, ElInput, Dailog,TypeDailog }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////安全目标指标 - indexNum: '', ////目标指标编号 - targetType: 1, ////指标类型 1:年指标 2:月指标 - divideStatus: 1, ////分解状态 1:已分解 2:未分解 - relateType: 1, ////关联业务类型 1:目标检查 2:目标上报 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.indexNum = ''; - }; - const listApi = () => { - goalManagementApi() - .getworkApproveList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - const handleClick = (val: any) => { - // let targetType = JSON.parse(JSON.stringify(val)); - ruleForm.searchParams.relateType = val.paneName; - listApi(); - }; - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const activeName = ref<any>('1'); - // 记录弹窗 - const Show = ref(); - const openDai = (data: any,num:number) => { - Show.value.openDailog(data,num); - }; - // 发起审批弹窗 - const TypeD = ref(); - const TypeDailog = (title:string,name:string,id:number,type:number,data:any) => { - TypeD.value.openDialog(title,name,id,type,data); - }; - const typeAlign=()=>{ - listApi(); - } - return { - TypeD, - typeAlign, - TypeDailog, - activeName, - total, - handleClick, - ruleForm, - listApi, - onAddorUpdata, - tableData, - resetForm, - currentPage4, - pageSize4, - handleSizeChange, - handleCurrentChange, - Show, - openDai, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - EditPen, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; -} -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 0px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetImprovements/component/Dailogprove.vue b/src/views/goalManagement/targetImprovements/component/Dailogprove.vue index ee0c885..e69de29 100644 --- a/src/views/goalManagement/targetImprovements/component/Dailogprove.vue +++ b/src/views/goalManagement/targetImprovements/component/Dailogprove.vue @@ -1,105 +0,0 @@ -<template> - <el-dialog v-model="dialogVisible" :fullscreen="full" title="Tips" width="50%" :before-close="handleClose"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标指标" size="default"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号" size="default"> - <el-input v-model="form.name" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度" size="default"> - <el-input v-model="form.name" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="责任部门" size="default"> - <el-input v-model="form.name" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="改进期限" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2" > - <el-form-item label="发起人" size="default"> - <el-input v-model="model"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="发起时间" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-tabs v-model="activeName" class="demo-tabs"> - <el-tab-pane label="目标指标" name="first"></el-tab-pane> - </el-tabs> - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false">关闭</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import { Plus, Delete, Upload, Download, Refresh, View, Search, FullScreen } from '@element-plus/icons-vue'; -export default defineComponent({ - setup() { - const dialogVisible = ref(false); - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', - }); - const openDailog = () => { - dialogVisible.value = true; - }; - const activeName = ref('first'); - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - form, - openDailog, - activeName, - Search, - full, - toggleFullscreen, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetImprovements/index.vue b/src/views/goalManagement/targetImprovements/index.vue index b273902..e69de29 100644 --- a/src/views/goalManagement/targetImprovements/index.vue +++ b/src/views/goalManagement/targetImprovements/index.vue @@ -1,307 +0,0 @@ -<template> -<div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.pass" placeholder="安全目标指标" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button type="primary" size="default" @click="submitForm(ruleFormRef)">查询</el-button> - <el-button size="default" @click="resetForm(ruleFormRef)">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="发起改进" name="1"> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column label="安全目标指标" align="center" sortable> - <template #default="scope">{{ scope.row.date }}</template> - </el-table-column> - <el-table-column property="name" align="center" label="目标指标编号" sortable /> - <el-table-column property="address" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="责任部门" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="考核指标" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="上报值" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="考核时间" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="考核结果" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="200" sortable show-overflow-tooltip> - <template #default> - <el-button link type="primary" size="default" :icon="View" @click="handleClick">查看</el-button> - <el-button link type="primary" size="default" :icon="Delete">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[100, 200, 300, 400]" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="400" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-tab-pane> - <el-tab-pane label="整改" name="2"> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column label="安全目标指标" align="center" sortable> - <template #default="scope">{{ scope.row.date }}</template> - </el-table-column> - <el-table-column property="name" align="center" label="目标指标编号" sortable /> - <el-table-column property="address" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="责任部门" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="考核指标" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="改进期限" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="发起人" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="发起时间" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="200" sortable show-overflow-tooltip> - <template #default> - <el-button link type="primary" size="default" :icon="View" @click="openDai">查看</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="jump">整改上报</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[100, 200, 300, 400]" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="400" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-tab-pane> - <el-tab-pane label="验证" name="3"> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column label="安全目标指标" align="center" sortable> - <template #default="scope">{{ scope.row.date }}</template> - </el-table-column> - <el-table-column property="name" align="center" label="目标指标编号" sortable /> - <el-table-column property="address" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="责任部门" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="考核指标" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="整改值" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="整改时间" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="200" sortable show-overflow-tooltip> - <template #default> - <el-button link type="primary" size="default" :icon="View" @click="handleClick">查看</el-button> - <el-button link type="primary" size="default" :icon="Delete">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[100, 200, 300, 400]" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="400" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-tab-pane> - <el-tab-pane label="完成" name="4"> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column label="安全目标指标" align="center" sortable> - <template #default="scope">{{ scope.row.date }}</template> - </el-table-column> - <el-table-column property="name" align="center" label="目标指标编号" sortable /> - <el-table-column property="address" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="责任部门" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="考核指标" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="整改值" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="整改时间" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="验证结果" align="center" sortable show-overflow-tooltip /> - <el-table-column property="address" label="验证日期" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="200" sortable show-overflow-tooltip> - <template #default> - <el-button link type="primary" size="default" :icon="View" @click="handleClick">查看</el-button> - <el-button link type="primary" size="default" :icon="Delete">审批进度</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[100, 200, 300, 400]" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="400" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-tab-pane> - </el-tabs> - </div> - <Dailogprove ref="Show"></Dailogprove> - </div> -</template> -<script lang="ts"> -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View } from '@element-plus/icons-vue'; -interface User { - date: string; - name: string; - address: string; -} -import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults'; -import Dailogprove from './component/Dailogprove.vue'; -import { useRouter } from 'vue-router'; -export default defineComponent({ - components: { ElButton, ElInput,Dailogprove}, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pass: '', - checkPass: '', - }); - const resetForm = (formEl: FormInstance | undefined) => { - console.log(!formEl); - if (!formEl) return; - formEl.resetFields(); - }; - // 下方导航与表格 - const activeName = ref('1'); - const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - const formatter = (row: User, column: TableColumnCtx<User>) => { - return row.address; - }; - - const tableData: User[] = [ - { - date: '2016-05-03', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-02', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-04', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-01', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-08', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-06', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-07', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const currentPage4 = ref(4); - const pageSize4 = ref(100); - const small = ref(false); - const disabled = ref(false); - const background = ref(false); - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`); - }; - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`); - }; - const Show=ref() - const openDai=()=>{ - Show.value.openDailog() - } - const router=useRouter() - const jump=()=>{ - router.push({ - path:"/processForms" - }) - } - return { - ruleForm, - resetForm, - activeName, - handleClick, - tableData, - formatter, - currentPage4, - pageSize4, - handleSizeChange, - handleCurrentChange, - small, - disabled, - background, - Show, - router, - jump, - openDai, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 10px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetSettings/component/dailogAdd.vue b/src/views/goalManagement/targetSettings/component/dailogAdd.vue index 8ab66ca..e69de29 100644 --- a/src/views/goalManagement/targetSettings/component/dailogAdd.vue +++ b/src/views/goalManagement/targetSettings/component/dailogAdd.vue @@ -1,284 +0,0 @@ -<template> - <el-dialog v-model="Shows" @close="handleClose(ruleFormRef)" :fullscreen="full" :title="titles" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" ref="ruleFormRef" :rules="rules" label-width="120px"> - <el-row> - <el-col :span="11"> - <el-form-item label="安全目标项" prop="qName" size="default"> - <el-input v-model="form.qName" placeholder="请填写安全目标项" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="目标编号" prop="indexNum" size="default"> - <el-input v-model="form.indexNum" placeholder="请填写目标编号" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="年度" prop="year" size="default"> - <el-input v-model.number="form.year" maxlength="8" placeholder="请填写年度" /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="指标值" prop="value" size="default"> - <el-input v-model.number="form.value" placeholder="请填写指标值"> - <template #prepend> - <el-select v-model="form.valueSign " placeholder="请选择" style="width: 115px"> - <el-option label="大于" :value="1" /> - <el-option label="等于" :value="2" /> - <el-option label="小于" :value="3" /> - </el-select> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="指标级别" size="default" prop="level"> - <el-select v-model="form.level" placeholder="请选择" style="width: 100%"> - <el-option label="公司级" :value="1">公司级</el-option> - <el-option label="部门分厂级" :value="2">部门分厂级</el-option> - <el-option label="工段班组级" :value="3">工段班组级</el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="完成期限" size="default" prop="completeDate"> - <el-date-picker - v-model="form.completeDate" - format="YYYY-MM-DD HH:mm:ss" - value-format="YYYY-MM-DD HH:mm:ss" - type="datetime" - placeholder="请选择" - style="width: 100%" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="目标制定部门" size="default" prop=""> - <el-tree-select - v-model="form.makerDepartmentId" - :data="data" - @current-change="makerName" - check-strictly="true" - class="w100" - :props="propse" - placeholder="请选择" - /> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> </el-col> - </el-row> - <el-form-item label="备注信息" prop="memo"> - <el-input v-model="form.memo" size="default" type="textarea" /> - </el-form-item> - </el-form> - <template #footer> - <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button type="primary" v-if="titles == '查看目标设定' ? false : true" @click="submitForm(ruleFormRef)" size="default">确定</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts"> -import { ref, toRefs, reactive, onMounted, watch, defineComponent } from 'vue'; -// import { timeDate } from '/@/assets/index.ts'; -import screenfull from 'screenfull'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; -import type { FormInstance, FormRules } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View, Search, FullScreen } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - setup(props, { emit }) { - let Shows = ref(false); - const ruleFormRef = ref<FormInstance>(); - const form = ref({ - indexNum: '', //目标指标编号 - qName: '', //安全目标指标 - year: '', //年度 - level: '', ////指标级别 1:公司级 2:部门分厂级 3:工段班组级 - memo: '', ////备注信息 - targetType: '', ////指标类型 1:年指标 2:月指标 - completeDate: '', ////完成期限 - divideStatus: '2', ////分解状态 1:已分解 2:未分解 - value: '', ////指标值 - makerDepartmentId: '', - valueSign:"" - }); - const titles = ref(); - const disabled = ref(false); - const titleT = ref(); - // 打开弹窗 - const openDialog = (title: string, value: any, id: number) => { - department(); - Shows.value = true; - titleT.value = title; - titles.value = `${title}目标设定`; - form.value.targetType = value; - disabled.value = title == '查看' ? true : false; - if (title == '查看' || title == '修改') - goalManagementApi() - .getTargetMngDetail(id) - .then((res) => { - if (res.data.code == 200) { - form.value = res.data.data; - form.value.completeDate = timeC(form.value.completeDate); - } else { - ElMessage.error(res.data.msg); - } - }); - }; - const timeC = (timestamp: any) => { - let a = new Date(timestamp).getTime(); - const date = new Date(a); - const Y = date.getFullYear() + '-'; - const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; - const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; - const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; - const m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); - const s = date.getSeconds(); // 秒 - const dateString = Y + M + D + h + m + `:${s}`; - // console.log('dateString', dateString); // > dateString 2021-07-06 14:23 - return dateString; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - const rules = reactive<FormRules>({ - qName: [ - { - required: true, - message: '安全目标项不能为空', - trigger: 'change', - }, - ], - indexNum: [ - { - required: true, - message: '目标编号不能为空', - trigger: 'change', - }, - ], - year: [ - { - required: true, - message: '年度不能为空', - trigger: 'change', - }, - ], - value: [ - { - required: true, - message: '指标值不能为空', - trigger: 'change', - }, - { - type: 'number', - message: '指标值只能为数字类型', - trigger: 'change', - }, - ], - level: [], - completeDate: [], - memo: [], - }); - // 提交 - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - if (titleT.value == '新建') { - delete form.value.id; - } - Shows.value = false; - goalManagementApi() - .getTargetMngAddOrupdata(form.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - emit('navAddorUpdata'); - } else { - ElMessage.error(res.data.msg); - formEl.resetFields(); - } - }); - formEl.resetFields(); - } else { - console.log('error submit!', fields); - } - }); - }; - // 取消 - const resetForm = (formEl: FormInstance | undefined) => { - if (!formEl) return; - formEl.resetFields(); - Shows.value = false; - }; - const handleClose = (formEl: FormInstance | undefined) => { - formEl.resetFields(); - }; - //部门 - const department = () => { - goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - const data = ref(); - const makerName = (data: any) => { - form.value.makerDepartmentName = data.depName; - }; - return { - department, - propse, - data, - makerName, - timeC, - openDialog, - handleClose, - titles, - titleT, - // timeDate, - Shows, - form, - full, - disabled, - toggleFullscreen, - rules, - ruleFormRef, - submitForm, - resetForm, - FullScreen, - }; - }, -}); -</script> -<style scoped> -.el-row { - padding: 0 0 20px 0; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetSettings/component/search.vue b/src/views/goalManagement/targetSettings/component/search.vue index 35b1a6a..e69de29 100644 --- a/src/views/goalManagement/targetSettings/component/search.vue +++ b/src/views/goalManagement/targetSettings/component/search.vue @@ -1,52 +0,0 @@ -<template> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.pass" size="default" placeholder="安全目标指标" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.checkPass" size="default" placeholder="目标指标编号" /> - </el-form-item> - </el-col> - <el-col :span="16"> - <el-form-item> - <el-button type="primary" size="default" @click="submitForm(ruleFormRef)">查询</el-button> - <el-button size="default" @click="resetForm(ruleFormRef)">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> -</template> -<script lang="ts"> -import { ref, reactive, defineComponent } from 'vue'; -import { - FormInstance, -} from "element-plus"; -export default defineComponent({ - setup() { - // 搜索条件 - const ruleForm = reactive({ - pass: '', - checkPass: '', - }); - const resetForm = (formEl: FormInstance | undefined) => { - console.log(!formEl); - if (!formEl) return; - formEl.resetFields(); - }; - return { - ruleForm, - resetForm - }; - }, -}); -</script> -<style scoped> - .topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; -} -</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetSettings/index.vue b/src/views/goalManagement/targetSettings/index.vue index 0086c8e..e69de29 100644 --- a/src/views/goalManagement/targetSettings/index.vue +++ b/src/views/goalManagement/targetSettings/index.vue @@ -1,300 +0,0 @@ -<template> - <div> - <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" /> - </el-form-item> - </el-col> - <el-col :span="16"> - <el-form-item> - <el-button type="primary" size="default" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div class="minCenter"> - <el-tabs v-model="ruleForm.searchParams.targetType" class="demo-tabs" @tab-click="handleClick"> - <div class="btns"> - <div> - <el-button type="primary" size="default" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button type="danger" :disabled="danger" size="default" @click="onDeleteAll" :icon="Delete" plain>删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="upButton"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <el-tab-pane label="目标定制(年)" name="1"> </el-tab-pane> - <el-tab-pane label="目标定制(月)" name="2"></el-tab-pane> - <el-tab-pane label="目标定制(半年)" name="3"></el-tab-pane> - <el-tab-pane label="目标定制(季度)" name="4"></el-tab-pane> - </el-tabs> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column label="序号" align="center" type="index" width="70" /> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column label="安全目标指标" align="center" property="qName" sortable /> - <el-table-column property="indexNum" align="center" label="目标指标编号" sortable /> - <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> - <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> - <el-table-column property="level" label="指标级别" align="center" sortable show-overflow-tooltip /> - <el-table-column property="completeDate" label="完成期限" align="center" :formatter="timeDate" sortable show-overflow-tooltip /> - <el-table-column label="状态" align="center" sortable show-overflow-tooltip> - <template #default="scope"> - <span v-if="scope.row.divideStatus == 1">已分解</span> - <span v-if="scope.row.divideStatus == 2">未分解</span> - </template> - </el-table-column> - <el-table-column property="memo" label="备注信息" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="300" sortable show-overflow-tooltip> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="View" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - <dailogAdd ref="openAdd" @navAddorUpdata="onAddorUpdata"></dailogAdd> - <upData ref="upShow"></upData> - </div> - </div> -</template> -<script lang="ts"> -import dailogAdd from './component/dailogAdd.vue'; -import {timeDate} from '/@/assets/index.ts' -import upData from '../../../components/updata/updata.vue'; -import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; -import { Plus, Delete, Upload, Download, Refresh, View } from '@element-plus/icons-vue'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - components: { ElButton, ElInput, dailogAdd, upData }, - setup() { - // 搜索条件 - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - qName: '', ////安全目标指标 - indexNum: '', ////目标指标编号 - targetType: '1', ////指标类型 1:年指标 2:月指标 - divideStatus: '', ////分解状态 1:已分解 2:未分解 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - ruleForm.searchParams.indexNum = ''; - listApi() - }; - const listApi = () => { - goalManagementApi() - .getTargetMngList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - // - const handleClick = (val: any) => { - let targetType = JSON.parse(JSON.stringify(val)); - ruleForm.searchParams.targetType = targetType.paneName; - listApi(); - }; - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - // 表格 - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const small = ref(false); - const disabled = ref(false); - const background = ref(false); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - // 弹窗 - const openAdd = ref(); - const openD = (title: String, id: number) => { - openAdd.value.openDialog(title, ruleForm.searchParams.targetType, id); - }; - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - // const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr - if (val.length == 1) { - // warning.value = false; - danger.value = false; - } else if (val.length == 0) { - // warning.value = true; - danger.value = true; - } else { - // warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - goalManagementApi() - .getTargetMngDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; - // 上传 - // const upShow = ref(); - // const upButton = () => { - // upShow.value.openDialog(); - // }; - return { - timeDate, - tableData, - currentPage4, - pageSize4, - total, - handleSizeChange, - handleCurrentChange, - handleClick, - openAdd, - openD, - // upShow, - // upButton, - small, - disabled, - background, - Plus, - Delete, - Upload, - Download, - Refresh, - View, - listApi, - ruleForm, - resetForm, - onAddorUpdata, - onDelete, - handleSelectionChange, - deletAll, - danger, - onDeleteAll, - }; - }, -}); -</script> -<style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; -} -.minCenter { - width: 100%; - background-color: #fff; - margin-top: 10px; - padding: 0 20px; -} -.btns { - padding: 0px 0px 10px 0px; - display: flex; - justify-content: space-between; -} -.pages { - padding: 20px 0; - display: flex; - justify-content: right; -} -</style> diff --git a/src/views/goalManagement/targetStatistics/index.vue b/src/views/goalManagement/targetStatistics/index.vue index ae64857..e69de29 100644 --- a/src/views/goalManagement/targetStatistics/index.vue +++ b/src/views/goalManagement/targetStatistics/index.vue @@ -1,92 +0,0 @@ -<template> - <div style="background-color: #fff"> - <h2 style="line-height:40px;text-align: center;padding: 20px 0;">目标完成情况统计</h2> - <el-row style="padding:20px 0"> - <el-col :span="4" :offset="17"> - <el-select v-model="form.targetType" placeholder="" @change="listApi" style="width:100%"> - <el-option label="年指标" :value="1" /> - <el-option label="月指标" :value="2" /> - <el-option label="半年" :value="3" /> - <el-option label="季度" :value="4" /> - </el-select> - </el-col> - </el-row> - <div ref="main" style="width: 100%; height: 450px;"></div> - </div> -</template> -<script lang="ts"> -import { defineComponent, onMounted, ref } from 'vue'; -import * as echarts from 'echarts'; -import { ElMessage } from 'element-plus'; -import { goalManagementApi } from '/@/api/goalManagement'; -export default defineComponent({ - setup() { - const form = ref({ - qName: '', - indexNum: '', - targetType: 1, - divideStatus: '', - }); - onMounted(() => { - listApi(); - }); - const listApi = () => { - goalManagementApi() - .gettargetstatistics(form.value.targetType) - .then((res) => { - let arr = []; - arr.push({ - value: res.data.data.noComplete, - name: '未完成', - }); - arr.push({ - value: res.data.data.complete, - name: '已完成', - }); - init(arr); - }); - }; - const main = ref(); - const init = (data: any) => { - var myChart = echarts.init(main.value); - var option = { - // title: { - // text: 'Referer of a Website', - // subtext: 'Fake Data', - // left: 'center', - // }, - tooltip: { - trigger: 'item', - }, - legend: { - orient: 'vertical', - left: '30%', - }, - series: [ - { - // name: 'Access From', - type: 'pie', - radius: '90%', - data: data, - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)', - }, - }, - }, - ], - }; - - myChart.setOption(option); - }; - return { - form, - main, - init, - listApi, - }; - }, -}); -</script> -- Gitblit v1.9.2