修改新增

master
lion 4 years ago
parent 1a99859118
commit 8875d6d987

@ -0,0 +1,45 @@
import request from '@/utils/request'
export function listevent(params) {
return request({
url: '/api/admin/department-activity/index',
method: 'get',
params:params
})
}
export function store(data) {
return request({
url: '/api/admin/department-activity/store',
method: 'post',
data
})
}
export function save(data) {
return request({
url: '/api/admin/department-activity/save',
method: 'post',
data
})
}
export function del(id) {
return request({
url: '/api/admin/department-activity/destroy',
method: 'get',
params: {
id
}
})
}
export function get(id) {
return request({
url: '/api/admin/department-activity/show',
method: 'get',
params: {
id
}
})
}

@ -8,9 +8,18 @@
<slot>
<div>
<Input style="width: 200px; margin-right: 10px" v-model="searchFields.KeyWord" placeholder="关键字搜索" />
<DatePicker type="datetimerange" v-model="searchFields.dateRange" @on-ok="handleOk"
format="yyyy-MM-dd HH:mm" placeholder="事故的发生时间范围" style="width: 300px"></DatePicker>
<!-- <DatePicker type="datetimerange" v-model="" @on-ok="handleOk"
format="yyyy-MM-dd HH:mm" placeholder="事故的发生时间范围" style="width: 300px"></DatePicker> -->
<el-date-picker
class="searchdate"
v-model="searchFields.dateRange"
@change="handleOk"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="至"
start-placeholder="开始发生时间"
end-placeholder="结束发生时间">
</el-date-picker>
<Button type="primary" @click="search" style="margin-left: 10px">查询</Button>
<Button type="primary" @click="edit()" style="margin-left: 10px">新增</Button>
</div>
@ -19,7 +28,7 @@
</div>
<div ref="lxTable" class="table-tree">
<el-table :data="tableData" class="v-table" :height="tableHeight" style="width: 100%">
<el-table-column type="index" fixed width="50" align="center"> </el-table-column>
<el-table-column type="index" fixed width="50" align="center" fixed="left"> </el-table-column>
<el-table-column :prop="column.field" :fixed="column.fixed" :align="column.align"
v-for="(column,index) in columns" :label="column.title" :width="column.width">
<template slot-scope="scope">
@ -37,6 +46,11 @@
{{scope.row["is_fail"]=="1"?"是":"否"}}
</el-tag>
</div>
</div>
<div v-else-if="column.type=='formats'">
<div v-if="column.field=='admin'||column.field=='department'||column.field=='maintenance_department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else-if="column.type=='opt'">
<Button ghost size="small" @click="edit(scope.row)" type="primary"
@ -66,30 +80,30 @@
</span>
</div>
<el-row :gutter="20">
<el-col :span="12">
<el-col :span="8">
<el-form-item label="事发单位" prop="unit" label-position="right" :label-width="formLabelWidth">
<el-input v-model="form.unit" placeholder="请填写事发单位" autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8" :offset="8">
<el-form-item label="事发时间" prop="happen_date" label-position="right" :label-width="formLabelWidth">
<el-date-picker v-model="form.happen_date" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
<el-date-picker style="width:100%" v-model="form.happen_date" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss" placeholder="选择事发时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="事故类别" prop="type" label-position="right" :label-width="formLabelWidth">
<el-select v-model="form.type" placeholder="请选择事故类别">
<el-select style="width:100%" v-model="form.type" placeholder="请选择事故类别">
<el-option v-for="item in parameters.accidentType" :key="item.id" :label="item.value"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8" :offset="8">
<el-form-item label="上报时间" prop="report_date" label-position="right" :label-width="formLabelWidth">
<el-date-picker v-model="form.report_date" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
<el-date-picker style="width:100%" v-model="form.report_date" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss" placeholder="选择上报时间">
</el-date-picker>
</el-form-item>
@ -99,16 +113,16 @@
<el-input v-model="form.address" placeholder="请填写事发地点" autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="事故等级" prop="level" label-position="right" :label-width="formLabelWidth">
<el-select v-model="form.level" placeholder="请选择事故等级">
<el-select style="width:100%" v-model="form.level" placeholder="请选择事故等级">
<el-option v-for="item in parameters.accidentLevel" :key="item.id" :label="item.value"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="24">
<el-form-item label="事故未遂" prop="is_fail" label-position="right" :label-width="formLabelWidth">
<el-radio-group v-model="form.is_fail">
<el-radio :label="1"></el-radio>
@ -136,7 +150,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="初步估算直接经济损失" prop="economic_loss">
<el-input v-model="form.economic_loss" placeholder="请填写金额" style="width: 180px;" autocomplete="off">
<template slot="append"></template>
@ -316,74 +330,79 @@
indexUrl: "/api/admin/task/index",
tableHeight: 900,
searchFields: {
KeyWord: ""
KeyWord: "",
dateRange:['','']
},
columns: [{
field: "unit",
title: "事发单位",
type: "string",
width: 280
width: 240
},
{
field: "happen_date",
title: "事发时间",
type: "date",
width: 160,
width: 180,
align: "center"
},
{
field: "report_date",
title: "上报时间",
type: "date",
width: 160,
width: 180,
align: "center"
},
{
field: "economic_loss",
title: "预估经济损失",
width: 180,
align: "right"
},
{
field: "level",
field: "level_name",
title: "事故等级",
width: 100,
width: 180,
align: "center"
},
{
field: "type",
field: "type_name",
title: "事故类型",
width: 100,
width: 180,
align: "center"
},
{
field: "economic_loss",
title: "预估经济损失",
width: 100,
align: "right"
},
{
field: "hurt_count",
title: "伤亡情况",
type: "format",
width: 200,
width: 240,
align: "left"
},
{
field: "scene_condition",
title: "现场情况",
align: "left"
align: "left",
width:240
},
{
field: "created_at",
title: "创建信息",
title: "创建时间",
type: "string",
width: 180,
align: "center"
},
{
field: "admin",
title: "创建人",
type: "formats",
width: 180,
align: "center"
},
{
field: "created_at_dept",
field: "department",
title: "创建人科室",
type: "string",
type: "formats",
width: 180,
align: "center"
},
@ -411,7 +430,10 @@
},
methods: {
handleOk() {},
handleOk(val) {
this.searchFields.happen_date_start= val? val[0]:""
this.searchFields.happen_date_end = val? val[1]:""
},
toupload(type) {
console.log(type)
this.touploadType = type;
@ -468,10 +490,12 @@
this.load();
},
load() {
listaccident({
page: this.paginations.page,
page_size: this.paginations.page_size
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord,
happen_date_start: this.searchFields.happen_date_start,
happen_date_end: this.searchFields.happen_date_end
}).then(res => {
this.tableData = res.data;
this.paginations.total = res.total
@ -649,5 +673,15 @@
.dialogConcent {
overflow-y: auto;
overflow-x: hidden !important;
}
.searchdate{
height: 32px;
vertical-align: middle;
}
.searchdate.el-date-editor .el-range__icon{
line-height: 25px;
}
.searchdate.el-date-editor .el-range-separator{
line-height: 25px;
}
</style>

@ -172,20 +172,21 @@
columns: [{
field: "title",
title: "任务名称",
type: "string"
type: "string",
width: 240
},
{
field: "start_date",
title: "开始时间",
type: "date",
width: 160,
width: 180,
align: "center"
},
{
field: "end_date",
title: "结束时间",
type: "date",
width: 160,
width: 180,
align: "center"
},
{
@ -257,25 +258,27 @@
var paginationHeight = 37; //
var topHeight = 50; //
let tableHeight = clientHeight - lxHeader_height - topHeight - paginationHeight - 20;
that.tableHeight = tableHeight;
that.tableHeight = tableHeight;
getInfo({
// token:this.uploadOther.token;
}).then(response => {
this.department_user_id = response.department_id
}).catch(error => {
console.log(error)
reject(error)
});
},
handleCurrentChange(page) {
this.paginations.page = page;
this.load();
},
load() {
getInfo({
// token:this.uploadOther.token;
}).then(response => {
this.department_user_id = response.department_id
}).catch(error => {
console.log(error)
reject(error)
});
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
show_self: this.show_self
show_self: this.show_self,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.page_size = response.total;

@ -31,9 +31,9 @@
</el-link>
</div>
<div v-if="column.field=='task_departments'">
<el-tag v-for="(tag, tIndex) in scope.row['safety_task_departments']"
<el-tag v-for="(tag, tIndex) in scope.row['task_name']"
style="margin-right: 5px;margin-bottom: 5px;">
{{tag.departments.name}}
{{tag.name}}
</el-tag>
</div>
<div v-if="column.field=='admin'">
@ -184,20 +184,20 @@
field: "title",
title: "任务名称",
type: "string",
width: 280
width: 240
},
{
field: "start_date",
title: "开始时间",
type: "date",
width: 160,
width: 180,
align: "center"
},
{
field: "end_date",
title: "结束时间",
type: "date",
width: 160,
width: 180,
align: "center"
},
{
@ -205,7 +205,7 @@
title: "科室",
type: "format",
align: "left",
width: 380
width: 300
},
{
@ -298,8 +298,19 @@
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
}).then(response => {
keyword:this.searchFields.KeyWord
}).then(response => {
var that = this
for(var m of response.data){
if(m.safety_task_departments){
let task_list = []
for(var k of m.safety_task_departments){
let dep = Object.assign({}, k.departments)
task_list.push(dep)
}
m.task_name = task_list
}
}
this.tableData = response.data;
this.paginations.page_size = response.total;
}).catch(error => {

@ -25,21 +25,35 @@
<Button ghost size="small" @click="edit(scope.row)" type="primary"
style="margin-left: 10px;">编辑</Button>
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='formats'">
<div v-if="column.field=='admin'||column.field=='department'||column.field=='maintenance_department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else-if="column.type=='check_person'" v-for="item in userOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
<div v-else-if="column.type=='check_person'">
<div v-for="item in userOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
</div>
</div>
</div>
<div v-else-if="column.type=='unit'" v-for="item in deptOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
<div v-else-if="column.type=='unit'">
<div v-for="item in deptOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
</div>
</div>
</div>
<div v-else-if="column.type=='result'" v-for="item in results">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
<div v-else-if="column.type=='result'" >
<div v-for="item in results">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
</div>
</div>
</div>
<div v-else>{{scope.row[column.field]}}</div>
</template>
@ -226,20 +240,22 @@
columns: [{
field: "name",
title: "制度名称",
type: "string",
type: "string",
width:240,
align:'left'
},
{
field: "check_time",
title: "检查时间",
type: "string",
width: 200,
width: 180,
align: "center"
},
{
field: "check_person",
title: "检查评定人员",
type: "check_person",
width: 200,
width: 180,
align: "center"
},
{
@ -247,14 +263,14 @@
title: "科室",
type: "unit",
align: "center",
width: 200,
width: 180,
},
{
field: "result",
title: "评定结果",
type: "result",
width: 200,
width: 180,
align: "left"
},
{
@ -264,18 +280,26 @@
width: 180,
align: "center"
},
{
field: "created_at_dept",
title: "创建人科室",
type: "string",
width: 180,
align: "center"
{
field: "admin",
title: "创建人",
type: "formats",
width: 180,
align: "center"
},
{
field: "department",
title: "创建人科室",
type: "formats",
width: 180,
align: "center"
},
{
field: "操作",
title: "操作",
width: 220,
type: "opt",
type: "opt",
fixed:"right"
}
],
uploadOther: {
@ -372,7 +396,8 @@
load() {
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(res => {
this.tableData = res.data;
this.paginations.total = res.total

@ -26,9 +26,17 @@
style="margin-left: 10px;">编辑</Button>
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='unit'" v-for="item in deptOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
<div v-else-if="column.type=='unit'">
<div v-for="item in deptOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
</div>
</div>
</div>
<div v-else-if="column.type=='formats'">
<div v-if="column.field=='admin'||column.field=='department'||column.field=='maintenance_department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else>{{scope.row[column.field]}}</div>
@ -288,14 +296,20 @@
field: "year",
title: "年份",
type: "string",
width: 200,
align: "center"
width: 120,
align: "left"
},
{
field: "remark",
title: "备注",
type: "string",
},
{
field: "unit",
title: "科室",
type: "unit",
align: "left"
align: "center",
width: 180,
},
{
field: "created_at",
@ -304,12 +318,19 @@
width: 180,
align: "center"
},
{
field: "created_at_dept",
title: "创建人科室",
type: "string",
width: 180,
align: "center"
{
field: "admin",
title: "创建人",
type: "formats",
width: 180,
align: "center"
},
{
field: "department",
title: "创建人科室",
type: "formats",
width: 180,
align: "center"
},
{
field: "操作",
@ -367,7 +388,8 @@
load() {
list({
page: this.paginations.page,
page_size: this.paginations.page_size
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(res => {
this.tableData = res.data;
this.paginations.total = res.total

@ -18,7 +18,7 @@
<el-table :data="tableData" class="v-table" :height="tableHeight" style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"> </el-table-column>
<el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns"
:label="column.title" :width="column.width">
:label="column.title" :width="column.width" :fixed="column.fixed">
<template slot-scope="scope">
<div v-if="column.type=='opt'">
<Button ghost size="small" @click="edit(scope.row)" type="primary"
@ -26,15 +26,20 @@
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='host_person'" v-for="item in userOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
<div v-else-if="column.type=='host_person'">
<div v-for="item in userOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
</div>
</div>
</div>
<div v-else-if="column.type=='record_person'" v-for="item in userOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
<div v-else-if="column.type=='record_person'">
<div v-for="item in userOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
</div>
</div>
</div>
@ -278,8 +283,8 @@
field: "name",
title: "会议名称",
type: "string",
align: "center",
width: 180,
align: "left",
width: 240,
},
{
field: "meet_time",
@ -292,19 +297,23 @@
field: "host_person",
title: "主持人",
type: "host_person",
align: "center"
align: "center",
width: 180,
},
{
field: "record_person",
title: "记录人",
type: "record_person",
align: "center"
align: "center",
width: 180,
},
{
field: "address",
title: "地点",
type: "string",
align: "center"
align: "left",
width: 240,
},
{
field: "created_at",
@ -331,7 +340,8 @@
field: "操作",
title: "操作",
width: 220,
type: "opt",
type: "opt",
fixed:"right"
}
],
uploadOther: {
@ -399,7 +409,8 @@
load() {
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;

@ -176,7 +176,9 @@
},{
field: "date",
title: "日期",
type: "string"
type: "string",
align:'center',
width: 180
},
{
field: "money",
@ -257,7 +259,8 @@
load() {
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;

@ -16,9 +16,9 @@
</div>
<div ref="lxTable">
<el-table :data="tableData" class="v-table" :height="tableHeight" style="width: 100%">
<el-table-column type="index" width="50" align="center"> </el-table-column>
<el-table-column type="index" width="50" align="center" fixed="left"> </el-table-column>
<el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns"
:label="column.title" :width="column.width">
:label="column.title" :width="column.width" :fixed="column.fixed">
<template slot-scope="scope">
<div v-if="column.type=='opt'">
<Button ghost size="small" @click="check(scope.row)" type="primary"
@ -26,12 +26,30 @@
<Button ghost size="small" @click="edit(scope.row)" type="primary"
style="margin-left: 10px;">编辑</Button>
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='department_id'">
<div v-for="dep in deptOptions">
<div v-if='scope.row[column.field]==dep.id'>
{{dep.name}}
</div>
</div>
</div>
<div v-else-if="column.type=='quarter'" v-for="quarter in quarters">
<div v-if='scope.row[column.field]==quarter.id'>
{{quarter.value}}
<div v-else-if="column.type=='quarter'">
<div v-for="quarter in quarters">
<div v-if='scope.row[column.field]==quarter.id'>
{{quarter.value}}
</div>
</div>
</div>
</div>
<!-- <div v-if="column.field=='task_departments_report'">
<el-link type="primary">
{{scope.row["safety_task_departments_count"]+"/"+scope.row["safety_task_departments_report_count"]}}
</el-link>
</div> -->
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
@ -59,11 +77,11 @@
<el-row>
<el-col :span="8">
<el-form-item label="选择年份" prop="year" label-position="right">
<el-date-picker placeholder="选择年份" type="year" v-model="form.year" format="yyyy" value-format="yyyy">
<el-date-picker style="width:100%" placeholder="选择年份" type="year" v-model="form.year" format="yyyy" value-format="yyyy">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" :offset="4">
<el-col :span="8" :offset="8">
<el-form-item class="" label="季度" prop="quarter" label-position="right">
<el-select v-model="form.quarter" placeholder="请选择季度" style="width: 100%">
<el-option v-for="item in quarters" :key="item.id" :label="item.value" :value="item.id">
@ -91,7 +109,7 @@
<div style="display: flex;justify-content: flex-end;margin-right: 20px;margin-bottom: 10px;">
<Button type="primary" @click="addRow()" size="small" style="margin-left: 10px;" ghost>新增</Button>
</div>
<el-table :data="this.form.details_list" height="400" class="v-table"
<el-table :data="form.details_list" height="400" class="v-table"
style="width: 100%;margin-bottom: 20px;">
<el-table-column type="index" align="center">
</el-table-column>
@ -138,9 +156,9 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" :offset="4">
<el-col :span="8" :offset="8">
<el-form-item class="" label="检查日期" prop="date" label-position="right">
<el-date-picker type="date" v-model="check_form.date" value-format="yyyy-MM-dd HH:mm:ss">
<el-date-picker style="width:100%" type="date" v-model="check_form.date" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
</el-col>
@ -165,7 +183,7 @@
<Button type="primary" @click="addRow('check')" size="small" style="margin-left: 10px;"
ghost>新增</Button>
</div>
<el-table :data="this.check_form.details_list" height="400" class="v-table"
<el-table :data="check_form.details_list" height="400" class="v-table"
style="width: 100%;margin-bottom: 20px;">
<el-table-column type="index" align="center">
</el-table-column>
@ -306,34 +324,40 @@
trigger: 'blur'
}],
},
columns: [{
columns: [
{
field: "year",
title: "年份",
type: "string",
width: 180,
align:"left"
},{
field: "department_id",
title: "科室",
type: "department_id"
},
{
field: "year",
title: "年份",
type: "string",
width: 180
type: "department_id",
width:180,
align:"center"
},
{
field: "quarter",
title: "季度",
type: "quarter",
width: 180
width: 180,
align:"center"
},
{
field: "remark",
title: "备注",
width: 180,
width: 180,
align:"left"
},
{
field: "result",
field: "checks_count",
title: "是否已检查/检查详情",
type: "level",
width: 180
type: "string",
width: 180,
align:"center"
},
{
@ -361,7 +385,8 @@
field: "操作",
title: "操作",
width: 220,
type: "opt",
type: "opt",
fixed:'right'
}
],
quarters: [{
@ -440,7 +465,8 @@
load() {
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;
@ -646,7 +672,7 @@
.longtext .el-form-item__content {
margin-left: 0 !important;
width: 80%;
width: 100%;
}
.tableswidth table.el-table__header {

@ -26,15 +26,15 @@
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'||column.field=='department'">
<div v-if="column.field=='admin'||column.field=='department'||column.field=='maintenance_department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else-if="column.type=='level'" v-for="item in parameters.practiseLevel">
<!-- <div v-else-if="column.type=='level'" v-for="item in parameters.practiseLevel">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
</div>
</div>
</div> -->
<div v-else>{{scope.row[column.field]}}</div>
</template>
</el-table-column>
@ -52,72 +52,84 @@
<div class="dialogConcent" :style="{height:clientHeight+'px'}">
<el-scrollbar style="flex: 1">
<el-form :model="form" :rules="rules" ref="form" label-position="right" :label-width="formLabelWidth">
<el-row>
<el-col :span="18">
<el-form-item label="方案名称" prop="introduce">
<el-input type="text" :rows="3" v-model="form.introduce" placeholder="请填写方案名称"
autocomplete="off">
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="预案类型" prop="practise_unit" class="units">
<el-select v-model="form.practise_unit" placeholder="请选择科室,运维管理单位" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="运维管理单位" prop="practise_unit" class="units">
<el-select v-model="form.practise_unit" placeholder="请选择科室,运维管理单位" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="组织运维管理单位" prop="organize_unit" class="units">
<el-select v-model="form.organize_unit" placeholder="请选择组织运维管理单位" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="过程和描述" prop="introduce">
<el-input type="textarea" :rows="3" v-model="form.introduce" placeholder="请填写演练过程和描述"
autocomplete="off">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="附件" prop="file_list">
<el-upload class="upload-demo" :on-success="handlesuccess" :data="uploadOther"
action="/api/admin/upload-file" :on-remove="handleRemove" :before-remove="beforeRemove"
:on-exceed="handleExceed" :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
<el-row>
<el-col :span="8">
<el-form-item label="应急处置方案名称" prop="name" label-position="right" class="units">
<el-input v-model="form.name" placeholder="请填写应急处置方案名称" autocomplete="off"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="运维管理单位" prop="maintenance_department_id" class="units">
<el-select v-model="form.maintenance_department_id" placeholder="请选择科室,运维管理单位" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="级别" prop="level_id" label-position="right">
<el-select v-model="form.level_id" placeholder="请选择级别" style="width: 100%">
<el-option v-for="item in parameters.practiseLevel" :key="item.id" :label="item.value"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" :offset="8">
<el-form-item label="时间" prop="time">
<el-date-picker style="width:100%"
v-model="form.time"
type="datetime"
placeholder="选择时间"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="地点" prop="address" label-position="right">
<el-input v-model="form.address" placeholder="请填写地点" autocomplete="off"></el-input>
</el-form-item>
<el-row>
<el-col :span="8">
<el-form-item label="组织运维管理单位" prop="organize_department_id" class="units">
<el-select v-model="form.organize_department_id" placeholder="请选择组织运维管理单位" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" :offset="8">
<el-form-item label="负责人" prop="responsible_person" class="">
<el-select v-model="form.responsible_person" placeholder="请选择负责人" style="width: 100%">
<el-option v-for="item in userOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="参加部门和运维管理单位" prop="joins_list" class="units" label-position="right">
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">
</el-checkbox>
<div style="margin: 15px 0;"></div>
<el-checkbox-group v-model="form.joins_list" @change="handleCheckedDeptChange">
<el-checkbox v-for="dept in deptOptions" :label="dept.id" :key="dept.id">{{dept.name}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="过程和描述" prop="introduce">
<el-input type="textarea" :rows="3" v-model="form.introduce" placeholder="请填写过程和描述" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="附件" prop="file_list">
<el-upload class="upload-demo" :on-success="handlesuccess" :data="uploadOther"
action="/api/admin/upload-file" :on-remove="handleRemove" :before-remove="beforeRemove"
:on-exceed="handleExceed" :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<div class="form-sub-title form-sub-title-lab">
<span>预案评估</span>
<el-row>
<el-col :span="8">
<el-form-item label="适应性" prop="evaluate_plan_suit">
<el-radio v-for="item in this.evaluate.evaluate_plan_suit" v-model="form.evaluate_plan_suit"
:label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
<el-col :span="8" :offset="8">
<el-form-item label="充分性" prop="evaluate_plan_full">
<el-radio v-for="item in this.evaluate.evaluate_plan_full" v-model="form.evaluate_plan_full"
:label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
</el-row>
</div>
@ -179,44 +191,37 @@
formLabelWidth: "120px",
clientHeight: 0,
form: {
practise_unit: "",
level: "",
date: "",
address: "",
organize_unit: "",
name: "",
maintenance_department_id: "",
organize_department_id: "",
responsible_person: "",
introduce: "",
evaluate_plan_suit: 1,
evaluate_plan_full: 1,
evaluate_practise_join: 1,
evaluate_practise_material: 1,
evaluate_practise_protect: 1,
evaluate_direct_whole: 1,
evaluate_direct_divide: 1,
evaluate_cooperate_report: 1,
evaluate_cooperate_fire: 1,
evaluate_cooperate_medical: 1,
evaluate_cooperate_government: 1,
evaluate_cooperate_other: 1,
evaluate_cooperate_full: 1,
level_id: "",
time: "",
address: "",
file_list: "",
joins_list: []
},
fileList: [],
tableData: [],
rules: {
practise_unit: [{
rules: {
name: [{
required: true,
message: '请填写应急处置方案名称',
trigger: 'blur'
}],
maintenance_department_id: [{
required: true,
message: '请选择演练运维管理单位',
message: '请选择运维管理单位',
trigger: 'blur'
}],
level: [{
level_id: [{
required: true,
message: '请选择演练级别',
trigger: 'blur'
}],
organize_unit: [{
organize_department_id: [{
required: true,
message: '请选择组织运维管理单位',
trigger: 'blur'
@ -227,30 +232,31 @@
KeyWord: ""
},
columns: [{
field: "level",
title: "方案名称",
type: "level",
field: "name",
title: "应急处置方案",
type: "string",
align: "left",
width: 180
width: 240
},
{
field: "date",
title: "运维管理单位",
field: "time",
title: "时间",
type: "string",
width: 180,
align: "center",
},
{
field: "address",
title: "组织单位",
title: "地点",
type: "string",
align: "left"
align: "left",
width: 240
},
{
field: "practise_unit",
title: "负责人",
type: "unit",
width: 200,
field: "maintenance_department",
title: "运维管理单位",
type: "format",
width: 180,
align: "center",
},
{
@ -259,20 +265,20 @@
type: "string",
width: 180,
align: "center"
},
{
field: "admin",
title: "创建人",
type: "format",
width: 180,
align: "center"
},
{
field: "department",
title: "创建人科室",
type: "format",
width: 180,
align: "center"
},
{
field: "admin",
title: "创建人",
type: "format",
width: 180,
align: "center"
},
{
field: "department",
title: "创建人科室",
type: "format",
width: 180,
align: "center"
},
{
field: "操作",
@ -291,196 +297,6 @@
},
deptOptions: [],
userOptions: [],
evaluate: {
evaluate_plan_suit: [{
id: 1,
value: "全部能够执行"
},
{
id: 2,
value: "执行过程不够顺利"
},
{
id: 3,
value: "不适宜"
}
],
evaluate_plan_full: [{
id: 1,
value: "能满足应急要求"
},
{
id: 2,
value: "基本满足"
},
{
id: 3,
value: "必须修改"
}
],
evaluate_practise_join: [{
id: 1,
value: "好"
},
{
id: 2,
value: "较好"
},
{
id: 3,
value: "基本到位"
}, {
id: 4,
value: "不到位"
}
],
evaluate_practise_material: [{
id: 1,
value: "好"
},
{
id: 2,
value: "较好"
},
{
id: 3,
value: "基本到位"
}, {
id: 4,
value: "不到位"
}
],
evaluate_practise_protect: [{
id: 1,
value: "好"
},
{
id: 2,
value: "较好"
},
{
id: 3,
value: "基本到位"
}, {
id: 4,
value: "不到位"
}
],
evaluate_direct_whole: [{
id: 1,
value: "好"
},
{
id: 2,
value: "较好"
},
{
id: 3,
value: "基本到位"
}, {
id: 4,
value: "不到位"
}
],
evaluate_direct_divide: [{
id: 1,
value: "好"
},
{
id: 2,
value: "较好"
},
{
id: 3,
value: "基本到位"
}, {
id: 4,
value: "不到位"
}
],
evaluate_cooperate_report: [{
id: 1,
value: "报告及时"
},
{
id: 2,
value: "基本到位"
},
{
id: 3,
value: "联系不上"
}
],
evaluate_cooperate_fire: [{
id: 1,
value: "按照要求协作"
},
{
id: 2,
value: "基本到位"
},
{
id: 3,
value: "行动迟缓"
}
],
evaluate_cooperate_medical: [{
id: 1,
value: "按照要求协作"
},
{
id: 2,
value: "基本到位"
},
{
id: 3,
value: "行动迟缓"
}
],
evaluate_cooperate_government: [{
id: 1,
value: "按照要求协作"
},
{
id: 2,
value: "基本到位"
},
{
id: 3,
value: "不配合"
}
],
evaluate_cooperate_other: [{
id: 1,
value: "报告及时"
},
{
id: 2,
value: "基本到位"
},
{
id: 3,
value: "不配合"
}
],
evaluate_cooperate_full: [{
id: 1,
value: "优秀"
},
{
id: 2,
value: "良好"
},
{
id: 3,
value: "基本合格"
},
{
id: 4,
value: "不合格"
}
]
}
}
},
created() {
@ -530,7 +346,8 @@
load() {
list({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;
@ -566,7 +383,7 @@
let result = Object.assign(that.form, res);
that.form = result;
let _files = [];
for (var mod of result.practise_files) {
for (var mod of result.deal_files) {
let m = Object.assign({}, mod["files"]);
m.name = mod["files"].original_name;
_files.push(m);
@ -597,7 +414,9 @@
department_id: m
})
}
this.form.joins_list = arrs;
this.form.joins_list = arrs;
console.log("this.form",this.form)
// return;
this.$refs[formName].validate((valid) => {
if (valid) {
if (that.form.id) {

@ -25,10 +25,13 @@
style="margin-left: 10px;">编辑</Button>
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='level'" v-for="item in parameters.practiseLevel">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
<div v-else-if="column.type=='level'">
<div v-for="item in parameters.practiseLevel">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
</div>
</div>
</div>
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'">
@ -135,12 +138,12 @@
<el-row>
<el-col :span="8">
<el-form-item label="适应性" prop="evaluate_plan_suit">
<el-radio v-for="item in this.evaluate.evaluate_plan_suit" v-model="form.evaluate_plan_suit" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_plan_suit" v-model="form.evaluate_plan_suit" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
<el-col :span="8" :offset="8">
<el-form-item label="充分性" prop="evaluate_plan_full">
<el-radio v-for="item in this.evaluate.evaluate_plan_full" v-model="form.evaluate_plan_full" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_plan_full" v-model="form.evaluate_plan_full" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
</el-row>
@ -150,17 +153,17 @@
<el-row>
<el-col :span="8">
<el-form-item label="参加人员" prop="evaluate_practise_join">
<el-radio v-for="item in this.evaluate.evaluate_practise_join" v-model="form.evaluate_practise_join" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_practise_join" v-model="form.evaluate_practise_join" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
<el-col :span="8" :offset="8">
<el-form-item label="现场物资" prop="evaluate_practise_material">
<el-radio v-for="item in this.evaluate.evaluate_practise_material" v-model="form.evaluate_practise_material" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_practise_material" v-model="form.evaluate_practise_material" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="个人防护" prop="evaluate_practise_protect">
<el-radio v-for="item in this.evaluate.evaluate_practise_protect" v-model="form.evaluate_practise_protect" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_practise_protect" v-model="form.evaluate_practise_protect" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
</el-row>
@ -170,12 +173,12 @@
<el-row>
<el-col :span="8">
<el-form-item label="整体组织指挥" prop="evaluate_direct_whole">
<el-radio v-for="item in this.evaluate.evaluate_direct_whole" v-model="form.evaluate_direct_whole" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_direct_whole" v-model="form.evaluate_direct_whole" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
<el-col :span="8" :offset="8">
<el-form-item label="各抢险分工" prop="evaluate_direct_divide">
<el-radio v-for="item in this.evaluate.evaluate_direct_divide" v-model="form.evaluate_direct_divide" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_direct_divide" v-model="form.evaluate_direct_divide" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
</el-row>
@ -184,22 +187,22 @@
<span>协作评估
</span>
<el-form-item label="报告上级" prop="evaluate_cooperate_report">
<el-radio v-for="item in this.evaluate.evaluate_cooperate_report" v-model="form.evaluate_cooperate_report" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_cooperate_report" v-model="form.evaluate_cooperate_report" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
<el-form-item label="消防科室" prop="evaluate_cooperate_fire">
<el-radio v-for="item in this.evaluate.evaluate_cooperate_fire" v-model="form.evaluate_cooperate_fire" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_cooperate_fire" v-model="form.evaluate_cooperate_fire" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
<el-form-item label="医疗救援科室" prop="evaluate_cooperate_medical">
<el-radio v-for="item in this.evaluate.evaluate_cooperate_medical" v-model="form.evaluate_cooperate_medical" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_cooperate_medical" v-model="form.evaluate_cooperate_medical" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
<el-form-item label="周边政府配合" prop="evaluate_cooperate_government">
<el-radio v-for="item in this.evaluate.evaluate_cooperate_government" v-model="form.evaluate_cooperate_government" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_cooperate_government" v-model="form.evaluate_cooperate_government" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
<el-form-item label="其他参与运维管理单位" class="units" prop="evaluate_cooperate_other">
<el-radio v-for="item in this.evaluate.evaluate_cooperate_other" v-model="form.evaluate_cooperate_other" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_cooperate_other" v-model="form.evaluate_cooperate_other" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
<el-form-item label="总体评价" prop="evaluate_cooperate_full">
<el-radio v-for="item in this.evaluate.evaluate_cooperate_full" v-model="form.evaluate_cooperate_full" :label="item.id">{{item.value}}</el-radio>
<el-radio v-for="item in evaluate.evaluate_cooperate_full" v-model="form.evaluate_cooperate_full" :label="item.id">{{item.value}}</el-radio>
</el-form-item>
</div>
@ -311,38 +314,39 @@
searchFields: {
KeyWord: ""
},
columns: [{
columns: [
{
field: "date",
title: "演练时间",
type: "string",
width: 180,
align:"left",
},{
field: "level",
title: "演练级别",
type: "level",
align:"left",
align:"center",
width: 180
},
{
field: "date",
title: "演练时间",
type: "string",
width: 180,
align:"center",
},
{
field: "address",
title: "演练地点",
type: "string",
align:"left"
align:"left",
width:240
},
{
field: "practise_unit",
title: "演练运维管理单位",
type: "unit",
width: 200,
width: 180,
align:"center",
},
{
field: "introduce",
title: "描述",
type: "string",
width: 600,
width: 240,
},
{
field: "created_at",
@ -634,7 +638,8 @@
load() {
list({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;

@ -26,15 +26,15 @@
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'||column.field=='department'">
<div v-if="column.field=='admin'||column.field=='department'||column.field=='maintenance_department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else-if="column.type=='level'" v-for="item in parameters.practiseLevel">
<!-- <div v-else-if="column.type=='level'" v-for="item in parameters.practiseLevel">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
</div>
</div>
</div> -->
<div v-else>{{scope.row[column.field]}}</div>
</template>
</el-table-column>
@ -52,72 +52,59 @@
<div class="dialogConcent" :style="{height:clientHeight+'px'}">
<el-scrollbar style="flex: 1">
<el-form :model="form" :rules="rules" ref="form" label-position="right" :label-width="formLabelWidth">
<el-row>
<el-col :span="18">
<el-form-item label="方案名称" prop="introduce">
<el-input type="text" :rows="3" v-model="form.introduce" placeholder="请填写方案名称"
autocomplete="off">
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="预案类型" prop="practise_unit" class="units">
<el-select v-model="form.practise_unit" placeholder="请选择科室,运维管理单位" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="运维管理单位" prop="practise_unit" class="units">
<el-select v-model="form.practise_unit" placeholder="请选择科室,运维管理单位" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="组织运维管理单位" prop="organize_unit" class="units">
<el-select v-model="form.organize_unit" placeholder="请选择组织运维管理单位" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="过程和描述" prop="introduce">
<el-input type="textarea" :rows="3" v-model="form.introduce" placeholder="请填写演练过程和描述"
autocomplete="off">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="附件" prop="file_list">
<el-upload class="upload-demo" :on-success="handlesuccess" :data="uploadOther"
action="/api/admin/upload-file" :on-remove="handleRemove" :before-remove="beforeRemove"
:on-exceed="handleExceed" :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
<el-row>
<el-col :span="8">
<el-form-item label="应急预案方案名称" prop="name" label-position="right" class="units">
<el-input v-model="form.name" placeholder="请填写应急预案方案名称" autocomplete="off"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="运维管理单位" prop="maintenance_department_id" class="units">
<el-select v-model="form.maintenance_department_id" placeholder="请选择科室,运维管理单位" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="组织运维管理单位" prop="organize_department_id" class="units">
<el-select v-model="form.organize_department_id" placeholder="请选择组织运维管理单位" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" :offset="8">
<el-form-item label="负责人" prop="responsible_person" class="">
<el-select v-model="form.responsible_person" placeholder="请选择负责人" style="width: 100%">
<el-option v-for="item in userOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="参加部门和运维管理单位" prop="joins_list" class="units" label-position="right">
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">
</el-checkbox>
<div style="margin: 15px 0;"></div>
<el-checkbox-group v-model="form.joins_list" @change="handleCheckedDeptChange">
<el-checkbox v-for="dept in deptOptions" :label="dept.id" :key="dept.id">{{dept.name}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="过程和描述" prop="introduce">
<el-input type="textarea" :rows="3" v-model="form.introduce" placeholder="请填写过程和描述" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="附件" prop="file_list">
<el-upload class="upload-demo" :on-success="handlesuccess" :data="uploadOther"
action="/api/admin/upload-file" :on-remove="handleRemove" :before-remove="beforeRemove"
:on-exceed="handleExceed" :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<div class="form-sub-title form-sub-title-lab">
<span>预案评估</span>
<el-row>
<el-col :span="8">
<el-form-item label="适应性" prop="evaluate_plan_suit">
<el-radio v-for="item in this.evaluate.evaluate_plan_suit" v-model="form.evaluate_plan_suit"
:label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
<el-col :span="8" :offset="8">
<el-form-item label="充分性" prop="evaluate_plan_full">
<el-radio v-for="item in this.evaluate.evaluate_plan_full" v-model="form.evaluate_plan_full"
:label="item.id">{{item.value}}</el-radio>
</el-form-item>
</el-col>
</el-row>
</div>
@ -148,9 +135,9 @@
get,
list
} from "../../api/practise/plan.js";
import {
getparameteritem
} from "../../api/system/dictionary.js";
// import {
// getparameteritem
// } from "../../api/system/dictionary.js";
import {
listdept
} from "../../api/system/department.js";
@ -179,44 +166,29 @@
formLabelWidth: "120px",
clientHeight: 0,
form: {
practise_unit: "",
level: "",
date: "",
address: "",
organize_unit: "",
name: "",
maintenance_department_id: "",
organize_department_id: "",
responsible_person: "",
introduce: "",
evaluate_plan_suit: 1,
evaluate_plan_full: 1,
evaluate_practise_join: 1,
evaluate_practise_material: 1,
evaluate_practise_protect: 1,
evaluate_direct_whole: 1,
evaluate_direct_divide: 1,
evaluate_cooperate_report: 1,
evaluate_cooperate_fire: 1,
evaluate_cooperate_medical: 1,
evaluate_cooperate_government: 1,
evaluate_cooperate_other: 1,
evaluate_cooperate_full: 1,
file_list: "",
joins_list: []
},
fileList: [],
tableData: [],
rules: {
practise_unit: [{
required: true,
message: '请选择演练运维管理单位',
trigger: 'blur'
rules: {
name: [{
required: true,
message: '请填写应急预案方案名称',
trigger: 'blur'
}],
level: [{
maintenance_department_id: [{
required: true,
message: '请选择演练级别',
message: '请选择运维管理单位',
trigger: 'blur'
}],
organize_unit: [{
organize_department_id: [{
required: true,
message: '请选择组织运维管理单位',
trigger: 'blur'
@ -227,59 +199,45 @@
KeyWord: ""
},
columns: [{
field: "level",
title: "方案名称",
type: "level",
field: "name",
title: "应急预案方案",
type: "string",
align: "left",
width: 180
},
{
field: "date",
field: "maintenance_department",
title: "运维管理单位",
type: "string",
type: "format",
width: 180,
align: "center",
},
{
field: "address",
title: "组织单位",
type: "string",
align: "left"
},
{
field: "practise_unit",
title: "负责人",
type: "unit",
width: 200,
align: "center",
},
{
field: "created_at",
title: "创建时间",
type: "string",
width: 180,
align: "center"
},
{
field: "admin",
title: "创建人",
type: "format",
width: 180,
align: "center"
},
{
field: "department",
title: "创建人科室",
type: "format",
width: 180,
align: "center"
},
{
field: "admin",
title: "创建人",
type: "format",
width: 180,
align: "center"
},
{
field: "department",
title: "创建人科室",
type: "format",
width: 180,
align: "center"
},
{
field: "操作",
title: "操作",
width: 220,
type: "opt",
fixed: "right"
// fixed: "right"
}
],
//
@ -291,196 +249,6 @@
},
deptOptions: [],
userOptions: [],
evaluate: {
evaluate_plan_suit: [{
id: 1,
value: "全部能够执行"
},
{
id: 2,
value: "执行过程不够顺利"
},
{
id: 3,
value: "不适宜"
}
],
evaluate_plan_full: [{
id: 1,
value: "能满足应急要求"
},
{
id: 2,
value: "基本满足"
},
{
id: 3,
value: "必须修改"
}
],
evaluate_practise_join: [{
id: 1,
value: "好"
},
{
id: 2,
value: "较好"
},
{
id: 3,
value: "基本到位"
}, {
id: 4,
value: "不到位"
}
],
evaluate_practise_material: [{
id: 1,
value: "好"
},
{
id: 2,
value: "较好"
},
{
id: 3,
value: "基本到位"
}, {
id: 4,
value: "不到位"
}
],
evaluate_practise_protect: [{
id: 1,
value: "好"
},
{
id: 2,
value: "较好"
},
{
id: 3,
value: "基本到位"
}, {
id: 4,
value: "不到位"
}
],
evaluate_direct_whole: [{
id: 1,
value: "好"
},
{
id: 2,
value: "较好"
},
{
id: 3,
value: "基本到位"
}, {
id: 4,
value: "不到位"
}
],
evaluate_direct_divide: [{
id: 1,
value: "好"
},
{
id: 2,
value: "较好"
},
{
id: 3,
value: "基本到位"
}, {
id: 4,
value: "不到位"
}
],
evaluate_cooperate_report: [{
id: 1,
value: "报告及时"
},
{
id: 2,
value: "基本到位"
},
{
id: 3,
value: "联系不上"
}
],
evaluate_cooperate_fire: [{
id: 1,
value: "按照要求协作"
},
{
id: 2,
value: "基本到位"
},
{
id: 3,
value: "行动迟缓"
}
],
evaluate_cooperate_medical: [{
id: 1,
value: "按照要求协作"
},
{
id: 2,
value: "基本到位"
},
{
id: 3,
value: "行动迟缓"
}
],
evaluate_cooperate_government: [{
id: 1,
value: "按照要求协作"
},
{
id: 2,
value: "基本到位"
},
{
id: 3,
value: "不配合"
}
],
evaluate_cooperate_other: [{
id: 1,
value: "报告及时"
},
{
id: 2,
value: "基本到位"
},
{
id: 3,
value: "不配合"
}
],
evaluate_cooperate_full: [{
id: 1,
value: "优秀"
},
{
id: 2,
value: "良好"
},
{
id: 3,
value: "基本合格"
},
{
id: 4,
value: "不合格"
}
]
}
}
},
created() {
@ -518,10 +286,10 @@
var topHeight = 50; //
let tableHeight = clientHeight - lxHeader_height - topHeight - paginationHeight - 20;
that.tableHeight = tableHeight;
//
getparameteritem("practiseLevel").then(res => {
this.parameters.practiseLevel = res.detail;
});
// //
// getparameteritem("practiseLevel").then(res => {
// this.parameters.practiseLevel = res.detail;
// });
},
handleCurrentChange(page) {
this.paginations.page = page;
@ -530,7 +298,8 @@
load() {
list({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;
@ -566,7 +335,7 @@
let result = Object.assign(that.form, res);
that.form = result;
let _files = [];
for (var mod of result.practise_files) {
for (var mod of result.plan_files) {
let m = Object.assign({}, mod["files"]);
m.name = mod["files"].original_name;
_files.push(m);
@ -597,7 +366,9 @@
department_id: m
})
}
this.form.joins_list = arrs;
this.form.joins_list = arrs;
console.log("this.form",this.form)
// return;
this.$refs[formName].validate((valid) => {
if (valid) {
if (that.form.id) {

@ -16,18 +16,25 @@
</div>
<div ref="lxTable">
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" width="50" align="center"> </el-table-column>
<el-table-column type="index" width="50" align="center" fixed="left"> </el-table-column>
<el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns"
:label="column.title" :width="column.width">
:label="column.title" :width="column.width" :fixed="column.fixed">
<template slot-scope="scope">
<div v-if="column.type=='opt'">
<Button ghost size="small" @click="edit(scope.row)" type="primary"
style="margin-left: 10px;">编辑</Button>
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='level'" v-for="hazard in parameters.hazardLevel">
<div v-if='scope.row[column.field]==hazard.id'>
{{hazard.value}}
<div v-else-if="column.type=='level'">
<div v-for="hazard in parameters.hazardLevel">
<div v-if='scope.row[column.field]==hazard.id'>
{{hazard.value}}
</div>
</div>
</div>
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'||column.field=='department'||column.field=='maintenance_department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else>{{scope.row[column.field]}}</div>
@ -67,7 +74,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" :offset="6">
<el-col :span="8" :offset="8">
<el-form-item label="辨识方法" prop="distinguish">
<el-input v-model="form.distinguish" placeholder="请填写辨识方法" autocomplete="off"></el-input>
</el-form-item>
@ -209,19 +216,21 @@
columns: [{
field: "name",
title: "名称",
type: "string"
type: "string",
width:240
},
{
field: "address",
title: "地点",
type: "string",
width: 180
width: 240
},
{
field: "unit",
title: "科室",
type: "string",
width: 180
width: 180,
align:'center'
},
{
@ -239,16 +248,16 @@
align: "center"
},
{
field: "created_at",
field: "admin",
title: "创建人",
type: "string",
type: "format",
width: 180,
align: "center"
},
{
field: "created_at_dept",
field: "department",
title: "创建人科室",
type: "string",
type: "format",
width: 180,
align: "center"
},
@ -256,7 +265,8 @@
field: "操作",
title: "操作",
width: 220,
type: "opt",
type: "opt",
fixed:'right'
}
],
uploadOther: {
@ -302,7 +312,8 @@
load() {
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;

@ -16,23 +16,32 @@
</div>
<div ref="lxTable">
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" width="50" align="center"> </el-table-column>
<el-table-column type="index" width="50" align="center" fixed="left"> </el-table-column>
<el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns"
:label="column.title" :width="column.width">
:label="column.title" :width="column.width" :fixed="column.fixed">
<template slot-scope="scope">
<div v-if="column.type=='opt'">
<Button ghost size="small" @click="edit(scope.row)" type="primary"
style="margin-left: 10px;">编辑</Button>
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='level'" v-for="hidden in parameters.hiddenLevel">
<div v-if='scope.row[column.field]==hidden.id'>
{{hidden.value}}
<div v-else-if="column.type=='level'">
<div v-for="hidden in parameters.hiddenLevel">
<div v-if='scope.row[column.field]==hidden.id'>
{{hidden.value}}
</div>
</div>
</div>
<div v-else-if="column.type=='type'" v-for="hidden in parameters.hiddenType">
<div v-if='scope.row[column.field]==hidden.id'>
{{hidden.value}}
<div v-else-if="column.type=='type'">
<div v-for="hidden in parameters.hiddenType">
<div v-if='scope.row[column.field]==hidden.id'>
{{hidden.value}}
</div>
</div>
</div>
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'||column.field=='department'||column.field=='maintenance_department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else>{{scope.row[column.field]}}</div>
@ -72,7 +81,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" :offset="6">
<el-col :span="8" :offset="8">
<el-form-item label="隐患类别" prop="type">
<el-select v-model="form.type" placeholder="请选择隐患类别" style="width: 100%">
<el-option v-for="item in parameters.hiddenType" :key="item.id" :label="item.value"
@ -85,12 +94,12 @@
<el-row>
<el-col :span="8">
<el-form-item label="排查日期" prop="date">
<el-date-picker type="date" v-model="form.date" value-format="yyyy-MM-dd HH:mm:ss"
<el-date-picker type="date" style='width: 100%;' v-model="form.date" value-format="yyyy-MM-dd"
start-placeholder="排查日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" :offset="6">
<el-col :span="8" :offset="8">
<el-form-item label="排查负责人" prop="unit" class="">
<el-select v-model="form.responsible_person" placeholder="请选择排查负责人" style="width: 100%">
<el-option v-for="item in userOptions" :key="item.id" :label="item.name" :value="item.name">
@ -117,7 +126,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" :offset="6">
<el-col :span="8" :offset="8">
<el-form-item label="复查人" prop="review_person" class="">
<el-select v-model="form.review_person" placeholder="请选择复查人" style="width: 100%">
<el-option v-for="item in userOptions" :key="item.id" :label="item.name" :value="item.name">
@ -262,7 +271,8 @@
columns: [{
field: "date",
title: "排查日期",
type: "string"
type: "string",
width:180,
},
{
field: "responsible_person",
@ -286,7 +296,7 @@
field: "introduce",
title: "简述",
type: "string",
width: 180,
width: 240,
},
{
field: "created_at",
@ -296,16 +306,16 @@
align: "center"
},
{
field: "created_at",
field: "admin",
title: "创建人",
type: "string",
type: "format",
width: 180,
align: "center"
},
{
field: "created_at_dept",
field: "department",
title: "创建人科室",
type: "string",
type: "format",
width: 180,
align: "center"
},
@ -313,7 +323,8 @@
field: "操作",
title: "操作",
width: 220,
type: "opt",
type: "opt",
fixed:'right'
}
],
uploadOther: {
@ -374,7 +385,8 @@
load() {
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;

@ -16,23 +16,34 @@
</div>
<div ref="lxTable">
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" width="50" align="center"> </el-table-column>
<el-table-column type="index" width="50" align="center" fixed="left"> </el-table-column>
<el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns"
:label="column.title" :width="column.width">
:label="column.title" :width="column.width" :fixed="column.fixed">
<template slot-scope="scope">
<div v-if="column.type=='opt'">
<Button ghost size="small" @click="edit(scope.row)" type="primary"
style="margin-left: 10px;">编辑</Button>
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='level'" v-for="risklevel in parameters.riskLevel">
<div v-if='scope.row[column.field]==risklevel.id'>
{{risklevel.value}}
<div v-else-if="column.type=='level'">
<div v-for="risklevel in parameters.riskLevel">
<div v-if='scope.row[column.field]==risklevel.id'>
{{risklevel.value}}
</div>
</div>
</div>
<div v-else-if="column.type=='type'">
<div v-for="risktype in parameters.riskType">
<div v-if='scope.row[column.field]==risktype.id'>
{{risktype.value}}
</div>
</div>
</div>
<div v-else-if="column.type=='type'" v-for="risktype in parameters.riskType">
<div v-if='scope.row[column.field]==risktype.id'>
{{risktype.value}}
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'||column.field=='department'||column.field=='maintenance_department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else>{{scope.row[column.field]}}</div>
@ -62,7 +73,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" :offset="4">
<el-col :span="8" :offset="8">
<el-form-item label="名称" prop="name">
<el-input v-model="form.name" placeholder="请填写名称" autocomplete="off"></el-input>
</el-form-item>
@ -103,7 +114,7 @@
<div style="display: flex;justify-content: flex-end;margin-right: 20px;margin-bottom: 10px;">
<Button type="primary" @click="addRow()" size="small" style="margin-left: 10px;" ghost>新增</Button>
</div>
<el-table :data="this.form.details_list" height="400" class="v-table" style="width: 100%;margin-bottom: 20px;">
<el-table :data="form.details_list" height="400" class="v-table" style="width: 100%;margin-bottom: 20px;">
<el-table-column type="index" align="center">
</el-table-column>
@ -242,33 +253,35 @@
}],
},
columns: [{
field: "type",
title: "类别",
type: "type"
},
{
field: "name",
title: "名称",
type: "string",
width: 180
width: 240
},{
field: "type",
title: "类别",
type: "type",
width:180,
align:'center'
},
{
field: "overview",
title: "风险分析综述",
type: "string",
width: 180
width: 240
},
{
field: "measure",
title: "控制措施描述",
width: 180,
width: 240,
},
{
field: "level",
title: "控制等级",
type: "level",
width: 180
width: 180,
align:"center"
},
{
@ -279,16 +292,16 @@
align: "center"
},
{
field: "created_at",
field: "admin",
title: "创建人",
type: "string",
type: "format",
width: 180,
align: "center"
},
{
field: "created_at_dept",
field: "department",
title: "创建人科室",
type: "string",
type: "format",
width: 180,
align: "center"
},
@ -296,7 +309,8 @@
field: "操作",
title: "操作",
width: 220,
type: "opt",
type: "opt",
fixed:'right'
}
],
uploadOther: {
@ -351,7 +365,8 @@
load() {
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;
@ -499,6 +514,6 @@
.uploads .el-form-item__content{
margin-left: 90px!important;
}
</style>

@ -16,9 +16,9 @@
</div>
<div ref="lxTable">
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" width="50" align="center"> </el-table-column>
<el-table-column type="index" width="50" align="center" fixed="left"> </el-table-column>
<el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns"
:label="column.title" :width="column.width">
:label="column.title" :width="column.width" :fixed="column.fixed">
<template slot-scope="scope">
<div v-if="column.type=='opt'">
<Button ghost size="small" @click="edit(scope.row)" type="primary"
@ -27,9 +27,17 @@
<Button ghost size="small" @click="editMain(scope.row)" type="primary"
style="margin-left: 10px;">维保</Button>
</div>
<div v-else-if="column.type=='defect_type'" v-for="item in parameters.defectType">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
<div v-else-if="column.type=='defect_type'">
<div v-for="item in parameters.defectType">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
</div>
</div>
</div>
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'||column.field=='department'||column.field=='maintenance_department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else>{{scope.row[column.field]}}</div>
@ -268,7 +276,9 @@
columns: [{
field: "name",
title: "设备设施名称",
type: "string",
type: "string",
width:240,
align:'left'
},
{
field: "discover_time",
@ -289,7 +299,7 @@
field: "discover_person",
title: "发现人",
type: "string",
width: 120,
width: 180,
align: "center"
},
{
@ -307,16 +317,16 @@
align: "center"
},
{
field: "created_at",
field: "admin",
title: "创建人",
type: "string",
type: "format",
width: 180,
align: "center"
},
{
field: "created_at_dept",
field: "department",
title: "创建人科室",
type: "string",
type: "format",
width: 180,
align: "center"
},
@ -324,7 +334,8 @@
field: "操作",
title: "操作",
type: "opt",
width: 220,
width: 220,
fixed:'right'
}
],
uploadOther: {
@ -364,7 +375,8 @@
load() {
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;

@ -16,24 +16,30 @@
</div>
<div ref="lxTable">
<el-table :data="tableData" class="v-table" :height="tableHeight" style="width: 100%">
<el-table-column type="index" width="50" align="center"> </el-table-column>
<el-table-column type="index" width="50" align="center" fixed="left"> </el-table-column>
<el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns"
:label="column.title" :width="column.width">
:label="column.title" :width="column.width" :fixed="column.fixed">
<template slot-scope="scope">
<div v-if="column.type=='opt'">
<Button ghost size="small" @click="edit(scope.row)" type="primary"
style="margin-left: 10px;">编辑</Button>
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='dangerType'" v-for="item in parameters.dangerType">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
<div v-else-if="column.type=='dangerType'">
<div v-for="item in parameters.dangerType">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
</div>
</div>
</div>
<div v-else-if="column.type=='dangerLevel'" v-for="item in parameters.dangerLevel">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
<div v-else-if="column.type=='dangerLevel'">
<div v-for="item in parameters.dangerLevel">
<div v-if='scope.row[column.field]==item.id'>
{{item.value}}
</div>
</div>
</div>
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'">
@ -43,10 +49,13 @@
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else-if="column.type=='unit'" v-for="item in deptOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
<div v-else-if="column.type=='unit'">
<div v-for="item in deptOptions">
<div v-if='scope.row[column.field]==item.id'>
{{item.name}}
</div>
</div>
</div>
<div v-else>{{scope.row[column.field]}}</div>
</template>
@ -270,17 +279,17 @@
}],
},
columns: [{
field: "danger_type",
title: "职业危害类型",
type: "dangerType",
align:"center"
},
{
field: "date",
title: "辨识日期",
type: "string",
width: 180,
align:"center"
align:"left"
},{
field: "danger_type",
title: "职业危害类型",
type: "dangerType",
align:"center",
width:180
},
{
field: "danger_level",
@ -328,7 +337,8 @@
field: "操作",
title: "操作",
width: 220,
type: "opt",
type: "opt",
fixed:"right"
}
],
uploadOther: {
@ -393,7 +403,8 @@
load() {
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;

@ -16,9 +16,9 @@
</div>
<div ref="lxTable">
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"> </el-table-column>
<el-table-column type="index" width="50" align="center" label="序号" fixed='left'> </el-table-column>
<el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns"
:label="column.title" :width="column.width">
:label="column.title" :width="column.width" :fixed="column.fixed">
<template slot-scope="scope">
<div v-if="column.type=='opt'">
<Button ghost size="small" @click="edit(scope.row)" type="primary"
@ -230,8 +230,8 @@
field: "name",
title: "项目名称",
type: "string",
align: "center",
width: 180,
align: "left",
width: 240,
},
{
field: "date",
@ -244,19 +244,22 @@
field: "address",
title: "检查地点",
type: "string",
align: "center"
align: "left",
width: 240,
},
{
field: "build_unit",
title: "建设单位",
type: "string",
align: "center"
align: "left",
width: 180,
},
{
field: "carry_unit",
title: "施工单位",
type: "string",
align: "center"
align: "left",
width: 180,
},
{
field: "created_at",
@ -283,7 +286,8 @@
field: "操作",
title: "操作",
width: 220,
type: "opt",
type: "opt",
fixed:'right'
}
],
uploadOther: {
@ -331,7 +335,8 @@
load() {
listtask({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;

@ -20,16 +20,25 @@
<el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns"
:label="column.title" :width="column.width" :fixed="column.fixed">
<template slot-scope="scope">
<div v-if="column.type=='opt'">
<Button ghost size="small" @click="edit(scope.row)" type="primary"
<div v-if="column.type=='opt'">
<Button v-if="scope.row['status']==1" ghost size="small" @click="show(scope.row)" type="primary"
style="margin-left: 10px;">查看</Button>
<Button v-if="scope.row['status']==0" ghost size="small" @click="edit(scope.row)" type="primary"
style="margin-left: 10px;">编辑</Button>
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div>
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'||column.field=='department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else-if="column.type=='status'">
<el-tag :type="scope.row[column.field]==1?'':'warning'">{{scope.row['statusName']}}</el-tag>
</div>
<div v-else-if="column.type=='format'">
<div v-if="column.field=='admin'||column.field=='department'||column.field=='maintenance_department'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else-if="column.type=='peoples'">
<el-tag style="margin-right:5px" v-for="item in scope.row[column.field]">{{item}}</el-tag>
</div>
<div v-else>{{scope.row[column.field]}}</div>
</template>
@ -44,84 +53,166 @@
</div>
<el-dialog title="科室活动记录编辑" :visible.sync="dialogFormVisible" fullscreen width="90%">
<el-dialog title="科室活动记录" :visible.sync="dialogShowFormVisible" fullscreen width="90%">
<div class="dialogConcent" :style="{height:clientHeight+'px'}">
<el-scrollbar style="flex: 1">
<el-form :model="form" :rules="rules" ref="form" :label-width="formLabelWidth">
<el-form :model="form" ref="form" :label-width="formLabelWidth">
<el-row>
<el-col :span="24">
<div class="form-sub-title">基本信息</div>
</el-col>
<el-col :span="24">
<el-form-item label="活动名称" prop="name">
<el-input v-model="form.name" placeholder="请填写活动名称" autocomplete="off"></el-input>
<el-form-item label="活动名称" prop="name">
{{form.name}}
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="10">
<el-form-item label="活动日期" prop="date">
<el-date-picker type="datetime" value-format="yyyy-MM-dd" format="yyyy-MM-dd"
v-model="form.date" placeholder="请填写活动日期" autocomplete="off">
</el-date-picker>
{{form.date}}
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="活动地点" prop="address">
<el-input v-model="form.address" placeholder="请填写活动地点" autocomplete="off"></el-input>
<el-col :span="10" :offset="4">
<el-form-item label="活动地点" prop="address">
{{form.address}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="活动内容" prop="content">
<el-input v-model="form.content" placeholder="请填写活动内容" type="textarea" autocomplete="off"></el-input>
<el-form-item label="活动内容" prop="content">
{{form.content}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="参与人员" prop="people_list">
<el-transfer filterable :titles="['待选择', '已选择']" :props="{key: 'id',label: 'name'}"
:filter-method="filterMethod" :format="{ noChecked: '${total}',hasChecked: '${checked}/${total}' }"
filter-placeholder="请选择参与人员" v-model="form.people_list" :data="userdata">
</el-transfer>
<el-form-item label="参与人员" prop="joins_list">
<el-tag style="margin-right:5px" v-for="item in peoplesshow">{{item}}</el-tag>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件" prop="file_list" label-position="top">
<el-upload class="upload-demo" :on-success="handlesuccess" :data="uploadOther"
action="/api/admin/upload-file" :on-remove="handleRemove" :before-remove="beforeRemove"
:on-exceed="handleExceed" :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
<el-form-item label="附件" prop="file_list" label-position="top">
<el-link type="primary" v-for="item in fileList">{{item.name}}</el-link>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="24">
<div class="form-sub-title">活动结果</div>
</el-col>
<el-col :span="24">
<el-form-item label="是否办结" prop="status" label-position="top">
<el-tag type="" v-if="form.status==1"></el-tag>
<el-tag type="warning" v-if="form.status==0"></el-tag>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="已办结" prop="end_content" label-position="top">
<el-input v-model="form.end_content" type="textarea" placeholder="请填写培训效果评估" autocomplete="off"></el-input>
<el-col :span="24" v-if="form.status==1">
<el-form-item label="已办结" prop="end_content" label-position="top">
{{form.end_content}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="未办结" prop="no_end_content" label-position="top">
<el-input v-model="form.no_end_content" type="textarea" placeholder="请填写评估人" autocomplete="off"></el-input>
<el-col :span="24" v-if="form.status==0">
<el-form-item label="未办结" prop="no_end_content" label-position="top">
{{form.no_end_content}}
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-scrollbar>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="resetForm('form')"> </el-button>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="resetForm('form')"> </el-button>
<el-button type="primary" v-preventReClick @click="submitForm('form')"> </el-button>
</div>
</el-dialog>
<el-dialog title="科室活动记录编辑" :visible.sync="dialogFormVisible" fullscreen width="90%">
<div class="dialogConcent" :style="{height:clientHeight+'px'}">
<el-scrollbar style="flex: 1">
<el-form :model="form" :rules="rules" ref="form" :label-width="formLabelWidth">
<el-row>
<el-col :span="24">
<div class="form-sub-title">基本信息</div>
</el-col>
<el-col :span="24">
<el-form-item label="活动名称" prop="name">
<el-input v-model="form.name" placeholder="请填写活动名称" autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="活动日期" prop="date">
<el-date-picker style="width:100%" type="date" value-format="yyyy-MM-dd" format="yyyy-MM-dd"
v-model="form.date" placeholder="请填写活动日期" autocomplete="off">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10" :offset="4">
<el-form-item label="活动地点" prop="address">
<el-input v-model="form.address" placeholder="请填写活动地点" autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="活动内容" prop="content">
<el-input v-model="form.content" placeholder="请填写活动内容" type="textarea" autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="参与人员" prop="joins_list">
<el-transfer filterable :titles="['待选择', '已选择']" :props="{key: 'id',label: 'name'}"
:filter-method="filterMethod" :format="{ noChecked: '${total}',hasChecked: '${checked}/${total}' }"
filter-placeholder="请选择参与人员" v-model="form.joins_list" :data="userdata">
</el-transfer>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件" prop="file_list" label-position="top">
<el-upload class="upload-demo" :on-success="handlesuccess" :data="uploadOther"
action="/api/admin/upload-file" :on-remove="handleRemove" :before-remove="beforeRemove"
:on-exceed="handleExceed" :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="24">
<div class="form-sub-title">活动结果</div>
</el-col>
<el-col :span="24">
<el-form-item label="是否办结" prop="status" label-position="top">
<el-radio-group v-model="form.status">
<el-radio :label="1">已办结</el-radio>
<el-radio :label="0">未办结</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.status==1">
<el-form-item label="已办结" prop="end_content" label-position="top">
<el-input v-model="form.end_content" type="textarea" placeholder="请填写培训效果评估" autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.status==0">
<el-form-item label="未办结" prop="no_end_content" label-position="top">
<el-input v-model="form.no_end_content" type="textarea" placeholder="请填写评估人" autocomplete="off"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-scrollbar>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="resetForm('form')"> </el-button>
<el-button type="primary" v-preventReClick @click="submitForm('form')"> </el-button>
</div>
</el-dialog>
@ -134,12 +225,12 @@
} from '@/utils/auth';
import LxHeader from "@/components/LxHeader/index.vue";
import {
listtrainlog,
listevent,
store,
save,
get,
del
} from "../../api/training/record.js";
} from "../../api/training/event.js";
import {
listCommondepartment,
@ -152,19 +243,6 @@
},
data() {
return {
evaluateOptions: [{
id: 1,
name: "考试"
}, {
id: 2,
name: "课堂评价"
}, {
id: 3,
name: "事后检查"
}, {
id: 4,
name: "实际操作"
}],
paginations: {
page: 1,
page_size: 15,
@ -175,10 +253,12 @@
return item.name.indexOf(query) > -1;
},
tableHeight: 0,
dialogFormVisible: false,
dialogFormVisible: false,
dialogShowFormVisible:false,
formLabelWidth: "120px",
clientHeight: 0,
form: {
form: {
status:1,
name: "",
date: "",
address: "",
@ -186,40 +266,24 @@
end_content: "",
no_end_content: "",
joins_list: [],
files_list: [],
id: ""
file_list:''
},
fileList: [],
tableData: [],
rules: {
name: [{
required: true,
message: '请填写培训名称',
message: '请填写活动名称',
trigger: 'blur'
}],
time: [{
date: [{
required: true,
message: '请选择培训时间',
message: '请选择活动时间',
trigger: 'change'
}],
period: [{
required: true,
message: '请输入课时',
trigger: 'blur'
}],
address: [{
required: true,
message: '请输入培训地点',
trigger: 'blur'
}],
unit: [{
required: true,
message: '请选择单位科室',
trigger: 'change'
}],
teacher: [{
required: true,
message: '请输入授课人',
message: '请填写活动地点',
trigger: 'blur'
}]
},
@ -229,49 +293,58 @@
},
columns: [{
field: "name",
title: "培训名称",
type: "string"
title: "活动名称",
type: "string",
width:240
},
{
field: "time",
title: "培训时间",
type: "string",
field: "date",
title: "活动时间",
type: "string",
align:"center",
width: 180
},
{
field: "unit",
title: "科室",
field: "address",
title: "活动地点",
type: "string",
width: 180
width: 240
},
{
field: "period",
title: "课时",
type: "int",
width: 80,
align: "center"
},
{
field: "created_at",
title: "创建时间",
type: "string",
width: 180,
align: "center"
},
{
field: "admin",
title: "创建人",
type: "format",
width: 180,
align: "center"
},
{
field: "department",
title: "创建人科室",
type: "format",
width: 180,
align: "center"
field: "peoples",
title: "参与人员",
type: "peoples",
width: 300,
align: "left"
},
{
field: "status",
title: "办结状态",
type: "status",
width: 180,
align: "center"
},
{
field: "created_at",
title: "创建时间",
type: "string",
width: 180,
align: "center"
},
{
field: "admin",
title: "创建人",
type: "format",
width: 180,
align: "center"
},
{
field: "department",
title: "创建人科室",
type: "format",
width: 180,
align: "center"
},
{
field: "操作",
@ -284,7 +357,8 @@
uploadOther: {
token: ""
},
deptOptions: []
deptOptions: [],
peoplesshow:[]
}
},
created() {
@ -315,20 +389,6 @@
console.log(error)
})
},
handleCheckAllChange(val) {
console.log(val)
let options = [];
for (var m of this.deptOptions) {
options.push(m.id);
}
this.form.department_list = val ? options : [];
this.isIndeterminate = false;
},
handleCheckedDeptChange(value) {
let checkedCount = value.length;
this.checkAll = checkedCount === this.deptOptions.length;
this.isIndeterminate = checkedCount > 0 && checkedCount < this.deptOptions.length;
},
initLoad() {
var that = this;
var clientHeight = document.documentElement.clientHeight
@ -348,10 +408,22 @@
this.load();
},
load() {
listtrainlog({
listevent({
page: this.paginations.page,
page_size: this.paginations.page_size,
}).then(response => {
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
for(var m of response.data){
let list = []
if(m.department_activity_joins){
for(var k of m.department_activity_joins){
list.push(k.admin.name)
}
m.peoples = list
}
m.statusName = m.status==0?"未办结":"已办结"
}
this.tableData = response.data;
this.paginations.total = response.total;
}).catch(error => {
@ -380,26 +452,36 @@
});
}
},
show(obj) {
this.clientHeight = document.documentElement.clientHeight - 84 - 110;
this.dialogViewVisible = true;
this.info(obj);
},
info(obj) {
var that = this;
get(obj.id).then(res => {
let result = Object.assign(that.form, res);
that.form = result;
for (var m of res.people) {
if (m.admin)
that.form.people_list.push(m.admin.id)
that.form = result;
let _files = [];
for (var mod of result.department_activity_files) {
let m = Object.assign({}, mod["files"]);
m.name = mod["files"].original_name;
m.id=mod["files"].i;
_files.push(m);
}
that.fileList = _files;
for (var m of result.department_activity_joins) {
if (m.admin)
that.form.joins_list.push(m.admin.id)
that.peoplesshow.push(m.admin.name)
}
}).catch(error => {
//reject(error)
})
},
show(obj){
this.form = this.$options.data().form;
this.clientHeight = document.documentElement.clientHeight - 84 - 110;
var that = this;
that.info(obj);
this.dialogShowFormVisible = true;
this.dialogFormVisible = false
},
edit(obj) {
this.form = this.$options.data().form;
@ -408,21 +490,24 @@
var that = this;
that.info(obj);
} else {}
this.dialogFormVisible = true;
this.dialogFormVisible = true;
this.dialogShowFormVisible = false;
},
submitForm(formName) {
var that = this;
this.$refs[formName].validate((valid) => {
if (valid) {
var arr = [];
for (var m of this.form.people_list) {
var arr = [];
console.log(this.form.joins_list)
for (var m of this.form.joins_list) {
arr.push({
admin_id: m
})
}
this.form.people_list = arr;
this.form.joins_list = arr;
console.log(that.form)
// return
if (that.form.id) {
that.form.id = that.form.id;
save(that.form).then(response => {
@ -430,7 +515,7 @@
this.$Message.success('操作成功');
that.load();
that.dialogFormVisible = false;
that.dialogShowFormVisible = false
}).catch(error => {
//reject(error)
})
@ -487,9 +572,11 @@
},
resetForm(formName) {
var that = this;
that.fileList = [];
that.fileList = [];
that.peoplesshow = [];
this.$refs[formName].resetFields();
that.dialogFormVisible = false;
that.dialogFormVisible = false;
that.dialogShowFormVisible = false
},
}
}

@ -231,7 +231,7 @@
field: "year",
title: "年份",
type: "string",
width: 280
width: 180
},
{
field: "remark",

@ -262,19 +262,23 @@
columns: [{
field: "name",
title: "培训名称",
type: "string"
type: "string",
width:240,
},
{
field: "time",
title: "培训时间",
type: "string",
width: 180
width: 180,
align: "center"
},
{
field: "unit",
title: "科室",
type: "string",
width: 180
width: 180,
align: "center"
},
{
@ -382,7 +386,8 @@
load() {
listtrainlog({
page: this.paginations.page,
page_size: this.paginations.page_size,
page_size: this.paginations.page_size,
keyword:this.searchFields.KeyWord
}).then(response => {
this.tableData = response.data;
this.paginations.total = response.total;

@ -47,7 +47,7 @@ module.exports = {
proxy: {
[process.env.VUE_APP_BASE_API]: {
target: 'http://192.168.60.99:9001/',
//target: 'http://safety.115.langye.net/',
// target: 'http://safety.115.langye.net/',
changeOrigin: true, //配置跨域
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''

Loading…
Cancel
Save