Merge remote-tracking branch 'origin/pet' into pet
commit
97de0aaa08
|
@ -0,0 +1,479 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form
|
||||
ref="form"
|
||||
:model="infoForm"
|
||||
:rules="rules"
|
||||
label-width="180px"
|
||||
style="width: 900px"
|
||||
>
|
||||
<el-form-item :label-width="formLabelWidth" label="事件案号" prop="incidentNumber">
|
||||
<el-input v-model="infoForm.incidentNumber" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="事件名称" prop="incidentName">
|
||||
<el-input v-model="infoForm.incidentName" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="事件类型" prop="incidentType">
|
||||
<el-select v-model="infoForm.incidentType" :disabled="isDisabled" placeholder="请选择">
|
||||
<el-option v-for="item in incidentTypes" :key="item.id" :label="item.name" :value="item.id"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item :label-width="formLabelWidth" label="事件级别" prop="incidentLevel">-->
|
||||
<!-- <el-select v-model="infoForm.incidentLevel" :disabled="isDisabled" placeholder="请选择">-->
|
||||
<!-- <el-option v-for="item in incidentLevels" :key="item.id" :label="item.name" :value="item.id"/>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item :label-width="formLabelWidth" label="事件发生地点" prop="location">
|
||||
<el-input v-model="infoForm.location" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="事件发生时间" prop="incidentDate">
|
||||
<el-date-picker
|
||||
:disabled="isDisabled"
|
||||
v-model="infoForm.incidentDate"
|
||||
type="datetime"
|
||||
placeholder="选择事件发生时间"
|
||||
format="yyyy-MM-dd HH:mm:ss"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="直接经济损失(万元)" prop="directLoss">
|
||||
<el-input v-model="infoForm.directLoss" :disabled="isDisabled" type="number" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="受伤人数" prop="injured">
|
||||
<el-input v-model="infoForm.injured" :disabled="isDisabled" type="number" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="死亡人数" prop="fatalities">
|
||||
<el-input v-model="infoForm.fatalities" :disabled="isDisabled" type="number" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="重伤人数" prop="seriouslyInjured">
|
||||
<el-input v-model="infoForm.seriouslyInjured" :disabled="isDisabled" type="number" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="事件起因" prop="cause">
|
||||
<el-input v-model="infoForm.cause" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="事件概述" prop="summary">
|
||||
<el-input v-model="infoForm.summary" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="原因分析及责任认定" prop="analysis">
|
||||
<el-input v-model="infoForm.analysis" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="考核建议" prop="suggestions">
|
||||
<el-input v-model="infoForm.suggestions" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="整改措施" prop="measures">
|
||||
<el-input v-model="infoForm.measures" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="填表人" prop="creator">
|
||||
<el-input v-model="infoForm.creator" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="报出日期" prop="reportDate">
|
||||
<el-date-picker
|
||||
v-model="infoForm.reportDate"
|
||||
:disabled="isDisabled"
|
||||
type="datetime"
|
||||
placeholder="请选择报出日期"
|
||||
style="width: 100%;"
|
||||
format="yyyy-MM-dd HH:mm:ss"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="事故照片" prop="fileList">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:disabled="isDisabled"
|
||||
:file-list="infoForm.fileList"
|
||||
:multiple="false"
|
||||
:auto-upload="true"
|
||||
:limit="limitNum"
|
||||
:on-remove="handleRemovePicture"
|
||||
:on-preview="handlePictureCardPreview"
|
||||
:before-upload="beforeAccidentUpload"
|
||||
:on-error="handleError"
|
||||
:on-exceed="handleExceed"
|
||||
name="file"
|
||||
action="#"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
list-type="picture-card">
|
||||
<i class="el-icon-plus"/>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="!isDisabled" :label-width="formLabelWidth" label="附件" prop="fileAddressList">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:disabled="isDisabled"
|
||||
:file-list="infoForm.fileAddressList"
|
||||
:multiple="false"
|
||||
:auto-upload="true"
|
||||
:limit="limitNum"
|
||||
:on-remove="handleRemoveAnnex"
|
||||
:before-upload="beforeEventUpload"
|
||||
:on-error="handleError"
|
||||
:on-exceed="handleExceed"
|
||||
name="file"
|
||||
action="#"
|
||||
accept=".doc,.docx,.pdf,.xlsx">
|
||||
<el-button :disabled="isDisabled" size="small" type="primary">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="isDisabled" :label-width="formLabelWidth" label="附件" prop="fileAddressList">
|
||||
<a
|
||||
v-if="infoForm.fileAddressList != null && infoForm.fileAddressList.length !== 0"
|
||||
:href="infoForm.fileAddressList[0].url"
|
||||
style="display: flex;flex-wrap: wrap;gap: 10px;"
|
||||
|
||||
>{{ infoForm.fileAddressList[0].name }}</a>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-dialog :visible.sync="dialogImgVisible">
|
||||
<div v-if="infoForm.fileList.length > 0">
|
||||
<img :src="infoForm.fileList[0].url" width="100%" alt="">
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<div class="ui-height"/>
|
||||
<div class="ui-foot">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-arrow-left"
|
||||
plain
|
||||
@click="goBack">返回
|
||||
</el-button>
|
||||
<el-button type="primary" @click="confirm">确 定</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { requestFN } from '@/utils/request'
|
||||
import { upload } from '@/utils/upload'
|
||||
import formatDate from '@/utils/dateformat'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
config: config,
|
||||
infoForm: {
|
||||
id: '', // 主键ID
|
||||
incidentNumber: '', // 事件案号
|
||||
incidentName: '', // 事件名称
|
||||
incidentType: null, // 事件类型
|
||||
companyName: '', // 所属公司
|
||||
incidentLevel: '', // 事件级别
|
||||
incidentNature: '', // 事件性质
|
||||
location: '', // 事件发生地点
|
||||
incidentDate: null, // 事件发生时间
|
||||
directLoss: '', // 直接经济损失(万元)
|
||||
injured: null, // 受伤人数
|
||||
fatalities: null, // 死亡人数
|
||||
seriouslyInjured: null, // 重伤人数
|
||||
cause: '', // 事件起因
|
||||
summary: '', // 事件概述
|
||||
fileList: [], // 事件照片
|
||||
fileAddressList: [], // 附件地址
|
||||
analysis: '', // 原因分析及责任认定
|
||||
suggestions: '', // 考核建议
|
||||
measures: '', // 整改措施
|
||||
creator: '', // 填表人
|
||||
reportDate: null // 报出日期
|
||||
},
|
||||
formLabelWidth: '140px',
|
||||
/** 事件类型 */
|
||||
incidentTypes: [],
|
||||
/** 事件等级 */
|
||||
incidentLevels: [],
|
||||
tableName: '',
|
||||
/** 图片上传限制个数 */
|
||||
limitNum: 1,
|
||||
/** 预览弹窗 */
|
||||
dialogImgVisible: false,
|
||||
rules: {
|
||||
incidentNumber: [{ required: true, message: '事件案号不能为空', trigger: 'blur' }],
|
||||
incidentName: [{ required: true, message: '事件名称不能为空', trigger: 'blur' }],
|
||||
incidentType: [{ required: true, message: '事件类型不能为空', trigger: 'blur' }],
|
||||
incidentNature: [{ required: true, message: '事件性质不能为空', trigger: 'blur' }],
|
||||
location: [{ required: true, message: '事件发生地点不能为空', trigger: 'blur' }],
|
||||
incidentDate: [{ required: true, message: '事件发生时间不能为空', trigger: 'blur' }],
|
||||
cause: [{ required: true, message: '事件起因不能为空', trigger: 'blur' }],
|
||||
summary: [{ required: true, message: '事件概述不能为空', trigger: 'blur' }],
|
||||
fileList: [{ required: true, message: '事件照片不能为空', trigger: 'blur' }],
|
||||
analysis: [{ required: true, message: '原因分析及责任认定不能为空', trigger: 'blur' }],
|
||||
suggestions: [{ required: true, message: '考核建议不能为空', trigger: 'blur' }],
|
||||
measures: [{ required: true, message: '整改措施不能为空', trigger: 'blur' }],
|
||||
creator: [{ required: true, message: '填表人不能为空', trigger: 'blur' }],
|
||||
reportDate: [{ required: true, message: '报出日期不能为空', trigger: 'blur' }]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
isDisabled() {
|
||||
return this.$parent.tableName === '查看'
|
||||
}
|
||||
},
|
||||
|
||||
created() {
|
||||
this.getDict()
|
||||
const id = this.$parent.id
|
||||
this.tableName = this.$parent.tableName
|
||||
if (id == null || id === '') {
|
||||
this.infoForm = this.$options.data().infoForm
|
||||
} else {
|
||||
// 若有数据项的ID, 则请求接口并回显表单
|
||||
requestFN('/accident/' + id, {}).then((data) => {
|
||||
this.infoForm = {
|
||||
...data.info,
|
||||
fileList: [
|
||||
{
|
||||
name: 'photo',
|
||||
url: config.fileUrl + data.info.photos,
|
||||
remotePathName: data.info.photos
|
||||
}
|
||||
],
|
||||
fileAddressList: [
|
||||
{
|
||||
name: '附件',
|
||||
url: config.fileUrl + data.info.attachmentAddress,
|
||||
remotePathName: data.info.attachmentAddress
|
||||
}
|
||||
]
|
||||
}
|
||||
const fileAddress = this.infoForm.fileAddressList[0].remotePathName
|
||||
if (fileAddress == null || fileAddress === '') {
|
||||
this.infoForm.fileAddressList = []
|
||||
}
|
||||
this.infoForm.incidentDate = new Date(data.info.incidentDate)
|
||||
this.infoForm.reportDate = new Date(data.info.reportDate)
|
||||
}).catch((e) => {
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
/**
|
||||
* 文件列表移除文件时的钩子
|
||||
*/
|
||||
handleRemovePicture(file) {
|
||||
if (file.remotePathName) {
|
||||
requestFN(`/accident/delete/photos`, {
|
||||
path: file.remotePathName
|
||||
}).then((res) => {
|
||||
if (res.result === 'success') {
|
||||
this.infoForm.fileList = []
|
||||
this.$message({
|
||||
message: '文件删除成功',
|
||||
type: 'info',
|
||||
duration: 2000
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 文件列表移除文件时的钩子
|
||||
*/
|
||||
handleRemoveAnnex(file) {
|
||||
if (file.remotePathName) {
|
||||
requestFN(`/accident/delete/photos`, {
|
||||
path: file.remotePathName
|
||||
}).then((res) => {
|
||||
if (res.result === 'success') {
|
||||
this.infoForm.fileAddressList = []
|
||||
this.$message({
|
||||
message: '文件删除成功',
|
||||
type: 'info',
|
||||
duration: 2000
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 点击文件列表中已上传的文件时的钩子
|
||||
*/
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImgVisible = true
|
||||
this.dialogImageUrl = file.url
|
||||
},
|
||||
|
||||
/**
|
||||
* 文件上传失败时的钩子处理
|
||||
*/
|
||||
// eslint-disable-next-line handle-callback-err
|
||||
handleError(err, file, fileList) {
|
||||
this.$message({
|
||||
message: `${file.name}上传失败, 请稍后重试`,
|
||||
type: 'error',
|
||||
duration: 2000
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 文件超出个数限制的钩子处理
|
||||
*/
|
||||
handleExceed(files, fileList) {
|
||||
this.$message.warning(`当前限制选择 ${this.limitNum} 个文件,本次选择了 ${files.length} 个文件`)
|
||||
},
|
||||
|
||||
/**
|
||||
* 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。
|
||||
*/
|
||||
beforeAccidentUpload(file) {
|
||||
if (!file) {
|
||||
this.$message({
|
||||
message: '请上传图片',
|
||||
type: 'error'
|
||||
})
|
||||
return false
|
||||
}
|
||||
const types = ['image/jpeg', 'image/jpg', 'image/png']
|
||||
const isImage = types.includes(file.type)
|
||||
if (!isImage) {
|
||||
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
|
||||
return false
|
||||
} else {
|
||||
const formData = new FormData()
|
||||
formData.append('file', file)
|
||||
upload('/accident/import/photos', formData).then((data) => {
|
||||
if (data.result === 'success') {
|
||||
this.infoForm = {
|
||||
...this.infoForm,
|
||||
fileList: [{
|
||||
name: file.name,
|
||||
url: config.fileUrl + data.path,
|
||||
remotePathName: data.path
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
return false
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。
|
||||
*/
|
||||
beforeEventUpload(file) {
|
||||
if (!file) {
|
||||
this.$message({
|
||||
message: '请上传附件',
|
||||
type: 'error'
|
||||
})
|
||||
return false
|
||||
}
|
||||
const formData = new FormData()
|
||||
formData.append('file', file)
|
||||
upload('/accident/import/photos', formData).then((data) => {
|
||||
if (data.result === 'success') {
|
||||
this.infoForm = {
|
||||
...this.infoForm,
|
||||
fileAddressList: [{
|
||||
name: file.name,
|
||||
url: config.fileUrl + data.path,
|
||||
remotePathName: data.path
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
return false
|
||||
},
|
||||
|
||||
/**
|
||||
* 返回到列表页面
|
||||
*/
|
||||
goBack() {
|
||||
this.handleResetInitForm()
|
||||
this.image = []
|
||||
this.dialogImageUrl = ''
|
||||
this.$parent.activeName = 'List'
|
||||
},
|
||||
|
||||
/**
|
||||
* 表单清空处理
|
||||
*/
|
||||
handleResetInitForm() {
|
||||
this.infoForm = {
|
||||
id: '', // 主键ID
|
||||
incidentNumber: '', // 事件案号
|
||||
incidentName: '', // 事件名称
|
||||
incidentType: null, // 事件类型
|
||||
companyName: '', // 所属公司
|
||||
incidentLevel: '', // 事件级别
|
||||
incidentNature: '', // 事件性质
|
||||
location: '', // 事件发生地点
|
||||
incidentDate: null, // 事件发生时间
|
||||
directLoss: '', // 直接经济损失(万元)
|
||||
injured: null, // 受伤人数
|
||||
fatalities: null, // 死亡人数
|
||||
seriouslyInjured: null, // 重伤人数
|
||||
cause: '', // 事件起因
|
||||
summary: '', // 事件概述
|
||||
fileList: [], // 事件照片
|
||||
fileAddressList: [], // 附件
|
||||
analysis: '', // 原因分析及责任认定
|
||||
suggestions: '', // 考核建议
|
||||
measures: '', // 整改措施
|
||||
creator: '', // 填表人
|
||||
reportDate: null // 报出日期
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 表单确认按钮
|
||||
*/
|
||||
confirm() {
|
||||
this.$refs.form.validate(valid => {
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
this.infoForm.incidentDate = formatDate(this.infoForm.incidentDate, 'YYYY-MM-DD HH:mm:ss')
|
||||
this.infoForm.reportDate = formatDate(this.infoForm.reportDate, 'YYYY-MM-DD HH:mm:ss')
|
||||
const address = this.infoForm.fileAddressList
|
||||
const params = {
|
||||
...this.infoForm,
|
||||
photos: this.infoForm.fileList[0].remotePathName,
|
||||
attachmentAddress: address == null || address.length === 0 ? address[0].remotePathName : '',
|
||||
type: 1
|
||||
}
|
||||
delete params.fileList
|
||||
requestFN('/accident' + (this.tableName === '修改' ? '/update' : '/save'), params)
|
||||
.then((response) => {
|
||||
// 删除成功后的处理
|
||||
this.$message.success(this.tableName + '成功')
|
||||
this.infoForm = this.$options.data().infoForm
|
||||
this.$parent.activeName = 'List'
|
||||
// eslint-disable-next-line handle-callback-err
|
||||
}).catch((error) => {
|
||||
this.$message.error(this.tableName + '失败')
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取字典
|
||||
*/
|
||||
getDict() {
|
||||
const url = '/dictionaries/listSelectTree'
|
||||
requestFN(url,
|
||||
{
|
||||
DICTIONARIES_ID: '8d4140a900184b60836ad1a6490fd510'
|
||||
}
|
||||
).then((data) => {
|
||||
this.incidentTypes = JSON.parse(data.zTreeNodes)
|
||||
})
|
||||
requestFN(url,
|
||||
{
|
||||
DICTIONARIES_ID: 'b61a1edc59c0430c8741c5f51aa26c3c'
|
||||
}
|
||||
).then((data) => {
|
||||
this.incidentLevels = JSON.parse(data.zTreeNodes)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,354 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form ref="searchForm" :model="searchForm" label-width="100px">
|
||||
<el-row :gutter="22">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="事件名称" prop="incidentName">
|
||||
<el-input v-model="searchForm.incidentName" placeholder="请输入事件名称" class="filter-item"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="发生时间" prop="incidentDates">
|
||||
<el-date-picker
|
||||
v-model="searchForm.incidentDates"
|
||||
:default-time="['00:00:00', '23:59:59']"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
format="yyyy-MM-dd"
|
||||
style="width: 100%"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="发生地点" prop="location">
|
||||
<el-input v-model="searchForm.location" placeholder="请输入发生地点" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="事件类型" prop="incidentType">
|
||||
<el-select v-model="searchForm.incidentType" placeholder="请选择">
|
||||
<el-option v-for="item in incidentTypes" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button v-waves type="primary" icon="el-icon-search" @click="searchList">查询</el-button>
|
||||
<el-button v-waves icon="el-icon-refresh" @click="handleReset">重置</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 搜索查询 end -->
|
||||
</el-form>
|
||||
|
||||
<!-- table 表格 start -->
|
||||
<div style="margin-top: 16px;">
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
ref="multipleTable"
|
||||
:data="varList"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
border
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column label="事件名称" prop="incidentName"/>
|
||||
<el-table-column label="所属公司" prop="companyName"/>
|
||||
<el-table-column label="发生时间" prop="incidentDate">
|
||||
<template v-slot="{row}">
|
||||
{{ formatDate(row.incidentDate,'YYYY-MM-DD HH:mm:ss') }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发生地点" prop="location"/>
|
||||
<el-table-column label="操作" width="300">
|
||||
<template v-slot="{row}">
|
||||
<el-button icon="el-icon-view" type="success" size="mini" @click="goView(row.id, '查看')">查看</el-button>
|
||||
<el-button icon="el-icon-edit" type="primary" size="mini" @click="goEdit(row.id, '修改')">修改</el-button>
|
||||
<el-button icon="el-icon-delete-solid" type="danger" size="mini" @click="deleteRow(row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- table 表格 end -->
|
||||
|
||||
<div class="pagination-group">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="16">
|
||||
<el-button type="primary" icon="el-icon-circle-plus" @click="goView('', '新增')">新增</el-button>
|
||||
<el-button icon="el-icon-s-promotion" @click="handleAllExport">全部导出</el-button>
|
||||
<el-button type="danger" icon="el-icon-delete-solid" @click="handleBatchDel">批量删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<pagination :total="listQuery.total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="searchList" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination'
|
||||
import waves from '@/directive/waves'
|
||||
import formatDate from '@/utils/dateformat'
|
||||
import { requestFN } from '@/utils/request'
|
||||
|
||||
export default {
|
||||
components: { Pagination },
|
||||
directives: { waves },
|
||||
|
||||
data() {
|
||||
return {
|
||||
// 搜索查询条件
|
||||
searchForm: {
|
||||
/** 事件名称 */
|
||||
incidentName: '',
|
||||
/** 发生时间 */
|
||||
incidentDates: [],
|
||||
/** 开始时间 */
|
||||
startTime: null,
|
||||
/** 结束时间 */
|
||||
endTime: null,
|
||||
/** 发生地点 */
|
||||
location: '',
|
||||
/** 事件类型 */
|
||||
incidentType: '',
|
||||
/** 事件等级 */
|
||||
incidentLevel: '',
|
||||
/** 类型 */
|
||||
type: ''
|
||||
},
|
||||
/** 当前选中行 */
|
||||
multipleSelection: [],
|
||||
/** 列表加载态 */
|
||||
listLoading: false,
|
||||
/** 源列表数据项 */
|
||||
varList: [],
|
||||
/** 事件类型 */
|
||||
incidentTypes: [],
|
||||
/** 事件等级 */
|
||||
incidentLevels: [],
|
||||
// 列表分页参数
|
||||
listQuery: {
|
||||
/** 当前页数 */
|
||||
page: 1,
|
||||
/** 分页数 */
|
||||
limit: 20,
|
||||
/** 总页数 */
|
||||
total: 0
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
created() {
|
||||
this.getDict()
|
||||
this.searchList()
|
||||
},
|
||||
|
||||
methods: {
|
||||
/**
|
||||
* 查询搜索
|
||||
*/
|
||||
searchList() {
|
||||
this.listLoading = true
|
||||
const dates = this.searchForm.incidentDates
|
||||
this.searchForm.type = 1
|
||||
if (dates != null && dates.length === 2) {
|
||||
this.searchForm.startTime = dates[0]
|
||||
this.searchForm.endTime = dates[1]
|
||||
}
|
||||
const url = '/accident/page?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page
|
||||
requestFN(url, { ...this.searchForm }).then((data) => {
|
||||
this.listLoading = false
|
||||
this.varList = data.varList
|
||||
this.listQuery.total = data.page.totalResult
|
||||
}).catch((e) => {
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 重置搜索条件
|
||||
*/
|
||||
handleReset() {
|
||||
this.searchForm = this.$options.data().searchForm
|
||||
this.searchList()
|
||||
},
|
||||
|
||||
/**
|
||||
* 表格行选择器处理
|
||||
*/
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val
|
||||
},
|
||||
|
||||
/**
|
||||
* 跳转查看详情页面
|
||||
*/
|
||||
goView(id, name) {
|
||||
this.$parent.id = id
|
||||
this.$parent.tableName = name
|
||||
this.$parent.activeName = 'AddOrEdit'
|
||||
},
|
||||
|
||||
/**
|
||||
* 跳转修改页面
|
||||
*/
|
||||
goEdit(id, name) {
|
||||
this.$parent.id = id
|
||||
this.$parent.tableName = name
|
||||
this.$parent.activeName = 'AddOrEdit'
|
||||
},
|
||||
|
||||
/**
|
||||
* 删除行数据
|
||||
*/
|
||||
deleteRow(id) {
|
||||
if (id === null || id === '') {
|
||||
this.$message.warning('请选择要删除的行')
|
||||
return
|
||||
}
|
||||
|
||||
// 弹出确认框
|
||||
this.$confirm('确定要删除这调记录吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
// 发送删除请求
|
||||
const url = '/accident/delete/' + '' + id
|
||||
requestFN(url).then((response) => {
|
||||
// 删除成功后的处理
|
||||
this.$message.success('删除成功')
|
||||
this.searchList()
|
||||
// eslint-disable-next-line handle-callback-err
|
||||
}).catch((error) => {
|
||||
this.$message.error('删除失败')
|
||||
})
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消删除'
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 全部导出
|
||||
*/
|
||||
handleAllExport() {
|
||||
this.$confirm('确定要下载excel模板吗?', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.listLoading = false
|
||||
window.location.href = config.httpurl + '/accident/export/excel?type=1'
|
||||
}).catch(() => {
|
||||
this.listLoading = false
|
||||
})
|
||||
this.listLoading = false
|
||||
},
|
||||
|
||||
/**
|
||||
* 下载附件
|
||||
*/
|
||||
downloadTheAttachment(attachmentAddress) {
|
||||
this.$confirm('确定要下载附件吗?', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.listLoading = false
|
||||
window.location.href = config.fileUrl + attachmentAddress
|
||||
}).catch(() => {
|
||||
this.listLoading = false
|
||||
})
|
||||
this.listLoading = false
|
||||
},
|
||||
|
||||
/**
|
||||
* 刷新
|
||||
*/
|
||||
handleRefresh() {
|
||||
this.searchForm = this.$options.data().searchForm
|
||||
this.searchList()
|
||||
// this.toggleSelection()
|
||||
},
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*/
|
||||
handleBatchDel() {
|
||||
// 获取选中的行数据
|
||||
const selectedRows = this.multipleSelection
|
||||
// 如果没有选中任何行,则提示用户
|
||||
if (this.multipleSelection === '' || selectedRows.length === 0) {
|
||||
this.$message.warning('请选择要删除的行')
|
||||
return
|
||||
}
|
||||
// 弹出确认框
|
||||
this.$confirm('确定要删除这些记录吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
// 获取所有选中行的 ID
|
||||
let ids = ''
|
||||
selectedRows.forEach(row => {
|
||||
ids += row.id + ','
|
||||
})
|
||||
// 发送批量删除请求
|
||||
const url = '/accident/delete/' + '' + ids
|
||||
requestFN(url).then((response) => {
|
||||
// 删除成功后的处理
|
||||
this.$message.success('删除成功')
|
||||
this.searchList()
|
||||
// eslint-disable-next-line handle-callback-err
|
||||
}).catch(() => {
|
||||
this.$message.error('删除失败')
|
||||
})
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消删除'
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 查询字典
|
||||
*/
|
||||
getDict() {
|
||||
const url = '/dictionaries/listSelectTree'
|
||||
requestFN(url,
|
||||
{
|
||||
DICTIONARIES_ID: '8d4140a900184b60836ad1a6490fd510'
|
||||
}
|
||||
).then((data) => {
|
||||
this.incidentTypes = JSON.parse(data.zTreeNodes)
|
||||
})
|
||||
requestFN(url,
|
||||
{
|
||||
DICTIONARIES_ID: 'b61a1edc59c0430c8741c5f51aa26c3c'
|
||||
}
|
||||
).then((data) => {
|
||||
this.incidentLevels = JSON.parse(data.zTreeNodes)
|
||||
})
|
||||
},
|
||||
|
||||
formatDate(date, format) {
|
||||
return formatDate(date, format)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.pagination-group {
|
||||
margin-top: 14px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,39 @@
|
|||
<template>
|
||||
<div>
|
||||
<keep-alive>
|
||||
<List v-if="activeName === 'List'" ref="List" />
|
||||
</keep-alive>
|
||||
<Add v-if="activeName === 'AddOrEdit'" ref="AddOrEdit" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import List from './components/list.vue'
|
||||
import Add from './components/addOrEdit.vue'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
List: List,
|
||||
Add: Add
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeName: 'List',
|
||||
id: '',
|
||||
tableName: ''
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
activeName(val) {
|
||||
if (val === 'List') {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.List.searchList()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
|
@ -32,9 +32,9 @@
|
|||
v-model="infoForm.incidentDate"
|
||||
type="datetime"
|
||||
placeholder="选择事故发生时间"
|
||||
style="width: 100%;"
|
||||
format="yyyy-MM-dd HH:mm:ss"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="直接经济损失(万元)" prop="directLoss">
|
||||
|
@ -55,26 +55,6 @@
|
|||
<el-form-item :label-width="formLabelWidth" label="事故概述" prop="summary">
|
||||
<el-input v-model="infoForm.summary" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="事故照片" prop="fileList">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:disabled="isDisabled"
|
||||
:file-list="infoForm.fileList"
|
||||
:multiple="false"
|
||||
:auto-upload="true"
|
||||
:limit="limitNum"
|
||||
:on-remove="handleRemovePicture"
|
||||
:on-preview="handlePictureCardPreview"
|
||||
:before-upload="beforeAccidentUpload"
|
||||
:on-error="handleError"
|
||||
:on-exceed="handleExceed"
|
||||
name="file"
|
||||
action="#"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
list-type="picture-card">
|
||||
<i class="el-icon-plus"/>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="原因分析及责任认定" prop="analysis">
|
||||
<el-input v-model="infoForm.analysis" :disabled="isDisabled" autocomplete="off"/>
|
||||
</el-form-item>
|
||||
|
@ -98,6 +78,52 @@
|
|||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="formLabelWidth" label="事故照片" prop="fileList">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:disabled="isDisabled"
|
||||
:file-list="infoForm.fileList"
|
||||
:multiple="false"
|
||||
:auto-upload="true"
|
||||
:limit="limitNum"
|
||||
:on-remove="handleRemovePicture"
|
||||
:on-preview="handlePictureCardPreview"
|
||||
:before-upload="beforeAccidentUpload"
|
||||
:on-error="handleError"
|
||||
:on-exceed="handleExceed"
|
||||
name="file"
|
||||
action="#"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
list-type="picture-card">
|
||||
<i class="el-icon-plus"/>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="!isDisabled" :label-width="formLabelWidth" label="附件" prop="fileAddressList">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:disabled="isDisabled"
|
||||
:file-list="infoForm.fileAddressList"
|
||||
:multiple="false"
|
||||
:auto-upload="true"
|
||||
:limit="limitNum"
|
||||
:on-remove="handleRemoveAnnex"
|
||||
:before-upload="beforeEventUpload"
|
||||
:on-error="handleError"
|
||||
:on-exceed="handleExceed"
|
||||
name="file"
|
||||
action="#"
|
||||
accept=".doc,.docx,.pdf,.xlsx">
|
||||
<el-button :disabled="isDisabled" size="small" type="primary">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="isDisabled" :label-width="formLabelWidth" label="附件" prop="fileAddressList">
|
||||
<a
|
||||
v-if="infoForm.fileAddressList != null && infoForm.fileAddressList.length !== 0"
|
||||
:href="infoForm.fileAddressList[0].url"
|
||||
style="display: flex;flex-wrap: wrap;gap: 10px;"
|
||||
|
||||
>{{ infoForm.fileAddressList[0].name }}</a>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-dialog :visible.sync="dialogImgVisible">
|
||||
|
@ -120,7 +146,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { requestFN } from '../../../../utils/request'
|
||||
import { requestFN } from '@/utils/request'
|
||||
import { upload } from '@/utils/upload'
|
||||
import formatDate from '@/utils/dateformat'
|
||||
|
||||
|
@ -145,6 +171,8 @@ export default {
|
|||
cause: '', // 事故起因
|
||||
summary: '', // 事故概述
|
||||
fileList: [], // 事故照片
|
||||
fileAddressList: [], // 附件地址
|
||||
attachmentAddress: '', // 附件地址url
|
||||
analysis: '', // 原因分析及责任认定
|
||||
suggestions: '', // 考核建议
|
||||
measures: '', // 整改措施
|
||||
|
@ -165,13 +193,9 @@ export default {
|
|||
incidentNumber: [{ required: true, message: '事故案号不能为空', trigger: 'blur' }],
|
||||
incidentName: [{ required: true, message: '事故名称不能为空', trigger: 'blur' }],
|
||||
incidentType: [{ required: true, message: '事故类型不能为空', trigger: 'blur' }],
|
||||
incidentLevel: [{ required: true, message: '事故级别不能为空', trigger: 'blur' }],
|
||||
incidentNature: [{ required: true, message: '事故性质不能为空', trigger: 'blur' }],
|
||||
location: [{ required: true, message: '事故发生地点不能为空', trigger: 'blur' }],
|
||||
incidentDate: [{ required: true, message: '事故发生时间不能为空', trigger: 'blur' }],
|
||||
directLoss: [{ required: true, message: '直接经济损失(万元)不能为空', trigger: 'blur' }],
|
||||
injured: [{ required: true, message: '受伤人数不能为空', trigger: 'blur' }],
|
||||
seriouslyInjured: [{ required: true, message: '重伤人数不能为空', trigger: 'blur' }],
|
||||
cause: [{ required: true, message: '事故起因不能为空', trigger: 'blur' }],
|
||||
summary: [{ required: true, message: '事故概述不能为空', trigger: 'blur' }],
|
||||
fileList: [{ required: true, message: '事故照片不能为空', trigger: 'blur' }],
|
||||
|
@ -207,8 +231,19 @@ export default {
|
|||
url: config.fileUrl + data.info.photos,
|
||||
remotePathName: data.info.photos
|
||||
}
|
||||
],
|
||||
fileAddressList: [
|
||||
{
|
||||
name: '附件',
|
||||
url: config.fileUrl + data.info.attachmentAddress,
|
||||
remotePathName: data.info.attachmentAddress
|
||||
}
|
||||
]
|
||||
}
|
||||
const fileAddress = this.infoForm.fileAddressList[0].remotePathName
|
||||
if (fileAddress == null || fileAddress === '') {
|
||||
this.infoForm.fileAddressList = []
|
||||
}
|
||||
this.infoForm.incidentDate = new Date(data.info.incidentDate)
|
||||
this.infoForm.reportDate = new Date(data.info.reportDate)
|
||||
}).catch((e) => {
|
||||
|
@ -237,6 +272,26 @@ export default {
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 文件列表移除文件时的钩子
|
||||
*/
|
||||
handleRemoveAnnex(file) {
|
||||
if (file.remotePathName) {
|
||||
requestFN(`/accident/delete/photos`, {
|
||||
path: file.remotePathName
|
||||
}).then((res) => {
|
||||
if (res.result === 'success') {
|
||||
this.infoForm.fileAddressList = []
|
||||
this.$message({
|
||||
message: '文件删除成功',
|
||||
type: 'info',
|
||||
duration: 2000
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 点击文件列表中已上传的文件时的钩子
|
||||
*/
|
||||
|
@ -299,6 +354,34 @@ export default {
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。
|
||||
*/
|
||||
beforeEventUpload(file) {
|
||||
if (!file) {
|
||||
this.$message({
|
||||
message: '请上传附件',
|
||||
type: 'error'
|
||||
})
|
||||
return false
|
||||
}
|
||||
const formData = new FormData()
|
||||
formData.append('file', file)
|
||||
upload('/accident/import/photos', formData).then((data) => {
|
||||
if (data.result === 'success') {
|
||||
this.infoForm = {
|
||||
...this.infoForm,
|
||||
fileAddressList: [{
|
||||
name: file.name,
|
||||
url: config.fileUrl + data.path,
|
||||
remotePathName: data.path
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
return false
|
||||
},
|
||||
|
||||
/**
|
||||
* 返回到列表页面
|
||||
*/
|
||||
|
@ -346,13 +429,14 @@ export default {
|
|||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
|
||||
this.infoForm.incidentDate = formatDate(this.infoForm.incidentDate, 'YYYY-MM-DD HH:mm:ss')
|
||||
this.infoForm.reportDate = formatDate(this.infoForm.reportDate, 'YYYY-MM-DD HH:mm:ss')
|
||||
|
||||
const address = this.infoForm.fileAddressList
|
||||
const params = {
|
||||
...this.infoForm,
|
||||
photos: this.infoForm.fileList[0].remotePathName
|
||||
photos: this.infoForm.fileList[0].remotePathName,
|
||||
attachmentAddress: address == null || address.length === 0 ? address[0].remotePathName : '',
|
||||
type: 2
|
||||
}
|
||||
delete params.fileList
|
||||
requestFN('/accident' + (this.tableName === '修改' ? '/update' : '/save'), params)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form ref="searchForm" :model="searchForm" label-width="100px">
|
||||
<el-row :gutter="12">
|
||||
<el-row :gutter="22">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="事故名称" prop="incidentName">
|
||||
<el-input v-model="searchForm.incidentName" placeholder="请输入事故名称" class="filter-item"/>
|
||||
|
@ -27,36 +27,28 @@
|
|||
<el-input v-model="searchForm.location" placeholder="请输入发生地点" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="事故类型" prop="incidentType">
|
||||
<el-select v-model="searchForm.incidentType" placeholder="请选择">
|
||||
<el-option v-for="item in incidentTypes" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="事故等级" prop="incidentLevel">
|
||||
<el-select v-model="searchForm.incidentLevel" placeholder="请选择">
|
||||
<el-option v-for="item in incidentLevels" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button v-waves type="primary" icon="el-icon-search" @click="searchList">查询</el-button>
|
||||
<el-button v-waves icon="el-icon-refresh" @click="handleReset">重置</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 搜索查询 end -->
|
||||
|
||||
<!-- 顶部操作按钮 start -->
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="24">
|
||||
<el-button type="primary" icon="el-icon-circle-plus" @click="goView('', '新增')">新增</el-button>
|
||||
<el-button icon="el-icon-s-promotion" @click="handleAllExport">全部导出</el-button>
|
||||
<el-button type="danger" icon="el-icon-delete-solid" @click="handleBatchDel">批量删除</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 顶部操作按钮 end -->
|
||||
</el-form>
|
||||
|
||||
<!-- table 表格 start -->
|
||||
|
@ -81,8 +73,8 @@
|
|||
<el-table-column label="发生地点" prop="location"/>
|
||||
<el-table-column label="操作" width="300">
|
||||
<template v-slot="{row}">
|
||||
<el-button icon="el-icon-view" size="mini" @click="goView(row.id, '查看')">查看</el-button>
|
||||
<el-button icon="el-icon-edit" size="mini" @click="goEdit(row.id, '修改')">修改</el-button>
|
||||
<el-button icon="el-icon-view" type="success" size="mini" @click="goView(row.id, '查看')">查看</el-button>
|
||||
<el-button icon="el-icon-edit" type="primary" size="mini" @click="goEdit(row.id, '修改')">修改</el-button>
|
||||
<el-button icon="el-icon-delete-solid" type="danger" size="mini" @click="deleteRow(row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -91,7 +83,16 @@
|
|||
<!-- table 表格 end -->
|
||||
|
||||
<div class="pagination-group">
|
||||
<pagination :total="listQuery.total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="searchList" />
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="16">
|
||||
<el-button type="primary" icon="el-icon-circle-plus" @click="goView('', '新增')">新增</el-button>
|
||||
<el-button icon="el-icon-s-promotion" @click="handleAllExport">全部导出</el-button>
|
||||
<el-button type="danger" icon="el-icon-delete-solid" @click="handleBatchDel">批量删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<pagination :total="listQuery.total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="searchList" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -100,7 +101,7 @@
|
|||
import Pagination from '@/components/Pagination'
|
||||
import waves from '@/directive/waves'
|
||||
import formatDate from '@/utils/dateformat'
|
||||
import { requestFN } from '../../../../utils/request'
|
||||
import { requestFN } from '@/utils/request'
|
||||
|
||||
export default {
|
||||
components: { Pagination },
|
||||
|
@ -123,7 +124,11 @@ export default {
|
|||
/** 事故类型 */
|
||||
incidentType: '',
|
||||
/** 事故等级 */
|
||||
incidentLevel: ''
|
||||
incidentLevel: '',
|
||||
/** 附件地址 */
|
||||
attachmentAddress: '',
|
||||
/** 类型 */
|
||||
type: ''
|
||||
},
|
||||
/** 当前选中行 */
|
||||
multipleSelection: [],
|
||||
|
@ -159,6 +164,7 @@ export default {
|
|||
searchList() {
|
||||
this.listLoading = true
|
||||
const dates = this.searchForm.incidentDates
|
||||
this.searchForm.type = 2
|
||||
if (dates != null && dates.length === 2) {
|
||||
this.searchForm.startTime = dates[0]
|
||||
this.searchForm.endTime = dates[1]
|
||||
|
@ -249,22 +255,13 @@ export default {
|
|||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.listLoading = false
|
||||
window.location.href = config.httpurl + '/accident/export/excel'
|
||||
window.location.href = config.httpurl + '/accident/export/excel?type=2'
|
||||
}).catch(() => {
|
||||
this.listLoading = false
|
||||
})
|
||||
this.listLoading = false
|
||||
},
|
||||
|
||||
/**
|
||||
* 刷新
|
||||
*/
|
||||
handleRefresh() {
|
||||
this.searchForm = this.$options.data().searchForm
|
||||
this.searchList()
|
||||
// this.toggleSelection()
|
||||
},
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*/
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<template>
|
||||
<div>
|
||||
<List v-if="activeName === 'List'" ref="List" />
|
||||
<keep-alive>
|
||||
<List v-if="activeName === 'List'" ref="List" />
|
||||
</keep-alive>
|
||||
<Add v-if="activeName === 'AddOrEdit'" ref="AddOrEdit" />
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<template>
|
||||
<div>
|
||||
<List v-if="activeName=='List'" ref="list" />
|
||||
<hiddenList v-else-if="activeName=='hiddenList'" ref="HiddenList" />
|
||||
<Detail v-else-if="activeName=='Detail'" ref="Detail" />
|
||||
<Evaluate v-else-if="activeName=='Evaluate'" ref="Evaluate" />
|
||||
<keep-alive>
|
||||
<List v-if="activeName=='List'" ref="list" />
|
||||
</keep-alive>
|
||||
<hiddenList v-if="activeName=='hiddenList'" ref="HiddenList" />
|
||||
<Detail v-if="activeName=='Detail'" ref="Detail" />
|
||||
<Evaluate v-if="activeName=='Evaluate'" ref="Evaluate" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -93,6 +93,7 @@ export default {
|
|||
}
|
||||
},
|
||||
created() {
|
||||
console.log('------------------ 初始化 ------------------')
|
||||
this.getParam()
|
||||
this.getList()
|
||||
},
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<template>
|
||||
<div>
|
||||
<List v-if="activeName=='List'" ref="List" />
|
||||
<keep-alive>
|
||||
<List v-if="activeName=='List'" ref="List" />
|
||||
</keep-alive>
|
||||
<Detail v-if="activeName=='detail'" ref="Detail" />
|
||||
<SumDetail v-if="activeName=='sumDetail'" ref="SumDetail" />
|
||||
</div>
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<template>
|
||||
<div>
|
||||
<List v-if="activeName=='List'" ref="list" />
|
||||
<keep-alive>
|
||||
<List v-if="activeName=='List'" ref="list" />
|
||||
</keep-alive>
|
||||
<HiddenList v-if="activeName=='hiddenList'" ref="HiddenList" />
|
||||
<InitialDetail v-if="activeName=='initialDetail'" ref="InitialDetail" />
|
||||
<Detail v-if="activeName=='Detail'" ref="Detail" />
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<template>
|
||||
<div>
|
||||
<List v-if="activeName=='List'" ref="List" />
|
||||
<keep-alive>
|
||||
<List v-if="activeName=='List'" ref="List" />
|
||||
</keep-alive>
|
||||
<Detail v-if="activeName=='detail'" ref="Detail" />
|
||||
<SumDetail v-if="activeName=='sumDetail'" ref="SumDetail" />
|
||||
</div>
|
||||
|
|
|
@ -29,11 +29,7 @@
|
|||
<el-col :span="4">
|
||||
<el-form-item label="是否标点" label-width="110px">
|
||||
<el-select v-model="IS_PUNCTUATION" clearable placeholder="请选择" style="width: 100%;">
|
||||
<el-option
|
||||
v-for="item in punctuationStatusList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"/>
|
||||
<el-option v-for="item in punctuationStatusList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -71,22 +67,16 @@
|
|||
<el-table-column prop="DEVICE_COUNT" label="点位下消防器材数"/>
|
||||
<el-table-column prop="DEPARTMENT_NAME" label="负责部门"/>
|
||||
<el-table-column prop="USERNAME" label="负责人"/>
|
||||
<el-table-column prop="ISPUNCTUATION" label="是否标点">
|
||||
<el-table-column label="操作" width="380">
|
||||
<template slot-scope="{row}">
|
||||
<el-tag v-if="row.ISPUNCTUATION == 0" type="success">是</el-tag>
|
||||
<el-tag v-else type="danger">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="450">
|
||||
<template slot-scope="{row}">
|
||||
<!-- <el-button-->
|
||||
<!-- v-show="true"-->
|
||||
<!-- class="tiffany-btn"-->
|
||||
<!-- icon="el-icon-picture"-->
|
||||
<!-- type="primary"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleShowQr(row)">点位二维码-->
|
||||
<!-- </el-button>-->
|
||||
<el-button
|
||||
v-show="true"
|
||||
class="tiffany-btn"
|
||||
icon="el-icon-picture"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="handleShowQr(row)">点位二维码
|
||||
</el-button>
|
||||
<el-button
|
||||
v-show="edit"
|
||||
type="primary"
|
||||
|
@ -101,22 +91,6 @@
|
|||
size="mini"
|
||||
@click="handleDelete(row)">删除
|
||||
</el-button>
|
||||
<!-- 新增按钮:检查记录二维码 -->
|
||||
<!-- <el-button-->
|
||||
<!-- class="tiffany-btn"-->
|
||||
<!-- icon="el-icon-document"-->
|
||||
<!-- type="info"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleShowRecordQr(row)">检查记录二维码-->
|
||||
<!-- </el-button>-->
|
||||
<el-button
|
||||
class="tiffany-btn"
|
||||
icon="el-icon-document"
|
||||
type="info"
|
||||
size="mini"
|
||||
@click="handleShowNotificationCard(row)">
|
||||
告知卡
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
@ -124,7 +98,6 @@
|
|||
<div>
|
||||
<el-button type="primary" icon="el-icon-plus" @click="handleAdd">新增</el-button>
|
||||
<el-button type="danger" icon="el-icon-delete" @click="handleDelete">批量删除</el-button>
|
||||
<el-button type="info" icon="el-icon-plus" @click="handleEditUser">批量修改负责人</el-button>
|
||||
</div>
|
||||
<pagination
|
||||
:total="total"
|
||||
|
@ -135,91 +108,27 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <el-dialog :visible.sync="dialogFormShow" title="查看二维码" width="680px" class="top-dialog">-->
|
||||
<!-- <div id="printTest" style="border: 1px solid #fff;">-->
|
||||
<!-- <div class="level-title" style="margin-top:20px">-->
|
||||
<!-- <h1>消防点位信息</h1>-->
|
||||
<!-- </div>-->
|
||||
<!-- <table class="table-ui">-->
|
||||
<!-- <tr>-->
|
||||
<!-- <td class="tbg">消防区域</td>-->
|
||||
<!-- <td >{{ qrInfo.FIRE_REGION_NAME }}</td>-->
|
||||
<!-- <td class="tbg">消防点位</td>-->
|
||||
<!-- <td>{{ qrInfo.FIRE_POINT_NAME }}</td>-->
|
||||
<!-- </tr>-->
|
||||
<!-- <tr>-->
|
||||
<!-- <td class="tbg">负责部门</td>-->
|
||||
<!-- <td>{{ qrInfo.DEPARTMENT_NAME }}</td>-->
|
||||
<!-- <td class="tbg">负责人</td>-->
|
||||
<!-- <td>{{ qrInfo.USERNAME }}</td>-->
|
||||
<!-- </tr>-->
|
||||
<!-- </table>-->
|
||||
<!-- <div class="table-qrcode">-->
|
||||
<!-- <vue-qr :text="qrcodeStr" :margin="0" :size="300" color-dark="#000" color-light="#fff" />-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div slot="footer" class="dialog-footer">-->
|
||||
<!-- <el-button @click="dialogFormShow = false">关 闭</el-button>-->
|
||||
<!-- <el-button v-print="'#printTest'" type="primary">打 印</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-dialog>-->
|
||||
|
||||
<el-dialog :visible.sync="dialogFormShow" title="消防点位维护信息告知牌" width="780px" class="top-dialog">
|
||||
<el-tabs v-model="tabsActive">
|
||||
<el-tab-pane label="横版" name="horizontal"/>
|
||||
<el-tab-pane label="竖版" name="vertical"/>
|
||||
</el-tabs>
|
||||
<div id="printTest">
|
||||
<div class="main_title">消防点位维护信息告知牌</div>
|
||||
<div v-if="tabsActive === 'horizontal'" class="horizontal">
|
||||
<div class="info">
|
||||
<div class="row">
|
||||
<div class="title">消防点位</div>
|
||||
<div class="value">{{ qrInfo.FIRE_POINT_NAME }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="title">点位编号</div>
|
||||
<div class="value">{{ qrInfo.FIRE_POINT_CODE }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="qr_info">
|
||||
<div class="row">
|
||||
<div class="title">检查码</div>
|
||||
<div class="qr">
|
||||
<vue-qr :text="qrcodeStr_jianchama" :margin="0" :size="280" color-dark="#000" color-light="#fff"/>
|
||||
</div>
|
||||
<div class="title">查询码</div>
|
||||
<div class="qr">
|
||||
<vue-qr :text="qrcodeStr_chaxunma" :margin="0" :size="280" color-dark="#000" color-light="#fff"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog :visible.sync="dialogFormShow" title="查看二维码" width="680px" class="top-dialog">
|
||||
<div id="printTest" style="border: 1px solid #fff;">
|
||||
<div class="level-title" style="margin-top:20px">
|
||||
<h1>消防点位信息</h1>
|
||||
</div>
|
||||
<div v-if="tabsActive === 'vertical'" class="vertical">
|
||||
<div class="info">
|
||||
<div class="row">
|
||||
<div class="title">消防点位</div>
|
||||
<div class="value">{{ qrInfo.FIRE_POINT_NAME }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="title">点位编号</div>
|
||||
<div class="value">{{ qrInfo.FIRE_POINT_CODE }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="qr_info">
|
||||
<div class="row">
|
||||
<div class="title">检查码</div>
|
||||
<div class="qr">
|
||||
<vue-qr :text="qrcodeStr_jianchama" :margin="0" :size="280" color-dark="#000" color-light="#fff"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="title">查询码</div>
|
||||
<div class="qr">
|
||||
<vue-qr :text="qrcodeStr_chaxunma" :margin="0" :size="280" color-dark="#000" color-light="#fff"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table-ui">
|
||||
<tr>
|
||||
<td class="tbg">消防区域</td>
|
||||
<td >{{ qrInfo.FIRE_REGION_NAME }}</td>
|
||||
<td class="tbg">消防点位</td>
|
||||
<td>{{ qrInfo.FIRE_POINT_NAME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tbg">负责部门</td>
|
||||
<td>{{ qrInfo.DEPARTMENT_NAME }}</td>
|
||||
<td class="tbg">负责人</td>
|
||||
<td>{{ qrInfo.USERNAME }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="table-qrcode">
|
||||
<vue-qr :text="qrcodeStr" :margin="0" :size="300" color-dark="#000" color-light="#fff" />
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
@ -227,45 +136,6 @@
|
|||
<el-button v-print="'#printTest'" type="primary">打 印</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog :visible.sync="dialogRecordFormShow" title="查看检查记录二维码" width="680px" class="top-dialog">
|
||||
<div id="recordPrintTest" style="border: 1px solid #fff;">
|
||||
<div class="level-title" style="margin-top:20px">
|
||||
<h1>检查记录二维码</h1>
|
||||
</div>
|
||||
<div class="table-qrcode">
|
||||
<vue-qr :text="recordQrcodeStr" :margin="0" :size="300" color-dark="#000" color-light="#fff"/>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogRecordFormShow = false">关 闭</el-button>
|
||||
<el-button v-print="'#recordPrintTest'" type="primary">打 印</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog v-loading="listLoading" :visible.sync="dialogEditUser" title="批量修改负责人" width="800px">
|
||||
<el-form
|
||||
ref="firefightingBatchEditDept"
|
||||
:model="dialogEditUserForm"
|
||||
:rules="dialogEditUserRules"
|
||||
label-width="150px">
|
||||
<el-row>
|
||||
<el-form-item label="负责人员" prop="USER_ID">
|
||||
<el-select
|
||||
v-model="dialogEditUserForm.USER_ID"
|
||||
placeholder="请选择人员"
|
||||
class="filter-item"
|
||||
style="width: 80%;">
|
||||
<el-option v-for="item in userList" :key="item.USER_ID" :label="item.NAME" :value="item.USER_ID"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogEditUser = false">取 消</el-button>
|
||||
<el-button type="primary" @click="dialogEditUserConfirm">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -278,7 +148,9 @@ import waves from '@/directive/waves' // waves directive
|
|||
import SelectTree from '@/components/SelectTree'
|
||||
|
||||
export default {
|
||||
|
||||
components: { Pagination, SelectTree, vueQr },
|
||||
|
||||
directives: { waves },
|
||||
data() {
|
||||
return {
|
||||
|
@ -286,11 +158,7 @@ export default {
|
|||
addBtnType: true,
|
||||
listLoading: true,
|
||||
dialogFormShow: false,
|
||||
dialogRecordFormShow: false,
|
||||
qrcodeStr_jianchama: '',
|
||||
qrcodeStr_chaxunma: '',
|
||||
tabsActive: 'horizontal',
|
||||
recordQrcodeStr: '',
|
||||
qrcodeStr: '',
|
||||
qrInfo: {},
|
||||
add: false,
|
||||
del: false,
|
||||
|
@ -305,9 +173,6 @@ export default {
|
|||
KEYWORDS: '',
|
||||
FIRE_POINT_NAME: '',
|
||||
FIRE_POINT_CODE: '',
|
||||
selectForm: {
|
||||
DEPARTMENT_ID: ''
|
||||
},
|
||||
// 树形菜单
|
||||
filterText: '',
|
||||
varList: [],
|
||||
|
@ -316,28 +181,7 @@ export default {
|
|||
value: 'id',
|
||||
children: 'nodes',
|
||||
label: 'name'
|
||||
},
|
||||
editDataIds: [],
|
||||
dialogEditUser: false,
|
||||
dialogEditUserForm: {
|
||||
USER_ID: ''
|
||||
},
|
||||
dialogEditUserRules: {
|
||||
USER_ID: [{ required: true, message: '请选择负责人', trigger: 'change' }]
|
||||
},
|
||||
deptTreeData: [],
|
||||
userList: [],
|
||||
punctuationStatusList: [
|
||||
{
|
||||
value: 0,
|
||||
label: '是'
|
||||
},
|
||||
{
|
||||
value: 1,
|
||||
label: '否'
|
||||
}
|
||||
],
|
||||
IS_PUNCTUATION: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
@ -349,44 +193,36 @@ export default {
|
|||
created() {
|
||||
this.getList()
|
||||
this.hasButton()
|
||||
this.getTreeData()
|
||||
},
|
||||
methods: {
|
||||
handleShowNotificationCard(ROW) {
|
||||
handleShowQr(ROW) {
|
||||
this.dialogFormShow = true
|
||||
this.qrInfo = ROW
|
||||
// 检查码
|
||||
this.qrcodeStr_chaxunma = JSON.stringify({
|
||||
MANAGER_TYPE: 'checkRecordManager',
|
||||
USER_ID: ROW.USER_ID,
|
||||
DEPARTMENT_ID: ROW.DEPARTMENT_ID,
|
||||
FIRE_POINT_ID: ROW.FIRE_POINT_ID
|
||||
})
|
||||
// 查询码
|
||||
this.qrcodeStr_jianchama = JSON.stringify({
|
||||
MANAGER_TYPE: 'fireListManager',
|
||||
FIRE_POINT_ID: ROW.FIRE_POINT_ID
|
||||
})
|
||||
this.qrcodeStr = this.config.weburlWaiwang + 'static/qrcode/views/bsbw/point_list.html?id=' + ROW.FIRE_POINT_ID
|
||||
},
|
||||
handleEdit(FIRE_POINT_ID) {
|
||||
this.$parent.FIRE_POINT_ID = FIRE_POINT_ID
|
||||
this.$parent.activeName = 'Edit'
|
||||
},
|
||||
selectable(row, index) {
|
||||
return true
|
||||
return row.DEVICE_COUNT == 0
|
||||
},
|
||||
getRowKey(row) {
|
||||
return row.FIRE_POINT_ID
|
||||
},
|
||||
// 添加
|
||||
handleAdd() {
|
||||
this.$parent.activeName = 'Edit'
|
||||
this.$parent.FIRE_POINT_ID = ''
|
||||
this.$parent.FIRE_POINT_CODE = ''
|
||||
this.$parent.FIRE_POINT_NAME = ''
|
||||
},
|
||||
// 搜索
|
||||
getQuery() {
|
||||
// this.$refs.multipleTable.clearSelection()
|
||||
this.getList()
|
||||
},
|
||||
// 获取列表
|
||||
getList(pid) {
|
||||
this.listLoading = true
|
||||
this.varList = []
|
||||
|
@ -395,9 +231,7 @@ export default {
|
|||
'/firePoint/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page,
|
||||
{
|
||||
FIRE_POINT_NAME: this.FIRE_POINT_NAME,
|
||||
FIRE_POINT_CODE: this.FIRE_POINT_CODE,
|
||||
DEPARTMENT_ID: this.selectForm.DEPARTMENT_ID,
|
||||
IS_PUNCTUATION: this.IS_PUNCTUATION
|
||||
FIRE_POINT_CODE: this.FIRE_POINT_CODE
|
||||
}
|
||||
).then((data) => {
|
||||
this.listLoading = false
|
||||
|
@ -407,14 +241,9 @@ export default {
|
|||
}).catch((e) => {
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
goKeyReset() {
|
||||
}, goKeyReset() {
|
||||
this.FIRE_POINT_NAME = ''
|
||||
this.FIRE_POINT_CODE = ''
|
||||
this.IS_PUNCTUATION = ''
|
||||
this.selectForm = {
|
||||
DEPARTMENT_ID: ''
|
||||
}
|
||||
this.getList()
|
||||
},
|
||||
getDict() {
|
||||
|
@ -454,88 +283,6 @@ export default {
|
|||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
getTreeData() {
|
||||
requestFN(
|
||||
'/department/listTreeV2',
|
||||
{}
|
||||
).then((data) => {
|
||||
this.deptTreeData = JSON.parse(data.zTreeNodes)
|
||||
}).catch((e) => {
|
||||
})
|
||||
},
|
||||
handleEditUser(row) {
|
||||
this.editDataIds = []
|
||||
if (row.FIRE_POINT_ID) {
|
||||
this.editDataIds.push(row.FIRE_POINT_ID)
|
||||
} else {
|
||||
const selection = this.$refs.multipleTable.selection
|
||||
if (!selection.length > 0) {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '请选择要修改的数据'
|
||||
})
|
||||
return
|
||||
}
|
||||
selection.forEach(item => {
|
||||
this.editDataIds.push(item.FIRE_POINT_ID)
|
||||
})
|
||||
}
|
||||
const selection = this.$refs.multipleTable.selection
|
||||
const DEPARTMENT_ID = selection[0].DEPARTMENT_ID
|
||||
if (selection.length > 1) {
|
||||
let flag = false
|
||||
selection.forEach(item => {
|
||||
if (DEPARTMENT_ID !== item.DEPARTMENT_ID) {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '只能选择同一部门下的数据'
|
||||
})
|
||||
flag = true
|
||||
}
|
||||
})
|
||||
if (flag) {
|
||||
return
|
||||
}
|
||||
}
|
||||
this.getUserList(DEPARTMENT_ID)
|
||||
this.dialogEditUserForm = {
|
||||
USER_ID: ''
|
||||
}
|
||||
this.dialogEditUser = true
|
||||
},
|
||||
getUserList(DEPARTMENT_ID) {
|
||||
requestFN(
|
||||
'/user/listAll',
|
||||
{
|
||||
DEPARTMENT_ID: DEPARTMENT_ID
|
||||
}
|
||||
).then((data) => {
|
||||
this.userList = data.userList
|
||||
}).catch((e) => {
|
||||
})
|
||||
},
|
||||
dialogEditUserConfirm() {
|
||||
this.$refs.firefightingBatchEditDept.validate((valid) => {
|
||||
if (valid) {
|
||||
this.listLoading = true
|
||||
requestFN(
|
||||
'/firePoint/batchEditFirePointUser',
|
||||
{
|
||||
DATA_IDS: this.editDataIds.join(','),
|
||||
USER_ID: this.dialogEditUserForm.USER_ID
|
||||
}
|
||||
).then(() => {
|
||||
this.$message({
|
||||
message: '修改成功',
|
||||
type: 'success'
|
||||
})
|
||||
this.dialogEditUser = false
|
||||
this.getList()
|
||||
}).catch(() => {
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleDelete(row) {
|
||||
const DATA_IDS = []
|
||||
if (row.FIRE_POINT_ID) {
|
||||
|
@ -549,19 +296,6 @@ export default {
|
|||
})
|
||||
return
|
||||
}
|
||||
var flag = true
|
||||
selection.forEach(item => {
|
||||
if (item.DEVICE_COUNT > 0) {
|
||||
flag = false
|
||||
}
|
||||
})
|
||||
if (!flag) {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '选择的点位中有子数据,不能删除'
|
||||
})
|
||||
return
|
||||
}
|
||||
selection.forEach(item => {
|
||||
DATA_IDS.push(item.FIRE_POINT_ID)
|
||||
})
|
||||
|
@ -613,17 +347,15 @@ export default {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped >
|
||||
.returnBtn {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.app-container {
|
||||
display: flex;
|
||||
display: flex; /**/
|
||||
align-items: baseline;
|
||||
}
|
||||
|
||||
.table-qrcode {
|
||||
.table-qrcode{
|
||||
text-align: center;
|
||||
padding-top: 20px;
|
||||
width: 100%;
|
||||
|
@ -633,139 +365,3 @@ export default {
|
|||
width: 100%
|
||||
}
|
||||
</style>
|
||||
|
||||
<style scoped lang="scss">
|
||||
#printTest {
|
||||
border: 1px solid #ccc;
|
||||
padding: 20px;
|
||||
margin: 10px;
|
||||
|
||||
.main_title {
|
||||
font-weight: bold;
|
||||
font-size: 30px;
|
||||
text-align: center;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.horizontal {
|
||||
.info {
|
||||
color: #000;
|
||||
font-size: 16px;
|
||||
margin-top: 30px;
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.title {
|
||||
width: 120px;
|
||||
text-align: center;
|
||||
border: 1px solid #000;
|
||||
padding: 5px;
|
||||
letter-spacing: 6px;
|
||||
}
|
||||
|
||||
.value {
|
||||
border: 1px solid #000;
|
||||
border-left: none;
|
||||
flex: 1;
|
||||
padding: 5px 5px 5px 10px;
|
||||
}
|
||||
|
||||
& + .row {
|
||||
.title, .value {
|
||||
border-top: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.qr_info {
|
||||
color: #000;
|
||||
font-size: 16px;
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
|
||||
.title {
|
||||
width: 30px;
|
||||
line-height: 22px;
|
||||
writing-mode: vertical-rl;
|
||||
text-align: center;
|
||||
letter-spacing: 15px;
|
||||
border: 1px solid #000;
|
||||
border-top: none;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.qr {
|
||||
flex: 1;
|
||||
border: 1px solid #000;
|
||||
border-top: none;
|
||||
border-left: none;
|
||||
padding: 5px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
& + .title {
|
||||
border-left: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.vertical {
|
||||
.info, .qr_info {
|
||||
color: #000;
|
||||
font-size: 16px;
|
||||
margin-top: 30px;
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
|
||||
.title {
|
||||
width: 200px;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
border: 1px solid #000;
|
||||
letter-spacing: 6px;
|
||||
}
|
||||
|
||||
.value, .qr {
|
||||
padding: 5px 5px 5px 10px;
|
||||
border: 1px solid #000;
|
||||
border-left: none;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
& + .row {
|
||||
.title, .value, .qr {
|
||||
border-top: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.qr_info {
|
||||
margin-top: 0;
|
||||
|
||||
.row {
|
||||
.title {
|
||||
letter-spacing: 12px;
|
||||
line-height: 280px;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.qr {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-top: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -33,46 +33,25 @@
|
|||
<el-form-item :rules="form.IS_NORMAL =='1' ?formRule.RECTIFICATIONTIME:[{required: false}]" label="整改时间" prop="RECTIFICATIONTIME">
|
||||
<el-date-picker v-model="form.RECTIFICATIONTIME" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择日期" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item :rules="[{required: true}]" label="整改后图片" label-width="100px">-->
|
||||
<!-- <el-upload-->
|
||||
<!-- ref="zhenggaiupload"-->
|
||||
<!-- :class="{hide:hideUpload}"-->
|
||||
<!-- :file-list="rectify_files"-->
|
||||
<!-- :on-remove="handleRemove"-->
|
||||
<!-- :on-change="handleChangeIMG"-->
|
||||
<!-- :limit="4"-->
|
||||
<!-- :on-preview="handlePictureCardPreview"-->
|
||||
<!-- :before-upload="beforeFileUpload"-->
|
||||
<!-- :auto-upload="false"-->
|
||||
<!-- class="avatar-uploader"-->
|
||||
<!-- action="#"-->
|
||||
<!-- accept=".jpg,.jpeg,.png"-->
|
||||
<!-- list-type="picture-card">-->
|
||||
<!-- <i class="el-icon-plus" />-->
|
||||
<!-- </el-upload>-->
|
||||
<!-- <el-dialog :visible.sync="dialogImageVisible">-->
|
||||
<!-- <img :src="dialogImageUrl" width="100%" alt="">-->
|
||||
<!-- </el-dialog>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item :rules="[{required: true}]" label="整改后图片" label-width="100px">
|
||||
<div class="parentBox">
|
||||
<el-upload
|
||||
:class="{hideShow: hideUpload}"
|
||||
:multiple="true"
|
||||
:on-exceed="onExceed"
|
||||
:on-remove="handleRemove"
|
||||
:limit="limit"
|
||||
:before-upload="beforeUpload"
|
||||
:http-request="uploadFiles"
|
||||
:on-preview="handlePictureCardPreview"
|
||||
action=""
|
||||
list-type="picture-card">
|
||||
<i class="el-icon-plus"/>
|
||||
</el-upload>
|
||||
<el-dialog :visible.sync="dialogVisible">
|
||||
<img :src="imgUrl" width="100%">
|
||||
</el-dialog>
|
||||
</div>
|
||||
<el-upload
|
||||
ref="zhenggaiupload"
|
||||
:class="{hide:hideUpload}"
|
||||
:on-remove="handleRemove"
|
||||
:on-change="handleChangeIMG"
|
||||
:limit="4"
|
||||
:on-preview="handlePictureCardPreview"
|
||||
:before-upload="beforeFileUpload"
|
||||
:auto-upload="false"
|
||||
class="avatar-uploader"
|
||||
action="#"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
list-type="picture-card">
|
||||
<i class="el-icon-plus" />
|
||||
</el-upload>
|
||||
<el-dialog :visible.sync="dialogImageVisible">
|
||||
<img :src="dialogImageUrl" width="100%" alt="">
|
||||
</el-dialog>
|
||||
</el-form-item>
|
||||
<div v-if="pd.ISCONFIRM=='0'">
|
||||
<div class="form-flex">
|
||||
|
@ -215,13 +194,11 @@ export default {
|
|||
INVESTMENT_FUNDS: '', // 投入资金
|
||||
RECTIFICATIONTIME: ''// 整改时间
|
||||
},
|
||||
imgUrl: '',
|
||||
rectify_files: [],
|
||||
hideUpload: false, // 整改照片
|
||||
dialogImageVisible: false, // 放大照片的显示和隐藏
|
||||
dialogImageUrl: '', // 照片的地址
|
||||
scheme_files: [], // 整改方案图片
|
||||
temporaryFilePath: [],
|
||||
formRule: {
|
||||
RECTIFICATIONDEPT: [{ required: true, message: '请选择整改部门', trigger: 'blur' }],
|
||||
RECTIFICATIONOR: [{ required: true, message: '请选择整改人', trigger: 'blur' }],
|
||||
|
@ -275,53 +252,6 @@ export default {
|
|||
this.getEditMyInfo()
|
||||
},
|
||||
methods: {
|
||||
uploadFiles(file) {
|
||||
// 调用文件大小校验方法
|
||||
if (this.beforeUpload(file.file)) {
|
||||
this.formData = new FormData()
|
||||
this.formData.append('FFILE', file.file)
|
||||
// 请求接口
|
||||
upload(
|
||||
'/mfolder/upLoadTemporary',
|
||||
this.formData
|
||||
).then((data) => {
|
||||
if (data.result == 'success') {
|
||||
this.$message({
|
||||
message: '保存成功',
|
||||
type: 'success'
|
||||
})
|
||||
this.loading = false
|
||||
this.temporaryFilePath.push(data.temporaryFilePath)
|
||||
console.info('this.temporaryFilePath========' + this.temporaryFilePath)
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.exception,
|
||||
type: 'error'
|
||||
})
|
||||
this.loading = false
|
||||
}
|
||||
}).catch((e) => {
|
||||
this.listLoading = false
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
},
|
||||
// 文件大小校验
|
||||
beforeUpload(file) {
|
||||
if (file.size > 10 * 1024 * 1024) {
|
||||
this.$message('文件过大,请上传小于10MB的文件〜')
|
||||
return false
|
||||
}
|
||||
return true
|
||||
},
|
||||
// 删除图片
|
||||
imageRemove() {
|
||||
this.imgUrl = ''
|
||||
this.$message({
|
||||
message: '删除图片成功',
|
||||
type: 'success'
|
||||
})
|
||||
},
|
||||
getEditMyInfo: function() {
|
||||
requestFN(
|
||||
'/user/goEditMyInfo',
|
||||
|
@ -484,8 +414,7 @@ export default {
|
|||
},
|
||||
saveRectify() { // 正常整改
|
||||
this.loading = true
|
||||
// if (this.$refs.zhenggaiupload.uploadFiles.length < 1) {
|
||||
if (this.temporaryFilePath.length < 1) {
|
||||
if (this.$refs.zhenggaiupload.uploadFiles.length < 1) {
|
||||
this.$message({
|
||||
message: '请上传整改后照片',
|
||||
type: 'error'
|
||||
|
@ -612,24 +541,16 @@ export default {
|
|||
text: '加载中......',
|
||||
background: 'rgba(0,0,0,0.5)'
|
||||
})
|
||||
// this.$refs.zhenggaiupload.submit()
|
||||
this.$refs.zhenggaiupload.submit()
|
||||
var todata = new FormData()
|
||||
for (var i = 0; i < _this.temporaryFilePath.length; i++) {
|
||||
if (_this.temporaryFilePath[i]) {
|
||||
todata.append('temporaryFilePath', _this.temporaryFilePath[i])
|
||||
for (var i = 0; i < _this.rectify_files.length; i++) {
|
||||
if (_this.rectify_files[i]) {
|
||||
todata.append('FFILE', _this.rectify_files[i])
|
||||
}
|
||||
}
|
||||
if (!todata.get('temporaryFilePath')) {
|
||||
if (!todata.get('FFILE')) {
|
||||
return
|
||||
}
|
||||
// for (var i = 0; i < _this.rectify_files.length; i++) {
|
||||
// if (_this.rectify_files[i]) {
|
||||
// todata.append('FFILE', _this.rectify_files[i])
|
||||
// }
|
||||
// }
|
||||
// if (!todata.get('FFILE')) {f
|
||||
// return
|
||||
// }
|
||||
todata.append('FOREIGN_KEY', this.HIDDEN_ID)
|
||||
todata.append('TYPE', 4)
|
||||
upload(
|
||||
|
@ -682,7 +603,6 @@ export default {
|
|||
}
|
||||
todata.append('FOREIGN_KEY', this.HIDDEN_ID)
|
||||
todata.append('TYPE', 8)
|
||||
todata.append('temporaryFilePath', this.temporaryFilePath)
|
||||
upload(
|
||||
'/imgfiles/add',
|
||||
todata
|
||||
|
@ -764,39 +684,6 @@ export default {
|
|||
this.scheme_files.push(file)
|
||||
}
|
||||
},
|
||||
submitUpload() {
|
||||
var _this = this
|
||||
this.$refs.zhenggaiupload.submit()
|
||||
var todata = new FormData()
|
||||
for (var i = 0; i < _this.rectify_files.length; i++) {
|
||||
if (_this.rectify_files[i]) {
|
||||
todata.append('FFILE', _this.rectify_files[i])
|
||||
}
|
||||
}
|
||||
console.log(todata)
|
||||
upload(
|
||||
'/mfolder/upLoadTemporary',
|
||||
todata
|
||||
).then((data) => {
|
||||
if (data.result == 'success') {
|
||||
this.$message({
|
||||
message: '保存成功',
|
||||
type: 'success'
|
||||
})
|
||||
this.loading = false
|
||||
this.temporaryFilePath = data.temporaryFilePath
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.exception,
|
||||
type: 'error'
|
||||
})
|
||||
this.loading = false
|
||||
}
|
||||
}).catch((e) => {
|
||||
this.listLoading = false
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
back() {
|
||||
this.$parent.activeName = 'List'
|
||||
}
|
||||
|
|
|
@ -118,9 +118,10 @@ export default {
|
|||
this.jinduData[1] = nowYear + '-12-31'
|
||||
this.getJindu()
|
||||
this.getQingdan()
|
||||
this.getWorkNumber()
|
||||
// this.getWorkNumber()
|
||||
this.getRiskNumber()
|
||||
this.getHiddenTypeCount()/*
|
||||
// this.getHiddenTypeCount()
|
||||
/*
|
||||
this.getNoticeList()
|
||||
this.getNoticeCorpList()*/
|
||||
},
|
||||
|
|
|
@ -46,14 +46,26 @@
|
|||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="COMPETENT_DEPT_ID" label="企业主管部门:">
|
||||
<SelectTree
|
||||
ref="deptTree"
|
||||
:clearable="false"
|
||||
<!-- <SelectTree-->
|
||||
<!-- ref="deptTree"-->
|
||||
<!-- :clearable="false"-->
|
||||
<!-- :options="treeDataInspectDept"-->
|
||||
<!-- :normalizer="normalizer"-->
|
||||
<!-- :props="defaultProps"-->
|
||||
<!-- :default-expand-level="1"-->
|
||||
<!-- v-model="form.COMPETENT_DEPT_ID"-->
|
||||
<!-- placeholder="请选择企业主管部门"-->
|
||||
<!-- style="width: 100%"/>-->
|
||||
<Treeselect
|
||||
:flat="true"
|
||||
:default-expand-level="1"
|
||||
:options="treeDataInspectDept"
|
||||
:normalizer="normalizer"
|
||||
:props="defaultProps"
|
||||
v-model="form.COMPETENT_DEPT_ID"
|
||||
placeholder="请选择企业主管部门"
|
||||
style="width: 100%"/>
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
<template>
|
||||
<div>
|
||||
<!-- <component :is="activeName"/>-->
|
||||
<List v-show="activeName=='List'" ref="list" />
|
||||
<keep-alive>
|
||||
<List v-show="activeName=='List'" ref="list" />
|
||||
</keep-alive>
|
||||
<Info v-if="activeName=='Info'" />
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<template>
|
||||
<!-- <component :is="activeName"/>-->
|
||||
<div>
|
||||
<List v-show="activeName=='List'" ref="list" />
|
||||
<keep-alive>
|
||||
<List v-show="activeName=='List'" ref="list" />
|
||||
</keep-alive>
|
||||
<Info v-if="activeName=='Info'" />
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<template>
|
||||
<!-- <component :is="activeName"/>-->
|
||||
<div>
|
||||
<List v-show="activeName=='List'" ref="list" />
|
||||
<keep-alive>
|
||||
<List v-show="activeName=='List'" ref="list" />
|
||||
</keep-alive>
|
||||
<Info v-if="activeName=='Info'" />
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -24,6 +24,16 @@
|
|||
placeholder="请选择检查部门"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="检查人员">
|
||||
<el-input v-model="search.INSPECTION_USER_NAME" placeholder="检查人员..." />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="检查人手机">
|
||||
<el-input v-model="search.INSPECTION_USER_PHONE" placeholder="检查人手机..." />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="检查发起人">
|
||||
<el-input v-model="search.INSPECTION_ORIGINATOR_NAME" placeholder="检查发起人..." />
|
||||
|
@ -42,6 +52,8 @@
|
|||
children-name="nodes" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="检查时间">
|
||||
<el-date-picker
|
||||
|
@ -54,8 +66,6 @@
|
|||
end-placeholder="结束日期"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="检查状态">
|
||||
<el-select v-model="search.INSPECTION_STATUS" placeholder="检查状态" clearable style="width: 100%">
|
||||
|
@ -75,6 +85,11 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="检查情况">
|
||||
<el-input v-model="search.INSPECTION_CASE" placeholder="检查情况..." />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button v-waves type="primary" icon="el-icon-search" @click="getQuery">
|
||||
|
@ -259,11 +274,14 @@ export default {
|
|||
INSPECTION_ORIGINATOR_NAME: '', // 检查发起人
|
||||
INSPECTION_TYPE: '', // 检查类型
|
||||
INSPECTION_TIME: ['', ''], // 检查时间
|
||||
INSPECTION_USER_NAME: '', // 检查人员
|
||||
INSPECTION_USER_PHONE: '', // 检查人员手机
|
||||
INSPECTION_CASE: '', // 检查情况
|
||||
INSPECTION_STATUS: '', // 检查状态
|
||||
INSPECTION_SUBJECT: '' // 检查题目
|
||||
},
|
||||
statusList: [
|
||||
{ ID: '', NAME: '请选择' },
|
||||
// { ID: '', NAME: '请选择' },
|
||||
{ ID: '0', NAME: '待检查人核实' },
|
||||
{ ID: '1', NAME: '检查人核实中' },
|
||||
{ ID: '2', NAME: '待被检查人确认' },
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<template>
|
||||
<component :is="activeName" />
|
||||
<keep-alive include="CorpInfoList" exclude="CorpInfoEdit,CorpInfoAdd">
|
||||
<component :is="activeName" />
|
||||
</keep-alive>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
Loading…
Reference in New Issue