Browse Source

新增删除列表接口联调

V4.3.1^2
mk 2 years ago
parent
commit
81f2a71236
  1. 262
      src/views/modules/resourceManagement/enterprise/addForm.vue
  2. 64
      src/views/modules/resourceManagement/enterprise/index.vue

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

@ -21,7 +21,7 @@
<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-form-item>
</el-col>
<el-col :span="6">
@ -30,18 +30,22 @@
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="4.5">
<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 :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<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-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"
size="small">
<el-option v-for="item in placeTypeList" :label="item.label" :value="item.value"
:key="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
@ -76,34 +80,34 @@
</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 == 'view'">
<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="equipmentNum">{{ formData.equipmentNum }}</el-form-item>
<el-form-item label="企业名称" prop="name">{{ formData.name }}</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="nineSmallPlacesCategory">{{ formData.nineSmallPlacesCategory }}</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="scale">{{ formData.scale }}</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="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="location" style="display: block">{{ formData.location
<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="form" :label-width="'90px'" v-if="pageType == 'patrol'"
<el-form :inline="false" :model="formData" ref="form2" :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>
@ -124,8 +128,10 @@
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-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>
<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>
<el-row style="margin-top: 15px;">
<el-col :span="24" style="padding-left: 65px;"> <span style="color: #888; ">整改要求: </span>{{
@ -139,41 +145,51 @@
</el-row>
</el-row>
<!-- 巡查记录新增 -->
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'90px'"
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'105px'"
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 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"
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-input v-model.trim="formData.equipmentNum" :disabled="disabled"
class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
<el-form-item label="检查人员" prop="equipmentNum">
<el-select v-model.trim="formData.nineSmallPlacesCategory" :disabled="disabled" placeholder="请选择" class="u-item-width-normal"
size="small" multiple>
<el-option v-for="item in stafflist" :label="item.name" :value="item.staffId"
:key="item.value">
</el-option>
</el-select>
</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 label="检查结论" prop="checkResultFlag">
<el-select v-model.trim="formData.checkResultFlag" :disabled="disabled" placeholder="请选择" class="u-item-width-normal"
size="small">
<el-option v-for="item in resultArray" :label="item.label" :value="item.value"
:key="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="拟复查时间" prop="principalName"
<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.latestInspectTime" type="datetime"
v-model.trim="formData.reviewTime" 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"
<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">
@ -199,20 +215,14 @@
</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"
<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-form-item>
</el-col>
@ -221,16 +231,10 @@
<!-- 巡查记录新增end -->
</el-form>
</div>
<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> -->
</div>
</div>
<span slot="footer" class="dialog-footer">
<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> -->
<el-button @click="handleComfirm" size="small" type="primary">确定</el-button>
</span>
</el-dialog>
</template>
@ -276,7 +280,8 @@ export default {
disabled: {
type: Boolean,
default: false
}
},
},
data() {
@ -315,8 +320,12 @@ export default {
checkPersons: '张三,李四',
checkResultFlag: '不合格',
reviewTime: '2019-04-22 09:30',
issues: ['1、生产配件机械设备到达年间', '2、配件工艺未达标需要年检机械设备、配件'],
requirements: ['1、第1条安全一定要过关', '2、第2条,设备需要保养'],
hazardDetails:[
{
hazardStatus:0,
hazardDesc:'卫生没整好'
}
],
attachmentUrl: '123456789.jPg',
remark: '请相关负责人尽快处理'
},
@ -325,21 +334,23 @@ export default {
checkPersons: '张三,李四',
checkResultFlag: '不合格',
reviewTime: '2019-04-22 09:30',
issues: ['1、生产配件机械设备到达年间', '2、配件工艺未达标需要年检机械设备、配件'],
requirements: ['1、第1条安全一定要过关', '2、第2条,设备需要保养'],
hazardDetails:[
{
hazardStatus:1,
hazardDesc:'卫生没整好2'
}
],
attachmentUrl: '123456789.jPg',
remark: '请相关负责人尽快处理'
},
],
detailIdcopy:this.detailId,
btnDisable: false,
user: '',
agencyId: '',
gridList: [], //list--
placeTypeList: [], //
resultArray: [{ value: '0', label: '合格' }, { value: '1', label: '不合格' }],
equipmentCategoryCodeArray: [],
list: {},
stafflist: [],
formData: {
agencyId:'',
name:'',
@ -348,10 +359,10 @@ export default {
chargePerson:'',
mobile:'',
nineSmallPlacesFlag:'',
nineSmallPlacesCategory:''
nineSmallPlacesCategory:[]
},
dataRule: {
agencyId: [{ 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' }],
@ -362,7 +373,6 @@ export default {
},
//
loading: false,
searchValue: '',
searchOptions: []
};
},
@ -371,32 +381,24 @@ export default {
created() {},
async mounted() {
this.getOrgTreeList();
console.log('detailId', this.detailId);
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
this.startLoading();
this.loadCategory();
// this.loadGrid();
// this.loadplaceType();
if (this.pageType != 'add') {
this.loadplaceType()
if (this.pageType != 'add' && this.pageType != 'patrol') {
this.getDetail();
} else {
}else if(this.pageType == 'patrol') {
this.getCompanyDetail()
this.getStafflist()
}else {
this.initMap();
}
await this.endLoading();
this.endLoading();
},
methods: {
handleChangeAgency(val) {
this.sarr = []
const map = new Map();
this.getLastItem(
this.orgOptions,
val,
"agencyId"
);
this.level = this.sarr[this.sarr.length - 1].level
this.formData.agencyId = val.length ? val[val.length - 1] : val[0];
},
getOrgTreeList() {
this.$http
@ -437,33 +439,6 @@ export default {
patrolAddd(){
this.patrolAdd=true
},
async loadCategory() {
const url = '/sys/dict/data/dictlist';
let params = {
dictType: 'safety_equipment_category'
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.equipmentCategoryCodeArray = data;
} else {
this.$message.error(msg);
}
},
async loadGrid() {
const url = '/gov/org/customergrid/gridoption';
let params = {
agencyId: this.agencyId,
purpose: 'query'
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.gridList = data;
} else {
this.$message.error(msg);
}
},
//
async loadplaceType() {
const url = '/gov/org/coverage/dict-select-list/enterprise_patrol';
@ -478,21 +453,35 @@ export default {
this.$message.error(msg);
}
},
//
async getCompanyDetail(){
const url = `/actual/base/companyInfo/showRecord`;
const { data, code, msg } = await requestPost(url,{companyId:this.detailId});
if (code === 0) {
// this.tableData = data;
} else {
this.$message.error(msg);
}
},
//
getStafflist() {
let parms = {
orgId: this.$store.state.user.agencyId,
orgType: "agency",
pageNo: 1,
pageSize: 100,
};
this.$http.post("data/aggregator/org/stafflist", parms).then((resp) => {
this.stafflist = resp.data.data.staffList;
console.log("stafflist", resp.data);
});
},
async getDetail() {
const url = `/actual/base/monitoringEquipment/detail/${this.detailIdcopy}`;
const { data, code, msg } = await requestPost(url);
const url = `/actual/base/companyInfo/companyDetail`;
const { data, code, msg } = await requestPost(url,{companyId:this.detailId});
if (code === 0) {
console.log('详情数据', data);
this.formData = { ...data };
// this.remoteMethod("");
// this.list = this.searchOptions.map(item => {
// return { value: item.value, label: item.label };
// });
// this.formData.location.push(this.list[0].value);
// this.remoteMethod(this.list[0].label);//
// this.remoteMethod("");
this.initMap();
} else {
@ -501,49 +490,35 @@ export default {
},
handleComfirm() {
this.save();
},
async handleAdd() {
// this.btnDisable = true;
// setTimeout(() => {
// this.btnDisable = false;
// }, 10000);
// nextTick(1000);
// const form = new Promise((resolve, reject) => {
// this.$refs['form'].validate(valid => {
// if (valid) resolve();
// });
// });
// const form1 = new Promise((resolve, reject) => {
// this.$refs['form1'].validate(valid => {
// if (valid) resolve();
// });
// });
// Promise.all([form1, form])
// .then(() => {
// this.addFuwu();
// })
// .catch(() => {
// app.util.validateRule(messageObj);
// this.btnDisable = false;
// });
if(this.pageType === 'add' || this.pageType === 'edit'){
this.$refs['form'].validate(valid => {
if (valid){
this.save();
}
});
}else if(this.pageType === 'patrol'){
this.$refs['form2'].validate(valid => {
if (valid){
this.save();
}
});
}
// this.save();
},
async save() {
console.log('this.formData', this.formData);
var url = '';
var params = {};
if (this.pageType == 'add') {
url = '/actual/base/monitoringEquipment/save';
} else {
url = '/actual/base/monitoringEquipment/update';
url = '/actual/base/companyInfo/saveCompanyInfo';
} else if (this.pageType == 'edit'){
url = '/actual/base/companyInfo/updateCompany';
}
params = { ...this.formData };
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success('操作成功');
this.detailIdcopy=data
// this.handleCancle();
this.handleCancle();
} else if (code >= 8000) {
this.$message.error(msg);
}
@ -614,8 +589,7 @@ export default {
let { msg, data } = await map.getAddress(lat, lng);
if (msg == 'success') {
this.formData.location = data.address;
this.searchValue = data.address;
this.formData.address = data.address;
this.searchOptions = [];
}
},
@ -654,7 +628,7 @@ export default {
map.setMarker(lonlat[1], lonlat[0]);
this.formData.latitude = lonlat[1];
this.formData.longitude = lonlat[0];
this.formData.location = selPosition.address + selPosition.name;
this.formData.address = selPosition.address + selPosition.name;
}
}
};

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

@ -31,7 +31,7 @@
<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"
<el-option v-for="item in placeTypeList" :label="item.label" :value="item.value"
:key="item.value">
</el-option>
</el-select>
@ -79,25 +79,26 @@
@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="name" 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="address" align="center" label="企业地址" :show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="location" label="规模" min-width="140" align="center"
<el-table-column prop="scale" label="规模" width="140" align="center"
:show-overflow-tooltip="true" />
<el-table-column prop="principalName" align="center" label="负责人"
<el-table-column prop="chargePerson" align="center" label="负责人"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="contactNum" align="center" :show-overflow-tooltip="true"
<el-table-column prop="linkPerson" align="center" :show-overflow-tooltip="true"
label="联系电话"></el-table-column>
<el-table-column prop="latestInspectTime" align="center" label="最新检查时间"
<el-table-column prop="orderDate" align="center" label="最新检查时间"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="latestInspectResultName" align="center" label="最新结果"
<el-table-column prop="checkResultFlag" align="center" label="最新结果"
:show-overflow-tooltip="true"></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>
<el-button v-if="scope.row.latitude && agencyId == scope.row.agencyId"
<!-- v-if="scope.row.latitude && agencyId == scope.row.agencyId" -->
<el-button
style="margin-right: 10px" @click="handleAdd(scope.row, 'edit')" size="small"
type="text">
编辑
@ -106,7 +107,8 @@
type="text">
巡查记录
</el-button>
<el-button @click="handleDel(scope.row)" v-if="agencyId == scope.row.agencyId" type="text"
<!-- v-if="agencyId == scope.row.agencyId" -->
<el-button @click="handleDel(scope.row)" type="text"
size="small" class="">删除</el-button>
</template>
</el-table-column>
@ -162,7 +164,7 @@ export default {
nineArray: [{ value: '1', label: '是' }, { value: '0', label: '否' }],
equipmentCategoryCodeArray: [],
pageNo: 1,
pageSize: window.localStorage.getItem('pageSize') || 20,
pageSize:20,
total: 1,
detailId: '',
detailData: {},
@ -189,29 +191,8 @@ 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 => {
@ -270,7 +251,7 @@ export default {
},
async handleExport() {
//
const url = '/actual/base/monitoringEquipment/export';
const url = '/actual/base/companyInfo/export';
const { pageSize, pageNo, formData } = this;
axios({
url: window.SITE_CONFIG['apiURL'] + url,
@ -342,9 +323,8 @@ export default {
.catch(err => { });
},
async del(id) {
const url = `/actual/base/monitoringEquipment/delete`;
let idsArr = [id];
const { data, code, msg } = await requestPost(url, idsArr);
const url = `/actual/base/companyInfo/deleteCompany`;
const { data, code, msg } = await requestPost(url, {id});
if (code === 0) {
this.$message.success('删除成功!');
this.getTableData();
@ -353,7 +333,7 @@ export default {
}
},
async getTableData() {
const url = '/actual/base/monitoringEquipment/page';
const url = '/actual/base/companyInfo/page';
// const url = 'http://yapi.elinkservice.cn/mock/330/actual/base/enterprise/list';
const { pageSize, pageNo, formData } = this;
const { data, code, msg } = await requestPost(url, {
@ -393,10 +373,10 @@ export default {
this.getTableData();
},
async handleExportModule() {
let url = '/actual/base/monitoringEquipment/downloadTemplate';
let url = '/actual/base/companyInfo/downloadImportTemplate';
let params = {};
await this.$http({
method: 'POST',
method: 'GET',
url,
responseType: 'blob',
data: params
@ -467,9 +447,9 @@ export default {
});
const formData = new FormData(); //FormDataappend('key', value)
formData.append('file', file.file); //
formData.append('code', ''); //
// formData.append('code', ''); //
await this.$http
.post('/actual/base/monitoringEquipment/import', formData)
.post('/actual/base/companyInfo/import', formData)
.then(res => {
console.log('res-up', res);
if (res.data.code == 0 && res.data.msg == 'success') {

Loading…
Cancel
Save