1 |
- {"version":3,"sources":["webpack:///./resources/src/views/areas/Form.vue?a523","webpack:///resources/src/views/areas/Form.vue","webpack:///./resources/src/views/areas/Form.vue?4fc7","webpack:///./resources/src/views/areas/Form.vue","webpack:///./resources/src/views/areas/Form.vue?fe55","webpack:///./resources/src/components/LzForm/index.vue?0a68","webpack:///./resources/src/components/LzForm/index.vue?6710","webpack:///resources/src/components/LzForm/index.vue","webpack:///./resources/src/components/LzForm/index.vue","webpack:///./resources/src/components/LzForm/index.vue?4c9f","webpack:///./resources/src/api/area.js","webpack:///./resources/src/components/LzForm/FormHelper.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","staticStyle","attrs","height","scopedSlots","_u","key","fn","proxy","searchOption","onSearchResult","plugin","center","defaultCursor","zoom","amapManager","events","_l","marker","index","position","visible","draggable","icon","addFenceDisabled","on","addFence","_v","addFuSheFenceDisabled","addFusheFence","removeFence","ref","onSubmit","errors","form","editMode","rules","$event","model","value","callback","$$v","$set","expression","staticRenderFns","component","name","components","FlexSpacer","inject","view","from","default","data","loading","stay","props","getData","Function","submit","Object","submitText","type","String","labelPosition","inDialog","Boolean","createdRedirect","p","length","updatedRedirect","$router","back","bind","disableRedirect","disableStay","computed","realLabelPosition","$store","state","miniWidth","created","copyMethods","methods","Form","m","apply","$refs","arguments","onReset","resetFields","watch","$route","handler","$active","_getData","immediate","Array","isArray","defaultSlot","map","helper","replace","slot","h","options","propsData","formItem","class","style","width","directives","getAreas","params","axios","get","showArea","id","storeArea","post","updateArea","put","editArea","provide","formField","idField","resourceId","backupForm","getResourceId","formBak","JSON","parse","stringify","$data","fillForm","assignExists"],"mappings":"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","file":"js/chunk-6d3f0876.211518a8.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-card',{staticClass:\"mead-bike-map\",staticStyle:{\"height\":\"99%\"},attrs:{\"body-style\":{height: '100%' }},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('content-header')]},proxy:true}])},[_c('el-row',{staticStyle:{\"height\":\"100%\"},attrs:{\"type\":\"flex\"}},[_c('div',{staticClass:\"amap-page-container\"},[_c('el-amap-search-box',{staticClass:\"search-box\",attrs:{\"search-option\":_vm.searchOption,\"on-search-result\":_vm.onSearchResult}}),_c('el-amap',{staticClass:\"amap-demo\",attrs:{\"vid\":\"amap\",\"plugin\":_vm.plugin,\"center\":_vm.center,\"default-cursor\":_vm.defaultCursor,\"zoom\":_vm.zoom,\"amap-manager\":_vm.amapManager,\"events\":_vm.events}},[_vm._l((_vm.markers),function(marker,index){return _c('el-amap-marker',{key:'aa-'+index,attrs:{\"position\":marker}})}),_c('el-amap-marker',{attrs:{\"position\":_vm.marker.position,\"events\":_vm.marker.events,\"visible\":_vm.marker.visible,\"draggable\":_vm.marker.draggable,\"icon\":_vm.marker.icon}}),_c('el-button-group',{staticClass:\"info\"},[_c('el-button',{attrs:{\"type\":\"primary\",\"disabled\":_vm.addFenceDisabled},on:{\"click\":_vm.addFence}},[_vm._v(\"绘制骑行区域\")]),_c('el-button',{attrs:{\"type\":\"primary\",\"disabled\":_vm.addFuSheFenceDisabled},on:{\"click\":_vm.addFusheFence}},[_vm._v(\"绘制辐射区域\\n \")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.removeFence}},[_vm._v(\"清除围栏\")])],1)],2)],1),_c('div',{staticClass:\"form-class\"},[_c('lz-form',{ref:\"form\",staticStyle:{\"width\":\"100%\"},attrs:{\"submit\":_vm.onSubmit,\"errors\":_vm.errors,\"form\":_vm.form,\"edit-mode\":_vm.editMode,\"rules\":_vm.rules,\"label-width\":\"35%\"},on:{\"update:errors\":function($event){_vm.errors=$event},\"update:form\":function($event){_vm.form=$event}}},[_c('el-form-item',{attrs:{\"label\":\"区域名称\",\"required\":\"\",\"prop\":\"name\"}},[_c('el-input',{staticStyle:{\"width\":\"80%\"},model:{value:(_vm.form.name),callback:function ($$v) {_vm.$set(_vm.form, \"name\", $$v)},expression:\"form.name\"}})],1),_c('el-form-item',{attrs:{\"label\":\"区域状态\",\"required\":\"\",\"prop\":\"status\"}},[_c('el-switch',{attrs:{\"active-color\":\"#13ce66\",\"inactive-color\":\"#ff4949\",\"active-text\":\"正常\",\"inactive-text\":\"禁用\"},model:{value:(_vm.form.status),callback:function ($$v) {_vm.$set(_vm.form, \"status\", $$v)},expression:\"form.status\"}})],1),_c('el-form-item',{attrs:{\"label\":\"服务时间\",\"required\":\"\",\"prop\":\"customer_service_time\"}},[_c('el-input',{staticStyle:{\"width\":\"80%\"},model:{value:(_vm.form.customer_service_time),callback:function ($$v) {_vm.$set(_vm.form, \"customer_service_time\", $$v)},expression:\"form.customer_service_time\"}})],1),_c('el-form-item',{attrs:{\"label\":\"服务手机\",\"required\":\"\",\"prop\":\"customer_service_phone\"}},[_c('el-input',{staticStyle:{\"width\":\"80%\"},model:{value:(_vm.form.customer_service_phone),callback:function ($$v) {_vm.$set(_vm.form, \"customer_service_phone\", $$v)},expression:\"form.customer_service_phone\"}}),_c('p',{staticStyle:{\"margin\":\"10px\",\"font-size\":\"14px\",\"color\":\"green\"}},[_vm._v(\"请在地图中绘制区域\")])],1)],1),_c('p',{staticStyle:{\"margin\":\"10px 22%\",\"font-size\":\"11px\",\"color\":\"red\",\"width\":\"70%\"}},[_vm._v(\"注:红色范围为辐射范围,绿色为骑行范围\")]),_c('p',{staticStyle:{\"margin\":\"10px 22%\",\"font-size\":\"11px\",\"color\":\"red\",\"width\":\"70%\"}},[_vm._v(\"注:中心点需要在绘制区域内\")])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-card style=\"height:99%;\" :body-style=\"{height: '100%' }\" class=\"mead-bike-map\">\r\n <template #header>\r\n <content-header/>\r\n </template>\r\n <el-row type=\"flex\" style=\"height: 100%;\">\r\n <div class=\"amap-page-container\">\r\n <el-amap-search-box class=\"search-box\" :search-option=\"searchOption\"\r\n :on-search-result=\"onSearchResult\"/>\r\n <el-amap\r\n vid=\"amap\"\r\n :plugin=\"plugin\"\r\n class=\"amap-demo\"\r\n :center=\"center\"\r\n :default-cursor=\"defaultCursor\"\r\n :zoom=\"zoom\"\r\n :amap-manager=\"amapManager\"\r\n :events=\"events\"\r\n >\r\n <el-amap-marker v-for=\"(marker,index) in markers\" :key=\"'aa-'+index\" :position=\"marker\"/>\r\n <el-amap-marker\r\n :position=\"marker.position\"\r\n :events=\"marker.events\"\r\n :visible=\"marker.visible\"\r\n :draggable=\"marker.draggable\"\r\n :icon=\"marker.icon\"\r\n />\r\n <el-button-group class=\"info\">\r\n <el-button type=\"primary\" :disabled=\"addFenceDisabled\" @click=\"addFence\">绘制骑行区域</el-button>\r\n <el-button type=\"primary\" :disabled=\"addFuSheFenceDisabled\" @click=\"addFusheFence\">绘制辐射区域\r\n </el-button>\r\n <el-button type=\"primary\" @click=\"removeFence\">清除围栏</el-button>\r\n </el-button-group>\r\n </el-amap>\r\n </div>\r\n <div class=\"form-class\">\r\n <lz-form\r\n ref=\"form\"\r\n :submit=\"onSubmit\"\r\n :errors.sync=\"errors\"\r\n :form.sync=\"form\"\r\n :edit-mode=\"editMode\"\r\n :rules=\"rules\"\r\n label-width=\"35%\"\r\n style=\"width:100%;\"\r\n >\r\n <!-- <el-form-item label=\"请在地图中绘制区域\"/> -->\r\n\r\n <el-form-item label=\"区域名称\" required prop=\"name\">\r\n <el-input v-model=\"form.name\" style=\"width:80%;\"/>\r\n </el-form-item>\r\n <el-form-item label=\"区域状态\" required prop=\"status\">\r\n <el-switch\r\n v-model=\"form.status\"\r\n active-color=\"#13ce66\"\r\n inactive-color=\"#ff4949\"\r\n active-text=\"正常\"\r\n inactive-text=\"禁用\"\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"服务时间\" required prop=\"customer_service_time\">\r\n <el-input v-model=\"form.customer_service_time\" style=\"width:80%;\"/>\r\n </el-form-item>\r\n <el-form-item label=\"服务手机\" required prop=\"customer_service_phone\">\r\n <el-input v-model=\"form.customer_service_phone\" style=\"width:80%;\"/>\r\n <p style=\"margin: 10px ; font-size:14px; color:green;\">请在地图中绘制区域</p>\r\n </el-form-item>\r\n </lz-form>\r\n <p style=\"margin: 10px 22%; font-size:11px; color:red;width: 70%;\">注:红色范围为辐射范围,绿色为骑行范围</p>\r\n <p style=\"margin: 10px 22%; font-size:11px; color:red;width: 70%;\">注:中心点需要在绘制区域内</p>\r\n </div>\r\n </el-row>\r\n </el-card>\r\n</template>\r\n\r\n<script>\r\n import VueAMap from 'vue-amap'\r\n import LzForm from '@c/LzForm'\r\n import {storeArea, updateArea} from '@/api/area'\r\n import FormHelper from '@c/LzForm/FormHelper'\r\n\r\n export default {\r\n name: 'Form',\r\n components: {\r\n LzForm,\r\n },\r\n mixins: [\r\n FormHelper,\r\n ],\r\n data() {\r\n let self = this\r\n let amapManager = new VueAMap.AMapManager()\r\n var checkPhone = (rule, value, callback) => {\r\n if (!value) {\r\n return callback(new Error('手机号不能为空'))\r\n } else {\r\n const reg = /^1[3|4|5|7|8][0-9]\\d{8}$/\r\n if (reg.test(value)) {\r\n callback()\r\n } else {\r\n return callback(new Error('请输入正确的手机号'))\r\n }\r\n }\r\n }\r\n return {\r\n form: {\r\n name: '',\r\n area_fence: [],\r\n area_fushe_fence: [],\r\n area_centre: '',\r\n status: true,\r\n customer_service_time: '',\r\n customer_service_phone: '',\r\n },\r\n rules: {\r\n customer_service_phone: [\r\n {validator: checkPhone, trigger: 'blur'},\r\n ],\r\n },\r\n errors: {},\r\n center: [121.59996, 31.197646],\r\n searchOption: {\r\n city: '郑州',\r\n citylimit: false,\r\n },\r\n defaultCursor: 'pointer',\r\n zoom: 12,\r\n lng: 0,\r\n lat: 0,\r\n loaded: false,\r\n amapManager: amapManager,\r\n fenceForm: [],\r\n markers: [],\r\n events: {\r\n init(o) {\r\n\r\n },\r\n },\r\n mouseTool: null,\r\n mouseToolFushe: null,\r\n marker: {\r\n position: [121.5273285, 31.21515044],\r\n events: {\r\n click: () => {\r\n // alert('click marker')\r\n },\r\n dragend: (e) => {\r\n this.form.area_centre = {lat: e.lnglat.lat, lng: e.lnglat.lng}\r\n // console.log(this.form.area_centre)\r\n // console.log('---event---: dragend')\r\n // this.markers[0].position = [e.lnglat.lng, e.lnglat.lat]\r\n },\r\n },\r\n visible: true,\r\n draggable: true,\r\n icon: 'http://resource.bike.hanyiyun.com/admin/area_center_20191130170212.png',\r\n },\r\n plugin: [{\r\n pName: 'Geolocation',\r\n events: {\r\n init(o) {\r\n // o 是高德地图定位插件实例\r\n // console.log(o)\r\n o.getCurrentPosition((status, result) => {\r\n // 未配置https 定位失败 暂时手动配置\r\n self.lng = 113.73350255780726\r\n self.lat = 34.78024666564106\r\n self.center = [self.lng, self.lat]\r\n self.marker.position = [self.lng, self.lat]\r\n self.form.area_centre = {lat: self.lat, lng: self.lng}\r\n self.loaded = true\r\n if (result && result.position) {\r\n self.lng = result.position.lng\r\n self.lat = result.position.lat\r\n self.center = [self.lng, self.lat]\r\n self.marker.position = [self.lng, self.lat]\r\n self.form.area_centre = {lat: self.lat, lng: self.lng}\r\n self.loaded = true\r\n self.$nextTick()\r\n }\r\n })\r\n },\r\n },\r\n }, {\r\n pName: 'Scale',\r\n // offset: { x: 20, y: 20 },\r\n position: 'RB',\r\n events: {\r\n init(instance) {\r\n // console.log(instance)\r\n },\r\n },\r\n }, {\r\n pName: 'ToolBar',\r\n events: {\r\n init(instance) {\r\n // console.log(instance)\r\n },\r\n },\r\n }],\r\n addFenceDisabled: false,\r\n addFuSheFenceDisabled: false,\r\n }\r\n },\r\n methods: {\r\n onSearchResult(pois) {\r\n let latSum = 0\r\n let lngSum = 0\r\n if (pois.length > 0) {\r\n pois.forEach(poi => {\r\n let {lng, lat} = poi\r\n lngSum += lng\r\n latSum += lat\r\n this.markers.push([poi.lng, poi.lat])\r\n })\r\n let center = {\r\n lng: lngSum / pois.length,\r\n lat: latSum / pois.length,\r\n }\r\n this.center = [center.lng, center.lat]\r\n }\r\n },\r\n async onSubmit() {\r\n // this.form.area_centre = { lat: this.marker.position[1], lng: this.marker.position[0] }\r\n // console.log(this.form)\r\n if (this.editMode) {\r\n await updateArea(this.resourceId, this.form)\r\n } else {\r\n await storeArea(this.form)\r\n }\r\n },\r\n addFence() {\r\n let _this = this\r\n _this.defaultCursor = 'crosshair'\r\n let map = this.amapManager.getMap()\r\n map.plugin(['AMap.MouseTool', 'AMap.Geocoder'], function () {\r\n // eslint-disable-next-line no-undef\r\n let mouseTool = new AMap.MouseTool(map)\r\n _this.mouseTool = mouseTool\r\n // eslint-disable-next-line no-unused-vars\r\n var drawPolygon = mouseTool.polygon({strokeColor: '#00f000'})\r\n\r\n // 添加事件\r\n // eslint-disable-next-line no-undef\r\n AMap.event.addListener(mouseTool, 'draw', function (e) {\r\n e.obj.getPath().forEach(item => {\r\n console.log(item)\r\n var im = {lat: item.lat, lng: item.lng}\r\n _this.form.area_fence.push(im)\r\n })\r\n _this.defaultCursor = 'pointer'\r\n _this.mouseTool.close()\r\n })\r\n })\r\n this.addFenceDisabled = true\r\n },\r\n addFusheFence() {\r\n let _this = this\r\n _this.defaultCursor = 'crosshair'\r\n let map = this.amapManager.getMap()\r\n map.plugin(['AMap.MouseTool', 'AMap.Geocoder'], function () {\r\n // eslint-disable-next-line no-undef\r\n let mouseTool = new AMap.MouseTool(map)\r\n _this.mouseToolFushe = mouseTool\r\n // eslint-disable-next-line no-unused-vars\r\n var drawPolygon = mouseTool.polygon({strokeColor: '#f00000'})\r\n\r\n // 添加事件\r\n // eslint-disable-next-line no-undef\r\n AMap.event.addListener(mouseTool, 'draw', function (e) {\r\n e.obj.getPath().forEach(item => {\r\n var im = {lat: item.lat, lng: item.lng}\r\n _this.form.area_fushe_fence.push(im)\r\n })\r\n _this.defaultCursor = 'pointer'\r\n _this.mouseToolFushe.close()\r\n })\r\n })\r\n this.addFuSheFenceDisabled = true\r\n },\r\n removeFence() {\r\n this.form.area_fence = []\r\n this.form.area_fushe_fence = []\r\n if (this.mouseTool) {\r\n this.mouseTool.close(true)\r\n }\r\n if (this.mouseToolFushe) {\r\n this.mouseToolFushe.close(true)\r\n }\r\n this.addFenceDisabled = false\r\n this.addFuSheFenceDisabled = false\r\n },\r\n },\r\n }\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n .amap-page-container {\r\n width: 75%;\r\n position: relative;\r\n // height: 100%;\r\n top: -30px;\r\n }\r\n\r\n .amap-demo {\r\n /*height: 88%;*/\r\n }\r\n\r\n .info {\r\n border-radius: .25rem;\r\n position: absolute;\r\n top: 70px;\r\n width: auto;\r\n border-width: 0;\r\n right: 20px;\r\n }\r\n\r\n .search-box {\r\n height: 36px;\r\n border-radius: .25rem;\r\n top: 65px;\r\n border-width: 1px;\r\n left: 90px;\r\n }\r\n\r\n .form-class {\r\n width: 25%;\r\n overflow: auto;\r\n\r\n }\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Form.vue?vue&type=template&id=2868ef44&scoped=true&\"\nimport script from \"./Form.vue?vue&type=script&lang=js&\"\nexport * from \"./Form.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Form.vue?vue&type=style&index=0&id=2868ef44&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2868ef44\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=style&index=0&id=2868ef44&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=style&index=0&id=2868ef44&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3084f0c4&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3084f0c4&scoped=true&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&lang=scss&\"","<script>\r\nimport _forIn from 'lodash/forIn'\r\nimport _get from 'lodash/get'\r\nimport Form from '@/plugins/element/components/Form'\r\nimport { getMessage, handleValidateErrors } from '@/libs/utils'\r\nimport FlexSpacer from '@c/FlexSpacer'\r\n\r\nexport default {\r\n name: 'LzForm',\r\n components: {\r\n FlexSpacer,\r\n },\r\n inject: {\r\n // 使用 FormHelper 混入,会自动提供该注入\r\n view: {\r\n from: 'view',\r\n default: null,\r\n },\r\n },\r\n data() {\r\n return {\r\n loading: false,\r\n stay: false,\r\n }\r\n },\r\n props: {\r\n getData: Function,\r\n submit: Function,\r\n errors: Object,\r\n form: Object,\r\n submitText: {\r\n type: String,\r\n default: '保存',\r\n },\r\n labelPosition: String,\r\n inDialog: Boolean,\r\n createdRedirect: {\r\n type: [String, Function],\r\n default() {\r\n const p = this.$route.path.split('/')\r\n return '/' + (p[p.length - 2] || '')\r\n },\r\n },\r\n updatedRedirect: {\r\n type: [String, Function],\r\n default() {\r\n return this.$router.back.bind(this.$router)\r\n },\r\n },\r\n disableRedirect: Boolean,\r\n disableStay: Boolean,\r\n editMode: Boolean,\r\n },\r\n computed: {\r\n realLabelPosition() {\r\n return this.labelPosition || (this.$store.state.miniWidth ? 'top' : 'right')\r\n },\r\n miniWidth() {\r\n return this.$store.state.miniWidth\r\n },\r\n },\r\n created() {\r\n this.copyMethods()\r\n },\r\n methods: {\r\n /**\r\n * 复制实际 Form 组件的方法, 给外部调用, 并把 this 指向 ElForm 实例\r\n */\r\n copyMethods() {\r\n // 原始 ElForm 和 重写的 Form\r\n [Form.extends.methods, Form.methods].forEach(methods => {\r\n _forIn(methods, (m, k) => {\r\n this[k] = function () {\r\n m.apply(this.$refs.form, arguments)\r\n }\r\n })\r\n })\r\n },\r\n async _getData() {\r\n this.loading = true\r\n this.view && this.$emit('update:form', this.view.formBak)\r\n\r\n try {\r\n this.getData && await this.getData()\r\n // 在某些情况下,会出现方法未定义,所以放到 nextTick 中\r\n this.$nextTick(() => {\r\n this.setInitialValues()\r\n })\r\n } catch (e) {\r\n Promise.reject(e)\r\n }\r\n\r\n this.loading = false\r\n },\r\n async onSubmit() {\r\n this.$emit('update:errors', {})\r\n try {\r\n this.submit && await this.submit()\r\n\r\n this.$message.success(getMessage(this.editMode ? 'updated' : 'created'))\r\n\r\n if (this.stay || this.disableRedirect) {\r\n return\r\n }\r\n\r\n let redirect = this.editMode ? this.updatedRedirect : this.createdRedirect\r\n if (typeof redirect === 'string') {\r\n this.$router.push(redirect)\r\n } else if (typeof redirect === 'function') {\r\n redirect()\r\n }\r\n } catch (e) {\r\n this.$emit('update:errors', handleValidateErrors(e.response))\r\n if (_get(e, 'response.status') !== 422) {\r\n Promise.reject(e)\r\n }\r\n }\r\n },\r\n onReset() {\r\n this.$refs.form.resetFields()\r\n },\r\n },\r\n watch: {\r\n $route: {\r\n handler() {\r\n this.$active && this._getData()\r\n },\r\n immediate: true,\r\n },\r\n },\r\n render(h) {\r\n let defaultSlot = this.$slots.default\r\n if (Array.isArray(defaultSlot)) {\r\n defaultSlot = defaultSlot.map((formItem) => {\r\n const options = formItem.componentOptions\r\n\r\n // 如果有 helper props,则生成一个新的 FormItem 替换掉原来的\r\n let { helper, label } = options.propsData\r\n if (helper) {\r\n helper = helper.replace(/\\n/g, '<br>')\r\n const labelSlot = h('template', {\r\n slot: 'label',\r\n }, [\r\n (<span>{label}</span>),\r\n (\r\n <el-tooltip\r\n effect=\"dark\"\r\n placement=\"top-start\"\r\n popper-class={`form-helper-popper ${this.miniWidth ? 'mini-width' : ''}`}\r\n >\r\n <div slot=\"content\" domPropsInnerHTML={helper}/>\r\n <i class=\"ml-1 el-icon-question helper\"/>\r\n </el-tooltip>\r\n ),\r\n ])\r\n return h('el-form-item', {\r\n props: options.propsData,\r\n }, [labelSlot, ...options.children])\r\n } else {\r\n return formItem\r\n }\r\n })\r\n }\r\n\r\n const stayCheckbox = !this.disableStay && (\r\n <el-checkbox\r\n vModel={this.stay}\r\n title=\"表单提交后,留在此页\"\r\n >\r\n 留在此页\r\n </el-checkbox>\r\n )\r\n\r\n const footerSlot = this.$slots.footer || (\r\n <el-form-item class=\"footer\">\r\n <loading-action type=\"primary\" action={this.onSubmit}>{this.submitText}</loading-action>\r\n <el-button vOn:click={this.onReset}>重置</el-button>\r\n {this.$slots.footerAppend}\r\n <flex-spacer/>\r\n\r\n </el-form-item>\r\n )\r\n\r\n // 用 jsx,ElForm 组件的 model props 传不进去,,,\r\n return h('el-form', {\r\n props: {\r\n model: this.form,\r\n errors: this.errors,\r\n labelPosition: this.realLabelPosition,\r\n ...this.$attrs,\r\n },\r\n on: {\r\n ...this.$listeners,\r\n },\r\n class: {\r\n 'in-dialog': this.inDialog,\r\n },\r\n style: {\r\n width: this.inDialog ? 'auto' : '800px',\r\n },\r\n directives: [\r\n {\r\n name: 'loading',\r\n value: this.loading,\r\n },\r\n ],\r\n ref: 'form',\r\n }, [defaultSlot, footerSlot])\r\n },\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import '~element-ui/packages/theme-chalk/src/common/var';\r\n\r\n.footer {\r\n /deep/ {\r\n .el-form-item__content {\r\n display: flex;\r\n }\r\n }\r\n}\r\n\r\n.in-dialog {\r\n .footer {\r\n text-align: right;\r\n margin-bottom: 0;\r\n }\r\n}\r\n\r\n.helper {\r\n color: $--color-primary;\r\n border: 2px solid transparent;\r\n border-radius: 50%;\r\n transition: border-color .3s;\r\n\r\n &:hover {\r\n border-color: $--color-primary-light-1;\r\n }\r\n}\r\n</style>\r\n\r\n<style lang=\"scss\">\r\n.form-helper-popper {\r\n max-width: 400px;\r\n\r\n &.mini-width {\r\n max-width: 90%;\r\n }\r\n}\r\n</style>\r\n","var render, staticRenderFns\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3084f0c4&scoped=true&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3084f0c4\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import axios from '@/plugins/axios'\r\n\r\nexport function getAreas(params = {}) {\r\n return axios.get('area', {\r\n params,\r\n })\r\n}\r\n\r\nexport function showArea(id) {\r\n return axios.get(`area/${id}`)\r\n}\r\n\r\nexport function storeArea(data) {\r\n return axios.post('area', data)\r\n}\r\n\r\nexport function updateArea(id, data) {\r\n return axios.put(`area/${id}`, data)\r\n}\r\n\r\nexport function editArea(id) {\r\n return axios.get(`area/${id}/edit`)\r\n}\r\n\r\nexport function destroyArea(id) {\r\n return axios.delete(`area/${id}`)\r\n}\r\n","import { assignExists } from '@/libs/utils'\r\n\r\nexport default {\r\n provide() {\r\n return {\r\n view: this,\r\n }\r\n },\r\n data() {\r\n return {\r\n /**\r\n * 保存表单数据的键名\r\n */\r\n formField: 'form',\r\n /**\r\n * 编辑时,路由中的动态值\r\n */\r\n idField: 'id',\r\n }\r\n },\r\n computed: {\r\n editMode() {\r\n return !!this.resourceId\r\n },\r\n resourceId() {\r\n return this.$route.params[this.idField]\r\n },\r\n },\r\n created() {\r\n this.backupForm()\r\n },\r\n methods: {\r\n getResourceId(key = 'id') {\r\n return this.$route.params[key]\r\n },\r\n /**\r\n * 备份表单原始数据,路由切换时,用来重置表单\r\n */\r\n backupForm() {\r\n this.formBak = JSON.parse(JSON.stringify(this.$data[this.formField]))\r\n },\r\n /**\r\n * 填充表单数据\r\n *\r\n * @param data\r\n */\r\n fillForm(data) {\r\n this.$data[this.formField] = assignExists(this.$data[this.formField], data)\r\n },\r\n },\r\n}\r\n"],"sourceRoot":""}
|