ソースを参照

Merge branch 'deploy_yuyueQY' of chelingzhu-web/zxyj-admin-html into master

李文文 4 年 前
コミット
6b48744521

+ 1 - 1
src/api/bannerSetting.js

@@ -22,7 +22,7 @@ export const changeSort = (params) => {
 
 // 更改状态
 export const changeStatus = (params) => {
-  const url = `advert/enable/${params.id}/${params.flag}`
+  const url = `banner/enable/${params.id}/${params.flag}`
   return axios({
     url: url,
     data: {},

+ 159 - 0
src/api/recoveryManage.js

@@ -0,0 +1,159 @@
+import { axios } from '@/utils/request'
+
+// 获取骑手列表数据
+export const getRiderList = params => {
+  const url = `/userExt/query/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'POST'
+  })
+}
+
+// 改变权限状态接口
+export const updateEnableStatus = params => {
+  return axios({
+    url: `userExt/enable/${params.id}/${params.flag}`,
+    data: {},
+    method: 'get'
+  })
+}
+
+// 新增/编辑保存接口
+export const savRider = params => {
+  return axios({
+    url: 'userExt/save',
+    data: params,
+    method: 'POST'
+  })
+}
+
+// 回收价格列表
+export const gePriceList = params => {
+  return axios({
+    url: 'rubbish/type/queryConvert',
+    data: params,
+    method: 'POST'
+  })
+}
+
+// 保存价格
+export const savPrice = params => {
+  return axios({
+    url: 'rubbish/type/update',
+    data: params,
+    method: 'POST'
+  })
+}
+
+// 获取订单详情列表
+export const getOrderList = params => {
+  const url = `/reserve/queryOrderReservePage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'POST'
+  })
+}
+// 订单总计
+export const getOrderTotal = (params) => {
+  const url = `/reserve/groupOrderReserve`
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+
+// 获取订单统计列表
+export const getOrderTotalList = params => {
+  const url = `/reserve/orderReserveGroupByUserExtPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'POST'
+  })
+}
+// 订单总计
+export const getOrderTotalNum = (params) => {
+  const url = `/reserve/groupExtPage`
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+// 订单详情
+export const orderDetails = (params) => {
+  const url = `/reserve/orderReserveInfo`
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+
+// banner图列表
+export const getbanerList = params => {
+  const url = `/banner/query/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'POST'
+  })
+}
+
+// 改变权限状态接口
+export const updateBannerStatus = params => {
+  return axios({
+    url: `/banner/enable/${params.id}/${params.flag}`,
+    data: {},
+    method: 'get'
+  })
+}
+
+// 删除用户接口
+export const delecBanner = params => {
+  return axios({
+    url: `/banner/delete/${params.id}`,
+    data: {},
+    method: 'get'
+  })
+}
+
+// 新增/编辑保存接口
+export const savBanner = params => {
+  return axios({
+    url: '/banner/save',
+    data: params,
+    method: 'POST'
+  })
+}
+
+// banner详情
+export const bannerDetails = (params) => {
+  const url = `/banner/getById/${params.id}`
+  return axios({
+    url: url,
+    data: params,
+    method: 'get'
+  })
+}
+
+// 上移下移
+export const changeSort = (params) => {
+  const url = `/banner/swapBannerSort/${params.id}/${params.sortId}`
+  return axios({
+    url: url,
+    data: {},
+    method: 'post'
+  })
+}

+ 70 - 3
src/config/router.config.js

@@ -87,7 +87,7 @@ export const asyncRouterMap = [{
     component: PageView,
     meta: {
       title: '大数据看板',
-      icon: 'fund',
+      icon: 'fund'
       // permission: 'M_dataView'
     },
     hideChildrenInMenu: true,
@@ -98,7 +98,7 @@ export const asyncRouterMap = [{
       component: RouteView,
       meta: {
         title: '大数据看板',
-        icon: 'fund',
+        icon: 'fund'
         // permission: 'M_dataView'
       },
       hideChildrenInMenu: true,
@@ -680,6 +680,73 @@ export const asyncRouterMap = [{
       }
     }]
   },
+  // 上门回收管理
+  {
+    path: '/recoveryManage',
+    redirect: '/recoveryManage/bannerSet',
+    component: PageView,
+    meta: {
+      title: '上门回收管理',
+      icon: 'car',
+      permission: 'M_recoveryManage'
+    },
+    children: [{
+      path: '/recoveryManage/bannerSet',
+      name: 'bannerSet',
+      component: () => import(/* webpackChunkName: "equipmentManage" */
+        '@/views/recoveryManage/bannerSet.vue'),
+      meta: {
+        title: 'banner图设置',
+        icon: 'bar-chart',
+        permission: 'M_bannerSet_list'
+      }
+    },
+    {
+      path: '/recoveryManage/riderSet',
+      name: 'riderSet',
+      component: () => import(/* webpackChunkName: "equipmentManage" */
+        '@/views/recoveryManage/riderSet.vue'),
+      meta: {
+        title: '骑手管理',
+        icon: 'contacts',
+        permission: 'M_riderSet_list'
+      }
+    },
+    {
+      path: '/recoveryManage/riderRecoveryTotal',
+      name: 'riderRecoveryTotal',
+      component: () => import(/* webpackChunkName: "equipmentManage" */
+        '@/views/recoveryManage/riderRecoveryTotal.vue'),
+      meta: {
+        title: '骑手回收统计',
+        icon: 'unordered-list',
+        permission: 'M_riderRecoveryTotal_list'
+      }
+    },
+    {
+      path: '/recoveryManage/riderOrderRecord',
+      name: 'riderOrderRecord',
+      component: () => import(/* webpackChunkName: "equipmentManage" */
+        '@/views/recoveryManage/riderOrderRecord.vue'),
+      meta: {
+        title: '订单记录',
+        icon: 'line-chart',
+        permission: 'M_riderOrderRecord_list'
+      }
+    },
+    {
+      path: '/recoveryManage/recoveryPriceSet',
+      name: 'recoveryPriceSet',
+      component: () => import(/* webpackChunkName: "equipmentManage" */
+        '@/views/recoveryManage/recoveryPriceSet.vue'),
+      meta: {
+        title: '回收价格设置',
+        icon: 'cluster',
+        permission: 'M_recoveryPriceSet_list'
+      }
+    }
+    ]
+  },
   // auth
   {
     path: '/auth',
@@ -763,7 +830,7 @@ export const asyncRouterMap = [{
   hidden: true
 }
 ]
- 
+
 /**
  * 基础路由
  * @type { *[] }

+ 6 - 6
src/views/businessManage/ledouCollectRecord/ledouCollectRecord.vue

@@ -108,8 +108,8 @@ export default {
       loadData: parameter => {
         const searchData = Object.assign(parameter, this.queryParam)
         if (this.queryOrderDate && this.queryOrderDate.length) {
-          searchData.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD')
-          searchData.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD')
+          searchData.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD 00:00:00')
+          searchData.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD 23:59:59')
         } else {
           searchData.beginDate = ''
           searchData.endDate = ''
@@ -164,8 +164,8 @@ export default {
     handleExport () {
       const params = this.queryParam
       if (this.queryOrderDate && this.queryOrderDate.length) {
-        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD')
-        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD')
+        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD 00:00:00')
+        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD 23:59:59')
       } else {
         params.beginDate = ''
         params.endDate = ''
@@ -205,8 +205,8 @@ export default {
     getTotal () {
       const params = this.queryParam
       if (this.queryOrderDate && this.queryOrderDate.length) {
-        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD')
-        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD')
+        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD 00:00:00')
+        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD 23:59:59')
       } else {
         params.beginDate = ''
         params.endDate = ''

+ 7 - 7
src/views/businessManage/leduQuery/leduQuery.vue

@@ -87,8 +87,8 @@ export default {
       loadData: parameter => {
         const searchData = Object.assign(parameter, this.queryParam)
         if (this.queryOrderDate && this.queryOrderDate.length) {
-          searchData.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD')
-          searchData.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD')
+          searchData.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD 00:00:00')
+          searchData.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD 23:59:59')
         } else {
           searchData.beginDate = ''
           searchData.endDate = ''
@@ -124,8 +124,8 @@ export default {
         officialPartnerName: this.queryParam.officialPartnerName
       }
       if (this.queryOrderDate && this.queryOrderDate.length) {
-        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD')
-        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD')
+        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD 00:00:00')
+        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD 23:59:59')
       } else {
         params.beginDate = ''
         params.endDate = ''
@@ -137,7 +137,7 @@ export default {
       // 判断两个时间段是否相差m个月  第二个参数指相差单位,第三个参数指是否返回浮点形式(小数)
       if (moment(params.endDate).diff(moment(params.beginDate), 'months', true) > 3) {
         this.$message.error('单次最多只能导出3个月的数据,请缩小查询区间后再进行导出!')
-		return
+        return
       }
       this.loading = true
       exportOffPartnerGoldLog(params).then(res => {
@@ -169,8 +169,8 @@ export default {
         endDate: this.queryParam.endDate
       }
       if (this.queryOrderDate && this.queryOrderDate.length) {
-        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD')
-        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD')
+        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD 00:00:00')
+        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD 23:59:59')
       } else {
         params.beginDate = ''
         params.endDate = ''

+ 9 - 1
src/views/equipmentManage/collector/collector.vue

@@ -133,7 +133,15 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        return getCollectorList(Object.assign(parameter, this.queryParam)).then(res => {
+		const searchData = Object.assign(parameter, this.queryParam)
+		if (this.time && this.time.length) {
+		  searchData.registerBeginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+		  searchData.registerEndDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
+		} else {
+		  searchData.registerBeginDate = null
+		  searchData.registerEndDate = null
+		}
+        return getCollectorList(searchData).then(res => {
           if (res.status == 200) {
             const no = (res.data.pageNo - 1) * res.data.pageSize
             for (let i = 0; i < res.data.list.length; i++) {

+ 9 - 1
src/views/equipmentManage/network/network.vue

@@ -171,7 +171,15 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        return stationListData(Object.assign(parameter, this.queryParam)).then(res => {
+        const searchData = Object.assign(parameter, this.queryParam)
+        if (this.time && this.time.length) {
+          searchData.beginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+          searchData.endDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
+        } else {
+          searchData.beginDate = null
+          searchData.endDate = null
+        }
+        return stationListData(searchData).then(res => {
           if (res.status == 200) {
             const no = (res.data.pageNo - 1) * res.data.pageSize
             this.orderTotal = res.data.count

+ 17 - 2
src/views/market/giftCard/giftCard.vue

@@ -119,7 +119,7 @@ import AddCardModal from './addCardModal.vue'
 import EditCardModal from './editCardModal.vue'
 import GetCodeModal from './getCodeModal.vue'
 import { giftCardQuery, giftCardDel } from '@/api/giftCard.js'
-
+import moment from 'moment'
 export default {
   components: { STable, VSelect, GetCodeModal, AddCardModal, EditCardModal },
   data () {
@@ -160,7 +160,22 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        return giftCardQuery(Object.assign(parameter, this.searchData)).then(res => {
+		  const queryParam = Object.assign(parameter, this.searchData)
+		  if (this.time && this.time.length) {
+		    queryParam.startTime = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+		    queryParam.endTime = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
+		  } else {
+		    queryParam.startTime = ''
+		    queryParam.endTime = ''
+		  }
+        if (this.rechargeTime && this.rechargeTime.length) {
+          queryParam.useTimeStart = moment(this.rechargeTime[0]).format('YYYY-MM-DD 00:00:00')
+          queryParam.useTimeEnd = moment(this.rechargeTime[1]).format('YYYY-MM-DD 23:59:59')
+        } else {
+          queryParam.useTimeStart = ''
+          queryParam.useTimeEnd = ''
+        }
+        return giftCardQuery(queryParam).then(res => {
           const no = (res.data.pageNo - 1) * res.data.pageSize
           if (res.status == 200) {
             for (let i = 0; i < res.data.list.length; i++) {

+ 396 - 0
src/views/recoveryManage/bannerSet.vue

@@ -0,0 +1,396 @@
+<template>
+  <a-card :bordered="false" class="bannerSetting-wrap">
+    <div class="add">
+      <a-button
+        type="primary"
+        v-if="$hasPermissions('B_bannerSet_add')"
+        icon="plus"
+        class="addBtn"
+        @click="showModal"
+        id="bannerSetting-showModal">新增</a-button>
+    </div>
+    <!-- table列表 -->
+    <s-table
+      ref="table"
+      size="default"
+      :rowKey="row => row.id"
+      :columns="columns"
+      :data="loadData"
+      bordered>
+      <!-- 操作 -->
+      <template slot="sort" slot-scope="text, record, index">
+        <div v-if="$hasPermissions('B_bannerSet_sort')">
+          <a-icon
+            title="下移"
+            v-if="index != list.length-1"
+            :style="{ fontSize: '18px', color: '#e29b29', cursor: 'pointer',padding:'0 10px' }"
+            @click="changeSort(index,record,0)"
+            type="arrow-down" />
+          <a-icon
+            title="上移"
+            v-if="index != 0"
+            :style="{ fontSize: '18px', color: '#e29b29',cursor: 'pointer', padding:'0 10px' }"
+            @click="changeSort(index,record,1)"
+            type="arrow-up" />
+        </div>
+        <div v-else>--</div>
+      </template>
+      <span slot="action" slot-scope="text, record">
+        <a-icon
+          type="eye"
+          id="bannerSetting-handleView"
+          title="查看"
+          v-if="$hasPermissions('B_bannerSet_detail')"
+          class="actionBtn icon-green"
+          @click="handleEdit(record, 1)" />
+        <a-icon
+          type="edit"
+          id="bannerSetting-handleEdit"
+          v-if="record.status == 0 && $hasPermissions('B_bannerSet_edit')"
+          title="编辑"
+          class="actionBtn icon-blues"
+          @click="handleEdit(record, 0)" />
+        <a-icon
+          type="delete"
+          id="bannerSetting-delect"
+          title="删除"
+          v-if="record.status == 0 && $hasPermissions('B_bannerSet_del')"
+          class="actionBtn icon-red"
+          @click="delect(record)" />
+        <span v-if="!$hasPermissions('B_bannerSet_detail') && !(record.status == 0 && $hasPermissions('B_bannerSet_edit')) &&!(record.status == 0 &&$hasPermissions('B_bannerSet_del')) ">--</span>
+      </span>
+      <span slot="status" slot-scope="text, record">
+        <a-switch
+          checkedChildren="启用"
+          unCheckedChildren="禁用"
+          v-if="$hasPermissions('B_bannerSet_enable')"
+          id="bannerSetting-changeFlagHandle"
+          v-model="record.status == 1 ? true : false"
+          @change="changeFlagHandle(text, record)"
+        />
+        <span v-if="!$hasPermissions('B_bannerSet_enable')">{{ record.status== true ? '启用' : '禁用' }}</span>
+      </span>
+    </s-table>
+    <!-- 弹窗 -->
+    <a-modal
+      :title="title"
+      :visible="visible"
+      :footer="null"
+      :closable="closable"
+      :centered="true"
+      @cancel="close"
+      width="45%">
+      <a-form
+        class="bannerSetting-form"
+        id="components-form-demo-validate-other"
+        :form="form"
+        ref="form"
+        v-bind="formItemLayout"
+        @submit="handleSubmit"
+        :hideRequiredMark="hideRequiredMark">
+        <a-form-item label="名称" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+          <a-input
+            id="bannerSetting-title"
+            :maxLength="30"
+            v-decorator="['formData.title', { initialValue: formData.title,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入轮播图名称(最多30个字符)!' }] }]"
+            :disabled="disabled"
+            placeholder="请输入轮播图名称(最多30个字符)"
+            allowClear
+          />
+        </a-form-item>
+        <a-form-item label="状态" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+          <a-radio-group
+            :disabled="disabled"
+            id="bannerSetting-status"
+            v-decorator="['formData.status', { initialValue: formData.status, rules: [{ required: true, message: '请选择状态!' }] }]"
+          >
+            <a-radio value="1">启用</a-radio>
+            <a-radio value="0">禁用</a-radio>
+          </a-radio-group>
+        </a-form-item>
+        <a-form-item label="上传图片" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+          <div v-if="title != '查看详情'">
+            <Upload
+              class="upload"
+              id="bannerSetting-photoPath"
+              v-decorator="[ 'formData.image', { initialValue: formData.image, rules: [{ required: true, message: '请上传轮播图!' }] } ]"
+              ref="bannerImage"
+              :fileSize="0.25"
+              :disabled="disabled"
+              @change="getbannerImage"
+              listType="picture-card" ></Upload>
+            <span class="upload-desc">请上传375*100px尺寸的图片。</span>
+          </div>
+          <img v-else :src="formData.image" style="max-width:400px ;height: auto;" />
+        </a-form-item>
+        <a-form-item label="备注" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+          <a-input
+            id="bannerSetting-remarks"
+            :maxLength="500"
+            v-decorator="['formData.remarks', { initialValue: formData.remarks }]"
+            :disabled="disabled"
+            type="textarea"
+            placeholder="请输入备注(最多500个字符)"
+            allowClear
+          />
+        </a-form-item>
+        <a-form-item :wrapper-col="{ span: 12, offset: 6}" style="text-align: center;">
+          <a-button type="primary" html-type="submit" v-if="!disabled" id="bannerSetting-submit" style="margin-right: 15px">保存</a-button>
+          <a-button @click="close()" v-if="!disabled" style="margin-left: 15px" id="bannerSetting-close">取消</a-button>
+        </a-form-item>
+      </a-form>
+    </a-modal>
+  </a-card>
+</template>
+
+<script>
+import { Upload, STable, VSelect } from '@/components'
+import { getbanerList, updateBannerStatus, delecBanner, savBanner, changeSort } from '@/api/recoveryManage.js'
+
+export default {
+  components: {
+    STable,
+    Upload,
+    VSelect
+  },
+  data () {
+    return {
+      showJumpUrl: true,
+      // 表头
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'no',
+          width: 60,
+          align: 'center'
+        },
+        {
+          title: '名称',
+          width: 150,
+          dataIndex: 'title',
+          align: 'center'
+        },
+        {
+          title: '状态',
+          width: 100,
+          dataIndex: 'status',
+          align: 'center',
+          scopedSlots: {
+            customRender: 'status'
+          }
+        },
+        {
+          title: '排序',
+          width: 100,
+          dataIndex: 'sort',
+          align: 'center',
+          scopedSlots: {
+            customRender: 'sort'
+          }
+        },
+        {
+          title: '操作',
+          align: 'center',
+          width: 150,
+          scopedSlots: {
+            customRender: 'action'
+          }
+        }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        return getbanerList(parameter).then(res => {
+          console.log(res, '------------banner')
+          const no = (res.data.pageNo - 1) * res.data.pageSize
+          for (let i = 0; i < res.data.list.length; i++) {
+            const _item = res.data.list[i]
+            _item.no = no + i + 1
+          }
+          this.list = res.data.list
+          return res.data
+        })
+      },
+      title: '编辑',
+      closable: true,
+      visible: false,
+      confirmLoading: false,
+      formLayout: 'horizontal',
+      hideRequiredMark: false, // 是否显示必填的* 默认显示
+      form: this.$form.createForm(this),
+      formItemLayout: {
+        labelCol: {
+          span: 6
+        },
+        wrapperCol: {
+          span: 14
+        }
+      },
+      formData: {
+        title: '', // 标题
+        status: '', // 状态
+        image: '', // banner地址
+        createDate: '', // 创建时间
+        remarks: '' // 备注
+      },
+      disabled: false,
+      value: '',
+      id: '',
+      isShow: true,
+      list: []
+    }
+  },
+  beforeCreate () {
+    this.form = this.$form.createForm(this, {
+      name: 'validate_other'
+    })
+  },
+  methods: {
+    jumpTypeChange (val) {
+      this.showJumpUrl = val != 'NONE'
+    },
+    showModal () {
+      this.disabled = false
+      delete this.formData.id
+      delete this.formData.createDate
+      this.visible = true
+      this.title = '新增'
+      this.hideRequiredMark = false
+    },
+    // 轮播图change
+    getbannerImage (data) {
+      this.formData.photoPath = data
+    },
+    // 点击保存;
+    handleSubmit (e) {
+      e.preventDefault()
+      const _this = this
+      this.form.validateFields((err, values) => {
+        if (!err) {
+          const formData = Object.assign({}, this.formData, values.formData, { appType: 'cust' })
+          console.log(formData)
+          savBanner(formData).then(res => {
+            console.log(res, 'rrrrrrrrr')
+            if (res.status == 200) {
+              _this.$message.success(res.message)
+              _this.$refs.table.refresh(true)
+              _this.close()
+            }
+          })
+        }
+      })
+    },
+    close () {
+      this.visible = false
+      this.formData.title = ''
+      this.formData.status = ''
+      this.formData.image = ''
+      this.formData.remarks = '' // 备注
+      this.title = '新增'
+      if (this.$refs.bannerImage) {
+        this.$refs.bannerImage.setFileList('')
+      }
+      this.form.resetFields()
+    },
+    // 赋值
+    assignment (row) {
+      this.formData.id = row.id
+      this.formData.title = row.title
+      this.formData.image = row.image
+      this.formData.status = row.status
+      this.formData.remarks = row.remarks
+      this.formData.createDate = row.createDate
+      // this.jumpTypeChange(this.formData.jumpType)
+    },
+    // 0 修改,1 查看详情
+    handleEdit (row, type) {
+      const _this = this
+      if (type == 1) {
+        this.title = '查看详情'
+        this.hideRequiredMark = true
+      } else if (type == 0) {
+        this.title = '编辑'
+        this.hideRequiredMark = false
+        setTimeout(() => {
+          _this.$refs.bannerImage.setFileList(this.formData.image)
+        }, 500)
+      }
+      this.assignment(row)
+      this.disabled = type == 1
+      this.visible = true
+    },
+    // 删除
+    delect (row) {
+      const _this = this
+      this.$confirm({
+        title: '警告',
+        centered: true,
+        content: '删除后无法恢复,确认删除?',
+        okText: '确定',
+        cancelText: '取消',
+        onOk () {
+          delecBanner({
+            id: row.id
+          }).then(res => {
+            if (res.status == 200) {
+              _this.$message.success(res.message)
+              _this.$refs.table.refresh()
+            }
+          })
+        }
+      })
+    },
+    // 更改启用禁用状态
+    changeFlagHandle (text, record) {
+      const _data = {
+        id: record.id,
+        flag: record.status == 1 ? '0' : '1'
+      }
+      updateBannerStatus(_data).then(res => {
+        if (res.status == '200') {
+          this.$message.success(res.message)
+          this.$refs.table.refresh()
+        } else {
+          record.status = !record.status
+        }
+      })
+    },
+    // 上移 下移 排序 index:下标  item:数据  type:类型 0 下移 1 上移
+    changeSort (index, item, type) {
+      console.log(index, item, type, this.list)
+      const indexThat = type === 0 ? index + 1 : index - 1
+      const params = {
+        id: item.id,
+        sortId: this.list[indexThat].id
+      }
+      changeSort(params).then(res => {
+        if (res.status == 200) {
+          this.$refs.table.refresh()
+        } else {
+          this.$message.error(res.message)
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .bannerSetting-wrap{
+    .addBtn {
+      margin-bottom: 20px;
+    }
+  }
+  .bannerSetting-form{
+    .upload{
+      width: 100%!important;
+      margin-bottom: 10px;
+    }
+    /* 商品图片描述 */
+    .upload-desc{
+      display: block;
+      font-size: 12px;
+      color: #808695;
+      line-height: 1.5em;
+    }
+  }
+</style>

+ 124 - 0
src/views/recoveryManage/recoveryPriceSet.vue

@@ -0,0 +1,124 @@
+<template>
+  <a-card :bordered="false">
+    <a-tabs type="card" @change="callback">
+      <a-tab-pane key="1" tab="上门回收价格设置">
+      </a-tab-pane>
+      <a-tab-pane key="2" tab="工厂回收价格设置">
+      </a-tab-pane>
+    </a-tabs>
+    <a-table
+      class="table"
+      ref="table"
+      size="default"
+      :rowKey="record => record.id"
+      :columns="columns"
+      :dataSource="loadData"
+      :pagination="false"
+      :scroll="{ y: 650 }"
+      :loading="loadingPage"
+      bordered>
+      <!-- 门店结算价 -->
+      <template slot="advicePrice" slot-scope="text, record" >
+        <a-input-number
+          id="storeSettlementPrice-price"
+          v-model="record.advicePrice"
+          :precision="2"
+          :min="0"
+          :max="999999"
+          style="width: 70%;"
+          placeholder="请输入回收价格"
+          @change="changeInput(record)"
+        />
+      </template>
+      <!-- 操作 -->
+      <template slot="action" slot-scope="text, record">
+        <div class="editable-row-operations">
+          <span v-hasPermission="'B_recoveryPriceSet_save'">
+            <a-popconfirm title="确定要保存吗?" @confirm="() => save(record.id,record.advicePrice)" @cancel="record.advicePrice = record.currentValue">
+              <template slot="title">
+                <p> 保存</p>
+                <p> 取消 </p>
+              </template>
+              <a>保存</a>
+            </a-popconfirm>
+          </span>
+        </div>
+      </template>
+    </a-table>
+  </a-card>
+</template>
+
+<script>
+import { gePriceList, savPrice } from '@/api/recoveryManage.js'
+export default {
+  data () {
+    return {
+      loadingPage: false, // 列表加载状态
+      type: '1',
+      // 表头
+      columns: [
+        { title: '序号', dataIndex: 'no', width: 60, align: 'center' },
+        { title: '回收类型', dataIndex: 'fatherName', width: 100, align: 'center' },
+        { title: '回收名称', dataIndex: 'name', width: 100, align: 'center' },
+        { title: '回收价格(元/kg)', dataIndex: 'advicePrice', width: 100, align: 'center', scopedSlots: { customRender: 'advicePrice' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center' }
+      ],
+      //  表格列表数据
+      loadData: []
+    }
+  },
+  mounted () {
+	  this.type = 1
+	  this.loadData = []
+    this.getListData()
+  },
+  methods: {
+    callback (key) {
+      this.type = key
+	  this.getListData()
+      // this.save()
+      console.log(key, this.type)
+    },
+    changeInput (item) {
+      if (item.advicePrice == 0) {
+        item.advicePrice = ''
+      }
+    },
+    getListData () {
+      gePriceList({ adviceType: this.type }).then(res => {
+        if (res.status == 200) {
+          this.loadData = res.data
+          this.loadData.forEach((item, index) => {
+            item.no = index + 1
+            item.currentValue = item.advicePrice || ''
+          })
+        }
+      })
+    },
+    // 保存价格
+    save (id, advicePrice) {
+      const params = { adviceType: this.type, id: id, advicePrice: advicePrice }
+      if (params.advicePrice == 0 || !params.advicePrice) {
+        this.$message.warning('请输入正确的回收价格')
+        return false
+      }
+      // if (!params.advicePrice) {
+      //   this.$message.warning('回收价格不能为空')
+      //   return false
+      // }
+
+      savPrice(params).then(res => {
+        if (res.status == 200) {
+          this.$message.success(res.message)
+          this.getListData()
+        } else {
+          this.$message.warning(res.message)
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style>
+</style>

+ 223 - 0
src/views/recoveryManage/riderModal.vue

@@ -0,0 +1,223 @@
+<template>
+  <div>
+    <a-modal
+      class="modalBox"
+      :title="titleText"
+      v-model="isshow"
+      @cancle="cancel"
+      width="45%"
+      :centered="true">
+      <a-form :form="form" @submit="handleSubmit">
+        <a-row :gutter="30">
+          <a-col :span="10">
+            <!-- 用户名称 -->
+            <a-form-item label="骑手名称" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
+              <a-input
+                placeholder="请输入骑手名称(最多30个字符)"
+                allowClear
+                id="userModal-userName"
+                :maxLength="30"
+                v-decorator="['formData.userName', {
+                  initialValue: formData.userName,getValueFromEvent: $filterEmpty,
+                  rules: [{ required: true, message: '请输入骑手名称(最多30个字符)!' },{pattern:'^[^<|>]{1,30}$',message:'请输入不含<或>的字符,最多30个字符'}] }]"
+              />
+            </a-form-item>
+          </a-col>
+          <a-col :span="10">
+            <!-- 手机号码 -->
+            <a-form-item label="骑手电话" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
+              <a-input
+                placeholder="请输入骑手电话"
+                allowClear
+                :maxLength="11"
+                id="userModal-userMobile"
+                v-decorator="['formData.userMobile', {
+                  initialValue: formData.userMobile,getValueFromEvent: $filterEmpty,
+                  rules: [{ required: true, message: '请输入骑手电话!' },{pattern:/^[1][0-9]{10}$/, message: '请输入正确的骑手电话!'}] }]"
+              />
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <!-- 经纬度 -->
+        <a-row :gutter="30">
+          <a-col :span="10">
+            <a-form-item label="纬度" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
+              <a-input
+                id="network-edit-lat"
+                v-decorator="[
+                  'formData.lat',
+                  { initialValue: formData.lat, rules: [
+                    { required: true, message: '请输入纬度' },
+                    { pattern: /^[\-\+]?([0-8]?\d{1}\.\d{1,8}|90\.0{1,8})$/, message: '请输入正确的纬度,整数部分为0~90,必须输入1到8位小数' }
+                  ] }
+                ]"
+                placeholder="请输入纬度"
+                allowClear />
+            </a-form-item>
+          </a-col>
+          <a-col :span="10">
+            <a-form-item label="经度" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
+              <a-input
+                id="network-edit-lng"
+                v-decorator="[
+                  'formData.lng',
+                  { initialValue: formData.lng, getValueFromEvent: $filterEmpty, rules: [
+                    { required: true, message: '请输入经度' },
+                    { pattern: /^[\-\+]?(0?\d{1,2}\.\d{1,8}|1[0-7]?\d{1}\.\d{1,8}|180\.0{1,8})$/, message: '请输入正确的经度,整数部分为0~180,必须输入1到8位小数' }
+                  ] }
+                ]"
+                placeholder="请输入经度"
+                allowClear />
+            </a-form-item>
+          </a-col>
+          <a-col :span="4">
+            <a href="https://lbs.qq.com/tool/getpoint/" target="_blank">
+              <a-button type="primary" id="network-edit-search-jwd" class="network-edit-search-jwd" size="small">查询坐标</a-button>
+            </a>
+          </a-col>
+        </a-row>
+        <a-row :gutter="30" type="flex">
+          <a-col :span="10">
+            <a-form-item label="服务半径" :label-col="{ span: 8 }" :wrapper-col="{ span: 14 }" >
+              <!-- <a-input
+                v-decorator="[
+                  'formData.serviceRadius',
+                  { initialValue: formData.serviceRadius, getValueFromEvent: $filterEmpty, rules: [
+                    { required: true, message: '请输入服务半径' },
+                    { pattern: /^[1-9]\d*$/, message: '请输入正确的服务半径(大于0的正整数)' }
+                  ] }
+                ]"
+                placeholder="请输入服务半径"
+                allowClear /> -->
+              <span>3KM</span>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-form-item :wrapper-col="{ span: 24, offset: 10}">
+          <a-button type="primary" @click="handleSubmit()" id="userModal-handleSubmit" :style="{ marginRight: '15px' }">
+            保存
+          </a-button>
+          <a-button :style="{ marginLeft: '15px' }" @click="handleCancel()" id="userModal-handleCancel">
+            取消
+          </a-button>
+        </a-form-item>
+      </a-form>
+
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import { STable, VSelect } from '@/components'
+import { savRider } from '@/api/recoveryManage.js'
+export default {
+  name: 'RiderModal',
+  components: {
+    STable, VSelect
+  },
+  props: {
+    visible: {
+      type: Boolean,
+      default: false
+    },
+    data: {
+      type: Object,
+      default: function () {
+        return {}
+      }
+    }
+  },
+  data () {
+    return {
+      titleText: '新增用户',
+      isshow: this.visible,
+      formLayout: 'horizontal',
+      form: this.$form.createForm(this, { name: 'miniForm' }),
+      roleList: [],
+      formData: {
+        userName: '',
+        userMobile: '',
+        serviceRadius: '',
+        lat: '',
+        lng: ''
+      }
+
+    }
+  },
+  methods: {
+    cancel (e) {
+      this.clear()
+      this.$emit('close')
+    },
+
+    // 保存提交
+    handleSubmit () {
+      const _this = this
+      this.form.validateFields((err, values) => {
+        console.log(values, 'values222')
+        if (!err) {
+          // values.formData.roleNames = values.formData.roleNames.join(',')
+          // console.log(values.formData, ' formData.type222222222')
+          // console.log(Object.assign({ id: this.data.id ? this.data.id : '' }, values.formData))
+          savRider(Object.assign({ id: this.data.id ? this.data.id : '', userId: this.data.userId ? this.data.userId : '' }, values.formData)).then(res => {
+            console.log(res, 'res--save')
+            if (res.status + '' === '200') {
+              this.$message.success(res.message ? res.message : '保存成功')
+              this.$emit('refresh')
+              setTimeout(function () {
+                _this.cancel()
+              }, 300)
+            } else {
+              // this.$message.error(res.message)
+            }
+          })
+        }
+      })
+    },
+    // 取消
+    handleCancel () {
+      this.cancel()
+    },
+    clear () {
+      this.form.resetFields()
+      delete this.formData.id
+      delete this.formData.userId
+      this.formData.userName = ''
+      this.formData.userMobile = ''
+      this.formData.lat = ''
+      this.formData.lng = ''
+      this.formData.serviceRadius = ''
+    }
+  },
+  beforeCreate () {
+    this.form = this.$form.createForm(this, { name: 'miniForm' })
+  },
+  watch: {
+    visible (newValue, oldValue) {
+      this.isshow = newValue
+    },
+    isshow (newValue, oldValue) {
+      if (newValue) {
+        if (this.data.id) { // 编辑
+          this.titleText = '编辑用户'
+          this.formData = Object.assign({}, this.data)
+          delete this.formData.no
+        } else {
+          this.titleText = '新增用户'
+        }
+      } else {
+        this.cancel()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .ant-modal-footer {
+    display: none;
+  }
+  .network-edit-search-jwd{
+    margin-top: 8px;
+  }
+</style>

+ 218 - 0
src/views/recoveryManage/riderOrderModal.vue

@@ -0,0 +1,218 @@
+<template>
+  <div>
+    <a-modal
+      class="modalBox"
+      title="详情"
+      v-model="isshow"
+      @cancle="cancel"
+      width="70%"
+      :footer="null"
+      :centered="true">
+      <a-row type="flex" justify="start">
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">单号:</p>
+          <p class="item-main">{{ pageInfo.orderReserveNo ? pageInfo.orderReserveNo : '--' }}</p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">状态:</p>
+          <p class="item-main">{{ pageInfo.orderStatusDictValue ? pageInfo.orderStatusDictValue : '--' }}</p>
+        </a-col>
+        <a-col :span="8" class="item-cont" v-if="pageInfo.orderStatus=='FINISH'">
+          <p class="item-label">支付方式:</p>
+          <p class="item-main">{{ pageInfo.payTypeDictValue ? pageInfo.payTypeDictValue : '--' }}</p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">下单时间:</p>
+          <p class="item-main">{{ pageInfo.createDate ? pageInfo.createDate : '--' }}</p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">预约时间:</p>
+          <p class="item-main">{{ pageInfo.reserveDateBegin ? pageInfo.reserveDateBegin.substring(0,10) :'' }} {{ pageInfo.reserveTimeTypeDictValue }}</p>
+          <p v-if="!pageInfo.reserveDateBegin && !pageInfo.reserveTimeTypeDictValue">--</p>
+        </a-col>
+        <a-col :span="8" class="item-cont" v-if="pageInfo.orderStatus=='FINISH'">
+          <p class="item-label">服务时间:</p>
+          <p class="item-main">{{ pageInfo.finishDate ? pageInfo.finishDate : '--' }}</p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">服务骑手:</p>
+          <p class="item-main">{{ pageInfo.name ? pageInfo.name+'-' : '' }}{{ pageInfo.phone? pageInfo.phone :'' }}</p>
+          <p v-if="!pageInfo.name && !pageInfo.phone">--</p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">回收重量(kg):</p>
+          <p class="item-main">{{ pageInfo.totalWeight ?(pageInfo.totalWeight/1000).toFixed(3)/1 : '0' }}</p>
+        </a-col>
+        <a-col :span="8" class="item-cont" v-if="pageInfo.orderStatus=='FINISH'">
+          <p class="item-label">支付金额(元):</p>
+          <p class="item-main">{{ pageInfo.originalAmount ? pageInfo.originalAmount : '0' }}</p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">联系人信息:</p>
+          <p class="item-main">{{ pageInfo.contactName ? pageInfo.contactName+'-' : '' }} {{ pageInfo.contactMobile ? pageInfo.contactMobile : '' }}</p>
+          <p class="item-main" v-if="!pageInfo.contactName && !pageInfo. contactName">--</p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">地址:</p>
+          <p class="item-main">{{ pageInfo.contactAddress ? pageInfo.contactAddress : '' }}{{ pageInfo.houseAddress ? pageInfo.houseAddress : '' }}</p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">门头照:</p>
+          <p class="item-main">
+            <viewer :images="pageInfo.imageHeader ? pageInfo.imageHeader :[]" class="viewer" ref="viewer" @inited="inited" rebuild>
+              <img v-for="src in pageInfo.imageHeader" :src="src" :key="src" class="image1">
+            </viewer>
+          </p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">类型:</p>
+          <p class="item-main">{{ pageInfo.addressTypeDictValue ? pageInfo.addressTypeDictValue : '--' }}</p>
+        </a-col>
+        <a-col :span="8" class="item-cont" v-if="pageInfo.orderStatus=='CANCEL'">
+          <p class="item-label">取消原因:</p>
+          <p class="item-main">{{ pageInfo.cancelReasonDictValue ? pageInfo.cancelReasonDictValue : '--' }}</p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">图片:</p>
+          <p class="item-main">
+            <viewer :images="pageInfo.imageList? pageInfo.imageList:[]" class="viewer" ref="viewer" @inited="inited" rebuild>
+              <img v-for="src in pageInfo.imageList" :src="src" :key="src" class="image">
+            </viewer>
+          </p><P style="margin-bottom: 0;">{{ pageInfo.imageList ? pageInfo.imageList.length+' 张' :'' }}</P>
+          </p>
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">下单账号:</p>
+          <p class="item-main">{{ pageInfo.mobile ? pageInfo.mobile : '--' }}</p>
+        </a-col>
+      </a-row>
+      <!-- 列表 -->
+      <div class="table-title">回收明细</div>
+      <!-- 列表 -->
+      <a-table
+        ref="table"
+        :rowKey="(record) => record.id"
+        :columns="columns"
+        :data-source="tableData"
+        :pagination="false"
+        :scroll="{ y: 450 }"
+        bordered
+      >
+      </a-table>
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import { orderDetails } from '@/api/recoveryManage.js'
+export default {
+  name: 'RiderOrderModal',
+  components: {
+    // VSelect
+  },
+  props: {
+    visible: {
+      type: Boolean,
+      default: false
+    },
+    itemOrderNo: {
+      type: [String, Number],
+      default: ''
+    }
+  },
+  data () {
+    return {
+      isshow: this.visible,
+      tableData: [], // 列表数据
+      image: [],
+      images: [],
+      pageInfo: {},
+      columns: [{ title: '序号', dataIndex: 'no', width: 60, align: 'center' },
+        { title: '回收类别', dataIndex: 'rubbishTypeDictValue', width: 200, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '回收名称', dataIndex: 'typeName', width: 200, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '回收价格', dataIndex: 'rubbishPrice', width: 200, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '回收重量(kg)', dataIndex: 'rubbishWeight', width: 150, align: 'center', customRender: (text) => { return (text / 1000).toFixed(3) / 1 || '0' } },
+        { title: '交易金额(元)', dataIndex: 'totalAmount', width: 150, align: 'center', customRender: (text) => { return text || 0 } }]
+    }
+  },
+  methods: {
+    // 详情数据
+    getPageData () {
+      orderDetails({ orderReserveNo: this.itemOrderNo }).then(res => {
+        if (res.status == 200) {
+          this.pageInfo = res.data
+          if (res.data.imageHeader) {
+            this.pageInfo.imageHeader = this.pageInfo.imageHeader.split()
+          }
+          console.log(this.pageInfo.imageHeader, '---------------v')
+          this.tableData = res.data.orderReserveItemEntityList || []
+          this.tableData.forEach((item, index) => {
+            item.no = index + 1
+          })
+        }
+      })
+    },
+    inited (viewer) {
+      this.$viewer = viewer
+    },
+    isShow () {
+      this.$viewer.update()
+    },
+    cancel (e) {
+      this.clear()
+      this.$emit('close')
+    },
+    // 取消
+    handleCancel () {
+      this.cancel()
+    }
+
+  },
+  watch: {
+    visible (newValue, oldValue) {
+      this.isshow = newValue
+    },
+    isshow (newValue, oldValue) {
+      if (newValue) {
+        if (this.itemOrderNo) {
+          this.getPageData()
+        }
+      } else {
+        this.$emit('close')
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped="scoped">
+  .ant-modal-footer {
+    display: none;
+  }
+  .network-edit-search-jwd{
+    margin-top: 8px;
+  }
+  .table-title{
+    margin-bottom: 10px;
+  }
+  .item-label{
+	  min-width: 50px;
+  }
+  .item-cont{
+    display: flex;
+    // min-height: 50px;
+  }
+  .image1 {
+    width:25px;
+    height: 25px;
+    display: inline-block;
+  }
+  .image {
+    width:25px;
+    height: 25px;
+    display: inline-block;
+  }
+  .image:not(:first-child){
+    display: none;
+  }
+</style>

+ 238 - 0
src/views/recoveryManage/riderOrderRecord.vue

@@ -0,0 +1,238 @@
+<template>
+  <a-card :bordered="false" class="cleanDetail-container">
+    <!-- 搜索条件 -->
+    <div class="cleanDetail-container-searchForm">
+      <a-form-model
+        ref="queryParam"
+        :model="queryParam"
+        layout="inline"
+        @keyup.enter.native="refresh"
+        v-bind="formItemLayout">
+        <a-row :gutter="24">
+          <a-col :xs="24" :sm="12" :md="6" >
+            <a-form-model-item label="下单时间" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-range-picker
+                id="netWorkCleanRecord-time"
+                v-model="time"
+                style="width: 100%;"
+                :format="dateFormat"
+                :placeholder="['开始时间','结束时间']"
+                :disabledDate="disabledDate"
+                @change="onChange" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :xs="24" :sm="12" :md="6">
+            <a-form-model-item label="单号" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-input allowClear v-model.trim="queryParam.orderReserveNo" placeholder="请输入单号" @pressEnter="$refs.table.refresh(true)"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :xs="24" :sm="12" :md="6" >
+            <a-form-model-item label="联系人信息" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-input allowClear v-model.trim="queryParam.userPhoneOrName" placeholder="请输入名称或电话" @pressEnter="$refs.table.refresh(true)"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :xs="24" :sm="12" :md="6" >
+            <a-form-model-item label="骑手信息" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-input allowClear v-model.trim="queryParam.phoneOrName" placeholder="请输入名称或电话" @pressEnter="$refs.table.refresh(true)"/>
+            </a-form-model-item>
+          </a-col>
+
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :xs="24" :sm="12" :md="6" >
+            <a-form-model-item label="状态" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <v-select code="ORDER_RESERVE_STATUS" v-model="queryParam.orderStatus" allowClear placeholder="请选择状态" id="userList-check-enable-state"></v-select>
+            </a-form-model-item>
+          </a-col>
+          <a-col :xs="24" :sm="12" :md="6" >
+            <a-button type="primary" @click="refreshSearch" id="netWorkCleanRecord-refresh" style="margin: 4px 10px 0 20px">查询</a-button>
+            <a-button type="" @click="reset" id="netWorkCleanRecord-reset" style="margin-top: 4px">重置</a-button>
+          </a-col>
+        </a-row>
+      </a-form-model>
+    </div>
+    <!-- 合计 -->
+    <a-alert type="info" showIcon style="margin-bottom:15px">
+      <div class="ftext" slot="message">总计<span> {{ totalNum }} </span>条,回收重量 <span> {{ weightTotal }} </span>kg,交易金额 <span>{{ moneyTotal }}</span>元</div>
+    </a-alert>
+    <!-- 列表 -->
+    <s-table
+      ref="table"
+      :rowKey="(record) => record.id"
+      :columns="columns"
+      :data="loadData"
+      bordered
+    >
+      <template slot="contact" slot-scope="text,record">
+        <div>{{ record.contactName }}</div>
+        <div>{{ record.contactMobile }}</div>
+        <div v-if="!record.contactName && !record.contactMobile">--</div>
+      </template>
+
+      <template slot="rider" slot-scope="text,record">
+        <div>{{ record.name }}</div>
+        <div>{{ record.phone }}</div>
+        <div v-if="!record.name && !record.phone">--</div>
+      </template>
+      <!-- 查看详情 -->
+      <template slot="detail" slot-scope="text, record">
+        <a-icon
+          type="eye"
+          title="详情"
+          v-if="$hasPermissions('B_riderOrderRecord_detail')"
+          class="actionBtn icon-blues"
+          @click="handelDetail(record)" />
+        <span v-else>--</span>
+      </template>
+    </s-table>
+    <!-- 详情弹窗 -->
+    <riderOrderModal :visible="isOpenModal" :itemOrderNo="recordOrderNo" @close="isOpenModal=false"></riderOrderModal>
+  </a-card>
+</template>
+
+<script>
+import { STable, VSelect } from '@/components'
+import { getOrderList, getOrderTotal } from '@/api/recoveryManage.js'
+import moment from 'moment'
+import riderOrderModal from './riderOrderModal.vue'
+export default {
+  components: { STable, VSelect, riderOrderModal },
+  data () {
+    return {
+      formItemLayout: {
+        labelCol: {
+          span: 7
+        },
+        wrapperCol: {
+          span: 17
+        }
+      },
+      // 查询参数
+      queryParam: {
+        orderReserveNo: '', // 骑手信息
+        orderStatus: '', // 骑手信息
+        phoneOrName: '', // 骑手信息
+        userPhoneOrName: ''
+      },
+      totalNum: 0, // 总条数
+      weightTotal: 0, // 回收物总计
+      moneyTotal: 0, // 金额总计
+      isOpenModal: false,
+      recordOrderNo: '', // 行订单编号
+      // 将默认近一周时间日期回显在时间选择框中
+      time: [],
+      dateFormat: 'YYYY-MM-DD',
+      columns: [{ title: '序号', dataIndex: 'no', width: 60, align: 'center' },
+        { title: '下单时间', dataIndex: 'createDate', width: 200, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '单号', dataIndex: 'orderReserveNo', width: 200, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '下单账号', dataIndex: 'mobile', width: 200, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '联系人信息', dataIndex: 'contact', width: 180, align: 'center', scopedSlots: { customRender: 'contact' } },
+        { title: '骑手信息', dataIndex: 'rider', width: 200, align: 'center', scopedSlots: { customRender: 'rider' } },
+        { title: '回收重量(kg)', dataIndex: 'totalWeight', width: 150, align: 'center', customRender: (text) => { return (text / 1000).toFixed(3) / 1 || 0 } },
+        { title: '交易金额(元)', dataIndex: 'originalAmount', width: 150, align: 'center', customRender: (text) => { return text || 0 } },
+        { title: '状态', dataIndex: 'orderStatusDictValue', width: 100, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '详情', width: 80, align: 'center', scopedSlots: { customRender: 'detail' } }],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        const searchData = Object.assign(parameter, this.queryParam)
+        if (this.time && this.time.length) {
+          searchData.beginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+          searchData.endDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
+        } else {
+          searchData.beginDate = null
+          searchData.endDate = null
+        }
+        return getOrderList(searchData).then(res => {
+          if (res.status == 200) {
+          this.totalNum=res.data.count
+            const no = (res.data.pageNo - 1) * res.data.pageSize
+            for (let i = 0; i < res.data.list.length; i++) {
+              const _item = res.data.list[i]
+              _item.no = no + i + 1
+              if (_item.cleanWeight != null || 0) {
+                _item.cleanWeight = (_item.cleanWeight / 1000).toFixed(3) / 1
+              }
+            }
+            this.getTotal()
+            return res.data
+          }
+        })
+      }
+    }
+  },
+  methods: {
+    // 不可选日期
+    disabledDate (date, dateStrings) {
+      return date && date.valueOf() > Date.now()
+    },
+    // 创建时间change
+    onChange (dates, dateStrings) {
+      if ((dates, dateStrings)) {
+        this.queryParam.beginDate = dateStrings[0]
+        this.queryParam.endDate = dateStrings[1]
+      }
+    },
+    filterOption (input, option) {
+      return (
+        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      )
+    },
+    // 总计
+    getTotal () {
+      const params = this.queryParam
+      if (this.time && this.time.length) {
+        params.beginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+        params.endDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
+      } else {
+        params.beginDate = null
+        params.endDate = null
+      }
+      getOrderTotal(params).then(res => {
+        if (res.status == 200) {
+          if (res.data) {
+            this.weightTotal = (res.data.totalWeight / 1000).toFixed(3) / 1 || 0// 回收物总计
+            this.moneyTotal = res.data.originalAmount || 0 // 金额总计
+          }else{
+            this.weightTotal = 0// 回收物总计
+            this.moneyTotal =0
+          }
+        }
+      })
+    },
+    // 查看详情
+    handelDetail (row) {
+      this.recordOrderNo = row.orderReserveNo
+      this.isOpenModal = true
+    },
+    // 查询
+    refreshSearch () {
+      this.$refs.table.refresh(true)
+      this.getTotal()
+    },
+    // 重置
+    reset () {
+      this.queryParam = {
+        beginDate: null, // 开始时间
+        endDate: null, // 结束时间
+        orderReserveNo: '', // 骑手信息
+        orderStatus: '', // 骑手信息
+        phoneOrName: '', // 骑手信息
+        userPhoneOrName: ''
+      }
+      this.time = []
+      this.refreshSearch()
+    }
+  }
+}
+</script>
+
+<style lang='less' scoped>
+	.cleanDetail-container {
+		.cleanDetail-container-searchForm {
+			.ant-form-inline .ant-form-item {
+				width: 100%;
+				margin-bottom: 15px;
+			}
+		}
+	}
+</style>

+ 190 - 0
src/views/recoveryManage/riderRecoveryTotal.vue

@@ -0,0 +1,190 @@
+<template>
+  <a-card :bordered="false" class="cleanDetail-container">
+    <!-- 搜索条件 -->
+    <div class="cleanDetail-container-searchForm">
+      <a-form-model
+        ref="queryParam"
+        :model="queryParam"
+        layout="inline"
+        @keyup.enter.native="refresh"
+        v-bind="formItemLayout">
+        <a-row :gutter="24">
+          <a-col :xs="24" :sm="12" :md="6" :lg="5">
+            <a-form-model-item label="下单时间" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-range-picker
+                id="netWorkCleanRecord-time"
+                v-model="time"
+                style="width: 100%;"
+                :format="dateFormat"
+                :placeholder="['开始时间','结束时间']"
+                :disabledDate="disabledDate"
+                @change="onChange" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :xs="24" :sm="12" :md="6" :lg="5">
+            <a-form-model-item label="骑手信息" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-input allowClear v-model.trim="queryParam.phoneOrName" placeholder="请输入名称或电话" @pressEnter="$refs.table.refresh(true)"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :xs="24" :sm="12" :md="6" :lg="5">
+            <a-button type="primary" @click="refreshSearch" id="netWorkCleanRecord-refresh" style="margin: 4px 10px 0 20px">查询</a-button>
+            <a-button type="" @click="reset" id="netWorkCleanRecord-reset" style="margin-top: 4px">重置</a-button>
+          </a-col>
+        </a-row>
+      </a-form-model>
+    </div>
+    <!-- 合计 -->
+    <a-alert type="info" showIcon style="margin-bottom:15px">
+      <div class="ftext" slot="message">总计<span> {{ totalNum }} </span>条,回收重量 <span> {{ weightTotal }} </span>kg,交易金额 <span>{{ moneyTotal }}</span>元</div>
+    </a-alert>
+    <!-- 列表 -->
+    <s-table
+      ref="table"
+      :rowKey="(record) => record.id"
+      :columns="columns"
+      :data="loadData"
+      bordered
+    >
+      <template slot="stationName" slot-scope="text,record">
+        <div>{{ record.name }}</div>
+        <div>{{ record.phone }}</div>
+        <div v-if="!record.name && !record.phone">--</div>
+      </template>
+    </s-table>
+  </a-card>
+</template>
+
+<script>
+import { STable, VSelect } from '@/components'
+import { getOrderTotalList, getOrderTotalNum } from '@/api/recoveryManage.js'
+import moment from 'moment'
+export default {
+  components: { STable, VSelect },
+  data () {
+    return {
+      formItemLayout: {
+        labelCol: {
+          span: 7
+        },
+        wrapperCol: {
+          span: 17
+        }
+      },
+      // 查询参数
+      queryParam: {
+        phoneOrName: '' // 骑手信息
+      },
+      totalNum: 0, // 总条数
+      weightTotal: 0, // 回收物总计
+      moneyTotal: 0, // 金额总计
+      // 将默认近一周时间日期回显在时间选择框中
+      time: [],
+      dateFormat: 'YYYY-MM-DD',
+      columns: [{ title: '序号', dataIndex: 'no', width: 60, align: 'center' },
+        { title: '骑手信息', dataIndex: 'stationName', width: 200, align: 'center', scopedSlots: { customRender: 'stationName' } },
+        { title: '回收重量(kg)', dataIndex: 'totalWeight', width: 50, align: 'center', sorter: true, customRender: (text) => { return (text / 1000).toFixed(3) / 1 || 0 } },
+        { title: '交易金额(元)', dataIndex: 'originalAmount', width: 100, align: 'center', sorter: true, customRender: (text) => { return text || 0 } }],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        const searchData = Object.assign(parameter, this.queryParam)
+        if (this.time && this.time.length) {
+          searchData.beginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+          searchData.endDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
+        } else {
+          searchData.beginDate = null
+          searchData.endDate = null
+        }
+        if (searchData.sortField == 'totalWeight') {
+          searchData.sortField = 'totalWeight'
+        }
+        if (searchData.sortField == 'originalAmount') {
+          searchData.sortField = 'originalAmount'
+        }
+        return getOrderTotalList(searchData).then(res => {
+          if (res.status == 200) {
+            const no = (res.data.pageNo - 1) * res.data.pageSize
+            for (let i = 0; i < res.data.list.length; i++) {
+              const _item = res.data.list[i]
+              _item.no = no + i + 1
+              if (_item.cleanWeight != null || 0) {
+                _item.cleanWeight = (_item.cleanWeight / 1000).toFixed(3) / 1
+              }
+            }
+            this.totalNum = res.data.count
+            return res.data
+          } else {
+            this.totalNum = 0
+          }
+        })
+      }
+    }
+  },
+  mounted () {
+    this.getTotal()
+  },
+  methods: {
+    // 不可选日期
+    disabledDate (date, dateStrings) {
+      return date && date.valueOf() > Date.now()
+    },
+    // 创建时间change
+    onChange (dates, dateStrings) {
+      if ((dates, dateStrings)) {
+        this.queryParam.beginDate = dateStrings[0]
+        this.queryParam.endDate = dateStrings[1]
+      }
+    },
+    filterOption (input, option) {
+      return (
+        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      )
+    },
+    // 总计
+    getTotal () {
+      const params = this.queryParam
+      if (this.time && this.time.length) {
+        params.beginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+        params.endDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
+      } else {
+        params.beginDate = null
+        params.endDate = null
+      }
+      getOrderTotalNum(params).then(res => {
+        if (res.status == 200) {
+          if (res.data != null) {
+            this.weightTotal = (res.data.totalWeight / 1000).toFixed(3) / 1 || 0
+            this.moneyTotal = res.data.originalAmount || 0
+          } else {
+            this.weightTotal = 0
+            this.moneyTotal = 0
+          }
+        }
+      })
+    },
+    // 查询
+    refreshSearch () {
+      this.$refs.table.refresh(true)
+      this.getTotal()
+    },
+    // 重置
+    reset () {
+      this.queryParam = {
+        phoneOrName: ''
+      }
+      this.time = []
+      this.refreshSearch()
+    }
+  }
+}
+</script>
+
+<style lang='less' scoped>
+	.cleanDetail-container {
+		.cleanDetail-container-searchForm {
+			.ant-form-inline .ant-form-item {
+				width: 100%;
+				margin-bottom: 15px;
+			}
+		}
+	}
+</style>

+ 239 - 0
src/views/recoveryManage/riderSet.vue

@@ -0,0 +1,239 @@
+<template>
+  <a-card :bordered="false">
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline">
+        <a-row :gutter="48">
+          <a-col :md="6" :sm="24">
+            <a-form-item label="骑手名称">
+              <a-input
+                allowClear
+                v-model.trim="queryParam.userName"
+                placeholder="请输入骑手名称"
+                id="userList-userName"
+                :maxLength="30"
+                @pressEnter="$refs.table.refresh(true)" />
+            </a-form-item>
+          </a-col>
+
+          <a-col :md="6" :sm="24">
+            <a-form-item label="骑手电话">
+              <a-input
+                allowClear
+                v-model.trim="queryParam.userMobile"
+                placeholder="请输入骑手电话"
+                :maxLength="11"
+                id="userList-userMobile"
+                @pressEnter="$refs.table.refresh(true)" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="接单状态">
+              <v-select code="RIDER_WORK_STATUS" v-model="queryParam.workStatus" allowClear placeholder="请选择接单状态" id="driverManage-workStatus"></v-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-button type="primary" @click="$refs.table.refresh(true)" id="userList-handSubmit" style="margin-right: 10px;">查询</a-button>
+            <a-button type="" @click="reset" id="userList-reset">重置</a-button>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <div class="table-operator">
+      <a-button
+        type="primary"
+        icon="plus"
+        @click="openModal"
+        id="userList-openModal"
+        v-hasPermission="'B_riderSet_add'"
+        style="margin-top:18px ;">新增</a-button>
+    </div>
+
+    <s-table
+      ref="table"
+      size="default"
+      rowKey="id"
+      :columns="columns"
+      :data="loadData"
+      bordered>
+      <span slot="status" slot-scope="text, record">
+        <a-switch
+          v-hasPermission="'B_riderSet_enable'"
+          checkedChildren="启用"
+          unCheckedChildren="禁用"
+          v-model="record.loginFlag"
+          @change="changeFlagHandle(text, record)"
+          id="userList-changeFlagHandle" />
+        <span v-if="!$hasPermissions('B_riderSet_enable')">{{record.loginFlag== true ? '启用' : '禁用'}}</span>
+      </span>
+      <span slot="action" slot-scope="text, record">
+        <a-icon
+         v-if="$hasPermissions('B_riderSet_edit')"
+          type="edit"
+          title="编辑"
+          class="actionBtn icon-blues"
+          @click="handleEdit(record)"
+        />
+        <span v-else>--</span>
+      </span>
+    </s-table>
+    <riderModal :visible="showModal" @refresh="$refs.table.refresh(true)" :data="itemData" @close="showModal = false"></riderModal>
+  </a-card>
+</template>
+
+<script>
+import {
+  STable,
+  VSelect
+} from '@/components'
+import riderModal from './riderModal.vue'
+import {
+  getRiderList,
+  updateEnableStatus
+} from '@/api/recoveryManage.js'
+export default {
+  name: 'RiderSet',
+  components: {
+    STable,
+    VSelect,
+    riderModal
+  },
+  data () {
+    return {
+      // 查询参数
+      queryParam: {
+        userName: '',
+        userMobile: '',
+        workStatus: ''
+      },
+      showModal: false,
+      itemData: {}, // 编辑行数据
+      // 表头
+      columns: [{
+        title: '序号',
+        dataIndex: 'no',
+        width: 60,
+        align: 'center'
+      },
+      {
+        title: '创建时间',
+        dataIndex: 'createDate',
+        width: 120,
+        align: 'center'
+      },
+      {
+        title: '骑手名称',
+        dataIndex: 'userName',
+        width: 100,
+        align: 'center'
+      },
+      {
+        title: '骑手电话',
+        dataIndex: 'userMobile',
+        width: 100,
+        align: 'center'
+      },
+	  {
+        title: '接单状态',
+        dataIndex: 'workStatusDictValue',
+        width: 100,
+        align: 'center'
+	  },
+      {
+        title: '状态',
+        width: 100,
+        align: 'center',
+        scopedSlots: {
+          customRender: 'status'
+        }
+      },
+      {
+        title: '操作',
+        width: 100,
+        align: 'center',
+        scopedSlots: {
+          customRender: 'action'
+        }
+      }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        return getRiderList(Object.assign(parameter, this.queryParam)).then(res => {
+          const no = (res.data.pageNo - 1) * res.data.pageSize
+          for (let i = 0; i < res.data.list.length; i++) {
+            const _item = res.data.list[i]
+            _item.no = no + i + 1
+            _item.loginFlag = _item.loginFlag + '' === '1'
+          }
+          return res.data
+        })
+      },
+      optionAlertShow: false
+    }
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {
+      // vm.$refs.table.refresh()
+    })
+  },
+  methods: {
+    // 刷新列表
+    refreshTable () {
+      this.$refs.table.refresh(true)
+    },
+    // 新建
+    openModal () {
+      this.showModal = true
+      this.itemData = {}
+    },
+    // 重置
+    reset () {
+      this.queryParam.userName = ''
+      this.queryParam.userMobile = ''
+      this.queryParam.workStatus = ''
+      this.refreshTable()
+    },
+    handleEdit (row) {
+      console.log(row, 'row')
+      this.showModal = true
+      this.itemData = row
+    },
+    // 修改状态
+    changeFlagHandle (text, record) {
+      const _data = {
+        id: record.id,
+        flag: record.loginFlag ? '1' : '0'
+      }
+      updateEnableStatus(_data).then(res => {
+        if (res.status + '' === '200') {
+          this.$message.success(res.message)
+        } else {
+          record.loginFlag = !record.loginFlag
+        }
+      })
+    }
+  }
+}
+</script>
+<style scoped>
+	.table-page-search-wrapper .ant-form-inline .ant-form-item {
+		margin-bottom: 0;
+	}
+
+	.action-button {
+		line-height: 40px;
+		white-space: nowrap;
+		padding: 5px 10px;
+		background-color: #1890ff;
+		border-radius: 4px;
+		color: #fff;
+		margin-right: 5px;
+	}
+
+	.red-text {
+		background-color: red;
+	}
+
+	.reset-text {
+		background-color: #31b50b;
+	}
+</style>

+ 6 - 6
src/views/releaseRecord/releaseRecordList.vue

@@ -238,8 +238,8 @@ export default {
       loadData: parameter => {
         const searchData = Object.assign(parameter, this.queryParam)
         if (this.queryOrderDate && this.queryOrderDate.length) {
-          searchData.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD')
-          searchData.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD')
+          searchData.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD 00:00:00')
+          searchData.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD 23:59:59')
         } else {
           searchData.beginDate = ''
           searchData.endDate = ''
@@ -308,8 +308,8 @@ export default {
     handleExport () {
       const params = this.queryParam
       if (this.queryOrderDate && this.queryOrderDate.length) {
-        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD')
-        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD')
+        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD 00:00:00')
+        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD 23:59:59')
       } else {
         params.beginDate = ''
         params.endDate = ''
@@ -384,8 +384,8 @@ export default {
     getListTotal () {
 	  const params = this.queryParam
       if (this.queryOrderDate && this.queryOrderDate.length) {
-        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD')
-        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD')
+        params.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD 00:00:00')
+        params.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD 23:59:59')
       } else {
         params.beginDate = ''
         params.endDate = ''

+ 25 - 16
src/views/shop/shopOrder.vue

@@ -116,8 +116,8 @@ export default {
       loadData: parameter => {
         const searchData = Object.assign(parameter, this.queryParam)
         if (this.time && this.time.length) {
-          searchData.beginDate = moment(this.time[0]).format('YYYY-MM-DD')
-          searchData.endDate = moment(this.time[1]).format('YYYY-MM-DD')
+          searchData.beginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+          searchData.endDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
         } else {
           searchData.beginDate = ''
           searchData.endDate = ''
@@ -174,13 +174,14 @@ export default {
     },
     // 导出
     handleExport () {
-      const params = {
-        beginDate: this.queryParam.beginDate == null ? getDate.getToday().starttime : this.queryParam.beginDate,
-        endDate: this.queryParam.endDate == null ? getDate.getToday().endtime : this.queryParam.endDate,
-        customerMobile: this.queryParam.customerMobile,
-        orderSn: this.queryParam.orderSn,
-        orderState: this.queryParam.orderState
-      }
+		const params=this.queryParam
+		if (this.time && this.time.length) {
+		  params.beginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+		  params.endDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
+		} else {
+		  params.beginDate = ''
+		  params.endDate = ''
+		}
       if (!params.beginDate && !params.endDate) {
         this.$message.error('请先选择需要导出的下单时间区间再进行导出!')
         return
@@ -199,13 +200,21 @@ export default {
     },
     // 导出订单明细
     handleOrderExport () {
-      const params = { order: {
-        beginDate: this.queryParam.beginDate == null ? getDate.getToday().starttime : this.queryParam.beginDate,
-        endDate: this.queryParam.endDate == null ? getDate.getToday().endtime : this.queryParam.endDate,
-        customerMobile: this.queryParam.customerMobile,
-        orderSn: this.queryParam.orderSn,
-        orderState: this.queryParam.orderState
-      } }
+		const params={order:this.queryParam}
+		if (this.time && this.time.length) {
+		  params.order.beginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+		  params.order.endDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
+		} else {
+		  params.beginDate = ''
+		  params.endDate = ''
+		}
+      // const params = { order: {
+      //   beginDate: this.queryParam.beginDate == null ? getDate.getToday().starttime : this.queryParam.beginDate,
+      //   endDate: this.queryParam.endDate == null ? getDate.getToday().endtime : this.queryParam.endDate,
+      //   customerMobile: this.queryParam.customerMobile,
+      //   orderSn: this.queryParam.orderSn,
+      //   orderState: this.queryParam.orderState
+      // } }
       if (!params.order.beginDate && !params.order.endDate) {
         this.$message.error('请先选择下单时间后查询并导出!')
         return

+ 4 - 4
src/views/userInfo/allLdDetail.vue

@@ -109,8 +109,8 @@ export default {
       loadData: parameter => {
         const searchData = Object.assign(parameter, this.queryParam)
         if (this.time && this.time.length) {
-          searchData.beginDate = moment(this.time[0]).format('YYYY-MM-DD')
-          searchData.endDate = moment(this.time[1]).format('YYYY-MM-DD')
+          searchData.beginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+          searchData.endDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
         } else {
           searchData.beginDate = null
           searchData.endDate = null
@@ -169,8 +169,8 @@ export default {
     getTotal () {
       const params = this.queryParam
       if (this.time && this.time.length) {
-        params.beginDate = moment(this.time[0]).format('YYYY-MM-DD')
-        params.endDate = moment(this.time[1]).format('YYYY-MM-DD')
+        params.beginDate = moment(this.time[0]).format('YYYY-MM-DD 00:00:00')
+        params.endDate = moment(this.time[1]).format('YYYY-MM-DD 23:59:59')
       } else {
         params.beginDate = null
         params.endDate = null

+ 2 - 2
vue.config.js

@@ -108,8 +108,8 @@ const vueConfig = {
     // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        target: 'http://192.168.16.224:8301/gc-admin/',
-        // target: 'https://lese.test.zyucgj.com/gc-admin',
+        target: 'http://192.168.16.213:8301/gc-admin/',
+        // target: ' https://lese.test.zyucgj.com/gc-admin',
         ws: false,
         changeOrigin: true,
         pathRewrite: {