diff --git a/src/main.js b/src/main.js index 1bf35aa3d..51a5d6bea 100644 --- a/src/main.js +++ b/src/main.js @@ -1,8 +1,7 @@ import Vue from "vue"; import Element from "element-ui"; -import Mint from 'mint-ui'; -import 'mint-ui/lib/style.css'; - +import Mint from "mint-ui"; +import "mint-ui/lib/style.css"; import App from "@/App"; import i18n from "@/i18n"; @@ -36,10 +35,9 @@ import getQueryPara from "dai-js/modules/getQueryPara"; // 兼容token传参登录 if (getQueryPara("token")) { - console.log('token', getQueryPara("token")); + console.log("token", getQueryPara("token")); localStorage.setItem("token", getQueryPara("token")); - console.log('token222222', localStorage.getItem('token')); - + console.log("token222222", localStorage.getItem("token")); } window.app = Object.assign( @@ -70,23 +68,30 @@ Vue.use(Element, { }); // 弹窗底部滚动问题 弹窗需配合v-if使用 -Vue.directive('fixed', { +Vue.directive("fixed", { inserted() { - let scrollTop = document.body.scrollTop || document.documentElement.scrollTop - document.body.style.cssText += 'position:fixed;width:100%;top:-' + scrollTop + 'px;' - }, - unbind () { - let body = document.body - body.style.position = '' - let top = body.style.top - document.body.scrollTop = document.documentElement.scrollTop = -parseInt(top) - body.style.top = '' - } -}) - + let scrollTop = + document.body.scrollTop || document.documentElement.scrollTop; + document.body.style.cssText += + "position:fixed;width:100%;top:-" + scrollTop + "px;"; + }, + unbind() { + let body = document.body; + body.style.position = ""; + let top = body.style.top; + document.body.scrollTop = document.documentElement.scrollTop = + -parseInt(top); + body.style.top = ""; + }, +}); // 挂载全局 Vue.prototype.$http = http; + +// el-uploader的header配置 +Vue.prototype.$getElUploadHeaders = () => ({ + Authorization: localStorage.getItem("token") || "", +}); // Vue.prototype.$getDictLabel = getDictLabel // 保存整站vuex本地储存初始状态 diff --git a/src/views/components/CUpload.vue b/src/views/components/CUpload.vue index 2a9464b85..c820d6cc9 100644 --- a/src/views/components/CUpload.vue +++ b/src/views/components/CUpload.vue @@ -1,6 +1,6 @@ @@ -254,43 +292,42 @@ import formVltHelper from "dai-js/tools/formVltHelper"; import { isCard } from "@/utils/validate"; let loading; // 加载动画 -var map -var search -var markers -var infoWindowList -var geocoder // 新建一个正逆地址解析类 +var map; +var search; +var markers; +var infoWindowList; +var geocoder; // 新建一个正逆地址解析类 -function iniFmData () { +function iniFmData() { return { - gridId: '',//所属网格 - reportUserId: '',// 报事人ID - name: '',// 报事人姓名 - mobile: '',// 手机号 - idCard: '',// 身份证号 - sourceType: '',// 反映渠道 - happenTime: '',//发生时间 - eventContent: '',// 事件内容 - imageList: [],// 图片集合 - // categoryList: [],// 二类分类Id - address: '',//事件地址 - latitude: '',// 经度 - longitude: '',//维度 - // operationType: '',// 处理方式 - // content: '',//回复内容 - // status: '',// 处理中:processing;已办结:closed_case + gridId: "", //所属网格 + reportUserId: "", // 报事人ID + name: "", // 报事人姓名 + mobile: "", // 手机号 + idCard: "", // 身份证号 + sourceType: "", // 反映渠道 + happenTime: "", //发生时间 + eventContent: "", // 事件内容 + imageList: [], // 图片集合 + // categoryList: [],// 二类分类Id + address: "", //事件地址 + latitude: "", // 经度 + longitude: "", //维度 + // operationType: '',// 处理方式 + // content: '',//回复内容 + // status: '',// 处理中:processing;已办结:closed_case }; } export default { - data () { + data() { return { formType: "add", //表单操作类型 add新增,edit编辑,detail详情 btnDisable: false, - gridList: [],//所属网格list--场所区域 + gridList: [], //所属网格list--场所区域 qudaoArray: [ - { value: "1", label: "多媒体反应", @@ -311,37 +348,35 @@ export default { formData: iniFmData(), - - //地图相关 - keyWords: '', - isFirst: true,//地图是否首次加载,首次加载不给地址赋值 + keyWords: "", + isFirst: true, //地图是否首次加载,首次加载不给地址赋值 //图片相关 oss/file/uploadvariedfile - dialogImageUrl: 'oss/file/uploadvariedfile', - uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile', + dialogImageUrl: "oss/file/uploadvariedfile", + uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile", // upload_url: '', // 上传URL - upload_name: '', // 图片或视频名称 + upload_name: "", // 图片或视频名称 replayImgList: [], okflag: false, formDataSearch: { - gridId: '', - name: '' + gridId: "", + name: "", }, personTableShow: false, - selGridId: '', - selPersonIndex: '', + selGridId: "", + selPersonIndex: "", selPerson: {}, demandUserList: [], - hideUploadBtn: false + hideUploadBtn: false, }; }, components: {}, computed: { - dataRule () { + dataRule() { let checkIdCard = (rule, value, callback) => { if (value === "") { callback(new Error("请输入身份证")); @@ -357,10 +392,10 @@ export default { gridId: [ { required: true, message: "所属网格不能为空", trigger: "blur" }, ], - name: [ - { required: true, message: "报事人不能为空", trigger: "blur" }, + name: [{ required: true, message: "报事人不能为空", trigger: "blur" }], + mobile: [ + { required: true, message: "手机号不能为空", trigger: "blur" }, ], - mobile: [{ required: true, message: "手机号不能为空", trigger: "blur" }], // idCard: [ // { required: true, message: "身份证号不能为空", trigger: "blur" }, // { required: true, validator: checkIdCard, trigger: "blur" }, @@ -382,356 +417,332 @@ export default { ], }; }, - - }, props: {}, watch: { "formData.name": function (val) { - this.$emit("changeName", val) + this.$emit("changeName", val); }, "formData.mobile": function (val) { - this.$emit("changeMobile", val) + this.$emit("changeMobile", val); }, "formData.reportUserId": function (val) { - this.$emit("changeUserId", val) + this.$emit("changeUserId", val); }, "formData.gridId": function (val) { - this.selGridId = val - this.$emit("changeGridId", val) - } + this.selGridId = val; + this.$emit("changeGridId", val); + }, }, - async mounted () { - const { user } = this.$store.state - this.agencyId = user.agencyId + async mounted() { + const { user } = this.$store.state; + this.agencyId = user.agencyId; let { latitude, longitude } = this.$store.state.user; if (!latitude || latitude == "" || latitude == "0") { latitude = 39.9088810666821; longitude = 116.39743841556731; } - this.formData.latitude = latitude - this.formData.longitude = longitude + this.formData.latitude = latitude; + this.formData.longitude = longitude; - this.initMap() + this.initMap(); this.loadGrid(); - this.getCategoryList() - - - + this.getCategoryList(); }, methods: { - async handleShowPersonList () { + async handleShowPersonList() { if (this.formData.gridId) { - await this.handleChangeGrid() - this.personTableShow = true + await this.handleChangeGrid(); + this.personTableShow = true; } else { this.$message.info("请先选择网格"); } - }, - diaClose () { + diaClose() { this.personTableShow = false; - }, - handleComfirmSelPerson () { - + handleComfirmSelPerson() { if (this.selPersonIndex === 0 || this.selPersonIndex) { - let selPerson = this.demandUserList[this.selPersonIndex] - this.formData.name = selPerson.demandUserName - this.formData.mobile = selPerson.demandUserMobile - this.formData.reportUserId = selPerson.demandUserId - this.formData.idCard = selPerson.idCard + let selPerson = this.demandUserList[this.selPersonIndex]; + this.formData.name = selPerson.demandUserName; + this.formData.mobile = selPerson.demandUserMobile; + this.formData.reportUserId = selPerson.demandUserId; + this.formData.idCard = selPerson.idCard; this.personTableShow = false; - } else { this.$message.info("请选择人员"); } - }, - - - async handleChangeGrid () { - - const url = "/epmetuser/icresiuser/demandusers" + async handleChangeGrid() { + const url = "/epmetuser/icresiuser/demandusers"; // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/epidemicPrevention/page" let params = { - agencyId: '', + agencyId: "", gridId: this.selGridId, name: "", - } + }; - const { data, code, msg } = await requestPost(url, params) + const { data, code, msg } = await requestPost(url, params); if (code === 0) { this.demandUserList = data; - } else { - this.$message.error(msg) + this.$message.error(msg); } - this.tableLoading = false + this.tableLoading = false; }, - - - - async loadGrid () { - const url = "/gov/org/customergrid/gridoption" + async loadGrid() { + const url = "/gov/org/customergrid/gridoption"; let params = { agencyId: this.agencyId, - purpose: "addorupdate" - } + purpose: "addorupdate", + }; - const { data, code, msg } = await requestPost(url, params) + const { data, code, msg } = await requestPost(url, params); if (code === 0) { - this.gridList = data - + this.gridList = data; } else { - this.$message.error(msg) + this.$message.error(msg); } - }, - async getCategoryList () { - const url = "/gov/issue/issueprojectcategorydict/list" + async getCategoryList() { + const url = "/gov/issue/issueprojectcategorydict/list"; - let params = {} + let params = {}; - const { data, code, msg } = await requestPost(url, params) + const { data, code, msg } = await requestPost(url, params); if (code === 0) { - - let treeDataNew = this.filterTree(data) + let treeDataNew = this.filterTree(data); // this.categrayList = data //组织级联数据 - ++this.iscascaderShow - this.casOptions = [] - this.selCategoryArray = [] - - this.casOptions = treeDataNew + ++this.iscascaderShow; + this.casOptions = []; + this.selCategoryArray = []; + this.casOptions = treeDataNew; } else { - this.$message.error(msg) + this.$message.error(msg); } - }, //重构树,去除网格 - filterTree (arr) { - let childs = arr + filterTree(arr) { + let childs = arr; for (let i = childs.length; i--; i > 0) { if (childs[i].subCategory) { if (childs[i].subCategory.length) { - this.filterTree(childs[i].subCategory) + this.filterTree(childs[i].subCategory); } else { - delete childs[i].subCategory + delete childs[i].subCategory; } } } - return arr + return arr; }, - handleChangeAgency (value) { + handleChangeAgency(value) { // this.agencyName = this.$refs["myCascader"].getCheckedNodes()[0].label // this.orgId = this.selCategoryArray.length > 0 ? this.selCategoryArray[this.selCategoryArray.length - 1] : '' - - }, - async getEventInfo () { - this.okflag = false + async getEventInfo() { + this.okflag = false; this.$refs["ref_form1"].validate((valid, messageObj) => { - if (!valid) { app.util.validateRule(messageObj); - return false - + return false; } else { this.$refs["ref_form2"].validate((valid, messageObj) => { - if (!valid) { app.util.validateRule(messageObj); - return false + return false; } else { if (!formVltHelper.userOrMobile(this.formData.mobile)) { this.$message({ type: "error", message: "手机号格式有误", }); - return false + return false; } - const regCard = /(^\d{15}$)|(^\d{17}(\d|X)$)/; //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X - if (this.formData.idCard && regCard.test(this.formData.idCard) === false) { - + const regCard = /(^\d{15}$)|(^\d{17}(\d|X)$)/; //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X + if ( + this.formData.idCard && + regCard.test(this.formData.idCard) === false + ) { this.$message({ - type: 'warning', - message: '请输入正确的身份证号码' - }) + type: "warning", + message: "请输入正确的身份证号码", + }); return false; } - this.okflag = true - + this.okflag = true; } }); - } }); }, - - removePic (file, fileList) { - - this.formData.imageList.splice(this.formData.imageList.findIndex(item => item === file.url), 1) - this.replayImgList.splice(this.replayImgList.findIndex(item => item.uid === file.uid), 1) + removePic(file, fileList) { + this.formData.imageList.splice( + this.formData.imageList.findIndex((item) => item === file.url), + 1 + ); + this.replayImgList.splice( + this.replayImgList.findIndex((item) => item.uid === file.uid), + 1 + ); this.hideUploadBtn = fileList.length >= 3; - }, // 最多上传3张图,超过时隐藏上传按钮 - handleEditChange (file, fileList) { - + handleEditChange(file, fileList) { this.hideUploadBtn = fileList.length >= 3; }, - exceedPic () { - this.$message.warning("最多上传3张预览图片") - + exceedPic() { + this.$message.warning("最多上传3张预览图片"); }, - handleSuccess (response, file, fileList) { - this.replayImgList.push(file) - this.formData.imageList.push(response.data.url) - + handleSuccess(response, file, fileList) { + this.replayImgList.push(file); + this.formData.imageList.push(response.data.url); }, // 地图初始化函数,本例取名为init,开发者可根据实际情况定义 - initMap () { + initMap() { // 定义地图中心点坐标 - var center = new window.TMap.LatLng(this.formData.latitude, this.formData.longitude) + var center = new window.TMap.LatLng( + this.formData.latitude, + this.formData.longitude + ); // 定义map变量,调用 TMap.Map() 构造函数创建地图 - map = new window.TMap.Map(document.getElementById('app'), { + map = new window.TMap.Map(document.getElementById("app"), { center: center, // 设置地图中心点坐标 zoom: 17.2, // 设置地图缩放级别 pitch: 43.5, // 设置俯仰角 - rotation: 45 // 设置地图旋转角度 - }) + rotation: 45, // 设置地图旋转角度 + }); - search = new window.TMap.service.Search({ pageSize: 10 }) + search = new window.TMap.service.Search({ pageSize: 10 }); // 新建一个地点搜索类 markers = new TMap.MultiMarker({ map: map, - geometries: [] - }) - infoWindowList = Array(10) + geometries: [], + }); + infoWindowList = Array(10); geocoder = new TMap.service.Geocoder(); // 新建一个正逆地址解析类 // 监听地图平移结束 - map.on('panend', () => { - this.handleMoveCenter() - }) - this.handleMoveCenter() + map.on("panend", () => { + this.handleMoveCenter(); + }); + this.handleMoveCenter(); // this.convert() }, - setMarker (lat, lng) { - markers.setGeometries([]) + setMarker(lat, lng) { + markers.setGeometries([]); markers.add([ { - id: '4', - styleId: 'marker', + id: "4", + styleId: "marker", position: new TMap.LatLng(lat, lng), properties: { - title: 'marker4' - } - } - ]) + title: "marker4", + }, + }, + ]); }, - handleSearchMap () { + handleSearchMap() { infoWindowList.forEach((infoWindow) => { - infoWindow.close() - }) - infoWindowList.length = 0 - markers.setGeometries([]) + infoWindow.close(); + }); + infoWindowList.length = 0; + markers.setGeometries([]); // 在地图显示范围内以给定的关键字搜索地点 search .searchRectangle({ keyword: this.keyWords, - bounds: map.getBounds() + bounds: map.getBounds(), }) .then((result) => { - let { data } = result + let { data } = result; if (Array.isArray(data) && data.length > 0) { const { - location: { lat, lng } - } = data[0] - - - map.setCenter(new TMap.LatLng(lat, lng)) - this.setMarker(lat, lng) - this.formData.latitude = lat - this.formData.longitude = lng - this.convert() + location: { lat, lng }, + } = data[0]; + + map.setCenter(new TMap.LatLng(lat, lng)); + this.setMarker(lat, lng); + this.formData.latitude = lat; + this.formData.longitude = lng; + this.convert(); } else { - this.$message.error('未检索到相关位置坐标') + this.$message.error("未检索到相关位置坐标"); } - }) + }); }, - handleMoveCenter () { + handleMoveCenter() { //修改地图中心点 - const center = map.getCenter() - const lat = center.getLat() - const lng = center.getLng() - this.formData.latitude = lat - this.formData.longitude = lng - this.setMarker(lat, lng) - this.convert(lat, lng) + const center = map.getCenter(); + const lat = center.getLat(); + const lng = center.getLng(); + this.formData.latitude = lat; + this.formData.longitude = lng; + this.setMarker(lat, lng); + this.convert(lat, lng); }, - convert (lat, lng) { + convert(lat, lng) { markers.setGeometries([]); // var input = document.getElementById('location').value.split(','); - let location + let location; if (lat && lng) { location = new TMap.LatLng(lat, lng); } else { - location = new TMap.LatLng(this.formData.latitude, this.formData.longitude); + location = new TMap.LatLng( + this.formData.latitude, + this.formData.longitude + ); } // map.setCenter(location); markers.updateGeometries([ { - id: 'main', // 点标注数据数组 + id: "main", // 点标注数据数组 position: location, }, ]); geocoder .getAddress({ location: location }) // 将给定的坐标位置转换为地址 .then((result) => { - - if (!this.isFirst) {//再次查询时再赋值 - this.formData.address = result.result.address + if (!this.isFirst) { + //再次查询时再赋值 + this.formData.address = result.result.address; } if (this.isFirst) { - this.isFirst = false + this.isFirst = false; } }); }, - - resetData () { - + resetData() { this.formData = iniFmData(); - this.replayImgList = [] + this.replayImgList = []; }, // 开启加载动画 - startLoading () { + startLoading() { loading = Loading.service({ lock: true, // 是否锁定 text: "正在加载……", // 加载中需要显示的文字 @@ -739,7 +750,7 @@ export default { }); }, // 结束加载动画 - endLoading () { + endLoading() { // clearTimeout(timer); if (loading) { loading.close(); @@ -754,7 +765,6 @@ export default { scoped > -