Browse Source

5.8

feature
李素 1 year ago
parent
commit
c9d5177233
  1. 347
      src/views/modules/resourceManagement/enterprise/addForm.vue
  2. 80
      src/views/modules/resourceManagement/enterprise/index.vue

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

@ -4,51 +4,72 @@
<span v-if="pageType == 'add'">新增</span>
<span v-if="pageType == 'edit'">修改</span>
<span v-if="pageType == 'view'">查看</span>
<span v-if="pageType == 'patrol'">巡查记录</span>
</span>
<div>
<div class="dialog-h-content scroll-h">
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'90px'" v-if="pageType != 'view'">
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'90px'"
v-if="pageType != 'view' && pageType != 'patrol'">
<el-row>
<el-col :span="6">
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model.trim="formData.equipmentName" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
<!-- <el-form-item label="所属组织" prop="agencyId">
<el-input v-model.trim="formData.agencyId" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item> -->
<el-form-item label="所属组织" prop="agencyId">
<el-cascader class="u-item-width-normal" size="small" ref="myCascader"
v-model.trim="formData.agencyId" :options="orgOptions" :props="orgOptionProps"
:show-all-levels="false" @change="handleChangeAgency" clearable></el-cascader>
</el-form-item>
</el-col>
<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>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="九小场所" prop="nineSmallPlacesFlag">
<el-radio-group v-model="formData.nineSmallPlacesFlag" :disabled="disabled" size="small">
<el-radio label="是"></el-radio>
<el-radio label="否"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备编号" prop="equipmentNum">
<el-input v-model.trim="formData.equipmentNum" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
<el-form-item label="九小场分类" prop="nineSmallPlacesCategory" style="white-space: nowrap;overflow: hidden;">
<el-input v-model.trim="formData.nineSmallPlacesCategory" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="负责人" prop="principalName">
<el-input v-model.trim="formData.principalName" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
<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>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话" prop="contactNum">
<el-input v-model.trim="formData.contactNum" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
<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>
</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>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="所处位置" prop="location" style="display: block">
<el-select
v-model.trim="formData.location"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
@keyup.enter.native="remoteMethod(formData.location)"
>
<el-option
v-for="(item, index) in searchOptions"
@click.native="handleClickKey(index)"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
<el-form-item label="企业地址" prop="address" style="display: block">
<el-select v-model.trim="formData.address" :disabled="disabled" filterable remote
:reserve-keyword="true" placeholder="请输入关键词" :remote-method="remoteMethod"
:loading="loading" @keyup.enter.native="remoteMethod(formData.location)">
<el-option v-for="(item, index) in searchOptions"
@click.native="handleClickKey(index)" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -58,32 +79,157 @@
<el-form :inline="false" :model="formData" ref="form" :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-form-item label="所属组织" prop="equipmentName">{{ formData.equipmentName }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="企业名称" prop="equipmentNum">{{ formData.equipmentNum }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="九小场所" prop="principalName">{{ formData.principalName }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备编号" prop="equipmentNum">{{ formData.equipmentNum }}</el-form-item>
<el-form-item label="规模" prop="contactNum">{{ formData.contactNum }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="负责人" prop="principalName">{{ formData.principalName }}</el-form-item>
<el-form-item label="负责人" prop="contactNum">{{ formData.contactNum }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话" prop="contactNum">{{ formData.contactNum }}</el-form-item>
<el-form-item label="联系电话" prop="mobile">{{ formData.mobile }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所地址" prop="location" style="display: block">{{ formData.location }}</el-form-item>
<el-form-item label="企业地址" prop="location" style="display: block">{{ formData.location
}}</el-form-item>
</el-col>
</el-row>
<div id="app_event" class="div_map"></div>
</el-form>
<el-form :inline="false" :model="formData" ref="form" :label-width="'90px'" v-if="pageType == 'patrol'"
style="margin-left: 50px;">
<div class="div_btn">
<el-button size="small" type="primary " @click="patrolAddd()">新增</el-button>
</div>
<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-col>
</el-row>
<el-row style="margin-top: 15px;">
<el-col :span="6" style="padding-left: 65px;"> <span style="color: #888; ">检查人员:</span> {{
item.checkPersons }}</el-col>
<el-col :span="6" style="padding-left: 65px;"><span style="color: #888; ">检查结论:</span> {{
item.checkResultFlag }}</el-col>
<el-col :span="6" style="padding-left: 65px;"><span style="color: #888; ">拟复查时间: </span> {{
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> {{
item.hazardDetails }}</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>
<el-row style="margin-top: 15px;">
<el-col :span="6" style="padding-left: 65px;"><span style="color: #888; ">附件: </span>{{
item.attachmentUrl }}</el-col>
<el-col :span="6" style="padding-left: 65px;"><span style="color: #888; ">备注: </span>{{
item.remark }}</el-col>
</el-row>
</el-row>
<!-- 巡查记录新增 -->
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'90px'"
v-if="patrolAdd">
<el-row>
<el-col :span="16">
<el-form-item label="巡查时间" prop="equipmentName">
<el-input v-model.trim="formData.equipmentName" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="检察人员" prop="equipmentNum">
<el-input v-model.trim="formData.equipmentNum" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="18">
<el-form-item label="检查结论" prop="principalName">
<el-input v-model.trim="formData.principalName" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="拟复查时间" prop="principalName"
style="white-space: nowrap; overflow: hidden;">
<el-date-picker class="u-item-width-normal" size="small"
v-model.trim="formData.latestInspectTime" type="datetime"
format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<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-checkbox :label="option.value">{{ option.label }}</el-checkbox>
</el-col>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="18" v-for="(item, index) in inputList" :key="index">
<el-form-item label="" prop="textarea" class="input-container">
<el-input v-model="item.value" rows="3" placeholder="请输入隐患信息"></el-input>
</el-form-item>
<el-button @click="removeInput(index)" v-if="inputList.length > 1"
class="remove-button">
<el-icon name="minus"></el-icon>
</el-button>
<el-button @click="addInput" v-if="index === inputList.length - 1">
<el-icon name="plus"></el-icon>
</el-button>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<!-- <el-form-item label="附件">
<template>
<upload-image :defaultFileList="fileList" :limit="6"
@change="onChangeFileList"></upload-image>
</template>
</el-form-item> -->
<el-form-item label="附件">
<upload-image :defaultFileList="fileList" :limit="6" @change="onChangeFileList"
v-if="true"></upload-image>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="备注" prop="textarea">
<el-input v-model.trim="formData.principalName" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 巡查记录新增end -->
</el-form>
</div>
<div class="div_btn" v-if="pageType != 'view'">
<el-button size="small" @click="handleCancle"> </el-button>
<div class="div_btn" v-if="patrolAdd">
<el-button size="small" @click="handleCancle">关闭</el-button>
<!-- <el-button size="small" @click="resetData" v-if="pageType != 'view'">重置</el-button> -->
<el-button size="small" type="primary" :disabled="btnDisable" @click="handleComfirm"> </el-button>
<!-- <el-button size="small" type="primary" :disabled="btnDisable" @click="handleComfirm"> </el-button> -->
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle" size="small"> </el-button>
<el-button @click="handleCancle" size="small">取消</el-button>
<el-button @click="handleCancle" size="small" type="primary">确定</el-button>
<!-- <el-button type="primary" @click="handleComfirm"> </el-button> -->
</span>
</el-dialog>
@ -96,6 +242,8 @@ import { Loading } from 'element-ui'; // 引入Loading服务
import { requestPost, requestGet } from '@/js/dai/request';
import daiMap from '@/utils/dai-map';
import nextTick from 'dai-js/tools/nextTick';
// import UploadImage from '@/views/modules/plugins/rent/rentcontractinfo-add-or-update'
import UploadImage from '@/views/modules/plugins/rent/upload-image.vue'
let loading; //
let map;
var search;
@ -142,7 +290,47 @@ export default {
callback();
}
};
let orgOptionProps = {
multiple: false,
value: 'agencyId',
label: 'agencyName',
children: 'subAgencyList',
checkStrictly: true
}
return {
orgOptions:[],
orgOptionProps,
inputList: [{ value: '' }],//
fileList:[],
patrolAdd: false,
radioOptions: [
{ label: 'Option 1', value: 'option1' },
{ label: 'Option 2', value: 'option2' },
{ label: '已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患', value: '已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患已整改隐患' },
],
tableData: [
{
datereviewTime: '2019-04-22 09:30',
checkPersons: '张三,李四',
checkResultFlag: '不合格',
reviewTime: '2019-04-22 09:30',
issues: ['1、生产配件机械设备到达年间', '2、配件工艺未达标需要年检机械设备、配件'],
requirements: ['1、第1条安全一定要过关', '2、第2条,设备需要保养'],
attachmentUrl: '123456789.jPg',
remark: '请相关负责人尽快处理'
},
{
datereviewTime: '2019-04-22 09:30',
checkPersons: '张三,李四',
checkResultFlag: '不合格',
reviewTime: '2019-04-22 09:30',
issues: ['1、生产配件机械设备到达年间', '2、配件工艺未达标需要年检机械设备、配件'],
requirements: ['1、第1条安全一定要过关', '2、第2条,设备需要保养'],
attachmentUrl: '123456789.jPg',
remark: '请相关负责人尽快处理'
},
],
detailIdcopy:this.detailId,
btnDisable: false,
user: '',
@ -153,18 +341,24 @@ export default {
equipmentCategoryCodeArray: [],
list: {},
formData: {
equipmentName: '',
equipmentCategoryCode: '',
principalName: '',
location: '',
contactNum: ''
agencyId:'',
name:'',
address:'',
scale:'',
chargePerson:'',
mobile:'',
nineSmallPlacesFlag:'',
nineSmallPlacesCategory:''
},
dataRule: {
equipmentName: [{ required: true, message: '设备名称不能为空', trigger: 'bulr' }],
equipmentNum: [{ required: true, message: '设备编号不能为空', trigger: 'bulr' }],
principalName: [{ required: true, message: '负责人不能为空', trigger: 'bulr' }],
contactNum: [{ required: true, message: '联系电话不能为空', trigger: 'blur' }],
location: [{ required: true, message: '所处位置不能为空', trigger: 'blur' }]
agencyId: [{ required: true, message: '所属组织必选', trigger: 'blur' }],
name: [{ required: true, message: '企业名称不能为空', trigger: 'blur' }],
address: [{ required: true, message: '企业地址不能为空', trigger: 'blur' }],
scale: [{ required: true, message: '规模不能为空', trigger: 'blur' }],
chargePerson: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
mobile: [{ required: true, message: '联系电话不能为空', trigger: 'blur' }],
nineSmallPlacesCategory: [{ required: true, message: '九小场所类型不能为空', trigger: 'blur' }],
nineSmallPlacesFlag: [{ required: true, message: '九小场所类型不能为空', trigger: 'blur' }],
},
//
loading: false,
@ -173,9 +367,10 @@ export default {
};
},
watch: {},
components: { },
components: { UploadImage },
created() {},
async mounted() {
this.getOrgTreeList();
console.log('detailId', this.detailId);
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
@ -193,6 +388,55 @@ export default {
},
methods: {
handleChangeAgency(val) {
this.sarr = []
const map = new Map();
this.getLastItem(
this.orgOptions,
val,
"agencyId"
);
this.level = this.sarr[this.sarr.length - 1].level
},
getOrgTreeList() {
this.$http
.post('/gov/org/customeragency/agencygridtree', {})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
console.log('获取组织树成功', res.data)
this.orgOptions = []
this.orgOptions.push(res.data)
}
})
.catch(() => {
return this.$message.error('网络错误')
})
},
addInput() {
this.inputList.push({ value: '' }); //
},
removeInput(index) {
this.inputList.splice(index, 1); //
},
onChangeFileList(e, rowIndex = 0) {
console.log('onChangeFileList', e)
if (e.length > 0) {
this.fileList = []
e.forEach(item => {
let ob = {
fileType: '0',
fileUrl: item.response.data.url
}
this.fileList.push(ob)
})
}
},
patrolAddd(){
this.patrolAdd=true
},
async loadCategory() {
const url = '/sys/dict/data/dictlist';
@ -423,4 +667,11 @@ export default {
.el-dialog__body {
padding: 30px 80px;
}
.div_btn {
display: flex;
}
.custom-tag {
font-size: 16px; /* 设置圆点大小 */
border: none; /* 去掉边框 */
}
</style>

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

@ -4,38 +4,45 @@
<div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'105px'">
<div>
<el-form-item label="企业名称" prop="equipmentName">
<el-input v-model.trim="formData.equipmentName" class="u-item-width-normal" size="small"
<el-form-item label="企业名称" prop="name">
<el-input v-model.trim="formData.name" class="u-item-width-normal" size="small"
clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="规模" prop="equipmentNum">
<el-input v-model.trim="formData.equipmentNum" class="u-item-width-normal" size="small"
<el-form-item label="规模" prop="scale">
<el-input v-model.trim="formData.scale" class="u-item-width-normal" size="small"
clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="负责人" prop="location">
<el-input v-model.trim="formData.location" class="u-item-width-normal" size="small"
<el-form-item label="负责人" prop="chargePerson">
<el-input v-model.trim="formData.chargePerson" class="u-item-width-normal" size="small"
clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系人" prop="principalName">
<el-input v-model.trim="formData.principalName" class="u-item-width-normal" size="small"
<el-form-item label="联系人" prop="linkPerson">
<el-input v-model.trim="formData.linkPerson" class="u-item-width-normal" size="small"
clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="九小场所分类" prop="latestInspectTime">
<el-select v-model.trim="formData.location" placeholder="请选择" class="u-item-width-normal"
<el-form-item label="九小场所" prop="nineSmallPlacesFlag">
<el-select v-model.trim="formData.nineSmallPlacesFlag" placeholder="请选择" class="u-item-width-normal"
size="small">
<el-option v-for="item in nineArray" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="九小场所分类" prop="nineSmallPlacesCategory">
<el-select v-model.trim="formData.nineSmallPlacesCategory" placeholder="请选择" class="u-item-width-normal"
size="small">
<el-option v-for="item in option" :label="item.label" :value="item.value"
:key="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="最新检查时间" prop="latestInspectResult">
<el-form-item label="最新检查时间" prop="orderDate">
<el-date-picker class="u-item-width-normal" size="small"
v-model.trim="formData.latestInspectTime" type="datetime" format="yyyy-MM-dd HH:mm:ss"
v-model.trim="formData.orderDate" type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期"></el-date-picker>
</el-form-item>
<el-form-item label="最新检查结果" prop="latestInspectResult">
<el-select v-model.trim="formData.latestInspectResult" placeholder="请选择" size="small"
<el-form-item label="最新检查结果" prop="checkResultFlag">
<el-select v-model.trim="formData.checkResultFlag" placeholder="请选择" size="small"
clearable class="u-item-width-normal">
<el-option v-for="item in resultArray" :key="item.value" :label="item.label"
:value="item.value"></el-option>
@ -72,11 +79,11 @@
@selection-change="handleSelectionChange" :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="equipmentName" align="center" label="设备名称"
<el-table-column prop="equipmentName" align="center" label="企业名称"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="equipmentNum" align="center" label="设备编号"></el-table-column>
<el-table-column prop="equipmentNum" align="center" label="企业地址"></el-table-column>
<el-table-column prop="location" label="所处位置" min-width="140" align="center"
<el-table-column prop="location" label="规模" min-width="140" align="center"
:show-overflow-tooltip="true" />
<el-table-column prop="principalName" align="center" label="负责人"
:show-overflow-tooltip="true"></el-table-column>
@ -95,7 +102,7 @@
type="text">
编辑
</el-button>
<el-button style="margin-right: 10px" @click="handleAdd(scope.row, 'edit')" size="small"
<el-button style="margin-right: 10px" @click="handleAdd(scope.row, 'patrol')" size="small"
type="text">
巡查记录
</el-button>
@ -136,17 +143,23 @@ export default {
user: '',
agencyId: '',
formData: {
equipmentName: '',
equipmentCategoryCode: '',
principalName: '',
contactNum: '',
address: ''
orderDate:'',
checkResultFlag:'',
nineSmallPlacesCategory:'',
nineSmallPlacesFlag:'',
mobile:'',
linkPerson:'',
chargePerson:'',
scale:'',
address:'',
name:''
},
pageType: 'list', // list add dispose info
gridList: [], //list--
placeTypeList: [], //
tableData: [],
resultArray: [{ value: '1', label: '合格' }, { value: '0', label: '不合格' }],
nineArray: [{ value: '1', label: '是' }, { value: '0', label: '否' }],
equipmentCategoryCodeArray: [],
pageNo: 1,
pageSize: window.localStorage.getItem('pageSize') || 20,
@ -176,8 +189,29 @@ export default {
this.loadplaceType();
this.loadCategory();
this.getTableData();
this.loadTable();
},
methods: {
async loadTable() {
// this.tableLoading = true
const url = "/actual/base/companyInfo/page"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyactivity/list"
let params = {
agencyId: this.agencyId,
pageSize: this.pageSize,
pageNo: this.pageNo,
...this.formData
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
console.log('坎坎坷坷喀喀喀喀喀喀',data)
this.total = data.total
this.tableData = data.list
} else {
this.$message.error(msg)
}
},
handleSelectionChange(val) {
this.multipleSelection = [];
val.forEach(element => {

Loading…
Cancel
Save