doum
4 天以前 b03adb023bcad95a6a0e3843d579ab02e66419c1
小程序端和PC端bug修复
已修改41个文件
761 ■■■■ 文件已修改
admin/src/api/business/memberManage.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/base/BaseTable.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaBannerEditWindow.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaCityPriceRuleWindow.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaDriverDetail.vue 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaGoodsCategoryEditWindow.vue 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaShopApprovalWindow.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaShopEditWindow.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaShopInfoSeeWindow.vue 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaShopInfoWindow.vue 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaWithdrawDetailWindow.vue 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/common/GlobalWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/common/RichEditor.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/system/dict/DictDataManagerWindow.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/area.vue 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/baggageType.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/bannerList.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/category.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/categoryCar.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/categoryCb.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/categoryFee.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/categoryOld.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/driverList.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/goodsCategoryList.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/itemLevel.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/memberList.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/memberRevenue.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/orderLog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/receiveWeight.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/shopWithdrawList.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/storeList.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/vehicleType.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/withdrawalOrders.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/system/dict.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/system/job-log.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/system/job.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/system/menu.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/system/permission.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/system/role.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/system/snippet.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/system/user.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/memberManage.js
@@ -9,7 +9,9 @@
export function getById (id) {
  return request.get(`/business/member/detail/${id}`)
}
export function updateStatus (data) {
  return request.post('/business/member/updateStatus', data)
}
export function exportExcel (data) {
  return request.post('/business/member/list/exportExcel', data, {
    download: true,
admin/src/components/base/BaseTable.vue
@@ -171,9 +171,9 @@
     */
    deleteById (row, childConfirm = true, call) {
      this.__checkApi()
      let message = `确认删除${this.module}吗?`
      let message = `确认删除选择的数据记录吗?`
      if (childConfirm && row.children != null && row.children.length > 0) {
        message = `确认删除${this.module}【${row[this.configData['field.main']]}】及其子${this.module}吗?`
        message = `确认删除选择的数据记录【${row[this.configData['field.main']]}】及其下级子数据吗?`
      }
      this.$dialog.deleteConfirm(message)
        .then(() => {
admin/src/components/business/OperaBannerEditWindow.vue
@@ -19,15 +19,15 @@
          @deleteRow="form.imgurl = ''; imgurl = ''" />
      </el-form-item>
      <el-form-item label="排序码" prop="sortnum">
        <el-input v-model="form.sortnum" placeholder="请输入排序码"></el-input>
        <el-input type="number" v-model="form.sortnum" placeholder="请输入排序码"></el-input>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-switch
          v-model="form.status"
          active-color="#13ce66"
          inactive-color="#ff4949"
          :active-value="1"
          :inactive-value="0"
          :active-value="0"
          :inactive-value="1"
        ></el-switch>
      </el-form-item>
      <el-form-item label="展示位置" prop="position">
@@ -46,9 +46,10 @@
      <el-form-item label="内容" prop="content" v-if="form.type === 1">
        <RichEditor :richData="form.content" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/>
      </el-form-item>
      <el-form-item label="内容" prop="content" v-if="form.type === 2">
      <el-form-item label="外链地址" prop="content" v-if="form.type === 2">
        <el-input v-model="form.content" placeholder="请输入内容"></el-input>
      </el-form-item>
      <div class="tip-warn" v-if="form.type === 2"><i class="el-icon-warning"></i>配置小程序外链地址,需要联系微信小程序管理员登录微信小程序后台,配置该外链地址安全域名</div>
    </el-form>
  </GlobalWindow>
</template>
admin/src/components/business/OperaCityPriceRuleWindow.vue
@@ -50,6 +50,12 @@
          <span class="remote-tip"><p class="tip-warn"><i class="el-icon-warning"></i>根据配送里程预计配送时长并展示在小程序下单页面</p></span>
        </div>
        <el-table :data="timeTableData" border stripe>
          <el-table-column label="订单级别">
            <template slot-scope="{row}">
              <span v-if="row.fieldA == 1"  >标速达</span>
              <span v-if="row.fieldA == 2"  >急速达</span>
            </template>
          </el-table-column>
          <el-table-column label="起送里程(公里)">
            <template slot-scope="{row}">
              <el-input v-model="row.startDistance" type="number" placeholder="请输入"></el-input>
admin/src/components/business/OperaDriverDetail.vue
@@ -2,7 +2,7 @@
  <GlobalWindow
    :title="title"
    :visible.sync="visible"
    width="900px"
    width="calc(100% - 255px )"
    :withFooter="false"
  >
    <div class="driver-detail">
@@ -153,49 +153,59 @@
          </div>
        </div>
      </div>
      <div v-show="activeTab === 'business'" class="tab-content">
        <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
          <el-form-item label="订单编号" prop="orderNo">
            <el-input v-model="searchForm.orderNo" clearable placeholder="请输入订单编号"></el-input>
          <el-form-item label="订单编号" prop="code">
            <el-input v-model="searchForm.code" style="width: 150px;" clearable placeholder="请输入订单编号" @keypress.enter.native="search"></el-input>
          </el-form-item>
          <el-form-item label="物品信息" prop="goodsInfo">
            <el-input v-model="searchForm.goodsInfo" clearable placeholder="请输入物品信息"></el-input>
            <el-input v-model="searchForm.goodsInfo" style="width: 150px;" clearable placeholder="请输入物品信息" @keypress.enter.native="search"></el-input>
          </el-form-item>
          <el-form-item label="创建时间" prop="createTime">
            <el-date-picker type="daterange" v-model="searchForm.createTime" clearable value-format="yyyy-MM-dd"
                            range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="handleDateChange" />
          </el-form-item>
          <el-form-item label="订单状态" prop="orderStatus">
            <el-select v-model="searchForm.orderStatus" clearable placeholder="请选择订单状态">
              <el-option label="待取件" :value="1"></el-option>
              <el-option label="配送中" :value="2"></el-option>
              <el-option label="已完成" :value="3"></el-option>
              <el-option label="已取消" :value="4"></el-option>
          <el-form-item label="订单状态" prop="status">
            <el-select v-model="searchForm.status" clearable style="width: 150px;" placeholder="请选择订单状态" @change="search">
              <el-option label="全部" value=""></el-option>
              <el-option label="待支付" :value="0"></el-option>
              <el-option label="待寄存" :value="1"></el-option>
              <el-option label="已寄存" :value="2"></el-option>
              <el-option label="已接单" :value="3"></el-option>
              <el-option label="派送中" :value="4"></el-option>
              <el-option label="已到店/已送达" :value="5"></el-option>
              <el-option label="已完成" :value="7"></el-option>
              <el-option label="已取消" :value="99"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="结算状态" prop="settleStatus">
            <el-select v-model="searchForm.settleStatus" clearable placeholder="请选择结算状态">
              <el-option label="未结算" :value="0"></el-option>
          <el-form-item label="结算状态" prop="settlementStatus">
            <el-select v-model="searchForm.settlementStatus" style="width: 150px;" clearable placeholder="请选择结算状态" @change="search">
              <el-option label="待结算" :value="0"></el-option>
              <el-option label="已结算" :value="1"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="创建时间" prop="createTime1">
            <el-date-picker type="daterange" v-model="searchForm.createTime1" clearable value-format="yyyy-MM-dd"
                            range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="handleDateChange" />
          </el-form-item>
          <section>
            <el-button type="primary" @click="searchBusiness">搜索</el-button>
            <el-button @click="resetBusiness">重置</el-button>
            <el-button type="primary" @click="search">搜索</el-button>
            <el-button @click="reset">重置</el-button>
            <el-button :loading="isWorking.export" @click="exportExcel">导出</el-button>
          </section>
        </el-form>
<!--
        <div class="statistics">
          <span>订单数:{{ statistics.orderCount }}</span>
          <span>订单总价:¥{{ (statistics.orderAmount / 100).toFixed(2) }}</span>
          <span>结算总价:¥{{ (statistics.settleAmount / 100).toFixed(2) }}</span>
        </div>
-->
        <el-table :data="businessData.list" stripe>
          <el-table-column prop="orderNo" label="订单编号" min-width="150px"></el-table-column>
        <el-table :data="tableData.list" stripe>
          <el-table-column prop="code" label="订单编号" min-width="160px">
            <template slot-scope="{row}">
              <span class="bluestate" @click="$refs.operaOrderDetail.open(row)">{{ row.code }}</span>
            </template>
          </el-table-column>
          <el-table-column prop="goodsInfo" label="物品信息" min-width="120px"></el-table-column>
          <el-table-column prop="type" label="类型" min-width="80px"></el-table-column>
          <el-table-column prop="isUrgent" label="订单级别" min-width="80px">
            <template slot-scope="{row}"><span v-if="row.type ===1">{{ row.isUrgent === 1?'极速达':'标速达' }}</span></template>
          </el-table-column>
@@ -242,55 +252,59 @@
          </el-table-column>
          <el-table-column prop="payTime" label="支付时间" min-width="150px"> </el-table-column>
          <el-table-column prop="createTime" label="创建时间" min-width="150px"> </el-table-column>
          <el-table-column label="操作" min-width="120" fixed="right">
            <template slot-scope="{row}">
              <el-button type="text" v-if="row.status ===2" @click="handleDispatch(row)">手动派单</el-button>
            </template>
          </el-table-column>
        </el-table>
        <pagination
          @size-change="handleBusinessSizeChange"
          @current-change="handleBusinessPageChange"
          :pagination="businessData.pagination"
            @size-change="handleSizeChange"
            @current-change="handlePageChange"
            :pagination="tableData.pagination"
        ></pagination>
      </div>
    </div>
    <OperaOrderDetail ref="operaOrderDetail"  @success="handlePageChange"  />
  </GlobalWindow>
</template>
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseTable from '@/components/base/BaseTable'
import Pagination from '@/components/common/Pagination'
import { getById } from '@/api/business/driver'
import OperaOrderDetail from '@/components/business/OperaOrderDetail'
export default {
  name: 'OperaDriverDetail',
  components: { GlobalWindow, Pagination },
  extends: BaseTable,
  components: { GlobalWindow, Pagination ,OperaOrderDetail},
  data () {
    return {
      title: '司机详情',
      visible: false,
      activeTab: 'basic',
      isSearchWorking: false,
      detailInfo: {},
      searchForm: {
        orderNo: '',
        goodsInfo: '',
        createTime: '',
        createTime1: '',
        startTime: '',
        endTime: '',
        orderStatus: '',
        settleStatus: ''
        settleStatus: '',
        acceptDriver:null
      },
      statistics: {
        orderCount: 0,
        orderAmount: 0,
        settleAmount: 0
      },
      businessData: {
        list: [],
        pagination: { page: 1, size: 10, total: 0 }
      }
    }
  },
  created () {
    this.config({
      api: '/business/orderManagement',
      'field.id': 'id'
    })
    this.search()
  },
  methods: {
    open (title, row) {
@@ -302,29 +316,14 @@
      }).catch(e => {
        this.$tip.apiFailed(e)
      })
    },
    searchBusiness () {
    },
    resetBusiness () {
      this.searchForm = {
        orderNo: '',
        goodsInfo: '',
        createTime: '',
        startTime: '',
        endTime: '',
        orderStatus: '',
        settleStatus: ''
      }
      this.searchBusiness()
      this.searchForm.acceptDriver = row.id
      this.search()
    },
    handleDateChange (val) {
      this.searchForm.startTime = val ? val[0] : ''
      this.searchForm.endTime = val ? val[1] : ''
      this.searchForm.createStartTime = val ? val[0] : ''
      this.searchForm.createEndTime = val ? val[1] : ''
      this.search()
    },
    handleBusinessSizeChange () {
    },
    handleBusinessPageChange () {
    }
  }
}
</script>
admin/src/components/business/OperaGoodsCategoryEditWindow.vue
@@ -37,7 +37,7 @@
          <el-radio label="1">是</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="图标" prop="iconFull" v-if="form.type === 4">
      <el-form-item label="图标" prop="icon" v-if="form.type === 4">
        <UploadImages
          :fileList="form.iconFull ? [{ url: form.iconFull }] : []"
          :uploadData="{ folder: 'category' }"
@@ -56,11 +56,17 @@
      </el-form-item>
      <el-form-item label="所需司机评级" prop="detail" v-if="form.type === 3">
        <el-select v-model="form.detail" placeholder="请选择司机评级">
          <el-option label="S" :value="5"></el-option>
          <el-option label="A" :value="4"></el-option>
          <el-option label="B" :value="3"></el-option>
          <el-option label="C" :value="2"></el-option>
          <el-option label="D" :value="1"></el-option>
          <el-option label="S" value="5"></el-option>
          <el-option label="A" value="4"></el-option>
          <el-option label="B" value="3"></el-option>
          <el-option label="C" value="2"></el-option>
          <el-option label="D" value="1"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="是否贵重物品" prop="otherField" v-if="form.type === 3">
        <el-select v-model="form.detail" placeholder="请选择是否贵重物品">
          <el-option label="否" value="0"></el-option>
          <el-option label="是" value="1"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="寄存说明" prop="detail" v-if="form.type === 2">
@@ -70,7 +76,7 @@
        <el-input v-model="form.remark" type="textarea" :rows="3" placeholder="请输入备注说明"></el-input>
      </el-form-item>
      <el-form-item label="排序" prop="sortnum">
        <el-input v-model="form.sortnum" placeholder="请输入排序"></el-input>
        <el-input type="number" v-model="form.sortnum" placeholder="请输入排序"></el-input>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <div style="display: flex; align-items: center;">
@@ -183,7 +189,8 @@
      } else if (this.form.type === 3) {
        this.rules = {
          name: [{ required: true, message: '请输入等级名称', trigger: 'blur' }],
          detail: [{ required: true, message: '请选择司机评级', trigger: 'blur' }]
          detail: [{ required: true, message: '请选择司机评级', trigger: 'blur' }],
          otherField: [{ required: true, message: '请选择是否贵重物品', trigger: 'blur' }]
        }
      } else if (this.form.type === 4) {
        this.rules = {
admin/src/components/business/OperaShopApprovalWindow.vue
@@ -182,7 +182,7 @@
    </div>
    <div class="approval-form" v-if="storeInfo && storeInfo.auditStatus === 0">
      <el-form ref="approvalForm" :model="approvalForm" :rules="approvalRules">
      <el-form ref="approvalForm" :model="approvalForm" :rules="approvalForm.auditStatus ==1?approvalRules:approvalRules1">
        <el-form-item label="审批结果" prop="auditStatus">
          <el-radio-group v-model="approvalForm.auditStatus" @change="handleAuditStatusChange">
            <el-radio :label="0">通过</el-radio>
@@ -229,6 +229,7 @@
          { required: true, message: '请输入拒绝原因', trigger: 'blur' }
        ]
      },
      approvalRules1: { },
      isWorking: {
        submit: false
      }
@@ -241,6 +242,9 @@
    })
  },
  methods: {
    changeRadio(){
      this.$refs.approvalForm.clearValidate()
    },
    open (title, row) {
      this.title = title
      this.approvalForm = {
@@ -258,11 +262,12 @@
        })
    },
    handleAuditStatusChange (val) {
      if (val === 1) {
        this.approvalRules.auditRemark = []
      } else {
        this.approvalRules.auditRemark = [{ required: true, message: '请输入拒绝原因', trigger: 'blur' }]
      }
      this.$refs.approvalForm.clearValidate()
      // if (val === 1) {
      //   this.approvalRules.auditRemark = []
      // } else {
      //   this.approvalRules.auditRemark = [{ required: true, message: '请输入拒绝原因', trigger: 'blur' }]
      // }
    },
    handleSubmit () {
      this.$refs.approvalForm.validate(valid => {
admin/src/components/business/OperaShopEditWindow.vue
@@ -206,8 +206,8 @@
        laborContractImgs: [{ required: true, message: '请输入有效劳动合同', trigger: 'blur' }],
        socialSecurityImgs: [{ required: true, message: '请输入社保缴纳证明', trigger: 'blur' }],
        storeFrontImgs: [{ required: true, message: '请输入门店门头照', trigger: 'blur' }],
        storeInteriorImgs: [{ required: true, message: '请输入门店内部照片', trigger: 'blur' }],
        otherMaterialImgs: [{ required: true, message: '请输入其它材料', trigger: 'blur' }]
        storeInteriorImgs: [{ required: true, message: '请输入门店内部照片', trigger: 'blur' }]
        // otherMaterialImgs: [{ required: true, message: '请输入其它材料', trigger: 'blur' }]
      },
      qualificationTab: 'enterprise',
      areaOptions: [],
admin/src/components/business/OperaShopInfoSeeWindow.vue
@@ -38,8 +38,8 @@
    </div>
    <div class="approval-section" v-if="storeInfo && storeInfo.auditStatus !== 0">
      <div class="approval-result" :class="storeInfo.auditStatus === 1 ? 'approval-pass' : 'approval-reject'">
        <div class="approval-status" v-if="storeInfo.auditStatus === 1">
      <div class="approval-result" :class="storeInfo.auditStatus === 1||storeInfo.auditStatus === 3 ? 'approval-pass' : 'approval-reject'">
        <div class="approval-status" v-if="storeInfo.auditStatus === 1||storeInfo.auditStatus === 3">
          <i class="el-icon-circle-check"></i>
          <span>审核通过</span>
        </div>
@@ -47,14 +47,15 @@
          <i class="el-icon-circle-close"></i>
          <span>审核拒绝</span>
        </div>
        <div class="approval-info" v-if="storeInfo.auditStatus === 1">
          <span class="info-item">审核时间:{{ storeInfo.auditTime }}</span>
          <span class="info-item">审核人:{{ storeInfo.auditName }}</span>
        <div class="approval-info" v-if="storeInfo.auditStatus === 1||storeInfo.auditStatus === 3">
          <div class="info-item" v-if="storeInfo.auditRemark">备注:{{ storeInfo.auditRemark||'' }}</div>
          <span class="info-item">审核时间:{{ storeInfo.auditTime || '' }}</span>
          <span class="info-item">审核人:{{ storeInfo.auditName||'' }}</span>
        </div>
        <div class="approval-info" v-else>
          <div class="info-item" v-if="storeInfo.auditRemark">备注:{{ storeInfo.auditRemark }}</div>
          <div class="info-item">审核时间:{{ storeInfo.auditTime }}</div>
          <div class="info-item">审核人:{{ storeInfo.auditName }}</div>
          <div class="info-item" v-if="storeInfo.auditRemark">备注:{{ storeInfo.auditRemark||'' }}</div>
          <div class="info-item">审核时间:{{ storeInfo.auditTime||'' }}</div>
          <div class="info-item">审核人:{{ storeInfo.auditName||'' }}</div>
        </div>
      </div>
    </div>
@@ -63,6 +64,12 @@
      <div class="qualification-section">
        <h4 class="section-title">基本信息</h4>
        <div class="info-grid">
          <div class="info-row" v-if="storeInfo.auditStatus === 1||storeInfo.auditStatus === 3 ">
            <span class="label">入住押金:</span>
            <span class="value yellowstate" >¥{{(( storeInfo.depositAmount || 0)/100).toFixed(2) }}</span>
            <span class="value bluestate" style="color:#269ffc;font-size: 10px;margin-left:10px;padding:  2px 10px;border: 1px solid #269ffc" v-if="storeInfo.auditStatus === 1">待支付</span>
            <span class="value yellowstate"  style="color:#67c23a;font-size: 10px;margin-left:10px;padding: 2px 10px ;border: 1px solid #67c23a" v-if="storeInfo.auditStatus === 3">已支付</span>
          </div>
          <div class="info-row">
            <span class="label">所在省市区:</span>
            <span class="value">{{ storeInfo.provinceName || '' }} {{ storeInfo.cityName || '' }} {{ storeInfo.areaName || '' }}</span>
admin/src/components/business/OperaShopInfoWindow.vue
@@ -3,7 +3,7 @@
    :title="title"
    :withFooter="false"
    :visible.sync="visible"
    width="80%"
    width="calc(100% - 255px )"
  >
    <div class="store-header" v-if="storeInfo">
      <div class="store-header-left">
@@ -39,61 +39,109 @@
    <el-tabs v-model="activeTab" class="store-tabs">
      <el-tab-pane label="门店业绩" name="performance">
        <el-form ref="searchForm" :model="searchForm" inline>
          <el-form-item label="交易号" prop="orderNo">
            <el-input v-model="searchForm.orderNo" clearable placeholder="请输入交易号"></el-input>
        <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
          <el-form-item label="订单编号" prop="code">
            <el-input v-model="searchForm.code" style="width: 150px;" clearable placeholder="请输入订单编号" @keypress.enter.native="search"></el-input>
          </el-form-item>
          <el-form-item label="收支类型" prop="optType">
            <el-select v-model="searchForm.optType" clearable placeholder="请选择类型">
          <el-form-item label="物品信息" prop="goodsInfo">
            <el-input v-model="searchForm.goodsInfo" style="width: 150px;" clearable placeholder="请输入物品信息" @keypress.enter.native="search"></el-input>
          </el-form-item>
          <el-form-item label="订单状态" prop="status">
            <el-select v-model="searchForm.status" clearable style="width: 150px;" placeholder="请选择订单状态" @change="search">
              <el-option label="全部" value=""></el-option>
              <el-option label="收入" :value="1"></el-option>
              <el-option label="支出" :value="-1"></el-option>
              <el-option label="待支付" :value="0"></el-option>
              <el-option label="待寄存" :value="1"></el-option>
              <el-option label="已寄存" :value="2"></el-option>
              <el-option label="已接单" :value="3"></el-option>
              <el-option label="派送中" :value="4"></el-option>
              <el-option label="已到店/已送达" :value="5"></el-option>
              <el-option label="已完成" :value="7"></el-option>
              <el-option label="已取消" :value="99"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="收支时间" prop="createTime">
            <el-date-picker type="daterange" v-model="searchForm.createTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
              range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
          <el-form-item label="结算状态" prop="settlementStatus">
            <el-select v-model="searchForm.settlementStatus" style="width: 150px;" clearable placeholder="请选择结算状态" @change="search">
              <el-option label="待结算" :value="0"></el-option>
              <el-option label="已结算" :value="1"></el-option>
            </el-select>
          </el-form-item>
          <section>
            <el-button type="primary" @click="search">查询</el-button>
          <el-form-item label="创建时间" prop="createTime1">
            <el-date-picker type="daterange" v-model="searchForm.createTime1" clearable value-format="yyyy-MM-dd"
                            range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="handleDateChange" />
          </el-form-item>
          <section style="display: inline-block">
            <el-button type="primary" @click="search">搜索</el-button>
            <el-button @click="reset">重置</el-button>
            <el-button :loading="isWorking.export" @click="exportExcel">导出</el-button>
          </section>
        </el-form>
        <el-table :data="tableData.list" border stripe v-loading="isWorking.search" class="performance-table">
          <el-table-column label="收入/支出" min-width="100px">
        <!--
                <div class="statistics">
                  <span>订单数:{{ statistics.orderCount }}</span>
                  <span>订单总价:¥{{ (statistics.orderAmount / 100).toFixed(2) }}</span>
                  <span>结算总价:¥{{ (statistics.settleAmount / 100).toFixed(2) }}</span>
                </div>
        -->
        <el-table :data="tableData.list" stripe>
          <el-table-column prop="code" label="订单编号" min-width="160px">
            <template slot-scope="{row}">
              <span :class="row.optType === 1 ? 'income' : 'expense'">{{ row.optType === 1 ? '收入' : '支出' }}</span>
              <span class="bluestate" @click="$refs.operaOrderDetail.open(row)">{{ row.code }}</span>
            </template>
          </el-table-column>
          <el-table-column prop="amount" label="金额(元)" min-width="100px">
          <el-table-column prop="goodsInfo" label="物品信息" min-width="180px" show-overflow-tooltip></el-table-column>
          <el-table-column prop="isUrgent" label="订单级别" min-width="80px">
            <template slot-scope="{row}"><span v-if="row.type ===1">{{ row.isUrgent === 1?'极速达':'标速达' }}</span></template>
          </el-table-column>
          <el-table-column label="物品保费(元)" min-width="120px">
            <template slot-scope="{row}">¥{{ (row.declaredFee / 100).toFixed(2) }}</template>
          </el-table-column>
          <el-table-column label="物品保费(元)" min-width="120px">
            <template slot-scope="{row}">¥{{ (row.declaredFee / 100).toFixed(2) }}</template>
          </el-table-column>
          <el-table-column label="基础服务费(元)" min-width="120px">
            <template slot-scope="{row}">¥{{ (row.price / 100).toFixed(2) }}</template>
          </el-table-column>
          <el-table-column label="订单总价(元)" min-width="120px">
            <template slot-scope="{row}">¥{{ (row.totalAmount / 100).toFixed(2) }}</template>
          </el-table-column>
          <el-table-column label="实付现金(元)" min-width="120px">
            <template slot-scope="{row}">¥{{ (row.payAmount / 100).toFixed(2) }}</template>
          </el-table-column>
          <el-table-column label="加急费(元)" min-width="120px">
            <template slot-scope="{row}"><span v-if="row.type ===1 ">¥{{ (row.urgentAmount / 100).toFixed(2) }}</span></template>
          </el-table-column>
          <el-table-column label="退款金额(元)" min-width="120px">
            <template slot-scope="{row}">¥{{ (row.refundAmount / 100).toFixed(2) }}</template>
          </el-table-column>
          <el-table-column label="超时金额" min-width="100px">
            <template slot-scope="{row}">¥{{ (row.overdueAmount / 100).toFixed(2) }}</template>
          </el-table-column>
          <el-table-column label="异常金额" min-width="100px">
            <template slot-scope="{row}">¥{{ (row.exceptionAmount / 100).toFixed(2) }}</template>
          </el-table-column>
          <el-table-column  prop="statusDesc"  label="订单状态" min-width="100px">
            <template slot-scope="{row}">
              <span :class="row.optType === 1 ? 'income' : 'expense'">{{ row.amount }}</span>
            <span :style="{ color: row.status <7 ? '#e6a23c' :  (row.status ===7 ? '#67c23a' : 'grey' )}">
              {{ row.statusDesc }}
            </span>
            </template>
          </el-table-column>
          <el-table-column prop="createTime" label="收支时间" min-width="160px"></el-table-column>
          <el-table-column label="业务类型" min-width="100px">
          <el-table-column  label="结算状态" min-width="100px">
            <template slot-scope="{row}">
              <span v-if="row.type === 0">完成订单</span>
              <span v-if="row.type === 1">提现支出</span>
              <span v-if="row.type === 2">提现退回</span>
              <span v-if="row.type === 3">平台奖励</span>
            <span :style="{ color: row.settlementStatus === 1 ? '#67c23a' : '#e6a23c' }">
              {{ row.settlementStatus === 1 ? '已结算' : '未结算' }}
            </span>
            </template>
          </el-table-column>
          <el-table-column prop="orderNo" label="交易号" min-width="180px"></el-table-column>
          <el-table-column label="状态" min-width="100px">
            <template slot-scope="{row}">
              <span :class="row.vaildStatus === 1 ? 'status-success' : 'status-pending'">
                {{ row.vaildStatus === 1 ? '已到账' : '提现中' }}
              </span>
            </template>
          </el-table-column>
          <el-table-column prop="payTime" label="支付时间" min-width="150px"> </el-table-column>
          <el-table-column prop="createTime" label="创建时间" min-width="150px"> </el-table-column>
        </el-table>
        <pagination
          @size-change="handleSizeChange"
          @current-change="handlePageChange"
          :pagination="tableData.pagination"
            @size-change="handleSizeChange"
            @current-change="handlePageChange"
            :pagination="tableData.pagination"
        ></pagination>
      </el-tab-pane>
@@ -225,48 +273,41 @@
        </div>
      </el-tab-pane>
    </el-tabs>
    <OperaOrderDetail ref="operaOrderDetail"  @success="handlePageChange"  />
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import Pagination from '@/components/common/Pagination'
import { detail } from '@/api/business/shopInfo'
import BaseTable from '@/components/base/BaseTable'
import OperaOrderDetail from '@/components/business/OperaOrderDetail'
import { fetchList, exportExcel } from '@/api/business/revenue'
export default {
  name: 'OperaShopInfoWindow',
  extends: BaseOpera,
  components: { GlobalWindow, Pagination },
  extends: BaseTable,
  components: { GlobalWindow, Pagination,OperaOrderDetail },
  data () {
    return {
      activeTab: 'performance',
      storeInfo: {},
      searchForm: {
        orderNo: '',
        optType: 0,
        createTime: '',
        memberId: '',
        memberType: 2
      },
      tableData: {
        list: [],
        pagination: {
          pageIndex: 1,
          pageSize: 10,
          total: 0
        }
      },
      isWorking: {
        search: false,
        export: false
        goodsInfo: '',
        createTime1: '',
        startTime: '',
        endTime: '',
        orderStatus: '',
        shopId: null,
        settleStatus: ''
      },
      defaultAvatar: 'https://cube.elemecdn.com/3/c7/9d47156420e4e9c6e2c1f6d6e6e6e6e6.jpeg'
    }
  },
  created () {
    this.config({
      api: '/business/shopInfo',
      api: '/business/orderManagement',
      'field.id': 'id'
    })
  },
@@ -277,89 +318,13 @@
        .then(res => {
          this.storeInfo = res
          this.activeTab = 'performance'
          this.searchForm = {
            orderNo: '',
            optType: '',
            createTime: '',
            memberId: '',
            memberType: 2
          }
          this.title = title
          this.visible = true
          this.searchForm.shopId = row.id
          this.search()
        })
        .catch(e => {
          this.$tip.apiFailed(e)
        })
    },
    search () {
      this.isWorking.search = true
      const data = {
        capacity: this.tableData.pagination.pageSize,
        page: this.tableData.pagination.pageIndex,
        model: {
          orderNo: this.searchForm.orderNo,
          optType: this.searchForm.optType,
          startTime: this.searchForm.createTime?.[0] || '',
          endTime: this.searchForm.createTime?.[1] || '',
          memberId: this.searchForm.memberId,
          memberType: this.searchForm.memberType || ''
        }
      }
      fetchList(data)
        .then(res => {
          this.tableData.list = res.list || []
          this.tableData.pagination.total = res.total || 0
        })
        .catch(e => {
          this.$tip.apiFailed(e)
        })
        .finally(() => {
          this.isWorking.search = false
        })
    },
    reset () {
      this.searchForm = {
        orderNo: '',
        optType: '',
        createTime: '',
        memberId: '',
        memberType: 2
      }
      this.search()
    },
    handleSizeChange (pageSize) {
      this.tableData.pagination.pageSize = pageSize
      this.search()
    },
    handlePageChange (pageIndex) {
      this.tableData.pagination.pageIndex = pageIndex
      this.search()
    },
    exportExcel () {
      this.isWorking.export = true
      const data = {
        capacity: 999999,
        page: this.tableData.pagination.pageIndex,
        model: {
          orderNo: this.searchForm.orderNo,
          optType: this.searchForm.optType,
          startTime: this.searchForm.createTime?.[0] || '',
          endTime: this.searchForm.createTime?.[1] || '',
          memberId: this.searchForm.memberId,
          memberType: this.searchForm.memberType || ''
        }
      }
      exportExcel(data)
        .then(res => {
          this.download(res)
          this.$tip.apiSuccess('导出成功')
        })
        .catch(e => {
          this.$tip.apiFailed(e)
        })
        .finally(() => {
          this.isWorking.export = false
        })
    }
  }
admin/src/components/business/OperaWithdrawDetailWindow.vue
@@ -15,7 +15,7 @@
            {{ getStatusText(detailInfo.status) }}
          </span>
        </div>
        <div class="info-grid">
        <div class="info-grid" v-if="detailInfo.memberType ==2">
          <div class="info-item">
            <span class="label">门店名称:</span>
            <span class="value">{{ detailInfo.shopName }}</span>
@@ -23,6 +23,20 @@
          <div class="info-item">
            <span class="label">门店联系人:</span>
            <span class="value">{{ detailInfo.linkName }}</span>
          </div>
          <div class="info-item">
            <span class="label">申请时间:</span>
            <span class="value">{{ detailInfo.createTime }}</span>
          </div>
        </div>
        <div class="info-grid" v-if="detailInfo.memberType == 1">
          <div class="info-item">
            <span class="label">司机姓名:</span>
            <span class="value">{{ detailInfo.memberName ||''}}</span>
          </div>
          <div class="info-item">
            <span class="label">司机电话:</span>
            <span class="value">{{ detailInfo.memberTelephone||'' }}</span>
          </div>
          <div class="info-item">
            <span class="label">申请时间:</span>
@@ -81,9 +95,9 @@
    </div>
    <div class="approval-form" v-if="detailInfo.status === 0">
      <el-form ref="approvalForm" :model="approvalForm" :rules="approvalRules">
      <el-form ref="approvalForm" :model="approvalForm" :rules="approvalForm.status == 1?approvalRules:approvalRules1" >
        <el-form-item label="审批结果" prop="status">
          <el-radio-group v-model="approvalForm.status">
          <el-radio-group v-model="approvalForm.status" @change="changeRadio">
            <el-radio :label="1">通过</el-radio>
            <el-radio :label="2">驳回</el-radio>
          </el-radio-group>
@@ -134,31 +148,26 @@
      approvalRules: {
        status: [{ required: true, message: '请选择审批结果', trigger: 'change' }]
      },
      approvalRules1: {
        status: [{ required: true, message: '请选择审批结果', trigger: 'change' }],
        approveRemark: [{ required: true, message: '请输入备注', trigger: 'change' }]
      },
      isWorking: {
        submit: false
      }
    }
  },
  methods: {
    changeRadio(){
      this.$refs.approvalForm.clearValidate()
    },
    open (title, row) {
      this.title = title
      this.approvalForm.id = row.id
      this.approvalForm.status = 1
      this.approvalForm.approveRemark = ''
      getById(row.id).then(res => {
        this.detailInfo = {
          status: res.status,
          shopName: res.shopName,
          linkName: res.linkName,
          createTime: res.createTime,
          amount: res.amount,
          bankCardNo: res.bankCardNo,
          aliAccount: res.aliAccount,
          auditLogs: res.auditLogs || [],
          updateUserName: res.updateUserName,
          updateTime: res.updateTime,
          approveRemark: res.approveRemark
        }
        this.detailInfo = res || {}
        this.visible = true
      }).catch(e => {
        this.$tip.apiFailed(e)
admin/src/components/common/GlobalWindow.vue
@@ -13,7 +13,7 @@
    <div slot="title" class="window__header">
      <span class="header__btn-back" @click="close"><i class="el-icon-arrow-left"></i></span>{{title}}
    </div>
    <div class="window__body">
    <div class="window__body" style="padding-left: 30px;">
      <slot></slot>
    </div>
    <div v-if="withFooter" class="window__footer">
admin/src/components/common/RichEditor.vue
@@ -129,7 +129,7 @@
        MENU_CONF: {
          // 图片上传
          uploadImage: {
            server: process.env.VUE_APP_API_PREFIX + '/public/uploadLocal?folder=',
            server: process.env.VUE_APP_API_PREFIX + '/web/public/upload?folder=richeditor',
            fieldName: 'file',
            // 单个文件的最大体积限制,默认为 2M
            maxFileSize: 10 * 1024 * 1024, // 10M
@@ -204,7 +204,7 @@
          // 视频上传
          uploadVideo: {
            fieldName: 'file',
            server: process.env.VUE_APP_API_PREFIX + '/public/upload?folder=richeditor',
            server: process.env.VUE_APP_API_PREFIX + '/web/public/upload?folder=richeditor',
            // 单个文件的最大体积限制,默认为 10M
            maxFileSize: 50 * 1024 * 1024, // 50M
            // 最多可上传几个文件,默认为 5
admin/src/components/system/dict/DictDataManagerWindow.vue
@@ -10,7 +10,7 @@
      <template v-slot:table-wrap>
        <ul class="toolbar">
          <li><el-button type="primary" @click="$refs.operaDictDataWindow.open('新建字典数据', searchForm.dictId)" icon="el-icon-plus">新建</el-button></li>
          <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete">删除</el-button></li>
          <li><el-button type="danger"   @click="deleteByIdInBatch" icon="el-icon-delete">删除</el-button></li>
          <li><el-button @click="sort('top')" :loading="isWorking.sort" icon="el-icon-sort-up" v-permissions="['system:menu:sort']">上移</el-button></li>
          <li><el-button @click="sort('bottom')" :loading="isWorking.sort" icon="el-icon-sort-down" v-permissions="['system:menu:sort']">下移</el-button></li>
        </ul>
@@ -50,7 +50,7 @@
          >
            <template slot-scope="{row}">
              <el-button type="text" @click="$refs.operaDictDataWindow.open('编辑字典数据', dictId, row)" icon="el-icon-edit">编辑</el-button>
              <el-button type="text" @click="deleteById(row)" icon="el-icon-delete">删除</el-button>
              <el-button style="color: red;"  type="text" @click="deleteById(row)" icon="el-icon-delete">删除</el-button>
            </template>
          </el-table-column>
        </el-table>
admin/src/views/business/area.vue
@@ -60,7 +60,7 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import { listByParentId,updateStatus } from '@/api/business/areas'
import { listByParentId, updateStatus } from '@/api/business/areas'
import OperaCityPriceRuleWindow from '@/components/business/OperaCityPriceRuleWindow'
import OperaAreasWindow from '@/components/business/OperaAreasWindow'
export default {
@@ -80,7 +80,7 @@
  },
  created () {
    this.config({
      module: '省市区信息表',
      module: '省市区信息',
      api: '/business/areas',
      'field.id': 'id',
      'field.main': 'id'
@@ -88,6 +88,25 @@
    this.search()
  },
  methods: {
    deleteById (row) {
      var that = this
      const message = '确认删除选择的数据记录及其下级子数据吗?'
      this.$dialog.deleteConfirm(message)
        .then(() => {
          this.isWorking.delete = true
          this.api.deleteById(row.id)
            .then(() => {
              this.refreshLoadTree(row.parentId)
            })
            .catch(e => {
              this.$tip.apiFailed(e)
            })
            .finally(() => {
              this.isWorking.delete = false
            })
        })
        .catch(() => {})
    },
    // 页码变更处理
    handlePageChange (pageIndex) {
      this.isWorking.search = true
admin/src/views/business/baggageType.vue
@@ -1,8 +1,14 @@
<template>
  <TableLayout :permissions="['business:category:query']">
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="名称" prop="name">
        <el-input v-model="searchForm.name" clearable placeholder="请输入名称" @keypress.enter.native="search"></el-input>
      <el-form-item label="行李类型" prop="name">
        <el-input v-model="searchForm.name" clearable placeholder="请输入行李类型" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-select v-model="searchForm.status" clearable placeholder="请选择状态" @change="search">
          <el-option label="正常" :value="0"></el-option>
          <el-option label="停用" :value="1"></el-option>
        </el-select>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
@@ -11,7 +17,7 @@
    </el-form>
    <template v-slot:table-wrap>
      <ul class="toolbar">
        <li><el-button type="primary" @click="$refs.operaGoodsCategoryEditWindow.open('新建物品等级', null, 4)" icon="el-icon-plus">新建</el-button></li>
        <li><el-button type="primary" @click="$refs.operaGoodsCategoryEditWindow.open('新建行李类型', null, 4)" icon="el-icon-plus">新建</el-button></li>
      </ul>
      <el-table
        :height="tableHeightNew"
@@ -21,6 +27,11 @@
      >
        <el-table-column prop="id" label="ID" min-width="80px"></el-table-column>
        <el-table-column prop="name" label="行李类型" min-width="120px"></el-table-column>
        <el-table-column prop="detail" label="是否特大尺寸" min-width="120px">
          <template slot-scope="{row}">
            {{ row.detail == 1? '是' : '否' }}
          </template>
        </el-table-column>
        <el-table-column prop="remark" label="备注说明" min-width="200px"></el-table-column>
        <el-table-column prop="sortnum" label="排序" min-width="100px"></el-table-column>
        <el-table-column prop="createTime" label="提交时间" min-width="100px"></el-table-column>
@@ -39,7 +50,7 @@
        <el-table-column label="操作" min-width="150" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="handleEdit(row)">编辑</el-button>
            <el-button type="text" @click="deleteById(row.id)">删除</el-button>
            <el-button type="text" style="color: red;" @click="deleteById(row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -68,6 +79,7 @@
    return {
      searchForm: {
        name: '',
        status:'',
        type: 4
      }
    }
@@ -81,7 +93,7 @@
  },
  methods: {
    handleEdit (row) {
      this.$refs.operaGoodsCategoryEditWindow.open('编辑物品等级', row, 4)
      this.$refs.operaGoodsCategoryEditWindow.open('编辑行李类型', row, 4)
    },
    handleStatusChange (val, row) {
      updateStatus({ id: row.id, status: val }).then(res => {
admin/src/views/business/bannerList.vue
@@ -31,6 +31,7 @@
              v-if="row.imgurlFull"
              style="width: 80px; height: 40px"
              :src="row.imgurlFull"
              :preview-src-list="[row.imgurlFull]"
              fit="contain"
            ></el-image>
            <span v-else>-</span>
@@ -57,8 +58,8 @@
        <el-table-column prop="updateTime" label="修改时间" min-width="160px"></el-table-column>
        <el-table-column label="操作" min-width="150" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="handleEdit(row)">编辑</el-button>
            <el-button type="text" @click="deleteById(row.id)">删除</el-button>
            <el-button type="text" @click="$refs.operaBannerEditWindow.open('编辑轮播图', row,searchForm.type)" >编辑</el-button>
            <el-button type="text" style="color: red;" @click="deleteById(row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -68,7 +69,7 @@
        :pagination="tableData.pagination"
      ></pagination>
    </template>
    <OperaBannerEditWindow ref="operaBannerEditWindow" @success="search" />
    <OperaBannerEditWindow ref="operaBannerEditWindow" @success="handlePageChange" />
  </TableLayout>
</template>
@@ -77,8 +78,6 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaBannerEditWindow from '@/components/business/OperaBannerEditWindow'
import { updateById, deleteById } from '@/api/business/banner'
export default {
  name: 'BannerList',
  extends: BaseTable,
@@ -86,13 +85,13 @@
  data () {
    return {
      positionOptions: {
        0: '首页',
        1: '店铺首页'
        0: '会员端首页轮播',
        1: '司机APP引导页'
      },
      jumpTypeOptions: {
        0: '无',
        1: '会员端首页轮播',
        2: '司机APP引导页'
        1: '富文本',
        2: '外链'
      },
      searchForm: {
        title: ''
@@ -107,26 +106,8 @@
    this.search()
  },
  methods: {
    loadTableData (resolve) {
      this.isWorking.search = true
      list(this.getTableParams())
        .then(data => {
          this.tableData.list = data.list || []
          this.tableData.pagination.total = data.total || 0
          if (resolve) resolve(data)
        })
        .catch(e => {
          this.$tip.apiFailed(e, '加载失败')
        })
        .finally(() => {
          this.isWorking.search = false
        })
    },
    handleEdit (row) {
      this.$refs.operaBannerEditWindow.open('编辑轮播图', row)
    },
    handleStatusChange (val, row) {
      updateStatus({ id: row.id, status: val }).then(res => {
      this.api.updateStatus({ id: row.id, status: val }).then(res => {
        this.$tip.apiSuccess(res || '修改成功')
      }).catch(e => {
        row.status = val === 1 ? 0 : 1
admin/src/views/business/category.vue
@@ -14,7 +14,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
        <li><el-button type="primary" @click="$refs.operaCategoryWindow.open('新建品种配置',null,searchForm.type)" icon="el-icon-plus" v-permissions="['business:category:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button></li>
        <li><el-button  type="danger"    @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -43,7 +43,7 @@
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaCategoryWindow.open('编辑新建品种配置', row,searchForm.type)" icon="el-icon-edit" v-permissions="['business:category:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button>
            <el-button type="text"style="color: red;"   @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/business/categoryCar.vue
@@ -14,7 +14,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
        <li><el-button type="primary" @click="$refs.operaCategoryWindow.open('新建货运配置',null,searchForm.type)" icon="el-icon-plus" v-permissions="['business:category:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button></li>
        <li><el-button  type="danger"   @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -67,7 +67,7 @@
        >
          <template slot-scope="{row}">
            <el-button type="text"   @click="$refs.operaCategoryWindow.open('编辑新建货运配置', row,searchForm.type)" icon="el-icon-edit" v-permissions="['business:category:update']">编辑</el-button>
            <el-button type="text"   @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button>
            <el-button type="text"  style="color: red;"   @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/business/categoryCb.vue
@@ -14,7 +14,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
        <li><el-button type="primary" @click="$refs.operaCategoryWindow.open('新建餐标配置',null,searchForm.type)" icon="el-icon-plus" v-permissions="['business:category:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button></li>
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -53,7 +53,7 @@
        >
          <template slot-scope="{row}">
            <el-button type="text"   @click="$refs.operaCategoryWindow.open('编辑餐标配置', row,searchForm.type)" icon="el-icon-edit" v-permissions="['business:category:update']">编辑</el-button>
            <el-button type="text"   @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button>
            <el-button type="text"  style="color: red;"   @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/business/categoryFee.vue
@@ -3,7 +3,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
        <li><el-button type="primary" @click="$refs.operaCategoryWindow.open('新建手续费配置',null,searchForm.type)" icon="el-icon-plus" v-permissions="['business:category:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button></li>
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -43,7 +43,7 @@
        >
          <template slot-scope="{row}">
            <el-button type="text"   @click="$refs.operaCategoryWindow.open('编辑手续费配置', row,searchForm.type)" icon="el-icon-edit" v-permissions="['business:category:update']">编辑</el-button>
            <el-button type="text"   @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button>
            <el-button type="text"  style="color: red;"   @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/business/categoryOld.vue
@@ -14,7 +14,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
        <li><el-button type="primary" @click="$refs.operaCategoryWindow.open('新建分类信息表')" icon="el-icon-plus" v-permissions="['business:category:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button></li>
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -48,7 +48,7 @@
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaCategoryWindow.open('编辑分类信息表', row)" icon="el-icon-edit" v-permissions="['business:category:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button>
            <el-button type="text" style="color: red;"  @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/business/driverList.vue
@@ -61,7 +61,7 @@
        </el-table-column>
        <el-table-column label="操作" min-width="100" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="handleDetail(row)">详情</el-button>
            <el-button type="text" style="color: red;" @click="handleDetail(row)">详情</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -96,7 +96,7 @@
        createTime1: '',
        startTime: '',
        endTime: '',
        auditStatus: 1
        auditStatus: 3
      }
    }
  },
@@ -111,18 +111,6 @@
    handleDateChange (val) {
      this.searchForm.startTime = val ? val[0] : ''
      this.searchForm.endTime = val ? val[1] : ''
      this.search()
    },
    reset () {
      this.searchForm = {
        keyword: '',
        carNo: '',
        status: '',
        sex: '',
        createTime1: '',
        startTime: '',
        endTime: ''
      }
      this.search()
    },
    handleDetail (row) {
admin/src/views/business/goodsCategoryList.vue
@@ -1,8 +1,14 @@
<template>
  <TableLayout :permissions="['business:category:query']">
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="名称" prop="name">
        <el-input v-model="searchForm.name" clearable placeholder="请输入名称" @keypress.enter.native="search"></el-input>
      <el-form-item label="物品名称" prop="name">
        <el-input v-model="searchForm.name" clearable placeholder="请输入物品名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-select v-model="searchForm.status" clearable placeholder="请选择状态" @change="search">
          <el-option label="正常" :value="0"></el-option>
          <el-option label="停用" :value="1"></el-option>
        </el-select>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
@@ -11,7 +17,7 @@
    </el-form>
    <template v-slot:table-wrap>
      <ul class="toolbar">
        <li><el-button type="primary" @click="$refs.operaGoodsCategoryEditWindow.open('新建物品分类', null, 2)" icon="el-icon-plus">新建</el-button></li>
        <li><el-button type="primary" @click="$refs.operaGoodsCategoryEditWindow.open('新建物品名称', null, 2)" icon="el-icon-plus">新建</el-button></li>
      </ul>
      <el-table
        :height="tableHeightNew"
@@ -38,7 +44,7 @@
        <el-table-column label="操作" min-width="150" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="handleEdit(row)">编辑</el-button>
            <el-button type="text" @click="deleteById(row.id)">删除</el-button>
            <el-button type="text" style="color: red;" @click="deleteById(row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -81,7 +87,7 @@
  },
  methods: {
    handleEdit (row) {
      this.$refs.operaGoodsCategoryEditWindow.open('编辑物品分类', row, 2)
      this.$refs.operaGoodsCategoryEditWindow.open('编辑物品名称', row, 2)
    },
    handleStatusChange (val, row) {
      updateStatus({ id: row.id, status: val }).then(res => {
admin/src/views/business/itemLevel.vue
@@ -1,8 +1,14 @@
<template>
  <TableLayout :permissions="['business:category:query']">
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="名称" prop="name">
        <el-input v-model="searchForm.name" clearable placeholder="请输入名称" @keypress.enter.native="search"></el-input>
      <el-form-item label="物品等级" prop="name">
        <el-input v-model="searchForm.name" clearable placeholder="请输入物品等级" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-select v-model="searchForm.status" clearable placeholder="请选择状态" @change="search">
          <el-option label="正常" :value="0"></el-option>
          <el-option label="停用" :value="1"></el-option>
        </el-select>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
@@ -20,8 +26,23 @@
        stripe
      >
        <el-table-column prop="id" label="ID" min-width="80px"></el-table-column>
        <el-table-column prop="name" label="等级名称" min-width="120px"></el-table-column>
        <el-table-column prop="detail" label="备注说明" min-width="200px"></el-table-column>
        <el-table-column prop="name" label="物品等级" min-width="120px"></el-table-column>
        <el-table-column prop="detail" label="所需司机等级" min-width="120px">
          <template slot-scope="{row}">
          <span class="value" v-if="row.detail ==5">S</span>
          <span class="value" v-else-if="row.detail ==4">A</span>
          <span class="value" v-else-if="row.detail ==3">B</span>
          <span class="value" v-else-if="row.detail ==2">C</span>
          <span class="value" v-else-if="row.detail ==1">D</span>
          <span class="value" v-else>-</span>
          </template>
        </el-table-column>
        <el-table-column prop="otherField" label="是否贵重物品" min-width="120px">
          <template slot-scope="{row}">
            <span class="value" v-if="row.otherField ==1">是</span>
            <span class="value" v-else>否</span>
          </template>
        </el-table-column>
        <el-table-column prop="sortnum" label="排序" min-width="100px"></el-table-column>
        <el-table-column prop="createTime" label="提交时间" min-width="100px"></el-table-column>
        <el-table-column label="状态" min-width="80px">
@@ -39,7 +60,7 @@
        <el-table-column label="操作" min-width="150" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="handleEdit(row)">编辑</el-button>
            <el-button type="text" @click="deleteById(row.id)">删除</el-button>
            <el-button type="text" style="color: red;" @click="deleteById(row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -68,6 +89,7 @@
    return {
      searchForm: {
        name: '',
        status:'',
        type: 3
      }
    }
admin/src/views/business/memberList.vue
@@ -34,8 +34,15 @@
        <el-table-column prop="createTime" label="创建时间" min-width="160px"></el-table-column>
        <el-table-column label="状态" min-width="80px">
          <template slot-scope="{row}">
            {{ row.status === 0 ? '正常' : row.status === 1 ? '停用' : '已注销' }}
          </template>
              <el-switch
                  @change="handleStatusChange($event, row)"
                  v-model="row.status"
                  active-color="#13ce66"
                  inactive-color="#ff4949"
                  :active-value="0"
                  :inactive-value="1"
              ></el-switch>
            </template>
        </el-table-column>
        <el-table-column label="操作" min-width="100" fixed="right">
          <template slot-scope="{row}">
@@ -99,6 +106,14 @@
    },
    handleDetail (row) {
      this.$refs.operaMemberDetailWindow.open('会员详情', row)
    },
    handleStatusChange (val, row) {
      this.api.updateStatus({ id: row.id, status: val }).then(res => {
        this.$tip.apiSuccess(res || '修改成功')
      }).catch(e => {
        row.status = val === 1 ? 0 : 1
        this.$tip.apiFailed(e)
      })
    }
  }
}
admin/src/views/business/memberRevenue.vue
@@ -59,7 +59,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:memberrevenue:create', 'business:memberrevenue:delete']">
        <li><el-button type="primary" @click="$refs.operaMemberRevenueWindow.open('新建会员收支记录')" icon="el-icon-plus" v-permissions="['business:memberrevenue:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:memberrevenue:delete']">删除</el-button></li>
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:memberrevenue:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -93,7 +93,7 @@
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaMemberRevenueWindow.open('编辑会员收支记录', row)" icon="el-icon-edit" v-permissions="['business:memberrevenue:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:memberrevenue:delete']">删除</el-button>
            <el-button type="text" style="color: red;"  @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:memberrevenue:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/business/orderLog.vue
@@ -56,7 +56,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:orderlog:create', 'business:orderlog:delete']">
        <li><el-button type="primary" @click="$refs.operaOrderLogWindow.open('新建订单操作日志')" icon="el-icon-plus" v-permissions="['business:orderlog:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:orderlog:delete']">删除</el-button></li>
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:orderlog:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -89,7 +89,7 @@
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaOrderLogWindow.open('编辑订单操作日志', row)" icon="el-icon-edit" v-permissions="['business:orderlog:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:orderlog:delete']">删除</el-button>
            <el-button type="text" style="color: red;"  @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:orderlog:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/business/receiveWeight.vue
@@ -4,7 +4,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:receiveweight:create', 'business:receiveweight:delete']">
        <li><el-button type="primary" @click="$refs.operaReceiveWeightWindow.open('新建接单权重配置表')" icon="el-icon-plus" v-permissions="['business:receiveweight:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:receiveweight:delete']">删除</el-button></li>
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:receiveweight:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -39,7 +39,7 @@
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaReceiveWeightWindow.open('编辑接单权重配置表', row)" icon="el-icon-edit" v-permissions="['business:receiveweight:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:receiveweight:delete']">删除</el-button>
            <el-button type="text" style="color: red;"  @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:receiveweight:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/business/shopWithdrawList.vue
@@ -57,7 +57,7 @@
        :pagination="tableData.pagination"
      ></pagination>
    </template>
    <OperaWithdrawDetailWindow ref="operaWithdrawDetailWindow" @success="search" />
    <OperaWithdrawDetailWindow ref="operaWithdrawDetailWindow" @success="handlePageChange" />
  </TableLayout>
</template>
@@ -128,6 +128,7 @@
      this.searchForm = {
        shopName: '',
        createTime1: '',
        memberType: 2,
        createStartTime: '',
        createEndTime: '',
        auditStatus: ''
admin/src/views/business/storeList.vue
@@ -23,11 +23,10 @@
        <el-date-picker type="daterange" v-model="searchForm.createTimeStr" clearable value-format="yyyy-MM-dd"
                        range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="handleDateChange" />
      </el-form-item>
      <el-form-item label="状态" prop="auditStatus">
        <el-select v-model="searchForm.auditStatus" clearable placeholder="请选择状态" @change="search">
          <el-option label="待审批" :value="0"></el-option>
          <el-option label="审批通过" :value="1"></el-option>
          <el-option label="审批未通过" :value="2"></el-option>
      <el-form-item label="状态" prop="status">
        <el-select v-model="searchForm.status" clearable placeholder="请选择状态" @change="search">
          <el-option label="启用" :value="0"></el-option>
          <el-option label="禁用" :value="1"></el-option>
        </el-select>
      </el-form-item>
      <section>
@@ -107,8 +106,8 @@
        linkPhone: '',
        createTimeStr: '',
        createStartTime: '',
        createEndTime: '',
        auditStatus: null
        status: '',
        createEndTime: ''
      }
    }
  },
@@ -130,8 +129,9 @@
        linkName: '',
        linkPhone: '',
        createTimeStr: '',
        createStartTime: '',
        status: '',
        auditStatus: null
        createEndTime: ''
      }
      this.search()
    },
admin/src/views/business/vehicleType.vue
@@ -1,8 +1,14 @@
<template>
  <TableLayout :permissions="['business:category:query']">
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="名称" prop="name">
        <el-input v-model="searchForm.name" clearable placeholder="请输入名称" @keypress.enter.native="search"></el-input>
      <el-form-item label="类型名称" prop="name">
        <el-input v-model="searchForm.name" clearable placeholder="请输入类型名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-select v-model="searchForm.status" clearable placeholder="请选择状态" @change="search">
          <el-option label="正常" :value="0"></el-option>
          <el-option label="停用" :value="1"></el-option>
        </el-select>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
@@ -21,9 +27,14 @@
      >
        <el-table-column prop="id" label="ID" min-width="80px"></el-table-column>
        <el-table-column prop="name" label="类型名称" min-width="120px"></el-table-column>
        <el-table-column prop="detail" label="通行方式" min-width="200px">
        <el-table-column prop="detail" label="通行方式" min-width="120px">
          <template slot-scope="{row}">
            {{ row.otherField === 'driving' ? '机动车' : '非机动车' }}
            {{ row.detail === 'driving' ? '机动车' : '非机动车' }}
          </template>
        </el-table-column>
        <el-table-column prop="otherField" label="上传驾驶证" min-width="120px">
          <template slot-scope="{row}">
            {{ row.otherField == 1 ? '需要' : '不需要' }}
          </template>
        </el-table-column>
        <el-table-column prop="sortnum" label="分类排序" min-width="100px"></el-table-column>
@@ -42,7 +53,7 @@
        <el-table-column label="操作" min-width="150" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="handleEdit(row)">编辑</el-button>
            <el-button type="text" @click="deleteById(row.id)">删除</el-button>
            <el-button style="color: red;"  type="text" @click="deleteById(row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -71,6 +82,7 @@
    return {
      searchForm: {
        name: '',
        status:'',
        type: 1
      }
    }
admin/src/views/business/withdrawalOrders.vue
@@ -17,7 +17,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:withdrawalorders:create', 'business:withdrawalorders:delete']">
        <li><el-button type="primary" @click="$refs.operaWithdrawalOrdersWindow.open('新建提现申请记录')" icon="el-icon-plus" v-permissions="['business:withdrawalorders:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:withdrawalorders:delete']">删除</el-button></li>
        <li><el-button tpe="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:withdrawalorders:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -48,7 +48,7 @@
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaWithdrawalOrdersWindow.open('编辑提现申请记录', row)" icon="el-icon-edit" v-permissions="['business:withdrawalorders:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:withdrawalorders:delete']">删除</el-button>
            <el-button type="text" style="color: red;"  @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:withdrawalorders:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/system/dict.vue
@@ -17,7 +17,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['system:dict:create', 'system:dict:delete']">
        <li><el-button type="primary" @click="$refs.operaDictWindow.open('新建字典')" icon="el-icon-plus" v-permissions="['system:dict:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:dict:delete']">删除</el-button></li>
        <li><el-button  type="danger"   @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:dict:delete']">删除</el-button></li>
      </ul>
      <el-table :height="tableHeightNew"
        v-loading="isWorking.search"
@@ -48,7 +48,7 @@
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaDictWindow.open('编辑字典', row)" icon="el-icon-edit" v-permissions="['system:dict:update']">编辑</el-button>
            <el-button type="text" @click="$refs.dictDataManagerWindow.open(row.id, row.name)" icon="el-icon-edit" v-permissions="['system:dict:update']">数据管理</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:dict:delete']">删除</el-button>
            <el-button style="color: red;"  type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:dict:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/system/job-log.vue
@@ -47,7 +47,7 @@
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['system:job:log:delete']">
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:job:log:delete']">删除</el-button></li>
        <li><el-button  type="danger"   @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:job:log:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -92,7 +92,7 @@
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:job:log:delete']">删除</el-button>
            <el-button style="color: red;"  type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:job:log:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/system/job.vue
@@ -14,7 +14,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['system:job:create', 'system:job:delete']">
        <li><el-button type="primary" @click="$refs.operaJobWindow.open('新建定时任务列表')" icon="el-icon-plus" v-permissions="['system:job:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:job:delete']">删除</el-button></li>
        <li><el-button  type="danger"   @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:job:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -66,7 +66,7 @@
          <template slot-scope="{row}">
            <el-button v-if="!row.disabled && row.status !== 1" type="text" icon="el-icon-mouse" @click="$refs.triggerJobWindow.open(row)">执行</el-button>
            <el-button type="text" icon="el-icon-edit" v-permissions="['system:job:update']" @click="$refs.operaJobWindow.open('编辑定时任务', row)">编辑</el-button>
            <el-button type="text" icon="el-icon-delete" v-permissions="['system:job:delete']" @click="deleteById(row)">删除</el-button>
            <el-button style="color: red;"  type="text" icon="el-icon-delete" v-permissions="['system:job:delete']" @click="deleteById(row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/system/menu.vue
@@ -4,7 +4,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['system:menu:create', 'system:menu:delete', 'system:menu:sort']">
        <li><el-button type="primary" @click="$refs.operaMenuWindow.open('新建一级菜单')" icon="el-icon-plus" v-permissions="['system:menu:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:menu:delete']">删除</el-button></li>
        <li><el-button  type="danger"   @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:menu:delete']">删除</el-button></li>
        <li><el-button @click="sort('top')" :loading="isWorking.sort" icon="el-icon-sort-up" v-permissions="['system:menu:sort']">上移</el-button></li>
        <li><el-button @click="sort('bottom')" :loading="isWorking.sort" icon="el-icon-sort-down" v-permissions="['system:menu:sort']">下移</el-button></li>
      </ul>
@@ -50,7 +50,7 @@
          <template slot-scope="{row}">
            <el-button type="text" icon="el-icon-edit" @click="$refs.operaMenuWindow.open('编辑菜单', row)" v-permissions="['system:menu:update']">编辑</el-button>
            <el-button type="text" icon="el-icon-plus" @click="$refs.operaMenuWindow.open('新建子菜单', null, row)" v-permissions="['system:menu:create']">新建子菜单</el-button>
            <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:menu:delete']">删除</el-button>
            <el-button v-if="!row.fixed" style="color: red;"  type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:menu:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/system/permission.vue
@@ -6,7 +6,7 @@
        <el-tab-pane :name="'module'+module.id" :label="module.name" v-for="module in tableData.list" :key="module.id">
          <ul class="toolbar" v-permissions="['system:permission:create', 'system:permission:delete']">
            <li><el-button type="primary" @click="$refs.operaPermissionWindow.open('新建系统权限', module)" icon="el-icon-plus" v-permissions="['system:permission:create']">新建</el-button></li>
            <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:permission:delete']">删除</el-button></li>
            <li><el-button  type="danger"   @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:permission:delete']">删除</el-button></li>
          </ul>
          <el-table
              :height="tableHeightNew"
@@ -40,12 +40,12 @@
                <template v-if="row.type === 'module'">
                  <el-button type="text" @click="$refs.operaModuleWindow.open('编辑模块', row)" icon="el-icon-edit" v-permissions="['system:permission:update']">编辑</el-button>
                  <el-button type="text" @click="$refs.operaPermissionWindow.open('新建系统权限', row)" icon="el-icon-edit" v-permissions="['system:permission:update']">添加权限</el-button>
                  <el-button v-if="!row.fixed" type="text" @click="deletePermission(row)" icon="el-icon-delete" v-permissions="['system:permission:delete']">删除</el-button>
                  <el-button v-if="!row.fixed" type="text" style="color: red;"   @click="deletePermission(row)" icon="el-icon-delete" v-permissions="['system:permission:delete']">删除</el-button>
                </template>
                <!-- 权限编辑&删除 -->
                <template v-else>
                  <el-button v-if="!row.fixed" type="text" @click="$refs.operaPermissionWindow.open('编辑系统权限', row)" icon="el-icon-edit" v-permissions="['system:permission:update']">编辑</el-button>
                  <el-button v-if="!row.fixed" type="text" @click="deletePermission(row)" icon="el-icon-delete" v-permissions="['system:permission:delete']">删除</el-button>
                  <el-button v-if="!row.fixed" type="text" style="color: red;"  @click="deletePermission(row)" icon="el-icon-delete" v-permissions="['system:permission:delete']">删除</el-button>
                </template>
              </template>
            </el-table-column>
admin/src/views/system/role.vue
@@ -17,7 +17,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['system:role:create', 'system:role:delete']">
        <li v-permissions="['system:role:create']"><el-button type="primary" @click="$refs.operaRoleWindow.open('新建角色')" icon="el-icon-plus">新建</el-button></li>
        <li v-permissions="['system:role:delete']"><el-button @click="deleteByIdInBatch" icon="el-icon-delete">删除</el-button></li>
        <li v-permissions="['system:role:delete']"><el-button type="danger"   @click="deleteByIdInBatch" icon="el-icon-delete">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -50,7 +50,7 @@
            <el-button type="text" @click="$refs.operaRoleWindow.open('编辑角色', row)" icon="el-icon-edit" v-permissions="['system:role:update']">编辑</el-button>
            <el-button type="text" @click="$refs.permissionConfigWindow.open(row)" v-permissions="['system:role:createRolePermission']">配置权限</el-button>
            <el-button type="text" @click="$refs.menuConfigWindow.open(row)" icon="el-icon-menu" v-permissions="['system:role:createRoleMenu']">授权菜单</el-button>
            <el-button v-if="!row.fixed" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:role:delete']">删除</el-button>
            <el-button v-if="!row.fixed" type="text" style="color: red;"  @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:role:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/system/snippet.vue
@@ -19,7 +19,7 @@
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['system:job:snippet:delete']">
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:job:snippet:delete']">删除</el-button></li>
        <li><el-button  type="danger"   @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:job:snippet:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -55,7 +55,7 @@
          <template slot-scope="{row}">
            <el-button v-if="row.status === 0" type="text" @click="trigger(row)" icon="el-icon-delete">执行</el-button>
            <el-button v-if="row.status === -2" type="text" @click="trigger(row)" icon="el-icon-delete">重新执行</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:job:snippet:delete']">删除</el-button>
            <el-button type="text" style="color: red;"  @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:job:snippet:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
admin/src/views/system/user.vue
@@ -20,7 +20,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['system:user:create', 'system:user:delete']">
        <li v-permissions="['system:user:create']"><el-button icon="el-icon-plus" type="primary" @click="$refs.operaUserWindow.open('新建用户')">新建</el-button></li>
        <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">删除</el-button></li>
        <li v-permissions="['system:user:delete']"><el-button i type="danger"   con="el-icon-delete" @click="deleteByIdInBatch">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
@@ -73,7 +73,7 @@
            <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('编辑用户', row)" v-permissions="['system:user:update']">编辑</el-button>
            <el-button type="text" icon="el-icon-s-custom" @click="$refs.roleConfigWindow.open(row)" v-permissions="['system:user:createUserRole']">配置角色</el-button>
            <el-button type="text" @click="$refs.resetPwdWindow.open(row)" v-permissions="['system:user:resetPwd']">重置密码</el-button>
            <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">删除</el-button>
            <el-button v-if="!row.fixed" type="text" style="color: red;"  icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>