|
|
@@ -0,0 +1,329 @@
|
|
|
+<template>
|
|
|
+ <el-drawer
|
|
|
+ :title="title"
|
|
|
+ :modal-append-to-body="false"
|
|
|
+ :modal="false"
|
|
|
+ :wrapper-closable="false"
|
|
|
+ size="99%"
|
|
|
+ :visible.sync="dialogVisible"
|
|
|
+ >
|
|
|
+ <template slot="title">
|
|
|
+ <div class="el-drawer-title">
|
|
|
+ <span class="name">{{ title }}</span>
|
|
|
+ <el-tabs v-model="tabType">
|
|
|
+ <el-tab-pane label="基本信息" name="form" />
|
|
|
+ <el-tab-pane label="历史记录" name="history" />
|
|
|
+ </el-tabs>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div class="content-container">
|
|
|
+ <el-row class="content-body">
|
|
|
+ <div v-show="tabType==='form'">
|
|
|
+ <vuescroll :ops="ops" style="height: calc(100vh - 300px)">
|
|
|
+ <el-form ref="ruleForm" :model="formData" :rules="rules" label-width="130px">
|
|
|
+ <el-form-item label="隐患标题" prop="hdangerTitle">
|
|
|
+ <el-input v-model="formData.hdangerTitle" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="隐患编码" prop="dangerCode">
|
|
|
+ <el-input v-model="formData.dangerCode" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="所在位置" prop="riskPointId">
|
|
|
+ <risk-point-selector v-model="formData.riskPointId" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="采空区" prop="goafId">
|
|
|
+ <el-select v-model="formData.goafId" filterable placeholder="采空区名称" style="width: 100%">
|
|
|
+ <el-option value="" label="请选择采空区" disabled />
|
|
|
+ <el-option v-for="item in goafs" :key="item.goafId" :value="item.goafId" :label="item.goafName" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="隐患类别" prop="dangerCatId">
|
|
|
+ <danger-cat-selector v-model="formData.dangerCatId" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="隐患来源" prop="dangerSource">
|
|
|
+ <el-select v-model="formData.dangerSource" style="width: 100%" filterable placeholder="请选择隐患来源">
|
|
|
+ <el-option label="自查" :value="0" />
|
|
|
+ <el-option label="内部反馈" :value="1" />
|
|
|
+ <el-option label="上级检查" :value="2" />
|
|
|
+ <el-option label="政府执法" :value="3" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="隐患等级" prop="hdangerLevel">
|
|
|
+ <el-radio-group v-model="formData.hdangerLevel">
|
|
|
+ <el-radio :label="1">一般事故隐患</el-radio>
|
|
|
+ <el-radio :label="2">重大事故隐患</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="整改截止时间" prop="dangerDeadLine">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="formData.dangerDeadLine"
|
|
|
+ type="date"
|
|
|
+ placeholder="设置截止时间"
|
|
|
+ format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ clearable
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="描述" prop="hdangerDesc">
|
|
|
+ <el-input v-model="formData.hdangerDesc" type="textarea" :rows="5" placeholder="隐患描述" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <work-flow ref="WFlow" />
|
|
|
+ <div class="btn-group">
|
|
|
+ <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
|
|
|
+ <el-button @click="dialogVisible = false">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </vuescroll>
|
|
|
+ </div>
|
|
|
+ <div v-show="tabType==='history'">
|
|
|
+ <ActivityHandleRecord ref="ActivityHandleRecord" :wf-ins-id="formData.dangerId" />
|
|
|
+ </div>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </el-drawer>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+
|
|
|
+import { WorkFlow, ActivityHandleRecord } from '@/components'
|
|
|
+import { DangerCatSelector, RiskPointSelector } from '@/views/aqpt/components'
|
|
|
+import { handleDanger, getDangerById } from '@/api/goaf/dangerApi'
|
|
|
+import { getGoafBaseInfo } from '@/api/goaf/info'
|
|
|
+import Vuescroll from 'vuescroll'
|
|
|
+import { getUserData } from '@/utils/auth'
|
|
|
+export default {
|
|
|
+ name: 'SubmitTask',
|
|
|
+ components: {
|
|
|
+ Vuescroll,
|
|
|
+ DangerCatSelector,
|
|
|
+ RiskPointSelector,
|
|
|
+ WorkFlow,
|
|
|
+ ActivityHandleRecord
|
|
|
+ },
|
|
|
+ props: {
|
|
|
+ title: {
|
|
|
+ type: String,
|
|
|
+ default: ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ ops: {
|
|
|
+ bar: {
|
|
|
+ keepShow: false,
|
|
|
+ background: 'rgba(144, 147, 153, 0.4)',
|
|
|
+ onlyShowBarOnScroll: false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ dialogVisible: false,
|
|
|
+ tabType: 'form',
|
|
|
+ formData: {
|
|
|
+ formCode: 'submit',
|
|
|
+ dangerId: undefined,
|
|
|
+ scenePhoto: '',
|
|
|
+ sceneIcon: '',
|
|
|
+ groupId: undefined, // 所属部门
|
|
|
+ riskPointId: undefined, // 风险点:所属区域
|
|
|
+ dangerCode: '', // 隐患编码
|
|
|
+ hdangerTitle: '', // 隐患标题
|
|
|
+ dangerCatId: undefined, // 隐患类别ID
|
|
|
+ hdangerLevel: 1, // 隐患等级
|
|
|
+ hdangerDesc: '', // 描述
|
|
|
+ dangerDeadLine: '', // 截止时间
|
|
|
+ dangerSource: 0, // 隐患来源
|
|
|
+ status: 0, // 状态
|
|
|
+ submitRemark: '',
|
|
|
+ attachList: [],
|
|
|
+ goafId: undefined
|
|
|
+ },
|
|
|
+ goafs: [],
|
|
|
+ rules: {
|
|
|
+ hdangerTitle: [
|
|
|
+ { required: true, message: '请输入隐患标题', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ dangerCode: [
|
|
|
+ { required: true, message: '请输入隐患编码', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ groupId: [
|
|
|
+ { required: true, message: '请输入所在部门', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ riskPointId: [
|
|
|
+ { required: true, message: '请选择所在部位', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ goafId: [
|
|
|
+ { required: true, message: '请选择采空区', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ hdangerLevel: [
|
|
|
+ { required: true, message: '请输选择隐患等级', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ dangerDeadLine: [
|
|
|
+ { required: true, message: '截止时间', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ dangerCatId: [
|
|
|
+ { required: true, message: '请选择隐患类别', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ accountIdTo: [
|
|
|
+ { required: true, message: '请选择执行人', trigger: 'blur' }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ const userData = getUserData()
|
|
|
+ this.formData.ocId = userData.ocId
|
|
|
+ getGoafBaseInfo().then((res) => {
|
|
|
+ this.goafs = res.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+
|
|
|
+ // 启动
|
|
|
+ start() {
|
|
|
+ const wfDefId = 1
|
|
|
+ this.dialogVisible = true
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.WFlow.start(wfDefId).then((res) => {
|
|
|
+ if (res > 0) {
|
|
|
+ this.formData.dangerId = res
|
|
|
+ } else {
|
|
|
+ this.$message.error('流程初始化失败')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ // 显示窗口
|
|
|
+ showModel(dangerId) {
|
|
|
+ this.resetFormData()
|
|
|
+ this.dialogVisible = true
|
|
|
+ getDangerById(dangerId).then((resp) => {
|
|
|
+ const { code, data, msg } = resp
|
|
|
+ if (code === 0) {
|
|
|
+ this.formData = data
|
|
|
+ this.$refs.WFlow.get(dangerId)
|
|
|
+ } else {
|
|
|
+ this.$message.error(msg)
|
|
|
+ }
|
|
|
+ }).catch((error) => {
|
|
|
+ console.log(error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ resetFormData() {
|
|
|
+ this.formData = {
|
|
|
+ formCode: 'submit',
|
|
|
+ dangerId: undefined,
|
|
|
+ scenePhoto: '',
|
|
|
+ sceneIcon: '',
|
|
|
+ groupId: undefined, // 所属部门
|
|
|
+ riskPointId: undefined, // 风险点:所属区域
|
|
|
+ dangerCode: '', // 隐患编码
|
|
|
+ hdangerTitle: '', // 隐患标题
|
|
|
+ dangerCatId: undefined, // 隐患类别ID
|
|
|
+ hdangerLevel: 1, // 隐患等级
|
|
|
+ hdangerDesc: '', // 描述
|
|
|
+ dangerDeadLine: '', // 截止时间
|
|
|
+ dangerSource: 0, // 隐患来源
|
|
|
+ status: 0, // 状态
|
|
|
+ submitRemark: '',
|
|
|
+ attachList: []
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 保存
|
|
|
+ submitForm(formName) {
|
|
|
+ this.$refs['ruleForm'].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.WFlow.handle({}).then((res) => {
|
|
|
+ this.handleCommand(res)
|
|
|
+ }).catch((error) => {
|
|
|
+ console.log(error)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ console.log('error submit!!')
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ // 提交
|
|
|
+ handleCommand(flow) {
|
|
|
+ console.log(flow)
|
|
|
+ const attachList = flow.data.attachList
|
|
|
+ this.formData.status = flow.status
|
|
|
+ this.formData.submitRemark = flow.data.actionRemark
|
|
|
+ this.formData.attachList = attachList
|
|
|
+ if (Array.isArray(attachList) && attachList.length > 0) {
|
|
|
+ const attach = attachList[0]
|
|
|
+ console.log(attach)
|
|
|
+ this.formData.scenePhoto = attach.fileUrl
|
|
|
+ this.formData.sceneIcon = attach.fileIcon
|
|
|
+ }
|
|
|
+ handleDanger(this.formData).then((resp) => {
|
|
|
+ const { code, msg } = resp
|
|
|
+ if (code === 0) {
|
|
|
+ this.$emit('formSuccess')
|
|
|
+ this.dialogVisible = false
|
|
|
+ this.$message.success(msg)
|
|
|
+ } else {
|
|
|
+ this.$message.error(msg)
|
|
|
+ }
|
|
|
+ }).catch((error) => {
|
|
|
+ console.log(error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ formSuccess() {
|
|
|
+ this.$emit('formSuccess')
|
|
|
+ },
|
|
|
+
|
|
|
+ resetForm(formName) {
|
|
|
+ this.$refs[formName].resetFields()
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss">
|
|
|
+</style>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.content-container {
|
|
|
+ position: relative;
|
|
|
+ height: calc(100% - 15px);
|
|
|
+ .ruleForm {
|
|
|
+ margin: 0 100px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn-group {
|
|
|
+ width: 100%;
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ .el-button {
|
|
|
+ margin: 0 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .cancel-btn {
|
|
|
+ background: #004F7B;
|
|
|
+ border-color: #004F7B;
|
|
|
+ color: #FFF;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: #026197;
|
|
|
+ border-color: #026197;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+</style>
|