doum
4 小时以前 b05fea19990632b2ec6320cbfaab2bddc87006c0
经销商管理
已添加1个文件
已修改13个文件
292 ■■■■ 文件已修改
admin/src/api/business/goodsorder.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/style/style.scss 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaChangeOrderRecordWindow.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaGoodsOrderDetail.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMemberDetail.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaOrderCancelWindow.vue 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaOrderMarkWindow.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaShipmentsWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaShopInfoWindow.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaWithdrawRecordWindow.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/goodsorder.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/goodsorder.js
@@ -34,6 +34,9 @@
export function orderRemark (data) {
  return request.post('/business/goodsorder/orderRemark', data)
}
export function orderPlanCancelOrder (data) {
  return request.post('/business/goodsorder/orderPlanCancelOrder', data)
}
export function orderSendOutGoods (data) {
  return request.post('/business/goodsorder/orderSendOutGoods', data)
}
admin/src/assets/style/style.scss
@@ -118,3 +118,7 @@
    top: 1px;
  }
}
.detail-box{
  display: block;
  margin: 20px;
}
admin/src/components/business/OperaChangeOrderRecordWindow.vue
@@ -70,6 +70,7 @@
      this.title = title
      this.visible = true
      this.searchForm.memberId = goods.id
      this.tableData.list =[]
      this.search()
    }
  }
admin/src/components/business/OperaGoodsOrderDetail.vue
@@ -4,7 +4,7 @@
      width="100%"
      :visible.sync="visible"
  >
    <div style="display: block">
    <div class="detail-box">
      <div class="header">
        <div  class="header-b">订单详情</div>
          <div v-if="info.status ==0"  class="header-orange">待支付</div>
@@ -13,7 +13,11 @@
          <span  v-if="info.status ==3"   class="header-grey ">交易完成</span>
          <div  v-if="info.status ==4"   class="header-grey">已关闭</div>
          <div  v-if="info.status ==6"   class="header-grey">已退款</div>
           <div class="header-blue-btn" @click="showChangeRecord">变更记录</div>
          <div style="text-align: right;">
            <div class="header-red-btn" v-if="info.status == 0" @click="$refs.OperaOrderCancelWindow.open('取消订单', info)">取消订单</div>
            <div class="header-red-btn" v-if="info.status == 3" @click="$refs.OperaOrderCancelWindow.open('订单退款', info)">订单退款</div>
            <div class="header-blue-btn" @click="showChangeRecord">变更记录</div>
          </div>
      </div>
      <div class="info-item">
        <div class="info-item-a">订单编号:<span>{{info.code}}</span></div>
@@ -30,7 +34,11 @@
        <div class="info-item-a" style="flex: 3">归属经销商:<span >{{ info.shopName }}</span></div>
      </div>
      <div class="info-item">
        <div class="info-item-a" style="flex: 3">备注:<span v-if="info.sysInfo" class="red">{{info.sysInfo}}</span></div>
        <div class="info-item-a" style="flex: 3">备注:<span v-if="info.sysInfo" class="red">{{info.sysInfo}}</span>
        <span style="margin-left: 20px;" >
           <el-button  type="text" @click="$refs.operaOrderMarkWindow.open(info.sysInfo && info.sysInfo.length?'编辑备注':'添加备注', info)">
              {{ info.sysInfo && info.sysInfo.length?'修改备注':'添加备注' }}</el-button>
        </span></div>
      </div>
      <div class="info-item"></div>
      <div class="header">
@@ -45,6 +53,8 @@
      <template  v-if="info.receiveType!=1">
        <div class="header">
          <div  class="header-b">快递信息</div>
          <div class="header-blue-btn" v-if="info.status==1 && info.receiveType!=1"  @click="$refs.operaShipmentsWindow.open('发货',info)">发货</div>
          <div class="header-blue-btn" v-if="info.status==2 && info.receiveType!=1"  @click="$refs.operaShipmentsWindow.open('快递变更',info)">快递变更</div>
        </div>
        <div class="info-item"  >
          <div class="info-item-a">收货人:<span class="el-icon-user">{{info.linkname}}</span></div>
@@ -57,18 +67,89 @@
          <div class="info-item-a"  >发货人:<span>{{info.kdUserName }}</span></div>
        </div>
        <div class="info-item"  >
          <div class="info-item-a">发货时间:<span  >{{info.kdDate }}</span></div>
          <div class="info-item-a" style="flex: 2">快递备注:<span>{{info.kdInfo }}</span></div>
          <div class="info-item-a">发货时间:<span>{{info.kdDate }}</span></div>
          <div class="info-item-a" style="flex: 2;">快递备注:<span>{{info.kdInfo }}</span></div>
        </div>
        <div class="info-item"></div>
      </template>
      <template  v-if="info.status ==6">
        <div class="header">
          <div  class="header-b">退款信息</div>
          <div class="header-blue-btn" v-if="info.status==1 && info.receiveType!=1"  @click="$refs.operaShipmentsWindow.open('发货',info)">发货</div>
          <div class="header-blue-btn" v-if="info.status==2 && info.receiveType!=1"  @click="$refs.operaShipmentsWindow.open('快递变更',info)">快递变更</div>
        </div>
        <div class="info-item"  >
          <div class="info-item-a">退款金额:<span class="orange">ï¿¥{{(info.refundMoney||0).toFixed(2)}}</span></div>
          <div class="info-item-a"  >操作人:<span>{{info.refundUserName }}</span></div>
          <div class="info-item-a"  >退款时间:<span>{{info.refundTime }}</span></div>
        </div>
        <div class="info-item"  >
          <div class="info-item-a" >退款备注:<span>{{info.kdInfo }}</span></div>
        </div>
        <div class="info-item"></div>
      </template>
      <template  v-if="info.status == 4">
        <div class="header">
          <div  class="header-b">取消信息</div>
        </div>
        <div class="info-item"  >
          <div class="info-item-a">取消时间:<span >{{info.cancelDate}}</span></div>
          <div class="info-item-a">取消人员:<span>{{info.cancelUserName }}</span></div>
          <div class="info-item-a">取消说明:<span>{{info.cancelInfo }}</span></div>
        </div>
        <div class="info-item"></div>
      </template>
       <div class="header">
          <div  class="header-b">返积分信息</div>
        </div>
        <div class="info-item"  >
          <div class="info-item-a">返还用户积分:<span class="orange"> {{(info.returnMemberIntegral||0)}}</span></div>
          <div class="info-item-a">返还经销商积分:<span class="orange">{{info.returnCustomerIntegral || 0 }}</span></div>
          <div class="info-item-a"></div>
        </div>
        <div class="info-item"></div>
      <div class="header">
        <div  class="header-b">商品信息</div>
      </div>
      <div class="info-item"  >
        <el-table  :data="info.goodsorderDetailList||[]"  stripe  border >
          <el-table-column prop="imgurl" label="商品图" min-width="80px" align="center">
            <template slot-scope="{row}">
              <el-image style="width: 50px;height: 50px;" v-if="row.imgurl && row.imgurl!=''" :src="row.imgurl" :preview-src-list="[row.imgurl]"></el-image>
            </template>
          </el-table-column>
          <el-table-column prop="name" label="商品名称"   align="center" min-width="150px">  </el-table-column>
          <el-table-column prop="categoryName" label="商品分类"   align="center" min-width="150px">  </el-table-column>
          <el-table-column prop="goodsWeight" label="重量(kg)" align="center" min-width="150px"></el-table-column>
          <el-table-column prop="price" label="销售价(元)" align="center" min-width="100px"></el-table-column>
          <el-table-column prop="goodsNum" label="数量" align="center" min-width="150px"></el-table-column>
          <el-table-column prop="totalPrice" label="小计" align="center" min-width="150px"></el-table-column>
        </el-table>
      </div>
      <div class="info-item"  >
        <div class="info-item-a">商品总价:<span> ï¿¥{{((info.totalPrice||0)-(info.mailPrice || 0)).toFixed(2)}}</span></div>
        <div class="info-item-a">快递费:<span>ï¿¥{{(info.mailPrice||0).toFixed(2)}}</span></div>
        <div class="info-item-a">订单总价:<span > ï¿¥{{(info.totalPrice||0).toFixed(2)}}</span></div>
      </div>
      <div class="info-item"  >
        <div class="info-item-a">优惠共减:<span> -ï¿¥{{((info.integral||0) + (info.couponPrice||0)).toFixed(2) }}</span>
          <span style="margin-left: 20px;" >
           <el-button  type="text" @click="showCouponPrice">查看</el-button>
        </span>
        </div>
      </div>
      <div class="info-item"  >
        <div class="info-item-a">实付金额:<span class="red"> ï¿¥{{(info.price||0).toFixed(2)}}</span></div>
      </div>
    </div>
    <template  v-slot:footer>
      <el-button @click="visible=false">返回</el-button>
    </template>
    <OperaChangeOrderRecordWindow ref="OperaChangeOrderRecordWindow"/>
    <OperaShipmentsWindow ref="operaShipmentsWindow" @success="successBiz"/>
    <OperaChangeIntegralWindow ref="OperaChangeIntegralWindow" @success="successBiz"/>
    <OperaOrderMarkWindow ref="operaOrderMarkWindow" @success="successBiz"/>
    <OperaOrderCancelWindow ref="OperaOrderCancelWindow" @success="successBiz"/>
  </GlobalWindow>
</template>
@@ -77,10 +158,13 @@
import BaseOpera from '@/components/base/BaseOpera'
import OperaChangeOrderRecordWindow from '@/components/business/OperaChangeOrderRecordWindow'
import OperaChangeIntegralWindow from '@/components/business/OperaChangeIntegralWindow'
import OperaOrderCancelWindow from '@/components/business/OperaOrderCancelWindow'
import OperaOrderMarkWindow from '@/components/business/OperaOrderMarkWindow'
import OperaShipmentsWindow from '@/components/business/OperaShipmentsWindow'
export default {
  name: 'OperaShopGoodsWindow',
  extends: BaseOpera,
  components: { GlobalWindow, OperaChangeOrderRecordWindow, OperaChangeIntegralWindow },
  components: { GlobalWindow, OperaChangeOrderRecordWindow, OperaChangeIntegralWindow,OperaOrderMarkWindow,OperaShipmentsWindow ,OperaOrderCancelWindow},
  data () {
    return {
      title: '',
@@ -95,7 +179,6 @@
      }
    }
  },
  created () {
    this.config({
      module: '用户信息表',
@@ -106,9 +189,11 @@
  },
  methods: {
    successBiz () {
      this.handlePageChange()
      this.loadInfo()
      this.$emit('success')
    },
    showCouponPrice(){
    },
    loadInfo () {
      this.api.detail(this.info.id).then(res => {
@@ -146,11 +231,21 @@
  font-size: 16px;
  font-weight: bold;
}
.header-red-btn{
  display: inline-block;
  font-size: 12px;
  background-color:  red;
  padding: 2px 10px 3px 10px;
  margin-left: 20px;
  color: white;
  cursor: pointer;
  border-radius: 5px ;
}
.header-blue-btn{
  display: inline-block;
  font-size: 12px;
  background-color:  #216EEE;
  padding: 2px 10px;
  padding: 2px 10px 3px 10px;
  margin-left: 20px;
  color: white;
  cursor: pointer;
admin/src/components/business/OperaMemberDetail.vue
@@ -4,7 +4,7 @@
      width="100%"
      :visible.sync="visible"
  >
    <div style="display: block">
    <div  class="detail-box">
      <div class="header">
        <div  class="header-b">用户信息</div>
        <div v-if="info.phone!=null && info.phone!=''" class="header-blue">已授权手机号</div>
@@ -21,7 +21,7 @@
      </div>
      <div class="info-item"></div>
    </div>
    <div style="display: block;margin-bottom: 50px;">
    <div class="detail-box" style="margin-bottom: 50px;">
      <div class="header">
        <div  class="header-b">积分明细</div>
        <div   class="header-btn">
admin/src/components/business/OperaOrderCancelWindow.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
<template>
  <GlobalAlertWindow
    v-loading="isUploading"
    :title="title"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" label-width="120px" label-suffix=":"  :rules="rules" inline>
      <p class="tip-warn" style="margin: 30px;">
        <i class="el-icon-warning"></i>
        æ“ä½œè¯´æ˜Žï¼šæ‚¨æ­£åœ¨å–消订单<span class="red">{{ form.code }} </span>,请谨慎操作!!</p>
      <el-form-item label="备注" prop="cancelInfo">
        <el-input type="textarea" :autosize="{ minRows: 4, maxRows:4 }" v-model="form.cancelInfo" placeholder="请输入取消说明" :maxlength="50" v-trim/>
      </el-form-item>
    </el-form>
  </GlobalAlertWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
export default {
  name: 'OperaOrderCancelWindow',
  extends: BaseOpera,
  components: { GlobalAlertWindow },
  data () {
    return {
      isUploading: false,
      // è¡¨å•数据
      form: {
        id: null,
        cancelInfo: '',
        code: null
      },
      // éªŒè¯è§„则
      rules: {
        cancelInfo: [
          { required: false, message: '请输入备注信息', tigger: 'blur' }
        ]
      }
    }
  },
  created () {
    this.config({
      api: '/business/goodsorder',
      'field.id': 'id'
    })
  },
  methods: {
    confirm () {
      this.$refs.form.validate((valid) => {
        if (!valid) {
          return
        }
        this.$dialog.messageWaring(`确定取消订单:${this.form.code}?`)
          .then(() => {
            this.isWorking = true
            this.api.orderPlanCancelOrder(this.form)
              .then(() => {
                this.visible = false
                this.$tip.apiSuccess('取消成功')
                this.$emit('success')
              }).catch(e => {
                this.$tip.apiFailed(e)
              })
              .finally(() => {
                this.isWorking = false
              })
          })
        // è°ƒç”¨æ–°å»ºæŽ¥å£
      })
    }
  }
}
</script>
<style lang="scss" scoped>
@import "@/assets/style/alertstyle.scss";
</style>
admin/src/components/business/OperaOrderMarkWindow.vue
@@ -8,7 +8,7 @@
  >
    <el-form :model="form" ref="form" label-width="120px" label-suffix=":"  :rules="rules" inline>
      <el-form-item label="备注" prop="sysInfo">
        <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.sysInfo" placeholder="请输入备注" :maxlength="50" v-trim/>
        <el-input type="textarea" :autosize="{ minRows: 4, maxRows:4 }" v-model="form.sysInfo" placeholder="请输入备注" :maxlength="50" v-trim/>
      </el-form-item>
    </el-form>
@@ -55,7 +55,7 @@
        this.api.orderRemark(this.form)
          .then(() => {
            this.visible = false
            this.$tip.apiSuccess('发货成功')
            this.$tip.apiSuccess('添加成功')
            this.$emit('success')
          }).catch(e => {
            this.$tip.apiFailed(e)
admin/src/components/business/OperaShipmentsWindow.vue
@@ -22,7 +22,7 @@
        <el-input v-model="form.kdCode" placeholder="请输入快递单号"   v-trim/>
      </el-form-item>
      <el-form-item label="发货备注" prop="kdInfo">
        <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.kdInfo" placeholder="请输入发货备注"   v-trim/>
        <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 4}" v-model="form.kdInfo" placeholder="请输入发货备注"   v-trim/>
      </el-form-item>
    </el-form>
admin/src/components/business/OperaShopInfoWindow.vue
@@ -4,7 +4,7 @@
      width="100%"
      :visible.sync="visible"
  >
    <div style="display: block;">
    <div class="detail-box">
      <div class="platgroup_tabs">
        <div class="tab" :class="{ active: activeGroup === item.id }" @click="groupClick(item)"
             v-for="(item, i) in groupList" :key="i">
@@ -13,7 +13,7 @@
      </div>
    </div>
    <template v-if="activeGroup ==0">
      <div style="display: block;">
      <div class="detail-box">
        <div class="header">
          <div  class="header-b">基本信息</div>
          <div v-if="info.status !=1" class="header-green">正常</div>
@@ -48,7 +48,7 @@
        </div>
        <div class="info-item"></div>
      </div>
      <div style="display: block">
      <div class="detail-box">
        <div class="header">
          <div  class="header-b">资质信息</div>
        </div>
@@ -79,7 +79,7 @@
        </div>
        <div class="info-item"></div>
      </div>
      <div style="display: block;margin-bottom: 50px;">
      <div class="detail-box" style="display: block;margin-bottom: 50px;">
        <div class="header">
          <div  class="header-b">销售模式变更记录</div>
        </div>
@@ -110,7 +110,7 @@
      </div>
    </template>
    <template v-else-if="activeGroup == 1">
      <div style="display: block;">
      <div class="detail-box">
        <el-form ref="searchForm1"   :model="searchForm1"    style="display: block;" >
          <el-form-item label="" prop="code" style="display: inline-block;margin-right: 30px;">
            <el-input v-model="searchForm1.code" placeholder="请输入订单号" @keypress.enter.native="handlePageChange1(1)"></el-input>
@@ -221,13 +221,15 @@
      </div>
    </template>
    <template v-else-if="activeGroup == 2">
      <div style="display: block;margin-bottom: 50px;">
      <div  class="detail-box">
        <div class="header">
          <div  class="header-b">积分明细</div>
          <div  class="header-btn">
            <el-button style="display: inline" type="primary" @click="changeIntegral">积分调整</el-button>
          </div>
        </div>
        </div>
      <div style="display: block;margin-bottom: 50px;">
        <TableLayout >
          <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
          <template v-slot:table-wrap>
admin/src/components/business/OperaWithdrawRecordWindow.vue
@@ -4,7 +4,7 @@
      width="100%"
      :visible.sync="visible"
  >
      <div style="display: block;">
      <div class="detail-box">
        <div class="header">
          <div  class="header-b">基本信息</div>
          <div v-if="form.status ==0" class="header-orange">待审批</div>
@@ -18,7 +18,7 @@
        </div>
        <div class="info-item"></div>
      </div>
      <div style="display: block;">
      <div class="detail-box">
        <div class="header">
          <div  class="header-b">提现信息</div>
        </div>
@@ -28,13 +28,13 @@
          <div class="info-item-a"> </div>
        </div>
        <div class="info-item">
          <div class="info-item-a">户名:<span class="orange">{{ form.name||'' }}</span> </div>
          <div class="info-item-a">账号:<span class="orange">{{ form.bankAccount||'' }}</span> </div>
          <div class="info-item-a">银行:<span class="orange">{{ form.bankName||'' }}</span> </div>
          <div class="info-item-a">户名:<span  >{{ form.name||'' }}</span> </div>
          <div class="info-item-a">账号:<span  >{{ form.bankAccount||'' }}</span> </div>
          <div class="info-item-a">银行:<span  >{{ form.bankName||'' }}</span> </div>
        </div>
        <div class="info-item"></div>
      </div>
      <div style="display: block">
      <div class="detail-box">
        <div class="header">
          <div  class="header-b">审核流程</div>
        </div>
admin/src/views/business/goodsorder.vue
@@ -107,8 +107,8 @@
            <div class="mark" v-if="item.sysInfo&& item.sysInfo.length" >备注:{{item.sysInfo}}</div>
          </div>
          <div class="member-message right-border">
            <div class="el-icon-user" style="padding: 5px 5px;">{{ item.linkname }}</div>
            <div class="el-icon-phone-outline" style="padding: 10px 5px;color: #777;font-size: 13px;">{{ item.linkphone }}</div>
            <div class="el-icon-user" style="padding: 5px 5px;width: 100%;">{{ item.linkname }}</div>
            <div class="el-icon-phone-outline" style="padding: 10px 5px;width: 100%;color: #777;font-size: 13px;">{{ item.linkphone }}</div>
          </div>
          <div class="address-message right-border right-border" style="padding-top: 15px;" >
            <div class="underway el-icon-sell" >{{item.receiveType==1?'到店自提':'快递配送'}} </div>
@@ -116,7 +116,7 @@
          </div>
          <div class="price-message right-border">
            <div class="underway" >订单总价:¥{{ (item.totalPrice||0).toFixed(2) }}</div>
            <div class="price-info">商品总价:¥{{  ((item.totalPrice||0)-(item.price || 0)).toFixed(2)}}</div>
            <div class="price-info">商品总价:¥{{  ((item.totalPrice||0)-(item.mailPrice || 0)).toFixed(2)}}</div>
            <div class="price-info">物流运费:¥{{  (item.mailPrice || 0).toFixed(2)}}</div>
            <div class="price-info">积分抵扣:-ï¿¥{{  (item.integral || 0 ).toFixed(2)}}</div>
            <div class="price-info">优惠金额:-ï¿¥{{  (item.couponPrice).toFixed(2) }}</div>
@@ -125,7 +125,7 @@
          <div class="action">
            <el-button v-if="item.status==1 && item.receiveType!=1" style=" width: 80%;" type="primary" @click="$refs.operaShipmentsWindow.open('发货', item)">发货</el-button>
            <div></div>
            <el-button v-if="item.status == 0" style="color: red; "  type="text" @click="cancelOrder(item)">取消订单</el-button>
            <el-button v-if="item.status == 0" style="color: red; "  type="text" @click="$refs.OperaOrderCancelWindow.open('取消订单', item)">取消订单</el-button>
            <div></div>
            <el-button v-if="item.status == 3" style="color: red "  type="text" @click="cancelOrder(item)">订单退款</el-button>
            <div></div>
@@ -149,7 +149,8 @@
    <!-- æ–°å»º/修改 -->
    <OperaShipmentsWindow ref="operaShipmentsWindow" @success="search"/>
    <OperaOrderMarkWindow ref="operaOrderMarkWindow" @success="handlePageChange"/>
    <OperaGoodsOrderDetail ref="operaGoodsOrderDetail"/>
    <OperaOrderCancelWindow ref="OperaOrderCancelWindow" @success="handlePageChange"/>
    <OperaGoodsOrderDetail ref="operaGoodsOrderDetail" @success="handlePageChange"/>
  </TableLayout>
</template>
@@ -159,11 +160,12 @@
import Pagination from '@/components/common/Pagination'
import OperaShipmentsWindow from '@/components/business/OperaShipmentsWindow'
import OperaOrderMarkWindow from '@/components/business/OperaOrderMarkWindow'
import OperaOrderCancelWindow from '@/components/business/OperaOrderCancelWindow'
import OperaGoodsOrderDetail from '@/components/business/OperaGoodsOrderDetail'
export default {
  name: 'Goodsorder',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaShipmentsWindow, OperaOrderMarkWindow, OperaGoodsOrderDetail },
  components: { TableLayout, Pagination, OperaShipmentsWindow, OperaOrderMarkWindow, OperaGoodsOrderDetail,OperaOrderCancelWindow },
  data () {
    return {
      status: '10',
@@ -187,7 +189,7 @@
        nickName: '',
        starttime: null,
        enttime: null
      },
      }
    }
  },
  created () {
@@ -252,7 +254,7 @@
      this.search()
    },
    cancelOrder (item) {
      this.$dialog.cancelOrder(`确定取消订单:${item.code}?`)
      this.$dialog.messageWaring(`确定取消订单:${item.code}?`)
        .then(() => {
        })
@@ -339,7 +341,7 @@
      flex: 0.4;
    }
    .address-message {
      flex: 0.6;
      flex: 0.7;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      overflow: hidden;
@@ -382,7 +384,7 @@
      }
    }
    .action {
      flex: 0.5;
      flex: 0.4;
      box-sizing: border-box;
      padding: 10px;
      text-align: center;
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -236,6 +236,12 @@
    @ApiModelProperty(value = "用户姓名")
    @TableField(exist = false)
    private String memberName;
    @ApiModelProperty(value = "取消人员姓名")
    @TableField(exist = false)
    private String cancelUserName;
    @ApiModelProperty(value = "退款人姓名")
    @TableField(exist = false)
    private String refundUserName;
    @ApiModelProperty(value = "发货人姓名")
    @TableField(exist = false)
    private String kdUserName;
@@ -249,8 +255,6 @@
    @ApiModelProperty(value = "收货地址")
    @TableField(exist = false)
    private String addr;
    @ApiModelProperty(value = "开始时间 ")
    @TableField(exist = false)
server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java
@@ -123,5 +123,8 @@
    @ApiModelProperty(value = "统计量")
    @TableField(exist = false)
    private BigDecimal totalNum;
    @ApiModelProperty(value = "小计")
    @TableField(exist = false)
    private BigDecimal totalPrice;
}
server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
@@ -113,34 +113,33 @@
        QueryWrapper<UserAction> wrapper = new QueryWrapper<>(userAction);
        return userActionMapper.selectOne(wrapper);
    }
    @Override
    public List<UserAction> findList(UserAction userAction) {
        QueryWrapper<UserAction> wrapper = new QueryWrapper<>(userAction);
        return userActionMapper.selectList(wrapper);
    }
    @Override
    public PageData<UserAction> findPage(PageWrap<UserAction> pageWrap) {
        IPage<UserAction> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<UserAction> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
       UserAction queryModel =  pageWrap.getModel();
        UserAction queryModel =  pageWrap.getModel();
        queryWrapper.selectAll(UserAction.class)
                .leftJoin(Member.class,Member::getId,UserAction::getMemberId)
//                .leftJoin(Member.class,Member::getId,UserAction::getMemberId)
                .leftJoin(SystemUser.class,SystemUser::getId,UserAction::getCreator)
                .selectAs(SystemUser::getRealname,UserAction::getCreateName)
                .selectAs(Member::getName,UserAction::getMemberName)
                .selectAs(Member::getPhone,UserAction::getMobile)
//                .selectAs(Member::getName,UserAction::getMemberName)
//                .selectAs(Member::getPhone,UserAction::getMobile)
                .like(StringUtils.isNotBlank(queryModel.getCreateName()),SystemUser::getRealname,queryModel.getCreateName())
                .like(StringUtils.isNotBlank(queryModel.getMemberName()),Member::getName,queryModel.getMemberName())
                .like(StringUtils.isNotBlank(queryModel.getMobile()),Member::getPhone,queryModel.getMobile())
                .like(StringUtils.isNotBlank(queryModel.getRemark()),Member::getPhone,queryModel.getRemark())
                .eq(!Objects.isNull(queryModel.getMemberType()),Member::getType,queryModel.getMemberType())
                .eq(!Objects.isNull(queryModel.getBeforeStatus()),UserAction::getBeforeStatus,queryModel.getBeforeStatus())
                .eq(!Objects.isNull(queryModel.getMemberId()),UserAction::getMemberId,queryModel.getMemberId())
                .eq(!Objects.isNull(queryModel.getType()),UserAction::getType,queryModel.getType())
                .orderByDesc(UserAction::getCreateDate)
        ;
                .eq(!Objects.isNull(queryModel.getId()),UserAction::getId,queryModel.getId())
                .orderByDesc(UserAction::getCreateDate);
        IPage<UserAction> result =  userActionMapper.selectJoinPage(page,UserAction.class,queryWrapper);
        if(result!=null &&result.getRecords()!=null){
            for(UserAction model :result.getRecords()){