diff --git a/weapp/src/app.config.js b/weapp/src/app.config.js
index 34a44b5a..0fefdbef 100644
--- a/weapp/src/app.config.js
+++ b/weapp/src/app.config.js
@@ -16,6 +16,9 @@ export default {
       "desc": '需要获取您的地理位置'
     }
   },
+  requiredPrivateInfos: [
+    'getLocation',
+  ],
   window: {
     backgroundTextStyle: 'light',
     navigationBarBackgroundColor: "#2C66F3",
diff --git a/weapp/src/packages/components/inputPicker/index.jsx b/weapp/src/packages/components/inputPicker/index.jsx
index 2525048b..03f9b94a 100644
--- a/weapp/src/packages/components/inputPicker/index.jsx
+++ b/weapp/src/packages/components/inputPicker/index.jsx
@@ -17,7 +17,7 @@ export default function InputPicker(props) {
   function handleInput({ detail: { value: v } }) {
     onInput(v)
     if (v) {
-      setCurSelector(selector.filter(item => item.includes(v)))
+      setCurSelector(selector.filter(item => item && item.includes(v)))
     } else {
       setCurSelector(selector)
     }
diff --git a/weapp/src/packages/patrol/index.jsx b/weapp/src/packages/patrol/index.jsx
index 3ff00be1..fae9ad98 100644
--- a/weapp/src/packages/patrol/index.jsx
+++ b/weapp/src/packages/patrol/index.jsx
@@ -1,18 +1,10 @@
 import React, { useState, useEffect } from 'react';
 import Taro, { useRouter } from '@tarojs/taro';
-import {
-  View,
-  RadioGroup,
-  Radio,
-  Button,
-  Image,
-  Input,
-  Picker
-} from '@tarojs/components';
-import { AtButton, AtTextarea, AtImagePicker, AtAvatar } from 'taro-ui';
+import { View, RadioGroup, Radio, Image, Input, Picker } from '@tarojs/components';
+import { AtButton, AtTextarea, AtImagePicker } from 'taro-ui';
 import InputPicker from '../components/inputPicker';
 import request from '@/services/request';
-import { postReport, getReportDetail } from '@/services/api';
+import { postReport, getReportDetail, delReport, getRoadSection } from '@/services/api';
 import './index.scss';
 import arrowIcon from '../../static/img/patrol/arrow-down.svg';
 
@@ -21,7 +13,6 @@ const Index = () => {
   const { params: { type } } = router
   const isView = type === 'view' ? true : false
 
-
   const [reportType, setReportType] = useState('patrol') // 上报类型
   const [projectType, setProjectType] = useState('') // 工程类型
   const [road, setRoad] = useState('') // 所在道路
@@ -33,9 +24,16 @@ const Index = () => {
   const [conserveBeforePic, setConserveBeforePic] = useState([]) // 养护前图片
   const [conserveUnderwayPic, setConserveUnderwayPic] = useState([]) // 养护中图片
   const [conserveAfterPic, setConserveAfterPic] = useState([]) // 养护后图片
+  const [longitude, setLongitude] = useState(0) // 经度
+  const [latitude, setLatitude] = useState(0) // 纬度
+
+  const [sourceRoadSel, setSourceRoadSel] = useState([])
+  const [sourceRoadStartSel, setSourceRoadStartSel] = useState([])
+  const [sourceRoadEndSel, setSourceRoadEndSel] = useState([])
 
-  const [roadStartSelector, setRoadStartSelector] = useState([])
-  const [roadEndSelector, setRoadEndSelector] = useState([])
+  const prjTypeSelector = ['道路', '桥梁', '涵洞', '其他']
+  const [roadStartSel, setRoadStartSel] = useState([])
+  const [roadEndSel, setRoadEndSel] = useState([])
 
   const [canReport, setCanReport] = useState(true)
 
@@ -52,17 +50,9 @@ const Index = () => {
     }
   ])
 
-  const rPrjTypeSelector = ['道路', '桥梁', '涵洞', '其他']
-  const rRoadSelector = ['富山一路', '金沙大道', '玉湖路']
-
-  const rRoadStartSelector = ['一段', '二段', '三段']
-  const rRoadEndSelector = ['一段', '二段', '三段']
-
   useEffect(() => {
-    if (isView) {
-      Taro.showLoading({
-        title: '加载中'
-      })
+    if (isView) { // 查看
+      Taro.showLoading({ title: '加载中' })
       request.get(getReportDetail(router.params.id)).then(res => {
         Taro.hideLoading()
         if (res.statusCode == 200 || res.statusCode == 204) {
@@ -84,10 +74,51 @@ const Index = () => {
       }, err => {
         Taro.showToast({ title: err.message || '请求出错', icon: 'none' })
       })
+    } else { // 填报
+      Taro.showLoading({ title: '加载中' })
+      let key = 'ODQBZ-3FZAU-6VIVL-2XXNM-F7CP7-WVFCY' // 写自己申请的key
+      Taro.getLocation({
+        type: 'wgs84',
+        success: function (res) {
+          setLongitude(res.longitude)
+          setLatitude(res.latitude)
+          Taro.request({
+            url: `https://apis.map.qq.com/ws/geocoder/v1/?location=${res.latitude},${res.longitude}&key=${key}`,
+            success: function (res) {
+              // 根据自己项目需求获取res内容
+              let addresscity = res.data.result.address_component.province + res.data.result.address_component.city + res.data.result.address_component.district
+              setAddress(addresscity + res.data.result.address_component.street_number)
+            }
+          })
+        }
+      })
+      request.get(getRoadSection()).then(res => {
+        Taro.hideLoading()
+        if (res.statusCode == 200 || res.statusCode == 204) {
+          const { data } = res
+          let nextSourceRoadSel = []
+          let nextSourceRoadStartSel = []
+          let nextSourceRoadEndSel = []
+          data.map(item => {
+            nextSourceRoadSel.push(item.routeName)
+            nextSourceRoadStartSel.push(item.startingPlaceName)
+            nextSourceRoadEndSel.push(item.stopPlaceName)
+          })
+          setSourceRoadSel(nextSourceRoadSel)
+          setSourceRoadStartSel(nextSourceRoadStartSel)
+          setSourceRoadEndSel(nextSourceRoadEndSel)
+        } else {
+          Taro.showToast({ title: res.data.message || '请求出错', icon: 'none' })
+        }
+      }, err => {
+        Taro.showToast({ title: err.message || '请求出错', icon: 'none' })
+      })
     }
-    setRoadStartSelector(rRoadStartSelector)
-    setRoadEndSelector(rRoadEndSelector)
   }, [])
+  useEffect(() => {
+    setRoadStartSel(sourceRoadStartSel)
+    setRoadEndSel(sourceRoadEndSel)
+  }, [sourceRoadStartSel, sourceRoadEndSel])
 
   useEffect(() => {
     setTypeList([
@@ -110,7 +141,7 @@ const Index = () => {
       Taro.showToast({ title: '请完善必填信息', icon: 'none' })
       return
     }
-    if (rPrjTypeSelector.indexOf(projectType) === -1) {
+    if (prjTypeSelector.indexOf(projectType) === -1) {
       Taro.showToast({ title: '工程类型错误', icon: 'none' })
       return
     }
@@ -122,8 +153,8 @@ const Index = () => {
       roadSectionEnd,
       address,
       content,
-      // longitude: 37.000000000000,
-      // latitude: 69.000000000000
+      longitude,
+      latitude
     }
     if (reportType === 'patrol') {
       data['scenePic'] = scenePic.length > 0 ? scenePic.map(item => item.url) : null
@@ -165,22 +196,49 @@ const Index = () => {
     })
   }
 
+  function deleteReport() {
+    Taro.showModal({
+      title: '提示',
+      content: '确定删除吗?',
+      success: function (res) {
+        if (res.confirm) {
+          Taro.showLoading({
+            title: '删除中'
+          })
+          request.del(delReport(router.params.id)).then(res => {
+            Taro.hideLoading()
+            if (res.statusCode == 200 || res.statusCode == 204) {
+              Taro.showToast({ title: '删除成功', icon: 'none', duration: 1500 })
+              setTimeout(() => {
+                Taro.navigateBack()
+              }, 1000)
+            } else {
+              Taro.showToast({ title: res.data.message || '请求出错', icon: 'none' })
+            }
+          }, err => {
+            Taro.showToast({ title: err.message || '请求出错', icon: 'none' })
+          })
+        }
+      }
+    })
+  }
+
   function handleInput({ detail: { value } }, type) {
     switch (type) {
       case 'roadSectionStart':
         setRoadSectionStart(value)
         if (value) {
-          setRoadStartSelector(rRoadStartSelector.filter(item => item.includes(value)))
+          setRoadStartSel(sourceRoadStartSel.filter(item => item && item.includes(value)))
         } else {
-          setRoadStartSelector(rRoadStartSelector)
+          setRoadStartSel(sourceRoadStartSel)
         }
         break;
       case 'roadSectionEnd':
         setRoadSectionEnd(value)
         if (value) {
-          setRoadEndSelector(rRoadEndSelector.filter(item => item.includes(value)))
+          setRoadEndSel(sourceRoadEndSel.filter(item => item && item.includes(value)))
         } else {
-          setRoadEndSelector(rRoadEndSelector)
+          setRoadEndSel(sourceRoadEndSel)
         }
         break;
       case 'address':
@@ -221,106 +279,6 @@ const Index = () => {
     })
   }
 
-  function renderAddImg() {
-    return (
-      reportType === 'patrol' ?
-        
-          现场图片:
-          = 3 ? false : true}
-            files={scenePic}
-            onChange={files => handleImgChange(files, 'scenePic')}
-            onImageClick={handleImgClick}
-          />
-         :
-        
-          养护图片:
-          
-            
-            养护前
-          
-          = 3 ? false : true}
-            files={conserveBeforePic}
-            onChange={files => handleImgChange(files, 'conserveBeforePic')}
-            onImageClick={handleImgClick}
-          />
-          
-            
-            养护中
-          
-          = 3 ? false : true}
-            files={conserveUnderwayPic}
-            onChange={files => handleImgChange(files, 'conserveUnderwayPic')}
-            onImageClick={handleImgClick}
-          />
-          
-            
-            养护后
-          
-          = 3 ? false : true}
-            files={conserveAfterPic}
-            onChange={files => handleImgChange(files, 'conserveAfterPic')}
-            onImageClick={handleImgClick}
-          />
-        
-    )
-  }
-
-  function renderViewImg() {
-    return (
-      reportType === 'patrol' ?
-        
-          现场图片:
-          
-            {scenePic.map(item => (
-               handleImgClick(undefined, item)} />
-            ))}
-          
-         :
-        
-          养护图片:
-          
-            
-            养护前
-          
-          
-            {conserveBeforePic.map(item => (
-               handleImgClick(undefined, item)} />
-            ))}
-          
-          
-            
-            养护中
-          
-          
-            {conserveUnderwayPic.map(item => (
-               handleImgClick(undefined, item)} />
-            ))}
-          
-          
-            
-            养护后
-          
-          
-            {conserveAfterPic.map(item => (
-               handleImgClick(undefined, item)} />
-            ))}
-          
-        
-    )
-  }
-
   return (
     
       
@@ -350,15 +308,16 @@ const Index = () => {
         placeholder='请选择工程类型'
         value={projectType}
         onInput={setProjectType}
-        selector={rPrjTypeSelector}
+        selector={prjTypeSelector}
         isView={isView}
       />
       
 
@@ -374,11 +333,11 @@ const Index = () => {
           disabled={isView}
         />
         {
-          isView &&
+          !isView &&
            setRoadSectionStart(roadStartSelector[e.detail.value])}
+            range={roadStartSel}
+            onChange={e => setRoadSectionStart(roadStartSel[e.detail.value])}
           >
             
           
@@ -394,11 +353,11 @@ const Index = () => {
           disabled={isView}
         />
         {
-          isView &&
+          !isView &&
            setRoadSectionEnd(roadEndSelector[e.detail.value])}
+            range={roadEndSel}
+            onChange={e => setRoadSectionEnd(roadEndSel[e.detail.value])}
           >
             
           
@@ -426,12 +385,95 @@ const Index = () => {
         disabled={isView}
       />
       {
-        isView ?
-          renderViewImg() :
-          renderAddImg()
+        reportType === 'patrol' ?
+          
+            现场图片:
+            {
+              isView ?
+                
+                  {scenePic.map(item => (
+                     handleImgClick(undefined, item)} />
+                  ))}
+                 :
+                = 3 ? false : true}
+                  files={scenePic}
+                  onChange={files => handleImgChange(files, 'scenePic')}
+                  onImageClick={handleImgClick}
+                />
+            }
+           :
+          
+            养护图片:
+            
+              
+              养护前
+            
+            {
+              isView ?
+                
+                  {conserveBeforePic.map(item => (
+                     handleImgClick(undefined, item)} />
+                  ))}
+                 :
+                = 3 ? false : true}
+                  files={conserveBeforePic}
+                  onChange={files => handleImgChange(files, 'conserveBeforePic')}
+                  onImageClick={handleImgClick}
+                />
+            }
+            
+              
+              养护中
+            
+            {
+              isView ?
+                
+                  {conserveUnderwayPic.map(item => (
+                     handleImgClick(undefined, item)} />
+                  ))}
+                 :
+                = 3 ? false : true}
+                  files={conserveUnderwayPic}
+                  onChange={files => handleImgChange(files, 'conserveUnderwayPic')}
+                  onImageClick={handleImgClick}
+                />
+            }
+
+            
+              
+              养护后
+            
+            {
+              isView ?
+                
+                  {conserveAfterPic.map(item => (
+                     handleImgClick(undefined, item)} />
+                  ))}
+                 :
+                = 3 ? false : true}
+                  files={conserveAfterPic}
+                  onChange={files => handleImgChange(files, 'conserveAfterPic')}
+                  onImageClick={handleImgClick}
+                />
+            }
+          
       }
       {
-        !isView && 上报
+        isView ?
+          删除 :
+          上报
       }
     
   )
diff --git a/weapp/src/packages/patrol/index.scss b/weapp/src/packages/patrol/index.scss
index d5040252..01890637 100644
--- a/weapp/src/packages/patrol/index.scss
+++ b/weapp/src/packages/patrol/index.scss
@@ -26,7 +26,7 @@ page {
 
   .road-section {
     display: flex;
-    justify-content: space-between;
+    justify-content: left;
     height: 96px;
     align-items: center;
     background-color: #fff;
@@ -38,17 +38,18 @@ page {
 
     .input {
       width: 200px;
+      margin: 0 10px;
     }
 
     .img-r {
       width: 24px;
       height: 14px;
-      margin-right: 30px;
+      margin: 0 10px;
     }
     .img-l {
       width: 24px;
       height: 14px;
-      margin-right: 10px;
+      margin: 0 10px;
     }
   }
 
@@ -72,17 +73,6 @@ page {
   .patrol-img {
     background-color: #fff;
     padding: 20px;
-
-    .img-box {
-      display: flex;
-      flex-wrap: wrap;
-
-      .img {
-        width: 170px;
-        height: 170px;
-        margin: 10px 0 0 10px;
-      }
-    }
   }
 
   .conserve-img {
@@ -93,6 +83,7 @@ page {
       height: 30px;
       width: 100%;
       border-radius: 5px;
+      margin-top: 10px;
       display: flex;
       justify-content: left;
       align-items: center;
@@ -149,8 +140,26 @@ page {
     }
   }
 
+  .img-box {
+    display: flex;
+    flex-wrap: wrap;
+
+    .img {
+      width: 170px;
+      height: 170px;
+      margin: 10px 0 0 10px;
+    }
+  }
+
   .sub-btn {
     width: 70%;
     margin: 80px auto;
   }
+
+  .del-btn {
+    width: 70%;
+    margin: 80px auto;
+    background-color: #C23434;
+    border-color: #C23434;
+  }
 }
\ No newline at end of file
diff --git a/weapp/src/packages/patrolView/index.jsx b/weapp/src/packages/patrolView/index.jsx
index 7b55672d..a8863200 100644
--- a/weapp/src/packages/patrolView/index.jsx
+++ b/weapp/src/packages/patrolView/index.jsx
@@ -37,7 +37,7 @@ function Index() {
   useEffect(() => {
     request.get(getReportList(), {}, { hideErrorToast: true, hideLoading: true }).then(res => {
       if (res.statusCode == 200) {
-        console.log(res);
+        // console.log(res);
         setListData(res.data)
         return res.data;
       } else {
diff --git a/weapp/src/services/api.js b/weapp/src/services/api.js
index 7579a34d..ba5558e2 100644
--- a/weapp/src/services/api.js
+++ b/weapp/src/services/api.js
@@ -22,6 +22,17 @@ export const getReportDetail = id => {
   return `/report/${id}/detail`;
 };
 
+// 删除上报
+export const delReport = id => {
+  console.log(id)
+  return `/report/${id}`;
+};
+
+// 获取道路路段
+export const getRoadSection = () => {
+  return `/road/section`;
+};
+
 //行业查询
 export const getIndustryUrl = () => {
   return `/elec/business/industry`