Browse Source

详情接口联调,巡查新增大致完成

feature
mk 1 year ago
parent
commit
96c9672eaa
  1. 214
      src/views/modules/resourceManagement/enterprise/addForm.vue
  2. 28
      src/views/modules/resourceManagement/enterprise/index.vue

214
src/views/modules/resourceManagement/enterprise/addForm.vue

@ -7,9 +7,9 @@
<span v-if="pageType == 'patrol'">巡查记录</span>
</span>
<div>
<div class="dialog-h-content scroll-h">
<div class="dialog-h-content scroll-h div_form">
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'90px'"
v-if="pageType != 'view' && pageType != 'patrol'">
v-if="pageType != 'patrol'">
<el-row>
<el-col :span="6">
<!-- <el-form-item label="所属组织" prop="agencyId">
@ -18,7 +18,7 @@
</el-form-item> -->
<el-form-item label="所属组织" prop="agencyId">
<el-cascader class="u-item-width-normal" size="small" ref="myCascader"
<el-cascader class="list_item_width_1" size="small" ref="myCascader" :disabled="disabled"
v-model.trim="formData.agencyId" :options="orgOptions" :props="orgOptionProps"
:show-all-levels="false" @change="handleChangeAgency" clearable></el-cascader>
</el-form-item>
@ -27,7 +27,7 @@
<el-col :span="6">
<el-form-item label="企业名称" prop="name">
<el-input v-model.trim="formData.name" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
class="list_item_width_1" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="4.5">
@ -40,7 +40,7 @@
</el-col>
<el-col :span="7.5">
<el-form-item label="九小场所分类" prop="nineSmallPlacesCategory" label-width="150px">
<el-select v-model.trim="formData.nineSmallPlacesCategory" :disabled="disabled" placeholder="请选择" class="u-item-width-normal"
<el-select v-model.trim="formData.nineSmallPlacesCategory" :disabled="disabled" placeholder="请选择" class="list_item_width_1"
size="small">
<el-option v-for="item in placeTypeList" :label="item.label" :value="item.value"
:key="item.value">
@ -51,19 +51,19 @@
<el-col :span="6">
<el-form-item label="规模" prop="scale">
<el-input v-model.trim="formData.scale" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
class="list_item_width_1" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="负责人" prop="chargePerson">
<el-input v-model.trim="formData.chargePerson" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
class="list_item_width_1" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话" prop="mobile">
<el-input v-model.trim="formData.mobile" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
class="list_item_width_1" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="18">
@ -80,33 +80,6 @@
</el-row>
<div id="app_event" class="div_map"></div>
</el-form>
<el-form :inline="false" :model="formData" ref="form1" :label-width="'90px'" v-if="pageType == 'view'">
<el-row>
<el-col :span="6">
<el-form-item label="所属组织" prop="equipmentName">{{ formData.equipmentName }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="企业名称" prop="name">{{ formData.name }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="九小场所分类" prop="nineSmallPlacesCategory">{{ formData.nineSmallPlacesCategory }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="规模" prop="scale">{{ formData.scale }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="负责人" prop="chargePerson">{{ formData.chargePerson }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话" prop="mobile">{{ formData.mobile }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="企业地址" prop="address" style="display: block">{{ formData.address
}}</el-form-item>
</el-col>
</el-row>
<div id="app_event" class="div_map"></div>
</el-form>
<el-form :inline="false" :model="formData" ref="form2" :label-width="'90px'" v-if="pageType == 'patrol'"
style="margin-left: 50px;">
<div class="div_btn">
@ -115,7 +88,7 @@
<el-row v-for="(item, index) in tableData" :key="index" :gutter="20" style="margin-bottom: 20px;">
<el-row style="margin-top: 20px;">
<el-col :span="24">
<el-tag type="primary" effect="plain" class="custom-tag"></el-tag>{{ item.datereviewTime}}
<el-tag type="primary" effect="plain" class="custom-tag"></el-tag>{{item.checkTime}}
</el-col>
</el-row>
@ -128,14 +101,20 @@
item.reviewTime }}</el-col>
</el-row>
<el-row style="margin-top: 15px;">
<el-col :span="24" style="padding-left: 65px;"><span style="color: #888; ">隐患明细: </span> <span v-for="(itemC,index) in item.hazardDetails" >{{itemC.hazardDesc}}</span> </el-col>
<el-col :span="24" style="padding-left: 65px;"><span style="color: #888; ">{{item.hazardDetails.findIndex(item=>item.hazardStatus === 2) === -1?'已整改隐患':'隐患明细'}}: </span>
<p style="margin-left: 60px;" v-for="(itemC,index) in item.hazardDetails.filter(item=>item.hazardStatus ==1)" >{{index+1}}.{{itemC.hazardDesc}}</p>
</el-col>
</el-row>
<el-row style="margin-top: 15px;">
<el-col :span="24" style="padding-left: 65px;"><span style="color: #888; ">隐患明细: </span> <span v-for="(itemC,index) in item.hazardDetails" >{{itemC.hazardDesc}}</span> </el-col>
<el-row style="margin-top: 15px;" v-if="item.hazardDetails.findIndex(item=>item.hazardStatus === 2) === -1">
<el-col :span="24" style="padding-left: 65px;"><span style="color: #888; ">未整改隐患: </span>
<p style="margin-left: 60px;" v-for="(itemC,index) in item.hazardDetails.filter(item=>item.hazardStatus == 0)" >{{index+1}}.{{itemC.hazardDesc}}</p>
</el-col>
</el-row>
<el-row style="margin-top: 15px;">
<el-col :span="24" style="padding-left: 65px;"> <span style="color: #888; ">整改要求: </span>{{
item.requirements }}</el-col>
<el-row style="margin-top: 15px;" v-else>
<el-col :span="24" style="padding-left: 65px;"><span style="color: #888; ">整改要求: </span>
<p style="margin-left: 60px;">{{index+1}}.{{item.hazardDetails.find(item=>item.hazardStatus == 2).hazardDesc}}</p>
</el-col>
</el-row>
<el-row style="margin-top: 15px;">
<el-col :span="6" style="padding-left: 65px;"><span style="color: #888; ">附件: </span>{{
@ -145,20 +124,19 @@
</el-row>
</el-row>
<!-- 巡查记录新增 -->
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'105px'"
<el-form :inline="true" :model="patrolForm" ref="form3" :rules="patrolRule" :label-width="'105px'"
v-if="patrolAdd">
<el-row>
<el-col :span="16">
<el-form-item label="巡查时间" prop="checkTime"
style="white-space: nowrap; overflow: hidden;">
<el-date-picker class="u-item-width-normal" size="small"
v-model.trim="formData.checkTime" type="datetime"
<el-form-item label="巡查时间" prop="checkTime">
<el-date-picker class="list_item_width_1" size="small"
v-model.trim="patrolForm.checkTime" type="datetime"
format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="检查人员" prop="equipmentNum">
<el-select v-model.trim="formData.nineSmallPlacesCategory" :disabled="disabled" placeholder="请选择" class="u-item-width-normal"
<el-form-item label="检查人员" prop="checkPersonsIdList">
<el-select v-model.trim="patrolForm.checkPersonsIdList" :disabled="disabled" placeholder="请选择" class="list_item_width_1"
size="small" multiple>
<el-option v-for="item in stafflist" :label="item.name" :value="item.staffId"
:key="item.value">
@ -170,7 +148,7 @@
<el-row>
<el-col :span="18">
<el-form-item label="检查结论" prop="checkResultFlag">
<el-select v-model.trim="formData.checkResultFlag" :disabled="disabled" placeholder="请选择" class="u-item-width-normal"
<el-select v-model.trim="patrolForm.checkResultFlag" :disabled="disabled" placeholder="请选择" class="list_item_width_1"
size="small">
<el-option v-for="item in resultArray" :label="item.label" :value="item.value"
:key="item.value">
@ -179,20 +157,18 @@
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="拟复查时间" prop="reviewTime"
style="white-space: nowrap; overflow: hidden;">
<el-date-picker class="u-item-width-normal" size="small"
v-model.trim="formData.reviewTime" type="datetime"
<el-form-item label="拟复查时间" prop="reviewTime">
<el-date-picker class="list_item_width_1" size="small"
v-model.trim="patrolForm.reviewTime" type="datetime"
format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row v-if="checkResultFlag !== 1">
<el-col :span="8">
<el-form-item label="隐患明细" prop="principalName"
style="white-space: nowrap;overflow: hidden;">
<el-radio-group v-model="formData.latestInspectTime" size="small">
<el-col v-for="option in radioOptions" :key="option.value">
<el-form-item label="隐患明细" prop="principalName" style="white-space: nowrap;overflow: hidden;">
<el-radio-group v-model="hazardDetails" size="small">
<el-col v-for="option in checkboxOptions" :key="option.value">
<el-checkbox :label="option.value">{{ option.label }}</el-checkbox>
</el-col>
</el-radio-group>
@ -200,9 +176,9 @@
</el-col>
</el-row>
<el-row >
<el-col :span="18" v-for="(item, index) in inputList" :key="index">
<el-col :span="18" v-for="(item, index) in inputList" :key="index" style="margin-left: 100px;">
<el-form-item label="" prop="textarea" class="input-container">
<el-input v-model="item.value" rows="3" placeholder="请输入隐患信息"></el-input>
<el-input v-model="item.value" rows="3" placeholder="请输入隐患信息" size="small" class="list_item_width_1"></el-input>
</el-form-item>
<el-button @click="removeInput(index)" v-if="inputList.length > 1"
class="remove-button">
@ -213,17 +189,24 @@
</el-button>
</el-col>
</el-row>
<el-row v-if="checkResultFlag === 1">
<el-col :span="8">
<el-form-item label="整改意见" prop="principalName" style="white-space: nowrap;overflow: hidden;">
<el-input v-model="patrolForm.rectificationOpinion" rows="3" size="small" placeholder="请输入整改意见" ></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="附件">
<upload-image :defaultFileList="fileList" :limit="6" @change="onChangeFileList"
<upload-image :defaultFileList="fileList" :limit="1" @change="onChangeFileList"
v-if="true"></upload-image>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="备注" prop="remark">
<el-input v-model.trim="formData.remark" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
<el-input v-model.trim="patrolForm.remark" :disabled="disabled"
class="list_item_width_1" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -273,15 +256,14 @@ export default {
type: String,
default: ''
},
detailData: {
type: Object,
default: null
},
disabled: {
type: Boolean,
default: false
},
checkResultFlag:{
type:Number,
default:0
}
},
data() {
@ -309,28 +291,68 @@ export default {
inputList: [{ value: '' }],//
fileList:[],
patrolAdd: false,
radioOptions: [
checkboxOptions: [
{ label: 'Option 1', value: 'option1' },
{ label: 'Option 2', value: 'option2' },
{ label: '已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患', value: '已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患' },
{ label: '已整改患', value: '已整改隐患' },
],
hazardDetails:[],
tableData: [
{
datereviewTime: '2019-04-22 09:30',
checkTime: '2019-04-22 09:30',
checkPersons: '张三,李四',
checkResultFlag: '不合格',
reviewTime: '2019-04-22 09:30',
hazardDetails:[
{
hazardStatus:0,
hazardDesc:'卫生没整好'
"id": "hd1111",
"customerId": "45687aa479955f9d06204d415238f7cc",
"companyId": "c1111",
"recordId": "r1111",
"hazardStatus": 0,
"hazardDesc": "小马哥请原谅我",
"delFlag": null,
"revision": 0,
"createdBy": "zxc",
"createdTime": "2024-05-03 16:26:37",
"updatedBy": "zxc",
"updatedTime": "2024-05-03 16:26:49"
},
{
"id": "hd1112",
"customerId": "45687aa479955f9d06204d415238f7cc",
"companyId": "c1111",
"recordId": "r1111",
"hazardStatus": 1,
"hazardDesc": "小马哥喝一点酒太亢奋",
"delFlag": null,
"revision": 2,
"createdBy": "zxc",
"createdTime": "2024-05-03 16:26:37",
"updatedBy": "zxc",
"updatedTime": "2024-05-03 16:26:49"
},
{
"id": "hd1113",
"customerId": "45687aa479955f9d06204d415238f7cc",
"companyId": "c1111",
"recordId": "r1111",
"hazardStatus": 2,
"hazardDesc": "我不想这样做,但是找不到更好的原因了,抱歉小马哥",
"delFlag": null,
"revision": 0,
"createdBy": "zxc",
"createdTime": "2024-05-03 16:26:37",
"updatedBy": "zxc",
"updatedTime": "2024-05-03 16:26:49"
}
],
attachmentUrl: '123456789.jPg',
remark: '请相关负责人尽快处理'
},
{
datereviewTime: '2019-04-22 09:30',
checkTime: '2019-04-22 09:30',
checkPersons: '张三,李四',
checkResultFlag: '不合格',
reviewTime: '2019-04-22 09:30',
@ -369,7 +391,23 @@ export default {
chargePerson: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
mobile: [{ required: true, message: '联系电话不能为空', trigger: 'blur' }],
nineSmallPlacesCategory: [{ required: true, message: '九小场所类型不能为空', trigger: 'blur' }],
nineSmallPlacesFlag: [{ required: true, message: '九小场所类型不能为空', trigger: 'blur' }],
nineSmallPlacesFlag: [{ required: true, message: '九小场所不能为空', trigger: 'blur' }],
},
patrolForm:{
companyId:null,
checkTime:null,
checkPersonsIdList:null,
checkResultFlag:null,
reviewTime:null,
hazardDetails:null,
attachmentUrl:null,
remark:null,
},
patrolRule:{
checkTime: [{ required: true, message: '巡查时间不能为空', trigger: 'blur' }],
checkPersonsIdList: [{ required: true, message: '检查人员不能为空', trigger: 'blur' }],
checkResultFlag: [{ required: true, message: '检查结论不能为空', trigger: 'blur' }],
reviewTime: [{ required: true, message: '拟复查时间不能为空', trigger: 'blur' }],
},
//
loading: false,
@ -428,8 +466,9 @@ export default {
this.fileList = []
e.forEach(item => {
let ob = {
fileType: '0',
fileUrl: item.response.data.url
fileType: item.raw.type,
fileUrl: item.response.data.url,
fileName:item.response.data.fileName
}
this.fileList.push(ob)
})
@ -477,8 +516,8 @@ export default {
});
},
async getDetail() {
const url = `/actual/base/companyInfo/companyDetail`;
const { data, code, msg } = await requestPost(url,{companyId:this.detailId});
const url = `/actual/base/companyInfo/companyDetail/${this.detailId}`;
const { data, code, msg } = await requestPost(url);
if (code === 0) {
console.log('详情数据', data);
this.formData = { ...data };
@ -497,7 +536,7 @@ export default {
}
});
}else if(this.pageType === 'patrol'){
this.$refs['form2'].validate(valid => {
this.$refs['form3'].validate(valid => {
if (valid){
this.save();
}
@ -511,10 +550,17 @@ export default {
var params = {};
if (this.pageType == 'add') {
url = '/actual/base/companyInfo/saveCompanyInfo';
params = { ...this.formData };
} else if (this.pageType == 'edit'){
url = '/actual/base/companyInfo/updateCompany';
}
params = { ...this.formData };
}else if(this.pageType == 'patrol'){
url = '/actual/base/companyInfo/addRecord';
params = { ...this.patrolForm };
params.companyId = this.detailId;
params.attachmentUrl = this.fileList[0];
}
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success('操作成功');
@ -523,12 +569,14 @@ export default {
this.$message.error(msg);
}
},
handleCancle() {
this.resetData();
this.$emit('handleClose');
},
resetData() {
this.$refs.form.resetFields();
let form = this.pageType === 'add' ||this.pageType === 'edit'||this.pageType === 'view'?'form':this.pageType === 'patrol'?'form2':'form';
this.$refs[form].resetFields();
},
//
startLoading() {

28
src/views/modules/resourceManagement/enterprise/index.vue

@ -76,7 +76,7 @@
<el-button @click="handleExport" class="diy-button--white" size="small">导出</el-button>
</div>
<el-table :data="tableData" border class="m-table-item" style="width: 100%"
@selection-change="handleSelectionChange" :height="maxTableHeight">
:height="maxTableHeight">
<!-- <el-table-column label="" fixed="left" type="selection" align="center" width="50" /> -->
<el-table-column label="序号" fixed="left" type="index" align="center" width="50" />
<el-table-column prop="name" align="center" label="企业名称"
@ -88,12 +88,18 @@
:show-overflow-tooltip="true" />
<el-table-column prop="chargePerson" align="center" label="负责人"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="linkPerson" align="center" :show-overflow-tooltip="true"
<el-table-column prop="mobile" align="center" :show-overflow-tooltip="true"
label="联系电话"></el-table-column>
<el-table-column prop="orderDate" align="center" label="最新检查时间"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="checkResultFlag" align="center" label="最新结果"
:show-overflow-tooltip="true"></el-table-column>
:show-overflow-tooltip="true">
<template slot-scope="scope">
<span>
{{scope.row.checkResultFlag=='1'?'合格':'不合格'}}
</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="250">
<template slot-scope="scope">
<el-button @click="handleAdd(scope.row, 'view')" type="text" size="small">查看</el-button>
@ -123,7 +129,7 @@
</div>
<div>
<addForm v-if="dialogVisible" :dialogVisible="dialogVisible" :pageType="pageType" :disabled="disabled"
:detailId="detailId" :detailData="detailData" @handleClose="handleClose" @handleOk="handleOk"
:detailId="detailId" :checkResultFlag="checkResultFlag" @handleClose="handleClose" @handleOk="handleOk"
@dialogOk="handleEditSuccess" />
</div>
</div>
@ -167,12 +173,7 @@ export default {
pageSize:20,
total: 1,
detailId: '',
detailData: {},
multipleSelection: [],
rowObj: {},
option: [
{}
]
checkResultFlag:false
};
},
components: { addForm },
@ -193,12 +194,6 @@ export default {
this.getTableData();
},
methods: {
handleSelectionChange(val) {
this.multipleSelection = [];
val.forEach(element => {
this.multipleSelection.push(element.icEventId);
});
},
handleSearch(val) {
console.log(this.formData);
this.pageNo = 1;
@ -285,6 +280,7 @@ export default {
handleAdd(row, type) {
if (row.id) {
this.detailId = row.id;
this.checkResultFlag = row.checkResultFlag;
}
this.pageType = type;
if (type == 'view') {

Loading…
Cancel
Save