Browse Source

样式

V1.0
tianq 3 years ago
parent
commit
eb146ec6c4
  1. 241
      src/views/modules/shequzhili/tuceng/anquan/anquanxuncha/addForm.vue
  2. 12
      src/views/modules/shequzhili/tuceng/anquan/anquanxuncha/index.vue
  3. 855
      src/views/modules/shequzhili/tuceng/anquan/shebei/addForm.vue
  4. 12
      src/views/modules/shequzhili/tuceng/anquan/shebei/index.vue
  5. 299
      src/views/modules/shequzhili/tuceng/anquan/yinhuan/addForm.vue
  6. 12
      src/views/modules/shequzhili/tuceng/anquan/yinhuan/index.vue
  7. 173
      src/views/modules/shequzhili/tuceng/chengshiguanli/addForm.vue
  8. 12
      src/views/modules/shequzhili/tuceng/chengshiguanli/index.vue
  9. 191
      src/views/modules/shequzhili/tuceng/gonggongfuwu/addForm.vue
  10. 12
      src/views/modules/shequzhili/tuceng/gonggongfuwu/index.vue
  11. 175
      src/views/modules/shequzhili/tuceng/yingji/changsuo/addForm.vue
  12. 12
      src/views/modules/shequzhili/tuceng/yingji/changsuo/index.vue
  13. 187
      src/views/modules/shequzhili/tuceng/yingji/wuzi/addForm.vue
  14. 11
      src/views/modules/shequzhili/tuceng/yingji/wuzi/index.vue

241
src/views/modules/shequzhili/tuceng/anquan/anquanxuncha/addForm.vue

@ -1,102 +1,132 @@
<template>
<el-card>
<div class="dialog-h-content scroll-h">
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'120px'" v-if="pageType != 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="场所名称" prop="placeOrgName">
<el-input v-model="formData.placeOrgName" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="占地面积" prop="areaCovered">
<el-input v-model="formData.areaCovered" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="场所规模" prop="scaleTotal">
<el-input-number
v-model="formData.scaleTotal"
:disabled="disabled"
class="u-item-width-normal"
size="small"
clearable
placeholder="请输入可容纳人数"
></el-input-number>
</el-form-item>
<el-form-item label="所属组织" prop="gridId">
<el-select v-model="formData.gridId" class="u-item-width-normal" :disabled="disabled" placeholder="全部" size="small" clearable>
<el-option v-for="item in gridList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="场所类别" prop="placeCategory">
<el-select v-model="formData.placeCategory" :disabled="disabled" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in placeCategoryArray" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="场所类型" prop="placeType">
<el-select class="u-item-width-normal" :disabled="disabled" v-model="formData.placeType" placeholder="全部" size="small" clearable>
<el-option v-for="item in placeTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人" prop="personInCharge">
<el-input v-model="formData.personInCharge" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="mobile">
<el-input v-model="formData.mobile" :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="address" style="display: block">
<el-select
v-model="formData.address"
style="width: 500px;"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form :inline="false" :model="formData" ref="form" :label-width="'120px'" v-if="pageType == 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="场所名称" prop="placeOrgName">{{ formData.placeOrgName }}</el-form-item>
<el-form-item label="占地面积" prop="areaCovered">{{ formData.areaCovered }}</el-form-item>
<el-form-item label="场所规模" prop="scaleTotal">{{ formData.scaleTotal }}</el-form-item>
<el-form-item label="所属组织" prop="gridId">{{ formData.gridName }}</el-form-item>
<el-form-item label="场所类别" prop="placeCategory">{{ formData.placeCategoryName }}</el-form-item>
<el-form-item label="场所类型" prop="placeType">{{ formData.placeTypeName }}</el-form-item>
<el-form-item label="负责人" prop="personInCharge">{{ formData.personInCharge }}</el-form-item>
<el-form-item label="联系电话" prop="mobile">{{ formData.areaCovered }}</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="场所地址" prop="address" style="display: block">
{{ formData.address }}
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="div_btn">
<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" v-if="pageType != 'view'"> </el-button>
<el-dialog title="提示" :visible.sync="dialogVisible" width="1370px" :before-close="handleCancle">
<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-row>
<el-col :span="6">
<el-form-item label="场所名称" prop="placeOrgName">
<el-input v-model="formData.placeOrgName" :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="areaCovered">
<el-input v-model="formData.areaCovered" :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="scaleTotal">
<el-input-number
v-model="formData.scaleTotal"
:disabled="disabled"
class="u-item-width-normal"
size="small"
clearable
placeholder="请输入可容纳人数"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属组织" prop="gridId">
<el-select v-model="formData.gridId" class="u-item-width-normal" :disabled="disabled" placeholder="全部" size="small" clearable>
<el-option v-for="item in gridList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所类别" prop="placeCategory">
<el-select v-model="formData.placeCategory" :disabled="disabled" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in placeCategoryArray" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所类型" prop="placeType">
<el-select class="u-item-width-normal" :disabled="disabled" v-model="formData.placeType" placeholder="全部" size="small" clearable>
<el-option v-for="item in placeTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="负责人" prop="personInCharge">
<el-input v-model="formData.personInCharge" :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="formData.mobile" :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="address" style="display: block">
<el-select
v-model="formData.address"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
</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-row>
<el-col :span="6">
<el-form-item label="场所名称" prop="placeOrgName">{{ formData.placeOrgName }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="占地面积" prop="areaCovered">{{ formData.areaCovered }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所规模" prop="scaleTotal">{{ formData.scaleTotal }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属组织" prop="gridId">{{ formData.gridName }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所类别" prop="placeCategory">{{ formData.placeCategoryName }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所类型" prop="placeType">{{ formData.placeTypeName }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="负责人" prop="personInCharge">{{ formData.personInCharge }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话" prop="mobile">{{ formData.areaCovered }}</el-form-item>
</el-col>
<el-col :span="16">
<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>
</div>
<div class="div_btn" v-if="pageType != 'view'">
<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 style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div>
</div>
<div style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div>
</el-card>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle"> </el-button>
<!-- <el-button type="primary" @click="handleComfirm"> </el-button> -->
</span>
</el-dialog>
</template>
<script>
@ -116,6 +146,10 @@ var geocoder; // 新建一个正逆地址解析类
export default {
props: {
dialogVisible: {
type: Boolean,
default: ''
},
defaultData: {
type: Object,
default: null
@ -204,7 +238,6 @@ export default {
components: { record },
created() {},
async mounted() {
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
this.startLoading();
@ -251,7 +284,6 @@ export default {
const url = `/actual/base/enterprise/detail/${this.detailId}`;
const { data, code, msg } = await requestPost(url);
if (code === 0) {
this.formData = { ...data };
this.initMap();
} else {
@ -289,7 +321,6 @@ export default {
},
async save() {
this.formData.agencyId = this.agencyId;
var url = '';
var params = {};
@ -421,9 +452,17 @@ export default {
/deep/ .el-textarea.is-disabled textarea.el-textarea__inner {
// border:none;background-color: transparent;
}
.div_btn {
text-align: right;
}
.div_map {
width: 100%;
width:100%;
height: 320px;
margin-left: 0px;
}
/deep/.el-dialog__body {
padding: 30px 80px;
}
.form-item::v-deep .el-form-item__label {
color: #fff;
}

12
src/views/modules/shequzhili/tuceng/anquan/anquanxuncha/index.vue

@ -1,6 +1,6 @@
<template>
<div class="g-main">
<div v-show="pageType == 'list'">
<div >
<div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'">
<div>
@ -115,8 +115,9 @@
</div>
</div>
</div>
<div v-if="pageType != 'list'">
<div >
<addForm
v-if="dialogVisible" :dialogVisible="dialogVisible"
:pageType="pageType"
:disabled="disabled"
:detailId="detailId"
@ -138,7 +139,7 @@ import axios from 'axios';
export default {
data() {
return {
return {dialogVisible: false,
disabled: false,
user: '',
agencyId: '',
@ -261,8 +262,10 @@ export default {
});
},
handleAdd(row, type) {
if (row.enterpriseId) {
this.detailId = row.enterpriseId;
}
this.pageType = type;
if (type == 'view') {
@ -270,8 +273,9 @@ export default {
} else {
this.disabled = false;
}
this.dialogVisible=true;
},
handleClose() {
handleClose() {this.dialogVisible = false;
this.pageType = 'list';
this.detailId = '';
this.getTableData();

855
src/views/modules/shequzhili/tuceng/anquan/shebei/addForm.vue

@ -1,418 +1,439 @@
<template>
<el-card>
<div class="dialog-h-content scroll-h">
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'120px'" v-if="pageType != 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="formData.equipmentName" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="设备类型" prop="equipmentCategoryCode">
<el-select v-model="formData.equipmentCategoryCode" :disabled="disabled" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in equipmentCategoryCodeArray" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人" prop="principalName">
<el-input v-model="formData.principalName" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="contactNum">
<el-input v-model="formData.contactNum" :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="location" style="display: block">
<el-select
v-model="formData.location"
style="width: 500px;"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form :inline="false" :model="formData" ref="form" :label-width="'120px'" v-if="pageType == 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="设备名称" prop="equipmentName">{{ formData.equipmentName }}</el-form-item>
<el-form-item label="设备类型" prop="equipmentCategoryCode">{{ formData.equipmentCategoryName }}</el-form-item>
<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="16">
<el-form-item label="场所地址" prop="location" style="display: block">
{{ formData.location }}
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="div_btn">
<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" v-if="pageType != 'view'"> </el-button>
</div>
<div style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div>
</el-card>
</template>
<script>
import { isMobile } from '@/utils/validate';
import { mapGetters } from 'vuex';
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 record from './record';
let loading; //
let map;
var search;
var markers;
var infoWindowList;
var geocoder; //
export default {
props: {
defaultData: {
type: Object,
default: null
},
pageType: {
type: String,
default: ''
},
detailId: {
type: String,
default: ''
},
detailData: {
type: Object,
default: null
},
disabled: {
type: Boolean,
default: false
}
},
data() {
let checkMObile = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入手机号'));
} else {
if (!isMobile(value)) {
callback(new Error('手机号格式不正确'));
}
callback();
}
};
return {
btnDisable: false,
user: '',
agencyId: '',
gridList: [], //list--
placeTypeList: [], //
resultArray: [{ value: '0', label: '合格' }, { value: '1', label: '不合格' }],
equipmentCategoryCodeArray: [],
list: {},
formData: {
equipmentName: '',
equipmentCategoryCode: '',
principalName: '',
location: '',
contactNum: ''
},
dataRule: {
equipmentName: [{ required: true, message: '设备名称不能为空', trigger: 'bulr' }],
equipmentCategoryCode: [{ required: true, message: '设备类型不能为空', trigger: 'bulr' }],
principalName: [{ required: true, message: '负责人不能为空', trigger: 'bulr' }],
contactNum: [{ required: true, validator: checkMObile, trigger: 'blur' }],
location: [{ required: true, message: '所处位置不能为空', trigger: 'blur' }]
},
//
loading: false,
searchValue: '',
searchOptions: []
};
},
watch: {},
components: { record },
created() {},
async mounted() {
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.getDetail();
} else {
this.initMap();
}
await this.endLoading();
this.endLoading();
},
methods: {
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';
let params = {
// agencyId: this.agencyId,
// purpose: 'query'
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.placeTypeList = data;
} else {
this.$message.error(msg);
}
},
async getDetail() {
const url = `/actual/base/safetyEquipment/detail/${this.detailId}`;
const { data, code, msg } = await requestPost(url);
if (code === 0) {
console.log('详情数据', data);
this.formData = { ...data };
this.initMap();
} else {
this.$message.error(msg);
}
},
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;
// });
},
async save() {
console.log('this.formData', this.formData);
var url = '';
var params = {};
if (this.pageType == 'add') {
url = '/actual/base/safetyEquipment/save';
} else {
url = '/actual/base/safetyEquipment/update';
}
params = { ...this.formData };
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success('操作成功');
this.handleCancle();
} else if (code >= 8000) {
this.$message.error(msg);
}
},
handleCancle() {
this.resetData();
this.$emit('handleClose');
},
resetData() {
this.$refs.form.resetFields();
},
//
startLoading() {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
});
},
//
endLoading() {
// clearTimeout(timer);
if (loading) {
loading.close();
}
}, // init
initMap() {
let { latitude, longitude } = this.$store.state.user;
if (this.formData.latitude && this.formData.longitude) {
latitude = this.formData.latitude;
longitude = this.formData.longitude;
}
if (!latitude || latitude == '' || latitude == '0') {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
this.$nextTick(() => {
map = new daiMap(
document.getElementById('app_event'),
{ latitude, longitude },
{
zoom: 16.2, //
pitch: 43.5, //
rotation: 45 //
}
);
//
map.on('dragend', e => {
this.handleMoveCenter(e);
});
map.setCenter(latitude, longitude);
if (this.formData.latitude) {
map.setMarker(latitude, longitude);
}
});
},
async handleMoveCenter() {
//
const { lat, lng } = map.getCenter();
this.formData.latitude = lat;
this.formData.longitude = lng;
map.setMarker(lat, lng);
let { msg, data } = await map.getAddress(lat, lng);
if (msg == 'success') {
this.formData.location = data.address;
this.searchValue = data.address;
this.searchOptions = [];
}
},
async remoteMethod(query) {
if (query !== '') {
this.loading = true;
const { msg, data } = await map.searchNearby(query);
this.loading = false;
this.resultList = [];
if (msg == 'success' && data.resultList && data.resultList.length > 0) {
if (data.resultList && data.resultList.length > 0) {
this.resultList = data.resultList;
this.searchOptions = this.resultList.map(item => {
return { value: `${item.id}`, label: `${item.address + item.name}` };
});
}
} else {
this.searchOptions = [
{
value: '0',
label: '未检索到结果'
}
];
}
} else {
this.searchOptions = [];
}
},
handleClickKey(index) {
let selPosition = this.resultList[index];
let lonlat = selPosition.lonlat.split(' ');
map.setCenter(lonlat[1], lonlat[0]);
map.setMarker(lonlat[1], lonlat[0]);
this.formData.latitude = lonlat[1];
this.formData.longitude = lonlat[0];
this.formData.location = selPosition.address + selPosition.name;
}
}
};
</script>
<style lang="scss" scoped>
@import '@/assets/scss/modules/management/form-main.scss';
@import '@/assets/scss/modules/visual/a_customize.scss';
/deep/ .el-input.is-disabled .el-input__inner,
/deep/ .el-textarea.is-disabled textarea.el-textarea__inner {
// border:none;background-color: transparent;
}
.div_map {
width: 100%;
}
.form-item::v-deep .el-form-item__label {
color: #fff;
}
.form-item {
.el-radio {
color: #fff;
}
.el-checkbox {
color: #fff;
}
}
.verifyRed::before {
content: '*';
color: #f56c6c;
margin-right: 4px;
}
.form_label_box {
width: 150px;
display: inline-block;
text-align: right;
padding-right: 12px;
}
<template>
<el-dialog title="提示" :visible.sync="dialogVisible" width="1370px" :before-close="handleCancle">
<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-row>
<el-col :span="6">
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="formData.equipmentName" :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="equipmentCategoryCode">
<el-select v-model="formData.equipmentCategoryCode" :disabled="disabled" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in equipmentCategoryCodeArray" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="负责人" prop="principalName">
<el-input v-model="formData.principalName" :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="formData.contactNum" :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="location" style="display: block">
<el-select
v-model="formData.location"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
</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-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="equipmentCategoryCode">{{ formData.equipmentCategoryName }}</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="contactNum">{{ formData.contactNum }}</el-form-item>
</el-col>
<el-col :span="6">
<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>
</div>
<div class="div_btn" v-if="pageType != 'view'">
<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 style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle"> </el-button>
<!-- <el-button type="primary" @click="handleComfirm"> </el-button> -->
</span>
</el-dialog>
</template>
<script>
import { isMobile } from '@/utils/validate';
import { mapGetters } from 'vuex';
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 record from './record';
let loading; //
let map;
var search;
var markers;
var infoWindowList;
var geocoder; //
export default {
props: {
dialogVisible: {
type: Boolean,
default: ''
},
defaultData: {
type: Object,
default: null
},
pageType: {
type: String,
default: ''
},
detailId: {
type: String,
default: ''
},
detailData: {
type: Object,
default: null
},
disabled: {
type: Boolean,
default: false
}
},
data() {
let checkMObile = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入手机号'));
} else {
if (!isMobile(value)) {
callback(new Error('手机号格式不正确'));
}
callback();
}
};
return {
btnDisable: false,
user: '',
agencyId: '',
gridList: [], //list--
placeTypeList: [], //
resultArray: [{ value: '0', label: '合格' }, { value: '1', label: '不合格' }],
equipmentCategoryCodeArray: [],
list: {},
formData: {
equipmentName: '',
equipmentCategoryCode: '',
principalName: '',
location: '',
contactNum: ''
},
dataRule: {
equipmentName: [{ required: true, message: '设备名称不能为空', trigger: 'bulr' }],
equipmentCategoryCode: [{ required: true, message: '设备类型不能为空', trigger: 'bulr' }],
principalName: [{ required: true, message: '负责人不能为空', trigger: 'bulr' }],
contactNum: [{ required: true, validator: checkMObile, trigger: 'blur' }],
location: [{ required: true, message: '所处位置不能为空', trigger: 'blur' }]
},
//
loading: false,
searchValue: '',
searchOptions: []
};
},
watch: {},
components: { record },
created() {},
async mounted() {
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.getDetail();
} else {
this.initMap();
}
await this.endLoading();
this.endLoading();
},
methods: {
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';
let params = {
// agencyId: this.agencyId,
// purpose: 'query'
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.placeTypeList = data;
} else {
this.$message.error(msg);
}
},
async getDetail() {
const url = `/actual/base/safetyEquipment/detail/${this.detailId}`;
const { data, code, msg } = await requestPost(url);
if (code === 0) {
console.log('详情数据', data);
this.formData = { ...data };
this.initMap();
} else {
this.$message.error(msg);
}
},
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;
// });
},
async save() {
console.log('this.formData', this.formData);
var url = '';
var params = {};
if (this.pageType == 'add') {
url = '/actual/base/safetyEquipment/save';
} else {
url = '/actual/base/safetyEquipment/update';
}
params = { ...this.formData };
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success('操作成功');
this.handleCancle();
} else if (code >= 8000) {
this.$message.error(msg);
}
},
handleCancle() {
this.resetData();
this.$emit('handleClose');
},
resetData() {
this.$refs.form.resetFields();
},
//
startLoading() {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
});
},
//
endLoading() {
// clearTimeout(timer);
if (loading) {
loading.close();
}
}, // init
initMap() {
let { latitude, longitude } = this.$store.state.user;
if (this.formData.latitude && this.formData.longitude) {
latitude = this.formData.latitude;
longitude = this.formData.longitude;
}
if (!latitude || latitude == '' || latitude == '0') {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
this.$nextTick(() => {
map = new daiMap(
document.getElementById('app_event'),
{ latitude, longitude },
{
zoom: 16.2, //
pitch: 43.5, //
rotation: 45 //
}
);
//
map.on('dragend', e => {
this.handleMoveCenter(e);
});
map.setCenter(latitude, longitude);
if (this.formData.latitude) {
map.setMarker(latitude, longitude);
}
});
},
async handleMoveCenter() {
//
const { lat, lng } = map.getCenter();
this.formData.latitude = lat;
this.formData.longitude = lng;
map.setMarker(lat, lng);
let { msg, data } = await map.getAddress(lat, lng);
if (msg == 'success') {
this.formData.location = data.address;
this.searchValue = data.address;
this.searchOptions = [];
}
},
async remoteMethod(query) {
if (query !== '') {
this.loading = true;
const { msg, data } = await map.searchNearby(query);
this.loading = false;
this.resultList = [];
if (msg == 'success' && data.resultList && data.resultList.length > 0) {
if (data.resultList && data.resultList.length > 0) {
this.resultList = data.resultList;
this.searchOptions = this.resultList.map(item => {
return { value: `${item.id}`, label: `${item.address + item.name}` };
});
}
} else {
this.searchOptions = [
{
value: '0',
label: '未检索到结果'
}
];
}
} else {
this.searchOptions = [];
}
},
handleClickKey(index) {
let selPosition = this.resultList[index];
let lonlat = selPosition.lonlat.split(' ');
map.setCenter(lonlat[1], lonlat[0]);
map.setMarker(lonlat[1], lonlat[0]);
this.formData.latitude = lonlat[1];
this.formData.longitude = lonlat[0];
this.formData.location = selPosition.address + selPosition.name;
}
}
};
</script>
<style lang="scss" scoped>
@import '@/assets/scss/modules/management/form-main.scss';
@import '@/assets/scss/modules/visual/a_customize.scss';
/deep/ .el-input.is-disabled .el-input__inner,
/deep/ .el-textarea.is-disabled textarea.el-textarea__inner {
// border:none;background-color: transparent;
}
.div_btn {
text-align: right;
}
.div_map {
width:100%;
height: 320px;
margin-left: 0px;
}
/deep/.el-dialog__body {
padding: 30px 80px;
}
.form-item::v-deep .el-form-item__label {
color: #fff;
}
.form-item {
.el-radio {
color: #fff;
}
.el-checkbox {
color: #fff;
}
}
.verifyRed::before {
content: '*';
color: #f56c6c;
margin-right: 4px;
}
.form_label_box {
width: 150px;
display: inline-block;
text-align: right;
padding-right: 12px;
}
</style>

12
src/views/modules/shequzhili/tuceng/anquan/shebei/index.vue

@ -1,6 +1,6 @@
<template>
<div class="g-main">
<div v-show="pageType == 'list'">
<div >
<div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'">
<div>
@ -87,8 +87,8 @@
</div>
</div>
</div>
<div v-if="pageType != 'list'">
<addForm
<div >
<addForm v-if="dialogVisible" :dialogVisible="dialogVisible"
:pageType="pageType"
:disabled="disabled"
:detailId="detailId"
@ -110,7 +110,7 @@ import axios from 'axios';
export default {
data() {
return {
return {dialogVisible: false,
importLoading: false,
disabled: false,
user: '',
@ -247,6 +247,7 @@ export default {
handleAdd(row, type) {
if (row.id) {
this.detailId = row.id;
}
this.pageType = type;
if (type == 'view') {
@ -254,8 +255,9 @@ export default {
} else {
this.disabled = false;
}
this.dialogVisible=true;
},
handleClose() {
handleClose() {this.dialogVisible = false;
this.pageType = 'list';
this.detailId = '';
this.getTableData();

299
src/views/modules/shequzhili/tuceng/anquan/yinhuan/addForm.vue

@ -1,139 +1,168 @@
<template>
<el-card>
<div class="dialog-h-content scroll-h">
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'120px'" v-if="pageType != 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="上报时间" prop="reportTime">
<template slot-scope="scope">
<el-date-picker v-model="formData.reportTime" type="date" class="input-width" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
</template>
</el-form-item>
<el-form-item label="隐患场所" prop="dangerPlaceName">
<el-input v-model="formData.dangerPlaceName" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="所属网格" prop="gridId">
<el-select class="u-item-width-normal" v-model="formData.gridId" placeholder="全部" size="small" clearable>
<el-option v-for="item in gridList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="隐患内容" prop="dangerContent">
<el-input
type="textarea"
:rows="2"
v-model="formData.dangerContent"
:disabled="disabled"
class="u-item-width-normal"
size="small"
clearable
placeholder="请输入"
></el-input>
<el-dialog title="提示" :visible.sync="dialogVisible" width="1200px" :before-close="handleCancle">
<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-row>
<el-col :span="8">
<el-form-item label="上报时间" prop="reportTime">
<template slot-scope="scope">
<el-date-picker v-model="formData.reportTime" type="date" class="input-width" value-format="yyyy-MM-dd" placeholder="选择日期" ></el-date-picker>
</template>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="隐患场所" prop="dangerPlaceName">
<el-input v-model="formData.dangerPlaceName" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所属网格" prop="gridId">
<el-select class="u-item-width-normal" v-model="formData.gridId" placeholder="全部" size="small" clearable>
<el-option v-for="item in gridList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患内容" prop="dangerContent">
<el-input
type="textarea"
:rows="2"
style="width:500px"
v-model="formData.dangerContent"
:disabled="disabled"
class="u-item-width-normal"
size="small"
clearable
placeholder="请输入"
></el-input>
<div v-if="pageType != 'view'">
<!-- :data="{ customerId: customerId }" -->
<el-upload
:headers="$getElUploadHeaders()"
class="avatar-uploader"
:action="uploadUrl"
:show-file-list="true"
:limit="3"
:file-list="formData.imgList"
:on-success="res => handleImgSuccess(res, formData)"
:on-remove="res => handleImgRemove(res, formData)"
list-type="picture"
:before-upload="beforeImgUpload"
>
<i class="el-icon-plus avatar-uploader-icon"></i>
最多三张图片
</el-upload>
</div>
<div v-if="pageType != 'view'">
<!-- :data="{ customerId: customerId }" -->
<el-upload
:headers="$getElUploadHeaders()"
class="avatar-uploader"
:action="uploadUrl"
:show-file-list="true"
:limit="3"
:file-list="formData.imgList"
:on-success="res => handleImgSuccess(res, formData)"
:on-remove="res => handleImgRemove(res, formData)"
list-type="picture"
:before-upload="beforeImgUpload"
>
<i class="el-icon-plus avatar-uploader-icon"></i>
最多三张图片
</el-upload>
</div>
<div class="div-content" v-if="pageType != 'add'">
<el-image
v-if="formData.imgList.length > 0"
style="width: 100px; height: 50px"
:src="formData.imgList[0]"
fit="cover"
:preview-src-list="formData.imgList"
></el-image>
</div>
</el-form-item>
<!-- <el-form-item label="处理情况" prop="handleState">
<div class="div-content" v-if="pageType != 'add'">
<el-image
v-if="formData.imgList.length > 0"
style="width: 100px; height: 50px"
:src="formData.imgList[0]"
fit="cover"
:preview-src-list="formData.imgList"
></el-image>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-form-item label="处理情况" prop="handleState">
<el-select v-model="formData.handleState" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in handleStateArray" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="上报人" prop="reportPerson">
<el-input v-model="formData.reportPerson" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="mobile">
<el-input v-model="formData.mobile" 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="location" style="display: block">
<el-select
v-model="formData.location"
style="width: 500px;"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form :inline="false" :model="formData" ref="form" :label-width="'120px'" v-if="pageType == 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="上报时间" prop="reportTime">{{ formData.reportTime }}</el-form-item>
<el-form-item label="隐患场所" prop="dangerPlaceName">{{ formData.dangerPlaceName }}</el-form-item>
<el-form-item label="所属网格" prop="gridId">{{ formData.gridName }}</el-form-item>
<el-form-item label="隐患内容" prop="dangerContent">
<div>{{ formData.dangerContent }}</div>
<div class="div-content">
<el-image
v-if="formData.imgList.length > 0"
style="width: 100px; height: 50px"
:src="formData.imgList[0]"
fit="cover"
:preview-src-list="formData.imgList"
></el-image>
</div>
</el-form-item>
<el-form-item label="处理情况" prop="handleStateName">{{ formData.handleStateName }}</el-form-item>
<el-form-item label="上报人" prop="reportPerson">{{ formData.reportPerson }}</el-form-item>
<el-form-item label="联系电话" prop="mobile">{{ formData.mobile }}</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="场所地址" prop="location" style="display: block">
{{ formData.location }}
<!-- <div id="app_event" class="div_map"></div> -->
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="div_btn">
<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" v-if="pageType != 'view'"> </el-button>
<el-form-item label="上报人" prop="reportPerson">
<el-input v-model="formData.reportPerson" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系电话" prop="mobile">
<el-input v-model="formData.mobile" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="隐患位置" prop="location" style="display: block">
<el-select
v-model="formData.location"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
</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-row>
<el-col :span="8">
<el-form-item label="上报时间" prop="reportTime">{{ formData.reportTime }}</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="隐患场所" prop="dangerPlaceName">{{ formData.dangerPlaceName }}</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所属网格" prop="gridId">{{ formData.gridName }}</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="隐患内容" prop="dangerContent">
<div>{{ formData.dangerContent }}</div>
<div class="div-content">
<el-image
v-if="formData.imgList.length > 0"
style="width: 100px; height: 50px"
:src="formData.imgList[0]"
fit="cover"
:preview-src-list="formData.imgList"
></el-image>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="处理情况" prop="handleStateName">{{ formData.handleStateName }}</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="上报人" prop="reportPerson">{{ formData.reportPerson }}</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系电话" prop="mobile">{{ formData.mobile }}</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="场所地址" prop="location" style="display: block">
{{ formData.location }}
<!-- <div id="app_event" class="div_map"></div> -->
</el-form-item>
</el-col>
</el-row>
<div id="app_event" class="div_map"></div>
</el-form>
</div>
<div class="div_btn" v-if="pageType != 'view'">
<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 style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div>
</div>
<div style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div>
</el-card>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle"> </el-button>
<!-- <el-button type="primary" @click="handleComfirm"> </el-button> -->
</span>
</el-dialog>
</template>
<script>
@ -153,6 +182,10 @@ var geocoder; // 新建一个正逆地址解析类
export default {
props: {
dialogVisible: {
type: Boolean,
default: ''
},
defaultData: {
type: Object,
default: null
@ -465,9 +498,17 @@ export default {
/deep/ .el-textarea.is-disabled textarea.el-textarea__inner {
// border:none;background-color: transparent;
}
.div_btn {
text-align: right;
}
.div_map {
width: 500px;
width:100%;
height: 320px;
margin-left: 0px;
}
/deep/.el-dialog__body {
padding: 30px 80px;
}
.form-item::v-deep .el-form-item__label {
color: #fff;
}

12
src/views/modules/shequzhili/tuceng/anquan/yinhuan/index.vue

@ -1,6 +1,6 @@
<template>
<div class="g-main">
<div v-show="pageType == 'list'">
<div >
<div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'">
<div>
@ -101,8 +101,8 @@
</div>
</div>
</div>
<div v-if="pageType != 'list'">
<addForm
<div >
<addForm v-if="dialogVisible" :dialogVisible="dialogVisible"
:pageType="pageType"
:disabled="disabled"
:detailId="detailId"
@ -124,7 +124,7 @@ import axios from 'axios';
export default {
data() {
return {
return {dialogVisible: false,
importLoading: false,
disabled: false,
user: '',
@ -232,6 +232,7 @@ export default {
handleAdd(row, type) {
if (row.id) {
this.detailId = row.id;
}
this.pageType = type;
if (type == 'view') {
@ -239,8 +240,9 @@ export default {
} else {
this.disabled = false;
}
this.dialogVisible=true;
},
handleClose() {
handleClose() {this.dialogVisible = false;
this.pageType = 'list';
this.detailId = '';
this.getTableData();

173
src/views/modules/shequzhili/tuceng/chengshiguanli/addForm.vue

@ -1,75 +1,85 @@
<template>
<el-card>
<div class="dialog-h-content scroll-h">
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'120px'" v-if="pageType != 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="场所名称" prop="name">
<el-input v-model="formData.name" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="所属组织" prop="gridId">
<el-select v-model="formData.gridId" class="u-item-width-normal" :disabled="disabled" placeholder="全部" size="small" clearable>
<el-option v-for="item in gridList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="场所类型" prop="category">
<el-select class="u-item-width-normal" :disabled="disabled" v-model="formData.category" placeholder="全部" size="small" clearable>
<el-option v-for="item in placeTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="场所地址" prop="address" style="display: block">
<el-select
v-model="formData.address"
style="width: 500px;"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form :inline="false" :model="formData" ref="form" :label-width="'120px'" v-if="pageType == 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="场所名称" prop="placeOrgName">{{ formData.placeOrgName }}</el-form-item>
<el-form-item label="所属组织" prop="gridId">{{ formData.gridName }}</el-form-item>
<el-form-item label="场所类型" prop="placeType">{{ formData.placeTypeName }}</el-form-item>
<!-- <el-form-item label="负责人" prop="personInCharge">{{ formData.personInCharge }}</el-form-item>
<el-dialog title="提示" :visible.sync="dialogVisible" width="1370px" :before-close="handleCancle">
<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-row>
<el-col :span="6">
<el-form-item label="场所名称" prop="name">
<el-input v-model="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="gridId">
<el-select v-model="formData.gridId" class="u-item-width-normal" :disabled="disabled" placeholder="全部" size="small" clearable>
<el-option v-for="item in gridList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所类型" prop="category">
<el-select class="u-item-width-normal" :disabled="disabled" v-model="formData.category" placeholder="全部" size="small" clearable>
<el-option v-for="item in placeTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所地址" prop="address" style="display: block">
<el-select
v-model="formData.address"
style="width: 500px;"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
</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-row>
<el-col :span="8">
<el-form-item label="场所名称" prop="placeOrgName">{{ formData.placeOrgName }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属组织" prop="gridId">{{ formData.gridName }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所类型" prop="placeType">{{ formData.placeTypeName }}</el-form-item>
<!-- <el-form-item label="负责人" prop="personInCharge">{{ formData.personInCharge }}</el-form-item>
<el-form-item label="联系电话" prop="mobile">{{ formData.areaCovered }}</el-form-item> -->
</el-col>
<el-col :span="16">
<el-form-item label="场所地址" prop="address" style="display: block">
{{ formData.address }}
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="div_btn">
<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" v-if="pageType != 'view'"> </el-button>
</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>
</div>
<div class="div_btn" v-if="pageType != 'view'">
<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>
</el-card>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle"> </el-button>
<!-- <el-button type="primary" @click="handleComfirm"> </el-button> -->
</span>
</el-dialog>
</template>
<script>
@ -89,6 +99,10 @@ var geocoder; // 新建一个正逆地址解析类
export default {
props: {
dialogVisible: {
type: Boolean,
default: ''
},
defaultData: {
type: Object,
default: null
@ -173,7 +187,7 @@ export default {
};
},
watch: {},
components: { },
components: {},
created() {},
async mounted() {
console.log('detailId', this.detailId);
@ -230,7 +244,7 @@ export default {
this.$message.error(msg);
}
},
handleComfirm() {
this.save();
},
@ -276,7 +290,6 @@ export default {
this.$message.success('操作成功');
this.resetData();
this.handleCancle();
} else if (code >= 8000) {
this.$message.error(msg);
}
@ -305,7 +318,7 @@ export default {
}, // init
initMap() {
let { latitude, longitude } = this.$store.state.user;
if (this.formData.latitude && this.formData.longitude) {
latitude = this.formData.latitude;
longitude = this.formData.longitude;
@ -314,7 +327,7 @@ export default {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
this.$nextTick(() => {
map = new daiMap(
document.getElementById('app_event'),
@ -329,7 +342,7 @@ export default {
map.on('dragend', e => {
this.handleMoveCenter(e);
});
map.setCenter(latitude, longitude);
if (this.formData.latitude) {
map.setMarker(latitude, longitude);
@ -396,9 +409,17 @@ export default {
/deep/ .el-textarea.is-disabled textarea.el-textarea__inner {
// border:none;background-color: transparent;
}
.div_btn {
text-align: right;
}
.div_map {
width: 100%;
width:100%;
height: 320px;
margin-left: 0px;
}
/deep/.el-dialog__body {
padding: 30px 80px;
}
.form-item::v-deep .el-form-item__label {
color: #fff;
}

12
src/views/modules/shequzhili/tuceng/chengshiguanli/index.vue

@ -1,6 +1,6 @@
<template>
<div class="g-main">
<div v-show="pageType == 'list'">
<div >
<div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'">
<div>
@ -105,8 +105,8 @@
</div>
</div>
</div>
<div v-if="pageType != 'list'">
<addForm
<div >
<addForm v-if="dialogVisible" :dialogVisible="dialogVisible"
:pageType="pageType"
:disabled="disabled"
:detailId="detailId"
@ -128,7 +128,7 @@ import axios from 'axios';
export default {
data() {
return {
return {dialogVisible: false,
disabled: false,
user: '',
agencyId: '',
@ -248,6 +248,7 @@ export default {
handleAdd(row, type) {
if (row.id) {
this.detailId = row.id;
}
this.pageType = type;
if (type == 'view') {
@ -255,8 +256,9 @@ export default {
} else {
this.disabled = false;
}
this.dialogVisible=true;
},
handleClose() {
handleClose() {this.dialogVisible = false;
this.pageType = 'list';
this.detailId = '';
this.getTableData();

191
src/views/modules/shequzhili/tuceng/gonggongfuwu/addForm.vue

@ -1,80 +1,99 @@
<template>
<el-card>
<div class="dialog-h-content scroll-h">
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'120px'" v-if="pageType != 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="formData.equipmentName" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="设备编号" prop="equipmentNum">
<el-input v-model="formData.equipmentNum" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="设备类型" prop="equipmentCategoryCode">
<el-select v-model="formData.equipmentCategoryCode" :disabled="disabled" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in equipmentCategoryCodeArray" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人" prop="principalName">
<el-input v-model="formData.principalName" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="contactNum">
<el-input v-model="formData.contactNum" :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="location" style="display: block">
<!-- <el-input v-model="formData.location" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input> -->
<el-select
v-model="formData.location"
style="width: 500px;"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form :inline="false" :model="formData" ref="form" :label-width="'120px'" v-if="pageType == 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="设备名称" prop="equipmentName">{{ formData.equipmentName }}</el-form-item>
<el-form-item label="设备编号" prop="equipmentNum">{{ formData.equipmentNum }}</el-form-item>
<el-form-item label="设备类型" prop="equipmentCategoryCode">{{ formData.equipmentCategoryName }}</el-form-item>
<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="16">
<el-form-item label="场所地址" prop="location" style="display: block">
{{ formData.location }}
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="div_btn">
<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" v-if="pageType != 'view'"> </el-button>
<el-dialog title="提示" :visible.sync="dialogVisible" width="1370px" :before-close="handleCancle">
<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-row>
<el-col :span="6">
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="formData.equipmentName" :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="equipmentNum">
<el-input v-model="formData.equipmentNum" :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="equipmentCategoryCode">
<el-select v-model="formData.equipmentCategoryCode" :disabled="disabled" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in equipmentCategoryCodeArray" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="负责人" prop="principalName">
<el-input v-model="formData.principalName" :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="formData.contactNum" :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="location" style="display: block">
<!-- <el-input v-model="formData.location" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input> -->
<el-select
v-model="formData.location"
style="width: 500px;"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
</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-row>
<el-col :span="8">
<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="equipmentCategoryCode">{{ formData.equipmentCategoryName }}</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="contactNum">{{ formData.contactNum }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所地址" prop="location">{{ formData.location }}</el-form-item>
</el-col>
</el-row>
<div id="app_event" class="div_map"></div>
</el-form>
</div>
<div class="div_btn" v-if="pageType != 'view'">
<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 style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div> -->
</div>
<!-- <div style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div> -->
</el-card>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle"> </el-button>
<!-- <el-button type="primary" @click="handleComfirm"> </el-button> -->
</span>
</el-dialog>
</template>
<script>
@ -94,6 +113,10 @@ var geocoder; // 新建一个正逆地址解析类
export default {
props: {
dialogVisible: {
type: Boolean,
default: ''
},
defaultData: {
type: Object,
default: null
@ -292,7 +315,7 @@ export default {
}, // init
initMap() {
let { latitude, longitude } = this.$store.state.user;
if (this.formData.latitude && this.formData.longitude) {
latitude = this.formData.latitude;
longitude = this.formData.longitude;
@ -301,7 +324,7 @@ export default {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
this.$nextTick(() => {
map = new daiMap(
document.getElementById('app_event'),
@ -316,7 +339,7 @@ export default {
map.on('dragend', e => {
this.handleMoveCenter(e);
});
map.setCenter(latitude, longitude);
if (this.formData.latitude) {
map.setMarker(latitude, longitude);
@ -331,7 +354,7 @@ export default {
map.setMarker(lat, lng);
let { msg, data } = await map.getAddress(lat, lng);
console.log("mapdata",data)
console.log('mapdata', data);
if (msg == 'success') {
this.formData.location = data.address;
this.searchValue = data.address;
@ -384,9 +407,17 @@ export default {
/deep/ .el-textarea.is-disabled textarea.el-textarea__inner {
// border:none;background-color: transparent;
}
.div_btn {
text-align: right;
}
.div_map {
width: 100%;
width:100%;
height: 320px;
margin-left: 0px;
}
/deep/.el-dialog__body {
padding: 30px 80px;
}
.form-item::v-deep .el-form-item__label {
color: #fff;
}

12
src/views/modules/shequzhili/tuceng/gonggongfuwu/index.vue

@ -1,6 +1,6 @@
<template>
<div class="g-main">
<div v-show="pageType == 'list'">
<div >
<div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'">
<div>
@ -85,8 +85,8 @@
</div>
</div>
</div>
<div v-if="pageType != 'list'">
<addForm
<div >
<addForm v-if="dialogVisible" :dialogVisible="dialogVisible"
:pageType="pageType"
:disabled="disabled"
:detailId="detailId"
@ -108,7 +108,7 @@ import axios from 'axios';
export default {
data() {
return {
return {dialogVisible: false,
importLoading: false,
disabled: false,
user: '',
@ -236,6 +236,7 @@ export default {
console.log(row);
if (row.id) {
this.detailId = row.id;
}
this.pageType = type;
if (type == 'view') {
@ -243,8 +244,9 @@ export default {
} else {
this.disabled = false;
}
this.dialogVisible=true;
},
handleClose() {
handleClose() {this.dialogVisible = false;
this.pageType = 'list';
this.detailId = '';
this.getTableData();

175
src/views/modules/shequzhili/tuceng/yingji/changsuo/addForm.vue

@ -1,75 +1,89 @@
<template>
<el-card>
<div class="dialog-h-content scroll-h">
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'120px'" v-if="pageType != 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="场所名称" prop="name">
<el-input v-model="formData.name" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="场所类型" prop="category">
<el-select v-model="formData.category" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in placeTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="占地面积" prop="areaCovered">
<el-input v-model="formData.areaCovered" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="场所规模" prop="capacity">
<el-input v-model="formData.capacity" :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="address" style="display: block">
<el-select
v-model="formData.address"
style="width: 200px;"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form :inline="false" :model="formData" ref="form" :label-width="'120px'" v-if="pageType == 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="设备名称" prop="equipmentName">{{ formData.equipmentName }}</el-form-item>
<el-form-item label="设备类型" prop="equipmentCategoryCode">{{ formData.equipmentCategoryName }}</el-form-item>
<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="16">
<el-form-item label="场所地址" prop="location" style="display: block">
{{ formData.location }}
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="div_btn">
<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" v-if="pageType != 'view'"> </el-button>
<el-dialog :title="title" :visible.sync="dialogVisible" width="1370px" :before-close="handleCancle">
<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-row>
<el-col :span="6">
<el-form-item label="场所名称" prop="name">
<el-input v-model="formData.name" 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="category">
<el-select v-model="formData.category" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in placeTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="占地面积" prop="areaCovered">
<el-input v-model="formData.areaCovered" :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="capacity">
<el-input v-model="formData.capacity" :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="address" style="display: block">
<el-select
v-model="formData.address"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
</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-row>
<el-col :span="8">
<el-form-item label="设备名称" prop="equipmentName">{{ formData.equipmentName }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备类型" prop="equipmentCategoryCode">{{ formData.equipmentCategoryName }}</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="contactNum">{{ formData.contactNum }}</el-form-item>
</el-col>
<el-col :span="6">
<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>
</div>
<div class="div_btn" v-if="pageType != 'view'">
<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 style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div>
</div>
<div style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div>
</el-card>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle"> </el-button>
<!-- <el-button type="primary" @click="handleComfirm"> </el-button> -->
</span>
</el-dialog>
</template>
<script>
@ -89,6 +103,10 @@ var geocoder; // 新建一个正逆地址解析类
export default {
props: {
dialogVisible: {
type: Boolean,
default: ''
},
defaultData: {
type: Object,
default: null
@ -123,6 +141,7 @@ export default {
}
};
return {
title: '',
btnDisable: false,
user: '',
agencyId: '',
@ -286,7 +305,7 @@ export default {
}, // init
initMap() {
let { latitude, longitude } = this.$store.state.user;
if (this.formData.latitude && this.formData.longitude) {
latitude = this.formData.latitude;
longitude = this.formData.longitude;
@ -295,7 +314,7 @@ export default {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
this.$nextTick(() => {
map = new daiMap(
document.getElementById('app_event'),
@ -310,7 +329,7 @@ export default {
map.on('dragend', e => {
this.handleMoveCenter(e);
});
map.setCenter(latitude, longitude);
if (this.formData.latitude) {
map.setMarker(latitude, longitude);
@ -377,9 +396,17 @@ export default {
/deep/ .el-textarea.is-disabled textarea.el-textarea__inner {
// border:none;background-color: transparent;
}
.div_btn {
text-align: right;
}
.div_map {
width: 100%;
width:100%;
height: 320px;
margin-left: 0px;
}
/deep/.el-dialog__body {
padding: 30px 80px;
}
.form-item::v-deep .el-form-item__label {
color: #fff;
}

12
src/views/modules/shequzhili/tuceng/yingji/changsuo/index.vue

@ -1,6 +1,6 @@
<template>
<div class="g-main">
<div v-show="pageType == 'list'">
<div >
<div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'">
<div>
@ -83,8 +83,8 @@
</div>
</div>
</div>
<div v-if="pageType != 'list'">
<addForm
<div >
<addForm v-if="dialogVisible" :dialogVisible="dialogVisible"
:pageType="pageType"
:disabled="disabled"
:detailId="detailId"
@ -106,7 +106,7 @@ import axios from 'axios';
export default {
data() {
return {
return {dialogVisible: false,
importLoading: false,
disabled: false,
user: '',
@ -228,6 +228,7 @@ export default {
handleAdd(row, type) {
if (row.equipmentId) {
this.detailId = row.equipmentId;
}
this.pageType = type;
if (type == 'view') {
@ -235,8 +236,9 @@ export default {
} else {
this.disabled = false;
}
this.dialogVisible=true;
},
handleClose() {
handleClose() {this.dialogVisible = false;
this.pageType = 'list';
this.detailId = '';
this.getTableData();

187
src/views/modules/shequzhili/tuceng/yingji/wuzi/addForm.vue

@ -1,79 +1,97 @@
<template>
<el-card>
<div class="dialog-h-content scroll-h">
<el-form :inline="true" :model="formData" ref="form" :rules="dataRule" :label-width="'120px'" v-if="pageType != 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="formData.equipmentName" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="设备编号" prop="equipmentNum">
<el-input v-model="formData.equipmentNum" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="设备类型" prop="equipmentCategoryCode">
<el-select v-model="formData.equipmentCategoryCode" :disabled="disabled" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in equipmentCategoryCodeArray" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人" prop="principalName">
<el-input v-model="formData.principalName" :disabled="disabled" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="contactNum">
<el-input v-model="formData.contactNum" :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="location" style="display: block">
<el-select
v-model="formData.location"
style="width: 200px;"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form :inline="false" :model="formData" ref="form" :label-width="'120px'" v-if="pageType == 'view'">
<el-row>
<el-col :span="8">
<el-form-item label="设备名称" prop="equipmentName">{{ formData.equipmentName }}</el-form-item>
<el-form-item label="设备编号" prop="equipmentNum">{{ formData.equipmentNum }}</el-form-item>
<el-form-item label="设备类型" prop="equipmentCategoryCode">{{ formData.equipmentCategoryName }}</el-form-item>
<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="16">
<el-form-item label="场所地址" prop="location" style="display: block">
{{ formData.location }}
<div id="app_event" class="div_map"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="div_btn">
<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" v-if="pageType != 'view'"> </el-button>
<el-dialog title="提示" :visible.sync="dialogVisible" width="1370px" :before-close="handleCancle">
<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-row>
<el-col :span="6">
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="formData.equipmentName" :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="equipmentNum">
<el-input v-model="formData.equipmentNum" :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="equipmentCategoryCode">
<el-select v-model="formData.equipmentCategoryCode" :disabled="disabled" placeholder="请选择" size="small" clearable class="u-item-width-normal">
<el-option v-for="item in equipmentCategoryCodeArray" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="负责人" prop="principalName">
<el-input v-model="formData.principalName" :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="formData.contactNum" :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="location" style="display: block">
<el-select
v-model="formData.location"
:disabled="disabled"
filterable
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<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>
</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-row>
<el-col :span="8">
<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="equipmentCategoryCode">{{ formData.equipmentCategoryName }}</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="contactNum">{{ formData.contactNum }}</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="场所地址" prop="location">{{ formData.location }}</el-form-item>
</el-col>
</el-row>
<div id="app_event" class="div_map"></div>
</el-form>
</div>
<div class="div_btn" v-if="pageType != 'view'">
<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 style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div>
</div>
<div style="margin-top: 30px;"><record v-if="pageType != 'add' && detailId" :formType="pageType" :id="detailId" :info="{ agencyId: agencyId }"></record></div>
</el-card>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle">关闭</el-button>
<!-- <el-button type="primary" @click="handleComfirm"> </el-button> -->
</span>
</el-dialog>
</template>
<script>
@ -93,6 +111,10 @@ var geocoder; // 新建一个正逆地址解析类
export default {
props: {
dialogVisible: {
type: Boolean,
default: ''
},
defaultData: {
type: Object,
default: null
@ -310,7 +332,7 @@ export default {
}, // init
initMap() {
let { latitude, longitude } = this.$store.state.user;
if (this.formData.latitude && this.formData.longitude) {
latitude = this.formData.latitude;
longitude = this.formData.longitude;
@ -319,7 +341,7 @@ export default {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
this.$nextTick(() => {
map = new daiMap(
document.getElementById('app_event'),
@ -334,7 +356,7 @@ export default {
map.on('dragend', e => {
this.handleMoveCenter(e);
});
map.setCenter(latitude, longitude);
if (this.formData.latitude) {
map.setMarker(latitude, longitude);
@ -401,9 +423,17 @@ export default {
/deep/ .el-textarea.is-disabled textarea.el-textarea__inner {
// border:none;background-color: transparent;
}
.div_btn {
text-align: right;
}
.div_map {
width: 100%;
width:100%;
height: 320px;
margin-left: 0px;
}
/deep/.el-dialog__body {
padding: 30px 80px;
}
.form-item::v-deep .el-form-item__label {
color: #fff;
}
@ -427,4 +457,5 @@ export default {
text-align: right;
padding-right: 12px;
}
</style>

11
src/views/modules/shequzhili/tuceng/yingji/wuzi/index.vue

@ -1,6 +1,6 @@
<template>
<div class="g-main">
<div v-show="pageType == 'list'">
<div >
<div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'">
<div>
@ -100,8 +100,8 @@
</div>
</div>
</div>
<div v-if="pageType != 'list'">
<addForm
<div >
<addForm v-if="dialogVisible" :dialogVisible="dialogVisible"
:pageType="pageType"
:disabled="disabled"
:detailId="detailId"
@ -123,7 +123,7 @@ import axios from 'axios';
export default {
data() {
return {
return {dialogVisible: false,
importLoading: false,
disabled: false,
user: '',
@ -265,6 +265,7 @@ export default {
handleAdd(row, type) {
if (row.id) {
this.detailId = row.id;
}
this.pageType = type;
if (type == 'view') {
@ -272,8 +273,10 @@ export default {
} else {
this.disabled = false;
}
this.dialogVisible=true;
},
handleClose() {
this.dialogVisible = false;
this.pageType = 'list';
this.detailId = '';
this.getTableData();

Loading…
Cancel
Save