Browse Source

auto commit

gcz 4 years ago
parent
commit
5bb94ba07f

+ 8 - 0
src/api/order.js

@@ -68,3 +68,11 @@ export function logisticsCompany() {
     method:'get'
   })
 }
+
+export function exportExcel(data) {
+  return request({
+    url:'/order/list/excel',
+    method:'get',
+    params:data
+  })
+}

+ 69 - 6
src/views/oms/order/index.vue

@@ -62,12 +62,32 @@
               </el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="时间:">
+            <el-date-picker
+              v-model="rangeTime"
+              type="datetimerange"
+              :picker-options="pickerOptions"
+              @change="timeChange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              :default-time="['00:00:00', '23:59:59']"
+              align="right">
+            </el-date-picker>
+          </el-form-item>
         </el-form>
       </div>
     </el-card>
-    <el-card class="operate-container" shadow="never">
-      <i class="el-icon-tickets"></i>
-      <span>数据列表</span>
+    <el-card class="operate-container" shadow="never">      
+      <el-row>        
+        <el-col :span="4">
+          <i class="el-icon-tickets"></i>
+          <span>数据列表</span>
+        </el-col>
+        <el-col :span="20" style="text-align: right;"> 
+          <el-link type="primary" @click="handleExportExcel">导出</el-link>
+        </el-col>
+      </el-row>
     </el-card>
     <div class="table-container">
       <el-table ref="orderTable"
@@ -179,7 +199,7 @@
   </div>
 </template>
 <script>
-  import {fetchList,closeOrder,deleteOrder} from '@/api/order'
+  import {fetchList,closeOrder,deleteOrder,exportExcel} from '@/api/order'
   import {formatDate} from '@/utils/date';
   import LogisticsDialog from '@/views/oms/order/components/logisticsDialog';
   const defaultListQuery = {
@@ -191,12 +211,15 @@
     orderType: null,
     sourceType: null,
     createTime: null,
+    startTime:null,
+    endTime:null, 
   };
   export default {
     name: "orderList",
     components:{LogisticsDialog},
     data() {
       return {
+        rangeTime:'',//时间区间
         listQuery: Object.assign({}, defaultListQuery),
         listLoading: true,
         list: null,
@@ -264,7 +287,34 @@
             value: 3
           }
         ],
-        logisticsDialogVisible:false
+        logisticsDialogVisible:false,
+        pickerOptions: {
+          shortcuts: [{
+            text: '最近一周',
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '最近一个月',
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '最近三个月',
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit('pick', [start, end]);
+            }
+          }]
+        },
       }
     },
     created() {
@@ -309,7 +359,9 @@
     },
     methods: {
       handleResetSearch() {
+        this.rangeTime='',
         this.listQuery = Object.assign({}, defaultListQuery);
+        this.getList();
       },
       handleSearchList() {
         this.listQuery.pageNum = 1;
@@ -450,7 +502,18 @@
           deliverySn:null
         };
         return listItem;
-      }
+      },
+      timeChange(rangeTime){
+        let startDate = new Date(rangeTime[0]);
+        let endDate = new Date(rangeTime[1]);
+        this.listQuery.startTime =  formatDate(startDate, 'yyyy-MM-dd hh:mm:ss');
+        this.listQuery.endTime =  formatDate(endDate, 'yyyy-MM-dd hh:mm:ss');
+      },
+      handleExportExcel(){
+        exportExcel(this.listQuery);
+      },
+
+
     }
   }
 </script>

+ 1 - 1
src/views/pms/brand/components/BrandDetail.vue

@@ -22,7 +22,7 @@
       <el-form-item label="品牌首字母:">
         <el-input v-model="brand.firstLetter"></el-input>
       </el-form-item>
-      <el-form-item label="品牌LOGO:" prop="logo">
+      <el-form-item label="品牌LOGO:" >
         <single-upload v-model="brand.logo"></single-upload>
       </el-form-item>
       <el-form-item label="品牌专区大图:">

+ 1 - 1
src/views/pms/brand/index.vue

@@ -24,7 +24,7 @@
               <el-input style="width: 203px" v-model="listQuery.keyword" placeholder="品牌名称/关键字"></el-input>
             </el-form-item>
             <el-form-item label="供应商:">
-            <el-select v-model="listQuery.compId" placeholder="全部" clearable>
+            <el-select v-model="listQuery.compId" filterable placeholder="全部" clearable>
               <el-option
                 v-for="item in compList"
                 :key="item.value"

+ 1 - 1
src/views/pms/intention/index.vue

@@ -24,7 +24,7 @@
             <el-input v-model="listQuery.productName" class="input-width" placeholder="产品名称" clearable></el-input>
           </el-form-item>
           <el-form-item label="供应商:">
-            <el-select v-model="listQuery.compId" placeholder="全部" clearable>
+            <el-select v-model="listQuery.compId" filterable placeholder="全部" clearable>
               <el-option
                 v-for="item in compList"
                 :key="item.value"

+ 85 - 3
src/views/pms/origin/components/originDetail.vue

@@ -117,15 +117,25 @@
       <el-form-item label="所在县">
         <el-input v-model="origin.countyName"></el-input>
       </el-form-item>
-      <el-form-item label="详细地址">
+      <!-- <el-form-item label="详细地址">
         <el-input v-model="origin.detailAddress"></el-input>
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="经度(°)" prop="longitude">
         <el-input v-model="origin.longitude"></el-input>
       </el-form-item>
       <el-form-item label="维度(°)" prop="latitude">
         <el-input v-model="origin.latitude"></el-input>
       </el-form-item>
+      <el-form-item label="详细地址" >
+        <el-autocomplete
+          v-model="origin.detailAddress"
+          :fetch-suggestions="mapSearch"
+          placeholder="请输入详细地址"
+          style="width: 100%"
+          :trigger-on-focus="false"
+          @select="mapSelect"
+        />
+      </el-form-item>
       <el-form-item>
           <baidu-map  class="map" :center="center" :zoom="zoom" @ready="handlermap"
           :scroll-wheel-zoom="true"
@@ -284,7 +294,12 @@
         center: {lng: 106.632713, lat: 26.653157},
         zoom: 12,
         mapVisible:false,
-        clientHeight:document.documentElement.clientHeight-90 // 设置屏幕高度
+        clientHeight:document.documentElement.clientHeight-90, // 设置屏幕高度
+        mapLocation: {
+          address: undefined,
+          coordinate: undefined
+        }
+
       }
     },
     computed: {
@@ -483,6 +498,8 @@
       handlermap ({BMap, map}) {
         let _this = this;	// 设置一个临时变量指向vue实例;
         var geolocation = new BMap.Geolocation();
+        this.BMap = BMap;
+        this.map = map;
         geolocation.getCurrentPosition(function(r){
           // console.log(r);
           _this.center = {lng: r.longitude, lat: r.latitude};		// 设置center属性值
@@ -541,6 +558,71 @@
       mapShow(){
         this.mapVisible = true
       },
+      mapSearch(queryString, cb) {
+      var that = this
+      var myGeo = new this.BMap.Geocoder()
+      myGeo.getPoint(queryString, function(point) {
+        if (point) {
+          that.mapLocation.coordinate = point
+          that.makerCenter(point)
+        } else {
+          that.mapLocation.coordinate = null
+        }
+      }, this.locationCity)
+      var options = {
+        onSearchComplete: function(results) {
+          if (local.getStatus() === 0) {
+            // 判断状态是否正确
+            var s = []
+            for (var i = 0; i < results.getCurrentNumPois(); i++) {
+              var x = results.getPoi(i)
+              var item = { value: x.address + x.title, point: x.point }
+              s.push(item)
+              cb(s)
+            }
+          } else {
+            cb()
+          }
+        }
+      }
+      var local = new this.BMap.LocalSearch(this.map, options)
+      local.search(queryString)
+    },
+    mapSelect(e) {
+      // console.log('e',e.point);
+      this.getMapInfo(e.point);
+      //转为高德坐标
+      let transGaode = bMapTransQQMap(e.point.lng,e.point.lat);
+      this.origin.longitude = transGaode.lng;
+      this.origin.latitude = transGaode.lat;
+      var { point } = e
+      this.mapLocation.coordinate = point
+      this.makerCenter(point)
+    },
+      makerCenter(point) {
+        if (this.map) {
+          this.map.clearOverlays()
+          this.map.addOverlay(new this.BMap.Marker(point))
+          this.center.lng = point.lng
+          this.center.lat = point.lat
+          this.zoom = 15
+        }
+      },
+      getMapInfo(point){
+        //用所定位的经纬度查找所在地省市街道等信息
+        var point = new BMap.Point(point.lng, point.lat);
+        var gc = new BMap.Geocoder();
+        let _this = this;
+        gc.getLocation(point, function (rs) {
+          var addComp = rs.addressComponents;
+          // console.log('getMapInfo',rs);//地址信息
+          _this.origin.provinceName = rs.addressComponents.province;
+          _this.origin.cityName = rs.addressComponents.city;
+          _this.origin.countyName = rs.addressComponents.district;
+          _this.origin.detailAddress = rs.address;
+        });
+
+      },
       handleSupplierChange(val) {
         let supplierInfoObj = {};
         supplierInfoObj = this.supplierOptList.find(item => {

+ 1 - 1
src/views/pms/origin/index.vue

@@ -24,7 +24,7 @@
             <el-input v-model="listQuery.keyword" class="input-width" placeholder="生产地名称" clearable></el-input>
           </el-form-item>
           <el-form-item label="供应商:">
-            <el-select v-model="listQuery.compId" placeholder="全部" clearable>
+            <el-select v-model="listQuery.compId" filterable placeholder="全部" clearable>
               <el-option
                 v-for="item in compList"
                 :key="item.value"

+ 61 - 3
src/views/pms/product/index.vue

@@ -64,7 +64,7 @@
             </el-select>
           </el-form-item>
           <el-form-item label="供应商:">
-            <el-select v-model="listQuery.compId" placeholder="全部" clearable>
+            <el-select v-model="listQuery.compId" filterable placeholder="全部" clearable>
               <el-option
                 v-for="item in compList"
                 :key="item.value"
@@ -73,6 +73,19 @@
               </el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="时间:">
+            <el-date-picker
+              v-model="rangeTime"
+              type="datetimerange"
+              :picker-options="pickerOptions"
+              @change="timeChange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              :default-time="['00:00:00', '23:59:59']"
+              align="right">
+            </el-date-picker>
+          </el-form-item>
         </el-form>
       </div>
     </el-card>
@@ -320,11 +333,15 @@
     productCategoryId: null,
     brandId: null,
     compId:null,
+    startTime:null,
+    endTime:null,    
   };
+  import {formatDate} from '@/utils/date';
   export default {
     name: "productList",
     data() {
       return {
+        rangeTime:'',//时间区间
         //按钮权限
         createproduct,
         updateproduct,
@@ -397,6 +414,33 @@
           value: 0,
           label: '未审核'
         }],
+        pickerOptions: {
+          shortcuts: [{
+            text: '最近一周',
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '最近一个月',
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '最近三个月',
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit('pick', [start, end]);
+            }
+          }]
+        },
       }
 
     },
@@ -423,7 +467,14 @@
         } else {
           return '未审核';
         }
-      }
+      },
+      formatTime(time) {
+        if (time == null || time === '') {
+          return 'N/A';
+        }
+        let date = new Date(time);
+        return formatDate(date, 'yyyy-MM-dd hh:mm:ss')
+      },
     },
     methods: {
       /** 获取供应商下拉列表 */
@@ -608,6 +659,7 @@
         this.updateRecommendStatus(row.recommandStatus, ids);
       },
       handleResetSearch() {
+        this.rangeTime='',
         this.selectProductCateValue = [];
         this.listQuery = Object.assign({}, defaultListQuery);
         this.getList();
@@ -703,7 +755,13 @@
           });
         });
         // console.log(row)
-      }
+      },
+      timeChange(rangeTime){
+        let startDate = new Date(rangeTime[0]);
+        let endDate = new Date(rangeTime[1]);
+        this.listQuery.startTime =  formatDate(startDate, 'yyyy-MM-dd hh:mm:ss');
+        this.listQuery.endTime =  formatDate(endDate, 'yyyy-MM-dd hh:mm:ss');
+      },
 
 
     }

+ 83 - 2
src/views/ums/company/components/companyDetail.vue

@@ -82,15 +82,25 @@
       <el-form-item label="所在县">
         <el-input v-model="company.countyId"></el-input>
       </el-form-item>
-      <el-form-item label="详细地址">
+      <!-- <el-form-item label="详细地址">
         <el-input v-model="company.detailAddress"></el-input>
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="经度(°)" prop="longitude">
         <el-input placeholder=""  style="width: 80%;" size="samll" v-model.number="company.longitude"></el-input>
       </el-form-item>
       <el-form-item label="维度(°)" prop="latitude">
         <el-input v-model="company.latitude"></el-input>
       </el-form-item>
+      <el-form-item label="详细地址" >
+        <el-autocomplete
+          v-model="company.detailAddress"
+          :fetch-suggestions="mapSearch"
+          placeholder="请输入详细地址"
+          style="width: 100%"
+          :trigger-on-focus="false"
+          @select="mapSelect"
+        />
+      </el-form-item>
       <el-form-item>
           <baidu-map  class="map" :center="center" :zoom="zoom" @ready="handlermap"
           :scroll-wheel-zoom="true"
@@ -209,6 +219,10 @@
         zoom: 12,
         mapVisible:false,
         clientHeight:document.documentElement.clientHeight-90, // 设置屏幕高度
+        mapLocation: {
+          address: undefined,
+          coordinate: undefined
+        }
       }
     },
     created() {
@@ -342,6 +356,8 @@
       handlermap ({BMap, map}) {
           let _this = this;	// 设置一个临时变量指向vue实例;
           var geolocation = new BMap.Geolocation();
+          this.BMap = BMap;
+          this.map = map;
           geolocation.getCurrentPosition(function(r){
             // console.log(r);
             _this.center = {lng: r.longitude, lat: r.latitude};		// 设置center属性值
@@ -401,6 +417,71 @@
         mapShow(){
           this.mapVisible = true
         },
+         mapSearch(queryString, cb) {
+      var that = this
+      var myGeo = new this.BMap.Geocoder()
+      myGeo.getPoint(queryString, function(point) {
+        if (point) {
+          that.mapLocation.coordinate = point
+          that.makerCenter(point)
+        } else {
+          that.mapLocation.coordinate = null
+        }
+      }, this.locationCity)
+      var options = {
+        onSearchComplete: function(results) {
+          if (local.getStatus() === 0) {
+            // 判断状态是否正确
+            var s = []
+            for (var i = 0; i < results.getCurrentNumPois(); i++) {
+              var x = results.getPoi(i)
+              var item = { value: x.address + x.title, point: x.point }
+              s.push(item)
+              cb(s)
+            }
+          } else {
+            cb()
+          }
+        }
+      }
+      var local = new this.BMap.LocalSearch(this.map, options)
+      local.search(queryString)
+    },
+    mapSelect(e) {
+      // console.log('e',e.point);
+      this.getMapInfo(e.point);
+      //转为高德坐标
+      let transGaode = bMapTransQQMap(e.point.lng,e.point.lat);
+      this.company.longitude = transGaode.lng;
+      this.company.latitude = transGaode.lat;
+      var { point } = e
+      this.mapLocation.coordinate = point
+      this.makerCenter(point)
+    },
+      makerCenter(point) {
+        if (this.map) {
+          this.map.clearOverlays()
+          this.map.addOverlay(new this.BMap.Marker(point))
+          this.center.lng = point.lng
+          this.center.lat = point.lat
+          this.zoom = 15
+        }
+      },
+      getMapInfo(point){
+        //用所定位的经纬度查找所在地省市街道等信息
+        var point = new BMap.Point(point.lng, point.lat);
+        var gc = new BMap.Geocoder();
+        let _this = this;
+        gc.getLocation(point, function (rs) {
+          var addComp = rs.addressComponents;
+          console.log('getMapInfo',rs);//地址信息
+          _this.company.provinceId = rs.addressComponents.province;
+          _this.company.cityId = rs.addressComponents.city;
+          _this.company.countyId = rs.addressComponents.district;
+          _this.company.detailAddress = rs.address;
+        });
+
+      },
     }
   }
 </script>